menu-icon
anue logo
鉅樂部鉅亨號鉅亨買幣
search icon
區塊鏈

坎昆升級前,總覽主流zkEVM方案優勢和侷限

BlockBeats 律動財經 2023-08-14 15:30

cover image of news article
律動財經圖片

引言

預計於 2023 年秋冬實施的以太坊重大升級——坎昆升級(Cancun-Deneb Upgrade),核心目標是增強以太坊網路的可擴展性、安全性和可用性,同時極大程度降低二層網路的 Gas 費。因此,如若成功實施,將直接利多太坊二層擴容(L2 Rollups)生態,甚至有望帶動整個 L2 賽道的爆發。

在 L2 擴容賽道中,具有極佳數據壓縮性能的零知識證明擴容方案(ZK Rollups)已然被認為是以太坊的中長期核心方案。以太坊創始人 Vitalik 於 2022 年根據各家 ZK Rollups 與 EVM(Ethereum Virtual Machine)以太坊虛擬機的兼容性將其分為 4 種不同的類型,為 zkEVM 類型確立了基礎標準。

這篇文章深受上述 Vitalik 的開創性分類標準的啟發。經過一年的發展,該領域已取得重大進展。本文旨在以清晰的邏輯和簡潔的語言,以 Vitalik 見解為基礎,提供賽道更新和更詳細的詮釋(技術小白友好)。

什麼是 EVM?

EVM(Ethereum Virtual Machine)以太坊虛擬機,是第一個圖靈完備的區塊鏈虛擬機。可以理解為是以太坊上的代碼運行環境,專門用以執行部署在以太坊網路上的智能合約。通過 EVM,智能合約能夠在去中心化網路上實現自動化的功能。

作為 2015 年發布的、迄今為止最久經考驗的區塊鏈虛擬機,EVM 絕對是以太坊非常重要的基礎設施。甚至在評判其他區塊鏈時,EVM 兼容與否已是一個重要的考量維度,因為 EVM 兼容的背後代表的不僅僅是智能合約執行環境、可用的以太坊工具集,更代表着巨大的網路效應和成熟複雜的生態。

不過,EVM 在設計之初,並未想象到有朝一日 ZK Rollup L2 會成為以太坊擴容的核心方案,因此 EVM 的設計並沒有考慮要對零知識證明友好。這就使得構建零知識證明友好的 EVM(zkEVM)變得非常困難。

什麼是 zkEVM?

正因為零知識證明(Zero Knowledge Proof)和以太坊虛擬機(EVM)兼容方面的難度之高,早期的 ZK Rollup 是不支持 EVM 的。它們普遍缺乏執行智能合約的能力(或者支持特別的虛擬機),因此受限於相對簡單的特定場景:比如 代幣兌換(swap)和支付(payment)。

為了解決這個問題,許多組織和研究人員專注於創建 zkEVM(Zero Knowledge Ethereum Virtual Machine),顧名思義,它就是為智能合約在 EVM 中的執行(過程和結果)生成零知識證明的。

隨著 ZK Rollup 擴容方案確定性的增加和技術的進展,各家 zk 擴容項目根據在兼容性 Compatibility 和性能 Performance(生成零知識證明的時間 Proving Time)之間做衡量和取捨,開創了不同的將 EVM 執行與零知識證明計算結合的方法。

不同類型的 zkEVM:

2022 年 Vitalik 曾發文闡述「不同類型的 zkEVM」,並將市面上的 zk 擴容項目做了大致的分類和對比。

接下來讓我們用淺顯的語言和清晰的邏輯梳理一下 zkEVM 的類型、技術架構、以及各自的優缺點。

Type1 類 zkEVM :完全等效於以太坊

Type2 類 zkEVM :完全兼容 EVM 以太坊虛擬機(曾經還有 Type2.5 類,如今看來基本與 Type2 類融合了)

Type3 類 zkEVM :幾乎兼容 EVM 以太坊虛擬機

Type4 類 zkEVM :兼容高級語言

Type1 類 zkEVM——完全等效於以太坊

架構:

完全等同於以太坊且無需改變以太坊系統環境的任何部分。

無需取代哈希(Hashes)、狀態樹(State Trie)、交易樹(Transactions Trie)、預編譯的合約(Precompiles),和任何其他共識邏輯(In-consensus Logic)。

其目標是與現有的應用程序完全兼容,開發者可以將應用程序絲滑地照搬過去。

