並行執行:開啓區塊鏈新紀元

進階5/10/2024, 10:43:24 AM
加密研究機構 Shoal Research 解析了當前區塊鏈並行領域的相關項目,包括 Solana(SVM)、並行 EVM(Sei、Monad)以及 MoveVM(Aptos、Sui、Movement)的進展,並分析了該領域面臨的挑戰與機遇。

前言

1.0 區塊鏈交易

區塊鏈本質上是一種虛擬的計算系統,它以軟件的形式存在,運行於一個分散的計算機網路之上,這個網路開放給所有人加入,但卻幾乎不可能被任何單一機構控制。區塊鏈這一概念最早出現在2008年,由Satoshi Nakomoto在其開創性的比特幣白皮書中首次提出,旨在爲比特幣實現一種加密且安全的點對點支付系統。在區塊鏈世界中,交易的角色相當於社交媒體和互聯網公司中的日志記錄,它們記錄了網路中的各種活動。不同的是,區塊鏈上的交易記錄是永久不變的,並且大多數情況下是公開可見的。

但交易到底是什麼?

簡單來說,區塊鏈上的交易就是數字資產在分布式帳本上從一個地址轉移到另一個地址的過程,這一過程通過公鑰加密技術來確保安全性。這些交易不僅可以用於實現去中心化的人與人之間的資金轉移,還可以用於各種認證和驗證操作。

任何人都能通過區塊鏈瀏覽工具,如SeiTrace,來查看交易情況

1.1 區塊鏈交易如何運作

當發起一筆交易,比如Bob給Alice轉帳一些代幣時,這筆交易就會被廣播到整個區塊鏈網路中。接下來,網路中的特定節點羣體會開始驗證這筆交易的合法性。一旦有足夠多的節點確認了交易的內容無誤,這筆交易就會被加入到一個區塊中,和其他用戶的交易一起。當一個區塊數據滿載時,它就會被正式加入到區塊鏈中,這也是“區塊鏈”名稱的由來。這樣,Bob的交易就被記錄在了一個既安全又透明的帳本中,他和Alice都能查看和驗證交易詳情。

一般來說,所有區塊鏈交易都包含了一些元數據,這些數據幫助網路中的節點識別並執行特定的指令和參數。每筆交易都會包括一些由交易發起人提供的基本信息,比如轉帳金額、接收地址和用於驗證交易的數字籤名,還有一些根據網路和設計不同而自動生成並附加上的額外數據。

不過,值得注意的是,交易執行前,在網路層面背後進行的具體處理流程會根據不同的區塊鏈設計而有所不同。

1.1.1 內存池(Mempool)

內存池(或稱mempool)是比特幣、以太坊等傳統區塊鏈網路設計中的一個標準功能。簡而言之,內存池就像是一個緩衝區或“候機室”,專門用來存放那些還沒能加入區塊、等待執行的交易。

爲了便於理解,我們可以追蹤一筆在使用內存池的區塊鏈上的交易經歷:

  1. 用戶發起並籤署交易。
  2. 區塊鏈網路中的專業節點會檢查這筆交易,確認其合法性及參數的正確性。
  3. 通過驗證後,這筆交易就會被發送到公共內存池中,和其他待處理的交易排隊等待。
  4. 根據這筆交易相對於內存池中其他交易支付的交易費,最終,這筆待處理的交易可能會被選中並與其他交易一起組成區塊鏈上的下一個區塊。此時,交易的狀態會顯示爲“成功”。
  5. 經過一段時間或達到某個基於區塊的限制後,該區塊被確認無誤,交易便永久記錄在區塊鏈上,成爲不可更改的記錄。除非遭受51%的攻擊,這種記錄幾乎不可能被篡改。

1.1.2.無內存池 (Solana)

需要特別指出的是,像Solana這樣的一些區塊鏈系統並不採用內存池機制。相反,它們可能會直接把交易信息發送給區塊生產者,這樣做是爲了通過連續不斷的區塊生成,達到高速度和大容量的目的。

下面我們來看看在一個沒有內存池的區塊鏈上,一筆交易的全過程:

  1. 用戶爲他們正在使用的應用程序發起並籤署交易。
  2. 用戶對他們正在使用的應用中的一筆交易進行發起和籤名。
  3. 應用將交易信息發送到遠程過程調用(RPC)服務器。
  4. RPC服務提供商將交易信息發送給當前的區塊生產者,以及接下來的三位生產者。這是一個預防措施,以防當前負責人無法及時處理交易。Solana使用一個特定的排班表來簡化交易的路由過程。
  5. 區塊生產者接着將這筆已籤名的交易發送給共識節點進行驗證。
  6. 共識節點通過投票來驗證交易的內容,完成後,交易的狀態就會通過RPC > 應用程序 > 用戶的路徑返回,標記爲“成功”或“失敗”。
  7. 和使用內存池的區塊鏈一樣,一定時間或達到某個區塊限制後,區塊就會被最終確認。

1.2 交易的順序執行

