並行執行:下一代區塊鏈

進階5/20/2024, 4:55:29 AM
文章探討了並行執行技術在區塊鏈領域的應用,特別是其如何提升交易效率、降低成本和增強用戶體驗。Solana 作爲並行執行的先驅,展示了其在處理速度和吞吐量方面的優勢。文章詳細介紹了區塊鏈交易的工作原理,包括交易的生命週期、內存池(mempool)的作用以及無內存池區塊鏈的工作原理。並行執行允許區塊鏈同時處理多個不衝突的交易,從而提高網路的吞吐量和可擴展性。文章還討論了並行執行的不同模型,包括確定性和樂觀性,並分析了市場上推動並行執行的團隊和項目,如 Solana、Parallel EVM、Sei Network、Monad、Move 語言、Aptos、Sui 和 Movement Labs。

序言

1.0 區塊鏈交易

區塊鏈是虛擬機,是一種基於軟件的計算模型,運行在物理計算機的分布式網路之上,任何人都可以加入該網路,但任何單個實體都很難控制。區塊鏈的概念首次寫入中本聰於 2008 年臭名昭著的比特幣白皮書中,作爲支持加密安全的比特幣點對點支付的核心基礎設施。交易對於區塊鏈來說就像日志對於社交媒體和互聯網公司一樣;它們充當該特定網路的活動記錄,主要區別在於區塊鏈上的交易是不可變的並且通常是可公開觀察的。

感謝您閱讀Shoal Research!免費訂閱以接收新帖子並支持我的工作。

但交易到底是什麼?

區塊鏈上的交易涉及將數字資產從分布式帳本上的一個地址轉移到另一個地址,並通過使用公鑰加密技術進行保護。交易可用於去中心化的點對點傳輸,或用於各種身分驗證和驗證過程。

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

1.1 區塊鏈交易如何運作

當交易啓動時,即鮑勃向愛麗絲發送一些代幣,鮑勃的交易被廣播到底層區塊鏈網路。隨後,網路上的專門節點集羣開始驗證交易是否合法。一旦足夠多的節點驗證了交易的內容,該交易就會與其他用戶交易一起添加到區塊中。一旦一個塊滿了,它就會被添加到鏈中,因此得名“區塊鏈”。鮑勃的交易現在是安全透明分類帳的一部分,他和愛麗絲都可以驗證內容。

從廣義上講,所有區塊鏈交易都包含元數據,可幫助操作和保護網路的節點識別和執行一組給定的指令和參數。每筆交易都會有原始發送者輸入的高級數據,例如要轉帳的金額、目標地址和確認交易的數字籤名,以及自動創建和附加的各種低級數據,盡管這些數據因網路和設計而異。

然而,最終,交易執行之前網絡層幕後涉及的流程因區塊鏈的設計而異。

1.1.1 內存池

內存池,或者內存池, 是區塊鏈設計上常用的巧妙方法,由比特幣和以太坊等傳統區塊鏈網路實現。內存池只是緩衝區或“等候室”,用於尚未添加到區塊並執行的待處理交易。

爲了更好地理解,我們可以在使用內存池的區塊鏈上布置交易的生命週期;

  1. 用戶發起並籤署交易。
  2. 參與區塊鏈網路的專門節點驗證交易內容是否合法並包含適當的參數。
  3. 一旦經過驗證,交易將與其他待處理交易一起路由到公共內存池。
  4. 最終,根據交易相對於內存池中其他交易支付的汽油費,我們用戶的待處理交易與其他待處理交易集羣一起被選擇,形成區塊鏈上的下一個區塊。在此階段,我們的交易狀態將顯示“成功”。
  5. 經過一定時間或基於區塊的閾值後,區塊本身就會最終確定,交易將成爲記錄在區塊鏈上的不可變日志,只有在發生 51% 攻擊時才會受到損害,否則這是一項極其困難的任務。

1.1.2.無內存池 (Solana)

值得注意的是,一些區塊鏈(例如 Solana)不使用內存池,而是可能將交易直接轉發給區塊生產者,作爲通過連續區塊生產實現高速和吞吐量的一種手段。

讓我們回顧一下非內存池區塊鏈上交易的生命週期:

  1. 用戶爲他們正在使用的應用程序發起並籤署交易。
  2. 應用程序將事務信息路由到遠程過程調用 (RPC) 服務器。
  3. RPC服務提供者會將交易發送給當前指定的區塊生產者以及接下來的三個生產者,這是爲了預防當前生產者無法及時執行交易的情況。Solana採用了插槽領導者計劃,這樣可以幫助RPC更方便地傳輸交易。
  4. 然後,區塊生產者將籤名的交易發送到共識節點進行驗證。
  5. 共識節點投票驗證交易的內容,一旦完成,交易狀態就會以“成功”或“失敗”的形式路由回 RPC > 應用程序 > 用戶。
  6. 與基於內存池的區塊鏈類似,區塊本身在經過一定時間或基於區塊的閾值後最終確定。

