本文將研究五種常見的 zkEVM 型別及各型別專案進展,並指出各型別 zkEVM 在設計上的挑戰。
(前情提要:L2|全面分析主流ZK項目:StarkNet、zkSync Era、Scroll..構建Web3未來)
(背景補充:IOSG研報》開發者眼中不同 ZKRollup 的使用體驗 )
作為一種以太坊的擴容方式 ZK Rollup,它允許交易在鏈下進行處理,並在主鏈上以單個壓縮交易的形式合併。這個過程提高了交易吞吐量,降低了交易成本,通過零知識證明而保證狀態的有效性,提高主鏈的隱私性和安全性。因此,ZK Rollup 被認為是以太坊擴容的終極解決方案。
但目前零知識證明生成需要較大的算力,技術難度也更高,同時由於以太坊虛擬機器(EVM)不設計支援 ZK 電路,無法直接執行智慧合約。為了解決這個問題,許多開發者嘗試開發 zkEVM,它可以以與零知識證明計算相容的方式執行智慧合約。對於許多 ZK Rollup 來說,實現 EVM 等價意味著實現了完整的位原始碼級相容性,目前來看,zkEVM 是以太坊擴容的關鍵。
本文將研究五種常見的 zkEVM 型別及各型別專案進展,並指出各型別 zkEVM 在設計上的挑戰。
什麼是 zkEVM
zkEVM 是一個支援零知識證明計算的 EVM 相容的虛擬機器,它是一種基於以太坊區塊鏈技術的應用程式開發平臺。可以將 EVM 合約在無需修改的情況下直接部署執行,同時程式的執行可以通過零知識證明其計算的有效性。
zkEVM 的優勢
- zkEVM 提高相容性。zkEVM 與為在 EVM 中執行而編寫的智慧合約高度相容,可以與 EVM 基礎設施無縫整合,開發者無需重新開發應用就可以將現有的以太坊應用程式遷移到 L2 上,同時 zk proof 繼承了以太坊網路安全性。
- zkEVM 增強可擴充模組性。zkEVM 使用的是非互動式證明,提高了吞吐量,減少了延遲,因為驗證 L2 區塊的證明比重新執行新提議的區塊中的每個交易更快。
- zkEVM 降低儲存成本。zkEVM Rollup 可以選擇只在以太坊 L1 上釋出對其最終狀態的承諾,從而減少鏈上儲存成本。有效性證明保證了 zkEVM 新狀態的正確性,因此排序器不必釋出重新執行狀態轉換更改所需的所有資料。
正是隨著對 zkEVM 的不斷改進,ZK Rollup 的限制得到解決,利用 ZK Rollup 的安全性和效率,加之 EVM 的相容性,應用程式可以與智慧合約進行互動,改進應用程式體驗。
五種不同型別的 zkEVM 及相關專案
EVM 在設計之初,並未考慮到要支援零知識證明,這使得構建 EVM 相容的 zk 虛擬機器變得困難,不過伴隨著研究進展,EVM 的計算可以包裹到零知識證明中,不同的 zkEVM 專案採用不同的方法將 EVM 執行與零知識證明計算相結合。
以太坊創辦人 Vitalik Buterin 也曾發文解釋了不同型別的 zkEVM 之間的權衡,V 神認為這些專案的核心目標都是相同的:使用 ZK-SNARK 技術為類似以太坊交易的執行提供加密證明,以便更容易驗證以太坊鏈本身或構建相當於以太坊提供的 ZK Rollups,但比以太坊更具可擴充模組性。
Type 1(共識級等價 —— 完全等同於以太坊)
Type 1 zkEVM 力求完全和以太坊等效。它不會更改以太坊系統的任何部分以使其更容易生成證明,不會取代hash、狀態樹、交易樹、預編譯或任何其他共識邏輯。
Type 1 zkEVM 的優點是完美相容以太坊。從長遠來看,在 Type 2 或 Type 3 ZK-EVM 中測試的對以太坊的修改可能會引入以太坊本身,但這種重新架構有其自身的複雜性,因此,Type 1 是最終需要使以太坊 L1 本身更具可擴充模組性的東西。同時,Type 1 zkEVM 也是 rollup 的理想選擇,因為它們允許 rollup 重用大量基礎設施。
Type 1 zkEVM 的缺點是驗證時間問題。以太坊最初並不是圍繞 ZK 友好性設計,因此以太坊協議的許多部分需要大量計算才能執行 ZK 證明。Type 1 zkEVM 旨在精確複製以太坊,因此它無法緩解這些低效率問題。Type 1 zkEVM 是最理想的 zkEVM,有許多專案正在構建或探索這種型別。
目前 Type 1 zkEVM 相關專案有 Taiko 和 Kakarot。
Taiko 構建的 Type 1 zkEVM 可以使開發者和使用者能夠安全地體驗以太坊,交易費用更低,而且不需要考慮任何變化。在兩輪種子輪融資中籌集了 2200 萬美元,第一輪是由紅杉中國領投的 1000 萬美元,第二輪是由 Generative Ventures 領投的 1200 萬美元。6 月 7 日,Taiko 上線了 Alpha-3 激勵測試網。據 Taiko 官方介紹,該測試網側重於去中心化、以太坊等效的 ZK-EVM 部分。
延伸閱讀:Taiko項目詳解:被紅杉中國看重的Type-1 zkEVM
Kakarot zkEVM 是使用 Cario 語言部署的 EVM,通過增強 EVM 相容性來擴充模組 Starknet 生態系統的可靠性。Kakarot zkEVM 可以以不同的形式存在,在第一階段將 EVM 帶到 Starknet,第二階段 Kakarot 和 Madara 將合併到一個統一的堆疊中,以支援 L3 zkEVM,在第三階段 Kakarot 和 Madara 也可以組合在一起,啟用 Type 1 zkEVM。6 月 2 日,Kakarot zkEVM 完成 pre-seed 輪融資,StarkWare、LambdaClass 等機構以及 Vitalik Buterin、Nicolas Bacca、Rand Hindi 等天使投資人參投。
延伸閱讀:V神投資的Kakarot,將如何賦能Starknet和以太坊生態?
Type 2(位原始碼級等價 —— 完全等同於 EVM)
Type2 zkEVM 力求完全等效於 EVM,但不完全等效於以太坊。也就是說,它們從內部看與以太坊一模一樣,但它們在外部有一些差異,特別是在資料結構方面,如塊結構和狀態樹。目標是與現有應用程式完全相容,但對以太坊進行一些小的修改以使開發更容易並使證明生成更快。
Type 2 zkEVM 的優點是 VM 級別的完美等價。Type 2 zkEVM 對儲存以太坊狀態等內容的資料結構進行更改。這些是 EVM 本身無法直接訪問的結構,因此在以太坊上執行的應用程式幾乎總是可以在 Type 2 zkEVM rollup 上執行。該型別無法按原樣使用以太坊執行客戶端,但可以通過一些修改來使用它們,並且仍然可以使用 EVM 除錯工具和其他基礎設施。
Type 2 zkEVM 的缺點是驗證時間仍然很慢。Type 2 zkEVM 提供比 Type 1 zkEVM 更快的驗證時間,主要是通過刪除以太坊堆疊中依賴不必要的複雜和對 ZK 不友好的密碼學部分。比如它們可能會改變以太坊的 Keccak 和基於 RLP 的 Merkle-Patricia 樹,可能還會改變區塊和收據結構。這些修改顯著改善了證明者(prover)時間,但並不能解決所有問題。由於 EVM 固有的所有低效率和 ZK 不友好性,證明 EVM 的速度仍然很緩慢。
目前 Type 2 zkEVM 相關專案有 Linea 和 Polygon。
Linea 是由 Consensys 提供支援的 Type-2 zkEVM。通過整合具有完全 EVM 相容性的 ZKP,開發者能夠建立可擴充模組的 DApp 或將現有的 DApp 轉移到新平臺,且無需更改程式碼或重寫智慧合約。公開測試網已在今年 3 月 28 日釋出,並已新增到 Metamask 擴充模組程式的預設網路選項中。Linea 於 6 月 13 日 12:00 釋出 Alpha v0.2,此版本側重於測試實質性架構升級,為主網啟動做準備。
延伸閱讀:以太坊L2項目Linea:背靠小狐狸錢包Consensys,zkSync最強對手之一
Polygon zkEVM 是開源並採用 Type 2 zkEVM。它採用 ZK 證明來降低交易費用並提高吞吐量,同時保持以太坊 L1 的安全性。Polygon 在今年 2 月 14 日表示,Polygon zkEVM 已經通過了 100% 適用於 zkEVM 的以太坊測試向量,開發人員無需修改或重寫任何程式碼,且所有以太坊工具都可以與 Polygon zkEVM 無縫協作,意味著在 ZK Rollup 的 EVM 相容再邁出一大步,已達到 Type 2 的水平,完全等效於 EVM。Polygon zkEVM 主網測試版於 2023 年 3 月 27 日正式啟動。
延伸閱讀:分析Polygon四大ZK解決方案:有何特點及優勢?
Type 2.5(EVM 等效,gas 成本除外)
改善驗證時間的一種方法是是大大增加 EVM 中很難進行 ZK 證明的特定操作的 gas 成本。這可能涉及到預編譯、keccak 操作碼,以及呼叫合約或訪問記憶體或儲存或恢復的可能特定模式。
更改 gas 成本可能會降低開發人員工具的相容性,並破壞一些應用程式,但通常認為它比 「更深層次的」 EVM 更改風險更小。開發人員應該注意不要在一筆交易中要求超過一個區塊的 gas,而且不要使用硬編碼的 gas 量進行呼叫。
目前還沒具體專案是做 Type 2.5 EVM,它只是進入到 Type 2 的一個階段。
Type 3(位原始碼級等價 —— 幾乎等效於 EVM)
Type 3 zkEVM 幾乎是 EVM 等效的,但為了進一步縮短證明時間並使 EVM 更易於開發,為精確等效做出了一些犧牲。
Type 3 zkEVM 的優點是更容易構建,且驗證時間更快。Type 3 zkEVM 可能會刪除一些在 zkEVM 實現中特別難以實現的特性。此外,Type 3 zkEVM 有時在處理合約程式碼、記憶體或堆疊的方式上也存在細微差別。
Type 3 zkEVM 的缺點是相容性更差。Type 3 zkEVM 的目標是與大多數應用相容,而其餘部分只需要最少的重寫工作。也就是說,會有一些應用需要重寫,因為它們使用了 Type 3 zkEVM 刪除的預編譯,或者因為對 VM 不同處理的邊緣情況的微妙依賴。
目前 Type 3 zkEVM 相關專案有 Scroll。
Scroll 是由 Scroll 團隊與以太坊基金會的 PSE(Privacy and Scaling Explorations)小組合作開發的 EVM 等效 zk-rollup,目前處於 Pre-Alpha 測試網階段,旨在在位原始碼級別上與 EVM 完全相容。這意味著開發人員可以使用任何相容 EVM 的語言建立智慧合約並部署到 Scroll 上。Scroll 雖然目前正構建 Type 2 EVM,許多更復雜的預編譯尚未實現,因此被認為是 Type 3 EVM。據 Scroll 表示,預計在今年 7,8 月上主網,並表示可能會推出激勵生態發展的合作伙伴計劃。
延伸閱讀:Layer2 重量級項目》Scroll 完成 5,000 萬鎂融資,已上線 Alpha 測試網
當前,Type 3 EVM 只是一個過渡階段,直到新增預編譯的複雜工作完成,然後專案就可以轉移到型別 2.5 的 zkEVM。但在未來,Type 1 和 Type 3 EVM 也許會新增新的 ZK-SNARK 友好的預編譯,為開發人員提供低驗證時間和低 gas 成本的功能。
Type 4(開發語言級等價 —— 高階語言等效於 EVM)
Type 4 EVM 的工作原理,是將用高階語言編寫的智慧合約原始碼(例如 Solidity、Vyper 或中間語言)編譯為某種明確設計為 ZK-SNARK 友好的語言。
Type 4 zkEVM 的優點是更快的證明速度。因為該型別不對每個 EVM 執行步驟的所有不同部分進行 zk 證明,而是直接從高階程式碼開始,就可以避免很多成本。
Type 4 zkEVM 的缺點是它的相容性更差。一是合約在 Type 4 系統中的地址可能與它們在 EVM 中的地址不同;二是許多應用程式為了提高效率在某些部分使用手寫的 EVM 位原始碼,Type 4 系統可能不支援,許多除錯基礎設施也無法繼承。
目前 Type 4 zkEVM 相關專案有 zkSync Era 和 StarkNet。
zkSync Era 由 Matters Lab 建立。zkSync Era 是第一個在主網上啟動的 EVM,並且公眾可以完全訪問以將他們的資金橋接到系統或在網路上部署他們的程式碼。zkSync Era 使用不同的位原始碼格式,通過提供編譯器來支援 Solidity。它支援 Solidity,但不支援 EVM 位原始碼本身。例如 Hardhat 這樣的工具不能直接使用,儘管可以使用 zkSync 的外掛。
延伸閱讀:BitKeep研報:深度解讀 zkSync Era,原理、應用與生態
StarkNet 由 StarkWare 建立,是一個 zk-rollup L2,使用零知識證明為以太坊建立鏈下執行層。其實, EVM 並不是 Starknet 的原生功能。Starknet 使用 Warp 轉換器(由 Nethermind 提供)將 Solidity 程式碼轉換為 Cairo 以支援智慧合約部署。
延伸閱讀:Layer2》StarkNet Alpha 主網本週上線:快升級錢包避免損失
zkEVM 的挑戰與未來
由於 EVM 在構建時並未考慮 zk-proof 計算,因此它具有對證明電路不友好的特性,特別是在特殊的操作碼、基於堆疊的架構 儲存開銷以及證明成本等方面。但零知識技術的幾項突破使得緩解這些問題成為可能。
五種型別的 zkEVM 沒有明確的誰好誰壞,編號較低的型別與現有基礎設施的相容性更高但速度較慢,而編號較高的型別與現有基礎設施的相容性較低但速度更快。總的來說,不同的專案探索不同的型別對 zkEVM 和以太坊的發展都是有益的。
未來,將有多個 zkEVM 實現,它們既可用於 ZK Rollup,也可用於驗證以太坊鏈本身。從理論上講,以太坊無需為 L1 使用單個標準 zkEVM ,不同的客戶可以使用不同的證明。然而,要實現這樣的未來還需要相當長的時間。與此同時,我們會在擴充模組以太坊和基於以太坊的 ZK-rollup 的不同路徑上看到更多的創新。
📍相關報導📍
ZK-rollup 和 Optimistic-rollup 優缺點分析,為何zkSync手續費仍偏高?