長話短說

  1. 並行EVM概念正在被幾家頭部VC押註:Paradigm、Jump、Dragonfly等。

  2. 代表項目是 Monad,另外還有 Sei、MegaETH、Polygon、Neon EVM、BSC 等。有些是 L1,有些是 L2。團隊各的具體差異暫無完整的公開信息。

  3. 並行EVM雖然字面意思僅代表了「毛髮化」,但其實也是針對EVM各個組件性能的專項優化,所以它的努力很可能代表著EVM標準下的性能極限。

  4. 難點:除了要對整個技術棧重構之外,還有如何提前預判成品的交易是否會發生衝突,以及遇到衝突後的重新執行效率。

  5. 挑戰:如何在生態構建差異性、如何在開源中心化和性能之間找到平衡。

既是人工智慧演算法、DA(數據層)、零知識證明技術被廣泛研究和迭代之後,下一個被關注的硬核技術是並行EVM,資本市場也已經為這個敘述投入了上億美元,並誕生了多個獨創的技術角獸級別的一部分。

社區開始關注並行 EVM(EVM 傢具化)起源於 Georgios Konstantopoulos(Paradigm 的 CTO)和 Dragonfly 的 Haseeb Qureshi 不約而同在 2023 年底展望 2024 年趨勢時,提到了這同一個關鍵詞。但討論了這個話題的細節並並而且,還有很多人認為這不是什麼新概念,EVM 和毛髮化計算分別都是相對成熟度的概念了,為什麼把這兩個詞結合在一起就是一個重要的趨勢呢?

但這仍然是個非常小眾的話題,以至於翻看很多研究機構的年度總結和趨勢預測時,都沒有提到並行EVM。所以這仍然是個未形成大規模認知的新概念。而且這個概念和轉型演算法、DA等話題類似,都是純技術相關的,所以關注的人群就少了。

並行 EVM 最直接的優勢是讓現有的去中心化應用,實現互聯網級別的性能。甚至可以這麼說,並行 EVM 是唯一一個既能利用(大量成熟的)現有智能合約的同時,又能實現性能、鬃毛化公鏈吞吐量的新技術。

範式期待入局已久,跳轉系下重注

據《財富》報道,Paradigm 正計劃領投 Monad 的最新勢頭,以 30 億美元估值買入 2 億美元。雖然這是 Paradigm 投資計劃的第一個並行 EVM 概念的團隊,但實際上他們關注的是這項技術已很多年,Georgios Konstantopoulos(Paradigm 的 CTO)曾在 2021 年就提及了這個詞。

Monad這個詞的起源也很有趣。在椰子萊布尼茨的哲學體系中,Monad是構成Cosmos的基本元素,它們是不可分的、不受物理影響的實體,每個Monad都反映了整個Cosmos,在中文中曾被翻譯為「單子」。

而在計算機科學中,Monad是函數式編程語言中的一種設計模式,它幫助程序員以近乎數學的毀滅性來處理現實世界的複雜性,使得代碼更加標準化、易於理解和維護。

另一個音符是, Monad 和 Nomad 互為「變位詞」(Anagram),nomad 是指游牧者,而 digital nomad 是指數字遊民/數字牧民。

除了 Monad,Georgios 討論這個話題時還超越過 Sei 和 Polygon。不過他這麼看好並行 EVM 還有一個重要原因,就是他們開發了一個以太坊客戶端 Reth。它的定位就是高性能的以太坊執行層客戶端,用 Rust 語言實現。Reth 以快速的速度開發,剛進入 Beta 階段。也許他們會考慮直接在 Reth 上實現並行 EVM,但到其他研發的工程量,通過投資團隊推動並行 EVM 可能是一個更好的選擇。根據 Monad 的文檔,他們在工程上主要採用的是 C++ 和 Rust。