優點:

是所有類型 ZK Rollup 中兼容程度最高的方案。因此也是開發者最友好對方案——允許開發者將現有代碼零摩擦(無需修改)地部署到 L2 上運行,因為所有的共識邏輯和系統環境完全等同於以太坊

以太坊本身探索擴容的方向高度一致,因為在 Type1 類 zkEVM 上的探索,未來是可以被無摩擦地引入到 Ethereum 本身,從而使得以太坊 L1 本身更具可擴展性。

它可以讓 Rollup 無摩擦地照搬現有的海量以太坊基礎設施(例如:以太坊執行客戶端可以按原來的方式用於生成和處理 Rollup 區塊、現有的區塊瀏覽器和區塊生成等工具也可以絲滑地部署到 L2)。

能夠如同現在的以太坊一樣驗證以太坊區塊,或者更確切來說是驗證執行層端(包括所有交易執行、智能合約和帳戶邏輯,但目前還不包括信標鏈共識邏輯)。

正如先前提到的,完全等價以太坊的一大價值,便是可以藉助以太坊現有的巨大網路效應和成熟複雜的生態。

缺點:

以太坊在融合零知識證明方面所面臨的問題,Type1 類方案也同樣面臨(畢竟它是以太坊等價,而以太坊最初並非為了 zk 功能設計的)。

最大的問題就是生成證明所需時間久。針對這個問題,目前行業里主要的解決方案主要是:通過巧妙的工程大規模並行化證明,或通過 硬體優化來加速。

主流項目:

以太坊基金會 PSE(Privacy and Scaling Explorations 隱私和擴容)團隊

Taiko:今年 7 月已更新至 Alpha-4 測試網,預計 2024 年年初上線主網。Taiko 項目從最初就優先考慮去中心化和兼容性,是目前第一家且唯一一家實現去中心化提議者(proposer)的 ZK Rollup。

Type2 類 zkEVM——完全兼容 EVM 以太坊虛擬機

架構:

力求完全兼容 EVM 以太坊虛擬機,但不等效於以太坊

以太坊自身的運行環境相比,此類型 zkEVM 主要對區塊結構、狀態樹的數據結構、gas fee 的定價邏輯(根據 zk 友好度重新定價)和數據儲存等方面進行了一些修改,使 zk 驗證證明生成得更快更便宜。

其目標是儘可能與絕大部分現有應用程序兼容,少數應用需進行一些改動。

優點:

通過對 gas fee 的重新定價(越 zk 不友好的 op code 價格越貴,反之亦然),和刪除部分對 ZK 不友好的以太坊堆棧,來提供比 Type1 類更快的驗證時間。

Type2 類型可以做到與極大部分現有的以太坊應用程序兼容,因此絕大多數開發者和用戶層面基本感受不到摩擦。

雖無法零修改地直接使用以太坊執行客戶端,但通過一些調試仍可以支持現有的 EVM 調試工具和其他開發基礎設施。因此仍在極大程度上可以借力於以太坊現有的繁榮生態。

缺點:

更改執行環境的影響範圍雖小,但中長期依舊存在潛在的開發問題。比如將以太坊常用哈希(Keccak)替換為其他 zk 友好的哈希值(例如 Poseidon ),有可能會導致那些依賴於 Keccak 哈希值(涉及到歷史數據)的程序應用(比如:跨鏈橋。大致原理:跨鏈橋不是實時通訊,通常是你在 A 鏈做了一個行為——比如已經 burn 了什麼;要在 B 鏈做相互對應行為——要鑄造什麼…那本質就是你在 B 鏈上需要去證明 A 鏈的歷史數據,因此會涉及到使用 Keccak 來證明歷史數據)在遷移到 Type2 類型項目後出現不兼容問題(無法使用、或者跑出不同結果)。

對 gas fee 定價規則的更改(本意是通過重新根據對 zk 友好程度來定價 op code,來「引導」開發者減少使用 zk 不友好的 op code),對於已經在以太坊上已經進行過 gas fee 優化的合約、甚至是以太坊上的 gas fee 優化工具就會帶來問題。

這些修改雖然和 Type1 類 zkEVM 相比,進一步提高了證明者的效率,但和 Type4 類 zkEVM 相比,證明時間依舊是一個相對缺點。

主流項目:

Scroll:2022 年 9 月上線 Pre-Alpha 測試網,2023 年 2 月上線 Alpha 測試網,預計於 2023 年 8 月上線主網。測試網上線時屬於 Type3 類 zkEVM,但正在逐步增強 EVM 兼容性並向 Type2 類 zkEVM 過渡。

Polygon zkEVM(Polygon 團隊的 ZK Rollup 方案):2023 年 3 月上線了主網 Beta 版本。上線時屬於 Type3 類 zkEVM,但目前在向 Type2 類 zkEVM 過渡。

Type3 類 zkEVM——幾乎兼容 EVM 以太坊虛擬機

架構:

Vitalik 在其 2022 年的 blog 文章中稱,Type3 類 zkEVM 更像是一個過渡(通過提高兼容程度過渡為 Type2/1 類;或者通過降低兼容程度、提升 zk 友好度,過渡為 Type4 類)。

近乎兼容 EVM 以太坊虛擬機。通過在兼容性方面進一步犧牲,使其 zkEVM 更易於開發、zk 證明生成速度更快。

刪除了更多在 zkEVM 中難以實現的功能(比如預編譯功能)。

在處理合約代碼(contract code)、內存(memory)或堆棧(stack)方面存在更大差異。

目標是與大多數現有應用程序兼容。

優點:

相比起 Type1 和 Type2 類 zkEVM,此類型更加 zk 友好,運算 zk 證明時間更短。

相比起 Type4 類 zkEVM 可以兼容的現有以太坊應用程序更多。

缺點:

相比起 Type1 和 Type2 類 zkEVM,此類存在更高的不兼容性和更多元素的犧牲(對以太坊開發者更加不友好)。這也是為什麼 Type3 類更像是一個過渡,處於此類的方案大機率會通過提升兼容度,過渡到 type2 類 zkEVM。

相比起 Type4 類 zkEVM 證明速度更慢。

主流項目:

Scroll:2022 年 9 月上線 Pre-Alpha 測試網,2023 年 2 月上線 Alpha 測試網,預計於 2023 年 8 月上線主網。一年前 Scroll 屬於此類型,但目前通過提升以太坊兼容度,在向 Type2 類 zkEVM 發展。

Polygon zkEVM(Polygon 團隊的 ZK Rollup 方案):2023 年 3 月上線了主網 Beta 版本。上線時屬於 Type3 類 zkEVM,但目前在向 Type2 類 zkEVM 過渡。

Type4 類 zkEVM——兼容高級語言

架構:

此類實際上屬於 zkVM(零知識證明虛擬機,而非零知識證明以太坊虛擬機)。

可以理解為編程語言層面的兼容。大致邏輯是:開發者可以繼續使用他們在以太坊上習慣使用的編程語言(比如 Solidity)編寫智能合約。此類型項目會用編譯器將此編程語言轉換為它們自定義的可讀代碼(比如 Starkware 使用 Warp 編譯器將 Solidity 代碼轉換為 Cairo 字節碼;zkSync 通過 LLVM 編譯器將 Solidity 代碼轉換為其自定義的虛擬機可執行的代碼 LLVM-IR)進行編譯,並在它們自定義的環境中(比如 Starknet 的 Cairo VM 和 zkSync 的 Sync VM)執行。

目標是低成本、高效率、最大化零知識證明友好性。

優點:

非常快的驗證時間。

直接從高級語言編譯可以大大降低成本(時間、金錢和計算工作量)。

降低成為證明者的技術門檻,提高去中心化程度。

此類 zkEVM 可以通過使用其自定義的虛擬機原生支持帳戶抽象(Account Abstraction)。因為 EVM 等效的鏈無法原生支持帳戶抽象,需要通過以太坊的 ERC-4337 來實現。

缺點:

大量現有的以太坊應用程序無法被複製到這類 zkVM 中,或者在複製過程中會出現問題:比如 合約在 Type 4 類 zkVM 系統中的地址可能與 EVM 中的地址不一樣;Type4 類 zkEVM 不支持手寫的 EVM 字節碼(而目前許多應用程序都會使用手寫的 EVM 字節碼以節省 gas fee);(先前提到了此類型是通過編譯器達到 Solidity 代碼語言層面的兼容)其編譯器並不支持 Solidity 的一些功能。

以太坊開發者如果想將應用部署到此類項目上,需要進行更複雜的的調整。因此,和前幾類 zkEVM 相比,此類項目的開發者友好度相對低,有可能影響生態的發展和技術的迭代速度。

