探索平行區塊鏈的未來:前沿專案、挑戰與機會

作者:Paul Timofeev 來源:Shoal Research 翻譯:善歐巴,金色財經

前言

1.0 區塊鏈交易

區塊鏈是一個虛擬機,它是運行在分散式實體電腦網路之上的軟體運算模型,任何人都可以加入該網絡,但任何單一實體都難以控制。區塊鏈的概念最早出現在中本聰於2008 年臭名昭著的比特幣白皮書中,它是比特幣實現密碼安全點對點支付的核心基礎設施。交易對於區塊鏈就像日誌對於社交媒體和互聯網公司一樣,它們都是記錄特定網路活動的記錄,但關鍵的區別在於區塊鏈上的交易是不可篡改的並且通常是公開可查的。

那麼,什麼是交易?

區塊鏈上的交易涉及使用公鑰密碼學將數位資產從分散式帳本上的一個位址轉移到另一個位址。交易可用於去中心化點對點轉移,或用於各種身份驗證和核查過程。

1.1 區塊鏈交易的工作原理

當發起交易時(例如,Bob 向Alice 發送一些代幣),Bob 的交易會廣播到底層的區塊鏈網路。隨後,網路上叢集的專用節點開始工作,驗證和確認交易的合法性。一旦足夠數量的節點驗證了交易內容,該交易就會與其他用戶交易一起添加到一個區塊中。一旦一個區塊填滿,它就會被添加到鏈上,因此得名「區塊鏈」。 Bob 的交易現在成為安全透明帳簿的一部分,他和Alice 都可以核實內容。

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

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

1.1.1 記憶體池(Mempool)

記憶體池(mempool) 是區塊鏈設計的常見特徵,由比特幣和以太坊等傳統區塊鏈網路實現。內存池只是緩衝區或“等待室”,用於存放尚未添加到區塊並執行的待處理交易。

為了更好地理解,我們可以列出使用記憶體池的區塊鏈上交易的生命週期:

  • 用戶發起並簽署一筆交易。

  • 參與區塊鏈網路的專用節點驗證交易內容的合法性並包含適當的參數。

  • 驗證後,交易會與其他待處理交易一起路由到公共記憶體池。

  • 最終,根據交易支付的gas 費用相對於記憶體池中其他交易的費用,用戶的待處理交易將與其他待處理交易集群一起被選中,形成區塊鏈上的下一個區塊。此時,我們的交易狀態將顯示為「成功」。

  • 在經過一定時間或基於區塊的門檻後,區塊本身會被最終確認,交易成為記錄在區塊鏈上的不可變日誌,除非發生51% 攻擊(這在其他情況下極其難以實現),否則該交易將無法被篡改。

1.1.2 無記憶體池方案(Solana)

需要注意的是,並非所有區塊鏈都採用記憶體池設計。例如,Solana 區塊鏈透過持續生成區塊來實現高速吞吐量,它不使用記憶體池,而是將交易直接轉發給區塊生成者。

VQYou8qebM8zadhb7LjZp6J8YGf7ojxD8ddcv7La.png

讓我們來看看非記憶體池區塊鏈上的交易生命週期:

  • 用戶發起並簽署他們正在使用的應用程式的交易。

  • 應用程式將交易資訊路由到遠端過程呼叫(RPC) 伺服器。

  • RPC 提供者將交易發送給目前指定的區塊產生者和接下來的三個生成者。這是一種預防措施,以防當前領導者無法及時執行交易。 Solana 採用槽位領導者調度程序,幫助RPC 更輕鬆地路由交易。

  • 然後,區塊生成者將簽名交易發送給共識節點進行驗證。

  • 共識節點投票驗證交易內容,完成後,交易狀態會路由回RPC > 應用程式> 用戶,顯示為「成功」或「失敗」。

類似於基於記憶體池的區塊鏈,經過一定時間或基於區塊的閾值後,區塊本身會被最終確認。

1.2 順序執行

較早的區塊鏈,例如比特幣和以太坊,採用順序執行機制來處理交易。新增到區塊鏈的每個交易都會引發網路狀態的改變,出於安全考慮,虛擬機器被設計為一次只處理一個狀態變更。

sUDyw91kZb5KWP0TPA8WKl1lL6nnDM7bSriIx5sO.png

這導致了底層網路吞吐量的瓶頸,因為可以添加到區塊中的交易數量受到限制,從而導致更長的等待時間和交易成本前所未有的飆升,有時甚至會使網路無法使用。此外,順序執行模型利用硬體元件的效率低下,因此無法從運算突破(例如多處理器核心)中受益。

m8D6DkqCkjkQkYOvG6T2y5vISO1QO1J7nzqJKaGZ.png

平行執行

2.0 什麼是平行執行?

並行計算是電腦架構的關鍵組件,其起源可以追溯到1950 年代後期,儘管其思想和理論可以追溯到1837 年。根據定義,並行計算是指利用多個處理單元同時解決一個操作的行為,其中一個更大更複雜的任務被分解成更小的任務,以比串行方式更有效地完成。

