最近,幾個ZK-Rollup項目宣布了他們自己的支持ZK-EVM 的主網或測試網的計劃。與此同時,2022 年8 月上旬,以太坊創始人Vitalik 在一篇博文中比較了不同類型的ZK-EVM。
ZK-Rollup 的聖杯,可以成為強大的以太坊擴容工具,已經重新成為市場關注的焦點,成為許多加密貨幣投資者期待已久的話題。
人們普遍認為,定於9 月下旬進行的以太坊合併會將網絡從PoW 轉變為PoS 並提高其性能。
事實上,Merge 不會改變區塊大小,平均時間會從13 秒變為12 秒。因此,性能提升將非常有限。在短期內,以太坊將不得不依賴Rollups 進行擴展。
在兩種主要的Rollup 類型中,即Optimistic Rollups 和ZK-Rollups,許多用戶更喜歡後者,因為ZK-Rollups 還可以通過耦合多個鏈下交易來降低交易費用。此外,他們可以通過零知識證明計算出有效性證明(validity proof),並將其發送到以太坊,從而繼承網絡的安全屬性,而無需像Optimistic Rollups 那樣配置挑戰期。
ZK-Rollups 僅適用於付款
也就是說,在早期,ZK-Rollups 主要因與EVM 和智能合約功能不兼容而受到批評。例如,用於Gitcoin 捐贈的主要支付方式zkSync 1.0 僅支持轉賬等基本功能。
目前,dYdX等現有的零知識應用都是自定義的,不支持通用,開發和修改難度很大。同時,不同的ZK應用自帶特定電路,互不交互,組成低。
因此,迫切需要支持基於以太坊的智能合約的ZK-Rollups。此外,與支持零知識證明的虛擬機的兼容性也是關鍵。
幸運的是,最近有幾個ZK-Rollup項目宣布了支持ZK-EVM 主網或測試網的計劃。今天我們來了解一下EVM、ZK-EVM、ZK-EVM的主要項目以及它們的區別。
什麼是EVM?
作為執行引擎,EVM(以太坊虛擬機)是以太坊網絡上智能合約的運行環境,其運行方式如下:
開發者用Solidity 等高級語言編寫業務邏輯(代碼); 編譯器將代碼編譯為低級字節碼; EVM 將字節碼解析成機器可讀的指令(操作碼)並執行相應的命令來修改系統狀態。
EVM 是一個基於堆棧框架的虛擬堆棧機,因此在執行操作碼時需要與堆棧、內存和存儲進行交互。
對於以太坊、擴展協議和競爭對手的公共網絡,EVM 幾乎已成為以太坊生態系統的代名詞,因為它代表了其開發人員、應用程序和工具。
如果公共網絡不支持EVM,那麼它必須從頭開始在自己的生態系統中培訓開發人員,他們必須開發新的應用程序和工具。在考慮Optimism 和Arbitrum 這兩個Optimistic Rollup 的巨頭時,一個是99% EVM 兼容,另一個是100%。
也就是說,在以太坊生態系統中,1% 的差異會導致明顯的優勢和劣勢。
它還表明,一個項目與EVM 的兼容性直接決定了它與以太坊生態系統的兼容性,只有兼容的項目才能實現現有以太坊合約的無縫遷移,以及輕鬆訪問生態系統中可用的許多工具。
下一個ZK-EVM
儘管EVM 在以太坊生態系統中發揮著關鍵作用,但ZK-EVM 的開發涉及一個非常複雜的過程。
ZK-EVM項目與EVM 兼容,並允許開發人員生成ZK 證明。有了它們,你可以直接部署和運行以太坊智能合約,而無需進行任何修改。同時,可以通過零知識證明程序運行計算的有效性。
EVM 開發者最初並沒有考慮ZK,因為在EVM 構建時,它沒有取得任何進展,因此沒有被主流認可。
2016 年,Zcash 採用了zk-SNARK,這標誌著零知識證明算法的首次採用。一些EVM 操作與ZK 不兼容,使用EVM 生成ZK 證明可能很困難或效率低下。
開發以高門檻著稱的ZK 需要加密貨幣學、數學和硬件方面的專業知識,而開發ZK-EVM 則更具挑戰性,因為它必須同時兼容EVM 和ZK。
幸運的是,ZK 領域近年來取得了長足的進步,包括Starkware、zkSync 2.0、Polygon 和Scroll 在內的項目正在加速ZK-EVM 的研發。特別是,最近三個項目最近宣布了推出測試網的計劃。
7 月19 日,Scroll 推出了pre-alpha 測試網,用戶可以在其中試用Uniswap(fork 版本)和Metamask 等演示程序。 7 月20 日,Matter Labs 宣布與EVM 兼容的zkSync 2.0 將於11 月左右在主網上發布,並發布了路線圖。 7 月20 日,Polygon 還宣布他們的ZK-EVM 測試網也將很快發布。
不同ZK-EVM 之間的比較
由於ZK-EVM 沒有統一的規範或設計標準,因此每個團隊都會構建他們的解決方案,從不同角度平衡EVM 兼容性和ZK 支持。
目前,大多數ZK-EVM項目採用以下兩種方法之一:
語言級別支持: 創建自定義EVM 操作碼; 構建具有不同架構的新虛擬機,提取ZK 友好操作; 通過編譯器將Solidity 轉換為新的虛擬機操作碼。字節碼級別支持:EVM 原生操作碼支持。
採用第一種方法的項目包括:StarkNet 和Starkware 的zkSync 2.0。
StarkNet 是Starkware 的通用ZK-Rollup 解決方案,可以運行任何以太坊dApp。開發人員可以使用編譯器並為Cairo(StarkNet 智能合約語言)構建Solidity,然後將dApp 部署到他們的ZK 兼容VM。
與Starkware 類似,zkSync 2.0 通過開發兩個編譯器前端:Yul 和Zinc,實現了ZK-EVM 的功能,它們基於開源LLVM 框架,生成最高效的zkEVM 字節碼。
Yul 是Solidity 的中間表示,可以在不同的後端編譯成字節碼; Zinc 是一種基於Rust 的通用零知識證明智能合約和電路語言。
這些項目在語言層面支持Solidity,開發者可以通過遷移實現和運行智能合約。但是,它的底層VM 架構不是EVM。嚴格來說,這些項目使用了一種zkVM。
另外,由於它們帶有不同的底層虛擬機命令,一些現有的開發工具不能直接使用。也就是說,與ZK 兼容的設計可以更有效地生成零知識證明。
採用第二種方法的項目包括Polygon ZK-EVM 和Scroll。 Polygon ZK-EVM 被稱為uVM,zkCircuit-optimized VM,帶有定制的操作碼來優化EVM 解釋。
EVM 字節碼是第一個在uVM 上編譯和運行的“微操作碼”。 Polygon ZK-EVM 計劃支持所有EVM 操作碼,是一個完全兼容以太坊的ZK 擴展解決方案。它與現有的智能合約、開發人員工具和錢包無縫協作。
與Polygon 一樣,Scroll 將設計一個跨越所有字節碼的電路,其中包括檢查EVM 執行的每個步驟,包括:
加載; 執行; 存儲升級等
在他的博客文章中,Vitalik 將ZK-EVM 分為幾種類型:
類型一:直接在以太坊上開發,流程過於復雜且效率低下,目前以太坊基金會正在調查此事。 2 型、2.5 型和3 型:Scroll 和Polygon Hermez 正在向2 型甚至2.5 型ZK-EVM 發展,但目前這兩種設計都應該被視為3 型。類型4:與Starkware 和zkSync 一樣,支持高級語言。
兩種類型都沒有比另一種“更好”或“更差”,並且沒有統一的標準來評估ZK-EVM。正如Vitalik 所說:“理論上,以太坊沒有必要為L1 使用單一的ZK-EVM 實現進行標準化; 不同的客戶可能使用不同的證明,因此我們繼續從代碼冗餘中受益。”
結論
由於代碼尚未開源,ZK-EVM項目並沒有比其他項目更好或更差,因為我們現階段無法比較它們的效率。
以太坊是最大的智能合約平台,擁有強大的生態系統和對網絡的巨大影響力。
需要說明的是,ZK-EVM 是ZK-Rollups 的聖杯,它只通過ZK-EVM 善用以太坊生態,讓你繼承網絡安全,更容易進入生態,以及高效代碼庫和工具。
2021 年初,Vitalik 在一篇博文中表示,“在短期內,樂觀的匯總可能會贏得通用EVM 計算,而ZK 將贏得簡單的支付、交易所和其他特定應用程序的用例,但在中期和長期運行,隨著ZK-SNARK 技術的改進,ZK rollups 將在所有用例中獲勝。”
隨著各種ZK-EVM項目的測試網/主網的發布,以太坊第2 層擴展將在不久的將來引人入勝。
參考:
ZK-EVM-p1概述,https://drive.google.com/file/d/1dhZ5GtSK4sHCNcklGzNHfR-lSzplpD8J/view
https://vitalik.ca/general/2022/08/04/zkevm.html
https://blog.matter-labs.io/zksync-2-0-hello-ethereum-ca48588de179
https://polygon.technology/solutions/polygon-ZK-EVM/
https://blog.hermez.io/introducing-hermez-ZK-EVM/
資訊來源:由0x資訊編譯自LIVECOINS。版權歸作者所有,未經許可,不得轉載