在以太坊坎昆升級後,Layer2 賽道或許會迎來一波爆發,而本文將介紹 Layer 2 賽道中各類 zkEVM。本文源自 0xRJ.eth ,由 BlockBeat 整理。
(前情提要:哪家zk-EVM更強?實測合約開發Taiko、Polygon、Linea、Scroll、zkSync Era.. )
(背景補充:比特幣Layer2生態》哪個Rollups擴容方案最有潛力? )
引言
預計於 2023 年秋冬實施的以太坊重大升級 —— 坎昆升級(Cancun-Deneb Upgrade),核心目標是增強以太坊網路的擴容性、安全性和可用性,同時極大程度降低二層網路的 Gas 費。因此,如若成功實施,將直接利好太坊二層擴容(L2 Rollups)生態,甚至有望帶動整個 L2 賽道的爆發。
延伸閱讀:以太坊EIP-4844:坎昆升級的核心
在 L2 擴容賽道中,具有極佳資料壓縮效能的零知識證明擴容方案(ZK Rollups)已然被認為是以太坊的中長期核心方案。以太坊創辦人 Vitalik 於 2022 年根據各家 ZK Rollups 與 EVM(Ethereum Virtual Machine)以太坊虛擬機器的相容性將其分為 4 種不同的型別,為 zkEVM 型別確立了基礎標準。
這篇文章深受上述 Vitalik 的開創性 分類標準的啟發。經過一年的發展,該領域已取得重大進展。本文旨在以清晰的邏輯和簡潔的語言,以 Vitalik 見解為基礎,提供賽道更新和更詳細的詮釋(技術小白友好)。
什麼是 EVM?
EVM(Ethereum Virtual Machine)以太坊虛擬機器,是第一個圖靈完備的區塊鏈虛擬機器。可以理解為是以太坊上的程式碼執行環境,專門用以執行部署在以太坊網路上的智慧合約。通過 EVM,智慧合約能夠在去中心化網路上實現自動化的功能。
作為 2015 年釋出的、迄今為止最久經考驗的區塊鏈虛擬機器,EVM 絕對是以太坊非常重要的基礎設施。甚至在評判其他區塊鏈時,EVM 相容與否已是一個重要的考量維度,因為 EVM 相容的背後代表的不僅僅是智慧合約執行環境、可用的以太坊工具集,更代表著巨大的網路效應和成熟複雜的生態。
不過,EVM 在設計之初,並未想像到有朝一日 ZK Rollup L2 會成為以太坊擴容的核心方案,因此 EVM 的設計並沒有考慮要對零知識證明友好。這就使得構建零知識證明友好的 EVM(zkEVM)變得非常困難。
什麼是 zkEVM?
正因為零知識證明(Zero Knowledge Proof)和以太坊虛擬機器(EVM)相容方面的難度之高,早期的 ZK Rollup 是不支援 EVM 的。它們普遍缺乏執行智慧合約的能力(或者支援特別的虛擬機器),因此受限於相對簡單的特定場景:比如 代幣兌換(swap)和支付(payment)。
為了解決這個問題,許多組織和研究人員專注於建立 zkEVM(Zero Knowledge Ethereum Virtual Machine),顧名思義,它就是為智慧合約在 EVM 中的執行(過程和結果)生成零知識證明的。
隨著 ZK Rollup 擴容方案確定性的增加和技術的進展,各家 zk 擴容專案根據在相容性 Compatibility 和效能 Performance(生成零知識證明的時間 Proving Time)之間做衡量和取捨,開創了不同的將 EVM 執行與零知識證明計算結合的方法。
不同型別的 zkEVM:
2022 年 Vitalik 曾發文闡述「不同型別的 zkEVM 」,並將市面上的 zk 擴容專案做了大致的分類和對比。
接下來讓我們用淺顯的語言和清晰的邏輯梳理一下 zkEVM 的型別、技術架構、以及各自的優缺點。
- Type1 類 zkEVM :完全等效於以太坊
- Type2 類 zkEVM :完全相容 EVM 以太坊虛擬機器(曾經還有 Type2.5 類,如今看來基本與 Type2 類融合了)
- Type3 類 zkEVM :幾乎相容 EVM 以太坊虛擬機器
- Type4 類 zkEVM :相容高階語言
Type1 類 zkEVM—— 完全等效於以太坊
架構:
- 完全等同於以太坊且無需改變以太坊系統環境的任何部分。
- 無需取代hash(Hashes)、狀態樹(State Trie)、交易樹(Transactions Trie)、預編譯的合約(Precompiles),和任何其他共識邏輯(In-consensus Logic)。
- 其目標是與現有的應用程式完全相容,開發者可以將應用程式絲滑地照搬過去。
優點:
- 是所有型別 ZK Rollup 中相容程度最高的方案。因此也是開發者最友好對方案 —— 允許開發者將現有程式碼零摩擦(無需修改)地部署到 L2 上執行,因為所有的共識邏輯和系統環境完全等同於以太坊。
- 和以太坊本身探索擴容的方向高度一致,因為在 Type1 類 zkEVM 上的探索,未來是可以被無摩擦地引入到 Ethereum 本身,從而使得以太坊 L1 本身更具可擴充套件性。
- 它可以讓 Rollup 無摩擦地照搬現有的海量以太坊基礎設施(例如:以太坊執行客戶端可以按原來的方式用於生成和處理 Rollup 區塊、現有的區塊瀏覽器和區塊生成等工具也可以絲滑地部署到 L2)。
- 能夠如同現在的以太坊一樣驗證以太坊區塊,或者更確切來說是驗證執行層端(包括所有交易執行、智慧合約和帳戶邏輯,但目前還不包括信標鏈共識邏輯)。
- 正如先前提到的,完全等價以太坊的一大價值,便是可以藉助以太坊現有的巨大網路效應和成熟複雜的生態。
缺點:
- 以太坊在融合零知識證明方面所面臨的問題,Type1 類方案也同樣面臨(畢竟它是以太坊等價,而以太坊最初並非為了 zk 功能設計的)。
- 最大的問題就是生成證明所需時間久。針對這個問題,目前行業裡主要的解決方案主要是:通過巧妙的工程大規模並行化證明,或通過 硬體優化來加速。
主流專案:
- 以太坊基金會 PSE(Privacy and Scaling Explorations 隱私和擴容)團隊
- Taiko :今年 7 月已更新至 Alpha-4 測試網,預計 2024 年年初上線主網。Taiko 專案從最初就優先考慮去中心化和相容性,是目前第一家且唯一一家實現去中心化提議者(proposer)的 ZK Rollup。
Type2 類 zkEVM—— 完全相容 EVM 以太坊虛擬機器
架構:
- 力求完全相容 EVM 以太坊虛擬機器,但不等效於以太坊。
- 與以太坊自身的執行環境相比,此型別 zkEVM 主要對區塊結構、狀態樹的資料結構、gas fee 的定價邏輯(根據 zk 友好度重新定價)和資料儲存等方面進行了一些修改,使 zk 驗證證明生成得更快更便宜。
- 其目標是儘可能與絕大部分現有應用程式相容,少數應用需進行一些改動。
優點:
- 通過對 gas fee 的重新定價(越 zk 不友好的 op code 價格越貴,反之亦然),和刪除部分對 ZK 不友好的以太坊堆疊,來提供比 Type1 類更快的驗證時間。
- Type2 型別可以做到與極大部分現有的以太坊應用程式相容,因此絕大多數開發者和使用者層面基本感受不到摩擦。
- 雖無法零修改地直接使用以太坊執行客戶端,但通過一些除錯仍可以支援現有的 EVM 除錯工具和其他開發基礎設施。因此仍在極大程度上可以借力於以太坊現有的繁榮生態。
缺點:
- 更改執行環境的影響範圍雖小,但中長期依舊存在潛在的開發問題。比如將以太坊常用hash(Keccak)替換為其他 zk 友好的hash值(例如 Poseidon ),有可能會導致那些依賴於 Keccak hash值(涉及到歷史資料)的程式應用(比如:跨鏈橋。大致原理:跨鏈橋不是即時通訊,通常是你在 A 鏈做了一個行為 —— 比如已經 burn 了什麼;要在 B 鏈做相互對應行為 —— 要鑄造什麼… 那本質就是你在 B 鏈上需要去證明 A 鏈的歷史資料,因此會涉及到使用 Keccak 來證明歷史資料)在遷移到 Type2 型別專案後出現不相容問題(無法使用、或者跑出不同結果)。
- 對 gas fee 定價規則的更改(本意是通過重新根據對 zk 友好程度來定價 op code,來「引導」開發者減少使用 zk 不友好的 op code),對於已經在以太坊上已經進行過 gas fee 優化的合約、甚至是以太坊上的 gas fee 優化工具就會帶來問題。
- 這些修改雖然和 Type1 類 zkEVM 相比,進一步提高了證明者的效率,但和 Type4 類 zkEVM 相比,證明時間依舊是一個相對缺點。
主流專案:
- Scroll: 2022 年 9 月上線 Pre-Alpha 測試網,2023 年 2 月上線 Alpha 測試網,預計於 2023 年 8 月上線主網。測試網上線時屬於 Type3 類 zkEVM,但正在逐步增強 EVM 相容性並向 Type2 類 zkEVM 過渡。
- Polygon zkEVM(Polygon 團隊的 ZK Rollup 方案):2023 年 3 月上線了主網 Beta 版本。上線時屬於 Type3 類 zkEVM,但目前在向 Type2 類 zkEVM 過渡。
延伸閱讀:ZK Rollup 新星|Scroll 宣布Q3上線主網!估值達18億美元
延伸閱讀:Polygon zkEVM 是什麼?一文盤點鏈上生態、潛力項目…
Type3 類 zkEVM—— 幾乎相容 EVM 以太坊虛擬機器
架構:
- Vitalik 在其 2022 年的 blog 文章中稱,Type3 類 zkEVM 更像是一個過渡(通過提高相容程度過渡為 Type2/1 類;或者通過降低相容程度、提升 zk 友好度,過渡為 Type4 類)。
- 近乎相容 EVM 以太坊虛擬機器。通過在相容性方面進一步犧牲,使其 zkEVM 更易於開發、zk 證明生成速度更快。
- 刪除了更多在 zkEVM 中難以實現的功能(比如 預編譯 功能)。
- 在處理合約程式碼(contract code)、記憶體(memory)或堆疊(stack)方面存在更大差異。
- 目標是與大多數現有應用程式相容。
優點:
- 相比起 Type1 和 Type2 類 zkEVM,此型別更加 zk 友好,運算 zk 證明時間更短。
- 相比起 Type4 類 zkEVM 可以相容的現有以太坊應用程式更多。
缺點:
- 相比起 Type1 和 Type2 類 zkEVM,此類存在更高的不相容性和更多元素的犧牲(對以太坊開發者更加不友好)。這也是為什麼 Type3 類更像是一個過渡,處於此類的方案大概率會通過提升相容度,過渡到 type2 類 zkEVM。
- 相比起 Type4 類 zkEVM 證明速度更慢。
主流專案:
- Scroll:2022 年 9 月上線 Pre-Alpha 測試網,2023 年 2 月上線 Alpha 測試網,預計於 2023 年 8 月上線主網。一年前 Scroll 屬於此型別,但目前通過提升以太坊相容度,在向 Type2 類 zkEVM 發展。
- Polygon zkEVM(Polygon 團隊的 ZK Rollup 方案):2023 年 3 月上線了主網 Beta 版本。上線時屬於 Type3 類 zkEVM,但目前在向 Type2 類 zkEVM 過渡。
Type4 類 zkEVM—— 相容高階語言
架構:
- 此類實際上屬於 zkVM(零知識證明虛擬機器,而非零知識證明以太坊虛擬機器)。
- 可以理解為程式語言層面的相容。大致邏輯是:開發者可以繼續使用他們在以太坊上習慣使用的程式語言(比如 Solidity)編寫智慧合約。此型別專案會用編譯器將此程式語言轉換為它們自定義的可讀程式碼(比如 Starkware 使用 Warp 編譯器將 Solidity 程式碼轉換為 Cairo 位元組碼;zkSync 通過 LLVM 編譯器將 Solidity 程式碼轉換為其自定義的虛擬機器可執行的程式碼 LLVM-IR)進行編譯,並在它們自定義的環境中(比如 Starknet 的 Cairo VM 和 zkSync 的 Sync VM)執行。
- 目標是低成本、高效率、最大化零知識證明友好性。
優點:
- 非常快的驗證時間。
- 直接從高階語言編譯可以大大降低成本(時間、金錢和計算工作量)。
- 降低成為證明者的技術門檻,提高去中心化程度。
- 此類 zkEVM 可以通過使用其自定義的虛擬機器原生支援 帳戶抽象(Account Abstraction)。因為 EVM 等效的鏈無法原生支援帳戶抽象,需要通過以太坊的 ERC-4337 來實現。
缺點:
- 大量現有的以太坊應用程式無法被複制到這類 zkVM 中,或者在複製過程中會出現問題:比如 合約在 Type 4 類 zkVM 系統中的地址可能與 EVM 中的地址不一樣;Type4 類 zkEVM 不支援手寫的 EVM 位元組碼(而目前許多應用程式都會使用手寫的 EVM 位元組碼以節省 gas fee);(先前提到了此型別是通過編譯器達到 Solidity 程式碼語言層面的相容)其編譯器並不支援 Solidity 的一些功能。
- 以太坊開發者如果想將應用部署到此類專案上,需要進行更複雜的的調整。因此,和前幾類 zkEVM 相比,此類專案的開發者友好度相對低,有可能影響生態的發展和技術的迭代速度。
- 極難借力於以太坊現有的複雜繁榮的生態和網路效應。
主流專案:
- zkSync Era (Matter Labs 團隊構建的 ZK Rollup 方案):2020 年 6 月上線 zkSync Lite(zkSync 1.0),主要支援簡單的支付(payment)和資產兌換(swap)場景,並不支援 EVM 相容的智慧合約;2023 年 3 月上線 zkSync Era(zkSync 2.0),通過上述架構可以實現在高階語言層面的相容。zkSync 的目標本就不是 EVM 相容,而是提高零知識證明生成速度。
- Starknet (Starkware 團隊構建的 ZK Rollup 方案):2021 年 11 月上線主網,今年 7 月已更新至 v0.12.0 版本。其自身屬於 Type4 類 zkEVM,目標本就不是 EVM 相容。但目前它上面也有像 Kakarot 這樣的專案,旨在使 Starknet 也能達到類似 Type 2.5-3 類 zkEVM 的相容程度)
基於 Vitalik 2022 年對於不同 zkEVM 的分類,再結合各家專案的進展(截止 2023 年 8 月),我們可以用下圖簡單地總結:
各類 zkEVM 主流專案
Vitalik 在其文末總結稱:
「就我個人而言,我希望隨著時間的推移,通過 zkEVM 的改進和以太坊本身的改進相結合,使其(以太坊)對 ZK-SNARK 更加友好,最終一切都將成為 Type1 類。
在這樣的未來,我們將有多個 zkEVM 實現,它們既可以用於 ZK Rollup(零知識擴容),也可以用於驗證以太坊鏈本身。從理論上講,以太坊沒必要為 L1(第一層)使用制定單一的、標準化的 zkEVM 規範;不同的客戶端可以選擇使用不同的證明方式,這樣我們就可以繼續受益於程式碼層面的冗餘。
但是,要實現這樣的未來,還需要相當長的時間。與此同時,在以太坊(自身)擴容和基於以太坊的 ZK Rollup 的不同路徑方面,我們也將會看到大量的創新。」
同時,需要強調的是,雖然市面上主流的 zkEVM 分類方式是 Vitalik 2022 年推出的分類(本文引用的),但同時也存在其他的分類標準。且無論如何分類,這些 zkEVM 型別並沒有絕對的優劣之分。它們只是在相容性與速度之間有所取捨:Type1 類 zkEVM 與以太坊的相容性最高,但證明速度較慢(在 ZK Rollup 賽道中屬於);Type4 類 zkEVM 與以太坊的相容性較差,但驗證速度更快。
當然,zkEVM 的相容性和速度實際上並不是開發者考量應該基於哪個 ZK Rollup 去部署應用的唯一指標。還有許多其他的因素會影響他們的選擇,比如:
- L2 交易排序的去中心化程度:sequencer/proposer 是否是去中心化的,這直接影響到生態參與者的複雜程度,以及整個網路的安全性;
- 費用:以哪些代幣支付費用、一條公鏈的代幣經濟模型如何;
- 生成證明的規則:對於 prover 的激勵機制、加速生成證明的硬體標準;
- 自託管:是否有明確的機制來確保 L2 發生事故的時候仍然能夠在 L1 恢復使用者資產;
- 資料可用性:完整的資料可用性成本自然要高些,是否可接受有些 ZK Rollup 採用的較低成本的資料可用性模式。
但由於多數通用 ZK Rollup 專案目前還處於測試網階段,以上諸多因素尚無法做橫向對比。
最後,任何 zkEVM 專案所屬的型別也並非是靜態不變的。隨著各家方案在 zkEVM 方面的探索、甚至是以太坊本身的改進,有可能所有方案最終都能達到 Type 1 類 zkEVM 的效果。屆時我們將有多個 zkEVM 實現 —— 既可用於 ZK Rollups,又可用於驗證以太坊鏈本身。
而在那之前,讓我們期待看到在擴容以太坊和 ZK Rollup 不同路徑上的持續創新。