作者| Callum@Web3CN.Pro
ZK Rollup作為一種以太坊的擴容方式,它允許交易在鏈下進行處理,並在主鏈上以單個壓縮交易的形式合併。這個過程提高了交易吞吐量,降低了交易成本,通過零知識證明而保證狀態的有效性,提高主鏈的隱私性和安全性。因此,ZK Rollup被認為是以太坊擴容的終極解決方案。
但目前零知識證明生成需要較大的算力,技術難度也更高,同時由於以太坊虛擬機(EVM)不設計支持ZK 電路,無法直接執行智能合約。為了解決這個問題,許多開發者嘗試開發zkEVM,它可以以與零知識證明計算兼容的方式運行智能合約。對於許多ZK Rollup來說,實現EVM等價意味著實現了完整的字節碼級兼容性,目前來看,zkEVM是以太坊擴容的關鍵。
本文將研究五種常見的zkEVM類型及各類型項目進展,並指出各類型zkEVM 在設計上的挑戰。
什麼是zkEVM
zkEVM 是一個支持零知識證明計算的EVM 兼容的虛擬機,它是一種基於以太坊區塊鏈技術的應用程序開發平台。可以將EVM合約在無需修改的情況下直接部署運行,同時程序的運行可以通過零知識證明其計算的有效性。
zkEVM的優勢
1.zkEVM提高兼容性。 zkEVM與為在EVM 中運行而編寫的智能合約高度兼容,可以與EVM 基礎設施無縫集成,開發者無需重新開發應用就可以將現有的以太坊應用程序遷移到L2上,同時zk proof繼承了以太坊網絡安全性。
2.zkEVM增強可擴展性。 zkEVM 使用的是非交互式證明,提高了吞吐量,減少了延遲,因為驗證L2 區塊的證明比重新執行新提議的區塊中的每個交易更快。
3.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 力求完全和以太坊等效。它不會更改以太坊系統的任何部分以使其更容易生成證明,不會取代哈希、狀態樹、交易樹、預編譯或任何其他共識邏輯。
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部分。
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 等天使投資人參投。
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,此版本側重於測試實質性架構升級,為主網啟動做準備。
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 日正式啟動。
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月上主網,並表示可能會推出激勵生態發展的合作夥伴計劃。
當前,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 的插件。
StarkNet由StarkWare創建,是一個zk-rollup L2,使用零知識證明為以太坊創建鏈下執行層。其實, EVM 並不是Starknet 的原生功能。 Starknet 使用Warp 轉換器(由Nethermind 提供)將Solidity 代碼轉換為Cairo 以支持智能合約部署。
zkEVM的挑戰與未來
由於EVM 在構建時並未考慮zk-proof 計算,因此它具有對證明電路不友好的特性,特別是在特殊的操作碼、基於堆棧的架構存儲開銷以及證明成本等方面。但零知識技術的幾項突破使得緩解這些問題成為可能。
五種類型的zkEVM沒有明確的誰好誰壞,編號較低的類型與現有基礎設施的兼容性更高但速度較慢,而編號較高的類型與現有基礎設施的兼容性較低但速度更快。總的來說,不同的項目探索不同的類型對zkEVM和以太坊的發展都是有益的。
未來,將有多個zkEVM 實現,它們既可用於ZK Rollup,也可用於驗證以太坊鏈本身。從理論上講,以太坊無需為L1 使用單個標準zkEVM ,不同的客戶可以使用不同的證明。然而,要實現這樣的未來還需要相當長的時間。與此同時,我們會在擴展以太坊和基於以太坊的ZK-rollup 的不同路徑上看到更多的創新。