作者:0xNatalie
摘要
-
並行EVM 吸引了頂尖創投的關注,不少計畫紛紛開始探索這個方向,例如Monad、MegaETH、Artela、BNB、Sei Labs、Polygon 等。
-
並行EVM 不僅是為了實現並行化處理,還涉及對EVM 各個組件的全面性能優化。透過這些優化,為更複雜和高效的區塊鏈應用提供支援。
-
並行EVM 需要在開源生態中實現差異化,同時平衡去中心化和高效能的需求,還要解決潛在的安全問題和市場接受度的挑戰。由於引入了多執行緒程式設計的複雜性,並行EVM 面臨著協調多個交易同時進行的難題,因此必須找到有效的解決方案,以確保系統的穩定性和安全性。
-
未來,並行EVM 將推動鏈上中央限價訂單簿(CLOB)和可編程中央限價訂單簿(pCLOB)的實現,這將大大增強DeFi 活動的效率,預計DeFi 生態將顯著增長。
-
透過將其他高效能虛擬機器(AltVM)引入以太坊生態系統,效能和安全性將會顯著提升,這種整合能夠充分利用各個虛擬機器的優勢,推動以太坊的進一步發展。
今年,並行EVM 吸引了諸如Paradigm、Dragonfly 等頂尖風投公司的押注,引起了市場的廣泛關注。並行EVM 是對傳統EVM 的最佳化升級。傳統的EVM 是串列處理的,也就是交易必須一個接一個地順序執行。這種方式在交易高峰期容易導致交易擁擠和處理延遲,影響使用者體驗。並行EVM 則透過引入平行處理技術,允許多個獨立的交易同時執行,從而大幅提升交易處理速度。隨著全鏈遊戲、帳戶抽象錢包等複雜應用的出現,對區塊鏈效能的需求不斷增加。為了支援更廣泛的用戶,區塊鏈網路必須具備快速且有效率地處理大量交易的能力。因此,並行EVM 作為解決方案,對於不斷發展的Web3 應用至關重要。
然而,實施平行EVM 面臨以下的共通性挑戰,這些挑戰需要精確的技術解決方案來確保系統的穩定運作:
-
資料一致性:在平行EVM 中,因為多個交易同時發生,多個操作可能需要同時讀取或修改帳戶的資訊。為了確保每個操作都能正確地反映在最終的狀態中,需要採用有效的鎖定機製或交易處理機制,以確保在狀態修改時保持資料一致性。
-
狀態存取效率:並行EVM 需要能夠快速存取和更新狀態,這要求系統具有高效的狀態儲存和檢索機制。透過優化儲存結構和存取路徑,例如採用更先進的資料索引技術和快取策略,可以顯著減少資料存取的延遲,並提高整體的系統效能。
-
交易衝突偵測:在平行執行中,多個交易可能依賴相同的資料狀態,交易的順序和依賴關係管理變得複雜。為此,必須設計複雜的調度演算法來識別和管理平行交易之間的依賴關係,偵測潛在衝突,並決定如何處理,確保並行執行的交易結果與串列執行一致。
例如,MegaETH 將交易執行任務從全節點解耦,將不同任務分配給專業化節點,以優化整體系統效能;Artela 透過預測性樂觀執行和非同步預載技術,利用AI 分析交易之間的依賴關係,並提前將所需的交易狀態載入到記憶體中,以提高狀態存取效率;BNB 鏈開發了專用的衝突偵測器與重新執行機制,提升系統對交易依賴關係的管理能力,減少不必要的重新執行,等等。
為深入了解並行EVM 的發展方向,以下精選九篇關於此主題的優質文章,提供了不同鏈的具體實施方案、生態綜合研究、未來前景等全面視角。
MegaETH: Unveiling the First Real-Time Blockchain
作者:MegaETH,日期:2024.6.27
MegaETH 是EVM 相容的Layer 2,旨在實現接近Web2 伺服器的即時效能。其目標是推動以太坊L2 的性能達到硬體極限。 MegaETH 提供高交易吞吐量、充足的運算能力和毫秒級回應時間,允許開發者建立和組合複雜的應用程序,而不受效能限制。
MegaETH 透過將交易執行任務從全節點中分離並引入平行處理技術來提升效能。其架構由三個主要角色組成:定序器、驗證者和全節點。
-
定序器(Sequencer): 定序器的職責是對使用者提交的交易進行排序和執行。定序器執行交易後,會透過點對點(p2p)網路將交易的狀態變化(狀態差異)傳送給全節點。
-
全節點(Full Node): 全節點接收到狀態差異後,直接套用這些差異來更新自己的本地區塊鏈狀態,而不需要重新執行交易。這大大減少了計算資源的消耗,並提高了系統的整體效率。
-
驗證者(Prover): 驗證者使用無狀態驗證方案對區塊進行驗證。不需要依序逐次驗證,而是可以同時驗證多個區塊。這種方法進一步提高了驗證效率和速度。
這種節點專業化的設計允許不同類型的節點根據各自的功能需求設定獨立的硬體要求。例如,定序器需要高效能伺服器來處理大量交易,而全節點和驗證者則可以使用相對低配置的硬體。
Presenting Artela Scalability Whitepaper – Parallel Execution Stack and Elastic Block Space
作者:Artela,日期:2024.6.20
Artela 透過引入多項關鍵技術,大幅提升了區塊鏈的平行執行效率和整體效能:
-
並行執行:透過預測交易依賴性並對交易進行分組,利用多個CPU 核心並行處理,提高運算效率。
-
並行儲存:最佳化儲存層,支援並行資料處理,避免儲存瓶頸,提升系統整體效能。
-
彈性運算:支援多台電腦協同工作,實現彈性運算節點和區塊空間,為dApps 提供更高的交易吞吐量和可預測的效能。
具體而言,Artela 的預測性樂觀執行利用AI 智慧分析交易與合約之間的依賴關係,預測可能發生衝突的交易,並將其分組,從而減少衝突和重複執行。系統動態地累積並儲存歷史交易的狀態存取信息,以供預測演算法使用。透過非同步預加載,系統將所需的交易狀態提前載入到記憶體中,避免在執行過程中出現I/O瓶頸。同時,並行儲存透過將狀態承諾與儲存作業分離,優化了Merkelization和I/O效能。這種分離處理方式使並行與非平行操作能夠獨立管理,進一步提升了系統的平行化效率。
此外,Artela 基於彈性運算建構了彈性區塊空間(EBS)。傳統區塊鏈中,所有dApp共享同一個區塊空間,導致高流量dApp 之間資源競爭,造成不穩定的gas 費用和不可預測的效能。彈性區塊空間為dApp 提供專屬且動態可擴展的區塊空間,確保效能的可預測性。 dApp 可依需求申請專屬區塊空間,隨著區塊空間的增加,驗證者可透過增加彈性執行節點擴展處理能力,確保資源高效利用,適應不同的交易量。
Road to High Performance: Parallel EVM for BNB Chain
作者:BNB Chain,日期:2024.2.16
在BNB 鏈上,團隊採取了多個步驟來實現並行EVM,以提高交易處理能力和可擴展性。以下是BNB 鏈在實現並行EVM 過程中所做的主要工作:
並行EVM v1.0
在2022 年初,BNB 鏈社群推動了並行EVM 的執行,核心組件包括:
-
調度器: 負責將交易分配到不同執行緒進行並行執行,以優化吞吐量。
-
並行執行引擎: 利用並行處理在專用執行緒上獨立執行交易,大幅減少處理時間。
-
本地狀態資料庫: 每個執行緒(獨立執行指令的基本單位)維護自己的「執行緒本地」狀態資料庫,以有效率地記錄執行期間的狀態存取資訊。
-
衝突偵測與重新執行: 確保資料完整性,透過偵測和管理交易依賴關係,發生衝突時重新執行交易以確保結果準確。
-
狀態提交機制: 一旦交易執行完成,結果將無縫提交到全域狀態資料庫,更新區塊鏈的整體狀態。
並行EVM v2.0
在並行EVM 1.0 的基礎上,BNB 鏈社群引入了一系列效能提升的創新:
-
Streaming Pipeline: 提高執行效率,使交易在平行引擎中平穩處理。
-
Universal Unconfirmed State Access: 透過最佳化狀態資訊訪問,在某個交易執行完畢但未正式確認之前,允許其他交易臨時使用其結果,減少交易間的等待時間。
-
衝突偵測器2.0: 增強的衝突偵測機制,提高了效能和準確性,確保資料完整性,同時減少不必要的重新執行。
-
調度器增強: 調度器現在利用靜態和動態調度策略,更有效率地分配工作負載和最佳化資源利用。
-
記憶體優化: 透過共享記憶體池和輕量複製技術,大幅減少記憶體佔用,進一步提升系統效能。
並行EVM v3.0
在並行EVM 2.0 取得效能提升之後,BNB 鏈社群積極開發並行EVM 3.0,目標如下:
-
減少或消除重新執行: 透過引入基於提示(Hints)的調度器,利用外部提示提供者分析交易並產生潛在狀態存取衝突的預測。透過這些提示,可以更好地安排交易,減少衝突,從而降低重新執行的需要。
-
模組化: 將程式碼分解為獨立模組,提高可維護性並方便適應不同環境。
-
程式碼庫重構: 對齊最新的BSC/opBNB 程式碼庫,確保相容性並簡化整合。
-
徹底測試和驗證: 在各種場景和工作負載下進行廣泛測試,確保解決方案的穩定性和可靠性。
Sei’s Parallel Stack
作者:Sei,日期:2024.3.13
Sei Labs 創建了一個名為Parallel Stack 的開源框架,旨在建立支援平行處理技術的Layer 2 解決方案。 Parallel Stack 的核心優勢在於其平行處理能力,利用現代硬體的進步來降低交易費用。該框架採用模組化設計,允許開發者根據特定需求添加或修改功能模組,從而適應不同的應用場景和效能要求。 Parallel Stack 能夠與現有的以太坊生態系統無縫整合。使用Parallel Stack 的應用和開發者無需做大量的修改或適應工作,就能直接利用以太坊現有的基礎設施和工具。
為了確保交易和智慧合約的安全執行,Parallel Stack 引入了多種安全協定和驗證機制,包括交易簽章驗證、智慧合約稽核和異常交易偵測系統。為了方便開發者在Parallel Stack 上建置和部署應用,Sei Labs 提供了一套完整的開發者工具和API,旨在支援開發者充分利用Parallel Stack 的高效能和可擴展性,推動以太坊生態系統的進一步發展。
Innovating the Main Chain: a Polygon PoS Study in Parallelization
作者:Polygon Labs,日期:2022.12.1
Polygon PoS 鏈透過引入平行EVM 升級,使其交易處理速度提高了一倍,這得益於最小化元資料法。
Polygon 借鑒了Aptos Labs 開發的Block-STM 引擎的原理,開發了最小元資料方法以滿足Polygon 的需求。 Block-STM 引擎是一種創新的平行執行機制,它假設所有交易之間不存在衝突。在交易執行過程中,Block-STM 引擎監控每個交易的記憶體操作,識別並標記依賴關係,並重新安排有衝突的交易進行驗證,確保結果的正確性。
最小元資料方法在區塊中記錄所有交易的依賴關係,並儲存在有向無環圖(DAG)中。區塊提議者和驗證者先執行交易,記錄依賴關係並將其附加為元資料。當區塊傳播到網路中的其他節點時,依賴關係資訊已包含在內,減少了重新驗證的計算和I/O 負擔,提高了驗證效率。透過最小元資料方法,記錄依賴關係也優化了交易執行路徑,最大限度地減少了衝突。
EVM 的平行化有何意義?或是EVM 霸權下的終局?
作者:ChainFeeds 創辦人Zhixiong Pan,日期:2024.3.28
並行EVM 技術受到了包括Paradigm、Jump 和Dragonfly 在內的一些頂級創投的重視和投資。這些資本看好並行EVM 突破現有區塊鏈技術的效能限制,實現更有效率的事務處理和更廣泛的應用可能性。
並行EVM 雖然字面意思僅代表了「並行化」,但實際上它涵蓋的技術改進遠不止於此。並行EVM 不僅是讓多個交易或任務可以同時進行處理,還包括對以太坊EVM 的各個元件進行深入的效能最佳化。例如改善資料存取速度、提高運算效率、最佳化狀態管理等多個面向。因此,它的努力很可能代表EVM 標準下的性能極限。
除了技術上的挑戰,並行EVM 也面臨生態建構和市場接受度的難題。需要在開源生態中創造差異化,在去中心化和高效能之間找到適當的平衡。市場接受度方面,需要向行業內外證明其並行化能力真正帶來的性能提升和成本效益,特別是在現有的大量以太坊應用和智能合約已經穩定運行的背景下,轉向新平台的誘因需要非常突出。此外,並行EVM 的推廣還需要解決潛在的安全問題和可能出現的新的技術缺陷,確保系統的穩定性和使用者資產的安全,這些都是推動新技術廣泛採納的重要因素。
Death, Taxes, and EVM Parallelization
作者:Reforge Research,日期:2024.4.1
隨著並行EVM 的推出,鏈上中央限價訂單簿(Central Limit Order Books, CLOB)的可行性得到了提升,預計DeFi 活動將顯著增加。
在CLOB 中,訂單根據價格和時間優先順序排序,確保市場的公平性和透明性。然而,在以太坊等區塊鏈平台上實現CLOB 時,由於平台處理能力和速度的限制,往往會導致高延遲和高交易成本。引入並行EVM 後,大大增強了網路的處理能力和效率,使得DeFi 交易平台能夠實現更快速和更有效率的訂單匹配和執行。 CLOB 也就變成可行。
在此基礎上,可程式中央限價訂單簿(pCLOB)進一步擴展了CLOB 的功能。 pCLOB 不僅提供基本的買賣訂單配對功能,還允許開發者在訂單的提交和執行過程中嵌入自訂的智慧合約邏輯。這些自訂邏輯可以用於額外的驗證、執行條件的判定、以及交易費用的動態調整。透過在訂單簿中嵌入智慧合約,pCLOB 提供了更高的靈活性和安全性,支援更複雜的交易策略和金融產品。透過利用平行EVM 所提供的高效能和高平行處理能力,pCLOB 能夠在去中心化環境中實現類似傳統金融交易平台的複雜和高效的交易功能。
然而,儘管並行EVM 為區塊鏈效能帶來了顯著提升,現有的以太坊虛擬機(EVM)和智慧合約的安全性仍有不足,容易受到駭客攻擊。為了解決這些問題,作者建議採用雙虛擬機器(dual VM)架構。在這種架構中,除了EVM 之外,還引入一個獨立的虛擬機器(如CosmWasm),用於即時監控EVM 智慧合約的執行情況。這個獨立虛擬機器的功能類似於作業系統中的防毒軟體,能夠進行進階偵測和防護,從而減少駭客攻擊的風險。在未來,像Arbitrum Stylus 和Artela 這樣的新興解決方案被認為有望成功實現這種雙虛擬機器架構。透過這種架構,這些新系統可以從一開始就更好地嵌入即時保護和其他關鍵的安全功能。
What will be the next step towards enhanced scalability while maintaining EVM compatibility?
作者:SevenX Ventures 研究員Grace Deng,日期:2024.4.5
新的Layer 1 如Solana 和Sui 透過使用全新的虛擬機器(VM)和程式語言,並採用平行執行、新的共識機制和資料庫設計,從而提供了比傳統Layer 2 和Layer 1 更高的效能。然而,這些系統不相容於EVM,導致流動性不足和使用者及開發者面臨更高的門檻。但像BNB 和AVAX 這樣的EVM 相容於Layer 1 區塊鏈,儘管在共識層面進行了改進,但執行引擎的修改較少,因此效能提升有限。
並行EVM 可以在不犧牲EVM 相容性的前提下提升效能。例如,Sei V2 透過採用樂觀並發控制(OCC)和引入新的狀態樹(IAVL trie)來提高讀寫效率;Canto Cyclone 透過使用最新的Cosmos SDK 和ABCI 2.0 技術以及記憶體中的IAVL 狀態樹來優化狀態管理系統;而Monad 則提出了一個結合高吞吐量、去中心化和EVM 相容性的全新Layer 1 方案,採用OCC、新的平行存取資料庫和基於Hotstuff 的MonadBFT 共識機制。
除此之外,還可以考慮將其他高效能虛擬機(AltVM)整合到以太坊生態系統中,特別是那些支援Rust 開發的虛擬機,如Solana 的Sealevel 或Near 的WASM-based VM。這樣不僅可以解決EVM 不相容的弊端,還可以將Rust 開發人員引入以太坊生態系統,提升整體效能和安全性,同時開拓新的技術可能性。
萬字解讀並行EVM :如何突破區塊鏈效能瓶頸?
作者:Gryphsis Academy,日期:2024.4.5
並行EVM 主要是對執行層的效能最佳化。分為Layer 1 解法和Layer 2 解法兩種。 Layer 1 的解決方案引入交易並行執行機制,讓交易在虛擬機器中盡量並行執行。 Layer 2 的解決方案本質上是利用已經並行化的Layer 1 虛擬機器實現某種程度上的鏈下執行+鏈上結算。未來,Layer 1 賽道可能形成並行EVM 和並行非EVM 的兩大陣營,Layer 2 賽道則會朝著區塊鏈虛擬機器模擬器或模組化區塊鏈的方向發展。
平行執行機制主要分為以下三類:
-
訊息傳遞模型:每個執行者(actor)只能存取自己的私有數據,需要存取其他數據時透過訊息傳遞。
-
共享記憶體模型:採用記憶體鎖來控制對共享資源的訪問,分為記憶體鎖模型和樂觀並行化。
-
嚴格狀態存取清單:基於UTXO 模型,提前計算每個交易要存取的帳戶位址,形成存取清單。
不同專案在實作並行執行機制時採取了不同的策略:
-
Sei v2:由記憶體鎖定模型轉向樂觀並行化模型,優化潛在的資料爭用。
-
Monad:引進超標量管線技術和改進的樂觀並行機制,實現高達10000 TPS 的效能。
-
Canto:採用Cyclone EVM 引入樂觀並行化,並在去中心化金融基礎設施上進行創新。
-
Fuel:作為模組化以太坊rollup 作業系統,採用UTXO 模型和樂觀並行化機制,提高交易吞吐量。
-
Neon、Eclipse 和Lumio:透過整合多種Layer 1 鏈的能力提供跨生態效能提升,採用雙虛擬機器支援的策略。
雖然並行EVM 提供了有效的解決方案,但同時也帶來了新的安全挑戰。並行執行引入了多線程編程,增加了系統的複雜性。多執行緒程式設計容易出現競態條件、死鎖(dead lock)、活鎖(live lock)和飢餓(starvation)等問題,影響系統的穩定性和安全性。同時引入了新的安全隱患,如惡意交易可能利用系統的平行執行機制,製造資料不一致或發動競爭攻擊。