Foresight Ventures: 從 Polygon zkEVM 出發, 理解 zkEVM Rollup

Foresight Ventures
2022-09-05 14:45:33
收藏
長遠來看, zkEVM 的工程化落地和優化只是時間上的問題. 所有方案都有著自己的價值. Vitalik 也說這些不同方案或許在時間的推移中慢慢轉型, 直到找到適合自己定位的哪一種。

作者: msfew@Foresight Ventures

來源:Foresight Research

以太坊的未來路線可謂是為 Rollup 量身打造,而目前最被寄予厚望的方案就是採用了零知識證明技術的 zk Rollup。

通常大家的認知中,zk Rollup 需要數年的工程開發才可以真正落地,這是由於構建 zkEVM 的開發難度巨大。為了讓開發者能無縫移植和部署以太坊智能合約到 zk Rollup 中,開發團隊需要對兼容 EVM 的 zkEVM 進行開發與性能優化。

實現 zkEVM 一直是以太坊基金會和 Polygon 等其他 zk Rollup 團隊的重點任務。在長期視角下,zkEVM 的實現不僅能解決以太坊主網共識瓶頸的各個方面:

  • I/O: 通過無狀態和 enshrined zkEVMs
  • 存儲: 通過無狀態和 enshrined zkEVMs
  • 計算: 通過 enshrined zkEVMs

同時以 zkEVM 為核心組件,可以構建一個真正完美的通用 Rollup 網絡。

Polygon 就在近期帶來了這麼一個帶有 zkEVM 的 alpha 版本 zk Rollup,與 Scroll, StarkNet, zkSync, Sin7Y 等的方案相比各有千秋。這些 zkEVM 的存在是 Polygon 與以太坊生態的一個巨大飛躍,也意味著全新且更好的 Rollup 用戶體驗即將到來。

image

一:zkEVM

a) zkEVM 介紹

在了解 zkEVM Rollup 如何顛覆以太坊用戶體驗之前,我們需要認識 zkEVM 的概念。如果你想更深入地了解 zk, zkVM 與 zkEVM,歡迎閱讀我們之前的研究文章。

zkEVM 的概念可以被拆解成兩個部分:

  • zk: 零知識證明技術,可以通過一個精簡的證明來證明一批次 tx 的有效性,達成計算可信,從而實現擴容。
  • EVM: 以太坊生態的智能合約執行器。正是 EVM 的存在才讓以太坊具有智能合約運行能力,成為全球計算網絡(相比之下比特幣的功能可能只能算是計算器),同時 EVM 也衍生出 EVM 兼容、EVM 等同、EVM 超集的概念。

那麼 zkEVM 就是一個至少在編程語言層面兼容 EVM 的 zk 虛擬機。智能合約在 zkEVM 中運行後,會生成一個 zk 證明,它可以證明運行狀態轉換的有效性,保證計算可信。驗證者只需對證明驗證即可(開銷很小),無需重新執行(冗餘很大)。

image

b) zkEVM 意義

image

zkEVM 在各個層面都具有重大的意義:

  • 對於 Rollup 擴容: zkEVM 可以為批量 tx 生成證明從而在主網快速驗證,以完全可信與無需多輪複雜共識的方式借助主網安全性達成了計算可信。
  • 對於 DApp 開發者: 開發者無需學習任何 zk 相關的硬核知識或 Solidity 和 Vyper 以外的新語言,就可以借助 zkEVM 來給任意智能合約賦予 zk 的超能力。
  • 對於 zkEVM 開發者: 無需為網絡上的智能合約的功能編寫不同的電路,而是只需維護 zkEVM 即可。
  • 對於 Layer3 搭建者: 可以嘗試在 zkEVM 中搭建 Layer3 的 Verifier,於是 Layer3 的批量交易可以進一步被同時證明且批量地打包成一條 tx 在主網驗證(L3: 1000 tx → L2: 10 tx → L1: 1 tx),實現 App-rollup。
  • 對於以太坊: 多個 zkEVM 方案的存在最終會成為重要的 Public Goods,幫助以太坊實現下一階段的 Enshrined zkEVM 與 zk everything 的 Roadmap。

