深度解析新公鏈如何實現並行執行:Aptos、Sui、Linera、Fuel
深潮TechFlow
2022-09-07 08:43
本文约5927字,阅读全文需要约24分钟
並行執行引擎是提高智能合約平台吞吐量的有前途的解決方案。

原文標題:《The Case for Parallel Processing Chains

原文編譯:

原文編譯:深潮TechFlow

深潮TechFlow

原文標題:《

原文編譯:

原文編譯:

當我們重新審視區塊鏈技術的演變時,可以看到一個強勁的趨勢正在顯現,即新的L1 注重並行執行。

問題

問題這並不是什麼新鮮技術,目前Solana 就在Sealevel 的執行環境中使用。

然而,在過去的牛市中,DeFi 和NFT 令人印象深刻的表現也讓人們意識到,技術迫切需要改進。

本文將會討論這些項目的異同,以及它們所面臨的挑戰。

問題

問題智能合約平台可以創建廣泛的去中心化應用程序。

為了執行這些應用,需要一個共享的計算引擎。網絡中的每個節點都運行這個計算引擎,以及執行應用程序和用戶與應用程序的互動。當節點從執行中得到相同的結果時,他們就會達成共識,並推動鏈的運轉。

  • 以太坊虛擬機是最主要的智能合約(SC)執行引擎,有大約20 種不同的實現方式。

  • 自EVM 發明以來,它已經建立了開發人員採用的臨界質量。

除了以太坊和以太坊的L2,其他幾個鏈包括Polygon、BNB 智能鍊和Avalanche C 鏈都採用EVM 作為執行引擎,並專注於改變共識機制以提高網絡吞吐量。

EVM 的一個主要限制性特徵是交易的順序執行。EVM 基本上是一次執行一個交易,將所有其他交易擱置,直到交易執行完畢,區塊鏈狀態被更新。即使兩個交易是獨立的,例如,從Alice 到Bob 的付款和從Carol 到Dave 的另一個付款,EVM 不能並行執行這些交易。雖然這種執行模式允許有趣的用例,如閃電借貸,但它既沒有效率,也沒有可擴展性。

這種順序執行交易是網絡吞吐量的主要瓶頸之一:

首先,它導致區塊中的交易執行時間更長,限制了區塊時間;此外,它限制了可以添加到區塊中的交易數量,以使節點能夠執行交易並確認區塊。

以太坊的平均吞吐量約為17 tx/秒。這種低吞吐量意味著在高活動期間,例如NFT Mint,網絡礦工/驗證者不能處理所有的交易,隨之而來的是費用競標戰,以確保優先執行,推動交易費用上升。以太坊的平均費用在某些時候超過了0.2 個ETH(約800 美元),許多用戶都因此不敢使用以太坊。

順序執行的第二個問題是網絡節點的低效率。

順序指令執行不能從多個處理器核心中獲益,這導致硬件利用率低,效率低下。這阻礙了可擴展性,並導致不必要的能源消耗。並行執行能解決這個問題嗎?

EVM 結構的限制為並行執行(PE)的L1 新領域創造了條件。

並行允許在多個處理器內核之間劃分交易處理,提高硬件利用率,從而實現更好的可擴展性。在高吞吐量鏈中,增加硬件資源與可執行的交易數量直接相關。在高頻活動期間,驗證者節點可以委託更多的核心來處理額外的交易負載。計算資源的動態擴展允許網絡在高需求時期實現更高的吞吐量,從而顯著改善用戶體驗。

這種方法的另一個優點是改善了交易確認的延遲,節點資源的動態擴展使得確認所有可能的網絡負載的低延遲交易成為可能。交易不需要等待幾十或幾百個區塊,也不需要為優先確認而產生過多的費用。

改進後的確認時間提高了交易的終結性,為低延遲區塊鏈打開了大門。保證執行交易的低延遲使幾個以前不可能實現的用例成為可能。

改變鍊式執行模式以允許PE 並不是一個新的想法,一些項目已經對此進行了探索。一種方法是將EVM 使用的會計模型從Accounts 模型替換為Unspent Transaction Output (UTXO) 模型。 UTXO 執行模型在比特幣中使用,它允許並行處理交易,這使得它成為支付的理想選擇。但由於UXTO 的功能有限,需要進行擴展以實現智能合約所需的複雜互動。

例如,Cardano 為此目的使用了擴展的UTXO 模型,而Findora 使用了混合UTXO 模型,它實現了兩種會計模型並允許用戶在兩種模型之間更改資產類型。"PE 的另一種方法並不改變賬戶模型,而是專注於改善鏈狀態的架構和修改。"例如Solana 的Sealevel 框架。

並行執行是如何工作的?

並行執行的工作方式是確定獨立的事務並同時執行它們。

如果一個事務的執行會影響到另一個事務的執行,那麼兩個事務就是相關聯的。例如,同一池中的AMM 事務是相關聯的,必須按順序執行。

交易。獨立交易的分類需要了解每筆交易如何改變區塊鏈內存或鏈狀態,與同一智能合約(如AMM 池)互動的交易可以同時改變合約狀態,因此,不能同時執行。

Aptos

二級標題

以目前應用程序之間的可組合程度,識別是否相互關聯是一項具有挑戰性的任務。想像一下,一個將UNI 換成USDC 的AMM 交易,AMM 發現執行它的最有效路線是UNI -> ETH -> DAI -> AAVE -> USDC。所有參與該交易的池子不能處理任何其他交易,直到該交易完全執行,然後所有參與的池子的狀態才能被更新。識別獨立交易

