











摘 要:隨著區塊鏈的廣泛部署,無人協同等延遲敏感型的應用對區塊鏈系統的低時延需求日益提高。在協同場景下,區塊鏈節點通常跨地域部署,節點異構性較強。在基于領導節點的拜占庭容錯(Byzantine Foult Tolerant,BFT) 共識協議中,不穩定的或能力較差的領導節點將導致不必要的高延遲,并降低區塊鏈的可用性,特別是在資源有限的移動或傳感器網絡下。針對上述問題,提出了ε-LE,一種帶有網絡感知的領導選舉方法,基于節點到領導節點的通信延遲測量結果,采用ε-greedy 策略對領導節點進行選擇,使得當前性能較優或網絡中關鍵位置的節點具有更高概率成為領導節點,從而優化共識延遲。相較于AWARE 等方法,ε-LE 實現O (N) 的通信復雜度,更加適用于具備線性通信復雜度的共識協議。實驗結果表明,ε-LE 能夠選擇可優化集群共識延遲的節點作為領導節點,在線性拓撲網絡中實現了約21% 的吞吐量提升。
關鍵詞:領導選舉;共識;拜占庭容錯;延遲感知
中圖分類號:TP319 文獻標志碼:A 開放科學(資源服務)標識碼(OSID):
文章編號:1003-3106(2024)04-0826-09
0 引言
拜占庭容錯(Byzantine Fault Tolerant,BFT)共識協議通常基于狀態機復制(State Machine Replica-tion,SMR)范式用于構建可靠分布式系統。近年來隨著區塊鏈等大規模分布式系統的部署,BFT SMR協議也重新得到了廣泛的研究。
在一個跨地域的分布式系統中,不同節點的狀態是非對稱的,即節點的計算能力、任務負載和節點間通信延遲存在顯著的差異。然而,傳統的BFTSMR 協議[1-2]通常是消息密集型的,并且由于認證集合交集性質被用于保證安全性,涉及大量的密碼學計算,使得共識協議的執行占據了分布式系統延遲中的關鍵部分。在一些由許多移動或傳感器節點組成的系統中,各節點的計算能力和帶寬容量有限,但這類系統通常用于支撐大規模延遲關鍵型應用,即應用對系統低延遲的需求較高,如無人協同[3]等。因此,這類系統的共識協議面臨著低延遲和可擴展性的挑戰。
在基于領導節點的共識協議中,如HotStuff[2],存在一個節點具備與其他節點不對稱的身份,稱為領導節點,該節點負責將外部客戶端的請求打包生成提案并廣播。當領導節點收集到一定數量對該提案的投票后,生成對該提案的投票認證集合(Quorum Certificate,QC),再次進行廣播并推進共識進入下一個階段。因此,基于領導節點的共識協議性能表現依賴于認證集合的構建速度;一個脆弱的領導節點在資源受限的場景下會成為協議性能的瓶頸。
現有的領導選舉方式通常分為靜態或動態2 種。在工程實踐中得到廣泛應用的是靜態輪詢的方法,這種方法保證了領導選舉結果的公平性,但無法自適應動態的系統狀態。部分動態選舉方法[4-5]更加關注安全性。近期一些相關的研究成果如ARCHER[6]、AWARE[7]通過監控系統中的網絡消息延遲選擇領導節點。其中,ARCHER 測量客戶端到系統節點的延遲,而AWARE 更關注系統節點到節點間的通信延遲。然而,AWARE 是基于PBFT 的兩階段共識范式構建的,可擴展性較差。盡管Nischwitz 等[8]嘗試將AWARE 應用于HotStuff,但實際并不適配HotStuff 的通信模式。
本文提出了一種基于ε-greedy 策略的領導選舉方法ε-LE。ε-LE 的框架包括2 個階段:監控階段和選舉階段。監控階段完成對集群節點的狀態監測與評估,并借助共識協議本身的一致性性質使得評估結果保持全局一致;選舉階段基于評估結果,基于ε-greedy 的思想[9]對領導節點進行選擇,即以較高的概率(1-ε)選擇監控結果較好的節點,同時以ε的概率從監控結果較差的節點中選擇領導節點,從而保持對相對較差節點的觀測。在具體運行的共識實例中,節點通過多輪消息傳遞達成一致;執行ε-LE 協議完成對相應領導節點的監控,并更新統計信息狀態。在觸發領導節點更換時,εLE 允許節點僅通過本地計算即可一致地決定下一輪的領導節點。只要共識的活性不被破壞,通過重復上述階段,系統能夠在不引入額外通信輪次開銷的前提下,持續地對節點延遲狀態進行監測與評估,從而實現帶有網絡感知能力的領導節點選舉方法。此外,ε-LE 還盡可能保證領導選舉結果的不易預測性,以進一步提高系統的魯棒性。綜上,本文的主要貢獻有:
① 提出了ε-LE,一種基于ε-greedy 策略的延遲感知領導選舉方法,在基于領導節點的共識協議中,通過對節點和系統網絡狀態的感知,選擇較優節點成為領導節點,從而提高共識系統的性能表現。同時,通過對ε-LE 分析與改進,提高其不易預測性,進一步提高系統的魯棒性。
② 在HotStuff 協議上對ε-LE 進行了實現,并在資源受限的環境和多跳網絡下對ε-LE 進行了實驗測試。與原始選舉方法進行比較,實驗結果證明了ε-LE 的有效性。
1 相關工作
作為分布式系統的核心,共識問題[10-12]有超過40 年的研究歷史,旨在保證分布節點之間的一致性。在基于狀態機的分布式系統中,通常借助SMR協議解決SMR 問題,即節點直接對執行的命令序列(可能是無限長的)順序達成一致。在系統集群規模確定的情況下,BFT 共識協議通常分為兩階段[13]:第一個階段是廣播階段,一個或多個[1,14]節點廣播提案;第二個是確定階段,節點通過多輪投票對提案進行最終確認與提交。
隨著區塊鏈技術的發展,近年來涌現了許多針對BFT 共識協議的優化成果。現有的工作聚焦于減少確定階段所需的通信復雜度,比如HotStuff[2]實現了線性的通信復雜度。在如HotStuff 這種基于領導節點的協議中,通常會先選擇一個節點作為領導節點,并且僅在發生系統超時或拜占庭行為時才替換領導節點。由于領導節點負責提案的廣播,其帶寬開銷和計算資源負載將顯著高于其他節點,因此很容易成為共識吞吐量的瓶頸。而HotStuff 中這一問題尤為突出,因為HotStuff 中節點的通信模式呈現星型拓撲,由領導節點收集和轉發投票集合。因此,領導節點的選擇將顯著影響共識協議的性能;在節點資源受限的跨地理分布的系統中,上述問題更加顯著。
Byzcoin[15]和Kauri[16]等方法通過將集群通信拓撲改為樹狀拓撲來緩解領導節點的瓶頸。盡管Kauri 借助流水線優化來減輕對吞吐量的負面影響,但這種方法將增加每個共識輪次的共識延遲,因為樹狀拓撲會產生額外的通信輪次,從而增加完成單個廣播的延遲。這種方法難以滿足延遲關鍵型應用中低延遲和實時性的需求。
選擇更好的領導節點是另一種比較自然的想法。領導選舉是分布式計算領域的經典問題之一[17],也有許多對共識過程中的領導選舉進行優化的研究成果[6,18-23]。Dripple 和Droopy 通過協調狀態分區與動態配置領導節點可選集合[21]來有效地降低跨地域分布式系統的延遲。另一種方法ARCHER[6]使用客戶端測量的端到端響應時間來選擇BFT 系統的領導節點,但是,為了防止錯誤節點拖延常規共識消息,對探測的請求及時處理,從而降低測量準確度,需要額外的輔助機制對測量過程進行監控。AWARE[7]根據節點到節點的延遲選擇領導節點并使用預測模型以最大限度地減少系統的共識延遲。Nischwitz 等[8]將AWARE 應用于HotStuff時提出了進一步的優化,通過閾值機制,防止領導節點更換過于頻繁,引入學習因子對測量的節點到節點延遲進行加權累加,而不是簡單地覆蓋。
然而,這些方法并不適合某些特定配置。首先,基于WHEAT[24]的AWARE 適用于具有全廣播通信模式的共識協議,可以在共識消息交換過程中實現點對點延遲的單方面測量。雖然AWARE 設計了主動監測的方法,但在帶寬、計算資源等資源有限的場景下,主動監測消息的發送和接收會帶來額外開銷。其次,在選舉階段,AWARE 根據清洗后的延遲矩陣模擬每個節點作為領導節點的共識延遲,并定期檢查是否有更好的節點來替換現有領導節點;即使引入固定閾值,這種方法依然缺少靈活性;導致這一問題的原因是PBFT 和WHEAT 等協議包含復雜的視圖更改協議。當視圖改變發生時,系統執行視圖改變協議,這將嚴重影響系統的性能。考慮到現有方法不匹配資源受限環境和延遲關鍵型應用的需求,ε-LE 利用如HotStuff 這類具備線性視圖變化特點的共識協議,及時觸發視圖變更,實現了靈活、自適應的選舉機制。
2 協議介紹
2. 1 系統模型
ε-LE 協議面向基于領導節點的BFT SMR 共識協議。盡管ε-LE 并不限定于某一具體的共識協議,為了簡化描述,后續描述將假設基于HotStuff 協議。
ε-LE 系統由n = 3f + 1 個節點組成,標記為{p1 ,p2 ,…,pn },其中f 為系統中允許出現錯誤節點的最大數量,即假設F 為錯誤節點的集合,f≥ F 。因此整個系統由至少n-f 個正確節點與至多f 個錯誤節點組成,其中錯誤節點的行為可能是任意的,但其計算能力是有限的,即不能打破密碼學假設。錯誤節點的攻擊行為包括發送錯誤的信息或者不發送消息、盡可能地通過消息誤導其他節點或延遲消息發送等,在最差情況下,所有的錯誤節點會被攻擊者組織協調以統一攻擊系統。
系統的網絡模型假設任意2 個節點間存在可靠的點對點網絡連接,即節點發出的消息最終能被指定接受方收到。網絡消息是可驗證的,當節點發送消息時會使用私鑰進行簽名。假設錯誤節點無法偽造正確節點的簽名,從而保證正確節點的消息無法被錯誤節點偽造。ε-LE 采用半同步網絡模型[2],即存在一個已知上界Δ 和一個未知的全局穩定時間(Global Stabilization Time,GST),在GST 后,任意2 個節點之間的消息傳遞將在Δ 時間內完成。
在對系統模型進行定義后,下一節將基于該模型對協議設計思路及性質進行介紹。
2. 2 問題分析與概述
在基于領導節點的共識協議中,領導選舉的過程是在每個共識實例開始時執行的。每個節點執行選舉協議并決定一個特定的節點作為當前視圖的領導。
在介紹ε-LE 之前,本節首先就領導節點對共識進度的影響及其原因進行分析。以事件驅動型Hot-Stuff 為例,該協議QC 生成過程如圖1 所示,其系統由4 個節點組成,記為p1 、p2 、p3 、p4 ;其中p1 、p2 、p3之間的網絡延遲相等,并且顯著低于它們與p4 之間的延遲。第k - 1 ~ k + 2 輪的領導節點分別是p1 、p2 、p3 、p4 。
每個領導節點只要收集到足夠的選票(紅色箭頭)并形成上一輪的QC,就會廣播自己的提案。因此,這些協議的性能取決于QC 形成的速度。QC 的大小根據共識配置而變化。在本例中,3 個投票消息可以形成一個QC。由于節點之間的消息傳輸延遲不同,不同節點作為領導節點時生成QC 的延遲也不同。由于QC 的大小通常小于節點總數,因此即使是由誠實節點發送的一些投票也可能會被忽略(虛線箭頭)。顯然,若選擇p4 作為領導節點,不僅會增加該輪QC 的生成時間,還會延遲下一輪的開始時間。
ε-LE 使用消息延遲作為評估副本的指標。延遲不僅直接反映了消息傳遞系統中不同副本之間的網絡狀態,還是進程計算資源和工作負載的高級抽象。具有網絡感知能力的ε-LE 方法滿足以下性質[6]:
① 一致性:任意正確節點將會在同一輪中輸出相同領導節點;
② 容錯性:有限的錯誤節點無法完全控制選舉過程;
③ 有效性:領導節點的選舉結果能夠有效優化平均共識延遲;
④ 適應性:選舉方法能夠適應動態的網絡環境和工作負載,當節點狀態發生變化時,可以自適應調整選舉結果。
首先給出領導選舉方法的整體流程,如算法1所示。
其中,第1 ~ 2 行是監控階段,通過對共識消息的分析,更新節點狀態與權重;第3 ~ 10 行是采用εgreedy 策略,基于評估權重對指定輪次的領導節點進行選擇。本方法結合具有線性視圖更換的共識協議特性,將領導節點的性能與狀態抽象為QC 構建延遲,表示由該節點為領導節點時,該輪共識所消耗的時間。
2. 3 監控階段
在具有線性通信復雜度的共識協議中,普通節點在一般共識流程內只會與領導節點發生消息交換。當共識消息交換發生時,節點將對領導節點的狀態進行監控,即執行監控階段。為簡化描述,記第k 輪領導節點為leader(k)。在監控階段,節點通過單向測量獲得自身與被測節點之間的通信延遲信息。接下來本文將對單向測量的過程進行介紹。節點pi 在向leader(k)發送投票的同時,記錄其時間戳T1 ,記首次收到領導節點的回復時刻為T2 ,可以使用T2 -T1 作為鏈路延遲。如果超時,延遲將被設置為超時參數MAXlatency 以表示超時。然后節點pi 提交相應輪次對leader(k)的測量延遲latencypi,leader(k),k。
被測量的領導節點可能會表現拜占庭行為影響測量結果,比如提前回復測量請求使得自身測量延遲低于真實延遲,從而在選舉階段獲得優勢。為了避免被測節點的惡意行為對監控階段造成影響,ε-LE 引入挑戰機制,即測量節點pi 在發送投票時會附帶一個“挑戰”;被測節點leader(k)需要解決挑戰并將“答案”附帶在回復消息中。挑戰及答案的實現形式可以通過隨機數和簽名的方式實現。由于領導節點一旦收集到2f+1 個投票信息就會廣播回復消息,新的提案中可能會不包含對部分正確節點的回復。注意到領導節點可以確定哪些節點的挑戰沒有被回復,因此它可以單獨將回復發送給對應節點。在這種情況下,即使是拜占庭領導節點也無法占據更主導的地位,因為對它來說最有利的行為是解決挑戰并立即回復,否則相應測量節點測得的延遲將增加并影響其后續評估結果。AWARE 中主動監測的方法在線性通信開銷的共識中,每輪引入額外的通信開銷復雜度為O(N2 );ε-LE 在單輪的共識中引入額外的通信開銷復雜度為O(N);通過共識消息的捎帶,實際上每輪只會增加由領導節點發送的至多f 條點對點回復消息。
在單向測量發生的過程中,假設發起測量的節點是正確節點,否則測量是沒有意義的;因為在εLE 中,單向測量的目的是使節點能夠獲得自身與領導節點的通信延遲,并通過共識與其他節點一致地共享;惡意節點可以簡單地省略該階段,并通過提交任意偽造的測量值來發起攻擊,而不需要在單向的測量階段進行攻擊。為緩解惡意節點提交偽造測量值對領導選舉過程的影響,ε-LE 將對各節點通過共識提交的測量結果進行進一步的處理。
每個節點均會在本地維護延遲測量矩陣MN×N ,延遲評估向量l 與平均延遲latencyavg。其中,M 用于記錄已提交的測量延遲并輔助計算得到l。Mi,j表示測量節點i 測得的與被測節點j 之間的通信延遲,被初始化為:
li 表示節點i 的延遲評估信息,latencyavg 表示歷史領導節點被測得的平均延遲,l 與latencyavg 均初始化為0。當f+1 個針對leader(k)在第k 輪的點對點延遲測量結果被提交時,假設集合P 為提交該f+1 個測量結果的測量節點構成的集合, P = f+1,批量更新Mpi,leader(k)為latencypi,leader(k),k,其中pi∈P。
提交單向測量結果的節點可能會表現拜占庭行為,從而影響后續選舉結果,比如提交低延遲測量結果,使得某一錯誤節點的延遲評估結果過低。為了緩解測量節點的惡意行為對選舉階段造成的影響。ε-LE 會對M 進行對稱化清洗,并通過2f+1 分位采樣來評估每個節點,最終生成延遲評估結果向量l。具體過程為,當Mj,i 為+∞ 時,不對Mi,j 進行覆蓋,因為這表示節點j 尚未提交對節點i 的測量結果;此時若Mi,j 不為+∞ ,則更新Mj,i 為Mi,j。當Mj,i 與Mi,j 均不為+∞ 時,采用下述公式進行更新:
Mpi,pk = max(Mpi,leader(k),Mleader(k),pi)。(2)
隨后,ε-LE 對延遲評估向量l 進行更新。以更新第k 輪領導節點leader(k)的延遲評估信息為例,為進一步緩解拜占庭節點惡意匯報的影響,ε-LE 將M 中leader(k)對應的列向量元素升序排列,選擇第2f+ 1 個元素,記作latencyleader(k),根據下述公式對leader(k)的延遲評估信息進行更新:
lleader(k) = α·lleader(k) + (1 - α)·latencyleader(k), (3)
式中:α∈(0,1)為一個系統參數,用于對節點的歷史延遲評估信息進行加權。之所以選擇加權而不是平均延遲的原因是,希望在減小網絡波動帶來的誤差的同時,減弱相隔過遠的輪次延遲信息的影響,且能夠使網絡條件變好的穩定節點,在更短的輪次內消除歷史延遲的影響,從而被選為領導節點。
GetWeight 過程將延遲評估向量l 映射為各個節點的最終權重。節點的最終權重與其延遲評估結果負相關,即延遲越小的節點,權重越高。GetWeight 權重獲取算法如算法2 所示。
算法2 是一種最樸素的權重計算方法,該方法返回元素為二元元組(nodeid,weightnodeid )的有序列表;其中,元組的第一項為節點標識,第二項為節點權重,且數組中的元素按照weightnodeid 降序排列。weightnodeid 與lnodeid 負相關。該方法將最大延遲信息與節點延遲表現之差作為權重。因為各個節點維護相同的l,若latencyavg = 0,則說明不存在一個已被提交的塊,或僅有創世區塊被提交;否則當一個非創世區塊的區塊被確認時,其延遲信息也會被確認,從而被節點讀取,修改latencyavg;此時weighti 均為1,所有節點的權重相同。
此外,li = 0 意味著該節點還沒有被選為領導節點,或該節點提出的提案區塊還沒有被確認提交,此時將其延遲設為平均延遲,即權重為(MAXlatency -latencyavg),這樣做的原因有2 個:一方面,若直接設該節點的延遲為0,則將導致系統在前n 輪的領導選舉會幾乎遍歷全部節點,因為未被遍歷到的節點,其權重是最大的,從而使得系統在運行初期的表現會極差,尤其是當n 較大,且系統中網絡較差節點的數量較多時;另一方面,若設該節點的延遲為最大,則訪問到潛在更優節點的概率會過低,將使得系統收斂到較優節點的耗時可能會極大地增加。因此設置初始延遲為中間值,兼顧了系統的運行效率與收斂到較優節點的速度。
2. 4 選舉階段
在獲得了有序的節點權重數組weight 后,可以基于weight 進行領導選舉。本文的領導選舉方法基于ε-greedy 的思想。首先,各節點以輪次信息為隨機種子生成隨機數,以ε 的概率返回1,否則返回0。
coin ← rand(round,ε)。(4)
以round 為隨機種子,使得各節點在同一輪次能獲得相同的硬幣結果,進而保證后續領導選舉的一致性。rand 隨機過程以ε 的概率返回1,否則返回0。根據硬幣結果,獲得候選人列表:
當硬幣結果為0 時,即1-ε 的概率,選擇前f+1 個節點作為候選節點,而非具有最優表現的節點,原因是為了防止系統中心化,選舉結果收斂到唯一的節點。當硬幣結果為1 時,即ε 的概率,選擇后n-f-1 個節點作為候選人。前f+1 個節點稱為強節點,剩余的n-f-1 個節點稱為弱節點。
最后,ChooseLeader 是一個加權采樣過程,即是在候選節點列表candidates 中,根據輪次round 選擇一個節點作為領導節點。在經過上一輪的篩選后,candidates 要么是優勢節點的集合,要么是弱勢節點的集合。可以通過最近提交歷史與輪次信息來提高選舉結果的不易預測性,但由于選舉階段是不依賴額外網絡通信的,因此計算過程必須是確定性的,從而保證分布式計算選舉結果的一致性。
3 協議分析
3. 1 安全性與活性
ε-LE 的安全性和活性由共識協議所保證,只要底層共識協議的安全性與活性,則選舉的安全性和活性都不會受到影響。
在安全性方面,由于節點測量的延遲數據通過共識達成一致,使得在同一輪次下,各節點對當前集群其他節點延遲評估結果是一致的;評估階段采用對稱化清洗與2f+1 分位采樣使得拜占庭節點無法確定性地控制選舉結果,保證了ε-LE 的容錯性;而選舉階段是一個基于輪次的確定性過程,因此ε-LE選舉結果能夠保證一致性。
在活性方面,由于選舉階段不引入額外的消息交換,只要共識協議的活性不被破壞,每一輪領導選舉就可以根據輪次與維護的延遲信息向量選出唯一且一致的領導節點,因此系統活性同樣不會受到影響。
結合選舉方法,拜占庭節點可能選擇的攻擊方式是提前預測領導節點并發起攻擊。因為ε-LE 的選舉結果有1-ε 的概率為前f+1 個節點,因此攻擊者可能會對具有潛在更高權重的節點發起攻擊。然而,ε-LE 的選舉結果會依據最近提交的區塊,在上一個區塊被提交前無法確定性預測,因此攻擊者只有在2 個區塊生成的間隔進行確定性攻擊,這樣能夠恰好選擇到下一輪領導節點的概率將小于1-ε/f+1 ,且隨著系統規模的擴大,這個概率會逐漸變小。
3. 2 網絡感知與不易預測性
ε-LE 能夠對系統的網絡狀態進行感知。網絡感知的具體含義是系統能夠識別網絡條件更優的節點,并使其具有更高概率成為領導節點,從而提升共識效率;若節點網絡情況發生了變化,如網絡情況好的節點系統也能夠在有限的時間內發現并做出相應的改變。ε-LE 用生成QC 所需時間作為一個節點網絡情況的量化指標,原因在于QC 的生成代表一輪共識的結束與新一輪共識的開始,是影響共識效率的關鍵因素。生成QC 耗時更短的節點,意味著與該節點最近的n-f 個節點完成投票所需時間更短,即在共識層面上該節點在網絡中占據關鍵位置。
感知節點網絡變化的能力可以用系統中弱節點的被選中概率來衡量,原因在于對一個節點進行網絡感知,需要獲得其生成QC 的耗時,而節點只有被選為領導節點才有資格生成當輪的QC。不妨假設在一般情況下,各節點權重的相對大小不會發生改變。此時前f+1 個節點中,每個節點被選中的概率為1-ε/f+1 ,后n-f-1 個節點中,每個節點被選中的概率為ε/n-f-1 = ε2f。此時考慮單個較弱節點被選中的期望輪次E = 2f/ε ,其中ε∈(0,1),一般取0. 1 等較小的數值,代表系統以較低的概率探索(exploit)較弱節點。同時可以得到,第k 輪時該弱節點一直沒有被選為領導節點的概率為:
式中:Xi 為節點i 從未被選為領導節點的事件,k 為當前提交的輪次,f 為拜占庭節點數上限。根據ε與系統規模的不同,概率也會相應地變化。
圖2 對比了不同系統規模下,隨著輪次增加,節點未被選為領導節點的概率趨勢。從圖中可以看到,隨著輪次的增加,節點未被選中的概率逐漸趨于0。當f =32 時,系統規模n 至少為97,在第3 000 輪時,某一弱節點仍未被選為領導節點的概率為P(Xi round = 3 000)= (1-(0. 1/ 64) ) 3 000 ≈0. 91% 。不同于PoW[25]等基于證明的共識方法,BFT 共識協議的執行效率遠高于基于證明的共識方法,在實際應用中的輪次增長將會更快。因此,在節點的網絡情況將在有限的時間內被系統感知。
綜上,ε-LE 在不破壞底層共識協議安全性與活性的基礎上,通過網絡感知機制實現了共識領導節點選舉的一致性、有效性與適應性,基于采樣機制與ε-greedy 策略使得有限的錯誤節點無法完全控制選舉過程,保證了容錯性。
4 實驗驗證
ε-LE 適用于基于領導節點的BFT SMR 協議,本文在HotStuff 協議的基礎上對ε-LE 進行了實現。本節首先展示當節點延遲發生變化時協議選舉結果的變化,來展示其對動態網絡的適應性;然后,在資源受限的環境中部署共識系統,將它們組織成線性拓撲,并比較3 種選舉方法對共識系統吞吐量的影響;最后,在LAN 環境下對系統進行性能測試,驗證ε-LE 協議在一般條件下對共識系統性能的影響。
在第一個實驗中,共識系統部署在由交換機連接的4 臺服務器上;服務器配置為16 GB 內存和Ryzen3700X CPU;每臺服務器運行1 個共識節點,記作p1 、p2 、p3 、p4 。在初始配置中,節點之間的延遲幾乎相同(大約20 ms)。運行340 輪后,對p3 端口帶寬進行限制,這增加了p3 與其他節點之間的消息交換延遲(約80 ms)。每輪的領導節點選擇結果如圖3 所示。當節點啟動并初始化時,p4 略有延遲,由于3 個正常節點即可推進共識進程,因此在前50 輪中p4 沒有成為領導節點。當系統正常運行時,在340 輪之前,選舉結果是均勻分布的。經過340 輪后,可以看出,當p3 的延遲增加時,p3 在前幾輪中仍然多次成為領導節點,因為εLE 需要等待系統提交關于先前選舉的監控延遲,當延遲評估信息更新后,p3 被選為領導節點的概率下降。可以發現,p3 在延遲增加后的輪次中會偶爾成為領導節點,這是因為ε-LE 采用的ε-greedy 策略將嘗試對弱節點進行采樣,以便在網絡狀態改善時重新選舉。實驗統計了每個節點被選擇的次數,結果如圖4 所示。
在第2 個實驗中,共識系統以線性拓撲部署在4 個具有2 GB 內存和2 核Ryzen 3700X CPU 的服務器上,用于驗證ε-LE 在資源受限環境下的有效性。該實驗使用虛擬路由器來模擬真實環境中基于基站轉發的通信模式,并對不同工作負載下的3 種領導選舉方法進行了對比測試。
在線性拓撲中的節點從左到右依次標記為p1 、p2 、p3 、p4 。相鄰節點之間的延遲約為20 ms。由于消息轉發,p1 和p3 之間的延遲增加到大約40 ~50 ms。一條消息從p1 傳遞到p4 大約需要80 ms。由于系統由4 個節點組成,領導節點需要收集至少3 個投票消息才能形成QC。如果p1 是領導節點,它生成的QC 通常會包括p2 、p3 和它自己發送的選票。因此,p1 的延遲預期為40 ms,即p1 和p3 之間的消息延遲。當p2 成為領導節點時,它只需要直接收集鄰居的選票即可。因此p2 的預期延遲為20 ms,明顯小于p1 。由于對稱性,p3 和p4 的延遲分別與p2和p1 相同。
通過上面的分析,可以發現p2 和p3 就是該系統中相對的強節點。選擇p1 或p4 作為領導節點是最糟糕的選擇。采用領導節點固定為p1 時的吞吐量作為基準,在輪詢方法中,系統將依次選擇4 個節點作為領導節點,結果如圖5 所示。與最壞情況相比,輪詢方法的吞吐量提高了21% 。ε-LE 相比于輪詢方法的吞吐量進一步提升了23. 4% 。
ε-LE 在LAN 環境下對共識系統性能的影響如圖6 所示。結果表明,在LAN 等良好通信環境的情況下,ε-LE 帶來的額外開銷對性能的影響幾乎可以忽略不計。
5 結束語
本文提出了一種基于ε-greedy 策略的延遲感知領導選舉機制,通過對集群網絡狀態進行感知,當網絡波動時,ε-LE 會基于歷史延遲因子α 和ε 的配置,動態改變受影響節點的權重,在保證選舉結果一致性的前提下,使得能夠最小化集群共識延遲的節點有更高的概率成為領導節點,從而優化共識性能。
最后,本文在HotStuff 協議的基礎上對ε-LE 協議進行了實現與實驗,實驗結果表明ε-LE 有效地通過優化領導節點選擇實現了對共識吞吐量的提高。為進一步提高協議在實際生產環境中的實用性,將對不同網絡狀態下α 和ε 等系統參數的自適應調整開展持續研究。
參考文獻
[1] CASTRO M,LISKOV B. Practical Byzantine Fault Tolerance[C]∥ OSDI’99:Proceedings of the Third Symposium onOperating Systems Design and Implementation. New Orleans:USENIX Association,1999:173-186.
[2] YIN M F,MALKHI D,REITER M K,et al. HotStuff:BFTConsensus with Linearity and Responsiveness[C]∥ Proceedings of the 2019 ACM Symposium on Principles ofDistributed Computing. Toronto:ACM,2019:347-356.
[3] 翁越男,魏小平,劉洋,等. 一種基于區塊鏈的無人機集群協作監測框架設計[J]. 無線電工程,2022,52(7):1250-1259.
[4] CACHIN C,KURSAWE K,SHOUP V. Random Oracles inConstantinople:Practical Asynchronous Byzantine Agreement Using Cryptography[C]∥ Proceedings of the 19thACM Symposium on Principles of Distributed Computing.Portland:ACM,2000:123-132.
[5] CHEN J,MICALI S. Algorand[EB / OL]. (2016-07-05)[2023-11-22]. https:∥arxiv. org / abs / 1607. 01341.
[6] EISCHER M,DISTLER T. Latencyaware Leader Selectionfor Georeplicated Byzantine Faulttolerant Systems[C]∥2018 48th Annual IEEE / IFIP International Conference onDependable Systems and Networks Workshops (DSNW).Luxembourg:IEEE,2018:140-145.
[7] BERGER C,REISER H P,SOUSA J,et al. AWARE:Adaptive Widearea Replication for Fast and Resilient Byzantine Consensus[J]. IEEE Transactions on Dependableand Secure Computing,2020,19(3):1605-1620.
[8] NISCHWITZ M,ESCHE M,TSCHORSCH F. Raising theAWAREness of BFT Protocols for Soaring Network Delays[C]∥ 2022 IEEE 47th Conference on Local ComputerNetworks (LCN). Edmonton:IEEE,2022:387-390.
[9] SUTTON R S,BARTO A G. Reinforcement Learning:AnIntroduction[M]. Cambridge:MIT Press,1998.
[10] LAMPORT L. Time,Clocks,and the Ordering of Events ina Distributed System [J]. Communications of the ACM,1978,21(7):558-565.。
[11] PEASE M,SHOSTAK R,LAMPORT L. Reaching Agreement in the Presence of Faults[J]. Journal of the ACM(JACM),1980,27(2):228-234.
[12] SCHNEIDER F B. Implementing Faulttolerant ServicesUsing the State Machine Approach:A Tutorial[J]. ACMComputing Surveys (CSUR),1990,22(4):299-319.
[13] YANG L,PARK S J,ALIZADEH M,et al. DispersedLedger:Highthroughput Byzantine Consensus on VariableBandwidth Networks[C]∥19th USENIX Symposium onNetworked Systems Design and Implementation (NSDI22). Renton:USENIX Association,2022:493-512.
[14] MILLER A,XIA Y,CROMAN K,et al. The Honey Badgerof BFT Protocols [C]∥ Proceedings of the 2016 ACMSIGSAC Conference on Computer and CommunicationsSecurity. Vienna:ACM,2016:31-42.
[15] KOGIAS E K,JOVANOVIC P,GAILLY N,et al.Enhancing Bitcoin Security and Performance with StrongConsistency via Collective Signing[C]∥ Proceedings ofthe 25th USENIX Security Symposium. Austin:USENIXAssociation,2016:279-296.
[16] NEIHEISER R,MATOS M,RODRIGUES L. Kauri:Scalable BFT Consensus with Pipelined Treebased Dissemination and Aggregation [C ]∥ Proceedings of theACM SIGOPS 28th Symposium on Operating SystemsPrinciples. [S. l. ]:ACM,2021:35-48.
[17] FAVIER A,GUITTONNEAU N,ARANTES L,et al. Topology Aware Leader Election Algorithm for Dynamic Networks[C]∥ 2020 IEEE 25th Pacific Rim InternationalSymposium on Dependable Computing (PRDC). Perth:IEEE,2020:1-10.
[18] BESSANI A,SOUSA J,ALCHIERI E E P. State MachineReplication for the Masses with BFTSMART[C]∥201444th Annual IEEE / IFIP International Conference on Dependable Systems and Networks. Atlanta:IEEE,2014:355-362.
[19] VERONESE G S,CORREIA M,BESSANI A N,et al.EBAWA:Efficient Byzantine Agreement for WideareaNetworks[C]∥2010 IEEE 12th International Symposiumon High Assurance Systems Engineering. San Jose:IEEE,2010:10-19.
[20] AMIR Y,DANILOV C,DOLEV D,et al. Steward:ScalingByzantine Faulttolerant Replication to Wide AreaNetworks [J ]. IEEE Transactions on Dependable andSecure Computing,2008,7(1):80-93.
[21] LIU S Y,VUKOLIC′ M. Leader Set Selection for Lowlatency Georeplicated State Machine[J]. IEEE Transactions on Parallel and Distributed Systems,2016,28(7):1933-1946.
[22] DU J Q,SCIASCIA D,ELNIKETY S,et al. ClockRSM:Lowlatency Interdatacenter State Machine ReplicationUsing Loosely Synchronized Physical Clocks[C]∥201444th Annual IEEE / IFIP International Conference on Dependable Systems and Networks. Atlanta:IEEE,2014:343-354.
[23] NAVAROJ G I,JULIE E G,ROBINSON Y H. AdaptivePractical Byzantine Fault Tolerance Consensus Algorithmin Permission Blockchain Network [J ]. InternationalJournal of Web and Grid Services,2022,18(1):62-82.
[24] SOUSA J,BESSANI A. Separating the WHEAT from theChaff:An Empirical Design for Georeplicated State Machines[C]∥ 2015 IEEE 34th Symposium on ReliableDistributed Systems (SRDS ). Montreal:IEEE,2015:146-155.
[25] NAKAMOTO S. Bitcoin:A PeertoPeer Electronic CashSystem[EB / OL]. [2023 -11 -22]. https:∥bitcoin. org /bitcoin. pdf.
作者簡介
許津銘 男,(1999—),博士研究生。主要研究方向:分布式系統、區塊鏈。
蔡 亮 男,(1976—),博士,研究員。主要研究方向:區塊鏈、數據要素關鍵技術、元宇宙和信息安全。
孫 路 女,(1987—),碩士,工程師。主要研究方向:數據要素、區塊鏈技術應用。
尹可挺 男,(1982—),博士,副研究員。主要研究方向:區塊鏈、數據要素。