c) zkEVM 方案與進度對比

近期 zk Rollup 項目非常活躍。StarkNet 宣布將在未來發幣,Aztec 發布了隱私 DeFi,zkSync 發布了主網上線倒計時,Scroll 發布了 Pre-Alpha 版本的 zkEVM,Polygon 開源了 zkEVM 項目的全套代碼……

以太坊生態可謂是一場 zk 與 zkEVM 的軍備競賽。而正如我們在之前的 zkVM 與 zkEVM 文章中所說的,zkEVM 的方案各有千秋,各有優勢。

首先是技術大方向上的區別,基本分為兩個方向:

image

兩個方向上都有不同的選手:

  • 基於原生: Polygon, AppliedZKP, Scroll, Taiko。當然后三者都在同一個 Repo 中進行開發,基本可以視為是同種方案。
  • 基於編譯: StarkNet, zkSync, OlaVM 等。這個賽道上選手最多,但不同項目的差別其實也比較大。

按照 Vitalik 的分類對比方法的話,分為如下類型:

image

  • Type 1: 完全適配以太坊 L1 的 enshrined zkEVM。如 AppliedZKP。
  • Type 2: 完全 EVM 等同的 zkEVM,內部結構略有區別。如未來的 Scroll 和 Hermez。
  • Type 2.5: EVM 等同,僅 gas cost 不同(可能會導致細微的兼容性差別)的 zkEVM。如加上複雜操作的 precompiles 後的 Scroll 和 Hermez。
  • Type 3: 幾乎 EVM 等同的 zkEVM。如現階段的 Scroll 和 Hermez。
  • Type 4: 語言層面兼容 EVM 的 zkEVM,特性和開發者設施會不同,同時開發者也無法直接手寫 EVM Bytecode。如 zkSync 和 StarkNet。

在方案的取捨上,實際上有非常多的變量。就像遊戲初始人物加點一樣,只有一定量的天賦點可以分配給每個變量,可以說又是一個三難選擇:

  • 性能 (zk Prover, Verifier, 開銷, 硬件加速)
  • 适配性 (DApp 開發者, 基礎設施, 開發工具, 礦工)
  • 開發難度 (維護難度, 開發進度, 系統複雜度, 工程實現複雜度)

其中典型方案的區別為:

  • StarkNet: 完全實現一個全新的 zkVM (CairoVM),性能好,開發難度不高,但適配性不足(需要 Warp 轉譯器實現 EVM),最大的亮點是已經形成生態,同時具有 storage proof 和 fractal scaling 等創新。
  • zkSync: IR 層面的 zkEVM (LLVM-IR 部分)。適配性好(語言層面適配),性能和開發難度都中等,更加靈活,最大的亮點是可以在編譯器迭代過程中,可以通過 LLVM 支持除了 Solidity 外的其他語言。
  • Hermez 和 Scroll: 都算是 Bytecode 層面的 zkEVM(不代表完全復用 EVM Bytecode,但兩者的差別很細微)。適配性極好,性能有所犧牲(原始的 EVM 並不 zk 友好,電路化之後有很多性能上的挑戰需要攻克),開發難度很高,最大的亮點是架構安全性與最原生。

二:Polygon zkEVM Rollup

Polygon Hermez 此次開源的 zkEVM Rollup 網絡的核心組件就是 zkEVM。它的整體技術方案與其他方案的對比和我們前文中所述的基本一致。

a) Polygon zkEVM Rollup 架構

Polygon zkEVM Rollup 的整體架構如下:

image

架構中的核心就是 zkEVM 本身。zkEVM 會執行 L2 的 tx,並且鏈下證明網絡會為 zkEVM 中 tx 的執行生成有效性證明,最終狀態改變和證明會被提交上以太坊主網。

