並行EVM:突破性能瓶頸 引領區塊鏈新時代

並行EVM:突破區塊鏈性能瓶頸的新方向

性能已成爲區塊鏈行業進一步發展的瓶頸。區塊鏈網路爲個人和企業進行交易創造了一種新的、去中心化的信任基礎。

以比特幣爲代表的第一代區塊鏈網路以分布式記帳的方式開創了去中心化的電子貨幣交易新模式。以以太坊爲代表的第二代區塊鏈網路則充分發揮想象力,提出以分布式狀態機的方式實現去中心化應用(dApp)。

從那時起,區塊鏈網路開啓了它自己十幾年飛速發展的歷史,從Web3基礎設施到以DeFi、NFT、社交網絡和GameFi等爲代表的各種賽道,誕生了無數技術或商業模式的創新。行業的蓬勃發展需要不斷吸引新用戶參與去中心化應用的生態建設,這反過來又對產品體驗提出了更高的要求。

而Web3作爲一種"前無古人"的新產品形態,不但要在滿足用戶需求上有所創新(功能性需求),還要考慮怎樣在安全性和性能之間取得平衡(非功能性需求)。自誕生以來,人們提出了各種各樣的解決方案試圖解決性能問題。

這些解決方案大致可以分爲兩類:一類是鏈上擴容方案,如分片(sharding)和有向無環圖(DAG);一類是鏈下擴容方案,如Plasma、閃電網絡、側鏈和Rollups等。但這還遠遠跟不上鏈上交易快速增長的速度。

尤其是經歷了2020年DeFi Summer以及2023年年末比特幣生態中銘文的持續爆發,業界迫切需要新的性能提升方案來滿足"高性能、低費率"的要求。並行區塊鏈就是在這樣的背景下誕生的。

並行EVM敘事概述

並行EVM敘事標志着並行區塊鏈領域形成了兩強相爭的競爭格局。以太坊對交易的處理是串行的,交易要按順序一個接一個的執行,資源的利用率不高。如果將串行處理的方式變爲並行處理將帶來性能的巨大提升。

以太坊競爭對手如Solana、Aptos和Sui都是自帶並行處理能力的,生態也發展的很不錯,代幣流通市值分別達到450億、33億和19億美元,它們形成了並行非EVM陣營。面對挑戰,以太坊生態也不甘示弱,紛紛站出來爲EVM賦能,它們形成了並行EVM陣營。

某交易所在其v2版本升級提案中高調宣稱將成爲"第一個並行EVM區塊鏈",當前流通市值21億美元,預後還有更大的發展。當下營銷熱度第一的並行EVM新公鏈Monad很受資本青睞,潛力也不可小視。而市值1.7億美元、自帶免費公共基礎設施的L1公鏈Canto也宣布了自己的並行EVM升級提案。

除此之外,一衆還處在早期階段的L2項目也在通過整合多種L1鏈的能力提供跨生態的性能提升。除某項目做到了6900萬美元流通市值外,其他項目還缺少相關數據。相信未來還會出現更多的L1和L2項目加入並行區塊鏈戰場。

不但並行EVM敘事還有很大的市場增長空間,而且並行EVM敘事所屬的並行區塊鏈板塊也還有很大的市場增長空間,因此市場前景廣闊。

目前L1和L2整體流通市值爲7521.23億美元,並行區塊鏈流通市值爲525.39億美元,僅佔約7%。而其中並行EVM敘事相關項目流通市值23.39億美元,僅佔並行區塊鏈流通市值的4%。

萬字解讀並行EVM :超越串行,如何突破區塊鏈性能瓶頸?

並行EVM敘事項目分類

業界一般將區塊鏈網路分爲4層結構:

  1. Layer(網路):區塊鏈底層網路,處理基礎的網路通信協議
  2. Layer 1(基礎設施):依賴各種共識機制對交易進行驗證的去中心化網路
  3. Layer(擴展):依賴於Layer 1的各種二層協議,旨在解決Layer 1的各種局限性,尤其是可擴展性
  4. Layer 3(應用):依賴於Layer或Layer 1,用於構建各種去中心化應用(dApp)