1.2 順序執行

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

這導致底層網路的吞吐量出現嚴重瓶頸,因爲可以添加到區塊中的交易數量受到限制,導致等待時間更長,交易成本空前飆升,有時可能導致網路無法使用。此外,順序執行模型對硬件組件的利用效率相當低,因此無法從計算(即多處理器核心)的突破中受益。

並行執行

2.0 什麼是並行執行?

並行計算是計算機體系結構的關鍵組成部分,其起源可以追溯到20世紀50年代末,盡管它的想法和理論甚至可以追溯到1837年。根據定義,並行計算是指同時利用多個處理元件來解決一個操作的行爲,其中較大且較復雜的任務被劃分爲較小的任務,以便比串行方式更有效地完成。

最初僅在高性能計算系統中實現,並行計算已發展成爲當今計算機體系結構的主導範例,因爲互聯網時代對計算的需求呈指數級增長,而前幾十年頻率擴展的限制加劇了這種需求。

該架構標準以大致相同的方式適用於區塊鏈,只是計算機解決的主要任務是處理和執行交易,或者將價值從智能合約 A 轉移到智能合約 B,因此稱爲並行執行。

並行執行意味着區塊鏈可以同時處理多個不衝突的交易,而不是串行處理交易。這可以大大增加區塊鏈網路的吞吐量,使其更具可擴展性和效率,可以處理更高的活動負載和塊空間需求。

打個更簡單的比喻。考慮一下雜貨店有多條通道供購物者結帳的效率對比只爲每個人提供一個付款通道的效率。

爲什麼並行執行很重要?

區塊鏈中的並行執行旨在提高網路速度和性能的效率,特別是當網路流量和資源需求更高時。在加密生態系統的背景下,並行執行意味着如果 Bob 想要鑄造最新流行的 NFT 系列,而 Alice 想要購買她最喜歡的 memecoin,網路將爲兩個用戶提供服務,而不會影響任何性能質量,從而影響用戶體驗。

雖然這可能只是一個直觀的生活質量功能,但通過並行執行實現的網路性能解鎖讓位於開發新的創新用例和應用程序,這些用例和應用程序可以利用低延遲和高容量,這在它本身爲下一批用戶進入加密生態系統奠定了基礎。

並行執行如何工作?

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

區塊鏈上的並行執行可以分爲確定性並行執行和樂觀並行執行。 Solana 等區塊鏈採用的確定性並行執行本質上要求事務預先聲明所有內存依賴項,即它們希望預先訪問全局狀態的哪些部分。雖然此步驟爲開發人員帶來了額外的開銷,但更廣泛地說,它允許網路在執行之前對非衝突事務進行排序和識別,從而創建可預測且高效的優化系統。相反,樂觀並行執行被構造爲並行處理所有事務,在不存在衝突的固有假設下運行。這使得底層區塊鏈能夠提供更快的交易執行速度,但代價是在發生衝突時可能會重新執行交易。如果發現提交了兩個衝突的事務,系統可以並行或順序地重新處理和重新執行它們。

爲了更好地理解這些設計復雜性的含義,從當今推動並行執行前沿的團隊的角度來分析並行執行可能會有所幫助。

目前並行執行的狀態

爲了更好地理解這些設計復雜性的含義,從當今推動並行執行前沿的團隊的角度來分析並行執行可能會有所幫助。

3.1 Solana 虛擬機(SVM)

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

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

啓用 Solana 並行執行的關鍵在於,當啓用交易時,網路將爲要執行的交易分配一個指令列表,具體來說是要訪問哪些帳戶和狀態以及要進行哪些更改 - 這是確定哪些交易的關鍵不衝突並且可以同時執行,並且允許嘗試訪問相同狀態的事務同時執行。

考慮標籤爲機場托運行李系統提供的效率。

Solana 還利用 Cloudbreak(其自己的自定義帳戶數據庫)來存儲和管理狀態數據,以實現事務的並發讀寫。 Cloudbreak 針對並行執行進行了優化,可水平擴展以跨多個節點分發和管理狀態數據。