Polygon zkEVM Rollup 的關鍵組件為: PoE 共識算法, zkNode, zkProver, STARK 與 SNARK 的 Proof Builder, Rollup 跨鏈橋:

  • PoE 共識算法: 為了安全性、效率,與去中心化的提升,PoE 算法替換了 Hermez 1.0 的 PoD 算法。PoE 能與 PoS 相結合,保證 Polygon zkEVM Rollup 出塊的去中心化與高效。任何運行 zkNode 的礦工都可以成為 Sequencer,而任何運行 zkNode 與 zkProver 的礦工可以成為 Aggregator。其中礦工出塊權利的 gas fee 將使用 $MATIC 進行交易。

image

  • zkNode: zkNode 是任何想參與 Polygon zkEVM Rollup 網絡的礦工所需要運行的軟件。zkNode 會進行 tx 的同步、排序,與驗證。除此之外,如果僅僅是想了解網絡的運行狀態,而非參與,就只需要運行一個 read-only 節點,無需運行 zkNode。
  • zkProver: zkProver 是任何想作為 Aggregator 角色參與 Polygon zkEVM Rollup 網絡的礦工所需要運行的軟件。zkProver 顧名思義是一個生成 zk 證明的證明器。本質上,zkEVM 是多項式表示下的狀態轉換,zkProver 中包含了一個 Main SM Executor 和多個 Secondary State Machines,來達到對狀態轉換的證明。

image

  • STARK 與 SNARK Proof Builder: 兩個 Proof Builder 會生成 STARK 與 SNARK 兩類不同證明。STARK (PIL STARK) 為狀態轉換批次的多項式約束的滿足生成證明,而 SNARK (SnarkJS) 會對 STARK 證明的構建生成 constant size 的證明,從而以更低的成本發布在鏈上。

image

Rollup 跨鏈橋: Polygon zkEVM Rollup 除了是一個傳統的 Burn/Mint 跨鏈橋以外,還可以作為與其他 L2 進行跨鏈的橋樑。

image

b) Polygon zkEVM Rollup 設計

Polygon zkEVM Rollup 的設計核心思路就是:

  • 去中心化(任何人都可以通過 DA 來重建整個 Rollup 的狀態,沒有任何 Censorship 和中心化控制的存在)
  • 無需准入(任何人都可以參與到網絡中,作為 Sequencer 或 Aggregator)
  • 安全性(繼承以太坊的安全性,通過以太坊網絡來幫助 Rollup 狀態更新與證明的驗證)

image

  • 性能與高效(通過 PoE、鏈下計算、跨鏈橋合約的 UTXO 模式結算,以及各種密碼學優化方案進行性能提升)

c) Polygon zkEVM Rollup 特色

真正讓 Polygon 方案脫穎而出的優勢有很多。

首先,Polygon 開發團隊間的協作天然地形成了合力。Polygon 的 zk 宇宙中包含了 Polygon Hermez(也就是我們所說的 Polygon zkEVM 的主力開發團隊)、Polygon Zero、Polygon Miden,與 Polygon Nightfall,模塊化方案中更是包括了其他的很多團隊。雖然三支 zk 隊伍的方向略有不同,但都是 zkVM 領域的頂尖團隊,在技術方案與架構上能直接地進行協作與互相幫助。比如 Polygon Hermez 選擇 64-bit 的 small field 的 STARK 證明生成就是採取了 Polygon Zero 的建議。

image

此外,Polygon zkEVM Rollup 在 zk 技術上有很多創新。比如兩門 DSL zkASM 和 PIL 的創造,可以用於解釋 EVM 字節碼與編碼多項式承諾;STARK 與 SNARK 的結合,發揮了 STARK 的 Scalable 和 SNARK 的 Succinct,讓證明整體更快的同時最終鏈上空間消耗更小;優化上,採用了非常高效的 Goldilocks 作為 base field,實現了 Keccek 電路的並行計算,使用 Poseidon-hash Merkle tree 作為數據結構進行系統的存儲。

