一文探究zkEVM:以太坊擴容方案的關鍵

作者:DeGate Team

來源:Medium

編譯:陳一晚風

在以太坊Layer 2擴展網路Arbitrum和Optimism網路都宣布其主網的公開測試版正式啟動后,Layer 2的整體數據增長都極其明顯,這也標志著以太坊Layer 2擴展解決方案之一Optimistic Rollup已經正式啟動。沒錯,這是一個屬于Layer 2的季節,

當像Arbitrum和Optimism這樣的Optimistic Rollup成為市場焦點時,另一個曾被路印協議CTO Steve Guo認證為最終完全可用的Layer 2網路zkEVM也取得了一些關鍵性的進展。現如今,我們看到越來越多地zkEVM已成為擴展以太坊的關鍵,本文就將會帶你深入了解zkEVM的基本原理和發展現狀,

概要

1、zkSync宣布推遲8月31日發布其2.0版本,基于zkEVM的zkSync 2.0有望成為第一個兼容 EVM的zk Rollup;

2、8月13日,Polygon宣布以2.5億美元收購以太坊Layer 2擴展解決方案Hermez,其核心技術是其zkEVM解決方案;

3、以太坊基金會在一份關于研發進展的定期更新聲明中表示,在過去幾個月中以太坊基金會資助籌建zkEVM團隊,希望能將EVM的所有操作碼直接通過ZK電路實現。

正如我們所知,在比較Optimistic Rollup和ZK Rollup的兩種擴容解決方案時,V神認為 Optimistic Rollups可能會在短期內贏得通用EVM計算,但從長遠來看,隨著ZK-SNARK技術的改進,ZK rollup才可以在所有的應用場景中“獲勝”,而所謂“ZK-SNARK技術的改進”主要是指zkEVM的成功。

zkEVM的作用

在開始探究zkEVM的作用前,讓我們先來重新認識一下以太坊。從本質上來說,以太坊就是一個基于交易的狀態機,在計算機科學中,狀態機是通過讀取一系列輸入,從舊狀態轉換到新狀態的機器。

從創世狀態開始,以太坊通過一個又一個的交易轉換到以太坊的當前狀態。該狀態包含所有帳戶地址及其映射的帳戶狀態。

其中,EVM或以太坊虛擬機負責處理交易。EVM作為堆棧機運行,程式員在其中使用Solidity等高級語言編寫代碼,然后將其編譯為EVM能夠理解的EVM字節碼,EVM以各種EVM操作碼的形式執行標準堆棧操作,最終產生一個新的狀態,

現在問題來了。我們知道zk Rollup解決方案需要為Layer 2上的交易生成零知識證明,并將它們傳遞回Layer 1進行驗證。為了生成零知識證明,交易的處理需要符合zk電路證明規范。而在EVM設計之初,設計者并沒有考慮支持零知識證明,因此我們需要 zkEVM,從技術上講,zkEVM 的含義是:運行在zk Rollup網路上的虛擬機,兼容EVM并且零知識證明友好,

兩種實施策略

對于zkEVM來說,目前主要有兩種實現策略,

1、直接支持現有的EVM操作碼集,與Solidity操作碼集完全兼容,使用此解決方案的人包括Hermez和以太坊基金會zkEVM,

2、通過設計一個零知識證明友好的新虛擬機并適應EVM開發工具來保持Solidity兼容性,該方案主要被zkSync使用。

對于第一種策略,由于它完全支持現有的EVM操作碼集,并且使用與EVM相同的編譯器,現有的生態系統和開發工具完全兼容,也更好地繼承了以太坊的安全模型。而第二種策略,它不受原始EVM操作碼集的約束,因此可以更靈活地將代碼編譯為對零知識證明更友好的操作碼集。它還免去了與所有原始EVM操作碼集兼容所需的繁重工作,

總的來說,第一種策略更兼容、更安全,但工作量更大;第二種策略更靈活、工作量更少,但需要額外的努力來適應。

主要解決方案對比

Hermez zkEVM

Hermez使用第一種策略,將整個EVM操作碼集轉換為微操作碼。

眾所周知,有一些可變的EVM操作碼,例如CALL、EXP、CREATE 等,它們對zk電路證明本質上是不友好的,而這些操作碼的邏輯可以使用微操作碼以一種更友好的方式來表達。微操作碼在uVM中執行,uVM使用大量加密工具實現zk完成,并使用Plookup算法提高證明和驗證效率,

Hermez zkEVM的另一個亮點是它同時使用了兩個證明系統,專門生成一個STARK證明,然后使用PLONK或Groth16生成一個STARK證明的證明并在Layer 1上進行驗證,就像一個證明的證據,原因是STARK的證明量大,驗證鏈上的成本高,而Groth16或PLONK的證明量小,驗證速度快,兩者的這種組合各有優勢,很容易被認為是一種組合使用非對稱和對稱加密算法的場景。

AppliedZKP zkEVM

與Hermez一樣,AppliedZKP zkEVM也使用第一種策略。AppliedZKP使用Bus Mapping映射思想來分離存儲和計算。基于Bus Mapping映射提取的正確存儲數據,State證明證明了數據的一致性,EVM證明證明了計算邏輯的正確性,

具體流程如下:

1. EVM通過Bus Mapping映射讀取所需的相關狀態,狀態由存儲、內存和堆棧組成;

2. EVM執行操作碼;

3. EVM通過Bus Mapping映射寫回新狀態;

4.State證明負責Bus Mapping讀寫數據的一致性和正確性,EVM證明負責EVM操作碼執行的正確性,

zkSync EVM

與Hermez和AppliedZKP不同,zkSync選擇了第二種策略,zkSync的zkEVM不是EVM的復制品,而是新設計的,可以運行99%的Solidity合約,并確保它在各種條件下(包括回滾和異常)正常工作,同時,zkEVM可用于在電路中高效生成零知識證明,

zkSync EVM使用TinyRAM來實現通用的操作碼集,而消耗大量gas的操作碼,例如SHA256和keccak,將特別實現其電路,最后使用遞歸聚合技術將所有證明聚合為一個以提高效率。

zkSync還為zkEVM開發了兩個編譯器前端:Yul和Zinc。Yul是一種微型Solidity表示,可以為不同的后端編譯成字節碼;Zinc是一種基于Rust的語言,用于智能合約和通用零知識證明電路。這為開發人員提供了更多選擇,

另外,zkSync在構建編譯器時,選擇了LLVM這個生產工業級產品最先進的編譯器框架,以確保編譯器足夠完整,并具有所有經典優化。

總結

從上述這些擴容項目中,我們看到在團隊的不斷努力下,zkEVM技術正在走向成熟,并將在大約六個月內實現與EVM兼容的zk Rollup擴展解決方案。

如今,區塊鏈技術正在進入一個前所未有的充滿爭議的時代。從公鏈之爭到以太坊擴容方案之戰,甚至到一個具體擴展解決方案,不同的項目都在相互競爭、追趕和超越,這其中蘊含著對現實世界的巨大游戲,很幸運,我們處于區塊鏈技術技術最具活力的時代,

0 条回复 A文章作者 M管理員
    暫無討論,說說你的看法吧