為什麼並行化將是下一代的區塊鏈解決方案?

原文標題:《Parallel Execution: The Next Generation of Blockchains》

撰文:Paul Timofeev 、Mike Jin、Gabe Tramble

編譯:Chris,Techub News

區塊鏈是虛擬機,一種軟體基礎的運算模型,它運行在任何人都可以加入但極難被單一實體控制的分散式實體電腦網路之上。區塊鏈的概念最初在中本聰2008 年發表的比特幣白皮書中被提出,作為支援比特幣中加密安全點對點支付的核心基礎設施。對於區塊鏈而言,交易就像是社群媒體和網路公司的日誌;它們作為特定網路活動記錄,關鍵的差異在於區塊鏈上的交易是不可篡改的,通常也是公開可查詢的。

交易究竟是什麼

區塊鏈上的交易涉及將數位資產從一個地址轉移到分散式帳本上的另一個地址,這一過程透過公鑰密碼學技術來保護。交易不僅可用於去中心化的點對點轉賬,還可用於各種認證和驗證流程。

任何人都可以在SeiTrace 等區塊鏈瀏覽器上觀察的交易範例

區塊鏈交易如何運作

當Bob 決定向Alice 發送代幣時,他的操作會立即通告至整個區塊鏈網路。在這個過程中,網路中的特定節點(驗證節點)開始活動,它們核實交易的有效性。經過足夠數量的節點確認無誤後,此交易便會被記錄在一個新區塊內,並與其他用戶的交易一同打包。一旦區塊填滿,它便被永久地添加到區塊鏈上,因此形成了這項技術的名稱。如此,Bob 和Alice 就能在這個持久、公開的帳本上查驗自己的交易詳情。

在區塊鏈中,每筆交易都攜帶了元數據,這些資訊幫助網路中的節點辨認並實施特定的指令和參數。交易通常包括高級數據如轉帳金額、接收地址和用以驗證交易的數位簽名,及自動產生的其他底層數據,這些數據的具體內容則根據不同的網路設計而異。

儘管這些過程普遍適用,具體的執行細節會根據所使用的區塊鏈架構有所不同。

例如,在以太坊等傳統區塊鏈中,存在著一種名為記憶體池(mempool)的機制。 Mempool 實質上是一個快取區或「等候區」,用於存放尚未被納入區塊的交易。

這裡是採用記憶體池的區塊鏈中,交易的一般生命週期:

  • 用戶發起並簽署交易。
  • 區塊鏈網路的驗證節點檢查交易的有效性並確保參數正確。
  • 一旦通過驗證,交易就會進入公共記憶體池,與其他待處理的交易一同等待被打包。
  • 根據交易所付的燃料費用與記憶體池中其他交易的費用比較,最終決定將哪些交易打包到下一個區塊中。一旦打包,交易狀態變成「成功」。
  • 在一段時間或達到某個區塊產生的門檻後,區塊得到最終確認,交易便永久記錄在區塊鏈上,除非遭受如51% 攻擊這樣的極端情況,否則資訊是不可更改的。

無內存池(Solana)

與上述相反,像Solana 這樣的一些區塊鏈平台並未使用內存池,而是將交易直接發送給區塊生產者,這樣做旨在提高處理速度和吞吐量,透過連續不斷地生成區塊來實現。

為什麼並行化將是下一代的區塊鏈解決方案?

讓我們繼續透過非mempool 區塊鏈上的交易生命週期來了解:

  1. 用戶在使用應用程式的過程中發起並簽署交易。
  2. 應用程式將交易資訊路由到遠端過程呼叫(RPC)伺服器。
  3. RPC 提供者將交易發送給目前指定的區塊生產者,以及接下來的三個生產者;這是在目前第一個區塊生產者無法及時執行交易時的預防步驟。
  4. 區塊生產者隨後將已簽署的交易發送給共識節點進行驗證。
  5. 共識節點投票驗證交易內容,一旦完成,交易狀態就會被路由回RPC > 應用程式> 用戶,顯示為「成功」或「失敗」。
  6. 與基於mempool 的區塊鏈類似,區塊本身在一定時間或基於區塊的閾值通過後會被最終確定。

順序執行

較老的區塊鏈,尤其是比特幣和以太坊,採用順序執行機制進行交易。每筆添加到區塊鏈上的交易都會引發網路狀態的變化,並且出於安全目的,虛擬機器的結構一次僅處理一個狀態變化。

為什麼並行化將是下一代的區塊鏈解決方案?

這導致了底層網路吞吐量的顯著瓶頸,因為能夠添加到區塊中的交易數量受到限制,導致等待時間變長,交易成本的飆升,有時甚至使網路無法使用。此外,順序執行模型使用硬體組件的效率相當低,因此無法從計算的突破性進展中受益,例如多處理器核心。

為什麼並行化將是下一代的區塊鏈解決方案?

平行執行

平行運算是一種電腦架構的關鍵技術,它的發展歷程可以追溯到20 世紀50 年代末,而其背後的理念和理論最早可以追溯到1837 年。這種技術允許多個處理單元同時工作以解決單一問題,透過將大型複雜的任務細分成小塊,實現比傳統串行處理更有效率的任務完成方式。

最初,這種技術主要應用於高效能運算系統中,但隨著網路時代的到來以及運算需求的指數級增長,加之近幾十年來處理器速度提升的物理極限,並行運算已成為現代電腦架構的主流模式。

在區塊鏈技術中,這種平行處理模式也被採用,主要用於同時處理和執行多個交易或從一個智慧合約到另一個智慧合約的價值轉移,因此被稱為「並行執行」。

並行執行的概念使得區塊鏈能夠同時處理多個互不衝突的交易,這大幅提升了網路的吞吐量,增強了其擴展性,使區塊鏈能夠更有效地應對更高的活動量和更大的區塊需求。

可以透過一個簡單的比喻來理解這一點:想像一下一家雜貨店有多個結帳通道供顧客使用,相較之下只有一個通道顯然效率要低得多。這樣的平行處理方式,提高了整體的處理效率和客戶的滿意度。

為什麼並行執行很重要

在區塊鏈技術中,實施並行執行的主要目標是提升網路的處理速度和整體效能,尤其是在面對高流量和大量資源請求的情況下。例如,在加密貨幣生態系統中,當Bob 打算創建最新流行的NFT 系列,而Alice 希望購買她偏愛的模因幣時,區塊鏈網路能夠同時響應這兩種操作,而不會犧牲性能或用戶體驗。

這種能力雖然看似只是提升使用者體驗的簡單特性,其實質上透過提高網路的效率,為開發新的創意應用和用例鋪平了道路。這些應用和用例能夠利用到的低延遲和高處理能力,為引入更多的用戶群體到加密貨幣生態系統中提供了重要基礎,預示著加密技術向更廣泛應用的轉變。

並行執行如​​何工作

儘管並行執行的前提相對簡單,但底層區塊鏈設計的細微差別會影響平行執行過程本身的表現。設計具有並行執行的區塊鏈最相關的功能是交易存取其底層網路狀態的能力,包括帳戶餘額、儲存和智慧合約。

區塊鏈的平行執行通常可以分為兩種類型:確定性並行執行和樂觀並行執行。確定性並行執行,如Solana 採用的模式,要求交易在執行前明確聲明其所有的記憶體依賴項,即它們需要存取的全域狀態的具體部分。這種方法雖然增加了開發者的負擔,但能夠讓網路在執行前對不衝突的交易進行排序和識別,從而形成一個可預測且效率更高的系統。相對地,樂觀並行執行假設所有交易都無衝突地進行,這種結構可以加速交易的處理速度,但如果出現衝突,可能需要對交易進行重新執行。在發現兩個衝突的交易— 即嘗試存取相同網路狀態的交易時,系統可以選擇重新處理這些交易,無論是並行或按順序執行。

為了更深入地理解這些設計的影響,從當今推動並行執行前沿的團隊的角度來分析並行執行可能會有所幫助。

當下並行執行的市場格局

為什麼並行化將是下一代的區塊鏈解決方案?

Solana 虛擬機器(SVM)

Solana 是第一個圍繞平行執行設計的區塊鏈網絡,靈感來自創始人Anatoly Yakovenko 在電信行業的過去經驗。 Solana 旨在提供一個開發平台,其運行速度盡可能快,因此平行運算的速度和效率是一個簡單直覺的設計選擇。

為什麼並行化將是下一代的區塊鏈解決方案?

實現Solana 快速和高吞吐量的關鍵元件是Sealevel,它是網路的平行智慧合約運行時環境。與基於EVM 和WASM 的環境不同,Sealevel 採用多執行緒架構,這意味著它可以在驗證器核心的容量範圍內同時處理多個交易。

Solana 並行執行的關鍵是在啟用交易時,網路會為該交易分配一系列要執行的指令,具體是存取哪些帳戶和狀態以及進行哪些更改—— 這是確定哪些交易不衝突並且可以同時執行的關鍵,同時也允許嘗試存取相同狀態的交易同時進行。

Solana 還利用Cloudbreak,其自訂的accountsDB,用於儲存和管理狀態數據,以支援交易的並發讀寫。 Cloudbreak 針對並行執行進行了最佳化,可以水平擴展以跨多個節點分佈和管理狀態資料。

由於其平行架構,Solana 能夠處理大量交易,同時仍快速執行,為交易提供近乎即時的最終性。 Solana 目前平均每秒處理2,000 到10,000 筆交易(TPS)。此外,隨著像Eclipse 這樣的團隊推出旨在利用SVM 作為執行環境的Layer 2 基礎設施,SVM 的用例正在緩慢但穩定地擴展。

並行EVM

平行EVM 描述了一種新的區塊鏈執行環境,旨在結合Solana 和以太坊的設計「兩全其美」,具有Solana 的速度和性能以及以太坊的安全性和流動性。透過並行處理交易而不是按照傳統EVM 設計順序處理交易,並行EVM 使開發人員能夠在高效能網路上建立應用程序,同時能夠利用與EVM 流動性和開發人員工具的連接。

Sei Network

Sei Network 是一個與EVM 相容的開源Layer1 區塊鏈,它支援圍繞高效能構建的各種去中心化應用程式。 Sei 旨在為使用者和開發者提供快速的速度和低成本,而平行執行是實現此效能和使用者體驗的關鍵組成部分。目前,Sei 提供了390 毫秒的區塊確認時間,並在其太平洋主網上處理了超過19 億筆交易。

最初,Sei 採用了確定性並行執行模型,智能合約提前聲明其所需的狀態訪問,以便系統能夠​​同時運行不衝突的交易。隨著他們V2 升級的到來,Sei 正在過渡到一個樂觀的並行模型,這意味著所有交易將在提交到網路時並行處理(執行階段),然後在驗證階段檢查與先前交易的衝突資訊。如果發現兩個或更多的衝突交易,即嘗試存取相同網路狀態的交易,Sei 會識別此衝突點,然後根據衝突的性質,要麼並行要麼順序地重新運行交易。

為什麼並行化將是下一代的區塊鏈解決方案?

為了儲存和維護交易數據,Sei 還將引入SeiDB,這是一個客製化資料庫,旨在透過優化並行執行來改進v1 版本的不足之處。 SeiDB 的目標是減少儲存冗餘資料的開銷,並保持高效率的磁碟使用率,以提高網路效能。 V2 減少了追蹤和儲存所需的元資料量,並啟用了預寫日誌,以協助在崩潰事件中復原資料。

為什麼並行化將是下一代的區塊鏈解決方案?

最後,Sei 最近還宣布推出了其Parallel Stack,這是一個開源框架,用於使Layer 2 擴展解決方案(例如rollups)能夠利用並行執行並從中受益。

為什麼並行化將是下一代的區塊鏈解決方案?

Monad

Monad 是一個即將到來的平行EVM Layer 1 區塊鏈,為以太坊應用程式和基礎設施提供完整的字節碼和RPC 相容性。透過一些創新的技術實現,Monad 旨在保持較低交易成本的同時,透過優化效能和可移植性,提供比現有區塊鏈更具互動性的體驗,具有1 秒的區塊時間和高達10,000 TPS 的最終確定性。

Monad 實現了平行執行和超標量管線技術,以優化交易的速度和吞吐量。類似於Sei v2,Monad 將採用樂觀執行模型,這意味著網路將開始同時執行所有傳入的交易,然後分析和驗證交易以尋找衝突並相應地重新執行,最終目標是,如果交易按順序執行,結果將是相同的。

為什麼並行化將是下一代的區塊鏈解決方案?

要注意,在與以太坊保持同步的同時,Monad 會以線性順序對區塊中的交易進行排序,並順序更新每個交易。

為了比目前以太坊客戶端提供的狀態更有效地維護和存取區塊鏈數據,Monad 創建了自己的客製化MonadDB,這是為區塊鏈本地構建的。 Monad DB 利用先進的Linux 核心特性,實現高效率的非同步磁碟操作,消除了同步輸入/ 輸出存取的限制。 MonadDB 提供非同步輸入/ 輸出(async I/O)訪問,這是實現並行執行的關鍵特性,系統可以在等待讀取先前交易的狀態的同時開始處理下一筆交易。

一個簡單的類比是,考慮烹飪一個多步驟的餐點(例如肉丸意麵)。所涉及的步驟是1)準備醬汁,2)煮肉丸,和3)煮麵條。一個高效的廚師會先為麵條煮水,然後準備醬汁的配料,然後在現在沸騰的水中煮麵條,接著煮醬汁,最後煮肉丸,而不是一次完成一個步驟,每完成一個任務後再進行下一個。

Move

Move 是一種程式語言,最初由Facebook 團隊在2019 年為現已廢棄的Diem 專案開發。 Move 旨在以安全的方式處理智能合約和交易數據,消除了其他語言固有的攻擊向量,例如可重入性攻擊。

MoveVM 作為基於Move 的區塊鏈的本地執行環境,利用並行化提供更快的交易執行速度和更高的整體效率。

Aptos

Aptos 是由前Diem 專案成員開發的基於Move 的Layer1 區塊鏈,它透過並行執行提供了高效能的環境給應用程式開發者。 Aptos 利用Block-STM,這是一種軟體事務記憶體(STM)並發控制機制的修改實作。

為什麼並行化將是下一代的區塊鏈解決方案?

Block-STM 是一個多執行緒並行執行引擎,它允許樂觀並行執行。交易在區塊內被預先排序和策略性地排序,這對於有效解決衝突和重新執行交易至關重要。 Aptos 的研究發現,使用Block-STM 的平行化理論上可以支持高達160,000 TPS。

Sui

與Aptos 類似,Sui 是由前Diem 專案成員開發的Layer 1 區塊鏈,它也使用Move 語言。然而,Sui 採用了自訂的Move 實現,該實現從原始的Diem 設計中改變了儲存模型和資產權限。特別是,這允許Sui 使用狀態儲存模型將獨立交易表示為物件。每個物件在Sui 的執行環境中都有唯一ID ,從而允許系統輕鬆識別不衝突的交易再並行處理它們。

為什麼並行化將是下一代的區塊鏈解決方案?

與Solana 類似,Sui 實施了確定性並行執行,要求交易提前聲明它們需要存取的帳戶。

Movement Labs

Movement 正在建立一套開發者工具和區塊鏈基礎設施服務,以便開發者能夠輕鬆存取在Move 上建立的好處。作為Move 開發者的AWS 類別執行即服務平台,Movement 將並行化作為核心設計特性,以實現更高的吞吐量和更大的整體網路效率。 MoveVM 是一個模組化的執行環境,它允許區塊鏈網路根據需要擴展和調整其交易處理能力,以支援日益增長的交易量,增強其並行處理和執行交易的能力。

為什麼並行化將是下一代的區塊鏈解決方案?

Movement 也將推出M2,這是一個將與EVM 和Move 用戶端互通的ZK-rollup。 M2 將繼承Block-STM 並行化引擎,並有望因此實現數萬個TPS。

平行系統的挑戰

關於平行區塊鏈技術的發展,我們必須考慮幾個關鍵問題以及涉及的權衡:

  • 網路為了透過並行執行實現更好的效能而做出了哪些權衡?
  • 較少的驗證者保護網路可以加快驗證和執行速度,但這是否會犧牲掉區塊鏈的安全性,使其更容易受到驗證者的攻擊?
  • 是否有大量的驗證者共址?這是一種在加密和非加密系統中都常見的最小化延遲的策略,但如果特定資料中心受到威脅,網路會發生什麼?
  • 對於樂觀的平行系統,重新執行無效交易的過程是否會隨著網路的擴展而成為瓶頸?這種效率是如何被測試和評估的?
  • 從高層次來看,平行區塊鏈面臨帳本不一致的風險,即雙重支出和交易順序變化(事實上,這是順序執行的主要好處)。確定性並行化透過為底層區塊鏈上的交易創建內部標籤系統來解決這個問題。實施樂觀處理的區塊鏈必須確保它們用於驗證和重新執行交易的機制是安全且有效的,並且可以合理地實現對效能的權衡。

未來展望

計算機的歷史告訴我們,隨著時間的推移,並行系統往往比順序系統更有效和可擴展。 Solana 之後的平行區塊鏈的崛起強調了這個概念也適用於加密基礎設施。即使是Vitalik 也提到並行化為提高EVM rollups 可擴展性的潛在關鍵解決方案之一。廣義上講,加密/ 區塊鏈的採用成長需要比今天可用的系統更優越的系統,包括平行區塊鏈。 Solana 最近的網路挑戰突顯了平行區塊鏈開發中還有很大的改進空間。隨著更多的團隊尋求推動鏈上前沿的界限,並將下一批大規模用戶群體和採用引入到區塊鏈原生應用和生態系統中,並行執行模型為構建能夠高效處理網路活動量級、輕鬆搭配Web2 公司規模的系統提供了一個直覺的框架。

Total
0
Shares
Related Posts