最初僅在高效能運算系統中實現,平行運算已經演變成當今電腦架構的主導範例,因為互聯網時代對運算的需求呈指數級增長,這在過去幾十年中由於頻率擴展的限製而更加惡化。

這種架構標準在很大程度上也適用於區塊鏈,只是電腦解決的主要任務是處理和執行交易,或將價值從智慧合約A 轉移到智慧合約B,因此稱為平行執行。

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

一個更簡單的類比是,考慮一個雜貨店有多個結帳通道供購物者結帳與只有一個通道的效率區別。

為什麼平行執行很重要?

區塊鏈中的平行執行旨在解鎖網路速度和效能的效率,尤其是在網路流量和資源需求增加的情況下。在加密生態系統中,並行執行意味著如果Bob 想鑄造最新流行的NFT 系列,而Alice 想購買她喜歡的迷因幣,那麼網路將同時為這兩個用戶提供服務,而不會影響任何性能和使用者體驗。

雖然這看起來只是一個直觀的提升生活品質的功能,但並行執行所帶來的網路效能提升為開發新型創新用例和應用程式鋪平了道路,這些用例和應用程式可以利用低延遲和大容量,這本身就為將下一批用戶群引入加密生態系統奠定了基礎。

並行執行如​​何運作?

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

區塊鏈上的平行執行可以分為確定性執行和樂觀性執行兩種。確定性並行執行,例如Solana 區塊鏈所採用,本質上要求交易預先聲明所有記憶體依賴關係,即它們希望預先存取全域狀態的哪些部分。雖然此步驟會給開發人員帶來額外的開銷,但從更廣泛的意義上來說,它可以讓網路在執行之前對非衝突的交易進行排序和識別,從而創建一個可預測且高效的最佳化系統。相反,樂觀性並行執行旨在並行處理所有交易,並假設不存在衝突。這使底層區塊鏈能夠更快地執行交易,但代價是在衝突後可能需要重新執行。如果發現提交了兩個衝突的交易,系統可以重新處理並重新執行它們,可以並行執行或順序執行。

為了更好地理解這些設計細節的影響,可以透過分析當今引領並行執行前沿的團隊來更好地了解並行執行。

平行執行的現狀

為了更好地理解這些設計細節的影響,可以透過分析當今引領並行執行前沿的團隊來更好地了解並行執行。

AS1alMhQmHELcPPxOAOJBgbpWPlQmb1Dt253z1CW.png

3.1 Solana 虛擬機器(SVM)

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

oE69sa5T8hv0SVzxUVOKUjqiwiixm0DH2UcneXq8.png

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

Solana 實現並行執行的關鍵在於,當啟用交易時,網路會分配一個指令清單供該交易執行,具體說明要存取哪些帳戶和狀態以及要進行哪些更改- 這是確定哪些交易是非衝突的並且可以同時執行的關鍵,同時也允許嘗試存取相同狀態的交易並發執行。可以將此類比於機場報到托運行李系統中標籤帶來的效率提升。

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

由於其平行架構,Solana 可以處理大量交易並且仍然可以快速執行,使交易接近即時確定性。 Solana 目前平均每秒處理2,000 到10,000 筆交易(TPS)。此外,SVM 的用例正在緩慢但確実に拡大,Eclipse 等團隊正在推出Layer 2 基礎設施,旨在利用SVM 作為執行環境。

3.2 並行EVM

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

3.2.1 Sei Network

Sei Network 是一個兼容EVM 的開源Layer 1 區塊鏈,可承載各種圍繞高效能構建的去中心化應用程式。 Sei 的建置目標是為使用者和開發人員提供低成本的高速交易,而平行執行是實現此效能和使用者體驗的關鍵元件。目前,Sei 的區塊確認時間為390 毫秒,其太平洋主網上已經處理了超過19 億筆交易。

最初,Sei 採用確定性並行執行模型,其中智能合約需要預先聲明它們所需的state 訪問,以便系統同時運行非衝突的交易。隨著其V2 升級的開始,Sei 正轉而採用樂觀並行模型,這意味著所有交易在提交到網路(執行階段) 後將並行處理,然後將被審查是否存在與先前交易衝突的資訊(驗證階段)。如果發生兩個或多個衝突交易,即嘗試存取相同網路狀態的交易,Sei 會識別衝突點,然後根據衝突的性質並行或順序地重新執行這些交易。

nRFrTUOSvnFnh5viZCkLX9yZUvkj5vCttZEyD7Dd.png

為了儲存和維護交易數據,Sei 還將引入SeiDB,這是一個客製化資料庫,旨在透過針對並行執行進行最佳化來改善v1 中的缺點。 SeiDB 旨在降低儲存冗餘資料和維護高效磁碟使用的開銷,以獲得更好的網路效能。 V2 減少了追蹤和儲存所需元資料的量,並支援預寫日誌以幫助在崩潰時進行資料復原。