並行EVM敘事項目主要分爲單體區塊鏈和模塊化區塊鏈,單體區塊鏈又分爲L1和L2。從項目總數和幾個主要賽道的發展可以看出,各並行EVM L1公鏈生態相比以太坊生態仍然存在很大的發展空間。

DeFi賽道有"高速低費率"的訴求,遊戲賽道有"強實時交互"的訴求,二者都對執行速度有一定要求。並行EVM必然會給這些項目帶來更好的用戶體驗,推動行業的發展進入到全新的階段。

L1是自帶並行執行能力的新公鏈,是高性能基礎設施。L1這一派中,以某交易所v2、Monad和Canto爲代表的項目自行設計並行EVM,兼容以太坊生態並提供高吞吐量交易處理能力。

L2通過整合其他L1鏈的能力,提供跨生態合作的擴容能力,是rollup的顯學。L2這一派中,某項目是Solana網路上的EVM模擬器,Eclipse利用Solana執行交易但在EVM上做結算。Lumio與Eclipse類似,只是把執行層換成了Aptos。

在上述單體區塊鏈解決方案之外,Fuel提出了自己的模塊化區塊鏈思路。它將在第二個版本中將自己定位成以太坊rollup操作系統,提供更靈活、更徹底的模塊化執行能力。

Fuel專注於執行交易,而將其餘部分外包給一個或多個獨立層的區塊鏈,從而實現更靈活的組合:既可以成爲L2,也可以成爲L1,甚至是側鏈或狀態通道。目前Fuel生態有17個項目,主要集中在DeFi、NFT和基礎設施三個領域。

不過只有Orally跨鏈預言機已投入實際應用。去中心化借貸平台Swaylend和永續合約交易平台SPARK上了測試網,其他項目還在開發中。

萬字解讀並行EVM :超越串行,如何突破區塊鏈性能瓶頸?

並行EVM技術原理

要實現去中心化的交易執行,區塊鏈網路必須履行4個職責:

  • 執行:執行和驗證交易
  • 數據可用性:分發新區塊到區塊網路的所有節點
  • 共識機制:驗證區塊,達成共識
  • 結算:結算並記錄交易的最終狀態

並行EVM主要是對執行層的性能優化。這又分爲一層網路(L1)解決方案和二層網路(L2)解決方案兩種。L1的解決方案引入交易並行執行機制,讓交易在虛擬機中盡量並行執行。L2的解決方案本質上是利用已經並行化的L1虛擬機實現某種程度上的"鏈下執行+鏈上結算"。

所以要理解並行EVM的技術原理,就要將其拆解開來:先理解什麼是虛擬機(virtual machine)再理解什麼是並行執行(parallel execution)。

虛擬機

在計算機科學中,虛擬機是指對計算機系統進行的虛擬(virtualization)或者模擬(emulation)。

虛擬機分爲兩種,一種叫系統虛擬機(system virtual machine),可以將一臺物理機虛擬化爲多臺機器,運行多個操作系統,從而提高資源利用率。另一種叫進程虛擬機(process virtual machine),爲某些高級編程語言提供抽象,讓使用這種語言編寫的計算機程序以一種平台無關的方式運行在不同平台上。

JVM就是一種爲Java編程語言設計的進程虛擬機。Java語言編寫的程序首先被編譯成Java字節碼(一種中間狀態的二進制代碼),Java字節碼由JVM解釋執行:JVM將字節碼送給解釋器,由解釋器翻譯成不同機器上的機器碼,然後在機器上運行。

區塊鏈虛擬機是進程虛擬機的一種。在區塊鏈的語境下,虛擬機是指對分布式狀態機進行的虛擬,用於分布式地執行合約,運行dApp。類比JVM,EVM就是一種爲Solidity語言設計的進程虛擬機,智能合約首先被編譯成opcode字節碼,然後由EVM解釋執行。

