亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        具有監(jiān)督機(jī)制的高效拜占庭容錯(cuò)算法

        2021-09-26 10:43:36王日宏邢聰穎徐泉清袁杉杉
        關(guān)鍵詞:共識(shí)時(shí)延消息

        王日宏,邢聰穎,徐泉清,袁杉杉

        1.青島理工大學(xué) 信息與控制工程學(xué)院,山東 青島266520

        2.螞蟻金服,杭州310012

        隨著比特幣[1]的興起,區(qū)塊鏈技術(shù)也逐漸引起各界人士的興趣。區(qū)塊鏈綜合了密碼學(xué)、分布式等原理,具有去中心化、可追溯、不可篡改等特性[2]。共識(shí)機(jī)制作為區(qū)塊鏈技術(shù)不可或缺的環(huán)節(jié),決定著區(qū)塊鏈系統(tǒng)的安全性。全節(jié)點(diǎn)的交互不需要提前信任其他節(jié)點(diǎn),當(dāng)某節(jié)點(diǎn)提出區(qū)塊數(shù)據(jù)后,各節(jié)點(diǎn)通過既定的共識(shí)機(jī)制共同認(rèn)證和操作數(shù)據(jù),通過認(rèn)證的區(qū)塊將被加入到區(qū)塊鏈中。因此,共識(shí)機(jī)制在區(qū)塊鏈領(lǐng)域占據(jù)至關(guān)重要的位置。

        根據(jù)應(yīng)用場(chǎng)景及用戶需求不同,區(qū)塊鏈分為公有鏈、私有鏈以及聯(lián)盟鏈三種。私有鏈的網(wǎng)絡(luò)系統(tǒng)歸屬于特定的組織或機(jī)構(gòu),數(shù)據(jù)受限于這些弱中心化機(jī)構(gòu);公有鏈對(duì)中心化要求最高,允許節(jié)點(diǎn)參加鏈上數(shù)據(jù)的讀寫,并能夠自由進(jìn)出網(wǎng)絡(luò),其典型共識(shí)算法有工作量證明(Proof of Work,PoW)、權(quán)益證明(Proof of Stake,PoS)[3]以及授權(quán)股份證明(Delegated Proof of Stake,DPoS)[4]等。

        聯(lián)盟鏈中的節(jié)點(diǎn)是事先確定的,并且節(jié)點(diǎn)數(shù)量較為固定,節(jié)點(diǎn)信用度更高。聯(lián)盟鏈共識(shí)算法分為非拜占庭容錯(cuò)共識(shí)算法和拜占庭容錯(cuò)算法。前者主要應(yīng)用于系統(tǒng)存在故障,但是不存在惡意節(jié)點(diǎn)的場(chǎng)景,典型共識(shí)算法有Paxos[5]、Raft[6]等;后者應(yīng)用于偽造信息、惡意響應(yīng)的場(chǎng)景,在此種情境下,消息可能會(huì)被丟失、延遲、重放以及偽造等,典型共識(shí)算法有PBFT[7]、HotStuff BFT[8]等。即便是在信任度極高的聯(lián)盟鏈中,理論上并不能排除惡意節(jié)點(diǎn)或網(wǎng)絡(luò)環(huán)境導(dǎo)致的惡劣行為,況且現(xiàn)有的共識(shí)機(jī)制大都建立在特定理論假設(shè)情況下,例如PBFT共識(shí)算法適用于部分同步模式,其在異步模型下仍然面臨系統(tǒng)不協(xié)調(diào)情形[9]。雖然PBFT算法日趨成熟,但是算法仍然對(duì)網(wǎng)絡(luò)帶寬要求較高,帶寬隨節(jié)點(diǎn)數(shù)量的增加呈多項(xiàng)式級(jí)增長(zhǎng),本文就PBFT在算法效率和異步網(wǎng)絡(luò)環(huán)境中的實(shí)施問題做出研究,提出了一種高效監(jiān)督拜占庭容錯(cuò)算法ES-BFT。

        本文主要做出了以下貢獻(xiàn):

        (1)ES-BFT算法將網(wǎng)絡(luò)中的節(jié)點(diǎn)劃分為節(jié)點(diǎn)簇,并設(shè)置信譽(yù)值機(jī)制,通過信譽(yù)值從節(jié)點(diǎn)簇中劃分出共識(shí)節(jié)點(diǎn)與監(jiān)督節(jié)點(diǎn);共識(shí)節(jié)點(diǎn)執(zhí)行PBFT算法。節(jié)點(diǎn)的選取機(jī)制降低了網(wǎng)絡(luò)運(yùn)行的成本,減小了網(wǎng)絡(luò)帶寬的開銷,提升了算法的效率。

        (2)引入監(jiān)督機(jī)制,算法在PBFT的確認(rèn)階段向監(jiān)督節(jié)點(diǎn)發(fā)送共識(shí)節(jié)點(diǎn)狀態(tài),及時(shí)制止系統(tǒng)不協(xié)調(diào)情況的發(fā)生。當(dāng)滿足系統(tǒng)不協(xié)調(diào)條件時(shí),監(jiān)督節(jié)點(diǎn)觸發(fā)共識(shí)節(jié)點(diǎn)的狀態(tài)調(diào)整。

        (3)評(píng)估了ES-BFT算法,結(jié)果表明,它在效率(延遲和吞吐量)以及安全性上優(yōu)于PBFT算法。

        1 準(zhǔn)備知識(shí)

        1.1 區(qū)塊鏈基本架構(gòu)

        區(qū)塊鏈?zhǔn)菍?shí)現(xiàn)了數(shù)據(jù)公開、透明以及可追溯的架構(gòu)設(shè)計(jì)方法,其系統(tǒng)架構(gòu)[10]分為以下五層:數(shù)據(jù)層、網(wǎng)絡(luò)層、共識(shí)層、合約層、應(yīng)用層,如圖1所示。

        圖1 區(qū)塊鏈的層級(jí)架構(gòu)Fig.1 Hierarchical structure of blockchain

        各層分別支持不同的核心功能,層級(jí)之間合作支撐,實(shí)現(xiàn)去中心化。數(shù)據(jù)層主要描述了區(qū)塊鏈的底層數(shù)據(jù)結(jié)構(gòu);網(wǎng)絡(luò)層通過P2P網(wǎng)絡(luò)實(shí)現(xiàn)節(jié)點(diǎn)間的信息傳播及驗(yàn)證等;共識(shí)層包含各類共識(shí)算法及激勵(lì)機(jī)制,激勵(lì)機(jī)制負(fù)責(zé)制定相關(guān)獎(jiǎng)勵(lì)措施,主要用于公有鏈,在聯(lián)盟鏈中作用并不明顯;合約層編程規(guī)定區(qū)塊鏈的交易方式、流程細(xì)節(jié)等;應(yīng)用層涵蓋各類區(qū)塊鏈應(yīng)用。本文主要對(duì)網(wǎng)絡(luò)層和共識(shí)層進(jìn)行研究。

        1.2 主流共識(shí)算法

        區(qū)塊鏈共識(shí)算法不斷創(chuàng)新,經(jīng)典的PBFT算法雖然帶來了多項(xiàng)式級(jí)的算法突破,但仍然受到網(wǎng)絡(luò)模型、算法復(fù)雜度、傳播成本等的限制,因此專業(yè)人士在算法復(fù)雜度、容錯(cuò)能力以及網(wǎng)絡(luò)模型方面做出了改進(jìn):

        針對(duì)算法復(fù)雜度問題,MinBFT[11]通過可信執(zhí)行環(huán)境,將PBFT的三階段通信降為兩階段通信;SBFT[12]使用收集器降低通信量,同時(shí)使用門限簽名降低收集器消息規(guī)模和驗(yàn)證簽名總的開銷,將客戶端通信量由O(n)降到O(1)。

        針對(duì)容錯(cuò)能力問題,可信執(zhí)行環(huán)境的實(shí)施將部分算法(例如MinBFT、A2M[13])的容錯(cuò)能力提升為2f+1。

        針對(duì)網(wǎng)絡(luò)模型問題,(1)部分共識(shí)算法以優(yōu)化節(jié)點(diǎn)的選取為突破口,例如,BBFT[14]、BFT-DPOS[15]及DBFT[16],此類共識(shí)算法通過讓部分節(jié)點(diǎn)參與共識(shí),提高共識(shí)效率;LgTTBFT[17]共識(shí)算法提出LgTree節(jié)點(diǎn)路由算法,實(shí)現(xiàn)了高效的查找效率;(2)部分共識(shí)以網(wǎng)絡(luò)模型為突破口,Paxos、Hot-Stuff以及SBFT算法假設(shè)部分同步模式;OBFT[18]算法通過超時(shí)時(shí)間切換同步和部分同步網(wǎng)絡(luò)中的拜占庭容錯(cuò);MinBFT、HoneyBadger[19]等算法屬于異步共識(shí)算法;Wang從GST(Global Stabilization Time)到來之前的視角分析了PBFT算法的缺陷,PBFT算法可能面臨系統(tǒng)不協(xié)調(diào)的問題,在部分同步網(wǎng)絡(luò)下并不適用于公鏈或聯(lián)盟鏈。本文主要在PBFT網(wǎng)絡(luò)節(jié)點(diǎn)選取和網(wǎng)絡(luò)模型問題上做出研究。

        1.3 PBFT算法

        PBFT算法建立在假設(shè)部分同步模式下的拜占庭容錯(cuò)算法,即保證異步模式下的安全性(Safety)和同步模式下的活性(Liveness)。存在一個(gè)GST,在GST之后網(wǎng)絡(luò)變?yōu)橥骄W(wǎng)絡(luò)。

        PBFT是一種狀態(tài)機(jī)副本復(fù)制算法,所有副本在視圖v的輪轉(zhuǎn)過程中運(yùn)作,主節(jié)點(diǎn)由p=vmod ||R得出,其中v為視圖編號(hào),R為副本節(jié)點(diǎn)數(shù),p為主節(jié)點(diǎn)編號(hào)。同時(shí)通過超時(shí)機(jī)制檢測(cè)主節(jié)點(diǎn)狀態(tài),當(dāng)主節(jié)點(diǎn)出現(xiàn)問題,從節(jié)點(diǎn)觸發(fā)視圖切換機(jī)制。算法流程可以分為以下幾步:

        (1)客戶端向主節(jié)點(diǎn)發(fā)送請(qǐng)求。

        (2)主節(jié)點(diǎn)接收客戶端發(fā)來的請(qǐng)求,按順序?qū)φ?qǐng)求進(jìn)行排序,并廣播給從節(jié)點(diǎn)。

        (3)所有副本節(jié)點(diǎn)通過準(zhǔn)備和確認(rèn)階段兩兩進(jìn)行交互。

        (4)副本執(zhí)行請(qǐng)求并將結(jié)果返回給客戶端。

        (5)假設(shè)最大拜占庭節(jié)點(diǎn)數(shù)為f,因此客戶端需要等待f+1個(gè)不同節(jié)點(diǎn)返回的相同結(jié)果,才能達(dá)成共識(shí)。

        算法設(shè)置View Change協(xié)議來解決主節(jié)點(diǎn)作惡或宕機(jī)的情況,主要通過以下兩種方式:(1)副本節(jié)點(diǎn)通過檢查主節(jié)點(diǎn)分配的序號(hào)合法性判斷主節(jié)點(diǎn)狀態(tài),當(dāng)序號(hào)不合法時(shí),發(fā)起View Change協(xié)議;(2)客戶端設(shè)置超時(shí)機(jī)制檢測(cè)主節(jié)點(diǎn)掉線或作惡的問題,如果超時(shí),向所有副本節(jié)點(diǎn)廣播請(qǐng)求消息,副本節(jié)點(diǎn)發(fā)起View Change協(xié)議。

        2 ES-BFT算法設(shè)計(jì)

        2.1 算法介紹

        由于無法預(yù)知PBFT算法的GST到來時(shí)間,因此在GST之前,消息傳播不可靠,存在丟失(DoS攻擊)、被排序等風(fēng)險(xiǎn)。ES-BFT算法旨在解決PBFT算法的系統(tǒng)不協(xié)調(diào)問題。具體分析了ES-BFT算法的設(shè)計(jì)內(nèi)容,一是節(jié)點(diǎn)的選取,二是共識(shí)與監(jiān)督的過程。

        2.1.1 節(jié)點(diǎn)的選取

        (1)節(jié)點(diǎn)劃分

        眾所周知,DPoS共識(shí)機(jī)制是一種基于投票選舉的共識(shí)機(jī)制,投票者根據(jù)其持有的代幣量進(jìn)行投票,選出101個(gè)節(jié)點(diǎn)輪流執(zhí)行區(qū)塊鏈的記賬和上鏈等。本文將網(wǎng)絡(luò)中的節(jié)點(diǎn)隨機(jī)劃分為多個(gè)節(jié)點(diǎn)簇,借鑒DPOS的算法思想,對(duì)節(jié)點(diǎn)簇中信譽(yù)值級(jí)別為A的節(jié)點(diǎn)進(jìn)行選舉,選舉出的N個(gè)節(jié)點(diǎn)運(yùn)行PBFT共識(shí),剩余信譽(yù)值為A、B類的節(jié)點(diǎn)作為監(jiān)督節(jié)點(diǎn),監(jiān)督共識(shí)過程。共識(shí)節(jié)點(diǎn)的選取如圖2所示。

        圖2 共識(shí)節(jié)點(diǎn)的選取Fig.2 Selection of consensus nodes

        (2)信譽(yù)值等級(jí)劃分

        理想情況下所有節(jié)點(diǎn)都能及時(shí)完成共識(shí)過程中的任務(wù),但是在實(shí)際的網(wǎng)絡(luò)傳輸中,部分節(jié)點(diǎn)可能會(huì)出現(xiàn)宕機(jī)、不發(fā)或錯(cuò)發(fā)消息等問題,因此在共識(shí)過程引入節(jié)點(diǎn)計(jì)分制和懲罰制。共識(shí)過程根據(jù)節(jié)點(diǎn)行為產(chǎn)生信譽(yù)值計(jì)分,成功完成共識(shí)或監(jiān)督的節(jié)點(diǎn)加1分,共識(shí)過程中存在惡意或不作為行為的節(jié)點(diǎn)減5分,同時(shí)扣除一定份額的賬戶資金。懲罰機(jī)制的介入使節(jié)點(diǎn)作惡時(shí)不得不考慮成本問題,這在一定程度上提升了網(wǎng)絡(luò)的安全性。

        系統(tǒng)根據(jù)信譽(yù)值將節(jié)點(diǎn)等級(jí)劃分A、B、C三種,其中各級(jí)別的節(jié)點(diǎn)具有的權(quán)限如表1所示。

        表1 信譽(yù)值等級(jí)Table 1 Reputation rating

        A類節(jié)點(diǎn)均可擔(dān)任共識(shí)、監(jiān)督以及選舉節(jié)點(diǎn)三個(gè)角色。B類節(jié)點(diǎn)信譽(yù)值適中,可用于選舉共識(shí)節(jié)點(diǎn)、監(jiān)督共識(shí)過程。C類節(jié)點(diǎn)信譽(yù)值較低,只可參與投票給A類節(jié)點(diǎn)。

        2.1.2 共識(shí)與監(jiān)督過程

        (1)系統(tǒng)不協(xié)調(diào)狀態(tài)

        在GST之前,消息傳播不可靠,PBFT共識(shí)算法可能面臨系統(tǒng)不協(xié)調(diào)的風(fēng)險(xiǎn)。為方便理解,本文闡述了一種攻擊方法,假定系統(tǒng)存在1、2、3、4四個(gè)節(jié)點(diǎn),其中作惡的主節(jié)點(diǎn)編號(hào)為1。攻擊過程如圖3所示。

        圖3 攻擊過程Fig.3 Attack process

        預(yù)準(zhǔn)備階段:主節(jié)點(diǎn)1廣播PRE-PREPARE消息給節(jié)點(diǎn)1、2、3,但是不向4發(fā)送消息。

        確認(rèn)階段:主節(jié)點(diǎn)1向3發(fā)送COMMIT消息,但是不向節(jié)點(diǎn)2、4發(fā)送。

        實(shí)施以上攻擊之后,節(jié)點(diǎn)3正常進(jìn)行任務(wù)請(qǐng)求,并將結(jié)果返回給客戶端,但是節(jié)點(diǎn)2、4最多收到兩個(gè)COMMIT消息,因此節(jié)點(diǎn)1、2、4將不會(huì)執(zhí)行此任務(wù)??蛻舳私邮詹坏阶銐驍?shù)量的回復(fù),系統(tǒng)將啟動(dòng)View Change過程,但是由于誠(chéng)實(shí)節(jié)點(diǎn)2、3、4內(nèi)部狀態(tài)不一致,系統(tǒng)將處于不協(xié)調(diào)狀態(tài)。

        (2)算法流程

        ES-BFT算法分兩個(gè)過程,即共識(shí)過程和監(jiān)督過程,監(jiān)督過程與共識(shí)過程同時(shí)進(jìn)行。共識(shí)進(jìn)行過程中,監(jiān)督節(jié)點(diǎn)負(fù)責(zé)檢測(cè)系統(tǒng)不協(xié)調(diào)狀態(tài),當(dāng)系統(tǒng)出現(xiàn)不協(xié)調(diào)狀態(tài)導(dǎo)致共識(shí)無法完成時(shí),監(jiān)督節(jié)點(diǎn)發(fā)送清除狀態(tài)信息,系統(tǒng)進(jìn)入準(zhǔn)備階段重新共識(shí)。算法基本流程如圖4所示。

        圖4 共識(shí)流程圖Fig.4 Consensus flow chart

        (3)算法細(xì)節(jié)

        首先,算法選取N≥3f+1個(gè)A級(jí)信譽(yù)值節(jié)點(diǎn)為共識(shí)節(jié)點(diǎn),其中f為拜占庭節(jié)點(diǎn)數(shù),選取除共識(shí)節(jié)點(diǎn)外的剩余A、B級(jí)節(jié)點(diǎn)為監(jiān)督節(jié)點(diǎn),這里將監(jiān)督節(jié)點(diǎn)數(shù)量設(shè)置為M。其次,完成共識(shí)過程和監(jiān)督過程的搭建。共識(shí)開始時(shí),客戶端要向共識(shí)節(jié)點(diǎn)和監(jiān)督節(jié)點(diǎn)發(fā)送請(qǐng)求消息。其中,監(jiān)督節(jié)點(diǎn)接收客戶端消息是為了在清除狀態(tài)階段轉(zhuǎn)發(fā)客戶端消息,客戶端消息的轉(zhuǎn)發(fā)避免了節(jié)點(diǎn)與客戶端再次交互,提高消息傳播的效率。最后,在共識(shí)的回復(fù)階段,節(jié)點(diǎn)除了要向其他節(jié)點(diǎn)發(fā)送COMMIT消息以外,還要向監(jiān)督節(jié)點(diǎn)發(fā)送其在本輪共識(shí)收到的PREPARE和COMMIT消息集合。監(jiān)督節(jié)點(diǎn)對(duì)比各節(jié)點(diǎn)狀態(tài),滿足系統(tǒng)不協(xié)調(diào)條件時(shí),向共識(shí)節(jié)點(diǎn)廣播清除狀態(tài)信息,共識(shí)節(jié)點(diǎn)計(jì)數(shù)清除狀態(tài)信息的數(shù)量,如果超過2M/3,那么以當(dāng)前視圖及請(qǐng)求序號(hào)開始重新共識(shí)。這里的2M/3是根據(jù)PBFT共識(shí)準(zhǔn)備階段及確認(rèn)階段消息數(shù)2f+1推論得出。共識(shí)過程各消息格式表示如下:

        ES-BFT算法根據(jù)p=vmod ||R選取當(dāng)前輪次主節(jié)點(diǎn),其中v表示當(dāng)前視圖編號(hào),R為副本節(jié)點(diǎn)個(gè)數(shù),p表示主節(jié)點(diǎn)編號(hào)??蛻舳讼蚬沧R(shí)主節(jié)點(diǎn)和監(jiān)督節(jié)點(diǎn)廣播消息,其中o表示請(qǐng)求的操作,t表示時(shí)間戳,c表示客戶端,REQUEST包含消息內(nèi)容m和消息摘要d。

        預(yù)準(zhǔn)備階段:主節(jié)點(diǎn)在收到客戶端的請(qǐng)求消息后,首先驗(yàn)證客戶端請(qǐng)求消息簽名是否正確,如果驗(yàn)證成功,主節(jié)點(diǎn)需要為請(qǐng)求消息分配序號(hào),然后廣播一條<,m>消息給其他從節(jié)點(diǎn),其中v表示視圖編號(hào),n表示消息序號(hào),d表示消息摘要,m為消息內(nèi)容。主節(jié)點(diǎn)廣播預(yù)準(zhǔn)備消息內(nèi)容給從節(jié)點(diǎn)。

        準(zhǔn)備階段:從節(jié)點(diǎn)收到主節(jié)點(diǎn)的PRE-PR EPARE消息之后對(duì)消息內(nèi)容進(jìn)行校驗(yàn),校驗(yàn)通過,從節(jié)點(diǎn)向包括主節(jié)點(diǎn)在內(nèi)的其他節(jié)點(diǎn)廣播消息,其中i是當(dāng)前節(jié)點(diǎn)編號(hào)。副本在相應(yīng)的日志中記錄PR E-PREPARE和PREPARE消息,用于在View Change過程恢復(fù)未完成的請(qǐng)求。

        小麥從開花到成熟,進(jìn)入生育后期,一般從5月上旬到6月中旬,約30d。在這個(gè)時(shí)期主要工作是養(yǎng)根護(hù)葉,延長(zhǎng)上部葉片的綠色時(shí)間,防止早衰或貪青,?;ㄔ隽!⒋龠M(jìn)灌漿。

        確認(rèn)階段:主、從節(jié)點(diǎn)分別對(duì)接收到的PR EPARE消息進(jìn)行校驗(yàn)。當(dāng)節(jié)點(diǎn)i收到2f+1條校驗(yàn)通過的PR EPARE消息后,向包括主節(jié)點(diǎn)在內(nèi)的其他節(jié)點(diǎn)發(fā)送消息。節(jié)點(diǎn)將COMMIT消息記錄到日志中,用于View Change過程恢復(fù)未完成的請(qǐng)求。

        回復(fù)與監(jiān)督階段:首先進(jìn)行校驗(yàn),如果節(jié)點(diǎn)接收到2f+1條來自不同節(jié)點(diǎn)(包括自己)的COMMIT消息,則進(jìn)入回復(fù)階段?;貜?fù)階段主要進(jìn)行以下兩部分內(nèi)容:

        節(jié)點(diǎn)發(fā)送給客戶端,r為請(qǐng)求操作結(jié)果。當(dāng)客戶端收到f+1個(gè)由不同節(jié)點(diǎn)發(fā)來的相同的REPLY消息,共識(shí)達(dá)成并記錄。當(dāng)檢測(cè)到節(jié)點(diǎn)不能正常完成共識(shí)時(shí),客戶端考慮是否重新發(fā)送消息。

        節(jié)點(diǎn)在向客戶端回復(fù)的同時(shí)向監(jiān)督節(jié)點(diǎn)發(fā)送消息,其中,Pi表示節(jié)點(diǎn)i收到的PREPARE消息集合,Ci為節(jié)點(diǎn)i收到的COMMIT消息集合。Pi、Ci集合決定了監(jiān)督過程的進(jìn)行與否。當(dāng)集合中節(jié)點(diǎn)狀態(tài)呈現(xiàn)兩種相同狀態(tài)時(shí),系統(tǒng)處于不協(xié)調(diào)狀態(tài),監(jiān)督節(jié)點(diǎn)轉(zhuǎn)發(fā)清除狀態(tài)信息。

        當(dāng)S TATE消息集合中節(jié)點(diǎn)呈現(xiàn)兩種相同狀態(tài)時(shí),監(jiān)督節(jié)點(diǎn)對(duì)節(jié)點(diǎn)進(jìn)行計(jì)數(shù),如果計(jì)數(shù)值為2f+1,則向共識(shí)節(jié)點(diǎn)轉(zhuǎn)發(fā)清除狀態(tài)信息,清除狀態(tài)信息格式為,其中m為消息內(nèi)容,v為當(dāng)前視圖,n為當(dāng)前消息序列號(hào)。CLEARSTATE消息中包含的消息內(nèi)容能有效降低節(jié)點(diǎn)與客戶端的交互次數(shù)。當(dāng)共識(shí)節(jié)點(diǎn)接收到超過2M/3條CLEAR STATE消息,各節(jié)點(diǎn)進(jìn)入準(zhǔn)備階段重新共識(shí)。

        總的來說,一般情況下,View Change協(xié)議完全有能力解決共識(shí)失敗的問題,但是無法在系統(tǒng)不協(xié)調(diào)情況下做出解決。監(jiān)督機(jī)制的設(shè)立有效解決了GST到達(dá)之前的系統(tǒng)不協(xié)調(diào)問題。因此,對(duì)于一般狀態(tài),共識(shí)節(jié)點(diǎn)觸發(fā)View Change協(xié)議正常處理,監(jiān)督節(jié)點(diǎn)不做任何處理;而對(duì)于不協(xié)調(diào)狀態(tài),需要監(jiān)督節(jié)點(diǎn)輔助進(jìn)行共識(shí)。

        2.2 算法分析

        在PBFT算法中,隨著網(wǎng)絡(luò)中共識(shí)節(jié)點(diǎn)數(shù)量的增加,網(wǎng)絡(luò)對(duì)于帶寬的需求將以多項(xiàng)式級(jí)別增長(zhǎng),同時(shí),網(wǎng)絡(luò)節(jié)點(diǎn)的動(dòng)態(tài)增刪將導(dǎo)致網(wǎng)絡(luò)的多次初始化。如果要求所有加入網(wǎng)絡(luò)的節(jié)點(diǎn)參與共識(shí),不論是網(wǎng)絡(luò)帶寬的需求還是動(dòng)態(tài)性都將受到限制。ES-BFT算法使用DPoS算法選舉部分A類節(jié)點(diǎn)為共識(shí)節(jié)點(diǎn),減少了網(wǎng)絡(luò)中參與共識(shí)的節(jié)點(diǎn)數(shù)量,提升了共識(shí)網(wǎng)絡(luò)的穩(wěn)定性,有效降低了網(wǎng)絡(luò)對(duì)于帶寬的需求。共識(shí)節(jié)點(diǎn)需要有一定的網(wǎng)絡(luò)投票以及信譽(yù)值,因此共識(shí)節(jié)點(diǎn)出現(xiàn)拜占庭錯(cuò)誤的幾率會(huì)降低,從而在一定程度上保證了共識(shí)的安全性。

        監(jiān)督機(jī)制的設(shè)立能有效保證共識(shí)的安全性和活性,安全性要求所有誠(chéng)實(shí)節(jié)點(diǎn)會(huì)提交一致的共識(shí)結(jié)果,活性要求節(jié)點(diǎn)在一定的時(shí)間范圍內(nèi)達(dá)成共識(shí)。PBFT算法在安全性問題上已做出解決方案,這里不做分析。系統(tǒng)不協(xié)調(diào)狀態(tài)將導(dǎo)致共識(shí)和視圖更換階段難以進(jìn)行,監(jiān)督機(jī)制的設(shè)立恰巧避免了系統(tǒng)出現(xiàn)不協(xié)調(diào)的狀態(tài),因此能夠保證算法的活性。

        2.3 算法評(píng)估結(jié)果

        本節(jié)中,選擇通過go語言實(shí)現(xiàn)PBFT算法,并在PBFT算法基礎(chǔ)上作了改進(jìn),得到ES-BFT算法;為控制變量,實(shí)驗(yàn)建立在相同網(wǎng)絡(luò)環(huán)境中,不考慮節(jié)點(diǎn)會(huì)執(zhí)行其他服務(wù)的情況下,在本地開啟多節(jié)點(diǎn)模擬了ES-BFT算法、PBFT算法的共識(shí)過程;實(shí)驗(yàn)過程中記錄數(shù)據(jù)吞吐量、共識(shí)時(shí)延等數(shù)據(jù),最后通過對(duì)實(shí)驗(yàn)數(shù)據(jù)取平均值得出最終實(shí)驗(yàn)結(jié)果。實(shí)驗(yàn)表明,無論在吞吐量還是時(shí)延上,ESBFT都表現(xiàn)出優(yōu)異的性能,同時(shí)在系統(tǒng)不協(xié)調(diào)情況下,ES-BFT表現(xiàn)出不錯(cuò)的交易時(shí)延。測(cè)試環(huán)境配置如表2。

        表2 環(huán)境配置Table 2 Environment configuration

        2.3.1 數(shù)據(jù)吞吐量測(cè)試

        數(shù)據(jù)吞吐量表現(xiàn)為單位時(shí)間內(nèi)打包的交易數(shù),是反映共識(shí)算法性能的關(guān)鍵指標(biāo)。本次實(shí)驗(yàn)首先認(rèn)證在固定的網(wǎng)絡(luò)環(huán)境中,監(jiān)督節(jié)點(diǎn)的數(shù)量對(duì)數(shù)據(jù)吞吐量的影響。測(cè)試過程中,在本地開啟17個(gè)端口,其中分別選取4、7、10、13個(gè)端口作為監(jiān)督節(jié)點(diǎn),其余節(jié)點(diǎn)為共識(shí)節(jié)點(diǎn)。另開啟一個(gè)新端口作為客戶端節(jié)點(diǎn),客戶端節(jié)點(diǎn)向共識(shí)和監(jiān)督節(jié)點(diǎn)發(fā)送請(qǐng)求消息。每組測(cè)試分別記錄20組數(shù)據(jù),數(shù)據(jù)吞吐量測(cè)試結(jié)果取各組記錄平均值,測(cè)試結(jié)果如圖5。

        圖5 監(jiān)督節(jié)點(diǎn)數(shù)量對(duì)數(shù)據(jù)吞吐量的影響Fig.5 Impact of the number of monitoring nodes on data throughput

        圖5表明,隨網(wǎng)絡(luò)中監(jiān)督節(jié)點(diǎn)數(shù)量的增加,網(wǎng)絡(luò)中數(shù)據(jù)吞吐量有了迅速提升。因此可以得出,在同一網(wǎng)絡(luò)規(guī)模下,監(jiān)督節(jié)點(diǎn)的設(shè)置大大提升了數(shù)據(jù)吞吐量,監(jiān)督節(jié)點(diǎn)占比越高,數(shù)據(jù)吞吐量越高,監(jiān)督節(jié)點(diǎn)在一定程度上提升了數(shù)據(jù)的傳輸效率。

        為體現(xiàn)實(shí)驗(yàn)的一般性,選取典型的4個(gè)監(jiān)督節(jié)點(diǎn)進(jìn)行后續(xù)測(cè)試。在同樣的網(wǎng)絡(luò)環(huán)境下,設(shè)置8、12、16、20個(gè)端口,開啟一個(gè)客戶端節(jié)點(diǎn),分別對(duì)PBFT算法、ESBFT算法進(jìn)行吞吐量測(cè)試。每一輪進(jìn)行20次測(cè)試,最后統(tǒng)計(jì)平均數(shù)據(jù)吞吐量。測(cè)試結(jié)果如圖6。

        由圖6可以得出,網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)為8、12、16、20時(shí),ESBFT算法比PBFT算法在數(shù)據(jù)吞吐量上分別有125%、109.1%、69.7%、67.4%的提升。進(jìn)而表明,由于網(wǎng)絡(luò)中參與共識(shí)的節(jié)點(diǎn)規(guī)模變小,在同等規(guī)模的網(wǎng)絡(luò)環(huán)境中ES-BFT算法的數(shù)據(jù)吞吐量更高,算法更優(yōu)。

        圖6 ES-BFT算法與PBFT算法數(shù)據(jù)吞吐量對(duì)比圖Fig.6 Comparison of data throughput between ES-BFT algorithm and PBFT algorithm

        2.3.2 共識(shí)時(shí)延測(cè)試

        共識(shí)時(shí)延表現(xiàn)為請(qǐng)求發(fā)起到請(qǐng)求被寫入的時(shí)間間隔,是反映共識(shí)算法性能的又一關(guān)鍵指標(biāo)。在進(jìn)行兩種算法時(shí)延對(duì)比之前,實(shí)驗(yàn)測(cè)試了監(jiān)督節(jié)點(diǎn)數(shù)量對(duì)網(wǎng)絡(luò)時(shí)延的影響,選取17個(gè)網(wǎng)絡(luò)節(jié)點(diǎn),其中監(jiān)督節(jié)點(diǎn)數(shù)量分別為4、7、10、13。實(shí)驗(yàn)記錄從請(qǐng)求交易到交易提交的時(shí)間,每組節(jié)點(diǎn)進(jìn)行20次測(cè)試,測(cè)試結(jié)果選取測(cè)試平均值,測(cè)試結(jié)果如圖7。

        圖7 監(jiān)督節(jié)點(diǎn)數(shù)量對(duì)共識(shí)時(shí)延的影響Fig.7 Impact of the number of supervisory nodes on consensus delay

        圖7表明隨著監(jiān)督節(jié)點(diǎn)數(shù)量的增加,共識(shí)時(shí)延明顯縮短。因此在實(shí)際應(yīng)用中,可通過適當(dāng)降低共識(shí)節(jié)點(diǎn)的比例來提高共識(shí)效率。

        同數(shù)據(jù)吞吐量測(cè)試,本次測(cè)試首先開啟1個(gè)客戶端端口;其次,分別開啟了8、12、16和20個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)端口,并從中選取具有代表性的4個(gè)監(jiān)督節(jié)點(diǎn);最后,測(cè)試了在相同網(wǎng)絡(luò)環(huán)境、各節(jié)點(diǎn)不進(jìn)行任何服務(wù)情況下PBFT算法和ES-BFT算法的共識(shí)時(shí)延,同樣,每組測(cè)試各進(jìn)行20次,測(cè)試結(jié)果選取20組數(shù)的平均值。測(cè)試結(jié)果如圖8。

        由圖8的測(cè)試結(jié)果計(jì)算得出,實(shí)驗(yàn)節(jié)點(diǎn)數(shù)量一定的情況下,ES-BFT算法的共識(shí)時(shí)延比PBFT算法時(shí)延下降69.8%、45.3%、32.9%、39.4%。由此表明,ES-BFT算法在共識(shí)時(shí)延上較PBFT算法有更大的優(yōu)勢(shì),隨著節(jié)點(diǎn)數(shù)的增多,PBFT算法時(shí)延上升明顯,而ES-BFT算法時(shí)延相對(duì)穩(wěn)步上升。共識(shí)時(shí)延是算法性能的直接體現(xiàn),因此在不考慮網(wǎng)絡(luò)環(huán)境影響、節(jié)點(diǎn)任務(wù)的情況下,單純就共識(shí)算法性能一項(xiàng)來講,ES-BFT算法性能優(yōu)于PBFT算法。

        圖8 ES-BFT算法與PBFT算法共識(shí)時(shí)延對(duì)比Fig.8 Consensus delay comparison between ES-BFT algorithm and PBFT algorithm

        ES-BFT算法的監(jiān)督機(jī)制避免了在GST到達(dá)之前的系統(tǒng)不協(xié)調(diào)情況的發(fā)生,在一定程度上提升了共識(shí)算法的安全性。本次實(shí)驗(yàn)?zāi)M主節(jié)點(diǎn)作惡,為方便理解,以4個(gè)節(jié)點(diǎn)為例,將節(jié)點(diǎn)分組并編號(hào)為1、2、3、4,主節(jié)點(diǎn)1在預(yù)準(zhǔn)備階段向除4以外的其他節(jié)點(diǎn)發(fā)送消息,其他節(jié)點(diǎn)消息正常發(fā)送;在確認(rèn)階段,主節(jié)點(diǎn)向2發(fā)送消息,但是不向3、4發(fā)送;本次的模擬方法將使四組節(jié)點(diǎn)兩兩進(jìn)入相同狀態(tài),系統(tǒng)產(chǎn)生不協(xié)調(diào)情況。實(shí)驗(yàn)?zāi)M了監(jiān)督節(jié)點(diǎn)數(shù)為4,共識(shí)節(jié)點(diǎn)數(shù)分別為4、8、12、16的情形,每組節(jié)點(diǎn)記錄20組共識(shí)時(shí)延數(shù)據(jù),測(cè)試結(jié)果取各組平均數(shù),結(jié)果如圖9。

        圖9 系統(tǒng)不協(xié)調(diào)下的ES-BFT算法共識(shí)時(shí)延Fig.9 ES-BFT algorithm consensus delay under system inco-ordination

        圖9為系統(tǒng)不協(xié)調(diào)情境下ES-BFT算法在監(jiān)督機(jī)制下從系統(tǒng)不協(xié)調(diào)到再次共識(shí)的總時(shí)延,圖9表明,監(jiān)督機(jī)制的設(shè)計(jì)在有限時(shí)延內(nèi)有效避免了系統(tǒng)不協(xié)調(diào)導(dǎo)致的長(zhǎng)時(shí)間無法共識(shí)的情況。

        3 結(jié)束語

        ES-BFT算法提出了一種新的節(jié)點(diǎn)選取辦法和監(jiān)督機(jī)制。節(jié)點(diǎn)的劃片選取和信譽(yù)值機(jī)制不僅有效地提高了共識(shí)節(jié)點(diǎn)的隨機(jī)性與可信性,還提升了網(wǎng)絡(luò)的靈活性;監(jiān)督機(jī)制的設(shè)立成功避免了共識(shí)系統(tǒng)不協(xié)調(diào)的情況。實(shí)驗(yàn)進(jìn)一步認(rèn)證,監(jiān)督節(jié)點(diǎn)的使用提升了網(wǎng)絡(luò)的靈活性,在實(shí)際應(yīng)用中,用戶可根據(jù)需求選取監(jiān)督節(jié)點(diǎn)數(shù)量;節(jié)點(diǎn)選取和監(jiān)督機(jī)制的實(shí)施有效地提升了PBFT算法的共識(shí)效率和安全性。本文算法是在不考慮復(fù)雜的網(wǎng)絡(luò)環(huán)境以及網(wǎng)絡(luò)節(jié)點(diǎn)不進(jìn)行其他任務(wù)的條件下獲得的,以上限制條件值得在接下來的工作中進(jìn)行探索研究。

        猜你喜歡
        共識(shí)時(shí)延消息
        共識(shí) 共進(jìn) 共情 共學(xué):讓“溝通之花”綻放
        論思想共識(shí)凝聚的文化向度
        一張圖看5G消息
        商量出共識(shí)
        基于GCC-nearest時(shí)延估計(jì)的室內(nèi)聲源定位
        電子制作(2019年23期)2019-02-23 13:21:12
        基于改進(jìn)二次相關(guān)算法的TDOA時(shí)延估計(jì)
        FRFT在水聲信道時(shí)延頻移聯(lián)合估計(jì)中的應(yīng)用
        基于分段CEEMD降噪的時(shí)延估計(jì)研究
        別讓“PX共識(shí)”在爆炸中瓦解
        消息
        久久久久久久岛国免费观看| 中文字幕无线精品亚洲乱码一区 | 欧美喷潮系列在线观看| 久久国产亚洲中文字幕| 一区二区三区精品免费| 国产精品186在线观看在线播放 | 国产成人久久精品77777综合| 二区久久国产乱子伦免费精品| 亚洲视频观看一区二区| 中文字幕久久波多野结衣av不卡| a级特黄的片子| 亚洲Va中文字幕久久无码一区| 激情在线视频一区二区三区| 欲女在线一区二区三区| 久久99久久99精品中文字幕| 国产色噜噜| 男女啪啪免费视频网址| 国产在线视频一区二区天美蜜桃| 日韩一卡2卡3卡4卡新区亚洲| 最新无码国产在线播放| av网站一区二区三区| 成人自慰女黄网站免费大全| 色屁屁www影院免费观看入口| 国产精品青草久久久久婷婷| 9l国产自产一区二区三区| 日韩人妻中文无码一区二区| 福利视频一二三在线观看| 欧美高h视频| 99精品久久精品一区| 欧美亚洲国产一区二区三区| 色狠狠色狠狠综合一区| 亚洲一区二区三区在线| 白白白在线视频免费播放| 夜夜未满十八勿进的爽爽影院| 亚洲欧美国产日产综合不卡| 国产一区二区熟女精品免费| 成人午夜福利视频| 亚洲天堂在线播放| 国产精品一区二区黄色片| 亚洲s色大片在线观看| 国产美女在线精品免费观看网址|