以太坊的發展路线越來越傾向於Modular Blockchain,其本質就是Layer1的data sharding和Layer2的Rollups擴容相結合,成爲一種模塊化架構,從而推動以太坊實現“世界計算機”的初衷。其中Rollups的技術路徑選擇方面,ZK Rollup被認爲是以太坊擴容的最終目標。
ZK Rollup的核心工作機制是將鏈上的用戶狀態壓縮存儲在一棵Merkle樹中,並將用戶狀態的變更轉移到鏈下進行,同時通過 zksnark/zkstark證明來保證該鏈下用戶狀態變更過程的正確性。通俗地理解,ZK Rollup可以理解爲通過zksnark或zkstark來使用亞线性處理以驗證线性數量的語句。比如,1000條語句需要10次驗證者檢查,10000條語句需要11次驗證者檢查。所以,呈現出來的結果是,ZK rollup可以實現以太坊擴容。
ZK Rollup的大致區塊鏈事務處理過程如下:
用戶將他們的資產鎖定在L1上的zk rollup智能合約中;
用戶將涉及這些資產的交易提交給L2,L2中的某些角色(Sequencer,早期多數項目是中心化的,也有項目开始採用去中心化方式)將這些交易通過某些規則收集成有序批次,並爲每個批次生成有效性證明(zksnark/zkstark)和聚合狀態更新;
這個狀態更新和證明被提交到L1的zk rollup智能合約並被驗證,就會更新在L1的區塊鏈上;
用戶可以使用這種L1狀態(取決於不同的數據可用性機制)來檢索他們的資產,從而實現完全的自我托管,所以zk rollup也被認爲繼承了以太坊安全。
衆所周知,第一代的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階段。
當前的ZK Rollups的zkEVM與Ethereum本身並非完全兼容,更遑論“以太坊等效”的終極愿景。所以,不僅以太坊本身的升級規劃在遷就Rollup友好型,各個ZK Rollup項目也一直在解決與以太坊的兼容性問題。
Vitalik根據與現有EVM基礎設施的兼容性程度,將zkEVM通用ZK Rollup分爲4類:
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並沒有絕對的優劣之分。它們只是在兼容性與速度之間有所取舍,Type-1型zkEVM與以太坊的兼容性最高,但證明速度較慢;Type-4型zkEVM與以太坊的兼容性較差,但驗證速度更快。而且我們會發現,現有的ZK Rollup的明星項目,包括Zksync、StarkNet、Polygon、Scroll等都屬於Type-4/Type-3這樣的與以太坊兼容性沒有那么高的zkVM/zkEVM類型。
Vitalik是希望隨着時間的推移,通過zkEVM的改進和以太坊本身的改進相結合,最終所有zkEVM都成爲Type-1類。這樣的好處在於,未來會有多個zkEVM,既可以用於ZK Rollup,也可以用於驗證以太坊鏈本身(未來以太坊會對ZK-SNARK更加友好)。
Vitaliki提出的觀點,一般來說很容易達成整個行業的共識,我也非常認可。Type-1型zkEVM的項目在Ethereum生態自然是最受歡迎的、也比較匹配Ethereum L1。但Type-4類zkVM也未嘗不是執行層項目的一個好的技術方案選擇。主要有兩點考慮:
放在Modular Blockchain的敘事下,zkVM更方便對接其他L1。如果跳出只是做以太坊生態L2的思維,沒有在字節碼級別兼容以太坊虛擬機,而是選擇採用zkVM,也許反而方便未來對接到其他的L1共識層;
現在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是在諸多性能中有所取舍,實際並沒有絕對的優劣之分。
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。
標題:zkSync2.0主網上线之際淺析各類zkEVM
地址:https://www.torrentbusiness.com/article/20718.html
標籤: