各家zkEVM 對比誰能抓住這個ZK-Rollup 的聖杯

作者:ViaBTC Capital

近期有幾個 ZK-Rollup 項目相繼宣布支持 ZK-EVM 的主網或測試網的上線計劃,而在2022年8月初,以太坊創始人 Vitalik 發表了一篇博文對比了不同類型的 ZK-EVM。 ZK-EVM,這個ZK-Rollup 的聖杯,又一次引起市場的關注,它在未來可能會是以太坊擴容的利器。

以太坊擴容是一個老生常談的話題,也是眾多用戶期望的事情。不少人可能會有一個認識誤區,即計劃在9月底升級的以太坊合併會把共識機制從 PoW 轉為 PoS 將能夠改善以太坊性能。但實際上,合併沒有改變區塊大小,出塊時間也僅僅是從平均13秒變為12秒,所以屆時以太坊性能提升預計有限。因而,以太坊短期內擴容的希望還在二層網絡(Rollup)。在 Rollup 兩種主流方向 Optimisic Rollup 和 ZK-Rollup 裡,相當一部分人更期待後者,因為 ZK-Rollup不僅同樣可以通過將打包多筆鏈下交易來降低網絡手續費,更重要的是它能夠通過零知識證明計算出一個有效性證明並提交到以太坊網絡來繼承以太坊的安全性,無需像 Optimistic Rollup 那樣設置一個挑戰期。

只能支付的ZK-Rollup

但ZK-Rollup早期為人詬病的地方是不能兼容 EVM,不能支持智能合約功能,例如 Gitcoin 捐贈主要支付途徑的 zkSync 1.0 僅能支持轉賬等基本功能。目前市場上的 ZK 應用如 dYdX,是專門定制的應用無法通用,開發難度大,改動麻煩。同時,由於不同 ZK 應用有各種專用電路,無法相互調用,可組合性差。因此市場急需能夠支持以太坊智能合約的ZK-Rollup,而其中關鍵門檻就是能夠支持零知識證明的虛擬機。幸運的是,近期有幾個 ZK-Rollup 項目相繼宣布支持 ZK-EVM 的主網或測試網的上線計劃。本文將介紹 EVM、ZK-EVM 以及主要的 ZK-EVM 項目和它們的區別。

什麼是 EVM?

EVM 指的是以太坊虛擬機(Ethereum Virtual Machine),它相當於執行引擎,是以太坊智能合約的運行時環境(Runtime)。開發者通過高級編程語言如 Solidity 編寫業務邏輯,然後編譯器把代碼編譯成低級編程語言字節碼(bytecode),EVM 再把字節碼解析成機器可讀指令即操作碼(opcode)並執行相應指令修改系統狀態。 EVM 是基於堆棧結構的虛擬機(stack machine),在執行opcode的時候需要和stack、memory、storage交互。

對於以太坊、各種擴容協議和競爭公鏈而言,EVM 幾乎成為以太坊生態的代名詞,代表以太坊生態的開發者、應用和工具。如果某個公鏈不支持EVM,那麼它需要重新培育自己生態內的開發者,而開發者也需要重新開發應用和工具。有人曾對比Optimisic Rollup 的兩大巨頭Optimism 和Arbitrum,指出其中一個協議僅99% 兼容EVM 而另一個協議可以100% 兼容EVM,就算1% 的區別也會產生以太坊生態競爭的劣勢。由此可見,兼容EVM 直接關乎對以太坊生態的兼容性,只有兼容EVM,開發者才可以無縫遷移現有的以太坊合約,以太坊生態的各種工具才能順利接入。

即將到來的 ZK-EVM

儘管EVM 在以太坊生態發揮著關鍵作用,但ZK-EVM 的開發相當複雜。 ZK-EVM 是指能夠支持生成零知識證明並兼容EVM,以太坊智能合約可以無需修改而直接部署運行,同時程序的運行可以通過零知識證明其計算的有效性。 EVM 在設計之初並沒有考慮到ZK,這也因為當時ZK 尚未取到突破性進展還沒有被主流採用,直到2016 年才第一次有零知識證明算法zk-SNARK 被Zcash 採用。 EVM 裡有一些操作對零知識不友好,即很難生成零知識證明,或生成證明的效率低,或生成的證明太大。

很多人知道ZK 開發門檻很高,不僅涉及密碼學、數學也涉及到硬件知識,而ZK-EVM 開發更屬於難上加難的級別,它既要能夠兼容EVM,又要對零知識友好。幸運的是,在過去的幾年時間裡,ZK 領域取得了越來越多的重大突破。 ZK-EVM 賽道幾位選手包括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 之間權衡設計出各自方案,目前基本分為兩種思路:

1. 編程語言層面支持,自定義EVM 操作碼,把ZK 友好的操作抽出來重新設計新的、架構不同的虛擬機,通過編譯器將Soilidity 編譯成新的虛擬機操作碼

2. 字節碼層面支持,支持原生EVM 操作碼

第一種思路的項目包括有Starkware 的StarkNet 和zkSync 2.0。 Starkware 的ZK-Rollup 通用解決方案StarkNet 可以運行任意的以太坊dApp。開發者可以通過編譯器將Solidity 編譯成StarkNet 的智能合約語言Cairo,再部署到其ZK 友好的VM。類似Starkware,zkSync 2.0 通過開發編譯器前端Yul 和Zinc 來實現ZK-EVM 功能。 Yul 是一種中間Solidity 表示,可以編譯為不同後端的字節碼。 Zinc 是用於智能合約和通用零知識證明電路的基於Rust 的語言。它們都是基於開源框架LLVM,能夠實現最高效的ZK-EVM 字節碼。

這一類項目在語言層面兼容Solidity,開發者可以把用Solidity 寫的智能合約通過轉移的方式來部署運行,但是底層VM 架構並非是EVM,嚴格來說是一種zkVM。而且由於底層的虛擬機指令集的不同,有一些現有開發工具不能直接使用,但是對ZK 友好,能更有效生成零知識證明。

而第二種思路的項目包括有Polygon ZK-EVM 和Scroll。 Polygon ZK-EVM 叫做uVM,zkCircuit 優化的VM 具有定制的操作碼以優化EVM 操作,EVM 字節碼先被編譯成“微操作碼”(Micro opcode)再在uVM 執行。 Polygon ZK-EVM 計劃支持全部EVM 操作碼,是一個與以太坊完全兼容的零知識(ZK) 擴展解決方案:所有現有的智能合約、開發人員工具和錢包都可以無縫運行。 Scroll 也和Polygon 的類似,會為每個字節碼設計電路,包括驗證EVM 執行的每一個步驟,包括加載bytecode,執行opcode,更新storage 等。

而在Vitalik 的博文裡,他將ZK-EVM 分為幾種類型。其中,類型1 是直接在以太坊上面直接開發ZK-EVM,這個開發過於復雜而且目前效率太低,以太坊基金正在研究中。類型2、類型2.5 和類型3 是EVM 等效的ZK-EVM,Scroll 和Polygon Hermez 目前處於類型3 這個階段,朝著類型2.5 乃至類型2 努力。類型4 是高級語言兼容的ZK-EVM,包括Starkware 和zkSync。這些類型並無好壞之分,而且ZK-EVM 也沒有統一的標準。正如Vitalik 所說,“從理論上講,以太坊不需要為L1 使用單一的ZK-EVM 實現進行標準化;不同的客戶可以使用不同的證明,因此我們繼續從代碼冗餘中受益。”(Theoretically, there is no need for Ethereum to standardize on a single ZK-EVM implementation for L1 use; different clients could use different proofs, so we continue to benefit from code redundancy.)

總結

各家的ZK-EVM 方案設計並無絕對的好壞,因為目前大家代碼尚未開源也無法比較效率。以太坊作為最大的智能合約平台,擁有強大的生態系統和網絡效應,ZK-EVM 是ZK-Rollup 的聖杯,只有通過ZK-EVM,ZK-Rollup 才能依託以太坊的生態和網絡效應,在繼承以太坊安全性、降低手續費的同時更容易獲得充滿活力的開發者生態、經過時間考驗的代碼庫和工具。 2021 年初,Vitalik 曾在其博客稱,短期內,Optimisic Rollup 可能會在通用EVM 計算方面勝出,而ZK-Rollup 可能會在簡單的支付、交易和其他特定於應用程序的用例中勝出,但在隨著ZK-SNARK 技術的改進,中長期ZK-Rollup 將在所有用例中勝出。隨著各個ZK-EVM 項目的測試網/主網陸續上線,相信在不久的將來,以太坊二層擴容將會精彩紛呈。

參考資料:

ZK-EVM overview-p1,

https://drive.google.com/file/d/1dhZ5GtSK4sHCNcklGzNHfR-lSzplpD8J/view

https://vitalik.ca/general/2022/08/04/zkevm.html

StarkNet

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/

Total
0
Shares
Related Posts