極難借力於以太坊現有的複雜繁榮的生態和網路效應。

主流項目:

zkSync Era(Matter Labs 團隊構建的 ZK Rollup 方案):2020 年 6 月上線 zkSync Lite(zkSync 1.0),主要支持簡單的支付(payment)和資產兌換(swap)場景,並不支持 EVM 兼容的智能合約;2023 年 3 月上線 zkSync Era(zkSync 2.0),通過上述架構可以實現在高級語言層面的兼容。zkSync 的目標本就不是 EVM 兼容,而是提高零知識證明生成速度。

Starknet(Starkware 團隊構建的 ZK Rollup 方案):2021 年 11 月上線主網,今年 7 月已更新至 v0.12.0 版本。其自身屬於 Type4 類 zkEVM,目標本就不是 EVM 兼容。但目前它上面也有像 Kakarot 這樣的項目,旨在使 Starknet 也能達到類似 Type 2.5-3 類 zkEVM 的兼容程度)。

基於 Vitalik 2022 年對於不同 zkEVM 的分類,再結合各家項目的進展(截止 2023 年 8 月),我們可以用下圖簡單地總結:

各類 zkEVM 主流項目

Vitalik 在其文末總結稱:「就我個人而言,我希望隨著時間的推移,通過 zkEVM 的改進和以太坊本身的改進相結合,使其(以太坊)對 ZK-SNARK 更加友好,最終一切都將成為 Type1 類。

在這樣的未來,我們將有多個 zkEVM 實現,它們既可以用於 ZK Rollup(零知識擴容),也可以用於驗證以太坊鏈本身。從理論上講,以太坊沒必要為 L1(第一層)使用制定單一的、標準化的 zkEVM 規範;不同的客戶端可以選擇使用不同的證明方式,這樣我們就可以繼續受益於代碼層面的冗餘。

但是,要實現這樣的未來,還需要相當長的時間。與此同時,在以太坊(自身)擴容和基於以太坊的 ZK Rollup 的不同路徑方面,我們也將會看到大量的創新。」

同時,需要強調的是,雖然市面上主流的 zkEVM 分類方式是 Vitalik 2022 年推出的分類(本文引用的),但同時也存在其他的分類標準。且無論如何分類,這些 zkEVM 類型並沒有絕對的優劣之分。它們只是在兼容性與速度之間有所取捨:Type1 類 zkEVM 與以太坊的兼容性最高,但證明速度較慢(在 ZK Rollup 賽道中屬於);Type4 類 zkEVM 與以太坊的兼容性較差,但驗證速度更快。

當然,zkEVM 的兼容性和速度實際上並不是開發者考量應該基於哪個 ZK Rollup 去部署應用的唯一指標。還有許多其他的因素會影響他們的選擇,比如:

L2 交易排序的去中心化程度:sequencer/proposer 是否是去中心化的,這直接影響到生態參與者的複雜程度,以及整個網路的安全性;

費用:以哪些代幣支付費用、一條公鏈的代幣經濟模型如何;

生成證明的規則:對於 prover 的激勵機制、加速生成證明的硬體標準;

自託管:是否有明確的機制來確保 L2 發生事故的時候仍然能夠在 L1 恢復用戶資產;

數據可用性:完整的數據可用性成本自然要高些,是否可接受有些 ZK Rollup 採用的較低成本的數據可用性模式。

但由於多數通用 ZK Rollup 項目目前還處於測試網階段,以上諸多因素尚無法做橫向對比。

最後,任何 zkEVM 項目所屬的類型也並非是靜態不變的。隨著各家方案在 zkEVM 方面的探索、甚至是以太坊本身的改進,有可能所有方案最終都能達到 Type 1 類 zkEVM 的效果。屆時我們將有多個 zkEVM 實現——既可用於 ZK Rollups,又可用於驗證以太坊鏈本身。

而在那之前,讓我們期待看到在擴展以太坊和 ZK Rollup 不同路徑上的持續創新。

原文連結

暢行幣圈交易全攻略,專家駐群實戰交流

▌立即加入鉅亨買幣實戰交流 LINE 社群(點此入群
不管是新手發問,還是老手交流,只要你想參與虛擬貨幣現貨交易、合約跟單、合約網格、量化交易、理財產品的投資,都歡迎入群討論學習!

前往鉅亨買幣找交易所優惠






Empty