在區塊鏈世界中,速度和可擴展性是持續的挑戰。儘管安全性和去中心化是不可妥協的,但每秒處理數千筆交易的能力仍然是開發者的首要任務。並行執行是解決此問題的最有前景的方案之一。通過允許交易同時進行,而不是逐個處理,這有可能改變區塊鏈處理大規模請求的方式。

本文將詳細闡述什麼是並行執行,它是如何工作的,它面臨的挑戰,以及爲什麼這可能成爲未來區塊鏈架構的核心特性。

理解並行執行

要理解並行執行,首先需要將其與順序執行進行比較,這是當前大多數區塊鏈網絡的標準。

在順序執行中,交易按固定順序逐一處理。即使兩個交易不相關——例如,一個交易在Alice和Bob之間發送代幣,而另一個交易更新Charlie的智能合約——網絡仍然會順序處理它們。這確保了確定性,但也可能減慢處理速度,尤其是在需求增加時。

並行執行改變了這一模型。區塊鏈不是在一個線程中處理交易,而是識別不與相同數據部分(狀態)交互的交易,並同時執行它們。如果兩個交易是獨立的——即不讀取或寫入相同的賬戶、合約或存儲——則它們可以安全地同時運行。

想象一下現代CPU:單核處理器在一個時刻運行一個任務,而雙核處理器並行運行多個任務,從而更快地完成工作。

區塊鏈爲什麼需要並行執行

區塊鏈面臨可擴展性的三難困境:同時實現去中心化、安全性和可擴展性的難度。順序執行模型易於理解且安全,但極大限制了交易吞吐量。

像以太坊這樣的流行區塊鏈在其基本層上處理約15-30筆交易每秒(TPS)。儘管第二層解決方案有所幫助,但基礎鏈本身仍面臨着高需求,導致網絡擁堵和高費用。

並行執行直接解決了這些痛點:

  • 在不徹底重構協議的情況下提高TPS

  • 減少交易確認時間

  • 更好地利用現代多核CPU和高性能硬件

  • 提高基礎層的性能而不犧牲去中心化

並行執行的工作原理

1. 依賴分析

在並行執行交易之前,區塊鏈必須確定哪些交易是獨立的。這通常通過靜態分析交易數據或智能合約的字節碼來完成。例如,如果兩個交易更改相同賬戶的餘額,則這兩個交易必須順序執行以避免衝突。

2. 交易調度

在依賴關係被映射後,交易被分組爲“批次”獨立操作。該批次可以在多個CPU線程中執行,甚至可以在多個GPU上執行,具體取決於鏈的設計。

3. 狀態管理

並行執行需要嚴格的狀態控制,以防止數據競爭或不一致的結果。主要有兩種策略:

  • 悲觀併發控制:在狀態對象上放置鎖,這樣在同一時間內只能有一個交易可以修改它。

  • 樂觀併發控制:交易在沒有鎖的情況下運行,但結果在之後進行驗證。如果發現衝突,則特定交易將被取消並按順序重新執行。

4. 虛擬機(VM)支持

許多區塊鏈虛擬機,例如以太坊的EVM,旨在進行順序執行。並行性實現可能需要新的虛擬機或顯著的升級。示例包括Move VM(用於Aptos和Sui)和Sealevel Solana,兩者在設計時都考慮了併發性。

並行執行的實際示例

Solana和Sealevel

Sealevel Solana的執行引擎是現實世界中最先進的並行執行實現之一。該引擎分析交易以檢測賬戶訪問模式,並在多個核心和GPU之間進行調度。這種架構幫助Solana在理想條件下實現數千TPS。

Aptos和Sui(Move VM)

該區塊鏈使用考慮並行執行的Move編程語言和虛擬機。虛擬機可以以推測的方式執行交易,並在檢測到衝突時進行回滾,從而在不犧牲安全性的情況下實現高吞吐量。

以太坊研究

以太坊目前是順序運行的,但關於分片和並行執行EVM(或未來基於Wasm的虛擬機)的研究仍在繼續。像EIP-648和實驗性EVM並行這樣的提案正在探索如何同時處理交易,同時保持以太坊的安全保證。

並行執行的好處

並行執行爲區塊鏈網絡提供了多種好處:

  • 高吞吐量:每秒處理數千個交易,無需集中基礎設施。

  • 較低的延遲:交易更快得到確認,提升用戶體驗。

  • 更好的硬件利用:多核CPU和GPU可以得到充分利用。

  • 與擴展策略的兼容性:與分片、彙總和流水線一起良好工作,以實現更大的可擴展性。

並行執行的挑戰

儘管前景光明,但並行執行並不是靈丹妙藥。並行執行面臨着自身的挑戰:

  • 複雜的依賴檢測:確定哪些交易是真正獨立的需要大量計算。

  • 狀態衝突:如果兩個交易嘗試更改相同的數據,則必須取消其中一個交易並重新嘗試,從而降低性能。

  • 確定性要求:所有節點都必須達到相同的最終狀態,即使是並行執行。

  • 安全隱患:錯誤的並行化可能使惡意交易利用狀態的不一致性。

並行執行和補充技術

並行執行通常與其他可擴展性解決方案並行進行:

  • 分片:將區塊鏈狀態分成多個可以並行處理交易的“分片”。

  • 彙總:在鏈外合併多個交易,並在鏈上完成,減少基礎層的負擔。

  • 安全的併發智能合約:合約可以設計爲最小化共享狀態,從而使其更適合並行執行。

未來展望

並行執行很可能成爲下一代區塊鏈的基本特性。隨着採用率的提高,開發者將專注於:

  • 更高效的交易依賴分析

  • 結合並行性與流水線的混合執行模型

  • 從一開始就爲併發設計的虛擬機

  • 與硬件加速(GPU、FPGA執行)的集成

如果成功,這一創新將使區塊鏈更接近於匹敵——甚至超越——集中系統的性能,同時保持去中心化。

結論

並行執行是區塊鏈可擴展性的一次重大飛躍。通過同時處理獨立交易,區塊鏈可以實現更高的吞吐量、更低的延遲以及更好地利用現代計算資源。儘管仍然存在技術挑戰,像Solana、Aptos和Sui這樣的項目表明,在現實世界條件下並行執行是可行且有效的。

隨着研究的不斷深入以及越來越多的區塊鏈採用這一技術,並行執行可能會成爲區塊鏈架構的基礎,就像共識機制本身一樣。