早期的區塊鏈系統,如比特幣和以太坊,使用了一種交易順序處理的方法。這意味着每一筆加入區塊鏈的交易都會改變網路的狀態,而爲了保障安全,它們的虛擬機(VM)被設計成一次只能處理一種狀態的變化。

這種處理方式導致了一個重大的問題:網路的處理能力受到了極大的限制。因爲每個區塊能包含的交易數量有限,這不僅讓用戶需要等待更長時間,還可能導致交易費用的急劇上升,有時甚至讓整個網路都無法正常使用。而且,這種順序處理模式對硬件的利用率極低,也就意味着它不能充分利用計算技術的最新進展,例如多核處理器的優勢。

並行執行

2.0 什麼是並行執行?

並行計算是計算機架構中至關重要的一環,其歷史可以追溯到20世紀50年代末,甚至有人將其理念和理論的起源追溯到1837年。簡單來說,並行計算就是在執行一個操作時,同時利用多個處理單元,通過將一個大型且復雜的任務分解成若幹個小任務來完成,這樣做比按順序逐個處理要高效得多。

這種架構標準同樣適用於區塊鏈技術,只是在這裏,計算機處理和執行的主要任務是交易處理,即從一個智能合約向另一個智能合約轉移價值,這就是所謂的並行執行。

並行執行的含義是,區塊鏈可以同時處理多個不衝突的交易,而不是按順序一個接一個地處理。這大大提高了區塊鏈網路的處理能力,使其能夠更有效地應對更高的活動量和對區塊空間的需求,從而變得更加可擴展和高效。

打個比方,想象一下,一家超市如果設有多個結帳通道讓顧客結帳,與只開設一個通道讓所有人排隊相比,前者的效率顯然要高得多。

爲什麼並行執行至關重要?

在區塊鏈領域,採用並行執行的目的是爲了提升網路的速度和整體性能,尤其是在網路流量和資源需求激增的情況下。以加密貨幣生態爲例,這意味着如果Bob想要創建最新的熱門NFT系列,而Alice想要購買她鍾愛的梗幣,那麼網路能夠同時滿足他們的需求,同時保持高性能和良好的用戶體驗。

雖然這聽起來可能只是一個提升使用體驗的直觀功能,但並行執行帶來的網路性能提升實際上爲開發新穎和創新的應用場景及應用程序鋪平了道路,這些應用能夠充分利用低延遲和大容量的優勢。這不僅僅是技術進步的體現,更爲未來大規模吸引用戶進入加密貨幣生態系統打下了堅實的基礎。

並行執行的工作原理是什麼?

雖然並行執行的基本概念比較簡單,但不同區塊鏈的設計差異會影響並行執行的具體實現方式。在設計支持並行執行的區塊鏈時,一個關鍵因素是交易能夠訪問其底層網路狀態的能力,這包括帳戶餘額、存儲空間和智能合約等。

區塊鏈的並行執行可以分爲確定性執行和樂觀性執行兩種。Solana等區塊鏈採用的確定性並行執行要求交易事先明確聲明它們需要訪問的所有數據依賴,例如,它們預先希望訪問的全局狀態的具體部分。這一要求雖然增加了開發者的工作量,但從更廣泛的角度來看,它允許網路在執行之前對不會產生衝突的交易進行排序和識別,從而構建出一個既可預測又高效的系統。而樂觀性並行執行則是假設所有交易之間不存在衝突,從而並行處理所有交易。這種方式使得區塊鏈能夠加快交易執行速度,但如果出現衝突,可能需要之後重新執行這些交易。如果系統發現兩個交易衝突,那麼它可以重新處理和執行這些交易,無論是並行還是順序執行。

爲了更深入理解這些設計細節的影響,分析當前在並行執行領域不斷探索的團隊的做法,可能會對理解並行執行有所幫助。

當前並行執行技術的發展現狀

爲了深入了解這些復雜設計背後的影響,觀察和分析那些正處於並行執行技術前沿、積極推動其發展的團隊,將會是一種非常有益的方法。

3.1 Solana 虛擬機(SVM)

Solana區塊鏈網路是首個專門爲並行執行而設計的系統,這個設計思路源自其創始人Anatoly Yakovenko在電信領域的豐富經驗。Solana的目標是提供一個開發平台,其運行速度能夠達到物理極限,因此採用並行計算來提升速度和效率是一個自然而然的選擇。

Solana實現快速處理和高吞吐能力的核心技術是Sealevel,這是一個支持並行智能合約的運行環境。與基於EVM和WASM的環境不同,Sealevel使用多線程技術,這意味着它能夠根據驗證器的處理能力,同時處理多個交易。

Solana並行執行的關鍵在於,一旦啓用一筆交易,網路就會爲這筆交易分配一系列指令,明確指出需要訪問的帳戶和狀態以及需要做出的更改。這一機制不僅能識別出可以同時執行的非衝突交易,還允許那些需要訪問相同狀態的交易能夠並行進行。

可以將這一機制比作機場行李處理系統中標籤的作用,極大提高了效率。