KXukLUhDcUwfL7zKBlJtRGDCIHb6l5zewtS6uTdt.png

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

cLDaNnH63XBbZ7xBZqwks2uSpwhDCpnxkoVy9xkH.png

3.2.2 Monad

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

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

v4sNcY8kzpZVx30QvacOM9ayolthayLwWcouTCb9.png

需要注意的是,為了保持與以太坊的同步,Monad 會以線性順序排列區塊中的交易,每個交易都會按順序更新。

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

一個簡單的類比是烹飪一頓多方面的餐點(義大利麵配肉丸)。步驟包括1)準備醬汁,2)烹飪肉丸,3)烹飪義大利麵。一個高效的廚師會先為義大利麵燒水,然後準備醬汁的配料,然後將義大利麵扔進沸水中,然後烹飪醬汁,最後是肉丸,而不是一次做完每一步,完成一項任務後再繼續下一項。

3.3 Move

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

MoveVM 是Move 型區塊鏈的原生執行環境,它利用並行化來提供更快的交易執行速度和更高的整體效率。

3.3.1 Aptos

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

dDXu6IdzN9kOBkEYcXu8bbrYDDzDtATiwyJj6dpt.png

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

3.3.2 Sui

與Aptos 類似,Sui 是Diem 專案的前成員開發的Layer 1 區塊鏈,它使用Move 語言。但是,Sui 使用了Move 的自訂實現,該實現更改了原始Diem 設計中的儲存模型和資產權限。具體而言,這使Sui 能夠利用狀態儲存模型將獨立交易表示為物件。每個物件在Sui 的執行環境中都有一個唯一的ID,這樣系統就可以輕鬆識別非衝突的交易並並行處理它們。

LGS98g9EL2azy61eykbBUN0FtUcgFs2HzyqIlVEO.png

類似於Solana,Sui 實施確定性並行執行,要求交易預先聲明它們需要存取哪些帳戶。

3.3.3 Movement Labs

什麼是Movement?

Movement 正在建立一套開發者工具和區塊鏈基礎設施服務,使開發人員能夠輕鬆享受建立Move 應用的優勢。 Movement 以類似AWS 的執行即服務提供者的身分為Move 開發人員提供服務,並將其並行化作為核心設計功能,以實現更高的吞吐量和更大的整體網路效率。 MoveVM 是一個模組化的執行環境,使區塊鏈網路能夠根據需要擴展和調整其交易處理能力,以支援越來越多的交易量,從而增強其並行處理和執行交易的能力。

ygnbe44QWdZZDB9JQqJjhlpA7aSCGB2BRCXTTsf1.png

Movement 也將推出M2,這是一個與EVM 和Move 用戶端都互通的ZK rollup。 M2 將繼承Block-STM 並行化引擎,預計因此能提供數萬TPS 的吞吐量。

總結

4.1 當今平行系統的挑戰

在開發平行區塊鏈的過程中,需要思考一些重要的問題和注意事項:

  • 網路為了透過並行執行獲得更好的效能而做出了哪些權衡?

  • 更少的驗證節點可以帶來更快的驗證和執行速度,但這是否會損害區塊鏈的安全性,因為驗證節點更容易串謀攻擊網路?

  • 是否有大量的位置相同的驗證節點?這在加密和非加密系統中都是一種常用的最小化延遲的策略,但是如果那個特定的資料中心被攻破,網路會發生什麼事?

  • 對於樂觀並行系統來說,隨著網路擴展,重新執行無效交易的過程是否會成為瓶頸?這種效率是如何測試和評估的?

總而言之,平行區塊鏈面臨著帳本一致性問題的風險,例如雙重花費和交易順序的改變(這實際上是順序執行的主要優點)。確定性並行化透過為底層區塊鏈上的交易創建內部標籤系統來解決這個問題。實施樂觀處理的區塊鏈必須確保它們用來驗證和重新執行交易的機制是安全且有效的,並且為效能做出的權衡是可以合理實施的。

4.2 未來展望/機遇

計算機的歷史告訴我們,與順序系統相比,平行系統往往隨著時間的推移變得更有效率和可擴展。 Solana 之後興起的平行區塊鏈的崛起強調了這個概念也適用於密碼基礎設施。甚至Vitalik 最近也暗示了並行化是提高EVM rollup 可擴展性的潛在關鍵解決方案之一。從廣義上講,加密/區塊鏈adoption 的成長要求系統比目前可用的系統更加優化,其中包括平行區塊鏈。 Solana 最近的網路困境凸顯了平行區塊鏈開發存在巨大改進空間。隨著越來越多的團隊尋求突破鏈上應用的前沿,並將下一批用戶群體和採用引入到區塊鏈原生應用程式和生態系統中,並行執行模型提供了一個直觀的框架,可以用來建立能夠高效處理大量網路活動、輕鬆達到與Web2 公司相當規模的系統。

Total
0
Shares
Related Posts