鏈新聞編譯|並行處理(parallel execution)公鏈比較:Aptos、Sui、Linera、Fuel

Elponcho
分享
鏈新聞編譯|並行處理(parallel execution)公鏈比較:Aptos、Sui、Linera、Fuel

Diem 計畫 (舊名 Libra、臉書幣) 團隊在解散後,開枝散葉衍生出不同的公鏈計畫。風投 Volt Capital 合夥人 Mohamed Fouda 撰文討論近來熱議的四個案例:Aptos、Sui、Linera、Fuel。

以下為鏈新聞重點整理,如有疑義請見原文

EVM 相容鏈的問題:執行效能

了解概念:EVM (以太坊虛擬機)

像是以太坊這樣的智能合約公鏈,需要共享的計算引擎來執行不同的去中心化應用程式 (dapp),節點會運行這個計算引擎,並執行 dapp,用戶再跟 dapp 互動 ; 在節點得到執行結果的共識後,就會繼續推進區塊鏈。

廣告 - 內文未完請往下捲動

以太坊虛擬機 (EVM) 就是智能合約主要的執行引擎,有多個公鏈、L2 都採用 EVM。

了解問題:EVM 執行效率

EVM 的限制在於順序性的一次執行一個事務。執行一個事務時,將所有其他事務置於暫停狀態,直到事務執行完成,並更新區塊鏈狀態。這樣的次序處理 (sequential execution),也造成網路吞吐量的瓶頸。

並行處理取向的機會

有一些底層鏈 (L1) 採取並行處理 (parallel execution,PE) 的方式。它可以在交易在不同的處理核心分別處理,優化硬體應用提升網路吞吐量,這個取向改進了交易確認的延遲。

PE 不是一個新的方法,很多人都嘗試過。其中一個點子是將 EVM 使用的記帳模型由 Accounts model 改成比特幣在用的 UTXO model ; 後者能做到並行處理,適合支付用途。但是因為 UTXO 的功能有限,還需要擴充才能夠與智能合約互動,因此市場上有 Cardano 的 extended UTXO model 案例。

另一種做到 PE 的方式,則是不去改變記帳模型。而是改善鏈的狀態如何被架構與修改,Solana 的 Sealevel 就是案例。Aptos、Sui、Linera、Fuel 也都是採取這樣後者的解決路線。然而,關鍵挑戰就在於,如何理解區塊鏈狀態、識別獨立交易 (從相依的交易中區別)。

RAM (隨機存取記憶體) 概念

區塊鏈狀態可以類比為電腦的隨機存取記憶體,每個區塊鏈帳戶或是智能合約,都擁有一定範圍的記憶位置可以修改。相依的交易會在同一個記憶位置中修改,像是 UNI 兌換到 USDC 的 AMM 交易,可能須經由 Uni -> ETH -> DAI -> AAVE -> USDC,以上交易彼此相依,需要次序處理。目前不同的區塊鏈有不同的記憶體架構與機制來識別相依的交易。

Aptos、Sui、Linera、Fuel

Aptos、Sui 和 Linera 是用 Diem 團隊的 MOVE 語言來改進智能合約執行 ; Fuel 則是用自己的語言來處理 PE。

Aptos

Aptos 基於 MOVE 與 MOVE 虛擬機 (MoveVM) 實現高吞吐量的並行處理。Aptos 採用一種改良的軟體事務記憶體 (Software Transactional Memory, STM) 稱為 Block-STM 來處理,不需要事務明確聲明它們使用狀態的哪一部分。

在 Block-STM 中執行時,交易在區塊中被預先排序並拆分,不同的處理器會「樂觀處理」(optimistic execution)。樂觀執行是指,會假設交易都沒有相依性。有被交易修改的記憶位置會被記錄下來。在處理後,所有交易結果都會是有效的。在驗證期間,如果有一個交易被發現取用先前交易的記憶位置,該交易就為無效。交易打掉後,會重新處理交易,這個過程會重複至所有區塊中的交易都被處理。Block-STM 在採用多個核心處理器時,有助於加速處理。但若是一個區塊中的交易全部相依,效率將會比次序處理稍弱。據稱 Aptos 可達 16 萬 TPS。

Sui

另一種 PE 的方式是要求交易明確聲明它們修改的區塊鏈狀態部分。Solana 和 Sui 都是採用這種方法,Solana 稱這些記憶單元為 accounts,一筆交易必須聲明它修改了哪些 accounts。Sui 也是用類似的方法。

Sui 雖然也使用 MoveVM,但 Sui 使用的是不同版的 MOVE 語言,Sui Move 語言改變了儲存模組與資產許可,這也是它與 Aptos 不一樣的地方,它定義了一種狀態存儲模型,可以更輕鬆地識別獨立交易。

在 Sui 中,狀態儲存被定義為物件 (Objects),物件代表資產,它可以被分享,也就是多個用戶可以修改同一個物件。而每個物件都有唯一的 ID,並有內部指向至持有者地址。透過這樣的方式,就很容易可以識別交易的相依關係。

不過,聲明相依關係的工作會交給開發者,雖然執行引擎更容易實現,理論上也會有更好的效能跟吞吐量 ; 但是對於開發者體驗並不理想。

Sui 目前剛有測試網,並聲稱有 10 萬 TPS。

Linera

Linera 由 16z 領投首輪融資,但細節並不多,據其公告,它是基於 Facebook 開發的 FastPay 協議,一種稱為 Byzantine Consistent Broadcast 的技術,它可以有助於加速支付。

Fuel

Fuel 則是專注在模組化區塊鏈堆棧的執行層,也就是它沒有共識層,也沒有資料儲存在 Fuel 鏈上。對於這樣的功能性區塊鏈,Fuel 可以跟其他的區塊鏈互動取得共識與資料,例如以太坊。Fuel 使用 UTXO 建立一個嚴格的造訪清單,就是對同一個狀態具有控制權的清單。這樣的方式中,區塊中的交易要辨認相依關係就會變得更為簡化。Fuel 也有自己的 FuelVM 跟 Sway 智能合約語言。在它的設計下,其智能合約執行是可以在以太坊主網上結算的。

並行處理的挑戰

  1. 可並行交易的實際百分比有多少?單純的獨立事務,如地址間的轉帳,以及複雜的相依事務,如 AMM 流動池中的交易,不同類型的活動多寡,牽涉 PE 實際能帶來的效益。Mohamed Fouda 表示,根據以太坊每日交易的不同活動,可以估計 PE 可以加速智能合約平台中大約 70-80% 的交易。PE 的吞吐量也可能提高到 3~5 倍。
  2. 網路中心化的問題。PE 大大地推動網路中心化發展,一般的消費型設備不易滿足這種高吞吐量網路的要求,用戶必須依賴專門的節點供應商。這可能會讓權力集中在少部分實體,審查風險也較高。Mohamed Fouda 表示,目前 Sui 測試網全節點的要求比 Aptos 低,但在主網實際上線後,應會發生顯著變化。Fuel 在這方面因為與以太坊的長期目標一致,較不受影響。目前對 Aptos 與 Sui 還不清楚他們對去中心化的優先次序。Linera 則沒有清楚資訊。

最後,Mohamed Fouda 認為,PE 是最有望提高智能合約平台吞吐量的解決方案,加上共識機制的創新,有機會將 TPS 接近或提高至 10 萬。但如何為這樣的高效的設施維護去中心化,仍是一項挑戰。