這一類的幾條鏈都是建立在Facebook 已消亡的區塊鏈項目Diem 所開發的技術之上。 Diem 團隊創建了智能合約語言Move,專門改善SC 的執行。 Aptos、Sui 和Linera 是屬於這一組的三個高知名度的項目。除了這個小組,Fuel 是另一個專注於PE 的知名項目,使用自己的SC 語言。

二級標題

二級標題

Aptos 建立在Diem 的Move 語言和MoveVM 的基礎上,創建了一個高吞吐量的鏈,實現了並行執行。

Aptos 的方法是檢測關聯關係,同時對用戶/開發者透明

,也就是說,不要求交易明確聲明它們使用哪一部分狀態(內存位置)。Aptos 使用的是Software Transactional Memory (STM)的修改版,稱為Block-STM。這個過程不斷重複,直到塊中的所有事務都被執行。

Sui

二級標題

當使用多個處理器核心時,Block-STM 會加快執行速度,加速的多少來自於交易的相互關聯程度。

Aptos 團隊的結果表明,如果一個區塊中的所有交易都是相互依賴的,那麼與順序執行相比,Block-STM 會導致性能上的輕微損失。 Aptos 聲稱,這種方法可以實現160,000 TPS 的吞吐量。

二級標題

二級標題

另一種PE 方法是要求交易明確聲明他們所修改的鏈狀態部分,這種方法目前被Solana 和Sui 使用。

Solana 將內存單元稱為賬戶,而交易必須說明它修改了哪些賬戶。 Sui 也使用了類似的方法。

Sui 也通過使用MoveVM 建立在Diem 的技術之上。

Sui Move 定義了一個狀態存儲模型,允許更容易識別獨立交易。

Linera

二級標題在Sui 中,狀態存儲被定義為Objects。 Objects 通常代表資產,並且可以共享,這意味著多個用戶可以修改該對象。每個Objects 在Sui 執行環境中都有一個唯一的ID,並有指向所有者地址的內部指針。通過使用這些概念,很容易通過檢查交易是否使用相同的Objects 來識別關聯。

通過將聲明關聯關係的工作轉移給開發者,使執行引擎的實施變得更容易,這意味著理論上它可以有更好的性能和可擴展性。然而,這是以不太理想的開發者體驗為代價的。

二級標題

Fuel

二級標題Linera 是並行處理領域的最新成員,最近宣布了他們的第一輪融資,由a16z 領投。

關於項目實施的細節不多。然而,根據他們的融資公告帖子,我們知道它是基於同樣在Facebook 開發的FastPay 協議。

在FastPay 的基礎上,Linera 正計劃建立一個區塊鏈,通過並行執行支付交易,專注於快速結算和低延遲。值得注意的是,Sui 也使用Byzantine Consistent Broadcast 的方式進行簡單的支付。對於其他交易,Sui 自己的共識機制Narwhal 和Tusk 被用於高效處理DeFi 交易等更複雜的和有關係性的交易。

二級標題

對於功能性區塊鏈,Fuel 與其他鏈交互以達成共識和數據可用性,例如Ethereum 或Celestia。

一級標題

為了驗證該概念,Fuel 團隊已經創建了一個名為SwaySwap 的AMM,類似於Uniswap,並在測試網上運行。目的是證明FuelVM 與EVM 相比性能更高。

一級標題

一級標題一級標題

並行執行的方法似乎是合乎邏輯和直接的,然而,目前我們仍然面臨著幾個挑戰。首先是估計使用這種並行執行方式可以加速的交易的實際比例。第二個挑戰是網絡的去中心化,也就是說,如果驗證者可以很容易地擴展計算能力以提高吞吐量,那麼完整節點如何跟上以確保鏈的正確性?

一級標題

一級標題

可並行交易的百分比

準確估計在任何鏈上可並行執行的鏈上交易的百分比是具有挑戰性的。

此外,根據網絡活動的類型,這個百分比在區塊之間會有很大的變化。例如,一個NFT Mint 可能會導致一個具有高百分比的關聯性交易的爆發。也就是說,我們可以使用一些假設來獲得可並行交易的平均百分比的粗略估計。

例如,我們可以假設大多數ETH 和ERC20 的轉移是獨立的,即從不同的地址發起並接收到不同的地址。所以我們可以假設約25%的ETH 和ERC20 轉賬是相互關聯的,即向SC 存款以及將交易所熱錢包的資產聚合到冷錢包。

使用這些數字和假設,我們可以估計,PE 可以加速SC 平台中大約70-80%的交易。

一級標題

這意味著關聯交易的順序執行佔所有交易的20-30%。

換句話說,如果使用相同的Gas 限制,就有可能通過PE 實現3 倍-5 倍的吞吐量增長。

在實踐中,高吞吐量鏈使用更高的Gas 限制和更短的塊時間來實現比至少100 倍以太坊的吞吐量提高。增加的吞吐量需要強大的驗證節點來處理這些區塊,這一要求導致了第二個挑戰,即網絡的中心化。

一級標題一級標題

總結

總結

總結

並行執行引擎是提高智能合約平台吞吐量的有前途的解決方案。

並行執行引擎是提高智能合約平台吞吐量的有前途的解決方案。

原文鏈接

原文鏈接

深潮TechFlow
作者文库