得益於其並行架構,Solana 可以處理大量交易,並且仍然可以快速執行,從而使交易近乎即時確定。 Solana 目前平均每秒處理 2,000 到 10,000 筆交易 (TPS)。此外,SVM 的用例正在緩慢但穩步地擴展,因爲像 Eclipse 這樣的團隊正在推出旨在利用 SVM 作爲執行環境的第 2 層基礎設施。

3.2 並行EVM

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

3.2.1 Sei Network

Sei Network 是一個與 EVM 兼容的開源第 1 層區塊鏈,托管各種圍繞高性能構建的去中心化應用程式。 Sei 的宗旨是爲用戶和開發人員以低成本提供快速的速度,而並行執行是實現這種性能和用戶體驗的關鍵組成部分。目前,Sei 提供 390 毫秒的區塊確認時間,並在其太平洋主網上處理了超過 1.9B 筆交易。

最初,Sei 採用了確定性並行執行模型,其中智能聯系人提前聲明其所需的狀態訪問權限,以便系統同時運行不衝突的事務。隨着 V2 升級的開始,Sei 正在過渡到樂觀並行模型,這意味着所有交易在提交到網路(執行階段)後將被並行處理,然後將審查與之前交易的衝突信息(驗證階段)。如果出現兩個或多個衝突事務,即嘗試訪問相同網路狀態的事務,Sei 會識別此衝突點,然後根據衝突的性質並行或順序重新運行事務。

爲了存儲和維護交易數據,Sei 還將引入 SeiDB,這是一個自定義數據庫,旨在通過優化並行執行來改進 v1 的缺點。 SeiDB 旨在降低存儲冗餘數據的開銷並保持高效的磁盤使用,以獲得更好的網路性能。 V2 減少了跟蹤和存儲所需的元數據量,並啓用預寫日志以在發生崩潰時幫助數據恢復。

最後,Sei 最近還宣布推出其 Parallel Stack,這是一個開源框架,用於啓用第 2 層擴展解決方案(即匯總)以利用並行執行並從中受益。

3.2.2 Monad

Monad 是即將推出的並行 EVM 第 1 層區塊鏈,爲以太坊應用程序和基礎設施帶來完整的字節碼和 RPC 兼容性。通過一系列創新技術實現,Monad 旨在提供比現有區塊鏈更多的交互體驗,同時通過優化性能和可移植性來保持較低的交易成本,出塊時間爲 1 秒,最終確定性高達 10,000 TPS。

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

值得注意的是,爲了保持與以太坊的同步性,Monad 以線性順序對區塊中的交易進行排序,每筆交易都按順序更新。

爲了比以太坊客戶端提供的當前狀態更有效地維護和訪問區塊鏈數據,Monad 創建了自己的定制 MonadDB,專爲區塊鏈構建。 Monad DB 利用先進的 Linux 內核功能進行高效的異步磁盤操作,消除了同步輸入/輸出訪問的限制。 MonadDB 提供異步輸入/輸出(async I/O)訪問,這是實現並行執行的一個關鍵功能,系統可以在等待讀取前一個事務的狀態的同時開始處理下一個事務。

打個簡單的比方,考慮烹飪一頓多面的飯菜(意大利面配肉丸)。涉及的步驟是 1) 準備醬汁,2) 烹飪肉丸,以及 c) 烹飪意大利面。一位高效的廚師會先煮意大利面的水,然後準備醬汁的原料,然後將意大利面放入沸水中,然後煮醬汁,最後煮肉丸,而不是一次一個地進行每一步,在繼續之前完成一項任務。

3.3 Move

Move 是一種編程語言,最初由 Facebook 團隊於 2019 年爲其現已解散的 Diem 項目開發。 Move 旨在以安全的方式處理智能合約和交易數據,消除其他語言本機的攻擊向量,例如重入攻擊。

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

3.3.1 Aptos

Aptos 是由前 Diem 項目成員開發的基於 Move 的 Layer 1 區塊鏈,它實現並行執行,爲應用程序開發人員提供高性能環境。 Aptos 使用 Block-STM,這是軟件事務內存 (STM) 並發控制機制的修改實現。

Block-STM 是一個多線程並行執行引擎,可實現樂觀並行執行。交易是在塊內預先排序和戰略排序的,這是有效解決衝突和重新執行這些交易的關鍵。 Aptos 進行的研究發現,使用 Block-STM 的並行化理論上可以支持高達 160K TPS。

3.3.2 Sui

與 Aptos 類似,Sui 是由 Diem 項目前成員開發的第 1 層區塊鏈,它使用 Move 語言。然而,Sui 使用了 Move 的自定義實現,這改變了原始 Diem 設計的存儲模型和資產權限。特別是,這允許 Sui 利用狀態存儲模型將獨立事務表示爲對象。每個對象在 Sui 的執行環境中都有一個唯一的 ID,這樣系統就可以輕鬆識別非衝突事務並並行處理它們。