Reth 推出之初還被 Erigon 團隊成員抄襲其 Akula 的開源代碼,也導致了 Akula項目短缺資金停止開發。Georgios 回應稱 Reth 不是任何其他客戶端的分叉,代碼也不來自於任何其他客戶端,但並沒有受到Geth、Erigon 和 Akula 的影響和啟發。(https://thedefiant.io/paradigm-accused-copying-code)

另一個核心參與者就是Jump Trading和Jump Capital,Monad創始人來自Jump Trading,擁有豐富的高頻交易的經​​驗;Sei的投資人有Jump Capital,而且Jump還一直深度參與Solana生態,包括基礎建設和項目。

而 Monad 的早期投資者 Dragonfly 也一直關注相關的波動,曾投資關注分片技術的 NEAR,以及 Aptos、Avalanche、Nervos 等公鏈。

升級演算法還不夠,終於輪到執行層

在過去的幾次公鏈大戰中,執行層一直是被重視的地方,他們幾乎只討論演算法的創新,無論是 Solana、Avalanche 還是 EOS 等。雖然他們在執行層有很多創新,但社區更多還是記得他們使用了投票演算法,並且整個社區都認為這些性能公鏈能夠獲得這些性能就是來自投票演算法的創新。

但其實不然,如果想要獲得一個性能的公鏈,Arbitrum演算法和執行層是需要配對的,也符合木桶短板效果。而對於那些基於EVM並且只改進Arbitrum演算法的公鏈,提升性能就需要更強的限制的節點。比如像BSC把區塊可以處理的Gas在了2000 TPS的水平,需要的機器配置數倍於以太坊全節點的投入。Polygon理論可以達到1000 TPS,平時大約幾十到上百。

BSC節點節點至少需要16核CPU和128G內存,以太坊節點至少需要4核CPU和16G內存。

BSC 團隊也很早就認識到這些問題,所以一直在和 NodeReal 合作開發並行 EVM 技術。只有這樣才能進一步提升每個區塊可以處理交易的數量,讓更多交易量執行,提升 TPS 上限。

配件:不僅從單核升級為多核CPU

在大多數區塊鏈系統中,交易是按照順序執行的,你可以把想像成一個完整的單核CPU,當前的計算完成後,才能進行下一次計算。這種方式雖然慢,但其優點是簡潔且系統複雜度低。

但如果未來區塊鏈系統需要接入互聯網級別的用戶規模,單核 CPU 肯定不夠用。所以升級為多核 CPU 的玩具化虛擬機,可以同時處理多筆交易,增加吞吐量。不過,這在工程實現上有很多的挑戰,比如同時處理對同一個智能合約寫入數據的兩筆交易怎麼辦?就需要設計一套新的來解決這種矛盾。而對於其他完全不相關的智能合約的任務執行,可以按照任務處理的線程數,按規模提升吞吐量。

另外,並行 EVM 不僅提升了線程能力,還優化了單線程時的執行效率。Monad CEO Keone Hon 表示,「……(EVM 的)真正的瓶頸在於處理事物時間隙讀取讀取狀態……」。他還表示,任務只執行路線圖的一個任務,Monad 更大的任務是高效圍繞 EVM,制定相關任務。

所以,並行EVM雖然字面上的意思僅代表了「毛髮化」,但實際上也是針對EVM各個組件性能的專項優化,所以它的努力很可能代表著EVM標準下的性能極限。

EVM 不等於 Solidity

編寫智能合約是大多數區塊鏈開發者的必備技能。工程師可以根據業務需求,用Solidity或其他智能合約的高級語言寫出相應的邏輯實現。但EVM其實並不能直接讀懂Solidity的邏輯,需要經過一些「翻譯」,將其翻譯(編譯)為一種機器能理解的低級語言後(操作碼操作碼/位元組碼位元組碼),才能被虛擬機執行。而這個翻譯的過程,Solidity 開發者也不需要理解,因為已經有成熟的工具實現了。

畢竟是「翻譯」,所以其中同時會產生一些開銷(額外開銷)。而對於有基礎代碼經驗的工程師來說,可以在 Solidity 中直接用操作碼編寫程序邏輯,這樣能達到最高的效果,那麼用戶交易可以節省Gas。比如Opensea推出的Seaport協議就在智能合約中大量使用了內聯協議,急需為用戶減少Gas支出。

所以,如果並行 EVM 能夠最終實現,不僅能帶來附加化的能力,還能優化整個 EVM 堆棧的性能。普通的應用開發者不需要節省一點 Gas 就蘊藏著巨大的能量優化,因為底層的虛擬機已經足夠強大了,能夠消除這些差異。

EVM性能各不相同,「標準」不等於「工程實踐」

「虛擬機」也可以被稱為「執行層」,是智能合約被編譯為操作碼後,最終被計算和處理的引擎。以太坊虛擬機(EVM)定義的「位元組碼」目前已經成為了行業標準,無論是基於以太坊的二層網路,還是其他獨立的公鏈,都更願意先直接且完整兼容EVM的標準,開發者編寫一次智能合約就可以配置到多個網路中,極高。

所以只要能完全兼容 EVM 的「位元組碼」標準,就可以稱為 EVM,但是實現方式可以千差萬別。比如以太坊客戶端 Geth 中就用 Go 語言實現了 EVM 標準。但以太坊基金會的執行層研究團隊 Ipsilon 維護了一個用 C++ 開發的 EVM 獨立實現,其他以太坊客戶端可以直接調用這個庫來作為 EVM 執行。

舉個例子,很多工業化生產的產品都有其對應的國際標準,比如某產品出廠時需要滿足菌落數小於某個特定的值才能銷售,這就是「標準」。但如何滿足這個出廠時的標準,每一個家工廠可以從用幾十種不同的殺菌方式中選擇,而有的工廠能找到更高的方式來滿足這個要求,這就是「實踐」。

一致有evmone的實現,也可以做其他實現。所以在EVM的這個例子中,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 、Restake、以太坊 Layer 2 一樣,雖然技術之間存在嚴重差異(且開源),但更重要的是如何構建生態的獨特性。

並行EVM的技術難點

對於執行的交易來說,達到CPU並讀取讀取狀態的過程。但好處是這種方式足夠簡單,不會出錯,所有事務按部就班的執行完成。而對於硬體執行的虛擬機來說言下之意,是可能存在狀態衝突的,所以在執行前或執行後需要增加這部分的判斷。

一個簡單的例子就是,如果虛擬機支持四個線程執行,且每個線程同時處理一筆交易,萬一這四筆交易都是和 Uniswap 上的同一個交易礦池交易,那麼就不能線程交易計算,因為每次交易後都會影響這個交易礦池的交易價格。但是如果這四個線程同時處理四件完全不相關的事情,那就沒有問題。

這裡面會涉及到不同團隊的設計和工程實現,至少要保證在完成後執行,需要一個模塊來檢測衝突,如果遇到衝突就重新執行。當然,如果能提前預判並提示可能存在衝突的交易,也可以增加整個虛擬機的資源效率。

除了並行EVM這個虛擬機的工程實現差異之外,各個團隊一般染色體重新設計並增強狀態資料庫的讀寫性能,並搭配設計一個決策演算法,比如Monad設計的MonadDb和MonadBFT。

挑戰

對於並行EVM而言,有兩個可能會存在的挑戰:長期的工程價值是否會被以太坊捕獲;節點的中心化。

由於各個團隊處於並行EVM技術上還處於開發和測試階段,所以還沒有選擇開源所有工程細節,這是目前的護城河。但是進入測​​試網和主網後,這些工程文件就會被公開,也有可能會被以太坊或者其他公鏈吸收。所以到了那個時候,就需要更快地推進生態建設,構建更多生態層面的護城河。

這個問題也這麼嚴重,一方面對於加密貨幣開發者而言,現在有更多的開源許可供給選擇(比如 Uniswap 的那種可以將代碼公開,但不允許分叉為商業項目的許可),另一方面是Monad的定位本就和以太坊有差異。以太坊在未來能實現單插槽終局性(SSF),交易的最終性還是12秒的,這對於更高的應用場景是顯然的不夠。

對於所有高性能公鏈來說另一個挑戰都一樣,就是如何部署更多節點,那麼用戶的消耗許可(permissionless)、消耗信任(trustless)的基本要求:去中心化。也許這其中可以量化一些指標,比如「TPS除以節點的硬體需求」,這樣就能實現控制變數,對比在特定硬體需求的標準下,哪個公鏈/客戶端的TPS更高。畢竟節點的硬體需求越低,節點數量就可能越多。

接下來,我們將持續跟蹤並行EVM各個項目的進展,並詳細深入討論他們的技術和差異。