摘 要:隨著區(qū)塊鏈的廣泛部署,無人協(xié)同等延遲敏感型的應(yīng)用對(duì)區(qū)塊鏈系統(tǒng)的低時(shí)延需求日益提高。在協(xié)同場景下,區(qū)塊鏈節(jié)點(diǎn)通常跨地域部署,節(jié)點(diǎn)異構(gòu)性較強(qiáng)。在基于領(lǐng)導(dǎo)節(jié)點(diǎn)的拜占庭容錯(cuò)(Byzantine Foult Tolerant,BFT) 共識(shí)協(xié)議中,不穩(wěn)定的或能力較差的領(lǐng)導(dǎo)節(jié)點(diǎn)將導(dǎo)致不必要的高延遲,并降低區(qū)塊鏈的可用性,特別是在資源有限的移動(dòng)或傳感器網(wǎng)絡(luò)下。針對(duì)上述問題,提出了ε-LE,一種帶有網(wǎng)絡(luò)感知的領(lǐng)導(dǎo)選舉方法,基于節(jié)點(diǎn)到領(lǐng)導(dǎo)節(jié)點(diǎn)的通信延遲測量結(jié)果,采用ε-greedy 策略對(duì)領(lǐng)導(dǎo)節(jié)點(diǎn)進(jìn)行選擇,使得當(dāng)前性能較優(yōu)或網(wǎng)絡(luò)中關(guān)鍵位置的節(jié)點(diǎn)具有更高概率成為領(lǐng)導(dǎo)節(jié)點(diǎn),從而優(yōu)化共識(shí)延遲。相較于AWARE 等方法,ε-LE 實(shí)現(xiàn)O (N) 的通信復(fù)雜度,更加適用于具備線性通信復(fù)雜度的共識(shí)協(xié)議。實(shí)驗(yàn)結(jié)果表明,ε-LE 能夠選擇可優(yōu)化集群共識(shí)延遲的節(jié)點(diǎn)作為領(lǐng)導(dǎo)節(jié)點(diǎn),在線性拓?fù)渚W(wǎng)絡(luò)中實(shí)現(xiàn)了約21% 的吞吐量提升。
關(guān)鍵詞:領(lǐng)導(dǎo)選舉;共識(shí);拜占庭容錯(cuò);延遲感知
中圖分類號(hào):TP319 文獻(xiàn)標(biāo)志碼:A 開放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(OSID):
文章編號(hào):1003-3106(2024)04-0826-09
0 引言
拜占庭容錯(cuò)(Byzantine Fault Tolerant,BFT)共識(shí)協(xié)議通?;跔顟B(tài)機(jī)復(fù)制(State Machine Replica-tion,SMR)范式用于構(gòu)建可靠分布式系統(tǒng)。近年來隨著區(qū)塊鏈等大規(guī)模分布式系統(tǒng)的部署,BFT SMR協(xié)議也重新得到了廣泛的研究。
在一個(gè)跨地域的分布式系統(tǒng)中,不同節(jié)點(diǎn)的狀態(tài)是非對(duì)稱的,即節(jié)點(diǎn)的計(jì)算能力、任務(wù)負(fù)載和節(jié)點(diǎn)間通信延遲存在顯著的差異。然而,傳統(tǒng)的BFTSMR 協(xié)議[1-2]通常是消息密集型的,并且由于認(rèn)證集合交集性質(zhì)被用于保證安全性,涉及大量的密碼學(xué)計(jì)算,使得共識(shí)協(xié)議的執(zhí)行占據(jù)了分布式系統(tǒng)延遲中的關(guān)鍵部分。在一些由許多移動(dòng)或傳感器節(jié)點(diǎn)組成的系統(tǒng)中,各節(jié)點(diǎn)的計(jì)算能力和帶寬容量有限,但這類系統(tǒng)通常用于支撐大規(guī)模延遲關(guān)鍵型應(yīng)用,即應(yīng)用對(duì)系統(tǒng)低延遲的需求較高,如無人協(xié)同[3]等。因此,這類系統(tǒng)的共識(shí)協(xié)議面臨著低延遲和可擴(kuò)展性的挑戰(zhàn)。
在基于領(lǐng)導(dǎo)節(jié)點(diǎn)的共識(shí)協(xié)議中,如HotStuff[2],存在一個(gè)節(jié)點(diǎn)具備與其他節(jié)點(diǎn)不對(duì)稱的身份,稱為領(lǐng)導(dǎo)節(jié)點(diǎn),該節(jié)點(diǎn)負(fù)責(zé)將外部客戶端的請(qǐng)求打包生成提案并廣播。當(dāng)領(lǐng)導(dǎo)節(jié)點(diǎn)收集到一定數(shù)量對(duì)該提案的投票后,生成對(duì)該提案的投票認(rèn)證集合(Quorum Certificate,QC),再次進(jìn)行廣播并推進(jìn)共識(shí)進(jìn)入下一個(gè)階段。因此,基于領(lǐng)導(dǎo)節(jié)點(diǎn)的共識(shí)協(xié)議性能表現(xiàn)依賴于認(rèn)證集合的構(gòu)建速度;一個(gè)脆弱的領(lǐng)導(dǎo)節(jié)點(diǎn)在資源受限的場景下會(huì)成為協(xié)議性能的瓶頸。
現(xiàn)有的領(lǐng)導(dǎo)選舉方式通常分為靜態(tài)或動(dòng)態(tài)2 種。在工程實(shí)踐中得到廣泛應(yīng)用的是靜態(tài)輪詢的方法,這種方法保證了領(lǐng)導(dǎo)選舉結(jié)果的公平性,但無法自適應(yīng)動(dòng)態(tài)的系統(tǒng)狀態(tài)。部分動(dòng)態(tài)選舉方法[4-5]更加關(guān)注安全性。近期一些相關(guān)的研究成果如ARCHER[6]、AWARE[7]通過監(jiān)控系統(tǒng)中的網(wǎng)絡(luò)消息延遲選擇領(lǐng)導(dǎo)節(jié)點(diǎn)。其中,ARCHER 測量客戶端到系統(tǒng)節(jié)點(diǎn)的延遲,而AWARE 更關(guān)注系統(tǒng)節(jié)點(diǎn)到節(jié)點(diǎn)間的通信延遲。然而,AWARE 是基于PBFT 的兩階段共識(shí)范式構(gòu)建的,可擴(kuò)展性較差。盡管Nischwitz 等[8]嘗試將AWARE 應(yīng)用于HotStuff,但實(shí)際并不適配HotStuff 的通信模式。
本文提出了一種基于ε-greedy 策略的領(lǐng)導(dǎo)選舉方法ε-LE。ε-LE 的框架包括2 個(gè)階段:監(jiān)控階段和選舉階段。監(jiān)控階段完成對(duì)集群節(jié)點(diǎn)的狀態(tài)監(jiān)測與評(píng)估,并借助共識(shí)協(xié)議本身的一致性性質(zhì)使得評(píng)估結(jié)果保持全局一致;選舉階段基于評(píng)估結(jié)果,基于ε-greedy 的思想[9]對(duì)領(lǐng)導(dǎo)節(jié)點(diǎn)進(jìn)行選擇,即以較高的概率(1-ε)選擇監(jiān)控結(jié)果較好的節(jié)點(diǎn),同時(shí)以ε的概率從監(jiān)控結(jié)果較差的節(jié)點(diǎn)中選擇領(lǐng)導(dǎo)節(jié)點(diǎn),從而保持對(duì)相對(duì)較差節(jié)點(diǎn)的觀測。在具體運(yùn)行的共識(shí)實(shí)例中,節(jié)點(diǎn)通過多輪消息傳遞達(dá)成一致;執(zhí)行ε-LE 協(xié)議完成對(duì)相應(yīng)領(lǐng)導(dǎo)節(jié)點(diǎn)的監(jiān)控,并更新統(tǒng)計(jì)信息狀態(tài)。在觸發(fā)領(lǐng)導(dǎo)節(jié)點(diǎn)更換時(shí),εLE 允許節(jié)點(diǎn)僅通過本地計(jì)算即可一致地決定下一輪的領(lǐng)導(dǎo)節(jié)點(diǎn)。只要共識(shí)的活性不被破壞,通過重復(fù)上述階段,系統(tǒng)能夠在不引入額外通信輪次開銷的前提下,持續(xù)地對(duì)節(jié)點(diǎn)延遲狀態(tài)進(jìn)行監(jiān)測與評(píng)估,從而實(shí)現(xiàn)帶有網(wǎng)絡(luò)感知能力的領(lǐng)導(dǎo)節(jié)點(diǎn)選舉方法。此外,ε-LE 還盡可能保證領(lǐng)導(dǎo)選舉結(jié)果的不易預(yù)測性,以進(jìn)一步提高系統(tǒng)的魯棒性。綜上,本文的主要貢獻(xiàn)有:
① 提出了ε-LE,一種基于ε-greedy 策略的延遲感知領(lǐng)導(dǎo)選舉方法,在基于領(lǐng)導(dǎo)節(jié)點(diǎn)的共識(shí)協(xié)議中,通過對(duì)節(jié)點(diǎn)和系統(tǒng)網(wǎng)絡(luò)狀態(tài)的感知,選擇較優(yōu)節(jié)點(diǎn)成為領(lǐng)導(dǎo)節(jié)點(diǎn),從而提高共識(shí)系統(tǒng)的性能表現(xiàn)。同時(shí),通過對(duì)ε-LE 分析與改進(jìn),提高其不易預(yù)測性,進(jìn)一步提高系統(tǒng)的魯棒性。
② 在HotStuff 協(xié)議上對(duì)ε-LE 進(jìn)行了實(shí)現(xiàn),并在資源受限的環(huán)境和多跳網(wǎng)絡(luò)下對(duì)ε-LE 進(jìn)行了實(shí)驗(yàn)測試。與原始選舉方法進(jìn)行比較,實(shí)驗(yàn)結(jié)果證明了ε-LE 的有效性。
1 相關(guān)工作
作為分布式系統(tǒng)的核心,共識(shí)問題[10-12]有超過40 年的研究歷史,旨在保證分布節(jié)點(diǎn)之間的一致性。在基于狀態(tài)機(jī)的分布式系統(tǒng)中,通常借助SMR協(xié)議解決SMR 問題,即節(jié)點(diǎn)直接對(duì)執(zhí)行的命令序列(可能是無限長的)順序達(dá)成一致。在系統(tǒng)集群規(guī)模確定的情況下,BFT 共識(shí)協(xié)議通常分為兩階段[13]:第一個(gè)階段是廣播階段,一個(gè)或多個(gè)[1,14]節(jié)點(diǎn)廣播提案;第二個(gè)是確定階段,節(jié)點(diǎn)通過多輪投票對(duì)提案進(jìn)行最終確認(rèn)與提交。
隨著區(qū)塊鏈技術(shù)的發(fā)展,近年來涌現(xiàn)了許多針對(duì)BFT 共識(shí)協(xié)議的優(yōu)化成果。現(xiàn)有的工作聚焦于減少確定階段所需的通信復(fù)雜度,比如HotStuff[2]實(shí)現(xiàn)了線性的通信復(fù)雜度。在如HotStuff 這種基于領(lǐng)導(dǎo)節(jié)點(diǎn)的協(xié)議中,通常會(huì)先選擇一個(gè)節(jié)點(diǎn)作為領(lǐng)導(dǎo)節(jié)點(diǎn),并且僅在發(fā)生系統(tǒng)超時(shí)或拜占庭行為時(shí)才替換領(lǐng)導(dǎo)節(jié)點(diǎn)。由于領(lǐng)導(dǎo)節(jié)點(diǎn)負(fù)責(zé)提案的廣播,其帶寬開銷和計(jì)算資源負(fù)載將顯著高于其他節(jié)點(diǎn),因此很容易成為共識(shí)吞吐量的瓶頸。而HotStuff 中這一問題尤為突出,因?yàn)椋龋铮簦樱簦酰妫?中節(jié)點(diǎn)的通信模式呈現(xiàn)星型拓?fù)?,由領(lǐng)導(dǎo)節(jié)點(diǎn)收集和轉(zhuǎn)發(fā)投票集合。因此,領(lǐng)導(dǎo)節(jié)點(diǎn)的選擇將顯著影響共識(shí)協(xié)議的性能;在節(jié)點(diǎn)資源受限的跨地理分布的系統(tǒng)中,上述問題更加顯著。
Byzcoin[15]和Kauri[16]等方法通過將集群通信拓?fù)涓臑闃錉钔負(fù)鋪砭徑忸I(lǐng)導(dǎo)節(jié)點(diǎn)的瓶頸。盡管Kauri 借助流水線優(yōu)化來減輕對(duì)吞吐量的負(fù)面影響,但這種方法將增加每個(gè)共識(shí)輪次的共識(shí)延遲,因?yàn)闃錉钔負(fù)鋾?huì)產(chǎn)生額外的通信輪次,從而增加完成單個(gè)廣播的延遲。這種方法難以滿足延遲關(guān)鍵型應(yīng)用中低延遲和實(shí)時(shí)性的需求。
選擇更好的領(lǐng)導(dǎo)節(jié)點(diǎn)是另一種比較自然的想法。領(lǐng)導(dǎo)選舉是分布式計(jì)算領(lǐng)域的經(jīng)典問題之一[17],也有許多對(duì)共識(shí)過程中的領(lǐng)導(dǎo)選舉進(jìn)行優(yōu)化的研究成果[6,18-23]。Dripple 和Droopy 通過協(xié)調(diào)狀態(tài)分區(qū)與動(dòng)態(tài)配置領(lǐng)導(dǎo)節(jié)點(diǎn)可選集合[21]來有效地降低跨地域分布式系統(tǒng)的延遲。另一種方法ARCHER[6]使用客戶端測量的端到端響應(yīng)時(shí)間來選擇BFT 系統(tǒng)的領(lǐng)導(dǎo)節(jié)點(diǎn),但是,為了防止錯(cuò)誤節(jié)點(diǎn)拖延常規(guī)共識(shí)消息,對(duì)探測的請(qǐng)求及時(shí)處理,從而降低測量準(zhǔn)確度,需要額外的輔助機(jī)制對(duì)測量過程進(jìn)行監(jiān)控。AWARE[7]根據(jù)節(jié)點(diǎn)到節(jié)點(diǎn)的延遲選擇領(lǐng)導(dǎo)節(jié)點(diǎn)并使用預(yù)測模型以最大限度地減少系統(tǒng)的共識(shí)延遲。Nischwitz 等[8]將AWARE 應(yīng)用于HotStuff時(shí)提出了進(jìn)一步的優(yōu)化,通過閾值機(jī)制,防止領(lǐng)導(dǎo)節(jié)點(diǎn)更換過于頻繁,引入學(xué)習(xí)因子對(duì)測量的節(jié)點(diǎn)到節(jié)點(diǎn)延遲進(jìn)行加權(quán)累加,而不是簡單地覆蓋。
然而,這些方法并不適合某些特定配置。首先,基于WHEAT[24]的AWARE 適用于具有全廣播通信模式的共識(shí)協(xié)議,可以在共識(shí)消息交換過程中實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)延遲的單方面測量。雖然AWARE 設(shè)計(jì)了主動(dòng)監(jiān)測的方法,但在帶寬、計(jì)算資源等資源有限的場景下,主動(dòng)監(jiān)測消息的發(fā)送和接收會(huì)帶來額外開銷。其次,在選舉階段,AWARE 根據(jù)清洗后的延遲矩陣模擬每個(gè)節(jié)點(diǎn)作為領(lǐng)導(dǎo)節(jié)點(diǎn)的共識(shí)延遲,并定期檢查是否有更好的節(jié)點(diǎn)來替換現(xiàn)有領(lǐng)導(dǎo)節(jié)點(diǎn);即使引入固定閾值,這種方法依然缺少靈活性;導(dǎo)致這一問題的原因是PBFT 和WHEAT 等協(xié)議包含復(fù)雜的視圖更改協(xié)議。當(dāng)視圖改變發(fā)生時(shí),系統(tǒng)執(zhí)行視圖改變協(xié)議,這將嚴(yán)重影響系統(tǒng)的性能??紤]到現(xiàn)有方法不匹配資源受限環(huán)境和延遲關(guān)鍵型應(yīng)用的需求,ε-LE 利用如HotStuff 這類具備線性視圖變化特點(diǎn)的共識(shí)協(xié)議,及時(shí)觸發(fā)視圖變更,實(shí)現(xiàn)了靈活、自適應(yīng)的選舉機(jī)制。
2 協(xié)議介紹
2. 1 系統(tǒng)模型
ε-LE 協(xié)議面向基于領(lǐng)導(dǎo)節(jié)點(diǎn)的BFT SMR 共識(shí)協(xié)議。盡管ε-LE 并不限定于某一具體的共識(shí)協(xié)議,為了簡化描述,后續(xù)描述將假設(shè)基于HotStuff 協(xié)議。
ε-LE 系統(tǒng)由n = 3f + 1 個(gè)節(jié)點(diǎn)組成,標(biāo)記為{p1 ,p2 ,…,pn },其中f 為系統(tǒng)中允許出現(xiàn)錯(cuò)誤節(jié)點(diǎn)的最大數(shù)量,即假設(shè)F 為錯(cuò)誤節(jié)點(diǎn)的集合,f≥ F 。因此整個(gè)系統(tǒng)由至少n-f 個(gè)正確節(jié)點(diǎn)與至多f 個(gè)錯(cuò)誤節(jié)點(diǎn)組成,其中錯(cuò)誤節(jié)點(diǎn)的行為可能是任意的,但其計(jì)算能力是有限的,即不能打破密碼學(xué)假設(shè)。錯(cuò)誤節(jié)點(diǎn)的攻擊行為包括發(fā)送錯(cuò)誤的信息或者不發(fā)送消息、盡可能地通過消息誤導(dǎo)其他節(jié)點(diǎn)或延遲消息發(fā)送等,在最差情況下,所有的錯(cuò)誤節(jié)點(diǎn)會(huì)被攻擊者組織協(xié)調(diào)以統(tǒng)一攻擊系統(tǒng)。
系統(tǒng)的網(wǎng)絡(luò)模型假設(shè)任意2 個(gè)節(jié)點(diǎn)間存在可靠的點(diǎn)對(duì)點(diǎn)網(wǎng)絡(luò)連接,即節(jié)點(diǎn)發(fā)出的消息最終能被指定接受方收到。網(wǎng)絡(luò)消息是可驗(yàn)證的,當(dāng)節(jié)點(diǎn)發(fā)送消息時(shí)會(huì)使用私鑰進(jìn)行簽名。假設(shè)錯(cuò)誤節(jié)點(diǎn)無法偽造正確節(jié)點(diǎn)的簽名,從而保證正確節(jié)點(diǎn)的消息無法被錯(cuò)誤節(jié)點(diǎn)偽造。ε-LE 采用半同步網(wǎng)絡(luò)模型[2],即存在一個(gè)已知上界Δ 和一個(gè)未知的全局穩(wěn)定時(shí)間(Global Stabilization Time,GST),在GST 后,任意2 個(gè)節(jié)點(diǎn)之間的消息傳遞將在Δ 時(shí)間內(nèi)完成。
在對(duì)系統(tǒng)模型進(jìn)行定義后,下一節(jié)將基于該模型對(duì)協(xié)議設(shè)計(jì)思路及性質(zhì)進(jìn)行介紹。
2. 2 問題分析與概述
在基于領(lǐng)導(dǎo)節(jié)點(diǎn)的共識(shí)協(xié)議中,領(lǐng)導(dǎo)選舉的過程是在每個(gè)共識(shí)實(shí)例開始時(shí)執(zhí)行的。每個(gè)節(jié)點(diǎn)執(zhí)行選舉協(xié)議并決定一個(gè)特定的節(jié)點(diǎn)作為當(dāng)前視圖的領(lǐng)導(dǎo)。
在介紹ε-LE 之前,本節(jié)首先就領(lǐng)導(dǎo)節(jié)點(diǎn)對(duì)共識(shí)進(jìn)度的影響及其原因進(jìn)行分析。以事件驅(qū)動(dòng)型Hot-Stuff 為例,該協(xié)議QC 生成過程如圖1 所示,其系統(tǒng)由4 個(gè)節(jié)點(diǎn)組成,記為p1 、p2 、p3 、p4 ;其中p1 、p2 、p3之間的網(wǎng)絡(luò)延遲相等,并且顯著低于它們與p4 之間的延遲。第k - 1 ~ k + 2 輪的領(lǐng)導(dǎo)節(jié)點(diǎn)分別是p1 、p2 、p3 、p4 。
每個(gè)領(lǐng)導(dǎo)節(jié)點(diǎn)只要收集到足夠的選票(紅色箭頭)并形成上一輪的QC,就會(huì)廣播自己的提案。因此,這些協(xié)議的性能取決于QC 形成的速度。QC 的大小根據(jù)共識(shí)配置而變化。在本例中,3 個(gè)投票消息可以形成一個(gè)QC。由于節(jié)點(diǎn)之間的消息傳輸延遲不同,不同節(jié)點(diǎn)作為領(lǐng)導(dǎo)節(jié)點(diǎn)時(shí)生成QC 的延遲也不同。由于QC 的大小通常小于節(jié)點(diǎn)總數(shù),因此即使是由誠實(shí)節(jié)點(diǎn)發(fā)送的一些投票也可能會(huì)被忽略(虛線箭頭)。顯然,若選擇p4 作為領(lǐng)導(dǎo)節(jié)點(diǎn),不僅會(huì)增加該輪QC 的生成時(shí)間,還會(huì)延遲下一輪的開始時(shí)間。
ε-LE 使用消息延遲作為評(píng)估副本的指標(biāo)。延遲不僅直接反映了消息傳遞系統(tǒng)中不同副本之間的網(wǎng)絡(luò)狀態(tài),還是進(jìn)程計(jì)算資源和工作負(fù)載的高級(jí)抽象。具有網(wǎng)絡(luò)感知能力的ε-LE 方法滿足以下性質(zhì)[6]:
① 一致性:任意正確節(jié)點(diǎn)將會(huì)在同一輪中輸出相同領(lǐng)導(dǎo)節(jié)點(diǎn);
② 容錯(cuò)性:有限的錯(cuò)誤節(jié)點(diǎn)無法完全控制選舉過程;
③ 有效性:領(lǐng)導(dǎo)節(jié)點(diǎn)的選舉結(jié)果能夠有效優(yōu)化平均共識(shí)延遲;
④ 適應(yīng)性:選舉方法能夠適應(yīng)動(dòng)態(tài)的網(wǎng)絡(luò)環(huán)境和工作負(fù)載,當(dāng)節(jié)點(diǎn)狀態(tài)發(fā)生變化時(shí),可以自適應(yīng)調(diào)整選舉結(jié)果。
首先給出領(lǐng)導(dǎo)選舉方法的整體流程,如算法1所示。
其中,第1 ~ 2 行是監(jiān)控階段,通過對(duì)共識(shí)消息的分析,更新節(jié)點(diǎn)狀態(tài)與權(quán)重;第3 ~ 10 行是采用εgreedy 策略,基于評(píng)估權(quán)重對(duì)指定輪次的領(lǐng)導(dǎo)節(jié)點(diǎn)進(jìn)行選擇。本方法結(jié)合具有線性視圖更換的共識(shí)協(xié)議特性,將領(lǐng)導(dǎo)節(jié)點(diǎn)的性能與狀態(tài)抽象為QC 構(gòu)建延遲,表示由該節(jié)點(diǎn)為領(lǐng)導(dǎo)節(jié)點(diǎn)時(shí),該輪共識(shí)所消耗的時(shí)間。
2. 3 監(jiān)控階段
在具有線性通信復(fù)雜度的共識(shí)協(xié)議中,普通節(jié)點(diǎn)在一般共識(shí)流程內(nèi)只會(huì)與領(lǐng)導(dǎo)節(jié)點(diǎn)發(fā)生消息交換。當(dāng)共識(shí)消息交換發(fā)生時(shí),節(jié)點(diǎn)將對(duì)領(lǐng)導(dǎo)節(jié)點(diǎn)的狀態(tài)進(jìn)行監(jiān)控,即執(zhí)行監(jiān)控階段。為簡化描述,記第k 輪領(lǐng)導(dǎo)節(jié)點(diǎn)為leader(k)。在監(jiān)控階段,節(jié)點(diǎn)通過單向測量獲得自身與被測節(jié)點(diǎn)之間的通信延遲信息。接下來本文將對(duì)單向測量的過程進(jìn)行介紹。節(jié)點(diǎn)pi 在向leader(k)發(fā)送投票的同時(shí),記錄其時(shí)間戳T1 ,記首次收到領(lǐng)導(dǎo)節(jié)點(diǎn)的回復(fù)時(shí)刻為T2 ,可以使用T2 -T1 作為鏈路延遲。如果超時(shí),延遲將被設(shè)置為超時(shí)參數(shù)MAXlatency 以表示超時(shí)。然后節(jié)點(diǎn)pi 提交相應(yīng)輪次對(duì)leader(k)的測量延遲latencypi,leader(k),k。
被測量的領(lǐng)導(dǎo)節(jié)點(diǎn)可能會(huì)表現(xiàn)拜占庭行為影響測量結(jié)果,比如提前回復(fù)測量請(qǐng)求使得自身測量延遲低于真實(shí)延遲,從而在選舉階段獲得優(yōu)勢。為了避免被測節(jié)點(diǎn)的惡意行為對(duì)監(jiān)控階段造成影響,ε-LE 引入挑戰(zhàn)機(jī)制,即測量節(jié)點(diǎn)pi 在發(fā)送投票時(shí)會(huì)附帶一個(gè)“挑戰(zhàn)”;被測節(jié)點(diǎn)leader(k)需要解決挑戰(zhàn)并將“答案”附帶在回復(fù)消息中。挑戰(zhàn)及答案的實(shí)現(xiàn)形式可以通過隨機(jī)數(shù)和簽名的方式實(shí)現(xiàn)。由于領(lǐng)導(dǎo)節(jié)點(diǎn)一旦收集到2f+1 個(gè)投票信息就會(huì)廣播回復(fù)消息,新的提案中可能會(huì)不包含對(duì)部分正確節(jié)點(diǎn)的回復(fù)。注意到領(lǐng)導(dǎo)節(jié)點(diǎn)可以確定哪些節(jié)點(diǎn)的挑戰(zhàn)沒有被回復(fù),因此它可以單獨(dú)將回復(fù)發(fā)送給對(duì)應(yīng)節(jié)點(diǎn)。在這種情況下,即使是拜占庭領(lǐng)導(dǎo)節(jié)點(diǎn)也無法占據(jù)更主導(dǎo)的地位,因?yàn)閷?duì)它來說最有利的行為是解決挑戰(zhàn)并立即回復(fù),否則相應(yīng)測量節(jié)點(diǎn)測得的延遲將增加并影響其后續(xù)評(píng)估結(jié)果。AWARE 中主動(dòng)監(jiān)測的方法在線性通信開銷的共識(shí)中,每輪引入額外的通信開銷復(fù)雜度為O(N2 );ε-LE 在單輪的共識(shí)中引入額外的通信開銷復(fù)雜度為O(N);通過共識(shí)消息的捎帶,實(shí)際上每輪只會(huì)增加由領(lǐng)導(dǎo)節(jié)點(diǎn)發(fā)送的至多f 條點(diǎn)對(duì)點(diǎn)回復(fù)消息。
在單向測量發(fā)生的過程中,假設(shè)發(fā)起測量的節(jié)點(diǎn)是正確節(jié)點(diǎn),否則測量是沒有意義的;因?yàn)樵讦牛蹋?中,單向測量的目的是使節(jié)點(diǎn)能夠獲得自身與領(lǐng)導(dǎo)節(jié)點(diǎn)的通信延遲,并通過共識(shí)與其他節(jié)點(diǎn)一致地共享;惡意節(jié)點(diǎn)可以簡單地省略該階段,并通過提交任意偽造的測量值來發(fā)起攻擊,而不需要在單向的測量階段進(jìn)行攻擊。為緩解惡意節(jié)點(diǎn)提交偽造測量值對(duì)領(lǐng)導(dǎo)選舉過程的影響,ε-LE 將對(duì)各節(jié)點(diǎn)通過共識(shí)提交的測量結(jié)果進(jìn)行進(jìn)一步的處理。
每個(gè)節(jié)點(diǎn)均會(huì)在本地維護(hù)延遲測量矩陣MN×N ,延遲評(píng)估向量l 與平均延遲latencyavg。其中,M 用于記錄已提交的測量延遲并輔助計(jì)算得到l。Mi,j表示測量節(jié)點(diǎn)i 測得的與被測節(jié)點(diǎn)j 之間的通信延遲,被初始化為:
li 表示節(jié)點(diǎn)i 的延遲評(píng)估信息,latencyavg 表示歷史領(lǐng)導(dǎo)節(jié)點(diǎn)被測得的平均延遲,l 與latencyavg 均初始化為0。當(dāng)f+1 個(gè)針對(duì)leader(k)在第k 輪的點(diǎn)對(duì)點(diǎn)延遲測量結(jié)果被提交時(shí),假設(shè)集合P 為提交該f+1 個(gè)測量結(jié)果的測量節(jié)點(diǎn)構(gòu)成的集合, P = f+1,批量更新Mpi,leader(k)為latencypi,leader(k),k,其中pi∈P。
提交單向測量結(jié)果的節(jié)點(diǎn)可能會(huì)表現(xiàn)拜占庭行為,從而影響后續(xù)選舉結(jié)果,比如提交低延遲測量結(jié)果,使得某一錯(cuò)誤節(jié)點(diǎn)的延遲評(píng)估結(jié)果過低。為了緩解測量節(jié)點(diǎn)的惡意行為對(duì)選舉階段造成的影響。ε-LE 會(huì)對(duì)M 進(jìn)行對(duì)稱化清洗,并通過2f+1 分位采樣來評(píng)估每個(gè)節(jié)點(diǎn),最終生成延遲評(píng)估結(jié)果向量l。具體過程為,當(dāng)Mj,i 為+∞ 時(shí),不對(duì)Mi,j 進(jìn)行覆蓋,因?yàn)檫@表示節(jié)點(diǎn)j 尚未提交對(duì)節(jié)點(diǎn)i 的測量結(jié)果;此時(shí)若Mi,j 不為+∞ ,則更新Mj,i 為Mi,j。當(dāng)Mj,i 與Mi,j 均不為+∞ 時(shí),采用下述公式進(jìn)行更新:
Mpi,pk = max(Mpi,leader(k),Mleader(k),pi)。(2)
隨后,ε-LE 對(duì)延遲評(píng)估向量l 進(jìn)行更新。以更新第k 輪領(lǐng)導(dǎo)節(jié)點(diǎn)leader(k)的延遲評(píng)估信息為例,為進(jìn)一步緩解拜占庭節(jié)點(diǎn)惡意匯報(bào)的影響,ε-LE 將M 中leader(k)對(duì)應(yīng)的列向量元素升序排列,選擇第2f+ 1 個(gè)元素,記作latencyleader(k),根據(jù)下述公式對(duì)leader(k)的延遲評(píng)估信息進(jìn)行更新:
lleader(k) = α·lleader(k) + (1 - α)·latencyleader(k), (3)
式中:α∈(0,1)為一個(gè)系統(tǒng)參數(shù),用于對(duì)節(jié)點(diǎn)的歷史延遲評(píng)估信息進(jìn)行加權(quán)。之所以選擇加權(quán)而不是平均延遲的原因是,希望在減小網(wǎng)絡(luò)波動(dòng)帶來的誤差的同時(shí),減弱相隔過遠(yuǎn)的輪次延遲信息的影響,且能夠使網(wǎng)絡(luò)條件變好的穩(wěn)定節(jié)點(diǎn),在更短的輪次內(nèi)消除歷史延遲的影響,從而被選為領(lǐng)導(dǎo)節(jié)點(diǎn)。
GetWeight 過程將延遲評(píng)估向量l 映射為各個(gè)節(jié)點(diǎn)的最終權(quán)重。節(jié)點(diǎn)的最終權(quán)重與其延遲評(píng)估結(jié)果負(fù)相關(guān),即延遲越小的節(jié)點(diǎn),權(quán)重越高。GetWeight 權(quán)重獲取算法如算法2 所示。
算法2 是一種最樸素的權(quán)重計(jì)算方法,該方法返回元素為二元元組(nodeid,weightnodeid )的有序列表;其中,元組的第一項(xiàng)為節(jié)點(diǎn)標(biāo)識(shí),第二項(xiàng)為節(jié)點(diǎn)權(quán)重,且數(shù)組中的元素按照weightnodeid 降序排列。weightnodeid 與lnodeid 負(fù)相關(guān)。該方法將最大延遲信息與節(jié)點(diǎn)延遲表現(xiàn)之差作為權(quán)重。因?yàn)楦鱾€(gè)節(jié)點(diǎn)維護(hù)相同的l,若latencyavg = 0,則說明不存在一個(gè)已被提交的塊,或僅有創(chuàng)世區(qū)塊被提交;否則當(dāng)一個(gè)非創(chuàng)世區(qū)塊的區(qū)塊被確認(rèn)時(shí),其延遲信息也會(huì)被確認(rèn),從而被節(jié)點(diǎn)讀取,修改latencyavg;此時(shí)weighti 均為1,所有節(jié)點(diǎn)的權(quán)重相同。
此外,li = 0 意味著該節(jié)點(diǎn)還沒有被選為領(lǐng)導(dǎo)節(jié)點(diǎn),或該節(jié)點(diǎn)提出的提案區(qū)塊還沒有被確認(rèn)提交,此時(shí)將其延遲設(shè)為平均延遲,即權(quán)重為(MAXlatency -latencyavg),這樣做的原因有2 個(gè):一方面,若直接設(shè)該節(jié)點(diǎn)的延遲為0,則將導(dǎo)致系統(tǒng)在前n 輪的領(lǐng)導(dǎo)選舉會(huì)幾乎遍歷全部節(jié)點(diǎn),因?yàn)槲幢槐闅v到的節(jié)點(diǎn),其權(quán)重是最大的,從而使得系統(tǒng)在運(yùn)行初期的表現(xiàn)會(huì)極差,尤其是當(dāng)n 較大,且系統(tǒng)中網(wǎng)絡(luò)較差節(jié)點(diǎn)的數(shù)量較多時(shí);另一方面,若設(shè)該節(jié)點(diǎn)的延遲為最大,則訪問到潛在更優(yōu)節(jié)點(diǎn)的概率會(huì)過低,將使得系統(tǒng)收斂到較優(yōu)節(jié)點(diǎn)的耗時(shí)可能會(huì)極大地增加。因此設(shè)置初始延遲為中間值,兼顧了系統(tǒng)的運(yùn)行效率與收斂到較優(yōu)節(jié)點(diǎn)的速度。
2. 4 選舉階段
在獲得了有序的節(jié)點(diǎn)權(quán)重?cái)?shù)組weight 后,可以基于weight 進(jìn)行領(lǐng)導(dǎo)選舉。本文的領(lǐng)導(dǎo)選舉方法基于ε-greedy 的思想。首先,各節(jié)點(diǎn)以輪次信息為隨機(jī)種子生成隨機(jī)數(shù),以ε 的概率返回1,否則返回0。
coin ← rand(round,ε)。(4)
以round 為隨機(jī)種子,使得各節(jié)點(diǎn)在同一輪次能獲得相同的硬幣結(jié)果,進(jìn)而保證后續(xù)領(lǐng)導(dǎo)選舉的一致性。rand 隨機(jī)過程以ε 的概率返回1,否則返回0。根據(jù)硬幣結(jié)果,獲得候選人列表:
當(dāng)硬幣結(jié)果為0 時(shí),即1-ε 的概率,選擇前f+1 個(gè)節(jié)點(diǎn)作為候選節(jié)點(diǎn),而非具有最優(yōu)表現(xiàn)的節(jié)點(diǎn),原因是為了防止系統(tǒng)中心化,選舉結(jié)果收斂到唯一的節(jié)點(diǎn)。當(dāng)硬幣結(jié)果為1 時(shí),即ε 的概率,選擇后n-f-1 個(gè)節(jié)點(diǎn)作為候選人。前f+1 個(gè)節(jié)點(diǎn)稱為強(qiáng)節(jié)點(diǎn),剩余的n-f-1 個(gè)節(jié)點(diǎn)稱為弱節(jié)點(diǎn)。
最后,ChooseLeader 是一個(gè)加權(quán)采樣過程,即是在候選節(jié)點(diǎn)列表candidates 中,根據(jù)輪次round 選擇一個(gè)節(jié)點(diǎn)作為領(lǐng)導(dǎo)節(jié)點(diǎn)。在經(jīng)過上一輪的篩選后,candidates 要么是優(yōu)勢節(jié)點(diǎn)的集合,要么是弱勢節(jié)點(diǎn)的集合??梢酝ㄟ^最近提交歷史與輪次信息來提高選舉結(jié)果的不易預(yù)測性,但由于選舉階段是不依賴額外網(wǎng)絡(luò)通信的,因此計(jì)算過程必須是確定性的,從而保證分布式計(jì)算選舉結(jié)果的一致性。
3 協(xié)議分析
3. 1 安全性與活性
ε-LE 的安全性和活性由共識(shí)協(xié)議所保證,只要底層共識(shí)協(xié)議的安全性與活性,則選舉的安全性和活性都不會(huì)受到影響。
在安全性方面,由于節(jié)點(diǎn)測量的延遲數(shù)據(jù)通過共識(shí)達(dá)成一致,使得在同一輪次下,各節(jié)點(diǎn)對(duì)當(dāng)前集群其他節(jié)點(diǎn)延遲評(píng)估結(jié)果是一致的;評(píng)估階段采用對(duì)稱化清洗與2f+1 分位采樣使得拜占庭節(jié)點(diǎn)無法確定性地控制選舉結(jié)果,保證了ε-LE 的容錯(cuò)性;而選舉階段是一個(gè)基于輪次的確定性過程,因此ε-LE選舉結(jié)果能夠保證一致性。
在活性方面,由于選舉階段不引入額外的消息交換,只要共識(shí)協(xié)議的活性不被破壞,每一輪領(lǐng)導(dǎo)選舉就可以根據(jù)輪次與維護(hù)的延遲信息向量選出唯一且一致的領(lǐng)導(dǎo)節(jié)點(diǎn),因此系統(tǒng)活性同樣不會(huì)受到影響。
結(jié)合選舉方法,拜占庭節(jié)點(diǎn)可能選擇的攻擊方式是提前預(yù)測領(lǐng)導(dǎo)節(jié)點(diǎn)并發(fā)起攻擊。因?yàn)棣?LE 的選舉結(jié)果有1-ε 的概率為前f+1 個(gè)節(jié)點(diǎn),因此攻擊者可能會(huì)對(duì)具有潛在更高權(quán)重的節(jié)點(diǎn)發(fā)起攻擊。然而,ε-LE 的選舉結(jié)果會(huì)依據(jù)最近提交的區(qū)塊,在上一個(gè)區(qū)塊被提交前無法確定性預(yù)測,因此攻擊者只有在2 個(gè)區(qū)塊生成的間隔進(jìn)行確定性攻擊,這樣能夠恰好選擇到下一輪領(lǐng)導(dǎo)節(jié)點(diǎn)的概率將小于1-ε/f+1 ,且隨著系統(tǒng)規(guī)模的擴(kuò)大,這個(gè)概率會(huì)逐漸變小。
3. 2 網(wǎng)絡(luò)感知與不易預(yù)測性
ε-LE 能夠?qū)ο到y(tǒng)的網(wǎng)絡(luò)狀態(tài)進(jìn)行感知。網(wǎng)絡(luò)感知的具體含義是系統(tǒng)能夠識(shí)別網(wǎng)絡(luò)條件更優(yōu)的節(jié)點(diǎn),并使其具有更高概率成為領(lǐng)導(dǎo)節(jié)點(diǎn),從而提升共識(shí)效率;若節(jié)點(diǎn)網(wǎng)絡(luò)情況發(fā)生了變化,如網(wǎng)絡(luò)情況好的節(jié)點(diǎn)系統(tǒng)也能夠在有限的時(shí)間內(nèi)發(fā)現(xiàn)并做出相應(yīng)的改變。ε-LE 用生成QC 所需時(shí)間作為一個(gè)節(jié)點(diǎn)網(wǎng)絡(luò)情況的量化指標(biāo),原因在于QC 的生成代表一輪共識(shí)的結(jié)束與新一輪共識(shí)的開始,是影響共識(shí)效率的關(guān)鍵因素。生成QC 耗時(shí)更短的節(jié)點(diǎn),意味著與該節(jié)點(diǎn)最近的n-f 個(gè)節(jié)點(diǎn)完成投票所需時(shí)間更短,即在共識(shí)層面上該節(jié)點(diǎn)在網(wǎng)絡(luò)中占據(jù)關(guān)鍵位置。
感知節(jié)點(diǎn)網(wǎng)絡(luò)變化的能力可以用系統(tǒng)中弱節(jié)點(diǎn)的被選中概率來衡量,原因在于對(duì)一個(gè)節(jié)點(diǎn)進(jìn)行網(wǎng)絡(luò)感知,需要獲得其生成QC 的耗時(shí),而節(jié)點(diǎn)只有被選為領(lǐng)導(dǎo)節(jié)點(diǎn)才有資格生成當(dāng)輪的QC。不妨假設(shè)在一般情況下,各節(jié)點(diǎn)權(quán)重的相對(duì)大小不會(huì)發(fā)生改變。此時(shí)前f+1 個(gè)節(jié)點(diǎn)中,每個(gè)節(jié)點(diǎn)被選中的概率為1-ε/f+1 ,后n-f-1 個(gè)節(jié)點(diǎn)中,每個(gè)節(jié)點(diǎn)被選中的概率為ε/n-f-1 = ε2f。此時(shí)考慮單個(gè)較弱節(jié)點(diǎn)被選中的期望輪次E = 2f/ε ,其中ε∈(0,1),一般?。埃?1 等較小的數(shù)值,代表系統(tǒng)以較低的概率探索(exploit)較弱節(jié)點(diǎn)。同時(shí)可以得到,第k 輪時(shí)該弱節(jié)點(diǎn)一直沒有被選為領(lǐng)導(dǎo)節(jié)點(diǎn)的概率為:
式中:Xi 為節(jié)點(diǎn)i 從未被選為領(lǐng)導(dǎo)節(jié)點(diǎn)的事件,k 為當(dāng)前提交的輪次,f 為拜占庭節(jié)點(diǎn)數(shù)上限。根據(jù)ε與系統(tǒng)規(guī)模的不同,概率也會(huì)相應(yīng)地變化。
圖2 對(duì)比了不同系統(tǒng)規(guī)模下,隨著輪次增加,節(jié)點(diǎn)未被選為領(lǐng)導(dǎo)節(jié)點(diǎn)的概率趨勢。從圖中可以看到,隨著輪次的增加,節(jié)點(diǎn)未被選中的概率逐漸趨于0。當(dāng)f =32 時(shí),系統(tǒng)規(guī)模n 至少為97,在第3 000 輪時(shí),某一弱節(jié)點(diǎn)仍未被選為領(lǐng)導(dǎo)節(jié)點(diǎn)的概率為P(Xi round = 3 000)= (1-(0. 1/ 64) ) 3 000 ≈0. 91% 。不同于PoW[25]等基于證明的共識(shí)方法,BFT 共識(shí)協(xié)議的執(zhí)行效率遠(yuǎn)高于基于證明的共識(shí)方法,在實(shí)際應(yīng)用中的輪次增長將會(huì)更快。因此,在節(jié)點(diǎn)的網(wǎng)絡(luò)情況將在有限的時(shí)間內(nèi)被系統(tǒng)感知。
綜上,ε-LE 在不破壞底層共識(shí)協(xié)議安全性與活性的基礎(chǔ)上,通過網(wǎng)絡(luò)感知機(jī)制實(shí)現(xiàn)了共識(shí)領(lǐng)導(dǎo)節(jié)點(diǎn)選舉的一致性、有效性與適應(yīng)性,基于采樣機(jī)制與ε-greedy 策略使得有限的錯(cuò)誤節(jié)點(diǎn)無法完全控制選舉過程,保證了容錯(cuò)性。
4 實(shí)驗(yàn)驗(yàn)證
ε-LE 適用于基于領(lǐng)導(dǎo)節(jié)點(diǎn)的BFT SMR 協(xié)議,本文在HotStuff 協(xié)議的基礎(chǔ)上對(duì)ε-LE 進(jìn)行了實(shí)現(xiàn)。本節(jié)首先展示當(dāng)節(jié)點(diǎn)延遲發(fā)生變化時(shí)協(xié)議選舉結(jié)果的變化,來展示其對(duì)動(dòng)態(tài)網(wǎng)絡(luò)的適應(yīng)性;然后,在資源受限的環(huán)境中部署共識(shí)系統(tǒng),將它們組織成線性拓?fù)?,并比較3 種選舉方法對(duì)共識(shí)系統(tǒng)吞吐量的影響;最后,在LAN 環(huán)境下對(duì)系統(tǒng)進(jìn)行性能測試,驗(yàn)證ε-LE 協(xié)議在一般條件下對(duì)共識(shí)系統(tǒng)性能的影響。
在第一個(gè)實(shí)驗(yàn)中,共識(shí)系統(tǒng)部署在由交換機(jī)連接的4 臺(tái)服務(wù)器上;服務(wù)器配置為16 GB 內(nèi)存和Ryzen3700X CPU;每臺(tái)服務(wù)器運(yùn)行1 個(gè)共識(shí)節(jié)點(diǎn),記作p1 、p2 、p3 、p4 。在初始配置中,節(jié)點(diǎn)之間的延遲幾乎相同(大約20 ms)。運(yùn)行340 輪后,對(duì)p3 端口帶寬進(jìn)行限制,這增加了p3 與其他節(jié)點(diǎn)之間的消息交換延遲(約80 ms)。每輪的領(lǐng)導(dǎo)節(jié)點(diǎn)選擇結(jié)果如圖3 所示。當(dāng)節(jié)點(diǎn)啟動(dòng)并初始化時(shí),p4 略有延遲,由于3 個(gè)正常節(jié)點(diǎn)即可推進(jìn)共識(shí)進(jìn)程,因此在前50 輪中p4 沒有成為領(lǐng)導(dǎo)節(jié)點(diǎn)。當(dāng)系統(tǒng)正常運(yùn)行時(shí),在340 輪之前,選舉結(jié)果是均勻分布的。經(jīng)過340 輪后,可以看出,當(dāng)p3 的延遲增加時(shí),p3 在前幾輪中仍然多次成為領(lǐng)導(dǎo)節(jié)點(diǎn),因?yàn)棣牛蹋?需要等待系統(tǒng)提交關(guān)于先前選舉的監(jiān)控延遲,當(dāng)延遲評(píng)估信息更新后,p3 被選為領(lǐng)導(dǎo)節(jié)點(diǎn)的概率下降??梢园l(fā)現(xiàn),p3 在延遲增加后的輪次中會(huì)偶爾成為領(lǐng)導(dǎo)節(jié)點(diǎn),這是因?yàn)棣?LE 采用的ε-greedy 策略將嘗試對(duì)弱節(jié)點(diǎn)進(jìn)行采樣,以便在網(wǎng)絡(luò)狀態(tài)改善時(shí)重新選舉。實(shí)驗(yàn)統(tǒng)計(jì)了每個(gè)節(jié)點(diǎn)被選擇的次數(shù),結(jié)果如圖4 所示。
在第2 個(gè)實(shí)驗(yàn)中,共識(shí)系統(tǒng)以線性拓?fù)洳渴鹪冢?個(gè)具有2 GB 內(nèi)存和2 核Ryzen 3700X CPU 的服務(wù)器上,用于驗(yàn)證ε-LE 在資源受限環(huán)境下的有效性。該實(shí)驗(yàn)使用虛擬路由器來模擬真實(shí)環(huán)境中基于基站轉(zhuǎn)發(fā)的通信模式,并對(duì)不同工作負(fù)載下的3 種領(lǐng)導(dǎo)選舉方法進(jìn)行了對(duì)比測試。
在線性拓?fù)渲械墓?jié)點(diǎn)從左到右依次標(biāo)記為p1 、p2 、p3 、p4 。相鄰節(jié)點(diǎn)之間的延遲約為20 ms。由于消息轉(zhuǎn)發(fā),p1 和p3 之間的延遲增加到大約40 ~50 ms。一條消息從p1 傳遞到p4 大約需要80 ms。由于系統(tǒng)由4 個(gè)節(jié)點(diǎn)組成,領(lǐng)導(dǎo)節(jié)點(diǎn)需要收集至少3 個(gè)投票消息才能形成QC。如果p1 是領(lǐng)導(dǎo)節(jié)點(diǎn),它生成的QC 通常會(huì)包括p2 、p3 和它自己發(fā)送的選票。因此,p1 的延遲預(yù)期為40 ms,即p1 和p3 之間的消息延遲。當(dāng)p2 成為領(lǐng)導(dǎo)節(jié)點(diǎn)時(shí),它只需要直接收集鄰居的選票即可。因此p2 的預(yù)期延遲為20 ms,明顯小于p1 。由于對(duì)稱性,p3 和p4 的延遲分別與p2和p1 相同。
通過上面的分析,可以發(fā)現(xiàn)p2 和p3 就是該系統(tǒng)中相對(duì)的強(qiáng)節(jié)點(diǎn)。選擇p1 或p4 作為領(lǐng)導(dǎo)節(jié)點(diǎn)是最糟糕的選擇。采用領(lǐng)導(dǎo)節(jié)點(diǎn)固定為p1 時(shí)的吞吐量作為基準(zhǔn),在輪詢方法中,系統(tǒng)將依次選擇4 個(gè)節(jié)點(diǎn)作為領(lǐng)導(dǎo)節(jié)點(diǎn),結(jié)果如圖5 所示。與最壞情況相比,輪詢方法的吞吐量提高了21% 。ε-LE 相比于輪詢方法的吞吐量進(jìn)一步提升了23. 4% 。
ε-LE 在LAN 環(huán)境下對(duì)共識(shí)系統(tǒng)性能的影響如圖6 所示。結(jié)果表明,在LAN 等良好通信環(huán)境的情況下,ε-LE 帶來的額外開銷對(duì)性能的影響幾乎可以忽略不計(jì)。
5 結(jié)束語
本文提出了一種基于ε-greedy 策略的延遲感知領(lǐng)導(dǎo)選舉機(jī)制,通過對(duì)集群網(wǎng)絡(luò)狀態(tài)進(jìn)行感知,當(dāng)網(wǎng)絡(luò)波動(dòng)時(shí),ε-LE 會(huì)基于歷史延遲因子α 和ε 的配置,動(dòng)態(tài)改變受影響節(jié)點(diǎn)的權(quán)重,在保證選舉結(jié)果一致性的前提下,使得能夠最小化集群共識(shí)延遲的節(jié)點(diǎn)有更高的概率成為領(lǐng)導(dǎo)節(jié)點(diǎn),從而優(yōu)化共識(shí)性能。
最后,本文在HotStuff 協(xié)議的基礎(chǔ)上對(duì)ε-LE 協(xié)議進(jìn)行了實(shí)現(xiàn)與實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果表明ε-LE 有效地通過優(yōu)化領(lǐng)導(dǎo)節(jié)點(diǎn)選擇實(shí)現(xiàn)了對(duì)共識(shí)吞吐量的提高。為進(jìn)一步提高協(xié)議在實(shí)際生產(chǎn)環(huán)境中的實(shí)用性,將對(duì)不同網(wǎng)絡(luò)狀態(tài)下α 和ε 等系統(tǒng)參數(shù)的自適應(yīng)調(diào)整開展持續(xù)研究。
參考文獻(xiàn)
[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] 翁越男,魏小平,劉洋,等. 一種基于區(qū)塊鏈的無人機(jī)集群協(xié)作監(jiān)測框架設(shè)計(jì)[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—),博士研究生。主要研究方向:分布式系統(tǒng)、區(qū)塊鏈。
蔡 亮 男,(1976—),博士,研究員。主要研究方向:區(qū)塊鏈、數(shù)據(jù)要素關(guān)鍵技術(shù)、元宇宙和信息安全。
孫 路 女,(1987—),碩士,工程師。主要研究方向:數(shù)據(jù)要素、區(qū)塊鏈技術(shù)應(yīng)用。
尹可挺 男,(1982—),博士,副研究員。主要研究方向:區(qū)塊鏈、數(shù)據(jù)要素。