zkSync2.0主網上線在即先行了解各類zkEVM

Vitalik是希望隨著時間的推移,通過zkEVM的改進和以太坊本身的改進相結合,最終所有zkEVM都成為Type-1類。這樣的好處在於,未來會有多個zkEVM,既可以用於ZK Rollup,也可以用於驗證以太坊鏈本身(未來以太坊會對ZK-SNARK更加友好)。

作者:0x1

原文:《zkSync2.0主網上線之際淺析各類zkEVM》

以太坊的發展路線越來越傾向於Modular Blockchain,其本質就是Layer1的data sharding和Layer2的Rollups擴容相結合,成為一種模塊化架構,從而推動以太坊實現“世界計算機”的初衷。其中Rollups的技術路徑選擇方面,ZK Rollup被認為是以太坊擴容的最終目標。

ZK Rollup

ZK Rollup的核心工作機制是將鏈上的用戶狀態壓縮存儲在一棵Merkle樹中,並將用戶狀態的變更轉移到鏈下進行,同時通過zksnark/zkstark證明來保證該鏈下用戶狀態變更過程的正確性。通俗地理解,ZK Rollup可以理解為通過zksnark或zkstark來使用亞線性處理以驗證線性數量的語句。比如,1000條語句需要10次驗證者檢查,10000條語句需要11次驗證者檢查。所以,呈現出來的結果是,ZK rollup可以實現以太坊擴容。

ZK Rollup的大致區塊鏈事務處理過程如下:

  1. 用戶將他們的資產鎖定在L1上的zk rollup智能合約中;

  2. 用戶將涉及這些資產的交易提交給L2,L2中的某些角色(Sequencer,早期多數項目是中心化的,也有項目開始採用去中心化方式)將這些交易通過某些規則收集成有序批次,並為每個批次生成有效性證明(zksnark/zkstark)和聚合狀態更新;

  3. 這個狀態更新和證明被提交到L1的zk rollup智能合約並被驗證,就會更新在L1的區塊鏈上;

  4. 用戶可以使用這種L1狀態(取決於不同的數據可用性機制)來檢索他們的資產,從而實現完全的自我託管,所以zk rollup也被認為繼承了以太坊安全。

zkEVM的必要性

眾所周知,第一代的ZK Rollups是不支持EVM的,可編程性和可組合性較差,只能限定在一些特定的場景,比如:Loopring只能限定在Payments&Swaps等場景;Immutable只能限定在NFT Minting&Trading&Games等場景;zksync1.0其實也不支持zkEVM。不具有通用性。

後來,頭部的那些ZK Rollups開始探索,在ZK Rollup上研發支持EVM字節碼的代碼執行環境,從而使得以太坊上的智能合約可以從以太坊遷移到ZK Rollup上,而無需從頭開始編寫代碼。

EVM是第一個圖靈完備的區塊鏈虛擬機,於2015年發布。它是迄今為止最久經考驗的區塊鏈虛擬機,也是以太坊非常重要的智能合約基礎設施。甚至在談到其他區塊鏈時,也會將EVM兼容與否作為一個評判維度,因為EVM兼容的背後代表的不僅僅是智能合約執行環境,也代表著可用的以太坊生態和工具集,更代表著不可忽視的網絡效應。所以,ZK Rollups也沒敢忽略這一塊兒。

zkEVM則可以理解為將EVM作為智能合約引擎運行在ZK Rollup中。 zkEVM的目標是在不失去Rollup性能優勢的基礎上,將以太坊體驗完全帶入到L2。

截至目前,zkSync2.0、Polygon Hermez2.0、Scroll等頭部的通用ZK Rollup項目都已經先後推出了zkEVM測試網,StarkNet則已經進入到了Alpha Mainnet階段。

zkEVM的兼容性分類

當前的ZK Rollups的zkEVM與Ethereum本身並非完全兼容,更遑論“以太坊等效”的終極願景。所以,不僅以太坊本身的升級規劃在遷就Rollup友好型,各個ZK Rollup項目也一直在解決與以太坊的兼容性問題。

Vitalik根據與現有EVM基礎設施的兼容性程度,將zkEVM通用ZK Rollup分為4類:

zkSync2.0主網上線在即,先行了解各類zkEVM

Type-1:完全等效於以太坊

Type-1型zkEVM力求完全且毫不妥協地與以太坊等效。無需改變以太坊系統的任何部分,無需取代哈希、狀態樹、事務樹、預編譯或任何其他共識邏輯。簡而言之,Type-1型的zkEVM完全等效於Ethereum。

Type-1型zkEVM能夠像以太坊一樣驗證以太坊區塊,或者至少驗證執行層端(包括所有交易執行、智能合約和賬戶邏輯,不包括信標鏈共識邏輯)。

Type-1型zkEVM是以太坊最終需要的,也是Rollups的最理想選擇。一方面,Type-1型zkEVM可以讓Rollups重用大量的基礎設施(例如:Ethereum Execution Clients、Block Explorers、Block Production等);另一方面,Type-1型zkEVM能使得以太坊Layer1本身更具可擴展性,因為在Type-1型zkEVM上探索的一些對以太坊的修改,也許未來會被引入到Ethereum本身。

當然,Type-1型zkEVM也有缺陷。以太坊最初並非圍繞ZK友好型設計的,因此以太坊協議的許多部分需要大量計算才能進行ZK證明。 Type-1型與以太坊一樣,無法緩解在這個事情上的低效(在生成證明方面,需要較長時間)。針對這個問題,目前行業裡提出的解決方案主要是:通過巧妙的工程大規模並行化證明,或通過ZK-SNARK ASIC來實現硬件加速。

