昨天談帳戶抽象(ERC-4337 與 EIP-7702),把「錢包」從固定規則的外部帳戶,變成可程式化、可代付 Gas、可社交恢復的智慧帳戶——那是使用者體驗這一層的可程式化。今天往下一層走:就算錢包再好用,以太坊主網每秒只能處理十幾筆交易、Gas 一塞就貴到勸退,這個瓶頸得靠「擴容」解決。而 2025–2026 年擴容的主流路線,就是把運算搬到鏈下、只把「證明」與「資料」放回主鏈的 Rollup,其中技術含金量最高的,是用零知識證明(Zero-Knowledge Proof, ZKP)背書的 zk-Rollup。理解它,得先理解一件反直覺的事:你可以「證明一件事是對的」,卻不用把「為什麼對」的細節全部攤開給對方看。
📖 學
零知識證明是什麼:三個必須同時成立的性質
零知識證明是一種密碼學協議,讓「證明者(Prover)」能向「驗證者(Verifier)」證明某個陳述為真,而不洩漏除了「這句話是真的」以外的任何資訊。經典比喻是「阿里巴巴洞穴」:一個環狀山洞,中間有道需要密語才能開的門。你想向朋友證明你知道密語,但不想把密語說出口。做法是:朋友在洞口等,你先走進其中一條岔路;朋友接著喊「從左邊出來」或「從右邊出來」,如果你真的知道密語,無論他喊哪邊你都能開門走到指定那側出來。單次成功可能是碰運氣(有一半機率你本來就站對邊),但重複幾十次都成功,機率上就幾乎不可能是矇的——而整個過程,朋友始終沒聽到密語。
嚴謹地說,一個零知識證明系統必須同時滿足三個性質:
- 完整性(Completeness):如果陳述為真,誠實的證明者一定能說服誠實的驗證者。真的就證得出來。
- 健全性(Soundness):如果陳述為假,作弊的證明者幾乎不可能騙過驗證者(頂多只有微乎其微的機率)。假的就證不出來。
- 零知識性(Zero-Knowledge):驗證過程不洩漏任何除了「陳述為真」之外的資訊。驗證者學不到「為什麼」。
前兩個性質其實所有證明系統都要有(能證真、擋得住造假),真正讓它特別的是第三個。而在區塊鏈擴容的場景裡,我們其實最看重的往往不是「隱私」那一面,而是另一個副產品:簡潔性(Succinctness)——證明可以做得很小、驗證可以做得很快,遠比重新執行一次原始運算便宜。這正是 Rollup 想要的。
zk-SNARK 與 zk-STARK:兩種主流實作
把零知識證明落地成可用的密碼學工具,目前有兩大家族:
zk-SNARK(Zero-Knowledge Succinct Non-Interactive Argument of Knowledge,簡潔非互動式知識論證)。關鍵字是「Succinct(簡潔)」與「Non-Interactive(非互動)」:證明體積很小(常見只有數百位元組),驗證極快,而且不需要證明者和驗證者來回問答——證明者產生一份證明,任何人拿去一次就能驗。代價是多數 SNARK 需要一次「可信設定(Trusted Setup)」儀式來產生公共參數,若設定過程的秘密(俗稱「有毒廢料」)沒被銷毀,理論上能偽造證明,所以通常用多方參與的儀式來降低風險。
zk-STARK(Zero-Knowledge Scalable Transparent Argument of Knowledge,可擴展透明知識論證)。關鍵字是「Scalable(可擴展)」與「Transparent(透明)」:不需要可信設定(透明),只依賴雜湊函數,因此也被認為對量子電腦攻擊更有抵抗力;證明產生對大規模運算的擴展性更好。代價是證明體積通常比 SNARK 大很多(可達數十到數百 KB),驗證成本相對高一些。
一句話記憶:SNARK 證明小、但要可信設定;STARK 免設定、抗量子、但證明大。實務上兩者都有人用,例如 Starknet 一系採用 STARK,多數 zkEVM 則走 SNARK 路線,也有專案把兩者組合(用 STARK 做內層、再用 SNARK 壓縮成小證明貼上主網)。
Rollup 的核心思想:運算搬鏈下,證明與資料回主鏈
Rollup(捲疊)的英文原意是「把很多筆交易捲成一疊」。它的核心思想是:以太坊主網(L1)貴且慢,但它安全、去中心化、是最終仲裁者;那就別讓所有交易都在 L1 上執行,而是——
- 在鏈下(L2)收集大量交易、批次執行、算出新的狀態。
- 把這一批交易的壓縮資料與**新狀態的承諾(state root)**發布回 L1。
- 由 L1 上的合約來「確認」這批狀態轉換是正確的。
關鍵差別就在第 3 步「怎麼確認」。這裡分出了兩大流派。
Optimistic Rollup vs. ZK Rollup:樂觀假設 vs. 數學證明
Optimistic Rollup(樂觀式) 採「先假設你是對的」策略。L2 把資料丟上 L1 時,預設這批狀態轉換是誠實的,不附帶正確性證明。但它開放一段「挑戰期(challenge period,通常約 7 天)」,任何人若發現作弊,可以提交「詐欺證明(fraud proof)」來推翻它、並罰沒作惡者的押金。優點是實作相對簡單、天生對 EVM 友善;缺點是提款要等挑戰期(約一週),資金流動性較差。代表:Arbitrum、Optimism、Base。
ZK Rollup(零知識式) 採「用數學證明你是對的」策略。L2 每提交一批交易,就同時附上一份有效性證明(validity proof),由 L1 合約用零知識證明驗證這批狀態轉換完全正確才接受。因為正確性是被密碼學保證的,不需要挑戰期,理論上狀態一上鏈就是最終確定(fast finality),提款也快很多。缺點是產生證明的運算很重、工程門檻高,尤其要相容 EVM 更難。代表:zkSync Era、Polygon zkEVM、Scroll、Linea、Starknet。
一句話對比:Optimistic 是「除非你證明我錯,否則我對」;ZK 是「我先證明我對,你才要接受」。長線看,隨著證明成本下降,ZK Rollup 被普遍認為是更接近終局的路線。
zkEVM:讓零知識證明「聽得懂」以太坊
ZK Rollup 最難的地方在於:以太坊智慧合約跑在 EVM(Ethereum Virtual Machine)上,而要為 EVM 的每一個運算步驟生成零知識證明,等於要把整套 EVM 的邏輯「電路化」,工程極其困難。能做到這件事的系統,就叫 zkEVM。
Vitalik 提出過一個經典的 zkEVM 分類法,依「與以太坊的相容程度」與「證明速度」的取捨分成四型:
- Type 1:完全等同以太坊(fully Ethereum-equivalent),連底層資料結構都不改,最忠實、但證明最慢最貴。這是以太坊自身「把 L1 也 ZK 化」的終極目標。
- Type 2:EVM 等價(EVM-equivalent),對開發者行為完全一致,僅微調底層狀態樹等結構以利證明。
- Type 3:EVM 相容(EVM-compatible),為了更好證明,對少數 opcode 做不同處理,需少量改動才能移植合約。
- Type 4:把 Solidity 直接編譯成自訂 VM 的位元組碼,證明最快,但相容性最低。
早期專案多從 Type 3/4 起步求性能,近年隨技術成熟,Scroll、Polygon 等持續往 Type 2、乃至 Type 1 的方向靠攏,「無痛相容以太坊」與「證明夠快」正逐漸不再是二選一。
資料可用性與 EIP-4844:把 Rollup 的成本打下來
Rollup 便宜的前提,是那些「壓縮後的交易資料」必須讓所有人都拿得到——否則沒人能重建 L2 狀態、也沒人能驗證或提款。這件事叫資料可用性(Data Availability, DA)。過去 Rollup 把資料塞進 L1 的 calldata,但 calldata 會永久佔用區塊空間、非常貴,成了 Rollup 費用的大宗。
2024 年 3 月的 Dencun 升級啟用了 EIP-4844(Proto-Danksharding,原型丹克分片),引進一種全新的「blob 攜帶交易」:
- Blob(資料塊):每個約 128 KB,專門給 Rollup 放資料,與一般 calldata 分開。
- 臨時儲存:blob 只保存在共識層約 18 天就會被剪除(因為 Rollup 只需要一段時間讓大家下載、驗證,不需要永久上鏈)。這段期間用 KZG 承諾來保證資料可被驗證,正好支撐 optimistic 的詐欺證明與 ZK 的有效性證明。
- 獨立費用市場:blob 有自己的 gas(blob gas),採 EIP-1559 式定價,與主網 Gas 競爭脫鉤。
結果就是 Rollup 的 DA 成本大降,簡單轉帳費用一度掉到個位數美分,比升級前便宜約 10 倍、比 L1 便宜 50–100 倍。EIP-4844 只是起點,後續 Pectra(EIP-7691 把 blob 目標數由 3 提到 6)、以及走向 PeerDAS / 完整 Danksharding,都是要進一步把 DA 容量再放大一個數量級——長期目標是讓 Rollup 群集達到十萬級 TPS。
優缺點與現況:終局路線,但工程仍在爬坡
到 2025–2026 年,zkSync Era、Polygon zkEVM、Scroll、Linea 等主流 zkEVM 已在主網運行多年、累積可觀 TVL;Linea 因與 MetaMask 深度整合成為成長最快的 ZK Rollup 之一。L2BEAT 這類第三方看板,則用「validity proof / optimistic」「Stage 0/1/2」「排序器與證明者是否去中心化」等維度,公開追蹤各 L2 的真實信任假設——提醒我們:掛著「ZK」名號,不代表就完全去中心化、無需信任。多數 L2 仍有中心化排序器、可升級合約、緊急多簽等「訓練輪」。
ZK Rollup 的優點是:安全性繼承 L1、有快速最終性、提款快、資料被密碼學背書;但代價是證明生成算力重、zkEVM 工程複雜、以及尚未完全去中心化。這條路被廣泛視為以太坊擴容的終局方向,而現況是「終局已定、工程仍在爬坡」。
🧠 記
- 零知識證明三性質:完整性(真的證得出)、健全性(假的證不出)、零知識性(不洩漏「為什麼」)。擴容場景更在意其副產品「簡潔性」——證明小、驗證快。
- SNARK vs. STARK:SNARK 證明小、驗證快,但多需可信設定;STARK 免設定、抗量子、擴展性好,但證明體積大。
- Rollup 核心:運算與資料處理搬到鏈下(L2),只把壓縮交易資料與狀態承諾放回 L1,讓主網當「安全的最終仲裁者」。
- Optimistic vs. ZK:前者「先假設你對、開放約 7 天挑戰期用詐欺證明推翻」;後者「每批附有效性證明、數學保證正確、無需挑戰期、提款快」。
- EIP-4844 = Blob:128 KB 資料塊、約 18 天後剪除、獨立 blob gas 市場,把 Rollup 的資料可用性成本打下 10–100 倍,是通往完整 Danksharding 的第一步。
✍️ 實踐
- 到 L2BEAT 挑一個你常用或聽過的 L2(如 Arbitrum、Base、zkSync、Scroll),看它被歸類為 Optimistic 還是 ZK、目前在 Stage 幾、排序器是否去中心化,寫下三個你原本沒注意到的信任假設。
- 用一個真實 zkEVM 測試網(如 Scroll Sepolia 或 zkSync Sepolia)從水龍頭領測試幣、發一筆交易,實際感受 L2 上鏈速度與費用,並在區塊瀏覽器找出這筆交易對應回 L1 的批次(batch)資料。
- 用自己的話,向一位非技術朋友講清楚「阿里巴巴洞穴」比喻,並延伸解釋:為什麼「能證明我算對了、卻不用把整段運算重跑一遍」對區塊鏈擴容如此關鍵。
🔗 延伸學習
- Zero-knowledge rollups | ethereum.org:官方文件,完整說明 ZK Rollup 如何用有效性證明把運算與狀態搬到鏈下,並比較與 Optimistic Rollup 的差異,是最權威的入門起點。
- The different types of ZK-EVMs | Vitalik Buterin:Vitalik 親撰的 zkEVM Type 1–4 分類法原文,講清「相容性 vs. 證明速度」的取捨,是理解各家 zkEVM 定位的必讀。
- Danksharding | ethereum.org:官方路線圖頁面,說明 EIP-4844(Proto-Danksharding)的 blob 機制,以及通往完整 Danksharding、把 DA 容量再放大的計畫。
- L2BEAT — Scaling Summary:第三方 L2 風險看板,用 TVL、證明類型、Stage 與信任假設等維度公開追蹤各 Rollup 的真實去中心化程度。
💬 問 AI
把下面這段貼給你常用的 AI 助理,讓它用一個具體例子帶你走完「一筆交易在 zk-Rollup 上的完整生命週期」,把今天的概念串成一條線:
我剛學了零知識證明與 zk-Rollup。請用「我在某個 zkEVM(例如 zkSync 或 Scroll)上把 100 USDC 轉給朋友」這一筆交易當例子,
一步步說明它的完整生命週期:
1. 這筆交易先送到 L2 的哪個角色(排序器)、如何被批次打包?
2. zk-Rollup 如何為這一批交易生成「有效性證明」?這裡的 zk-SNARK/STARK 具體在證明什麼陳述?
3. 交易資料透過 EIP-4844 的 blob 放回以太坊 L1,和舊的 calldata 方式差在哪、為什麼更便宜?
4. L1 合約收到證明後怎麼驗證、狀態何時算最終確定?為什麼不需要像 Optimistic Rollup 那樣等約 7 天挑戰期?
最後,請對比如果這是 Optimistic Rollup,同一筆交易的流程會有哪些關鍵不同,並用一句話總結兩者的取捨。