與 Solana 類似,Sui 實現了確定性並行執行,這要求交易提前聲明需要訪問哪些帳戶。

3.3.3 Movement Labs

什麼是Movement ?

Movement 正在構建一套開發人員工具和區塊鏈基礎設施服務,使開發人員能夠輕鬆獲得在 Move 上進行構建的好處。作爲 Move 開發人員的類似 AWS 的執行即服務提供商,Movement 將並行化作爲核心設計功能,以實現更高的吞吐量和更高的整體網路效率。 MoveVM 是一個模塊化執行環境,使區塊鏈網路能夠根據需要擴展和調整其交易處理能力,以支持不斷增加的交易量,增強其並行處理和執行交易的能力。

MoveVM架構

Movement 還將推出 M2,這是一個 ZK-rollup,可與 EVM 和 Move 客戶端等進行互操作。 M2將繼承Block-STM並行化引擎,預計可提供數萬TPS。

結束語

4.1 當今並行系統面臨的挑戰

並行區塊鏈發展需要思考的一些重要問題和考慮因素;

  • 爲了通過並行執行獲得更好的性能,網路進行了哪些權衡?
    • 保護網路的驗證器越少,驗證和執行速度就越快,但這是否會損害區塊鏈的安全性,因爲驗證器更容易串通網路?
    • 是否有大量驗證者位於同一地點?這是最大限度地減少加密和非加密系統中的延遲的常見策略,但如果特定數據中心受到損害,網路會發生什麼情況?
  • 對於樂觀並行系統,隨着網路擴展,重新執行無效事務的過程是否會造成瓶頸?如何測試和評估這種效率?

在較高層面上,並行區塊鏈面臨帳本不一致的風險,即雙重支出和交易順序變化(事實上,這是順序執行的主要好處)。確定性並行化通過爲底層區塊鏈上的交易創建內部標籤系統來解決這個問題。實施樂觀處理的區塊鏈必須確保它們用於驗證和重新執行交易的機制是安全且有效的,並且可以合理地實現對性能的權衡。

4.2 未來展望/機遇

計算機的歷史告訴我們,隨着時間的推移,並行系統往往比順序系統更高效且可擴展。後 Solana 並行區塊鏈的興起強調了這一概念也適用於加密基礎設施。甚至 Vitalik 也提到過並行化 作爲最近提高 EVM rollups 可擴展性的潛在關鍵解決方案之一。從廣義上講,加密/區塊鏈採用的增長需要比當今可用的系統更優化的系統,包括並行區塊鏈。 Solana 最近的網路困境凸顯出並行區塊鏈的開發還有很大的改進空間。隨着越來越多的團隊尋求突破鏈上前沿的界限,吸引下一批用戶並採用區塊鏈原生應用程序和生態系統,並行執行模型提供了一個直觀的框架,用於構建可以高效處理大量網路活動的系統。規模可以輕鬆與 Web2 公司相媲美。

不構成財務或稅務建議。本文的目的純粹是教育性的,不應被視爲投資建議、法律建議、購買或出售任何資產的請求或做出任何財務決策的建議。它不能替代稅務建議。請諮詢您的會計師並進行自己的研究。

披露。所有帖子都是作者原創,而不是其僱主的觀點。這篇文章得到了 Aster 基金會的贊助。雖然 Shoal Research 已獲得該計劃的資助,但贊助商不會影響其內容。在 Shoal Research,我們的目標是確保所有內容客觀且獨立。我們的內部審查流程秉持最高的誠信標準,所有潛在的利益衝突均予以披露並嚴格管理,以維護我們研究的可信度和公正性。

聲明:

  1. 本文轉載自[Shoal Research],著作權歸屬原作者[PAUL TIMOFEEV、MIKE JIN 和 GABE TRAMBLE],如對轉載有異議,請聯系Gate Learn團隊,團隊會根據相關流程盡速處理。
  2. 免責聲明:本文所表達的觀點和意見僅代表作者個人觀點,不構成任何投資建議。
  3. 文章其他語言版本由Gate Learn團隊翻譯, 在未提及Gate.io的情況下不得復制、傳播或抄襲經翻譯文章。

並行執行:下一代區塊鏈

