---
title: "什麼是 ZK rollup？零知識與 rollups-as-a-service (RaaS) 完整指南"
description: "ZK rollups 的運作方式、與 optimistic rollups 的比較，以及 rollups-as-a-service 實際能幫你省下哪些工作。"
---

# 什麼是 ZK rollup？零知識與 rollups-as-a-service (RaaS) 完整指南

<ImageBlock
  src="https://media.alchemy.com/blog/zk-rollup-complete-raas-guide-hero.png"
  alt="ZK Rollup 完整 RaaS 指南"
  width={1920}
  height={900}
  priority
/>

在過去十年的大部分時間裡,對於「該不該在 ZK rollup 上建置」這個問題,誠實的答案是「還不到時候」。產生一個有效性證明要花上好幾分鐘、成本也不低,而要讓一般的 EVM bytecode 通過證明系統運作,比較像是研究專案,而不是可以拿來部署的東西。

這個情況很快就改變了。根據 [Ethereum Foundation 的 zkEVM 安全路線圖](https://blog.ethereum.org/2025/12/18/zkevm-security-foundations),大約一年的時間裡,Ethereum 區塊的證明延遲從 16 分鐘降到 16 秒,證明成本則降低了 45 倍。ZK rollups 用證明取代信任。現在需要思考的已經不是這項技術是否可行,而是自己營運一條鏈是否值得承擔隨之而來的營運面向。

## 什麼是 ZK rollup?

[零知識 rollup](https://www.alchemy.com/blog/zero-knowledge-rollups) 是一種擴容設計,它在主鏈之外執行交易,然後將一個加密學上的有效性證明送回基礎層,證明產生的狀態是正確的。基礎層不會重新執行這些交易,它只會檢查證明。

可以把它想成交數學考卷,改考卷的人只需要檢查一份簡短的證明,而不用把每一題重算一遍。這份證明很小,檢查起來很快,而且錯誤的答案不可能產生有效的證明。這種不對稱性就是整個機制的核心。驗證一個證明的成本遠低於執行背後那些交易的成本,所以 rollup 能在相同的基礎層容量下推送多得多的吞吐量。

「零知識」這個名稱有點誤導。它描述的是證明系統,而不是這條鏈的隱私特性。ZK rollup 上的交易預設是公開的,就跟 Ethereum 上一樣。這些證明證明了狀態轉換是有效的,而驗證者不需要重新執行一遍——這是一種簡潔性(succinctness)特性,而不是機密性特性。真正的隱私需要額外刻意去做的工作,通常是加密或建置一個專門的隱私層。

所以應該把 ZK rollup 當成一個關於擴容與最終性的決定。如果需要機密性,那是另一個必須自行解決的設計問題。

## ZK rollups 是如何運作的?

有四個元件負責這項工作,它們依序交接。

- **Sequencer** 接收使用者的交易、排序,然後將它們打包成一個 batch。這就是使用者能拿到快速確認的原因,而且早在任何東西送達基礎層之前就完成了。
- **Prover** 拿到這個 batch,產生一個有效性證明,通常是 [SNARK 或 STARK](https://www.alchemy.com/overviews/snarks-vs-starks),證明對前一個狀態執行這些交易後會產生新的狀態。
- **Verifier contract** 存在於基礎層上。它檢查證明,如果成立,就接受新的狀態根(state root)作為正式版本。
- **資料可用性層(data availability layer)** 儲存足夠的交易資料,讓任何人都能獨立重建 rollup 的狀態,並驗證營運者沒有隱瞞任何東西。

狀態本身是用 [Merkle tree](https://www.alchemy.com/docs/what-are-merkle-trees) 追蹤的,單一根雜湊值(root hash)代表了每一個帳戶餘額與合約儲存槽的承諾。每個被接受的 batch 都會推進這個 root,所以基礎層只需要保存一個小小的承諾,而不是整個 rollup 的狀態。

最後這個元件,也就是資料可用性,是經濟面改變最大的地方。過去 rollup 要付費把 batch 資料發布到基礎層的 calldata 上,這既昂貴又會永久留在鏈上。Ethereum 的 Dencun 升級在 2024 年 3 月引入了 blobs,這是一條獨立計價的資料通道,專門為這項工作而設計的大小。Blob 資料大約 18 天後就會被清除,而不是永久保留,這是刻意的設計。Rollup 的資料不需要永久存在,只需要維持足夠長的時間,讓任何人都能下載並重建這條鏈的狀態。PeerDAS,也就是隨 Fusaka 在 2025 年 12 月上線的資料可用性抽樣升級,讓更大的 blob 數量得以安全運行。而容量的提升本身則來自後續一些只調整 blob 參數的小型分叉。

資料可用性已經不再是過去那種主導性的成本項目了。對於今天正在評估 rollup 成本的團隊來說,證明產生與 sequencer 營運才是真正重要的成本,任何仍以舊有 calldata 假設為基礎的成本模型,都會有一個數量級的誤差。

## 為什麼 ZK rollups 對開發者來說很重要?

費用會下降,是因為發布並驗證一個 batch 的成本被攤提到裡面每一筆交易上。吞吐量會上升,原因也一樣——基礎層的容量限制的是證明驗證,而不是交易執行。

提款不需要等待挑戰期。[樂觀 rollup(optimistic rollup)](https://www.alchemy.com/overviews/optimistic-rollups) 假設 batch 是有效的,除非有人提出爭議,所以它會把提款保留一段爭議期,慣例是七天。有效性證明在驗證的當下就已經確立了正確性,所以沒有什麼需要等待的。對於任何涉及跨層轉移資產的情境來說,這個差異正是使用者真正能感受到的。

可驗證性來自資料可用性的要求。因為 batch 資料會被公開發布,任何人都可以獨立重建 rollup 的狀態,所以營運者既無法提交錯誤的狀態,也無法隱瞞查核所需的資料。但這並不能給你抗審查性。Sequencer 仍然可以悄悄地不把你的交易納入,而且不管公開了多少資料,都無法揭露一筆從未被排序過的交易。這種保護來自強制納入路徑(forced-inclusion path):使用者可以直接向基礎層合約提交交易,rollup 有義務將其納入。評估一條鏈時,要確認這個逃生機制確實存在,而且不需要營運者的配合就能運作。

綜合起來,對於那些把結算速度與每筆交易成本視為產品特性、而不只是實作細節的應用來說,ZK rollups 是一個合理的預設選擇。支付、交易所和遊戲會立刻感受到這個差異。低頻率的應用大概不會。

## ZK rollups 如何支援智能合約整合?

證明任意的智能合約執行,遠比證明簡單的轉帳困難得多,這也是為什麼最早期的 ZK rollups 只支援支付與交換。要證明 EVM bytecode,意味著要把每一個 opcode 都表達成證明系統裡的約束條件,而 EVM 在設計之初並沒有考慮到這一點。

[zkEVM](https://www.alchemy.com/overviews/zkevm) 就是解方,而不同的實作在與 Ethereum 的相符程度上有所差異。有些直接證明 Ethereum 的執行層,以最大化相容性為代價換取證明效能;有些則調整 bytecode 或狀態樹,讓證明更便宜,這代表某些合約與工具在能運作之前需要做調整。應該根據自己實際的依賴項目來檢查任何一個 zkEVM,而不是只看它標榜的相容性等級。

曾經讓這件事變成研究難題的效能落差,如今已經大致消除了。根據 Ethereum Foundation 的資料,Prover 現在能在目標硬體上於 10 秒內完成 99% 的 Ethereum 區塊證明——這是單一區塊的證明速度指標,不同於前文引用的端對端延遲數字。目前的重點已經從速度轉向安全性。已公布的路線圖將 128 位元可證明安全性、以及低於 300 KiB 的證明大小訂為 2026 年底的目標,同時還要對遞迴架構(recursion architecture)進行形式化驗證。

證明速度已經不再是阻擋你使用正式環境 zkEVM 的因素。應該去問團隊的安全性證明進度到哪裡了。

## ZK rollups 與 optimistic rollups 相比如何?

兩者都會把交易資料發布到基礎層,也都繼承了基礎層的安全性。兩者的差異在於它們要求基礎層相信什麼。

<EmbeddedTable
  table={{
    columns: [
      { key: "1", width: 190, title: "Dimension", dataType: "object" },
      { key: "2", width: 250, title: "ZK rollups", dataType: "object" },
      { key: "3", width: 280, title: "Optimistic rollups", dataType: "object" },
    ],
    data: [
      {
        "1": { title: "<p>Proof model</p>", tooltip: "", icon: "" },
        "2": {
          title: "<p>Validity proof with every batch</p>",
          tooltip: "",
          icon: "",
        },
        "3": {
          title: "<p>Fraud proof, only if challenged</p>",
          tooltip: "",
          icon: "",
        },
        id: 0,
      },
      {
        "1": { title: "<p>Withdrawal to L1</p>", tooltip: "", icon: "" },
        "2": {
          title: "<p>Once the proof is verified</p>",
          tooltip: "",
          icon: "",
        },
        "3": {
          title: "<p>After the dispute window, conventionally 7 days</p>",
          tooltip: "",
          icon: "",
        },
        id: 1,
      },
      {
        "1": { title: "<p>Cost profile</p>", tooltip: "", icon: "" },
        "2": {
          title: "<p>Proof generation is the main overhead</p>",
          tooltip: "",
          icon: "",
        },
        "3": {
          title: "<p>Cheap to operate, cost sits in the challenge system</p>",
          tooltip: "",
          icon: "",
        },
        id: 2,
      },
      {
        "1": { title: "<p>EVM compatibility</p>", tooltip: "", icon: "" },
        "2": {
          title: "<p>Varies by zkEVM, strong and improving</p>",
          tooltip: "",
          icon: "",
        },
        "3": { title: "<p>Near-complete, mature</p>", tooltip: "", icon: "" },
        id: 3,
      },
      {
        "1": { title: "<p>Security assumption</p>", tooltip: "", icon: "" },
        "2": { title: "<p>Cryptographic</p>", tooltip: "", icon: "" },
        "3": {
          title: "<p>Economic, requires at least one honest challenger</p>",
          tooltip: "",
          icon: "",
        },
        id: 4,
      },
    ],
  }}
/>

Optimistic rollups 營運成本較低,而且在 EVM 相容性上起步得早,這也是為什麼以活躍度來看,最大的通用型 L2 目前仍然是 optimistic 的。ZK rollups 則是用付出證明成本換取更快的結算速度,以及一種加密學上而非經濟學上的信任模型。

在通用型工作負載上,已經沒有哪一方能明確勝出了。當快速、最小化信任的結算值得付出證明成本時,就選 ZK;當原始的營運成本與最大化的 EVM 相容性更重要時,就選 optimistic。

## 什麼是 rollups-as-a-service(RaaS)?

過去要啟動一條 rollup,意味著要自己架設 sequencer、prover、bridge 合約與資料可用性路徑,然後讓這四樣東西無限期地持續運作。這是一支「造鏈團隊」該做的事,不是一項功能。

Rollups-as-a-service 把這整套堆疊變成由提供商替你營運的東西。你選擇一個框架、設定你的參數,然後由提供商在底層營運 sequencer、prover、bridge 與節點基礎設施。你保留的是這條鏈本身,包括它的手續費代幣、gas 政策、交易排序規則,以及任何共享鏈永遠不會替你強制執行的合規邏輯。

早期 RaaS 說法中最經不起時間考驗的部分,是暗示這是一個五分鐘就能完成、之後就不用管的操作。它確實比從零開始建置快得多,也免除了值班待命的負擔,但它並不會免除架構上的決策。你仍然要選擇要結算到哪個基礎層、資料可用性方面的取捨是什麼、sequencer 去中心化要如何演進,以及底層堆疊的升級要如何在不破壞你這條鏈的情況下傳遞過來。

應該把 RaaS 看成是外包了營運,而不是外包了設計。想更深入了解這個模式本身,可以參考我們寫的 [rollups-as-a-service](https://www.alchemy.com/overviews/rollups-as-a-service-raas) 以及 [RaaS and appchains](https://www.alchemy.com/overviews/what-are-rollups-as-a-service-appchains)。

## 什麼時候啟動自己的 ZK rollup 才合理?

在少數幾種特定情境下,專屬 rollup 的複雜度是值得的。

- **可預測且高的交易量。** 一旦你穩定地為大量 blockspace 付費,專屬容量就會開始比爭搶共享容量更划算。
- **共享鏈無法滿足的合規要求。** 白名單參與者、交易層級的政策,或是司法管轄上的限制,只有在你自己掌控的鏈上才能強制執行,別無他法。
- **依賴專屬 blockspace 的產品體驗。** 如果你的確認時間不能因為與你無關的鑄造活動塞爆網路而變慢,那共享 blockspace 就是一種負擔。

如果交易量還只是投機性的預期,這就是錯誤的選擇。託管型提供商雖然吸收了營運負擔,但你仍然要承擔 bridge 安全性、sequencer 存活性,以及必須持續追蹤的升級節奏。這樣的營運面向,值得為真實的需求而承擔,而不是為預期中的需求。在下決定之前,值得讀一讀 [rollups 的商業模式](https://www.alchemy.com/overviews/the-business-model-of-rollups),因為一條鏈必須賺回它自己的營運成本。

大多數團隊更適合先透過標準的 [RPC access](https://www.alchemy.com/rpc-api) 在成熟的鏈上發布產品,等到使用模式證明了理由之後,再重新考慮這個問題。延後這個決定的代價很小,但拆掉一條不該啟動的鏈,代價卻很大。

<CardWithCta
  text="與我們的 Rollups 團隊討論如何啟動屬於你自己的鏈"
  ctaLabel="聯絡我們"
  ctaHref="https://www.alchemy.com/contact-sales-rollups?utm_source=zk_rollup_guide&utm_medium=overview&utm_campaign=rollups"
  theme="light"
/>

## 關於零知識 rollups 的常見問答

### 什麼是 ZK rollup?

ZK rollup 是一種 Layer 2 擴容方案,它以 batch 的方式在鏈下執行交易,然後將一個加密學上的有效性證明發布到基礎層,證明產生的狀態是正確的。基礎層驗證這個證明,而不是重新執行這些交易,這降低了成本、提高了吞吐量,同時也繼承了基礎層的安全性。

### ZK rollups 是如何運作的?

Sequencer 將交易打包成 batch,prover 產生像 SNARK 或 STARK 這樣的有效性證明,基礎層上的 verifier contract 會在接受新的狀態根之前先檢查這個證明。交易資料會被發布出來,讓任何人都能獨立重建 rollup 的狀態。Ethereum 上的 rollups 現在是把這些資料發布在 blobs 裡,而不是 calldata。

### ZK rollups 有隱私性嗎?

沒有,預設沒有。「零知識」描述的是證明系統,它讓驗證者可以在不重新執行狀態轉換的情況下確認其有效性。ZK rollup 上的交易是公開可見的,跟 Ethereum 上一樣。機密性需要額外、刻意建置的隱私層。

### ZK rollups 與 optimistic rollups 有什麼不同?

ZK rollups 會證明每一個 batch 都是有效的,所以提款只要證明一經驗證就能結算。Optimistic rollups 則假設 batch 是有效的,除非受到挑戰,這也是為什麼提款必須等過一段爭議期,慣例是七天。ZK rollups 依賴的是加密學上的保證;optimistic rollups 依賴的是經濟誘因,以及至少一位誠實的挑戰者。

### 有哪些主要的 ZK rollup 專案?

ZKsync Era、Starknet、Scroll 和 Linea 是大多數團隊會評估的通用型 ZK rollups,其中 Scroll 和 Linea 都以接近 EVM 等效性為目標。Starknet 目前在 L2Beat 上的評級是 Stage 1,不過隨著更嚴格的規則生效,預期會降級到 Stage 0;Scroll、ZKsync Era 和 Linea 目前都是 Stage 0。Polygon zkEVM 的 Mainnet Beta sequencer 已在 2026 年 7 月 1 日下線,Polygon 將心力轉向 Polygon PoS 與 Agglayer。

### 智能合約可以在 ZK rollups 上運行嗎?

可以,透過能夠證明 EVM 執行的 zkEVM 實作。相容性因實作而異。有些 zkEVM 直接證明 Ethereum 的執行層以達到最大相容性,有些則修改 bytecode 或狀態結構來讓證明更便宜,這可能需要調整合約或工具。應該根據自己實際的依賴項目來檢查相容性,而不是只看一般性的宣稱。

### Rollups-as-a-service(RaaS)是什麼意思?

Rollups-as-a-service 是指由提供商替你配置與擁有的 rollup 營運 sequencer、prover、bridge 與節點基礎設施。它免除了營運一條鏈的操作負擔,但不會免除架構上的決策,包括基礎層的選擇、資料可用性方面的取捨、sequencer 去中心化,以及堆疊升級如何傳遞到你的鏈上。

### 是什麼讓 ZK rollups 安全?

ZK rollups 的安全性繼承自基礎層。資金保管在基礎層的合約裡,只有在鏈上驗證通過有效證明後,新的狀態根才會被接受,所以營運者無法提交無效的狀態。另外發布 batch 資料,確保了任何人都能獨立重建這個狀態,並偵測出營運者是否隱瞞了資料。至於抵禦個別交易被審查,則是另一項保證,它依賴的是通往基礎層的強制納入路徑。
