技術指南:Supra區塊鏈技術堆疊全解
BlockBeats 律動財經 2024-12-19 10:30
摘要
Supra 將多年來的多項創新成果整合到一個強大且高性能的架構中,該架構完全垂直整合了MultiVM 智能合約支援和原生服務,包括價格預言機、鏈上隨機數、跨鏈通訊以及自動化功能。
在此基礎上,該文詳細介紹了Supra 區塊鏈的端到端交易流程,並展示瞭如何有效緩解審查風險和最大可提取價值(MEV)攻擊的威脅。
Supra 網路依托共享安全平台,提供了一系列廣泛的服務與功能。其中包括創新技術:分散式預言機協議(DORA)、分散式可驗證隨機函數(DVRF)、零區塊延遲的自動化網路、受AppChain 啟發的容器架構、多VM 支持,以及透過平行交易處理優化的區塊執行。此外,Supra 的跨鏈設計——HyperLoop 和 HyperNova——使 Supra 成為全球首個透過智慧合約平台邏輯實現多鏈互聯的「IntraLayer」。
1. 區塊鏈服務的原生完全垂直整合
Supra 致力於透過開創性的研究和卓越的工程能力推動區塊鏈技術變革,目標是建立一個高效的Layer 1 區塊鏈,全面整合各種區塊鏈相關服務,為個人用戶、機構客戶以及開發者提供一體化解決方案和流暢的使用體驗。
本文中,我們將展示Supra 技術如何詮釋古希臘哲學家亞里斯多德的名言:「整體大於部分之和。」秉承完全垂直整合的理念,Supra 提供了一套全面的區塊鏈功能和服務,支援豐富的生態系統開發和多樣化的應用場景。
核心功能概覽
Supra 區塊鏈為dApp 提供的原生服務(如圖1 所示)涵蓋以下核心功能:
· Layer 1區塊鏈
支援多種資產類型,包括原生代幣、可編程的同質化和非同質化代幣,以及標準化的跨鏈代幣。
· 智能合約執行環境
提供多種鏈上圖靈完備的智慧合約平台,適用於DeFi 協定、區塊鏈遊戲、彩券、供應鏈追蹤等各種公共區塊鏈應用。
· 鏈下資料服務
提供基於需求(拉取式)和串流式(推送式)的資料服務,包括加密貨幣價格預言機、外匯匯率、股票指數和天氣數據等。這些數據透過 Supra 的分散式預言機協議(DORA)傳輸,不僅服務於 Supra 區塊鏈,也支援其他區塊鏈網路。
· 推送與拉取式鏈上隨機數服務
提供串流和按需格式的分散式可驗證隨機函數( dVRF),適用於Web 2.0 和 Web 3.0 用戶,用於產生和分發隨機數服務。
· 自動化網路
用於根據特定的時間節點、鏈上事件或透過 DORA 提供的鏈下事件安排交易執行。例如,客戶可能會提出請求:「在2025 年6 月1 日,東部標準時間12:00 整,如果ETH 價格高於4000 美元,則出售我的DOGE。」
· 應用專用鏈(AppChain)
Supra 上的容器提供了AppChain 的靈活性和自主性,同時部署成本顯著降低,並受益於Supra 網路的高效能、共享安全性和統一流動性。
2. IntraLayer:連接Supra 及其他區塊鏈
儘管Supra 提供了一系列原生服務,我們深刻體認到多鏈生態的現實與價值。為提升互通性,我們設計了一種星型拓撲結構(見圖2),在這一結構中,Supra 的L1 區塊鏈及其整合服務作為IntraLayer 網路的核心,透過我們的互通性解決方案HyperLoop 和HyperNova 連接其他L1 和L 2 區塊鏈。
作為一個獨立的 MultiVM 智能合約平台,Supra 不僅提供自身服務,還致力於在多鏈生態中扮演關鍵角色。這種角色體現在網路之間或「網路之內」的價值交換上,透過原生智能合約、自動化功能和預言機服務實現安全、高效的通訊。
HyperLoop
基於傳統的多簽章跨鏈協議,HyperLoop 是經過嚴格分析和博弈論驗證的安全解決方案,是業界首個此類創新設計,確保跨鏈交易的可靠性。
HyperNova
作為一種無需信任的互通性方案,HyperNova 提供跨鏈通訊的高度安全性,為多鏈生態中資訊和價值交換奠定了堅實的基礎。
透過HyperLoop 和HyperNova,Supra 實現了廣泛的鏈間互聯,為使用者和開發者提供了強大的工具,推動了多鏈生態的深度融合與發展。
連結鏈的安全性不依賴傳統跨鍊或中繼節點的安全假設。在此我們概述了 HyperLoop 和 HyperNova 最適用的具體場景。
· HyperLoop
我們發現,HyperLoop 跨鏈解決方案特別適合將Optimistic Rollup 連接到Supra,因為它消除了實現最終確定性所需的詐欺證明挑戰期。
· HyperNova
適用於將任何權益證明(PoS)L1 區塊鏈連接到Supra,因為它透過重新計算Supra 交互鏈的共識來維護連接鏈的安全性,從而保持L1 到L1 的安全性。 Supra 的 L1 區塊鏈專門設計用於促進安全和高效的跨鏈通訊。
我們的計畫包括利用 HyperNova 將比特幣跨鏈到 Supra,同時透過 HyperLoop 實現反向連線。此外,我們正在探索如何在這個環境中實現原子交換,以進一步提升跨鏈互通性。
以下是由 Supra IntraLayer 技術堆疊 支援的一些核心功能:
· DeFi IntraLayer
作為“平台之上的平台”,Supra 封裝了多種主流的 DeFi 協議(例如 AMM)。 dApp 開發者可以輕鬆存取來自多個區塊鏈的資產和訊息,簡化跨鏈開發流程。
· 跨鏈自動化服務
我們允許用戶基於多個區塊鏈的事件和資料設定自動化任務,從而極大提升使用者體驗和操作效率。
我們堅信,將多種原生服務完全垂直整合到一個高效能的L1 區塊鏈中,與我們打造全球首個跨鏈IntraLayer 的願景高度契合。隨著其他區塊鏈對我們服務的需求不斷增長,Supra 網路的實用性(包括我們的代幣和鏈上資產)將會帶來價值的自然波動,進一步激勵用戶和客戶採用我們的基礎設施。
同時,隨著IntraLayer 架構在不同生態系統中的廣泛應用,越來越多的開發者將被我們的原生服務和卓越性能所吸引,進而選擇直接在Supra 區塊鏈上開發和建構應用。這不僅會增強我們的 DeFi 層,包括我們內部開發的協議和第三方協議,也將推動網路的整體採用率和吸引力。
我們相信,憑藉卓越的性能和一站式、多元化的服務,Supra 將為開發者社群帶來下一波Web 3.0 技術普及浪潮,助力整個生態的快速發展。
3. Supra 的核心-「部落與氏族」節點模型
Supra 的基本哲學是完全垂直集成,在單一平台上提供幾乎所有與區塊鏈相關的服務。此方案能確保使用者和開發者獲得統一、流暢的使用體驗。
完全垂直整合vs 模組化Layer 2
Supra 採用的是垂直整合架構,不同於傳統的模組化L 2 解決方案:
在L2中,核心功能(如共識、執行和數據可用性)分散在獨立網路中,雖然這種設計被稱為“模組化優勢”,但卻帶來了不少問題:
· 延遲增加:跨網路通訊導致時間延遲;
· 經濟安全分散:不同網路擁有各自的代幣,無法共享安全性;
· 複雜度高:整體架構更難維護和協調。
與之相比,Supra 的完全垂直整合設計將所有元件統一到一個區塊鏈中:
· 共享經濟安全性和統一的代幣經濟;
· 大幅減少通訊延遲,提升系統效能;
· 統一的激勵機制增強網路安全;
· 降低了整體營運成本。
拜占庭容錯的突破
分散式系統研究表明,在非同步或部分同步的網路中,傳統的拜占庭容錯(BFT)協定只能容忍最多三分之一的節點為惡意節點。但 Supra 的創新突破將這項容忍度提升至一半,實現了前所未有的安全性和效率。
排序服務與誠信鏈
Supra L1 區塊鏈的核心是排序服務,其共識協議負責交易排序,而交易資料的傳播與排序服務分開。因此:
· 區塊只包含交易批次的元資料(如摘要和資料可用性證明),而不包括具體的交易資料;
· 這讓Supra 區塊鏈的區塊非常小,大大提升了運作效率。
由於排序服務是所有其他服務的核心基礎,我們將 Supra 區塊鏈稱為「誠信鏈」。
為什麼容忍更多拜占庭節點很重要?
容忍更多拜占庭節點的直接優勢在於:
· 更小的委員會:例如,容忍50 個惡意節點,傳統方法需要151 名成員,而Supra 只需101 名成員;
· 降低成本:減少共識節點數量意味著需要補償的節點更少,從而降低用戶費用;
·提高執行速度:共識節點數量更少,流程更快,同時仍保持強大的安全性。
部落、氏族與家庭
這一核心促進了Supra區塊鏈上多個服務的高效完全垂直整合。 Supra 提出了一個全新的網路框架,支持在部落、氏族或家庭層面執行各種不同的演算法。
如圖3 所示:
· 部落(Tribe)是一個節點委員會,最多容忍三分其中一個的拜占庭節點;
· 氏族(Clan)是一個節點委員會,最多容忍二分之一的拜占庭節點;
· 家庭(Family)是一個節點委員會,至少需要一個正確節點。
為了實現最佳效能和強大的安全性,我們的網路架構如下:活躍節點被組織成一個運作共識協定的部落,為排序服務提供支持,並容忍最多三分之一的拜占庭節點。
我們設計中的一個關鍵點是,整個 Supra 部落並不需要參與交易執行或維護完整的 Supra 狀態。相反,一個較小的子集——稱為「氏族」——即可管理狀態、執行交易、計算區塊的後狀態並簽署狀態承諾。因此,交易數據的傳播最初僅在氏族層面發生,然後再進一步廣播。
這種架構非常適合高效的狀態分片(state sharding),其中不同的氏族管理不同的狀態分片,並可能使用獨立的虛擬機。這種設計提高了可擴展性,允許我們透過增加更多氏族(或分片)來調整吞吐量。因此,除了共識之外的所有協議(如資料傳播、分片執行、預言機服務和分散式隨機數服務)都運行在只需要簡單多數正確節點的小型委員會(氏族)中。
我們透過隨機選擇將節點分配到氏族中,將排序部落和多個服務氏族組織在一起,使這些氏族實際構成了部落的一個分區。共識或全域排序運行在部落上,而各種可驗證的計算服務則在氏族中執行。這種節點的隨機選擇允許我們在氏族層面執行,並為系統引入了機率因素。例如,假設部落由 625 個節點組成,其中最多有 208 個拜占庭節點。若將部落分成 5 個氏族,每個氏族 125 個節點,則任一氏族中超過半數(即 62 個)節點為拜占庭節點的機率約為 35 × 10⁻⁶。換句話說,當部落中拜占庭節點佔 33% 時,出現「壞氏族」的機率僅為百萬分之 35。在實踐中,這些機率極低。我們將在討論週期和時間段時進一步分析這些機率,並展示它們在實踐中幾乎可以忽略不計。
4. 交易流程
Supra 鏈上交易流程大致如下,具體步驟將在後續章節詳細描述:
· 用戶透過Supra 的Starkey 錢包[3] 或dApp 提交交易ttt。錢包連接到網關 RPC 節點,交易 ttt 被送到該節點。
· 網關RPC 節點根據對交易ttt 的基本驗證和分類,將其發送到特定批次提議者的主存儲(Primary Bucket),並將交易發送至一些其他批次提議者的次儲存桶(Secondary Bucket)。
· 批次提議者從主儲存桶中打包交易,並將次儲存桶中逾時的交易加入批次。有關詳情請參閱第 5 節。
· 批次透過 xRBC 協定傳播到對應的執行氏族節點,必須形成資料可用性仲裁證書(DAQC)後,批次才能包含到區塊中。這些憑證會傳播到整個部落,批次也會傳播到網關 RPC 節點。
· 部落節點運行 Supra 的 Moonshot 共識協議。區塊提議者透過打包這些 DAQC 及相關批次的元資料來建立區塊。
· 共識協議對區塊進行排序,從而間接對跨批次的交易進行排序。當區塊被最終確定時,所有運行共識協議的部落節點以及所有氏族的節點都能看到這些區塊。最終確定的區塊也會傳播到網關 RPC 節點。
· 氏族節點從最終區塊中執行相應批次的交易,並在當前區塊鏈末端更新區塊鏈狀態。隨後,它們計算後狀態、進行默克爾化操作併計算新的默克爾根。注意,不同的氏族會並行執行不同的批次。氏族節點簽署該默克爾根,並將其傳播到整個部落以及網關 RPC 節點。
· 網關 RPC 節點執行區塊,計算後狀態及其梅克爾根,驗證其與接收到的簽名默克爾根一致,並在交易完成後通知錢包。
最終確認階段
在我們的工作流程中,交易ttt 經歷以下三個不同的最終性階段,每個階段都為交易在區塊鏈上的狀態提供更強的保證:
· 預確認階段
當包含交易ttt 的批次bbb在取得資料可用性仲裁證書(DAQC)時,保證交易 ttt 將包含在區塊鏈中。在這一階段,雖然交易的包含性得以保證,但其具體位置和執行結果尚未確定。
· 排序最終性
當共識協議對包含批次bbb 的區塊完成最終確認時,交易ttt 在區塊鏈中的位置變得固定且不可更改,從而確定了其相對於其他交易的執行順序。
· 執行最終性
這是最終性階段的終點。氏族節點執行批次 bbb,用交易 ttt 的執行結果更新區塊鏈狀態,創建新狀態的默克爾化版本,簽署生成的默克爾根並廣播以形成狀態承諾。一旦此階段完成,交易的執行結果即為最終且不可逆轉。
Supra L1 支援快速的最終性時間。在我們的實驗中,這些不同最終性階段的觀察時間將在第 7 節中報告。
後續章節將詳細展開上述交易流程中的重要步驟。
5. 無記憶體池的分桶方案
我們先討論以太坊和Solana 現有的記憶體池協議,然後展示 Supra 如何在此基礎上實現改進。
以太坊記憶體池方案
傳統的以太坊記憶體池協定流程如下:
· 用戶端(錢包)向RPC 節點發送交易,該節點透過Gossip 協定廣播交易,使其到達所有共識驗證者。
· 當某個驗證者成為區塊提議者時,會嘗試打包已接收到的交易。
· 區塊提議者可能嘗試透過將交易納入區塊進行審查,但由於所有共識驗證者都持有這些交易,下一輪成為區塊提議者的驗證者將包含被遺漏或審查的交易。因此,此協議具有抗審查性。
在典型的區塊鏈架構中,客戶端(Web3 錢包)將交易傳送到公開的 RPC 節點。 RPC 節點隨後透過點對點的 Gossip 協議,將交易傳播到整個 RPC 節點網路和共識驗證者網路。這些節點會維護一個稱為「記憶體池」(mempool)的資料結構,用於暫存由客戶端發送的交易。
接下來,區塊建構者會從記憶體池中提取交易,將其打包到區塊中,並透過共識協議進行處理。一旦區塊達到最終性,包含的所有交易也會被視為最終確認的交易。
由於比特幣和以太坊的內存池中積壓了大量未處理的交易,平均來看,交易在被區塊構建者選中之前會在內存池中停留較長時間。此外,點對點的 Gossip 協定在傳播交易時也會進一步增加延遲。
Solana 無記憶體池方案
為減少記憶體池延遲,Solana 採用了一種無內存池協議,其流程如下:
· 區塊的生成按照固定的時間表進行,區塊提議者會提前確定。
· 用戶端(如錢包)將交易發送到 RPC 節點,RPC 節點會為交易附加讀寫存取資訊等輔助數據,並將其發送給即將提議區塊的部分提議者。如果某個提議者錯過了該交易,其他提議者會在之後的區塊中將該交易納入。
需要注意的是,Solana 網路需要 32 個區塊確認才能實現完全最終性。儘管 Solana 在設計上對端到端的延遲進行了優化,但交易重複的問題仍然偶爾發生,可能會導致網路中斷。與以太坊的內存池協議相比,Solana 採用針對預期區塊提議者的定向通信,這種方法有效減少了交易傳播的延遲。
Supra 無記憶體池協定方案
與Solana 類似,Supra 也採用了無記憶體池協議,但我們透過針對性通訊取代了傳統的網路範圍Gossip 協定。然而,Supra 的方法在兩個關鍵方面有所不同:
1. 即時最終性
與Solana 基於時間槽的系統不同,Supra 使用經典的拜占庭容錯(BFT)PBFT 風格的共識協議,稱為Moonshot(詳見後文)。在 Moonshot 協議中,當區塊收到提交仲裁證書(QC)後,即可實現即時最終性,無需像 Solana 那樣等待 32 個區塊確認。這大大縮短了交易的最終確認時間,提升了系統效能。
2. 批次元資料儲存
在Supra 的共識設計中,區塊中不直接包含交易數據,而是儲存交易批次的DAQC 和元資料(詳見第6 節)。在我們的無記憶體池協定中,來自客戶端錢包的交易會被放入由指定批次提議者管理的分桶中,流程如圖 5 所示。
我們的分桶方案特性如下:
1)去重機制
為每筆交易分配一個唯一的主批次提議者,該提議者負責將交易包含到一個批次中。這種單一責任模式自然避免了重複交易被打包進區塊鏈。
2)冗餘與抗審查性
為確保交易不會被遺漏,我們引入了次級批次提議者作為備份。如果主批次提議者未能及時包含交易,次級批次提議者會在超時後將該交易納入批次中。
· 儘管多個次級提議者同時處理交易可能導致重複打包,但 Supra 系統會透過交易的首次出現來保持一致性。
· 重複的交易會因無效的交易序號在執行階段被自動中止,不影響鏈上狀態。
3)不可更改的責任記錄
如果次級提議者成功將交易包含進區塊,它將產生一份不可更改的記錄,證明主提議者未履行職責。這份記錄可用於後續的網路分析,對那些審查交易或導致不必要延遲的批次提提議者進行處罰,確保系統的公平性和可靠性。
無記憶體池的分桶方案具體流程如下:
· 每個批次提議者維護兩個分桶:主分桶和次分桶。
· 對於每筆交易ttt,根據其唯一且不可預測的識別碼(雜湊值),系統會將其分配到特定的批次提議者家庭(family)。在該家庭中,一個節點被指定為交易 ttt 的主批次提議者,其餘節點為次級批次提議者。
· 當RPC 節點從錢包或dApp 前端接收到交易ttt 時,會根據交易的標識符,將其轉發至對應的批次提議者家庭。主批次提議者將交易 ttt 儲存在其主分桶中,而次級批次提議者則將交易 ttt 儲存在各自的次分桶中。
· 在建立新批次時,批次提議者必須包含其主分桶中的所有交易。為了防範拜占庭行為(例如從主分桶中排除交易來審查特定交易),次級批次提議者作為備用機制發揮作用。
· 當批次被最終確定並由批次提議者觀察到後,該提議者會從其主分桶和次分桶中移除已包含在批次中的交易。
· 此外,每筆交易 ttt 都有一個可設定的逾時時間。如果 ttt 在超時之前未被納入最終確定的批次,則其家庭中的次級批次提議者在構建下一批次時,必須從其次分桶中將 ttt 包含進批次中。這項機制確保交易不會被遺漏,並增強了系統的抗審查能力。
這種雙層設計在高效去重和強大抗審查能力之間達成了巧妙的平衡。此外,當次級批次提議者成功將某筆交易納入批次時,會產生一份不可更改的記錄,證明主提議者未能履行其職責。這份記錄可用於後續分析,並對那些審查交易或造成不必要延遲的批次提議者施加相應懲罰。
6. 無記憶體池架構:實現交易資料傳播與交易排序的高效解耦
我們接下來介紹Supra 是如何透過部落-氏族架構實現交易資料傳播與交易排序的高效解耦的。
近年來,一些協議(如Narwhal/Tusk [11] 和Bullshark [20])已經認識到交易資料傳輸的重要性,並採用了一種全新的設計範式,將資料傳輸與交易排序進行解耦。這項設計透過兩個並行運行的子協定分別實現資料傳輸和排序:
· 在沒有排序需求的情況下,資料傳輸簡化為可靠廣播(RBC),這是分散式系統中一個被廣泛研究的基礎操作。
· 具體來說,節點透過 RBC 子協定不斷提議並傳播新資料區塊;隨後,這些資料區塊透過排序子協定被確定並輸出。
這種設計有效地優化了頻寬資源的利用率,使系統吞吐量相比傳統方法有了顯著提升。 Supra 也遵循這項原則,解耦了資料傳輸與交易排序。然而,我們觀察到,即使在目前最先進的共識協議中,優化的重心依然主要放在排序子協定上,這其實與系統的實際瓶頸相悖。
例如,Tusk [11] 和 Bullshark [20] 的主要優勢是所謂的零訊息排序,即在排序階段完全消除通訊開銷。但正如我們先前所指出的,通訊成本的主要來源並非排序,而是資料傳輸。
圖 6 比較了我們的方法與現有解決方案。我們的目標是在資料傳輸階段降低每個節點的傳輸量,特別是減少任意單一節點的最大傳輸負載。在實際應用中,網路頻寬往往是系統吞吐量的主要限制因素。因此,透過優化資料傳輸過程,我們可以進一步提升系統整體的效能和效率。
Supra 的xRBC 協議
我們透過以下創新顯著降低了資料傳輸的通訊成本:採用一個由同一節點集運行的獨立排序服務。
在傳統方法中,資料傳輸通常透過可靠廣播(RBC)協定執行。 RBC 需要係統中超過 2/3 的誠實節點,以防止廣播者向不同節點發送不同的資料批次(即發送者歧義問題)。
然而,我們發現可以利用獨立的排序服務,將資料傳輸改進為一種放寬的 RBC 操作,稱為 xRBC。在 xRBC 中,僅需要超過 1/2 的誠實節點即可完成資料傳輸,這大幅降低了通訊成本。
xRBC 的設計優勢
在xRBC 中,僅依靠參與節點不足以完全防止發送者歧義。為解決此問題,排序服務會對廣播者的批次進行認證,確保誠實節點之間的共識,從而消除分歧。儘管排序服務仍需要超多數(超過2/3 的誠實節點)的保障,但xRBC 相較於傳統RBC 在以下方面具有顯著優勢:
更低的通訊開銷:透過減少對超多數誠實節點的依賴,降低了協定運作中的通訊複雜度。
提升效能:xRBC 的設計能夠更有效率地處理資料傳輸,同時保持與傳統 RBC 相當的安全性。
利用氏族分散式資料傳播
由於交易僅在氏族(部落的隨機子委員會)內部執行,交易資料最初只需傳輸到執行該氏族的節點。這大大降低了網路頻寬負載,相比將資料傳播到整個部落而言更有效率。在每個執行氏族內,我們指定部分節點作為批次提議者,負責從各自的分桶中建立交易批次,並將其傳輸給氏族內的所有節點。
值得一提的是,不同氏族的批次提議者能夠獨立並行地傳播交易批次,無需同步或等待協議步驟。這種並行的非同步傳播機制在推送資料時最大化了網路頻寬的利用效率。
此外,為了實現狀態同步(以便跨週期進行節點重新分配,詳見第9 節),交易資料可能會在後續階段進一步傳播到整個部落。這種分階段的資料傳播設計在確保網路效能的同時,也確保了系統的一致性和彈性。
具體流程(圖7 說明)
·批次提議者負責建立交易批次並將其發送到氏族內的所有節點。
· 當氏族節點接收到有效的批次後,會對批次的資料可用性進行投票,並將投票結果廣播至氏族內的所有節點、部落的其他節點,以及指定的網關RPC 節點。
· 一旦簡單多數投票通過,系統會產生一個資料可用性憑證(DAQC),確保至少有一個誠實節點擁有完整的交易資料。
· 如果某個節點缺失部分批次數據,它可以向簡單多數的氏族節點請求數據,而DAQC 保證了這一請求必定能夠被滿足。
· 對於超過大小閾值的批次,或者在並非所有氏族節點都擔任批次提議者的情況下,我們引入糾刪編碼(erasure coding ),以確保資料在氏族內部的均勻分佈,優化頻寬使用效率。
區塊內容與最終性
區塊中僅包含批次證書。當共識協議的驗證者(部落節點)擔任區塊提議者時,會將其接收到的所有批次的 DAQC 打包進區塊中。一旦區塊達到最終性並被驗證者確認,驗證者會將這些已包含的 DAQC 從快取中移除,因為它們已記錄在最終確定的區塊中,不再需要保留。
由於區塊只包含批次證書,而不直接儲存交易數據,Supra 區塊鏈實際上是一條極為輕量化的區塊鏈。這種設計大大減少了區塊的大小,並提高了資料傳輸效率。
7.共識協議
拜占庭容錯(BFT) 共識協議:區塊鏈的核心
BFT 共識協議是區塊鏈的核心元件,負責為區塊提供標準的排序,從而確保區塊內的交易也具有標準順序。我們創新地設計了一種新型 BFT 共識協議,名為 Moonshot SMR,其靈感來自經典的實用拜占庭容錯 (PBFT) 協議,並在此基礎上進行了性能優化。
如前文所述,共識協議在部落中執行,而交易執行僅限於氏族內。因此,Moonshot 採用了彈性設計,能夠根據實際交易吞吐量需求進行靈活適配。值得注意的是,區塊中不直接包含交易數據,僅包含批次證書,這使得系統更有效率和輕量。
Moonshot 的效能
Moonshot 實現了以下關鍵效能指標:
· 連續提議延遲(兩次區塊提議之間的最小延遲):1 個訊息延遲(md)。
· 提交延遲:3 md。
· 批次傳播和資料可用性憑證產生的累積延遲:2 md。
· 由於區塊每次網路跳躍(network hop)都會被提議,數據可用性證書需要排隊等待下一個區塊提議,平均排隊延遲為 0.5 md。
因此,系統的整體端對端延遲為 5.5 md。
形式化驗證:確保協定安全性
分散式協定往往具有複雜的行為和無限的狀態空間,這使得證明其正確性變得極具挑戰性。而形式化驗證是確保協議安全性的黃金標準,因為它能夠透過數學手段證明協議不存在錯誤。
為此,我們採用微軟的IvY 驗證器對Moonshot 共識協議的安全屬性進行了形式化驗證,嚴格證明了其永不分叉的特性,為協議的正確性和安全性提供了數學保障。
實驗評估
我們在Google雲端平台(GCP) 上進行了廣泛評估,將節點均勻分佈在五個不同區域:
· us-east1-b(南卡羅來納州)
· us-west1- a(俄勒岡州)
· europe-north1-a(芬蘭哈米納)
· asia-northeast1-a(東京)
· australia-southeast1-a(雪梨)
實驗設定如下:
· 客戶端與共識節點共置
· 每筆交易由512位元組隨機資料組成,批次大小設為500KB
· 每次實驗運行180 秒
· 延遲測量:計算從交易產生到被所有非故障節點提交的平均時間,以確定端對端延遲
· 吞吐量測量:基於每秒最終確定的交易數量進行評估
我們測試的架構由300 個節點組成,分割為 5個氏族,每個氏族包含 60 個節點(每個 GCP 區域部署 12 個節點)。在這個配置下,300 節點網路中某個氏族(60 個節點)因內部不誠實多數而失敗的機率為 0.0107。
儘管如此,我們的目標不僅是展示該架構的高性能,還希望證明它即使在更大規模的系統中,依然能夠維持高吞吐量和低延遲。
硬體配置:
我們使用了e2-standard -32 機器,每台配備32 個vCPU、128 GB 內存,出口頻寬最高16 Gbps。
透過這些實驗,我們驗證了 Supra 架構在效能和擴充性方面的強大能力。
我們觀察了系統的吞吐量與端對端延遲之間的關係,具體如圖 8所示:
· 當吞吐量達到 500,000 TPS 時,端對端延遲仍保持在 1 秒以內。
· 在 300,000 TPS 時,延遲約為 650 毫秒,這一表現已接近我們架構設計的理論極限。
此外,我們測量了**資料可用性憑證(DAQC)**的產生時間,約 160 毫秒。
綜上所述:
· 交易的預確認延遲約為160 毫秒;
· 排序最終性延遲低於1 秒。
DAG 共識協議
受DAG(有向無環圖)共識協議研究的啟發,我們設計了一種全新的DAG 共識協議,稱為Sailfish。該協議在不犧牲系統吞吐量的前提下,將提交延遲優化至 1 次可靠廣播 + 1 訊息延遲(md),超越了目前最先進的 DAG 共識協議的效能。
此外,我們開發了Sailfish 的變體,將其與部落-氏族架構結合,以進一步提升系統吞吐量。目前,我們正在對這項設計進行廣泛的實驗測試。如果 Sailfish 在大規模網路環境下的效能表現優於現有的 Moonshot 協議,我們計劃將核心共識協議切換為 Sailfish,以實現更有效率的共識流程。
8.執行
區塊鏈的當前狀態包含所有資產及其所有權信息,以及所有智能合約的最新數據。執行已最終確定的區塊交易時,需要載入相關的狀態部分,按照區塊內交易的順序更新狀態,並將修改後的狀態持久化儲存。
在現代區塊鏈中,隨著交易處理能力的不斷提高,執行時間已成為交易最終確認端對端延遲中不可忽略的重要因素。這一趨勢在 Solana、Sui、Aptos 和 Monad 等鏈中尤為明顯,它們透過並行化執行有效地縮短了延遲時間。
我們的部落-氏族架構同樣實現了交易的並行執行,但是在網路層面進行最佳化。具體來說,交易的執行僅限於氏族內部,不同的氏族分別並行處理各自的交易批次,從而顯著提升了系統的執行效率(見圖 9)。
8.1 並行執行交易
除了在網路層面實現並行性之外,我們還深入研究如何透過充分利用單一節點內的多核心處理器,有效率地並行執行交易。目前文獻和產業中常見的平行執行方法主要分為兩類:
· 樂觀/推測性執行技術
· 基於確定性依賴關係的預先決定技術
軟體交易記憶體(STM)
STM 技術在傳統計算領域廣泛應用於多核心程式的平行執行。 Aptos 的BlockSTM 將STM 技術引入區塊鏈交易執行中,其核心思想是:
· 樂觀地在所有可用的核心上並行執行交易;
· 隨後驗證交易之間是否存在依賴關係衝突;
· 若發現衝突,則透過一個協作調度器重新執行衝突的交易。
Supra 創新方案
我們提出了一種創新的STM 並行執行演算法,不同於Aptos 的BlockSTM,我們的設計無需調度器即可高效解決衝突。這種方法在效能和架構上與 BlockSTM 具有可比性,目前我們正在對該設計進行深入評估,以驗證其在實際應用中的優勢。
基於存取規範的平行化
一些區塊鏈透過指定交易的存取模式實現並行化:
· Solana 的Sealevel 要求交易明確聲明需要讀取和寫入的帳戶。
· Sui 要求交易指定讀取和寫入的物件(透過物件識別碼),並聲明這些物件是獨佔的還是共享的。
· 的方法則不同,區塊提議者使用BlockSTM 技術執行區塊,預先計算交易之間的依賴關係,並將這些依賴資訊包含在區塊中,從而使其他驗證者能夠並行執行互不依賴的交易。
然而,需要注意的是,無論是在交易中明確聲明訪問模式,還是在區塊中包含依賴信息,都會顯著增加區塊大小。這可能導致頻寬更快飽和,進而限制系統所能達到的最大吞吐量。
借鑒這些方法,我們正在開發一種確定性並行執行演算法,透過靜態分析智能合約,在合約部署時自動推導其存取規範,並將這些規範儲存在區塊鏈狀態中,而無需RPC 節點或錢包明確提供存取模式。這些規範允許我們將最終確定區塊中的線性交易順序優化為部分(放寬的)順序,從而實現獨立交易的並行執行。這種方法不僅減少了對頻寬的佔用,還提升了整體系統的吞吐量和效率。
混合方法
我們認為,透過利用靜態推導的存取規範改進STM 演算法的混合方法是優化執行技術的最終形式(見圖9)。我們目前正在對此設計進行全面評估。
8.2 執行順序的公平性
為確保交易排序的公平性,我們設計了一個兩步驟流程:
· 初始隨機排序:共識協議首先產生一個交易的初始隨機種子排序。
· 最終排序:透過基於區塊的 BLS 門限簽章產生的鏈上隨機數協議,推導出最終確定的交易排序,決定交易的實際執行順序。
這額外的隨機化層能夠有效緩解最大可提取價值(MEV)攻擊,因為批次提議者或區塊提議者既無法預測,也無法操控最終的隨機化交易執行順序。
為因應垃圾交易(Spam)問題,我們引進了局部費用市場。在爭議狀態下,交易的成本將呈指數級增長,從而提高系統的抗干擾能力,同時確保交易排序的效率和公平性。
8.3 多虛擬機(Multi-VM)
以太坊引進了EVM,這是一種圖靈完備的鏈上程式設計環境,大大釋放了dApp 開發的創造力,尤其是為DeFi 應用提供了強大支援。 EVM 借鑒了 Web 2.0 程式語言的經驗,催生了 Solidity。然而,隨著區塊鏈技術的發展,社群逐漸意識到,需要一種專為資產轉移和鏈上資產管理設計的程式語言。因此,Meta 的 Diem 團隊開發了 Move 語言,其後也衍生出 Aptos Move 和 Sui Move 等變體。
Supra 深刻認識到定制化鏈上交易編程語言的重要性,因此選擇Move 語言作為我們智能合約平台的首選,並將在Move 的支持下推出我們的L1 區塊鏈。
同時,我們也看到多虛擬機器生態系統的巨大潛力。不同虛擬機器下的開發者可以相輔相成,共同推動區塊鏈產業的創新與發展。因此,我們設計了一個高效率的多虛擬機器架構。
基於部落-氏族架構的天然分片特性,每個氏族託管一個狀態分片,而不同的氏族可以託管不同的虛擬機器。
在整合 Move 智慧合約平台 後,Supra 將進一步擴展至 以太坊虛擬機器(EVM),實現與龐大的以太坊生態系統的兼容性。接下來,我們將整合 Solana 虛擬機器(SVM),支援開發者使用 Rust、C 和 C++ 等廣泛應用的程式語言來建立智慧合約。
最終,Supra 也將支援 CosmWasm,實現與活躍的 Cosmos 生態系統的無縫連接。
跨虛擬機器通訊
在多虛擬機環境中,使用者可能在不同虛擬機器上擁有多個帳戶,並希望實現跨虛擬機器資產轉移。此外,Supra 的原生代幣 $SUPRA 必須在所有虛擬機器中實現統一管理。為解決這個問題,我們提出了一個簡單且有效率的三步驟工作流程:
· 提交跨虛擬機器轉移交易
用戶啟動跨虛擬機器的資產轉移交易ttt,此交易由兩部分組成:
來源虛擬機的扣款交易tdt_dtd
目標虛擬機的入帳交易tct_ctc。
交易 ttt 首先在來源虛擬機器上執行,完成扣款並觸發對應事件。
· 事件監控與提交
從來源虛擬機器的氏族中隨機選出一個家庭(該家庭至少包含一個誠實節點) ,這些節點監控扣款事件並負責提交入帳交易tct_ctc。
· 執行目標虛擬機入帳
目標虛擬機的氏族接收並執行tct_ctc,完成資產入賬,至此跨虛擬機的轉移流程完成。
9.紀元與週期
在Supra 的架構中,只有在紀元(Epoch )的邊界時,才允許在部落中新增節點或移除現有節點。紀元的持續時間是可配置的,通常根據區塊數量或實際時間來定義。我們計劃將紀元的時長設定為約一週。在每個紀元期間,部落中的所有節點都會透過運行共識協定來執行排序服務。
如圖 10 所示,一個紀元進一步劃分為多個 週期(Cycle),每個週期的典型持續時間為 約一天。在每個週期中,部落中的節點會透過 Supra 的 VRF(可驗證隨機函數)被隨機分配到不同的氏族。例如:
· 在紀元1 的週期2(e1c2),某節點可能擔任DORA 驗證者的角色;
· 而在紀元1 的周期3(e1c3),同一節點可能負責執行EVM 交易的任務。
這種每週期隨機重新分配節點角色的機制顯著提升了系統的安全性,能夠有效防禦惡意行為者試圖針對特定角色或功能進行的攻擊。
攻擊特定服務(例如服務SSS)的攻擊者可能會嘗試透過使提供服務SSS 的氏族的一些節點失效來破壞該服務。
為了回應這個威脅,每個週期都會執行一個分散式金鑰產生(DKG)協定進行氏族重組。我們能夠實現這種頻繁重組,得益於我們在 DKG 領域的創新——開發了一種基於類群(class-group)的高效能 DKG 協定。
壞氏族出現的機率
如第3 節所述,我們分析了在一個包含625 個節點的部落中,將其劃分為5 個氏族(每個氏族125 個節點)時的安全性影響:
·壞氏族的定義:拜占庭節點佔據某一氏族的簡單多數。
· 壞氏族形成的機率:隨機形成壞氏族的機率約為 百萬分之 35。
假設每個週期為一天,且氏族每天透過重組重新分配節點。這意味著即使在最極端的情況下(部落中 33% 的節點由拜占庭行為者控制),壞氏族的出現機率也極低,預計每 78 年才會發生一次。
這極低的機率幾乎可以忽略不計,充分證明了我們氏族形成機制在提供強大安全保障方面的可靠性。
10. 容器
Supra 容器(Container)是為開發者社群設計的重要功能,其靈感來自當前流行的應用鏈(Appchain)概念。
我們充分認可應用鏈的優勢,尤其是它們在為 dApp 開發者及其社群提供主權能力方面的獨特價值。此外,應用鏈還能夠支援基於應用的商業模式。目前,Layer 2、側鏈、Polkadot 平行鏈、Cosmos 區域鏈(Zones)和 Avalanche 子網路(Subnets)是應用鏈領域的領先解決方案。
然而,我們也意識到,這些解決方案在高吞吐量區塊鏈(如 Supra L1)的環境下並不理想。應用鏈通常需要提供以下關鍵功能:
· 智慧合約受限的部署
· 自訂Gas 代幣
· 自訂Gas 定價
當這些應用鏈託管在次級鏈(如平行鏈、區域鏈、子網路等)上時,它們的Gas 價格不會與對應主鏈(例如Polkadot中繼鏈、Cosmos Hub 或 Avalanche C-Chain)的 Gas 價格產生競爭,也不會隨主鏈價格波動。這種在地化的費用市場為使用者提供了一種更可預測的交易費用體驗,而這項特性在實際應用中非常理想。
透過Supra 容器,我們旨在將這些應用鏈的優勢與高性能L1 區塊鏈的能力相結合,為開發者和用戶創造更加靈活、穩定的生態環境。
Supra 容器(Supra Container)是區塊鏈領域的全新概念。我們將其定義為服務於單一或一組相關 dApp 的智慧合約集合或捆綁包。透過Supra 容器,我們對Supra 的執行時間框架進行了最佳化,為dApp 開發者提供類似應用鏈(Appchain)的體驗,同時具備以下顯著特點:
· 自訂Gas 代幣
· 自訂Gas 定價
· 智能合約的受限部署
這一切都能以極低的成本實現,完全省去了啟動一個全新的次級網路(例如需要抵押激勵的驗證者網路)的繁瑣過程。
解決流動性碎片化問題
更重要的是,我們透過支援跨容器方法調用的原子可組合性,克服了應用鏈通常面臨的重大問題—流動性碎片化。這項設計確保了容器間的高效交互,同時保留了流動性的集中性。
促進並行執行
在以太坊EVM 模型中,每個智能合約擁有獨立的儲存空間。將Supra 容器引入EVM 模型後,可以將區塊鏈狀態劃分為多個分區:
· 容器內交易(intra-container transactions)只存取目標容器的狀態,而不會影響其他容器的狀態。
· 這種狀態隔離優化了容器內交易的執行時間,並減少了不同容器間的衝突。
基於此特性,我們建立了一個簡單而有效率的工作共享佇列,用於最佳化並行執行。透過這項設計,Supra 容器顯著提升了區塊鏈的執行效率,既簡化了開發者體驗,也推動了整個生態系統的效能提升。
11. 結語
Supra 作為一個完全垂直集成的IntraLayer,其雄心勃勃的願景歷經多年的嚴謹研究,正逐步成形。我們在多個頂級學術會議上發表了大量研究成果,例如 IEEE Security & Privacy、網路與分散式安全研討會(NDSS)、ACM 電腦與通訊安全會議(CCS)等。此外,我們也發布了一系列核心元件的白皮書,包括:
· Moonshot 和Sailfish 共識協議
· 分散式預言機協定(DORA)
· 分散式可驗證隨機函數(DVRF)
· 高效能類群分散式金鑰產生(DKG)
· Supra 容器
· HyperLoop
· HyperNova
這一次,Supra 首次全面呈現了我們關於完全垂直整合區塊鏈基礎設施堆疊的願景。這套體系結合了多年來開發的眾多創新協議,旨在打造極致高效能的全方位一體化區塊鏈。
暢行幣圈交易全攻略,專家駐群實戰交流
▌立即加入鉅亨買幣實戰交流 LINE 社群(點此入群)
不管是新手發問,還是老手交流,只要你想參與虛擬貨幣現貨交易、合約跟單、合約網格、量化交易、理財產品的投資,都歡迎入群討論學習!
- 加入鉅亨買幣LINE官方帳號索取免費課程
- 掌握全球財經資訊點我下載APP
文章標籤
上一篇
下一篇