進階5/20/2024, 4:55:29 AM
文章探討了並行執行技術在區塊鏈領域的應用,特別是其如何提升交易效率、降低成本和增強用戶體驗。Solana 作爲並行執行的先驅,展示了其在處理速度和吞吐量方面的優勢。文章詳細介紹了區塊鏈交易的工作原理,包括交易的生命週期、內存池(mempool)的作用以及無內存池區塊鏈的工作原理。並行執行允許區塊鏈同時處理多個不衝突的交易,從而提高網路的吞吐量和可擴展性。文章還討論了並行執行的不同模型,包括確定性和樂觀性,並分析了市場上推動並行執行的團隊和項目,如 Solana、Parallel EVM、Sei Network、Monad、Move 語言、Aptos、Sui 和 Movement Labs。

序言

1.0 區塊鏈交易

區塊鏈是虛擬機,是一種基於軟件的計算模型,運行在物理計算機的分布式網路之上,任何人都可以加入該網路,但任何單個實體都很難控制。區塊鏈的概念首次寫入中本聰於 2008 年臭名昭著的比特幣白皮書中,作爲支持加密安全的比特幣點對點支付的核心基礎設施。交易對於區塊鏈來說就像日志對於社交媒體和互聯網公司一樣;它們充當該特定網路的活動記錄,主要區別在於區塊鏈上的交易是不可變的並且通常是可公開觀察的。

感謝您閱讀Shoal Research!免費訂閱以接收新帖子並支持我的工作。

但交易到底是什麼?

區塊鏈上的交易涉及將數字資產從分布式帳本上的一個地址轉移到另一個地址,並通過使用公鑰加密技術進行保護。交易可用於去中心化的點對點傳輸,或用於各種身分驗證和驗證過程。

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

1.1 區塊鏈交易如何運作

當交易啓動時,即鮑勃向愛麗絲發送一些代幣,鮑勃的交易被廣播到底層區塊鏈網路。隨後,網路上的專門節點集羣開始驗證交易是否合法。一旦足夠多的節點驗證了交易的內容,該交易就會與其他用戶交易一起添加到區塊中。一旦一個塊滿了,它就會被添加到鏈中,因此得名“區塊鏈”。鮑勃的交易現在是安全透明分類帳的一部分,他和愛麗絲都可以驗證內容。

從廣義上講,所有區塊鏈交易都包含元數據,可幫助操作和保護網路的節點識別和執行一組給定的指令和參數。每筆交易都會有原始發送者輸入的高級數據,例如要轉帳的金額、目標地址和確認交易的數字籤名,以及自動創建和附加的各種低級數據,盡管這些數據因網路和設計而異。

然而,最終,交易執行之前網絡層幕後涉及的流程因區塊鏈的設計而異。

1.1.1 內存池

內存池,或者內存池, 是區塊鏈設計上常用的巧妙方法,由比特幣和以太坊等傳統區塊鏈網路實現。內存池只是緩衝區或“等候室”,用於尚未添加到區塊並執行的待處理交易。

爲了更好地理解,我們可以在使用內存池的區塊鏈上布置交易的生命週期;

  1. 用戶發起並籤署交易。
  2. 參與區塊鏈網路的專門節點驗證交易內容是否合法並包含適當的參數。
  3. 一旦經過驗證,交易將與其他待處理交易一起路由到公共內存池。
  4. 最終,根據交易相對於內存池中其他交易支付的汽油費,我們用戶的待處理交易與其他待處理交易集羣一起被選擇,形成區塊鏈上的下一個區塊。在此階段,我們的交易狀態將顯示“成功”。
  5. 經過一定時間或基於區塊的閾值後,區塊本身就會最終確定,交易將成爲記錄在區塊鏈上的不可變日志,只有在發生 51% 攻擊時才會受到損害,否則這是一項極其困難的任務。

1.1.2.無內存池 (Solana)

值得注意的是,一些區塊鏈(例如 Solana)不使用內存池,而是可能將交易直接轉發給區塊生產者,作爲通過連續區塊生產實現高速和吞吐量的一種手段。

讓我們回顧一下非內存池區塊鏈上交易的生命週期:

  1. 用戶爲他們正在使用的應用程序發起並籤署交易。
  2. 應用程序將事務信息路由到遠程過程調用 (RPC) 服務器。
  3. RPC服務提供者會將交易發送給當前指定的區塊生產者以及接下來的三個生產者,這是爲了預防當前生產者無法及時執行交易的情況。Solana採用了插槽領導者計劃,這樣可以幫助RPC更方便地傳輸交易。
  4. 然後,區塊生產者將籤名的交易發送到共識節點進行驗證。
  5. 共識節點投票驗證交易的內容,一旦完成,交易狀態就會以“成功”或“失敗”的形式路由回 RPC > 應用程序 > 用戶。
  6. 與基於內存池的區塊鏈類似,區塊本身在經過一定時間或基於區塊的閾值後最終確定。

