EVM主導下的結局


並行EVM是一個被幾個頭部VC押注的概念,代表專案有Monad、Sei、MegaETH、Polygon等。雖然字面意思是指「毛髮化」,實際上是對EVM各個組件性能進行專案優化,可能代表EVM性能極限。面臨的困難包括技術棧重構和處理交易衝突效率。挑戰在於建構生態差異性和平衡開源中心化與效能。各團隊之間存在競爭關係,技術細節尚未完全公開。並行EVM需解決硬體執行虛擬機器的狀態衝突問題,並提高吞吐量。重點在於提升EVM效能,讓應用程式開發者無需過度優化Gas消耗。實作方式可能不同,但保持EVM標準相容性。面臨挑戰的是長期工程價值被其他公鏈吸收和節點的中心化問題。需加速生態建設建造更多護城河。

長話短說

並行EVM概念正被幾個頭部VC押注:Paradigm、Jump、Dragonfly等。

代表專案是Monad,另外還有Sei、MegaETH、Polygon、Neon EVM、BSC 等。有些是L1,有些是L2。團隊各的具體差異暫無完整的公開資訊。

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

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

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

既是人工智慧演算法、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各個專案的進展,並詳細深入討論他們的技術和差異。

資訊來源:0x資訊編譯自網際網路。版權歸作者ChainFeeds所有,未經許可,不得轉載

Total
0
Shares
Related Posts