在證明生成去中心化與 EVM 等同性上,Polygon Hermez 與 Scroll 都以各自的方式做出了很大的努力。要實現 EVM 等同性,就必須要將 EVM 的操作碼通過 zk 電路的形式來編寫,Polygon 通過 zkASM 來解釋,然後在 zkExecutor 中執行(Geth 本質上一樣是解釋),而 Scroll 是直接可以對 Geth 客戶端的 Execution Trace 生成證明。

兩者在兼容性上實際沒有區別(runtime 的解釋或者轉譯不會對適配性有影響),對比下,Polygon 的方案在 EVM 等同性上做到了對證明節點更友好,更高效,對比之下,Scroll 側重於完全復用 Geth 的安全基礎,更方便審計。

image

我認為 Polygon Hermez 的 zkEVM 的方案在原生 EVM 支持與性能之間擊中了 Sweet Spot,不僅通過 zkASM 對 EVM 進行解釋,避免了 EVM 底層開發複雜度極高的問題,同時也通過不同角度的創新與優化讓性能不再是 zkEVM 的致命問題。

三:zkEVM Rollup 方案的優勢

a) Layer 1 與 Rollup

用戶苦 Layer 1 gas 已久也,在我們之前 MEV 的研究裡,討論到了一个理想的網絡的形態。

在一個 理想的網絡裡:

  • 任何人都可以發送交易 (no censorship)
  • 沒有垃圾信息 (no spam)
  • 費率非常低 (low fees)

同時在 Crypto 與區塊鏈的語境中,網絡還需要是去中心化與性能可拓展的。這就是一個理想區塊鏈網絡的三難格局:

  • low fees with no spam
  • decentralized with no permission and no censorship
  • scalable with general computation

Layer 1 的單體區塊鏈不可能同時做到以上幾點,而 Rollup 通過中心化出塊,去中心化驗證做到了能最終實現性能高、去中心化、低費率的終局。

這也是我們在 Rollup 文章中得出的結論。

b) Optimistic Rollup 與 zk Rollup

在長遠的角度和實際的理論性能上限下,zk Rollup 相比 OP Rollup 更具有可拓展性,安全假設更強。

image

Optimistic Rollup 所帶有的挑戰期讓一個 tx 被真正 finalized 的時間特別長,而 zk Rollup 的證明一經生成與驗證,則可以直接讓 tx 完全 finalized。

Rollup 的 OP 就像 Layer 1 的 PoW 與最長鏈原則,zk 像 PoS 與其相關共識。對於 Layer 1 來說,PoW 與 PoS 的機制都是可以的,但追求性能的 Rollup 在終局中更需要更強保證(通過質押或者密碼學)的 zk 機制來實現。

這也是我們在模塊化區塊鏈文章中得出的結論。

c) zk Rollup 與 zkEVM Rollup

既然 zk Rollup,那麼為什麼現在火熱的都是 Optimistic Rollup 呢?

因為目前運行的 zk Rollup 並沒有通用計算能力,如 Loopring 等,僅僅是停留在單一操作的階段,開發者無法部署與移植智能合約到 Rollup 中。

zk 證明主要用於證明操作的正確性,一個 zkEVM Rollup 的出現能培養像 Optimistic Rollup 一樣的智能合約生態,遠遠比普通的 zk Rollup 轉帳擴容網絡靈活,同時會比 Optimistic Rollup 更具有安全性,用戶體驗更好。

四:zkEVM Rollup 的用戶體驗

a) 天時地利人和

zkEVM Rollup 的出現是天時地利人和:

  • 天時: Layer 1 擴容遭遇瓶頸,Optimistic Rollup 已探索了 Rollup 的道路。
  • 地利: 以太坊所提供的安全性與社會共識為 zkEVM Rollup 的建立提供了完美土壤。
  • 人和: EVM 生態佔據區塊鏈開發的主導地位,無數 zk 開發團隊為 zkEVM 方案貢獻著力量。

那麼 zkEVM Rollup 對於用戶來說到底什麼體驗上的提升呢?

首先我們需要定義一下用戶,我認為,用戶包含了開發者和普通用戶:

b) 開發者的用戶體驗

  • zkEVM ⇒ 不用學習新語言甚至不用寫新合約來開發 DApp: Solidity 作為區塊鏈合約世界的第一語言,有著無數的資源和生態,且是最適合區塊鏈場景的語言,這兩個優點結合起來,遠遠優於 Move 或 Rust 等。
  • Rollup ⇒ 解鎖更多的應用場景: 用以太坊主網來做支付或者遊戲等應用由於性能和開銷問題,是不太合適的。zkEVM Rollup 能讓更多的 App 以 DApp 的形態實現。

c) 用戶的用戶體驗

  • zk ⇒ 比 PoS 網絡更強的安全性和比 OP Rollup 更快的 finality: 一些 PoS 網絡靠代幣質押來保證安全性,而它們的資金量較小,所創造的安全性保證是不強的,zk 的密碼學通過數學來保證絕對的安全性。OP Rollup 的挑戰期讓一個 tx 在一定時間內無法被確認,而 zk Rollup 對 tx 的證明一經生成則確認了 tx。
  • EVM ⇒ 完全一致的使用流程和基礎設施: 除了需要在錢包和應用內切換網絡以外,用戶所有的使用流程都會與在主網上一模一樣,無需額外的學習成本,只需要像之前一樣使用應用。
  • Rollup ⇒ OP 和 zk Rollup 都可以提供 L2 的 instant finality: 從用戶體驗上來說,基本還沒反應過來,交易就已經被執行完成。因此用戶無需再等待十幾秒或者十幾分鐘的時間來繼續發送下一個交易。在應用使用上,用戶就可以更加無負擔地進行鏈上活動,進行高頻的交易或者鏈上遊戲等。

d) Polygon zkEVM Rollup 用戶體驗

在未來,用戶與開發者在 zkEVM Rollup 上的體驗會無限接近於以太坊主網,同時體驗會在低 gas 與快速確認的優勢下更加地迅捷和流暢。

image

Polygon zkEVM Rollup 的計劃中,ETH 始終會作為 Rollup 的 gas fee 計價單位,而 MATIC 會作為質押所需要的代幣,這是非常優秀的一個決策:

  • 更好的價值捕獲: Polygon 在運營 PoS 網絡的經驗中得出的結論是質押所帶來的價值捕獲優於直接使用代幣作為 gas。
  • 更好的使用體驗: ETH 作為 Rollup 代幣,能讓 L1 的用戶或者跨鏈橋項目免於過程中額外的 Swap 步驟(大部分人會直接跨 ETH)。同時 ETH 作為 gas 也更具有正統性。
  • 更顯著的差異化: Polygon zkEVM Rollup 會與 Polygon PoS 有更明顯的差異,同時機制的不同確實也需要這樣的差異,來讓用戶選擇更適合自己的方案。

同時,Polygon 所為 zkEVM Rollup 帶來的還有:

  • 熟悉的 "環境": 用戶不用關心底層的技術改變,一切都會和 Polygon PoS 非常相似,只是各方面來說 zkEVM Rollup 會更快、更安全、更好用。開發者也可以參加著熟悉的黑客松,享受著 Polygon 所積累的豐富開發生態與社群。

五:zkEVM Rollup 的未來

對於 zkEVM Rollup 方案的未來,我們會分析技術上的未來,以及這個方案的終局形態到底是什麼。

a) zkEVM 技術

Vitalik 對這個話題有著非常深刻的見解。在他所概括的四種 zkEVM 分類中,沒有真正的好與壞的方案,只是有不同的技術上的取捨:更貼近底層但更慢,更缺少兼容性但更快。

長遠來看,zkEVM 的工程化落地和優化只是時間上的問題。所有方案都有著自己的價值。Vitalik 也說這些不同方案或許在時間的推移中慢慢轉型,直到找到適合自己定位的哪一種。

最好的未來,就是我們擁有非常多個不同風味的 zkEVM,從而開發者可以選擇自己喜歡的那一種,以太坊主網也可以去通過他們的創新來做自我提升。越多創新就是越好的未來。