1.2 順序執行

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

這導致底層網路的吞吐量出現嚴重瓶頸,因爲可以添加到區塊中的交易數量受到限制,導致等待時間更長,交易成本空前飆升,有時可能導致網路無法使用。此外,順序執行模型對硬件組件的利用效率相當低,因此無法從計算(即多處理器核心)的突破中受益。

並行執行

2.0 什麼是並行執行?

並行計算是計算機體系結構的關鍵組成部分,其起源可以追溯到20世紀50年代末,盡管它的想法和理論甚至可以追溯到1837年。根據定義,並行計算是指同時利用多個處理元件來解決一個操作的行爲,其中較大且較復雜的任務被劃分爲較小的任務,以便比串行方式更有效地完成。

最初僅在高性能計算系統中實現,並行計算已發展成爲當今計算機體系結構的主導範例,因爲互聯網時代對計算的需求呈指數級增長,而前幾十年頻率擴展的限制加劇了這種需求。

該架構標準以大致相同的方式適用於區塊鏈,只是計算機解決的主要任務是處理和執行交易,或者將價值從智能合約 A 轉移到智能合約 B,因此稱爲並行執行。

並行執行意味着區塊鏈可以同時處理多個不衝突的交易,而不是串行處理交易。這可以大大增加區塊鏈網路的吞吐量,使其更具可擴展性和效率,可以處理更高的活動負載和塊空間需求。

打個更簡單的比喻。考慮一下雜貨店有多條通道供購物者結帳的效率對比只爲每個人提供一個付款通道的效率。

爲什麼並行執行很重要?

區塊鏈中的並行執行旨在提高網路速度和性能的效率,特別是當網路流量和資源需求更高時。在加密生態系統的背景下,並行執行意味着如果 Bob 想要鑄造最新流行的 NFT 系列,而 Alice 想要購買她最喜歡的 memecoin,網路將爲兩個用戶提供服務,而不會影響任何性能質量,從而影響用戶體驗。

雖然這可能只是一個直觀的生活質量功能,但通過並行執行實現的網路性能解鎖讓位於開發新的創新用例和應用程序,這些用例和應用程序可以利用低延遲和高容量,這在它本身爲下一批用戶進入加密生態系統奠定了基礎。

並行執行如何工作?

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

區塊鏈上的並行執行可以分爲確定性並行執行和樂觀並行執行。 Solana 等區塊鏈採用的確定性並行執行本質上要求事務預先聲明所有內存依賴項,即它們希望預先訪問全局狀態的哪些部分。雖然此步驟爲開發人員帶來了額外的開銷,但更廣泛地說,它允許網路在執行之前對非衝突事務進行排序和識別,從而創建可預測且高效的優化系統。相反,樂觀並行執行被構造爲並行處理所有事務,在不存在衝突的固有假設下運行。這使得底層區塊鏈能夠提供更快的交易執行速度,但代價是在發生衝突時可能會重新執行交易。如果發現提交了兩個衝突的事務,系統可以並行或順序地重新處理和重新執行它們。

爲了更好地理解這些設計復雜性的含義,從當今推動並行執行前沿的團隊的角度來分析並行執行可能會有所幫助。

目前並行執行的狀態

爲了更好地理解這些設計復雜性的含義,從當今推動並行執行前沿的團隊的角度來分析並行執行可能會有所幫助。

3.1 Solana 虛擬機(SVM)

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

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

啓用 Solana 並行執行的關鍵在於,當啓用交易時,網路將爲要執行的交易分配一個指令列表,具體來說是要訪問哪些帳戶和狀態以及要進行哪些更改 - 這是確定哪些交易的關鍵不衝突並且可以同時執行,並且允許嘗試訪問相同狀態的事務同時執行。

考慮標籤爲機場托運行李系統提供的效率。

Solana 還利用 Cloudbreak(其自己的自定義帳戶數據庫)來存儲和管理狀態數據,以實現事務的並發讀寫。 Cloudbreak 針對並行執行進行了優化,可水平擴展以跨多個節點分發和管理狀態數據。

得益於其並行架構,Solana 可以處理大量交易,並且仍然可以快速執行,從而使交易近乎即時確定。 Solana 目前平均每秒處理 2,000 到 10,000 筆交易 (TPS)。此外,SVM 的用例正在緩慢但穩步地擴展,因爲像 Eclipse 這樣的團隊正在推出旨在利用 SVM 作爲執行環境的第 2 層基礎設施。