此外,Solana還開發了專門的帳戶數據庫Cloudbreak,用於存儲和管理狀態數據,支持交易的並發讀寫操作。Cloudbreak經過優化,支持並行執行,能夠在多個節點之間橫向擴展,分散和管理狀態數據。

得益於其並行架構,Solana能夠處理大量的交易,同時保持快速執行,交易幾乎能瞬時完成。目前,Solana的處理速度平均每秒在2000至10000筆交易之間。隨着像Eclipse這樣的團隊開發基於SVM的第二層解決方案,SVM的應用場景正逐漸拓寬,爲Solana生態系統引入更多創新。

3.2 並行EVM

並行EVM提出了一個全新的區塊鏈執行環境概念,它試圖結合Solana的高速性能和以太坊的安全性與資金流動性的優勢,實現最佳的兩全其美。通過並行而非傳統EVM那樣的串行處理交易,這種並行的EVM環境能夠讓開發者在一個高效的網路上開發應用,同時便於他們接入以太坊的資金流動性和開發工具,從而拓寬應用的可能性和便利性。

3.2.1 Sei網路

Sei網路是一個支持EVM的開源一層區塊鏈平台,它支持衆多基於高性能的去中心化應用。Sei的設計初衷是爲了給用戶和開發者提供既快速又經濟的服務體驗,其中並行執行技術是其實現高效性能和優秀用戶體驗的核心。目前,Sei能夠在390毫秒內確認區塊,並已在其太平洋主網上處理了超過19億筆交易。

在早期,Sei採用了一種確定性並行執行模式,智能合約需要提前聲明它們要訪問的狀態,這樣系統就能同時處理那些不會產生衝突的交易。隨着V2版本的升級,Sei轉向了一種樂觀並行模型,即所有交易在提交至網路後(執行階段)將被並行處理,並在之後對可能與之前交易衝突的信息進行驗證(驗證階段)。如果出現兩個或更多試圖訪問同一網路狀態的衝突交易,Sei會找出衝突點,並根據衝突的具體情況選擇並行或順序重新處理這些交易。

爲了更好地存儲和管理交易數據,Sei還開發了SeiDB,這是一個專爲優化並行執行而設計的自定義數據庫。SeiDB的目標是減少存儲冗餘數據的成本,同時有效使用磁盤空間,以提升網路性能。V2版本減少了追蹤和存儲所需的元數據,並引入了預寫日志功能,以便在系統崩潰時輔助數據恢復。

此外,Sei近期還推出了其並行堆棧,這是一個旨在幫助二層擴展方案(如rollups)利用並行執行技術的開源框架,進一步提升了其技術生態的擴展性和應用潛力。

3.2.2 Monad

Monad是一個新興的並行EVM一級區塊鏈項目,它將爲以太坊的應用程序和基礎架構提供完整的字節碼和RPC兼容性。Monad通過引入一系列創新技術,旨在比當前的區塊鏈提供更加互動的體驗,並且通過對性能和可攜帶性的優化,實現低成本的交易,其區塊確認時間僅爲1秒,並能支持每秒處理高達10,000筆的交易量。

Monad採用了並行執行和超標量流水線技術,這些技術顯著提高了交易的處理速度和吞吐量。與Sei的第二版類似,Monad也將採取樂觀執行模式,這意味着網路會同時開始處理所有新的交易,隨後對這些交易進行分析和驗證,以識別並處理任何衝突,確保如果這些交易是按順序執行的,最終結果將保持一致。

值得一提的是,爲了與以太坊保持一致,Monad會按照線性順序在一個區塊中安排交易,並依次更新每筆交易。

爲了比現有的以太坊客戶端更高效地存儲和訪問區塊鏈數據,Monad開發了專門爲區塊鏈設計的自定義數據庫MonadDB。MonadDB利用了Linux內核的高級特性來執行高效的異步磁盤操作,克服了同步輸入/輸出訪問的限制。通過提供異步輸入/輸出訪問,MonadDB支持並行執行的關鍵功能,使系統能夠在等待讀取一個交易的狀態信息時,同時開始處理下一筆交易。

用一個簡單的比喻來說,就像同時準備一個包含多個部分的大餐(比如意大利面配肉丸)。涉及的步驟包括制作醬汁、烹飪肉丸和煮意大利面。一個高效的廚師會同時進行多個步驟,比如先燒開煮面的水,然後準備醬汁的材料,接着把面條放進已經煮沸的水中,然後烹飪醬汁,最後做肉丸,而不是一步步單獨完成每個任務。

3.3 Move

Move是一種由Facebook團隊在2019年爲其已經終止的Diem項目所開發的編程語言。Move的設計初衷是爲了安全地處理智能合約和交易數據,它通過設計上的優勢,排除了諸如重入攻擊等在其他編程語言中常見的安全漏洞。

MoveVM作爲Move語言支持的區塊鏈平台的核心執行環境,通過並行處理技術,實現了更快的交易處理速度和更高的系統效率。

3.3.1 Aptos

Aptos是一種基於Move語言的一級區塊鏈平台,它由前Diem項目團隊成員開發。這個平台通過實施並行處理技術,旨在爲應用開發者提供一個高效的工作環境。Aptos採用了一種名爲Block-STM的技術,這是軟件事務內存(STM)並發控制機制的一種改進型實現。

Block-STM是一個支持多線程並行處理的執行引擎,它採用樂觀並行執行的方式。通過預先對交易進行排序並在區塊中按策略排列,這一機制關鍵地幫助高效解決衝突並對需要的交易進行重新執行。Aptos的研究表明,理論上利用Block-STM的並行處理技術,可以達到每秒最高160,000筆交易的處理速度。

3.3.2 Sui

Sui和Aptos一樣,也是由Diem項目前成員開發的一級區塊鏈平台,同樣採用了Move語言。不過,Sui對Move語言進行了特別的定制修改,這些修改涉及到存儲模型和資產權限,與原始的Diem設計有所不同。特別值得注意的是,Sui採用了一種狀態存儲模型,能夠將獨立的交易以對象的形式進行表示。在Sui的執行環境中,每個對象都擁有一個獨一無二的標識符,這樣做使得系統能夠輕鬆地識別出不會產生衝突的交易,並能夠並行處理這些交易。

與Solana相似,Sui採用了確定性並行執行的策略,這意味着交易必須在執行前聲明它們將要訪問的帳戶信息。

3.3.3 Movement Labs

Movement是什麼?

Movement致力於開發一系列的開發者工具和區塊鏈基礎服務集,旨在幫助開發者輕鬆享受在Move平台上開發的優勢。它提供一種類似於AWS的執行即服務模式,專爲Move平台的開發者設計,通過並行處理技術作爲其核心設計理念,以提升處理速度和網路的整體效率。MoveVM是一種模塊化的執行環境,它爲區塊鏈網路提供了擴展和調整交易處理能力的靈活性,以應對交易量的增加,從而增強了網路並行處理和執行交易的能力。

MoveVM架構

Movement還計劃推出M2,一個與EVM和Move客戶端兼容的ZK-rollup解決方案。M2將採用Block-STM的並行處理引擎,預計將能夠實現每秒數萬次的交易處理速度。

結束語

4.1 當前並行系統的挑戰

在發展並行區塊鏈技術的過程中,我們面臨着一系列重要的問題和考量:

  • 爲了通過並行執行獲得更好的性能,網路進行了哪些權衡?
    • 減少驗證節點能夠提高驗證和執行的速度,但這是否會削弱區塊鏈的安全性,使得驗證節點更容易聯合起來攻擊網路?
    • 是否有很多驗證節點集中在同一個地方?這種做法在加密和非加密系統中都是減少延遲的常見策略,但如果那個特定的數據中心遭到攻擊,對網路又會有什麼影響?
  • 對於採用樂觀並行策略的系統,隨着網路的擴大,重新執行無效交易的過程是否會變成瓶頸?這種效率如何進行測試和評價?

從宏觀角度來看,並行區塊鏈面臨着帳本不一致的風險,如雙重支付和交易順序改變(這正是順序執行的主要優勢)。確定性並行化通過爲底層區塊鏈上的交易創建一個內部標籤系統來應對這一問題。採用樂觀處理機制的區塊鏈必須確保其驗證和重新執行交易的機制既安全又有效,並且爲了性能所做的權衡是合理可行的。

4.2 未來展望/機遇

從計算機發展史我們可以看出,相較於順序處理系統,並行處理系統在效率和可擴展性方面隨時間展現出更強的優勢。Solana之後並行區塊鏈的崛起進一步證明了這一點同樣適用於加密領域的基礎設施建設。甚至Vitalik也曾提到,並行化是近期提升EVM rollups可擴展性的關鍵解決方案之一。總的來說,隨着加密和區塊鏈技術的普及,市場對於比現有系統更優化的解決方案的需求日益增長,這其中就包括並行區塊鏈。Solana近期遇到的網路問題也表明,並行區塊鏈的開發還有很大的進步空間。隨着更多團隊努力拓展鏈上技術的邊界,並吸引更多用戶及應用轉向區塊鏈原生生態,並行處理模型爲構建能夠高效管理大量網路活動的系統提供了一個直觀的框架,使其能夠輕鬆應對與Web2公司相匹配的規模挑戰。

參考文獻

聲明:

  1. 本文轉載自[shoal )],原文標題《Parallel Execution: The Next Generation of Blockchains》,著作權歸屬原作者[PAUL TIMOFEEV, MIKE JIN, AND GABE TRAMBLE],如對轉載有異議,請聯系Gate Learn團隊,團隊會根據相關流程盡速處理。

  2. 免責聲明:本文所表達的觀點和意見僅代表作者個人觀點,不構成任何投資建議。

  3. 文章其他語言版本由Gate Learn團隊翻譯,除非另有說明,否則不得復制、傳播或抄襲經翻譯文章。

並行執行:開啓區塊鏈新紀元

進階5/10/2024, 10:43:24 AM
加密研究機構 Shoal Research 解析了當前區塊鏈並行領域的相關項目,包括 Solana(SVM)、並行 EVM(Sei、Monad)以及 MoveVM(Aptos、Sui、Movement)的進展,並分析了該領域面臨的挑戰與機遇。

前言

1.0 區塊鏈交易

區塊鏈本質上是一種虛擬的計算系統,它以軟件的形式存在,運行於一個分散的計算機網路之上,這個網路開放給所有人加入,但卻幾乎不可能被任何單一機構控制。區塊鏈這一概念最早出現在2008年,由Satoshi Nakomoto在其開創性的比特幣白皮書中首次提出,旨在爲比特幣實現一種加密且安全的點對點支付系統。在區塊鏈世界中,交易的角色相當於社交媒體和互聯網公司中的日志記錄,它們記錄了網路中的各種活動。不同的是,區塊鏈上的交易記錄是永久不變的,並且大多數情況下是公開可見的。

但交易到底是什麼?

簡單來說,區塊鏈上的交易就是數字資產在分布式帳本上從一個地址轉移到另一個地址的過程,這一過程通過公鑰加密技術來確保安全性。這些交易不僅可以用於實現去中心化的人與人之間的資金轉移,還可以用於各種認證和驗證操作。

任何人都能通過區塊鏈瀏覽工具,如SeiTrace,來查看交易情況

1.1 區塊鏈交易如何運作

當發起一筆交易,比如Bob給Alice轉帳一些代幣時,這筆交易就會被廣播到整個區塊鏈網路中。接下來,網路中的特定節點羣體會開始驗證這筆交易的合法性。一旦有足夠多的節點確認了交易的內容無誤,這筆交易就會被加入到一個區塊中,和其他用戶的交易一起。當一個區塊數據滿載時,它就會被正式加入到區塊鏈中,這也是“區塊鏈”名稱的由來。這樣,Bob的交易就被記錄在了一個既安全又透明的帳本中,他和Alice都能查看和驗證交易詳情。

一般來說,所有區塊鏈交易都包含了一些元數據,這些數據幫助網路中的節點識別並執行特定的指令和參數。每筆交易都會包括一些由交易發起人提供的基本信息,比如轉帳金額、接收地址和用於驗證交易的數字籤名,還有一些根據網路和設計不同而自動生成並附加上的額外數據。

不過,值得注意的是,交易執行前,在網路層面背後進行的具體處理流程會根據不同的區塊鏈設計而有所不同。

1.1.1 內存池(Mempool)

內存池(或稱mempool)是比特幣、以太坊等傳統區塊鏈網路設計中的一個標準功能。簡而言之,內存池就像是一個緩衝區或“候機室”,專門用來存放那些還沒能加入區塊、等待執行的交易。

爲了便於理解,我們可以追蹤一筆在使用內存池的區塊鏈上的交易經歷:

  1. 用戶發起並籤署交易。
  2. 區塊鏈網路中的專業節點會檢查這筆交易,確認其合法性及參數的正確性。
  3. 通過驗證後,這筆交易就會被發送到公共內存池中,和其他待處理的交易排隊等待。
  4. 根據這筆交易相對於內存池中其他交易支付的交易費,最終,這筆待處理的交易可能會被選中並與其他交易一起組成區塊鏈上的下一個區塊。此時,交易的狀態會顯示爲“成功”。
  5. 經過一段時間或達到某個基於區塊的限制後,該區塊被確認無誤,交易便永久記錄在區塊鏈上,成爲不可更改的記錄。除非遭受51%的攻擊,這種記錄幾乎不可能被篡改。

1.1.2.無內存池 (Solana)

需要特別指出的是,像Solana這樣的一些區塊鏈系統並不採用內存池機制。相反,它們可能會直接把交易信息發送給區塊生產者,這樣做是爲了通過連續不斷的區塊生成,達到高速度和大容量的目的。

下面我們來看看在一個沒有內存池的區塊鏈上,一筆交易的全過程:

  1. 用戶爲他們正在使用的應用程序發起並籤署交易。
  2. 用戶對他們正在使用的應用中的一筆交易進行發起和籤名。
  3. 應用將交易信息發送到遠程過程調用(RPC)服務器。
  4. RPC服務提供商將交易信息發送給當前的區塊生產者,以及接下來的三位生產者。這是一個預防措施,以防當前負責人無法及時處理交易。Solana使用一個特定的排班表來簡化交易的路由過程。
  5. 區塊生產者接着將這筆已籤名的交易發送給共識節點進行驗證。
  6. 共識節點通過投票來驗證交易的內容,完成後,交易的狀態就會通過RPC > 應用程序 > 用戶的路徑返回,標記爲“成功”或“失敗”。
  7. 和使用內存池的區塊鏈一樣,一定時間或達到某個區塊限制後,區塊就會被最終確認。

1.2 交易的順序執行

早期的區塊鏈系統,如比特幣和以太坊,使用了一種交易順序處理的方法。這意味着每一筆加入區塊鏈的交易都會改變網路的狀態,而爲了保障安全,它們的虛擬機(VM)被設計成一次只能處理一種狀態的變化。

這種處理方式導致了一個重大的問題:網路的處理能力受到了極大的限制。因爲每個區塊能包含的交易數量有限,這不僅讓用戶需要等待更長時間,還可能導致交易費用的急劇上升,有時甚至讓整個網路都無法正常使用。而且,這種順序處理模式對硬件的利用率極低,也就意味着它不能充分利用計算技術的最新進展,例如多核處理器的優勢。

並行執行

2.0 什麼是並行執行?

並行計算是計算機架構中至關重要的一環,其歷史可以追溯到20世紀50年代末,甚至有人將其理念和理論的起源追溯到1837年。簡單來說,並行計算就是在執行一個操作時,同時利用多個處理單元,通過將一個大型且復雜的任務分解成若幹個小任務來完成,這樣做比按順序逐個處理要高效得多。

這種架構標準同樣適用於區塊鏈技術,只是在這裏,計算機處理和執行的主要任務是交易處理,即從一個智能合約向另一個智能合約轉移價值,這就是所謂的並行執行。

並行執行的含義是,區塊鏈可以同時處理多個不衝突的交易,而不是按順序一個接一個地處理。這大大提高了區塊鏈網路的處理能力,使其能夠更有效地應對更高的活動量和對區塊空間的需求,從而變得更加可擴展和高效。

打個比方,想象一下,一家超市如果設有多個結帳通道讓顧客結帳,與只開設一個通道讓所有人排隊相比,前者的效率顯然要高得多。

爲什麼並行執行至關重要?

在區塊鏈領域,採用並行執行的目的是爲了提升網路的速度和整體性能,尤其是在網路流量和資源需求激增的情況下。以加密貨幣生態爲例,這意味着如果Bob想要創建最新的熱門NFT系列,而Alice想要購買她鍾愛的梗幣,那麼網路能夠同時滿足他們的需求,同時保持高性能和良好的用戶體驗。

雖然這聽起來可能只是一個提升使用體驗的直觀功能,但並行執行帶來的網路性能提升實際上爲開發新穎和創新的應用場景及應用程序鋪平了道路,這些應用能夠充分利用低延遲和大容量的優勢。這不僅僅是技術進步的體現,更爲未來大規模吸引用戶進入加密貨幣生態系統打下了堅實的基礎。

並行執行的工作原理是什麼?

雖然並行執行的基本概念比較簡單,但不同區塊鏈的設計差異會影響並行執行的具體實現方式。在設計支持並行執行的區塊鏈時,一個關鍵因素是交易能夠訪問其底層網路狀態的能力,這包括帳戶餘額、存儲空間和智能合約等。

區塊鏈的並行執行可以分爲確定性執行和樂觀性執行兩種。Solana等區塊鏈採用的確定性並行執行要求交易事先明確聲明它們需要訪問的所有數據依賴,例如,它們預先希望訪問的全局狀態的具體部分。這一要求雖然增加了開發者的工作量,但從更廣泛的角度來看,它允許網路在執行之前對不會產生衝突的交易進行排序和識別,從而構建出一個既可預測又高效的系統。而樂觀性並行執行則是假設所有交易之間不存在衝突,從而並行處理所有交易。這種方式使得區塊鏈能夠加快交易執行速度,但如果出現衝突,可能需要之後重新執行這些交易。如果系統發現兩個交易衝突,那麼它可以重新處理和執行這些交易,無論是並行還是順序執行。

爲了更深入理解這些設計細節的影響,分析當前在並行執行領域不斷探索的團隊的做法,可能會對理解並行執行有所幫助。

當前並行執行技術的發展現狀

爲了深入了解這些復雜設計背後的影響,觀察和分析那些正處於並行執行技術前沿、積極推動其發展的團隊,將會是一種非常有益的方法。

3.1 Solana 虛擬機(SVM)

Solana區塊鏈網路是首個專門爲並行執行而設計的系統,這個設計思路源自其創始人Anatoly Yakovenko在電信領域的豐富經驗。Solana的目標是提供一個開發平台,其運行速度能夠達到物理極限,因此採用並行計算來提升速度和效率是一個自然而然的選擇。

Solana實現快速處理和高吞吐能力的核心技術是Sealevel,這是一個支持並行智能合約的運行環境。與基於EVM和WASM的環境不同,Sealevel使用多線程技術,這意味着它能夠根據驗證器的處理能力,同時處理多個交易。

Solana並行執行的關鍵在於,一旦啓用一筆交易,網路就會爲這筆交易分配一系列指令,明確指出需要訪問的帳戶和狀態以及需要做出的更改。這一機制不僅能識別出可以同時執行的非衝突交易,還允許那些需要訪問相同狀態的交易能夠並行進行。

可以將這一機制比作機場行李處理系統中標籤的作用,極大提高了效率。

