作者:Haotian,獨立研究員來源:X,@tmel0211
最近,Paradigm下重註領投了Monad一輪2.25億美元的巨額融資,引發市場對「並行EVM」的強烈關注。那麼,「並行EVM」到底解決了什麼問題呢?發展並行EVM的瓶頸和關鍵是什麼?在我看來,「並行EVM」是EVM鏈迎擊高性能layer1鏈的最後一博,事關以太坊EVM生態的存續之戰。 Why?接下來,來談談我的理解:
由於以太坊EVM虛擬機只能「串行」交易,這使得EVM- Compatible layer1鏈以及EVM相容的layer2鏈,也都受到了相應的性能製約,因為大家本質上都基於同一套框架處理狀態和交易Finality。
然而,像Solana、Sui、Aptos等主打高性能的layer1先天就具有可並行的優勢。在此背景下,EVM基因的鏈要正面Battle高性能layer1公鏈的衝擊,就勢必得補足「並行」能力先天不足的問題。如何做呢?涉及技術原理與細節,我將以並行EVM新銳鏈 @Artela_Network 為例展開說明:
1)以Monad、Artela、SEI等為代表的強化型EVM layer1鏈,它們會在高度兼容EVM的基礎上大幅提升TPS並能賦予交易在擬EVM環境下的並行能力,這類獨立並行EVM layer1鏈,有獨立的共識機制和技術特性,但仍會以相容並拓展EVM生態為目標,相當於,以「換血統」的方式重建EVM鏈,又服務於EVM生態;
2) 以Eclipse、MegaETH等為代表的擴容型layer2 EVM相容鏈,它們利用layer2鏈獨立的共識和交易「預處理」能力,可以在大批量交易被Batch到主網前,對交易狀態進行篩選和處理,並可同時選擇其他任意鏈的執行層來最終確定交易狀態。等同於把EVM抽象化成一個可插拔的執行模組,可根據需要選擇最佳“執行層”,進而實現了並行能力;但,這類方案可服務於EVM,但又超出EVM框架範疇;
3)以Polygon、BSC等為代表的等效型Alt-layer1鏈,它們一定程度上實現了EVM的平行處理能力,但只是進行了演算法層的優化,並沒有進行深層的共識層和儲存層的最佳化,因此這類並行能力更多可視為一個特定的Feature,而並沒有徹底解決EVM的並行問題。
4)以Aptos、Sui、Fuel等為代表的差異型Non-EVM並行鏈,它們某種程度上並非實現的並非EVM鏈,而是在其先天具有高並發執行能力接觸上,然後通過某種中間件或編碼解析方式,實現了和EVM環境的兼容。我們看身為以太坊layer2的Starknet就是如此,由於Starknet具備Cario語言和帳戶抽象使其也具備並行能力,但其兼容EVM卻需要一個特殊的管道。這些Non-EVM鏈的平行能力接軌EVM鏈基本上都存在這個問題。
以上四個方案,各有重點,例如:有平行能力的layer2著重模組化組合「執行層」鏈的彈性;而EVM- Compatible鏈則突顯了特定功能的客製化特性;至於其他非EVM鏈的EVM相容特性更多所圖抽以太坊的流動性;真正目標徹底鞏固EVM生態,並從底層改變並行能力的只剩一個強化型EVM layer1賽道了。
那麼,做強化型並行EVM layer1公鏈的關鍵是什麼呢?如何才能重構EVM鏈,又能服務EVM生態?有兩個關鍵點:
1.存取state I/O磁碟讀取和輸出資訊的能力,由於資料的讀取和寫入要消耗時間,只是簡單進行交易排序和調度,並不能根本上提高並行處理能力,還需要引入緩存、資料切片甚至分散式儲存技術等等,從根本狀態儲存和讀取流程上平衡讀取速度和狀態衝突的可能性;
2)擁有高效率的網路通信,資料同步,演算法最佳化、虛擬機強化、以及將運算與IO任務分離等共識機制層的各類元件最佳化等等,需要牽一發而動全身從底層元件架構、協作流程等各方面綜合優化與提升,最終促成反應速度快、計算消耗可控、準確率高的並行交易的能力;
具體到並行EVM layer1鏈專案本身,要做哪些技術創新和框架優化來實現「並行EVM」?
為了從底層架構層徹底實現資源協調和優化的「平行EVM」能力,Artela引入了彈性運算(Elastic Computing)和彈性區塊空間(Elastic Block Space),如何理解呢?彈性運算,網路可根據需求和負載動態地分配和調整運算資源;彈性區塊空間,可根據網路中交易數量和資料大小進行動態調整區塊大小;整個彈性設計工作原理,恰如商場自動感應人流量進行工作的扶梯一樣,很Make Sense;
前文說了,State I/O磁碟讀取效能對平行EVM很關鍵,Polygon、BSC等EVM-Compatible鏈透過演算法實現的「平行」能力,也能實現2-4倍的效率提升,但只是演算法層的最佳化,其共識層、儲存層並沒有進行深層優化,真正的深層優化會是怎麼樣呢?
針對此,Artela借鑒了資料庫技術方案,在狀態讀取和寫入方面都做了提升,其中寫入狀態方面才去了寫入前日誌(WAL)技術,當狀態改變要寫入時先把改變記錄寫入日誌並提交到內存,就可以認為完成了“寫入”操作,這樣做其實實現了操作異步化,避免了在狀態改變時寫入時立即進行磁碟寫入操作,故而降低了對磁碟的I/O操作。狀態讀取方面,本質上也是非同步化操作,透過預先載入策略來提升讀取效率,根據合約歷史執行記錄來預測下一次特定的合約呼叫會用到哪些狀態,並預先載入到記憶體中,進而提升了磁碟I/O請求效率。
總之,這是一種透過記憶體空間換執行時間的演算法,以此從根本上提升EVM虛擬機的平行處理能力,算是從根本上優化了狀態衝突問題。
除此之外,Artela透過引入Aspect模組化程式設計能力,以更好地管理複雜性並提高開發效率:透過引入WASM編碼解析以增強程式設計的靈活性;同時,它還具有底層API存取權限,實現了執行層的安全隔離。這使得開發者可以在Artela的環境下有效率地開發,調試和部署智慧合約,以此激活開發者群體的客製化擴展能力。特別是,開發者也會被激勵在智慧合約程式碼層就往可並行的方向進行程式碼最佳化,畢竟要減少狀態衝突機率,每一個智慧合約的呼叫邏輯和演算法都特別關鍵。
大家不難看出,「並行EVM」這個概念本質上就是在優化交易狀態的執行過程, @monad_xyz 號稱可達到每秒10,000筆交易,其技術核心也無非在專用資料庫、開發者友善度、延遲執行共識、超標量管線技術等等來達成大規模交易的平行處理,這和Artela的彈性計算和I/O非同步性操作本質邏輯並無太大差異。
但我其實更想表達的是,這類高效能並行EVM鏈其實是融入web2產品和技術力之後的結果,確實採用了web2成熟應用市場上,時不時流量高負載下的「技術處理」精髓。
如果放眼一個Mass Adoption的遙遠未來,「並行EVM」的確是EVM生態下一步面向web2更廣泛市場的基礎infra,能受資本市場如此Bullish也在情理之中。