3.2 並行EVM

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

3.2.1 Sei Network

Sei Network 是一個與 EVM 兼容的開源第 1 層區塊鏈,托管各種圍繞高性能構建的去中心化應用程式。 Sei 的宗旨是爲用戶和開發人員以低成本提供快速的速度,而並行執行是實現這種性能和用戶體驗的關鍵組成部分。目前,Sei 提供 390 毫秒的區塊確認時間,並在其太平洋主網上處理了超過 1.9B 筆交易。

最初,Sei 採用了確定性並行執行模型,其中智能聯系人提前聲明其所需的狀態訪問權限,以便系統同時運行不衝突的事務。隨着 V2 升級的開始,Sei 正在過渡到樂觀並行模型,這意味着所有交易在提交到網路(執行階段)後將被並行處理,然後將審查與之前交易的衝突信息(驗證階段)。如果出現兩個或多個衝突事務,即嘗試訪問相同網路狀態的事務,Sei 會識別此衝突點,然後根據衝突的性質並行或順序重新運行事務。

爲了存儲和維護交易數據,Sei 還將引入 SeiDB,這是一個自定義數據庫,旨在通過優化並行執行來改進 v1 的缺點。 SeiDB 旨在降低存儲冗餘數據的開銷並保持高效的磁盤使用,以獲得更好的網路性能。 V2 減少了跟蹤和存儲所需的元數據量,並啓用預寫日志以在發生崩潰時幫助數據恢復。

最後,Sei 最近還宣布推出其 Parallel Stack,這是一個開源框架,用於啓用第 2 層擴展解決方案(即匯總)以利用並行執行並從中受益。

3.2.2 Monad

Monad 是即將推出的並行 EVM 第 1 層區塊鏈,爲以太坊應用程序和基礎設施帶來完整的字節碼和 RPC 兼容性。通過一系列創新技術實現,Monad 旨在提供比現有區塊鏈更多的交互體驗,同時通過優化性能和可移植性來保持較低的交易成本,出塊時間爲 1 秒,最終確定性高達 10,000 TPS。

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

值得注意的是,爲了保持與以太坊的同步性,Monad 以線性順序對區塊中的交易進行排序,每筆交易都按順序更新。

爲了比以太坊客戶端提供的當前狀態更有效地維護和訪問區塊鏈數據,Monad 創建了自己的定制 MonadDB,專爲區塊鏈構建。 Monad DB 利用先進的 Linux 內核功能進行高效的異步磁盤操作,消除了同步輸入/輸出訪問的限制。 MonadDB 提供異步輸入/輸出(async I/O)訪問,這是實現並行執行的一個關鍵功能,系統可以在等待讀取前一個事務的狀態的同時開始處理下一個事務。

打個簡單的比方,考慮烹飪一頓多面的飯菜(意大利面配肉丸)。涉及的步驟是 1) 準備醬汁,2) 烹飪肉丸,以及 c) 烹飪意大利面。一位高效的廚師會先煮意大利面的水,然後準備醬汁的原料,然後將意大利面放入沸水中,然後煮醬汁,最後煮肉丸,而不是一次一個地進行每一步,在繼續之前完成一項任務。

3.3 Move

Move 是一種編程語言,最初由 Facebook 團隊於 2019 年爲其現已解散的 Diem 項目開發。 Move 旨在以安全的方式處理智能合約和交易數據,消除其他語言本機的攻擊向量,例如重入攻擊。

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

3.3.1 Aptos

Aptos 是由前 Diem 項目成員開發的基於 Move 的 Layer 1 區塊鏈,它實現並行執行,爲應用程序開發人員提供高性能環境。 Aptos 使用 Block-STM,這是軟件事務內存 (STM) 並發控制機制的修改實現。

Block-STM 是一個多線程並行執行引擎,可實現樂觀並行執行。交易是在塊內預先排序和戰略排序的,這是有效解決衝突和重新執行這些交易的關鍵。 Aptos 進行的研究發現,使用 Block-STM 的並行化理論上可以支持高達 160K TPS。

3.3.2 Sui

與 Aptos 類似,Sui 是由 Diem 項目前成員開發的第 1 層區塊鏈,它使用 Move 語言。然而,Sui 使用了 Move 的自定義實現,這改變了原始 Diem 設計的存儲模型和資產權限。特別是,這允許 Sui 利用狀態存儲模型將獨立事務表示爲對象。每個對象在 Sui 的執行環境中都有一個唯一的 ID,這樣系統就可以輕鬆識別非衝突事務並並行處理它們。

