---
title: "什么是 ZKsync Era？面向 Ethereum 开发者的概述"
description: "了解 ZKsync Era——支持 Ethereum 扩容的 EVM 兼容 ZK rollup。"
---

# 什么是 ZKsync Era？面向 Ethereum 开发者的概述

ZK rollup作为区块链可扩展性的一种有前景的解决方案出现——它们通过零知识证明（ZKP）改善了隐私性，提高了交易速度，并大幅降低了费用。然而，**它们缺乏采用度，因为ZK rollup与以太坊虚拟机（EVM）不兼容**。

EVM是Ethereum的核心，它让开发者能够使用[Solidity](https://www.alchemy.com/overviews/solidity)构建和部署[应用](https://www.alchemy.com/dapps/top/defi-dapps)。由于传统的ZK rollup不兼容EVM，开发者必须为ZK rollup环境完全重写智能合约。因此，尽管这项技术潜力巨大，但它却成了该技术被采用的一大障碍。ZKsync旨在改变这一现状。

由[<u>Matter Labs</u>](https://matter-labs.io/)开发的ZKsync是Ethereum首创的layer 2扩容解决方案。在[<u>公布其愿景</u>](https://blog.matter-labs.io/matter-labs-raises-2-million-in-seed-round-to-scale-ethereum-with-zkps-95fb3659e1b7)——即为Ethereum打造一个无需信任且注重隐私的扩容方案——仅六个月后，ZKsync便以实现了看似不可能的目标震惊了区块链领域：**EVM兼容性**。

ZKsync后来发展为两个版本：ZKsync Lite和ZKsync Era。

**本文将深入探讨ZKsync Era，它与ZKsync Lite的区别，以及它相较于其他ZK区块链的独特之处。**

## 什么是zkSync era？

[<u>ZKsync</u>](https://zksync.io)是一个通用的layer 2 Ethereum解决方案，也是全球首个EVM兼容的ZK rollup。

它解决了[以太坊主网](https://www.alchemy.com/rpc/ethereum)长期存在的两个问题：可扩展性和高额交易费用。

<ImageBlock
  src="https://media.alchemy.com/1715225867-zksync-era-tvl.png"
  alt="zkSync Era TVL 图表"
  width={1700}
  height={568}
  caption="zkSync Era TVL"
/>

借助基于LLVM的编译器，通过ZKsync为Ethereum构建应用的开发者可以使用Solidity和Vyper等语言编写智能合约。大多数基于EVM的智能合约无需修改一行代码即可迁移，从而充分利用ZK rollup的全部潜力。

### zkEVM入门

EVM是完全透明的——这是有原因的，即可验证性。只有通过透明性，基于EVM的区块链才能确保所有交易不仅可见，而且可被任何参与者验证。

这种开放程度保证了所有操作都遵循网络设定的共识规则，从而防止欺诈，并确保网络保持安全和去中心化。

但目标从来都不是透明性，而是无需信任。在ZK rollup出现之前，透明性只是通往无需信任的路径。

例如，一个诚实的行为者（比如普通用户）可能出于个人偏好，希望自己的交易和其他信息保持私密。传统上，区块链并不允许这样做。

但有了zkEVM，区块链上的任何交易都可以通过概率方式证明，而无需披露交易中的每一条信息。

<ImageBlock
  src="https://media.alchemy.com/1715226005-zkevm-diagram.png"
  alt="zkEVM 交易示意图"
  width={1024}
  height={576}
  caption="zkEVM 交易示意图"
/>

### 什么是zkSync lite？

Matter Labs推出的第一代ZKsync是ZKsync 1.0——一个主要专注于在Ethereum上实现安全、低成本代币转账的layer 2解决方案。它后来更名为"ZKsync Lite"。

ZKsync Lite在链下打包交易以生成有效性证明，然后将其提交到以太坊主网进行验证。然而，它并不具备完整的EVM兼容性，因此支持的应用范围有限。

**ZKsync Lite的局限性促成了第二代产品的诞生，即ZKsync 2.0，也就是我们现在所知的"ZKsync Era"。**

## zkSync lite与zkSync era对比

<EmbeddedTable
  table={{
    columns: [
      { key: "1", width: 200, title: "", dataType: "object" },
      { key: "2", width: 200, title: "", dataType: "object" },
      { key: "3", width: 200, title: "", dataType: "object" },
    ],
    data: [
      {
        "1": { title: "<p>链</p>", tooltip: "", icon: "" },
        "2": {
          title: "<h3>ZKsync<strong> Lite</strong></h3>",
          tooltip: "",
          icon: "",
        },
        "3": {
          title: "<h3>ZKsync<strong> Era</strong></h3>",
          tooltip: "",
          icon: "",
        },
        id: 0,
      },
      {
        "1": { title: "<p><strong>侧重点</strong></p>", tooltip: "", icon: "" },
        "2": {
          title: "<p>可扩展支付和代币转账</p>",
          tooltip: "",
          icon: "",
        },
        "3": {
          title: "<p>完全可编程的扩容解决方案</p>",
          tooltip: "",
          icon: "",
        },
        id: 1,
      },
      {
        "1": {
          title: "<p><strong>EVM兼容性</strong></p>",
          tooltip: "",
          icon: "",
        },
        "2": { title: "<p>有限</p>", tooltip: "", icon: "" },
        "3": { title: "<p>完全</p>", tooltip: "", icon: "" },
        id: 5,
      },
      {
        "1": {
          title: "<p><strong>智能合约支持</strong></p>",
          tooltip: "",
          icon: "",
        },
        "2": {
          title: "<p>基础功能（兑换、转账）</p>",
          tooltip: "",
          icon: "",
        },
        "3": {
          title: "<p>广泛支持（DeFi、NFT、DAO等）</p>",
          tooltip: "",
          icon: "",
        },
        id: 4,
      },
      {
        "1": {
          title: "<p><strong>架构</strong></p>",
          tooltip: "",
          icon: "",
        },
        "2": { title: "<p>纯ZK rollup</p>", tooltip: "", icon: "" },
        "3": {
          title:
            "<p>混合架构（ZK rollup和zkPorter，提供更强的可扩展性）</p>",
          tooltip: "",
          icon: "",
        },
        id: 3,
      },
      {
        "1": {
          title: "<p><strong>集成速度</strong></p>",
          tooltip: "",
          icon: "",
        },
        "2": { title: "<p>快</p>", tooltip: "", icon: "" },
        "3": { title: "<p>比ZKsync Lite慢</p>", tooltip: "", icon: "" },
        id: 2,
      },
      {
        "1": {
          title: "<p><strong>使用场景</strong></p>",
          tooltip: "",
          icon: "",
        },
        "2": {
          title: "<p>支付、简单交易</p>",
          tooltip: "",
          icon: "",
        },
        "3": {
          title:
            "<p>支付、复杂应用、DeFi协议、NFT市场、游戏等</p>",
          tooltip: "",
          icon: "",
        },
        id: 6,
      },
    ],
  }}
/>

[<u>_在文档中了解更多。_</u>](https://docs.zksync.io/zk-stack/)

## zkSync原生账户抽象概述

较早或传统的区块链难以在协议层原生实现<u>账户抽象</u>方面的创新。由于这些区块链更加成熟，在协议层集成AA技术栈会引发向后兼容性问题。

而ZKsync是一个相对较新的解决方案，它通过类似于<u>ERC-4337</u>的集成方式原生固化了AA功能。

以下是该协议原生实现AA的方式：

<ImageBlock
  src="https://media.alchemy.com/1715226946-clave-bundler.png"
  alt="zkSync 账户抽象示意图。来源：Clave"
  width={1600}
  height={911}
  caption="zkSync 账户抽象示意图"
/>

### 交易发起

交易从**EOA**和**合约**发送到**内存池**。这包括常规转账、合约交互以及其他类型的交易。

### **交易聚合**

**Bundler（操作员排序器）从内存池中获取交易**，并将它们打包成一个批次。

这一过程包括由**入口点（BootLoader）**生成加密证明（很可能是零知识证明），用以证明批次中所有交易的有效性，而不披露底层交易数据。

### 证明提交与交易最终确认

打包后的交易及其证明会被提交到以太坊L1上的**Rollup合约**。

Rollup合约验证这些证明，验证成功后，最终确认这些交易。

这一步骤实际上是将Layer 2计算的结果写回以太坊主链。

### 最终确认

一旦交易被**Rollup合约**确认，它们就被视为已最终确定。

以太坊上区块的最终性确保了所有已包含的交易是不可篡改的，并正式成为以太坊账本的一部分。

## ZKsync使用了哪种类型的ZK技术？

<CalloutBlock>
*"ZK技术是扩容的圣杯。而这也正是Ethereum及所有区块链最终实现扩容的方式。"*

_——_[<u>_Alex Gluchowski_</u>](https://www.youtube.com/watch?v=CROqpQFXL_o)_ | Matter Labs联合创始人兼CEO_

</CalloutBlock>

<u>零知识证明</u>，特别是递归ZK-SNARK，是ZKsync所用技术的核心。

SNARK是一种特定类型的零知识证明，具有简洁性（即体积小、验证速度快）和非交互性（证明者与验证者之间无需来回通信）的特点。

递归SNARK在此基础上进行了扩展，允许一个SNARK证明验证另一个SNARK。这使得构建"证明金字塔"成为可能，其中每一层都依赖于前一层的有效性，从而能够对数量庞大的计算或交易进行可扩展且高效的验证。

因此，即使是计算能力相对较低的设备，比如智能手机，也能够以极少的资源验证大量交易。

<ImageBlock
  src="https://media.alchemy.com/1715227163-aggregating-blocks.png"
  alt="由 Matter Labs 制作的 zkSync 区块验证示意图"
  width={887}
  height={579}
  caption="zkSync 区块验证示意图。来源：Matter Labs"
/>

支撑ZKsync技术的是其框架[<u>ZK Stack</u>](https://docs.zksync.io/zk-stack/)。

### 用ZK stack构建：驱动zkSync的框架

**[ZK Stack](https://www.alchemy.com/dapps/zksync)是一个基于[ZK Credo](https://github.com/zksync/credo)原则构建的模块化开源框架，用于构建由ZK技术驱动的Hyperchain。**

这些Hyperchain类似于独立的区块链，能够在ZK Sync生态系统内实现无缝互操作性。

<ImageBlock
  src="https://media.alchemy.com/1715227620-eth-shared-bridge.png"
  alt="ZK 驱动的 hyperchain 结构示意图"
  width={1999}
  height={1074}
  caption="ZK hyperchain 示意图。来源：Matter Labs"
/>

ZK Stack的模块化特性为开发者提供了对以下方面的精细控制：

- **数据可用性：**在rollup、validium或volition配置之间进行选择，以在隐私性和可扩展性之间取得最佳平衡。
- **代币经济学：**设计Hyperchain时可以选择以Ether作为基础代币、使用自定义代币，甚至支持多种代币。
- **排序：**实施不同的排序器配置，以满足中心化效率（高频交易）或去中心化无需许可安全性的需求。

## zkSync与其他ZK区块链的对比

几年前，社区还在为Ethereum的可扩展性寻求侧链和plasma方案。而如今，rollup已成为有效扩容Ethereum的核心技术。

自2018年推出以来，ZK rollup尤其获得了广泛的关注和采用，Polygon等大型项目已采用该技术，Vitalik Buterin等思想领袖也在为其倡导。

<ImageBlock
  src="https://media.alchemy.com/1715227780-zkproofs-scaling.png"
  alt="ZK 证明与扩容示意图"
  width={1418}
  height={940}
  caption="ZK 证明与扩容示意图。来源：Linea"
/>

根据L2 beat的数据，截至本文撰写时，已有11个基于ZK rollup的layer 2扩容解决方案处于活跃状态，另有14个即将上线。面对如此众多的选择，开发团队该如何做出<u>选择合适rollup进行构建</u>的合理决策？

<ImageBlock
  src="https://media.alchemy.com/1715227890-active-zk-projects.png"
  alt="基于 ZK rollup 的二层扩容方案列表"
  width={1999}
  height={1203}
  caption="基于 ZK rollup 的二层扩容方案。来源：L2Beat"
/>

构建应用时需要考虑以下三个因素：

1. **选择合适的链：**评估可扩展性、安全性和开发者支持情况。选择在这些方面与项目需求相匹配的区块链。
1. **考虑多链策略：**权衡多链方案带来的更广泛市场覆盖和风险分散，与随之增加的复杂性和成本之间的关系。
1. **评估工程开销：**考虑集成难易程度、运维成本以及所需的开发者技能。估算所涉及的总成本和时间投入。

接下来我们看看ZKsync Era与Starknet和Polygon zkEVM有何不同。

### zkSync era与StarkNet对比

<u>Starknet</u>是（按TVL衡量）领先的ZK
rollup扩容解决方案，与ZKsync Era有着相似的目标——扩容Ethereum并推动大规模采用。

ZKsync Era专注于向后兼容性，让开发者能够轻松迁移项目，或凭借已有的Solidity和Vyper知识进行开发。

而Starknet则采取了另一种策略，力图吸引那些不熟悉任何主流区块链开发语言的新人，让他们可以使用被认为更简单的Cairo语言继续开发。

下表阐明了ZKsync Era与Starknet之间的区别。

<EmbeddedTable
  table={{
    columns: [
      { key: "1", width: 200, title: "", dataType: "object" },
      { key: "2", width: 200, title: "", dataType: "object" },
      { key: "3", width: 200, title: "", dataType: "object" },
    ],
    data: [
      {
        "1": { title: "<p><strong>链</strong></p>", tooltip: "", icon: "" },
        "2": { title: "<h3>ZKsync Era</h3>", tooltip: "", icon: "" },
        "3": { title: "<h3>Starknet</h3>", tooltip: "", icon: "" },
        id: 0,
      },
      {
        "1": {
          title: "<p><strong>证明生成</strong></p>",
          tooltip: "",
          icon: "",
        },
        "2": { title: "<p>ZK-SNARK</p>", tooltip: "", icon: "" },
        "3": { title: "<p>ZK-STARK</p>", tooltip: "", icon: "" },
        id: 1,
      },
      {
        "1": {
          title: "<p><strong>证明大小</strong></p>",
          tooltip: "",
          icon: "",
        },
        "2": { title: "<p>小</p>", tooltip: "", icon: "" },
        "3": { title: "<p>大</p>", tooltip: "", icon: "" },
        id: 7,
      },
      {
        "1": {
          title: "<p><strong>无需信任程度</strong></p>",
          tooltip: "",
          icon: "",
        },
        "2": { title: "<p>较低</p>", tooltip: "", icon: "" },
        "3": { title: "<p>较高</p>", tooltip: "", icon: "" },
        id: 6,
      },
      {
        "1": {
          title: "<p><strong>验证成本</strong></p>",
          tooltip: "",
          icon: "",
        },
        "2": { title: "<p>每批约460,000 gas</p>", tooltip: "", icon: "" },
        "3": {
          title: "<p>多对数级（EIP-4844后更低）</p>",
          tooltip: "",
          icon: "",
        },
        id: 5,
      },
      {
        "1": {
          title: "<p><strong>EVM兼容性</strong></p>",
          tooltip: "",
          icon: "",
        },
        "2": { title: "<p>是</p>", tooltip: "", icon: "" },
        "3": { title: "<p>否</p>", tooltip: "", icon: "" },
        id: 4,
      },
      {
        "1": {
          title: "<p><strong>开发者体验</strong></p>",
          tooltip: "",
          icon: "",
        },
        "2": {
          title: "<p>对Ethereum开发者更简单</p>",
          tooltip: "",
          icon: "",
        },
        "3": {
          title: "<p>对Ethereum开发者存在学习曲线</p>",
          tooltip: "",
          icon: "",
        },
        id: 3,
      },
      {
        "1": {
          title: "<p><strong>编程语言</strong></p>",
          tooltip: "",
          icon: "",
        },
        "2": { title: "<p>Solidity、Vyper</p>", tooltip: "", icon: "" },
        "3": { title: "<p>Cairo</p>", tooltip: "", icon: "" },
        id: 2,
      },
      {
        "1": {
          title: "<p><strong>编译器</strong></p>",
          tooltip: "",
          icon: "",
        },
        "2": { title: "<p>LLVM</p>", tooltip: "", icon: "" },
        "3": { title: "<p>Warp</p>", tooltip: "", icon: "" },
        id: 8,
      },
    ],
  }}
/>

### zkSync era与Polygon zkEVM对比

ZKsync Era和<u>Polygon zkEVM</u>发布时间相差不到一周，两者基于相似的技术，但存在一些细微差别。具体来说，Polygon zkEVM是一个EVM等效的rollup，而ZKsync Era是一个EVM兼容的rollup。

"EVM兼容"意味着其底层虚拟机能够理解并执行为以太坊虚拟机（EVM）编写的代码。开发者可以**轻松地将现有的Ethereum智能合约移植**到ZKsync Era，只需极少的修改。

"EVM等效"意味着它在功能上与EVM相似，但底层使用了不同的虚拟机。开发者可能需要**调整现有的Ethereum智能合约**，才能使其在Polygon zkEVM上正常运行。

下方的对比表格突出展示了ZKsync Era与Polygon zkEVM之间的关键差异。

<EmbeddedTable
  table={{
    columns: [
      { key: "1", width: 200, title: "", dataType: "object" },
      { key: "2", width: 200, title: "", dataType: "object" },
      { key: "3", width: 200, title: "", dataType: "object" },
    ],
    data: [
      {
        "1": { title: "<p><strong>链</strong></p>", tooltip: "", icon: "" },
        "2": { title: "<h3>ZKsync Era</h3>", tooltip: "", icon: "" },
        "3": { title: "<h3>Polygon zkEVM</h3>", tooltip: "", icon: "" },
        id: 0,
      },
      {
        "1": {
          title: "<p><strong>证明生成</strong></p>",
          tooltip: "",
          icon: "",
        },
        "2": { title: "<p>ZK-SNARK</p>", tooltip: "", icon: "" },
        "3": { title: "<p>ZK-SNARK和zk-STARK</p>", tooltip: "", icon: "" },
        id: 1,
      },
      {
        "1": {
          title: "<p><strong>证明大小</strong></p>",
          tooltip: "",
          icon: "",
        },
        "2": { title: "<p>小</p>", tooltip: "", icon: "" },
        "3": { title: "<p>大</p>", tooltip: "", icon: "" },
        id: 7,
      },
      {
        "1": {
          title: "<p><strong>无需信任程度</strong></p>",
          tooltip: "",
          icon: "",
        },
        "2": { title: "<p>较低</p>", tooltip: "", icon: "" },
        "3": { title: "<p>较高</p>", tooltip: "", icon: "" },
        id: 6,
      },
      {
        "1": {
          title: "<p><strong>EVM兼容性</strong></p>",
          tooltip: "",
          icon: "",
        },
        "2": { title: "<p>兼容</p>", tooltip: "", icon: "" },
        "3": { title: "<p>等效</p>", tooltip: "", icon: "" },
        id: 5,
      },
      {
        "1": {
          title: "<p><strong>开发者体验</strong></p><p><br></p>",
          tooltip: "",
          icon: "",
        },
        "2": {
          title: "<p>Ethereum智能合约易于迁移</p>",
          tooltip: "",
          icon: "",
        },
        "3": {
          title: "<p>可能需要一定的代码调整</p>",
          tooltip: "",
          icon: "",
        },
        id: 4,
      },
      {
        "1": {
          title: "<p><strong>编程语言</strong></p>",
          tooltip: "",
          icon: "",
        },
        "2": { title: "<p>Solidity、Vyper</p>", tooltip: "", icon: "" },
        "3": { title: "<p>Solidity</p>", tooltip: "", icon: "" },
        id: 3,
      },
      {
        "1": {
          title: "<p><strong>编译器</strong></p>",
          tooltip: "",
          icon: "",
        },
        "2": { title: "<p>LLVM</p>", tooltip: "", icon: "" },
        "3": { title: "<p>未使用编译器</p>", tooltip: "", icon: "" },
        id: 2,
      },
    ],
  }}
/>

## 使用Alchemy进行构建

ZKsync现已在Alchemy上线。

这一集成免去了运行和维护ZKsync节点的负担，让你可以专注于打造应用独有的价值主张。

通过Alchemy的超级节点访问ZKsync Era的主网和测试网RPC端点。借助Alchemy的API，开发者可以获得高可靠性和简化的开发体验。

### 三步开始使用

1. **注册免费账户：**访问[<u>Alchemy</u>](https://www.alchemy.com/)并创建你的账户。
1. **获取ZKsync Era RPC端点：**在你的Alchemy仪表盘中查找ZKsync Era（主网和测试网）端点。
1. **开始构建：**将这些端点集成到你的dApp中。

_更多信息请查看_[<u>_ZKsync Era API快速入门文档_</u>](https://www.alchemy.com/docs/reference/zksync-api-quickstart)_。_

## _常见问题_

### _什么是zkSync era？_

_zkSync Era是一个layer 2 Ethereum扩容解决方案，也是全球首个EVM兼容的ZK rollup，它解决了Ethereum的可扩展性问题和高额交易费用问题，同时与现有的Ethereum智能合约保持完全兼容。_

### _zkSync era与zkSync lite有何不同？_

_zkSync Lite专注于可扩展支付和代币转账，EVM兼容性有限，而zkSync Era是一个完全可编程的扩容解决方案，具备完整的EVM兼容性，支持DeFi协议、NFT市场和游戏等广泛的应用。_

### _在zkSync era上构建应用，开发者需要学习新的编程语言吗？_

_不需要，开发者可以使用熟悉的Ethereum编程语言，如Solidity和Vyper，大多数基于EVM的智能合约无需重写一行代码即可迁移。_

### _zkSync era使用了哪种类型的零知识技术？_

_zkSync Era使用递归ZK-SNARK，这是一种简洁且非交互式的零知识证明，能够以极少的计算资源高效验证大量交易。_

### _zkSync era上的原生账户抽象是什么？_

_zkSync Era在协议层原生固化了账户抽象功能，从而实现高级钱包功能和用户体验的提升，而不会遇到老旧区块链所面临的向后兼容性问题。_

### _zkSync era与Starknet等其他ZK rollup相比如何？_

_zkSync Era优先考虑使用Solidity和Vyper实现EVM兼容性，以便于迁移，而Starknet使用自有的Cairo编程语言，虽然要求开发者学习新工具，但对新人而言可能提供了更简单的开发体验。_

### _什么是ZK stack，它与zkSync era有何关系？_

_ZK Stack是驱动zkSync Era的模块化开源框架，它支持构建由ZK技术驱动的Hyperchain，并对数据可用性、代币经济学和排序配置提供精细控制。_
