
為什麼並行化將會是下一代的區塊鏈解決方案?
TechFlow Selected深潮精選

為什麼並行化將會是下一代的區塊鏈解決方案?
計算機的歷史告訴我們,隨著時間的推移,並行系統往往比順序系統更有效和可擴展。
撰文:Paul Timofeev、Mike Jin、Gabe Tramble
編譯:Chris,Techub News
區塊鏈是虛擬機,一種軟件基礎的計算模型,它運行在任何人都可以加入但極難被單一實體控制的分佈式物理計算機網絡之上。區塊鏈的概念最初在中本聰 2008 年發表的比特幣白皮書中被提出,作為支持比特幣中加密安全點對點支付的核心基礎設施。對於區塊鏈而言,交易就像是社交媒體和互聯網公司的日誌;它們作為特定網絡活動記錄,關鍵的區別在於區塊鏈上的交易是不可篡改的,通常也是公開可查詢的。
交易究竟是什麼
區塊鏈上的交易涉及將數字資產從一個地址轉移到分佈式賬本上的另一個地址,這一過程通過公鑰密碼學技術來保護。交易不僅可用於去中心化的點對點轉賬,還可用於各種認證和驗證流程。

任何人都可以在 SeiTrace 等區塊鏈瀏覽器上觀察的交易示例
區塊鏈交易如何運作
當 Bob 決定向 Alice 發送代幣時,他的操作會立即通告至整個區塊鏈網絡。在這個過程中,網絡中的特定節點(驗證節點)開始活動,它們核實交易的有效性。經過足夠數量的節點確認無誤後,此次交易便會被記錄在一個新區塊內,並與其他用戶的交易一同打包。一旦區塊填滿,它便被永久地添加到區塊鏈上,因此形成了這一技術的名稱。如此,Bob 和 Alice 就能在這個持久、公開的賬本上查驗自己的交易詳情。
在區塊鏈中,每筆交易都攜帶了元數據,這些信息幫助網絡中的節點辨認並實施特定的指令和參數。交易通常包括高級數據如轉賬金額、接收地址和用以驗證交易的數字簽名,及自動生成的其他底層數據,這些數據的具體內容則根據不同的網絡設計而異。
儘管這些過程普遍適用,具體的執行細節會根據所用的區塊鏈架構有所不同。
例如,在以太坊等傳統區塊鏈中,存在一種名為內存池(mempool)的機制。Mempool 實質上是一個緩存區或「等候區」,用於存放尚未被納入區塊的交易。
這裡是採用內存池的區塊鏈中,交易的一般生命週期:
-
用戶發起並簽署交易。
-
區塊鏈網絡的驗證節點檢查交易的有效性並確保參數正確。
-
一旦通過驗證,交易便會進入公共內存池,與其他待處理的交易一同等待被打包。
-
根據交易所付的燃料費用與內存池中其他交易的費用比較,最終決定將哪些交易打包到下一個區塊中。一旦打包,交易狀態變為「成功」。
-
在一段時間或達到某個區塊生成的閾值後,區塊得到最終確認,交易便永久記錄在區塊鏈上,除非遭受如 51% 攻擊這樣的極端情況,否則信息是不可更改的。
無內存池 (Solana)
與上述相反,像 Solana 這樣的一些區塊鏈平臺並未使用內存池,而是將交易直接發送給區塊生產者,這樣做旨在提高處理速度和吞吐量,通過連續不斷地生成區塊來實現。


讓我們繼續通過非 mempool 區塊鏈上的交易生命週期來了解:
-
用戶在使用應用的過程中發起並簽署交易。
-
應用程序將交易信息路由到遠程過程調用(RPC)服務器。
-
RPC 提供商將交易發送給當前指定的區塊生產者,以及接下來的三個生產者;這是在當前第一個區塊生產者無法及時執行交易時的預防步驟。
-
區塊生產者隨後將已簽名的交易發送給共識節點進行驗證。
-
共識節點投票驗證交易內容,一旦完成,交易狀態就會被路由回 RPC > 應用程序 > 用戶,顯示為「成功」或「失敗」。
-
與基於 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 公司規模的系統提供了一個直觀的框架。
歡迎加入深潮 TechFlow 官方社群
Telegram 訂閱群:https://t.me/TechFlowDaily
Twitter 官方帳號:https://x.com/TechFlowPost
Twitter 英文帳號:https://x.com/BlockFlow_News