b) Rollup 技術

Rollup 技術的終局會是 zkEVM Rollup,而 Optimistic Rollup 會繼續有著自己的一席之地,甚至會有 zkEVM 與 Optimistic 混合的 Rollup(個人認為一種機制其實足矣)。

zkEVM Rollup 在很多方面都比 Optimistic Rollup 好。但是 Optimistic Rollup 最大的好處就是建立起來更簡單,Optimism Bedrock 和 Geth 只有五百行代碼的區別,任何了解 Geth 的工程師都可以很輕鬆的搭建一條 Optimistic Rollup,或者未來在 Celestia 上使用 Optimint 等引擎,OP Rollup 這方面的道路已經被全面探索過。而 zkEVM Rollup 複雜度更高,學習門檻更高,還沒有真正完全落地的經驗與方案。

c) 技術…不是最重要的

聊了很多的技術,但技術肯定不是最重要的。zkEVM Rollup、Rollup、以太坊,乃至區塊鏈的瓶頸從來不是工程落地或者 DA 或者共識上的技術瓶頸,而是用戶。

舉個 Web2 的例子(感謝 Nelson):蘋果的 App Store。所有的開發者都會優先考慮在 App Store 上發布應用,但 App Store 的審核非常不穩定,經常會隨機拒絕應用的上傳。相比之下,安卓的應用市場,或者亞馬遜的應用市場審核就友好很多。但是為啥大家都想發布到 App Store 呢?因為 App Store 有成熟且穩定的用戶群體!無論安卓或者亞馬遜應用市場的開發者體驗做得再天花亂墜,開發者都還是會湧向有著用戶的平台。

軟件開發的目標不是優雅的 API,100% 的 Test Coverage,最好的編程語言,而是:解決更多的問題和提供更多的價值。這就意味著需要面向更多的用戶。

d) 終局形態

那麼在我們的想象中,一個真正終局的 zkEVM Rollup 會是怎麼樣的呢?

  1. 終局的基礎: 技術
  • zkEVM 層面: 所有的方案只要能落地都是好的,但不必過於原教旨主義。以太坊的 EVM 是一個非常 Legacy 的陳舊系統(當然依舊是頂尖的方案),儘管去對 zkEVM 進行更多的改善和創新。除此之外 zkEVM 需要更多的優化,減小 proving overhead 來趕上 Optimistic 方案。
  • Rollup 層面: 保證優先滿足區塊鏈的核心價值(去中心化、安全性),而不是一味對 TPS 進行軍備競賽。
  1. 終局的核心: Social Consensus
  • 生態層面: 最理想的情況下就是所有以太坊主網的應用都遷移到某個 Rollup 上。如果這個 zkEVM Rollup 本身就具有良好的生態基礎,那麼在啟動上就會拉開其他方案非常多。在這個方面,不得不說,Polygon 有著巨大的優勢。
  • 開發者層面: EVM 兼容性不是決定性因素,而是哪個 zkEVM Rollup 能最快地接觸到開發者,讓開發者使用它作為網絡來進行開發。從來不是網絡去順應開發者,而是開發者去挑一個整體最快或者最好的網絡,然後去慢慢適應這個網絡的開發。
  • 用戶層面: 用戶的心智與社會共識非常重要。除了 Reach 開發者,誰最先最有效的 Reach 到用戶也是最重要的因素。一個成功的網絡不應該成為技術宅對技術方案優越性的自嗨,而是真正地為用戶解決問題,創造價值。

zkEVM Rollup 都有光明的未來。

鏈捕手ChainCatcher提醒,請廣大讀者理性看待區塊鏈,切實提高風險意識,警惕各類虛擬代幣發行與炒作,站內所有內容僅係市場信息或相關方觀點,不構成任何形式投資建議。如發現站內內容含敏感信息,可點擊“舉報”,我們會及時處理。
ChainCatcher 與創新者共建Web3世界