既共識演算法、DA(資料層)、零知識證明技術被廣泛研究和迭代後,下一個被關注的硬核技術是Parallel EVM,資本市場也已經為這個敘事投注上億美元,並誕生多個獨角獸等級的初創。
社群開始關注Parallel EVM(EVM 並行化)起源於Georgios Konstantopoulos (Paradigm 的CTO )和Dragonfly 的Haseeb Qureshi 不約而同在2023 年底展望2024 年趨勢時,提到的這同一個關鍵字。但討論這個主題的細節並不多,而且也有很多人認為這並不是什麼新概念,EVM 和平行化計算分別都是相對成熟的概念了,為什麼把這兩個詞結合在一起就是個重要的趨勢呢?

但這仍然是一個非常小眾的話題,以至於如果翻閱許多研究機構的年度總結和趨勢預測時,都沒有提到Parallel EVM。所以這仍然是個未形成大規模共識的新概念。而且這個概念和共識演算法、DA 等主題類似,都是純粹技術相關的,所以關注的人群就更少了。
Paralle 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 和128 G 內存,以太坊節點只需至少4 核CPU 和16 G 內存。
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 各個專案的進展,並詳細深入討論他們的技術和差異。