此外,Solana還開發了專門的帳戶數據庫Cloudbreak,用於存儲和管理狀態數據,支持交易的並發讀寫操作。Cloudbreak經過優化,支持並行執行,能夠在多個節點之間橫向擴展,分散和管理狀態數據。

得益於其並行架構,Solana能夠處理大量的交易,同時保持快速執行,交易幾乎能瞬時完成。目前,Solana的處理速度平均每秒在2000至10000筆交易之間。隨着像Eclipse這樣的團隊開發基於SVM的第二層解決方案,SVM的應用場景正逐漸拓寬,爲Solana生態系統引入更多創新。

3.2 並行EVM

並行EVM提出了一個全新的區塊鏈執行環境概念,它試圖結合Solana的高速性能和以太坊的安全性與資金流動性的優勢,實現最佳的兩全其美。通過並行而非傳統EVM那樣的串行處理交易,這種並行的EVM環境能夠讓開發者在一個高效的網路上開發應用,同時便於他們接入以太坊的資金流動性和開發工具,從而拓寬應用的可能性和便利性。

3.2.1 Sei網路

Sei網路是一個支持EVM的開源一層區塊鏈平台,它支持衆多基於高性能的去中心化應用。Sei的設計初衷是爲了給用戶和開發者提供既快速又經濟的服務體驗,其中並行執行技術是其實現高效性能和優秀用戶體驗的核心。目前,Sei能夠在390毫秒內確認區塊,並已在其太平洋主網上處理了超過19億筆交易。

在早期,Sei採用了一種確定性並行執行模式,智能合約需要提前聲明它們要訪問的狀態,這樣系統就能同時處理那些不會產生衝突的交易。隨着V2版本的升級,Sei轉向了一種樂觀並行模型,即所有交易在提交至網路後(執行階段)將被並行處理,並在之後對可能與之前交易衝突的信息進行驗證(驗證階段)。如果出現兩個或更多試圖訪問同一網路狀態的衝突交易,Sei會找出衝突點,並根據衝突的具體情況選擇並行或順序重新處理這些交易。

爲了更好地存儲和管理交易數據,Sei還開發了SeiDB,這是一個專爲優化並行執行而設計的自定義數據庫。SeiDB的目標是減少存儲冗餘數據的成本,同時有效使用磁盤空間,以提升網路性能。V2版本減少了追蹤和存儲所需的元數據,並引入了預寫日志功能,以便在系統崩潰時輔助數據恢復。

此外,Sei近期還推出了其並行堆棧,這是一個旨在幫助二層擴展方案(如rollups)利用並行執行技術的開源框架,進一步提升了其技術生態的擴展性和應用潛力。

3.2.2 Monad

Monad是一個新興的並行EVM一級區塊鏈項目,它將爲以太坊的應用程序和基礎架構提供完整的字節碼和RPC兼容性。Monad通過引入一系列創新技術,旨在比當前的區塊鏈提供更加互動的體驗,並且通過對性能和可攜帶性的優化,實現低成本的交易,其區塊確認時間僅爲1秒,並能支持每秒處理高達10,000筆的交易量。

Monad採用了並行執行和超標量流水線技術,這些技術顯著提高了交易的處理速度和吞吐量。與Sei的第二版類似,Monad也將採取樂觀執行模式,這意味着網路會同時開始處理所有新的交易,隨後對這些交易進行分析和驗證,以識別並處理任何衝突,確保如果這些交易是按順序執行的,最終結果將保持一致。

值得一提的是,爲了與以太坊保持一致,Monad會按照線性順序在一個區塊中安排交易,並依次更新每筆交易。

爲了比現有的以太坊客戶端更高效地存儲和訪問區塊鏈數據,Monad開發了專門爲區塊鏈設計的自定義數據庫MonadDB。MonadDB利用了Linux內核的高級特性來執行高效的異步磁盤操作,克服了同步輸入/輸出訪問的限制。通過提供異步輸入/輸出訪問,MonadDB支持並行執行的關鍵功能,使系統能夠在等待讀取一個交易的狀態信息時,同時開始處理下一筆交易。

用一個簡單的比喻來說,就像同時準備一個包含多個部分的大餐(比如意大利面配肉丸)。涉及的步驟包括制作醬汁、烹飪肉丸和煮意大利面。一個高效的廚師會同時進行多個步驟,比如先燒開煮面的水,然後準備醬汁的材料,接着把面條放進已經煮沸的水中,然後烹飪醬汁,最後做肉丸,而不是一步步單獨完成每個任務。

3.3 Move

Move是一種由Facebook團隊在2019年爲其已經終止的Diem項目所開發的編程語言。Move的設計初衷是爲了安全地處理智能合約和交易數據,它通過設計上的優勢,排除了諸如重入攻擊等在其他編程語言中常見的安全漏洞。

MoveVM作爲Move語言支持的區塊鏈平台的核心執行環境,通過並行處理技術,實現了更快的交易處理速度和更高的系統效率。

3.3.1 Aptos