目前,主要有兩個團隊在嘗試探索Type-1 ZK-EVM,一個是Privacy and Scaling Explorations team,一個是Taiko。

Type-2:完全等效於EVM

Type-2型zkEVM力求完全等效於EVM,但不完全等效於以太坊。它們與現有的應用程序也完全兼容,但需要對以太坊進行一些小的修改,以使開發更容易並更快地生成證明。

Type-2型zkEVM對區塊結構和狀態樹之類的數據結構有一些修改。由於這些是EVM本身無法直接訪問的結構,所以在以太坊上運行的應用程序幾乎可以直接在Type-2型zkEVM Rollup上運行。雖然無法按原樣直接使用以太坊執行客戶端,但通過一些修改仍可以使用它們,並且還可以使用EVM調試工具和大多數其他開發工具。

通過刪除部分不必要的和ZK不友好的以太坊堆棧,Type-2 zkEVM的證明時間比Type-1 zkEVM更快些。這些修改雖然顯著提高了證明者的效率,但並沒有根本性解決證明時間慢的問題。總而言之,Type-2的證明時間還是很慢。

Type-3:幾乎等效於EVM

Type-3型zkEVM幾乎與EVM等效,在兼容性方面也有所犧牲,但其EVM更易於開發。

Type-3型zkEVM通過刪除一些在zkEVM中很難實現的功能(比如:預編譯),以及在處理合約代碼、內存或堆棧方面的調整,總體在等效性方面做出了一些犧牲,實現了更多的驗證器時間、並使EVM更易於開發。

在兼容性方面有所犧牲,由於有一些應用程序使用了被Type-3型zkEVM刪除的預編譯,這些應用程序需要對其中的部分進行重寫。

目前,Scroll和Polygon都屬於Type-3。當然,從長遠來看,還沒有哪個zkEVM團隊公開表明願意長期停留在Type-3。 Scroll和Polygon Hermez都在朝著Type-2型zkEVM的方向發展,雖然還有許多複雜的預編譯還沒有實現。

Type-4:高級語言等效

Type-4類實際上屬於zkVM。 Type-4系統通過獲取以高級語言(Solidity、Vyper)編寫的智能合約源代碼,並將其編譯為明確設計為ZK-SNARK友好的某種語言來工作。

優劣勢都很明顯。有非常快的驗證時間,因為Type-4類不對每個EVM執行步驟的所有不同部分進行ZK證明,而是從更高級別的代碼開始,從而降低成本並獲得更快驗證時間。兼容性較差,合約在Type-4系統中的地址與它們在EVM中的地址不同;手寫的EVM bytecode更難使用;很多調試的基礎設施不能被繼承,因為這些基礎設施是運行在EVM字節碼上。

總而言之,Type-4屬於語言級別等效,與字節碼級別等效相比在兼容性方面有較大差距。根據Vitalik的觀點,目前主要有Zksync屬於Type-4類,儘管隨著時間的推移它可能會增加對EVM字節碼的兼容性;基於Nethermind的warp項目正在構建從Solidity到Starkware的Cairo編譯器也會把StarkNet變成Type-4型。

各類zkEVM的比較

這些zkEVM並沒有絕對的優劣之分。它們只是在兼容性與速度之間有所取捨,Type-1型zkEVM與以太坊的兼容性最高,但證明速度較慢;Type-4型zkEVM與以太坊的兼容性較差,但驗證速度更快。而且我們會發現,現有的ZK Rollup的明星項目,包括Zksync、StarkNet、Polygon、Scroll等都屬於Type-4/Type-3這樣的與以太坊兼容性沒有那麼高的zkVM/zkEVM類型。

zkSync2.0主網上線在即,先行了解各類zkEVM

Vitalik是希望隨著時間的推移,通過zkEVM的改進和以太坊本身的改進相結合,最終所有zkEVM都成為Type-1類。這樣的好處在於,未來會有多個zkEVM,既可以用於ZK Rollup,也可以用於驗證以太坊鏈本身(未來以太坊會對ZK-SNARK更加友好)。

Vitaliki提出的觀點,一般來說很容易達成整個行業的共識,我也非常認可。 Type-1型zkEVM的項目在Ethereum生態自然是最受歡迎的、也比較匹配Ethereum L1。但Type-4類zkVM也未嘗不是執行層項目的一個好的技術方案選擇。主要有兩點考慮:

  1. 放在Modular Blockchain的敘事下,zkVM更方便對接其他L1。如果跳出只是做以太坊生態L2的思維,沒有在字節碼級別兼容以太坊虛擬機,而是選擇採用zkVM,也許反而方便未來對接到其他的L1共識層;

  2. 現在ZK Rollup的性能頂板是受限於證明生成速度,Type-4類zkVM有優勢。執行層的生成證明的速度還是非常重要的,L2把執行層的性能做到極致,也未嘗不是一個好的思路。雖然說未來能夠通過ASIC硬件加速來提高生成證明的效率,但效果猶未可知,Type-4類zkVM的證明生成速度較快是個挺重要的優勢。

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

  • 費用:以哪些代幣支付費用,L2費用的降低程度也是一個非常重要的考量因素,但由於多數通用ZK Rollup項目還處於測試網階段,尚無法做對比;

  • 生成證明的規則:支持哪些人作為Prover,甚至採用哪種硬件來加速生成證明;

  • L2交易排序的規則:採用單個Sequencer還是採用去中心化的方式;

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

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

總而言之,每種ZK Rollup的zkEVM是在諸多性能中有所取捨,實際並沒有絕對的優劣之分。

Total
0
Shares
Related Posts