與 Solana 類似,Sui 實現了確定性並行執行,這要求交易提前聲明需要訪問哪些帳戶。

3.3.3 Movement Labs

什麼是Movement ?

Movement 正在構建一套開發人員工具和區塊鏈基礎設施服務,使開發人員能夠輕鬆獲得在 Move 上進行構建的好處。作爲 Move 開發人員的類似 AWS 的執行即服務提供商,Movement 將並行化作爲核心設計功能,以實現更高的吞吐量和更高的整體網路效率。 MoveVM 是一個模塊化執行環境,使區塊鏈網路能夠根據需要擴展和調整其交易處理能力,以支持不斷增加的交易量,增強其並行處理和執行交易的能力。

MoveVM架構

Movement 還將推出 M2,這是一個 ZK-rollup,可與 EVM 和 Move 客戶端等進行互操作。 M2將繼承Block-STM並行化引擎,預計可提供數萬TPS。

結束語

4.1 當今並行系統面臨的挑戰

並行區塊鏈發展需要思考的一些重要問題和考慮因素;

  • 爲了通過並行執行獲得更好的性能,網路進行了哪些權衡?
    • 保護網路的驗證器越少,驗證和執行速度就越快,但這是否會損害區塊鏈的安全性,因爲驗證器更容易串通網路?
    • 是否有大量驗證者位於同一地點?這是最大限度地減少加密和非加密系統中的延遲的常見策略,但如果特定數據中心受到損害,網路會發生什麼情況?
  • 對於樂觀並行系統,隨着網路擴展,重新執行無效事務的過程是否會造成瓶頸?如何測試和評估這種效率?

在較高層面上,並行區塊鏈面臨帳本不一致的風險,即雙重支出和交易順序變化(事實上,這是順序執行的主要好處)。確定性並行化通過爲底層區塊鏈上的交易創建內部標籤系統來解決這個問題。實施樂觀處理的區塊鏈必須確保它們用於驗證和重新執行交易的機制是安全且有效的,並且可以合理地實現對性能的權衡。

4.2 未來展望/機遇

計算機的歷史告訴我們,隨着時間的推移,並行系統往往比順序系統更高效且可擴展。後 Solana 並行區塊鏈的興起強調了這一概念也適用於加密基礎設施。甚至 Vitalik 也提到過並行化 作爲最近提高 EVM rollups 可擴展性的潛在關鍵解決方案之一。從廣義上講,加密/區塊鏈採用的增長需要比當今可用的系統更優化的系統,包括並行區塊鏈。 Solana 最近的網路困境凸顯出並行區塊鏈的開發還有很大的改進空間。隨着越來越多的團隊尋求突破鏈上前沿的界限,吸引下一批用戶並採用區塊鏈原生應用程序和生態系統,並行執行模型提供了一個直觀的框架,用於構建可以高效處理大量網路活動的系統。規模可以輕鬆與 Web2 公司相媲美。

不構成財務或稅務建議。本文的目的純粹是教育性的,不應被視爲投資建議、法律建議、購買或出售任何資產的請求或做出任何財務決策的建議。它不能替代稅務建議。請諮詢您的會計師並進行自己的研究。

披露。所有帖子都是作者原創,而不是其僱主的觀點。這篇文章得到了 Aster 基金會的贊助。雖然 Shoal Research 已獲得該計劃的資助,但贊助商不會影響其內容。在 Shoal Research,我們的目標是確保所有內容客觀且獨立。我們的內部審查流程秉持最高的誠信標準,所有潛在的利益衝突均予以披露並嚴格管理,以維護我們研究的可信度和公正性。

聲明:

  1. 本文轉載自[Shoal Research],著作權歸屬原作者[PAUL TIMOFEEV、MIKE JIN 和 GABE TRAMBLE],如對轉載有異議,請聯系Gate Learn團隊,團隊會根據相關流程盡速處理。
  2. 免責聲明:本文所表達的觀點和意見僅代表作者個人觀點,不構成任何投資建議。
  3. 文章其他語言版本由Gate Learn團隊翻譯, 在未提及Gate.io的情況下不得復制、傳播或抄襲經翻譯文章。
即刻开始交易
注册并交易即可获得
$100
和价值
$5500
理财体验金奖励!
It seems that you are attempting to access our services from a Restricted Location where Gate.io is unable to provide services. We apologize for any inconvenience this may cause. Currently, the Restricted Locations include but not limited to: the United States of America, Canada, Cambodia, Cuba, Iran, North Korea and so on. For more information regarding the Restricted Locations, please refer to the User Agreement. Should you have any other questions, please contact our Customer Support Team.