Aptos是一種基於Move語言的一級區塊鏈平台,它由前Diem項目團隊成員開發。這個平台通過實施並行處理技術,旨在爲應用開發者提供一個高效的工作環境。Aptos採用了一種名爲Block-STM的技術,這是軟件事務內存(STM)並發控制機制的一種改進型實現。

Block-STM是一個支持多線程並行處理的執行引擎,它採用樂觀並行執行的方式。通過預先對交易進行排序並在區塊中按策略排列,這一機制關鍵地幫助高效解決衝突並對需要的交易進行重新執行。Aptos的研究表明,理論上利用Block-STM的並行處理技術,可以達到每秒最高160,000筆交易的處理速度。

3.3.2 Sui

Sui和Aptos一樣,也是由Diem項目前成員開發的一級區塊鏈平台,同樣採用了Move語言。不過,Sui對Move語言進行了特別的定制修改,這些修改涉及到存儲模型和資產權限,與原始的Diem設計有所不同。特別值得注意的是,Sui採用了一種狀態存儲模型,能夠將獨立的交易以對象的形式進行表示。在Sui的執行環境中,每個對象都擁有一個獨一無二的標識符,這樣做使得系統能夠輕鬆地識別出不會產生衝突的交易,並能夠並行處理這些交易。

與Solana相似,Sui採用了確定性並行執行的策略,這意味着交易必須在執行前聲明它們將要訪問的帳戶信息。

3.3.3 Movement Labs

Movement是什麼?

Movement致力於開發一系列的開發者工具和區塊鏈基礎服務集,旨在幫助開發者輕鬆享受在Move平台上開發的優勢。它提供一種類似於AWS的執行即服務模式,專爲Move平台的開發者設計,通過並行處理技術作爲其核心設計理念,以提升處理速度和網路的整體效率。MoveVM是一種模塊化的執行環境,它爲區塊鏈網路提供了擴展和調整交易處理能力的靈活性,以應對交易量的增加,從而增強了網路並行處理和執行交易的能力。

MoveVM架構

Movement還計劃推出M2,一個與EVM和Move客戶端兼容的ZK-rollup解決方案。M2將採用Block-STM的並行處理引擎,預計將能夠實現每秒數萬次的交易處理速度。

結束語

4.1 當前並行系統的挑戰

在發展並行區塊鏈技術的過程中,我們面臨着一系列重要的問題和考量:

  • 爲了通過並行執行獲得更好的性能,網路進行了哪些權衡?
    • 減少驗證節點能夠提高驗證和執行的速度,但這是否會削弱區塊鏈的安全性,使得驗證節點更容易聯合起來攻擊網路?
    • 是否有很多驗證節點集中在同一個地方?這種做法在加密和非加密系統中都是減少延遲的常見策略,但如果那個特定的數據中心遭到攻擊,對網路又會有什麼影響?
  • 對於採用樂觀並行策略的系統,隨着網路的擴大,重新執行無效交易的過程是否會變成瓶頸?這種效率如何進行測試和評價?

從宏觀角度來看,並行區塊鏈面臨着帳本不一致的風險,如雙重支付和交易順序改變(這正是順序執行的主要優勢)。確定性並行化通過爲底層區塊鏈上的交易創建一個內部標籤系統來應對這一問題。採用樂觀處理機制的區塊鏈必須確保其驗證和重新執行交易的機制既安全又有效,並且爲了性能所做的權衡是合理可行的。

4.2 未來展望/機遇

從計算機發展史我們可以看出,相較於順序處理系統,並行處理系統在效率和可擴展性方面隨時間展現出更強的優勢。Solana之後並行區塊鏈的崛起進一步證明了這一點同樣適用於加密領域的基礎設施建設。甚至Vitalik也曾提到,並行化是近期提升EVM rollups可擴展性的關鍵解決方案之一。總的來說,隨着加密和區塊鏈技術的普及,市場對於比現有系統更優化的解決方案的需求日益增長,這其中就包括並行區塊鏈。Solana近期遇到的網路問題也表明,並行區塊鏈的開發還有很大的進步空間。隨着更多團隊努力拓展鏈上技術的邊界,並吸引更多用戶及應用轉向區塊鏈原生生態,並行處理模型爲構建能夠高效管理大量網路活動的系統提供了一個直觀的框架,使其能夠輕鬆應對與Web2公司相匹配的規模挑戰。

參考文獻

聲明:

  1. 本文轉載自[shoal )],原文標題《Parallel Execution: The Next Generation of Blockchains》,著作權歸屬原作者[PAUL TIMOFEEV, MIKE JIN, AND GABE TRAMBLE],如對轉載有異議,請聯系Gate Learn團隊,團隊會根據相關流程盡速處理。

  2. 免責聲明:本文所表達的觀點和意見僅代表作者個人觀點,不構成任何投資建議。

  3. 文章其他語言版本由Gate Learn團隊翻譯,除非另有說明,否則不得復制、傳播或抄襲經翻譯文章。

Comece agora
Inscreva-se e ganhe um cupom de
$100
!