Parallel EVM 概念正在被幾家頂級 VC 押注,其中包括 Paradigm、Jump、Dragonfly 等。代表專案是 Monad,另外還有 Sei、MegaETH、Polygon、Neon EVM、BSC 等。有些是 L1,有些是 L2。各團隊的具體差異暫無完整的公開資訊。本文源自 ChainFeeds Selection 的文章,由 Foresight News 整理、編譯及撰稿。
(前情提要: 從以太坊 EVM 轉向「模組化區塊鏈」,加密時代的嶄新曙光?)
(背景補充: 過年擼 BTC 生態》三大比特幣 Layer2 互動教學: B2 Network、Merlin 以及 BEVM)
本文目錄
Paradigm 期待入局已久,Jump 系下重注
升級共識演算法還不夠,終於輪到執行層
並行: 不僅從單核升級為多核 CPU
EVM 不等於 Solidity
EVM 效能各不相同,「標準」不等於「工程實踐」
Parallel EVM 的異同
Parallel EVM 的技術難點
挑戰
Parallel EVM 雖然字面意思僅代表了「並行化」,但其實也是對 EVM 各個元件效能的專項優化,所以它的努力很可能代表者著 EVM 標準下的效能極限。
難點: 除了要對整個技術棧重構之外,還有如何提前預判並行的交易是否會衝突,以及遇到衝突後的重新執行效率。
挑戰: 如何在開源生態構建差異性、如何在去中心化和效能之間找到平衡。
既共識演算法、DA(資料層)、零知識證明技術被廣泛研究和迭代後,下一個被關注的硬核技術是 Parallel EVM,資本市場也已經為這個敘事投注上億美元,並誕生多個獨角獸級別的初創。
社群開始關注 Parallel EVM (EVM 並行化)起源於 Georgios Konstantopoulos (Paradigm 的 CTO)和 Dragonfly 的 Haseeb Qureshi 不約而同在 2023 年底展望 2024 年趨勢時,提到的這同一個關鍵詞。但討論這個話題的細節並不多,而且也有很多人認為這並不是什麼新概念,EVM 和並行化計算分別都是相對成熟的概念了,為什麼把這兩個詞結合在一起就是個重要的趨勢呢?
但這仍然是個非常小眾的話題,以至於如果翻看很多研究機構的年度總結和趨勢預測時,都沒有提到 Parallel EVM。所以這仍然是個未形成大規模共識的新概念。而且這個概念和共識演算法、DA 等話題類似,都是純技術相關的,所以關注的人群就更少了。
Parallel EVM 最直接的優勢是讓現有的去中心化應用,實現網際網路級別的效能。甚至可以這麼說,Parallel EVM 是唯一一個既能利用(大量成熟的)現有智慧合約的同時,還能實現高效能、並行化公鏈吞吐量的新技術。
據「財富」報導,Paradigm 正計劃領投 Monad 的最新一輪,以 30 億美元估值籌集 2 億美元。雖然這是 Paradigm 計劃投資的第一個 Parallel EVM 概念的團隊,但其實他們關注這個技術已多年,Georgios Konstantopoulos (Paradigm 的 CTO)曾在 2021 年就提及了這個詞。
Monad 這個詞的來源也很有意思。在哲學家萊布尼茨的哲學體系中,Monad 是構成宇宙的基本元素,它們是不可分的、不受物理影響的實體,每個 Monad 都反應了整個宇宙,在中文曾被翻譯為「單子」。
而在電腦科學中,Monad 是函數語言程式設計語言中的一種設計模式,它幫助程式員以近乎數學的純淨性來處理現實世界的複雜性,使得程式碼更加模組化、易於理解和維護。
另一個有意思的是,Monad 和 Nomad 互為「變位詞」(Anagram),nomad 是指遊牧者,而 digital nomad 是指數位遊民 / 數位牧民。
除了 Monad,Georgios 討論這個話題時還提及過 Sei 和 Polygon。不過他這麼看好 Parallel EVM 還有一個重要原因,就是他們開發了一個以太坊客戶端 Reth。它的定位就是高效能的以太坊執行層客戶端,用 Rust 語言實現。Reth 在以很快的速度開發,剛進入 Beta 階段。或許他們會考慮直接在 Reth 上實現 Parallel EVM,但考慮到研發的工程量,通過投資其他團隊推動 Parallel EVM 可能是個更好的選擇。而據 Monad 的文件,他們在工程上主要採用的是 C++ 和 Rust。
Reth 推出之初還被 Erigon 團隊成員指責抄襲其 Akula 的開原始碼,也導致了 Akula 專案缺少資金停止開發。Georgios 迴應稱 Reth 並不是任何其他客戶端的分叉,程式碼也不來自於任何其他客戶端,但的確是受到了 Geth、Erigon 和 Akula 的影響和啟發。
另一個核心參與者就是 Jump Trading 和 Jump Capital,Monad 創辦人來自 Jump Trading,有豐富的高頻交易的經驗;Sei 的投資人有 Jump Capital,而且 Jump 還一直深度參與 Solana 生態,包括基礎建設和專案。
而 Monad 的早期投資者 Dragonfly 也一直關注相關賽道,曾投資專注分片技術的 NEAR,以及 Aptos、Avalanche、Nervos 等公鏈。
在過去的幾次公鏈大戰中,執行層一直是被忽視的地方,他們幾乎只談論共識演算法的創新,無論是 Solana、Avalanche 還是 EOS 等。雖然他們在執行層有很多的創新,但社群更多還是記得他們使用的共識演算法,而且整個社群也會以為這些高效能公鏈能獲得這些效能就是來自於共識演算法的創新。
但其實不是,如果想要獲得一個高效能的公鏈,共識演算法和執行層是需要配套的,也符合木桶短板效應。而對於那些基於 EVM 並且只改進共識演算法的公鏈,提升效能就需要更強的節點。比如參考 BSC 把區塊可以處理的 Gas 限制在了 2000 TPS 的水平,需要的機器配置數倍於以太坊全節點的投入。Polygon 理論可以達到 1000 TPS,平時也就幾十到上百。
BSC 存檔節點需要至少 16 核 CPU 和 128G 記憶體,以太坊節點只需至少 4 核 CPU 和 16G 記憶體。
BSC 團隊也早就意識到這些問題,所以也在和 NodeReal 合作開發 Parallel EVM 技術。只有這樣才能進一步提升每個區塊可以處理交易的數量,讓更多交易並行執行,提升 TPS 上限。
在大多數的區塊鏈系統中,交易是完全按照順序執行的,你可以把它想像成一個單核 CPU,當前的計算完成後,才能進行下一次計算。這個方式雖然慢,但其優勢是簡潔且系統複雜度低。
但如果未來區塊鏈系統需要接入網際網路級別的使用者規模,單核 CPU 肯定不夠用。所以升級為多核 CPU 的並行化虛擬機器,就能同時處理多筆交易,增加吞吐量。不過,這在工程實現上有很多的挑戰,比如同時處理的兩筆交易在對同一個智慧合約寫入資料怎麼辦?就需要設計一套新的機制來解決這種矛盾。而對於其他完全不相關的智慧合約的並行執行,就能按照並行處理的執行緒數,按規模提升吞吐量。
另外,Parallel EVM 不僅提升並行能力,還會優化單執行緒時的執行效率。Monad CEO Keone Hon「…EVM的真正瓶頸在於處理事物時頻繁讀取寫入狀態…」,這是一個表示,並行執行只是路線圖的一部份,Monad 更大的使命是圍繞EVM,使其儘可能高效。
因此,Parallel EVM 雖然字面意思僅代表了「並行化」,但其實也是對EVM各個元件效能的專項優化,所以它的努力很可能代表著EVM標準下的效能極限。
寫智慧合約是大多數區塊鏈開發者的必備技能。工程師可以根據業務需求,用Solidity或其他智慧合約的高階語言寫出相應的邏輯實現。但EVM其實並不能直接讀懂Solidity的邏輯,需要經過一些「翻譯」,將其翻譯(編譯)為一種機器能理解的低階語言後(opcode操作碼/bytecode位元組碼),才能被虛擬機器執行。而這個翻譯的過程,Solidity開發者也不需要理解,因為已經有成熟的工具實現了。
畢竟是「翻譯」,所以其中也會產生一些overhead(額外開銷)。而對於有底層程式碼經驗的工程師,可以在Solidity中直接用操作碼編寫程式邏輯,這樣能達到最高的效能,也就是使用者交易時能節省Gas。比如Opensea推出的Seaport協議就在智慧合約中大量使用了內聯彙編,儘可能為使用者減少Gas支出。
所以,如果Parallel EVM能最終實現,不僅能帶來並行化的能力,還會優化整個EVM堆疊的效能。普通的應用開發者也就不需要為了節省一點Gas就耗費巨大的精力優化,因為底層的虛擬機器已經足夠強大了,能抹平這些差異。
「虛擬機器」也可以被稱為「執行層」,是智慧合約被編譯為操作碼後,最終被計算和處理的引擎。以太坊虛擬機器(EVM)定義的「位元組碼」目前成為了行業標準,無論是基於以太坊的二層網路,還是其他獨立的公鏈,都更願意先直接且完整相容EVM的標準,開發者寫一次智慧合約就能部署到多個網路中,價效比極高。
所以只要能完全相容EVM的「位元組碼」標準,就可以稱為EVM,但是實現方式可以千差萬別。比如以太坊客戶端Geth中就用Go語言實現了EVM標準。但以太坊基金會的執行層研究團隊Ipsilon維護了一個用C++開發的EVM獨立實現,其他以太坊客戶端可以直接呼叫這個庫來作為EVM執行。
舉個例子,很多工業化生產的產品都有其對應的國際標準,比如某產品出廠時需要滿足菌落數小於某個特定的值才能銷售,這就是「標準」。但如何滿足這個出廠的標準,每家工廠可以從用幾十種不同的殺菌方式中選擇,而有些工廠能找到價效比更高的方式滿足這個要求,這就是「實踐」。
既然有evmone的實現,也可以做其他實現。所以在EVM的這個例子中,EVM的標準就是定義了一些基礎的操作方式「位元組碼」(比如支援加減乘等最基礎的算術),每個位元組碼有確定的輸入時,就有確定的輸出。在滿足這個標準時,實現(實踐)方式天差地別,有大量的自定義空間和工程優化的可能性。
在Parallel EVM賽道中,除了最炙手可熱的Monad之外,還有Sei、MegaETH、Polygon、Neon EVM、BSC等,以及Paradigm的Reth客戶端也想實現並行化的功能。
從定位來看,Monad、Sei、Polygon、BSC都是Layer 1區塊鏈,而MegaETH可能是Layer 2,Neon EVM是基於Solana網路的。另外,Reth是一個開源的客戶端,MegaETH也會部分基於Reth的工程繼續開發。
當然這幾個團隊之間還存在競爭關係,而且也沒完全公開所有的技術細節和工程檔案,更多的對比要等後續他們逐漸公開才能展開。或許這又像軍備競賽一樣,像BTC Layer 2、Restaking、以太坊 Layer 2一樣,儘管技術之間存在細微差異(且開源),但更重要的是如何構建生態的獨特性。
對於順序執行的交易來說,瓶頸在於CPU和讀取寫入狀態的過程。但好處是這種方式足夠簡單,不會出錯,所有事務都能按部就班的執行完成。而對於並行執行的虛擬機器而言,是可能存在狀態衝突的,所以在執行前或執行後需要增加這部分的判斷。
一個簡單的例子就是,如果虛擬機器支援四個執行緒並行執行,且每個執行緒都能同時處理一筆交易,萬一這四筆交易都是和Uniswap上的同一個交易池交易,那就不能平行計算,因為每次交易後都會影響這個交易池的交易價格。但是如果這四個執行緒同時處理四件完全不相關的事情,那就沒有問題。
這裡面會涉及不同團隊的設計和工程實現,但至少要確保的是在並行執行後,需要一個模組來檢測衝突,如果遇到衝突就重新執行。當然,如果能提前預判並篩查可能存在衝突的交易,也可以增加整個虛擬機器的並行效率。
除了Parallel EVM這個虛擬機器的工程實現差異,各個團隊一般也會重新設計並增強狀態資料庫的讀寫效能,並配套設計一個共識演算法,比如Monad設計的MonadDb和MonadBFT。
對於Parallel EVM而言,有兩個可能會存在的挑戰:長期的工程價值是否會被以太坊捕獲;節點的中心化。
由於各個團隊在Parallel EVM技術上還處於開發和測試階段,所以都還沒選擇開源所有工程細節,這是目前的護城河之一。但是但進入測試網和主網後,這些工程檔案就會被公開,也可能會被以太坊或者其他公鏈吸收。所以在那個時間點,就需要更快推進生態建設,構建更多生態層面的護城河。
不過這個問題也沒這麼嚴重,一方面對於Crypto開發者而言,現在有更多的開源許可可供選擇(比如Uniswap的那種可以將程式碼公開,但不允許分叉為商業專案的許可),另一方面是Monad的定位本就和以太坊有差異。就算以太坊在未來能實現單插槽終局性(SSF),交易的最終性還是至少12秒的,這對於更高頻的應用場景是遠遠不夠的。
另一個挑戰對於所有高效能公鏈都一樣,就是如何部署更多節點,以滿足使用者的無需許可(permissionless)、無需信任(trustless)的基本要求:去中心化。或許這其中還能量化一些指標,比如「TPS除以節點的硬體需求」,這樣就能實現控制變數,對比在特定硬體需求的標準下,哪個公鏈/客戶端的TPS更高。畢竟節點的硬體需求越低,節點數量就可能越多。
接下來,我們還會持續追蹤Parallel EVM各個專案的進展,並詳細深入討論他們的技術和差異。
相關報導
深入探討Layer2、L2 Rollup差異,比特幣生態的前進之路
比特幣Layer2生態》哪個Rollups擴容方案最有潛力?
V神喊話比特幣「該學以太坊Layer2擴容」,不然僅停留在支付階段