---
title: "什麼是 ZKsync Era？給 Ethereum 開發者的概覽"
description: "了解 ZKsync Era——支援 Ethereum 擴容、相容 EVM 的 ZK rollup。"
---

# 什麼是 ZKsync Era？給 Ethereum 開發者的概覽

ZK rollup 已成為解決區塊鏈可擴展性問題的一大方案 —— 透過零知識證明 \(ZKPs\)，提升了隱私性、加快了交易速度，並大幅降低了手續費。然而，**由於 ZK rollup 與 Ethereum Virtual Machine \(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。

它解決了 [Ethereum 主網](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 1.0，這是一款主要專注於在 Ethereum 上實現安全且低成本代幣轉帳的 layer 2 方案。後來更名為「ZKsync Lite」。

ZKsync Lite 會將交易打包於鏈下產生有效性證明，再提交至 Ethereum 主網進行驗證。不過，它並未具備完整的 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>Chain</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>Focus</strong></p>", tooltip: "", icon: "" },
        "2": {
          title: "<p>可擴展的支付與代幣轉帳</p>",
          tooltip: "",
          icon: "",
        },
        "3": {
          title: "<p>完全可程式化的擴容方案</p>",
          tooltip: "",
          icon: "",
        },
        id: 1,
      },
      {
        "1": {
          title: "<p><strong>EVM Compatibility</strong></p>",
          tooltip: "",
          icon: "",
        },
        "2": { title: "<p>有限</p>", tooltip: "", icon: "" },
        "3": { title: "<p>完整</p>", tooltip: "", icon: "" },
        id: 5,
      },
      {
        "1": {
          title: "<p><strong>Smart Contract Support</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>Architecture</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>Integration Speed</strong></p>",
          tooltip: "",
          icon: "",
        },
        "2": { title: "<p>快</p>", tooltip: "", icon: "" },
        "3": { title: "<p>比 ZKsync Lite 慢</p>", tooltip: "", icon: "" },
        id: 2,
      },
      {
        "1": {
          title: "<p><strong>Use Cases</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** 及**合約**發送至 **mempool**。這包含一般轉帳、合約互動及其他交易類型。

### **交易聚合**

**Bundler（Operator Sequencer）會從 mempool 取出交易**並將其打包成一個批次。

此過程包含由 **Entrypoint（BootLoader）** 產生密碼學證明（很可能是零知識證明），用以證實批次中所有交易的有效性，而不揭露底層的交易資料。

### 證明提交與交易最終化

打包後的交易及其證明會被提交至 Ethereum L1 上的 **Rollup Contract**。

Rollup Contract 會驗證這些證明，並在驗證成功後，將交易最終化。

這個步驟實際上是將 Layer 2 運算的結果寫回 Ethereum 主鏈。

### 最終化

一旦交易獲得 **Rollup Contract** 確認，即視為已最終化。

Ethereum 上區塊的最終性確保所有納入的交易均不可竄改，並正式成為 Ethereum 帳本的一部分。

## zkSync 使用哪種 ZK 技術？

<CalloutBlock>
*「ZK 技術是擴容領域的聖杯。而這正是 Ethereum 乃至所有區塊鏈最終將實現擴容的方式。」*

_— _[<u>_Alex Gluchowski_</u>](https://www.youtube.com/watch?v=CROqpQFXL_o)_ ｜ Matter Labs 共同創辦人暨執行長_

</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 就像是獨立的區塊鏈，同時能在 ZKsync 生態系內享有無縫的互通性。

<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 等組態之間選擇，取得隱私與可擴展性之間的最佳平衡。
- **代幣經濟學：** 可將 Ether 設為基礎代幣、使用自訂代幣，甚至支援多種代幣，來設計你的 Hyperchain。
- **排序：** 可實作不同的 sequencer 設定，滿足集中式高效率（高頻交易）或去中心化無需許可的安全性需求。

## zkSync 與其他 ZK 區塊鏈的比較

直到幾年前，社群一直在尋求側鏈與 plasma 方案來解決 Ethereum 的擴展性問題。然而，如今 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 的第 2 層擴容方案清單"
  width={1999}
  height={1203}
  caption="基於 ZK rollup 的第 2 層擴容方案。來源：L2Beat"
/>

建置應用程式時，有三項因素須納入考量：

1. **選擇合適的鏈：**評估可擴展性、安全性與開發者支援，選出最符合專案需求的區塊鏈。
1. **考慮多鏈策略：**權衡多鏈方法帶來的更廣泛市場觸及與風險分散，與隨之增加的複雜度與成本之間的取捨。
1. **評估工程開銷：**考量整合的難易度、營運維護以及所需的開發技能，估算所涉及的總成本與時間投入。

接下來，我們來看看 ZKsync Era 與 Starknet、Polygon zkEVM 有何不同。

### zkSync era 與 StarkNet 比較

以 TVL 而言，<u>Starknet</u> 是 Ethereum 上領先的 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>Chain</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>Proof Generation</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>Proof Size</strong></p>",
          tooltip: "",
          icon: "",
        },
        "2": { title: "<p>小</p>", tooltip: "", icon: "" },
        "3": { title: "<p>大</p>", tooltip: "", icon: "" },
        id: 7,
      },
      {
        "1": {
          title: "<p><strong>Trustlessness</strong></p>",
          tooltip: "",
          icon: "",
        },
        "2": { title: "<p>較低</p>", tooltip: "", icon: "" },
        "3": { title: "<p>較高</p>", tooltip: "", icon: "" },
        id: 6,
      },
      {
        "1": {
          title: "<p><strong>Verification Cost</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 Compatibility</strong></p>",
          tooltip: "",
          icon: "",
        },
        "2": { title: "<p>是</p>", tooltip: "", icon: "" },
        "3": { title: "<p>否</p>", tooltip: "", icon: "" },
        id: 4,
      },
      {
        "1": {
          title: "<p><strong>Developer Experience</strong></p>",
          tooltip: "",
          icon: "",
        },
        "2": {
          title: "<p>對 Ethereum 開發者較容易上手</p>",
          tooltip: "",
          icon: "",
        },
        "3": {
          title: "<p>對 Ethereum 開發者有一定學習曲線</p>",
          tooltip: "",
          icon: "",
        },
        id: 3,
      },
      {
        "1": {
          title: "<p><strong>Programming Languages</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>Compiler</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 等效（equivalent）rollup，而 ZKsync Era 則是一種 EVM 相容（compatible）rollup。

「EVM 相容」意指其底層虛擬機能理解並執行為 Ethereum Virtual Machine（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>Chain</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>Proof Generation</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>Proof Size</strong></p>",
          tooltip: "",
          icon: "",
        },
        "2": { title: "<p>小</p>", tooltip: "", icon: "" },
        "3": { title: "<p>大</p>", tooltip: "", icon: "" },
        id: 7,
      },
      {
        "1": {
          title: "<p><strong>Trustlessness</strong></p>",
          tooltip: "",
          icon: "",
        },
        "2": { title: "<p>較低</p>", tooltip: "", icon: "" },
        "3": { title: "<p>較高</p>", tooltip: "", icon: "" },
        id: 6,
      },
      {
        "1": {
          title: "<p><strong>EVM Compatibility</strong></p>",
          tooltip: "",
          icon: "",
        },
        "2": { title: "<p>相容（Compatible）</p>", tooltip: "", icon: "" },
        "3": { title: "<p>等效（Equivalent）</p>", tooltip: "", icon: "" },
        id: 5,
      },
      {
        "1": {
          title: "<p><strong>Developer Experience</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>Programming Languages</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>Compiler</strong></p>",
          tooltip: "",
          icon: "",
        },
        "2": { title: "<p>LLVM</p>", tooltip: "", icon: "" },
        "3": { title: "<p>未使用編譯器</p>", tooltip: "", icon: "" },
        id: 2,
      },
    ],
  }}
/>

## 透過 Alchemy 進行建置

ZKsync 目前已在 Alchemy 上線。

此整合免除了執行與維護 ZKsync 節點的負擔，讓你能專注於應用程式本身的獨特價值。

透過 Alchemy 的 supernode，即可存取 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，並對資料可用性、代幣經濟學及排序組態提供細緻的控制。_
