作者:Zhixiong Pan,來源:作者博客
Parallel EVM 概念正在被幾家頭部 VC 押注:Paradigm、Jump、Dragonfly 等。
代表項目是 Monad,另外還有 Sei、MegaETH、Polygon、Neon EVM、BSC 等。有些是 L1,有些是 L2。各團隊的具體差異暫無完整的公开信息。
Parallel EVM 雖然字面意思僅代表了「並行化」,但其實也是對 EVM 各個組件性能的專項優化,所以它的努力很可能代表者着 EVM 標准下的性能極限。
難點:除了要對整個技術棧重構之外,還有如何提前預判並行的交易是否會衝突,以及遇到衝突後的重新執行效率。
挑战:如何在开源生態構建差異性、如何在去中心化和性能之間找到平衡。
既共識算法、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 的影響和啓發。(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 等。雖然他們在執行層有很多的創新,但社區更多還是記得他們使用的共識算法,而且整個社區也會以爲這些高性能公鏈能獲得這些性能就是來自於共識算法的創新。
但其實不是,如果想要獲得一個高性能的公鏈,共識算法和執行層是需要配套的,也符合木桶短板效應。而對於那些基於 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 各個項目的進展,並詳細深入討論他們的技術和差異。
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。
標題:EVM 的並行化有何意義?或是 EVM 霸權下的終局?
地址:https://www.torrentbusiness.com/article/98964.html
標籤:EVM