以太坊之外的新興公鏈在實現自己的虛擬機時,更多採用的是基於WASM或eBPF字節碼的虛擬機。WASM是一種體積小、加載快、可移植且基於沙盒安全機制的字節碼格式,開發人員可以使用多種編程語言(C、C++、Rust、Go、Python、Java甚至TypeScript等)編寫智能合約,然後編譯成WASM字節碼並執行。某交易所公鏈上執行的智能合約正是採用了這一字節碼格式。

eBPF前身是BPF(Berkeley Packet Filter,伯克利包過濾器),原本是用於網路數據包的高效過濾,後經過演化形成了eBPF,提供更豐富的指令集。

它是一項允許在不改動源碼的情況下對操作系統內核進行動態幹預和修改其行爲的革命性技術。後來這項技術從內核中走出來,發展出了用戶態eBPF運行時,其具有高性能、安全和可移植性。在Solana上執行的智能合約都會編譯成eBPF字節碼並在其區塊鏈網路上運行。

而其他的L1公鏈中,Aptos和Sui使用Move智能合約編程語言,編譯成特有的字節碼在Move虛擬機上執行。Monad則自行設計了兼容EVM opcode字節碼(Shanghai fork)的虛擬機。

萬字解讀並行EVM :超越串行,如何突破區塊鏈性能瓶頸?

並行執行機制

並行執行是這樣一種技術:

  1. 能夠發揮多核處理器的優勢同時處理多個任務,增大系統吞吐量;
  2. 確保得到的交易結果與按順序串行執行交易時完全相同。

區塊鏈網路常用TPS(每秒處理的交易數量)作爲衡量處理速度的技術指標。並行執行的機制比較復雜,也很考驗開發人員的技術水平,要解釋清楚並不容易。下面從一個"銀行"的例子入手,解釋什麼是並行執行。

首先,什麼是串行執行?

情況1:如果我們把系統看成一家銀行,把處理任務的CPU看成櫃臺,那麼串行執行任務就好比這家銀行只有一個櫃臺受理業務。此時來銀行辦業務的客戶(任務)只能排成一條長龍,挨個辦業務。對於每個客戶,櫃臺工作人員都要重復同樣的動作(執行指令)來爲客戶辦理業務。沒有輪到自己時客戶只能等待,這就造成交易時間的延長。

那麼什麼是並行執行呢?

情況2:此時銀行看到人滿爲患,就多開了幾個櫃臺來處理業務,有4個櫃員在櫃臺同時處理業務,速度就比原來快了約4倍,那麼客戶排隊的時間大約也減少到了原來的1/4,銀行辦理業務的速度就提升。

如果不做保護,兩個人同時給另一個人轉帳會發生什麼錯誤?

情況3:A、B和C三個人,他們的帳戶上分別有2 ETH、1 ETH和0 ETH,現在A和B分別要給C轉帳0.5 ETH。在一個交易串行執行的系統中,不會出現任何問題(左箭頭"<="表示讀取帳本,右箭頭"=>"表示寫入帳本,下同):

  1. A <= 2 ETH
  2. A => 1.5 ETH
  3. C <= 0 ETH
  4. C => 0.5 ETH
  5. B <= 1
查看原文
此頁面可能包含第三方內容,僅供參考(非陳述或保證),不應被視為 Gate 認可其觀點表述,也不得被視為財務或專業建議。詳見聲明
  • 讚賞
  • 5
  • 分享
留言
0/400
Crypto段子手vip
· 07-30 00:03
新割韭思路啊这是
回復0
FUDwatchervip
· 07-29 21:10
瓶颈不就是钱包么
回復0
偏执之王vip
· 07-29 21:06
就这?还不是为了割韭菜
回復0
会飞的资深韭菜vip
· 07-29 21:02
瓶颈不是瓶子的颈部 牛啊~
回復0
BridgeJumpervip
· 07-29 20:53
又来搞区块链性能优化啦~
回復0
交易,隨時隨地
qrCode
掃碼下載 Gate APP
社群列表
繁體中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)