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

        ?

        基于分組和信用分級的PBFT 共識算法改進(jìn)方案

        2023-11-18 03:32:36劉陜南張榮華劉長征
        計算機(jī)工程 2023年11期
        關(guān)鍵詞:拜占庭組內(nèi)共識

        劉陜南,張榮華,劉長征

        (石河子大學(xué) 信息科學(xué)與技術(shù)學(xué)院,新疆 石河子 832000)

        0 概述

        區(qū)塊鏈技術(shù)起源于比特幣,2008 年由中本聰提出。區(qū)塊鏈本質(zhì)上是一個分布式數(shù)據(jù)庫,具有去中心化、防篡改、可編程、可追溯等特點(diǎn)[1-2]。根據(jù)節(jié)點(diǎn)準(zhǔn)入機(jī)制的不同,區(qū)塊鏈一般分為公有鏈、私有鏈和聯(lián)盟鏈[3-4]。

        公有鏈如比特幣[5]和以太坊[6],對所有節(jié)點(diǎn)開放,是完全去中心化的。公有鏈上的節(jié)點(diǎn)可以自由地加入或退出[7],但隨著應(yīng)用場景的不斷擴(kuò)展,越來越多的領(lǐng)域需要區(qū)塊鏈來實(shí)現(xiàn)不完全的去中心化,因此,出現(xiàn)了私有鏈和聯(lián)盟鏈。私有鏈供個人使用,一般不對外開放,存在一定程度的中心化特點(diǎn),具有訪問權(quán)限可控、交易速度快、成本低等優(yōu)點(diǎn)[8-9]。聯(lián)盟鏈由一些組織共同維護(hù),通常每個節(jié)點(diǎn)都有一個相應(yīng)的實(shí)體組織,經(jīng)過身份驗(yàn)證和授權(quán)后,可以連接、訪問和提交信息,每個成員也可以賦予不同的數(shù)據(jù)權(quán)限,以實(shí)現(xiàn)多家公司或機(jī)構(gòu)的合作[10]。聯(lián)盟鏈具有成本低、效率高等優(yōu)點(diǎn),是當(dāng)前區(qū)塊鏈發(fā)展的主流方向。

        在區(qū)塊鏈系統(tǒng)中,如何通過一定的規(guī)則使每個節(jié)點(diǎn)保持?jǐn)?shù)據(jù)一致是一個核心問題,解決方法就是開發(fā)一種共識算法[11]。實(shí)用拜占庭容錯(Practical Byzantine Fault Tolerance,PBFT)算法是聯(lián)盟鏈中應(yīng)用較廣泛的共識算法,算法基于少數(shù)節(jié)點(diǎn)服從多數(shù)節(jié)點(diǎn)的原則,主節(jié)點(diǎn)發(fā)起提議,其他節(jié)點(diǎn)進(jìn)行確認(rèn),當(dāng)超過2/3 的節(jié)點(diǎn)確認(rèn)時,該提議通過[12]。這一方法的優(yōu)點(diǎn)是共識效率相對較高,容錯率接近1/3,然而,因?yàn)槠涫褂肅/S 架構(gòu),不能動態(tài)感知節(jié)點(diǎn)的數(shù)量,所以隨著節(jié)點(diǎn)數(shù)量的增加,性能急劇下降,不適用于大規(guī)模的動態(tài)網(wǎng)絡(luò),限制了區(qū)塊鏈技術(shù)在金融服務(wù)、供應(yīng)鏈管理、物聯(lián)網(wǎng)(IoT)[13]等領(lǐng)域的應(yīng)用。對此,很多學(xué)者提出了PBFT 的改進(jìn)算法。

        在PBFT 改進(jìn)算法中,共識節(jié)點(diǎn)按類型分組,形成具有相同特征的節(jié)點(diǎn)結(jié)構(gòu),更利于數(shù)據(jù)存儲和節(jié)點(diǎn)管理[14-16]。同時,將大量的節(jié)點(diǎn)劃分為多個共識集,能夠減小節(jié)點(diǎn)的規(guī)模,簡化共識的復(fù)雜性。文獻(xiàn)[17]提出了一種基于位置、可擴(kuò)展的PBFT 共識算法。固定節(jié)點(diǎn)比移動節(jié)點(diǎn)具有更強(qiáng)的計算能力,而且成為惡意節(jié)點(diǎn)的可能性非常小。該算法通過選擇一個固定可信的節(jié)點(diǎn)作為共識參與者,降低了共識開銷,保證了系統(tǒng)的安全性,但去中心化程度也大幅削減。文獻(xiàn)[18]提出了一種基于信用改進(jìn)的PBFT 共識算法CPBFT。該算法將原來的C/S 體系結(jié)構(gòu)更改為P2P 體系結(jié)構(gòu),減少了共識步驟,并引入了信用系數(shù),用投票方法來選擇主節(jié)點(diǎn),使節(jié)點(diǎn)被選為主節(jié)點(diǎn)的概率受到過去行為的影響。實(shí)驗(yàn)表明,與PBFT 算法相比,CPBFT 算法減少了數(shù)據(jù)傳輸量,提高了吞吐量。文獻(xiàn)[19-20]使用散列算法對一致性節(jié)點(diǎn)進(jìn)行分組,從而避免節(jié)點(diǎn)間的大量通信,降低網(wǎng)絡(luò)的通信復(fù)雜度,提高網(wǎng)絡(luò)的可擴(kuò)展性,但這一方法無法識別拜占庭節(jié)點(diǎn)。文獻(xiàn)[21]針對傳統(tǒng)拜占庭容錯算法通信開銷大、算法效率低等問題,提出了一種實(shí)用的拜占庭容錯算法S-PBFT。該算法增加了節(jié)點(diǎn)評分機(jī)制,將所有節(jié)點(diǎn)分為共識節(jié)點(diǎn)、候選節(jié)點(diǎn)和早期節(jié)點(diǎn),同時為了確保節(jié)點(diǎn)的可靠性,根據(jù)每個節(jié)點(diǎn)的行為動態(tài)改變節(jié)點(diǎn)評分。文獻(xiàn)[22]在PBFT 算法基礎(chǔ)上,添加了基于可驗(yàn)證隨機(jī)函數(shù)(VRF)的共識節(jié)點(diǎn)選舉算法,提出的EPBFT 更適用于動態(tài)網(wǎng)絡(luò)。雖然這些算法具有比PBFT 算法更好的性能,但它們都忽略了共識網(wǎng)絡(luò)的容錯性,而在實(shí)際應(yīng)用中,容錯能力越強(qiáng),算法的適用性就越強(qiáng)。

        本文在設(shè)計中考慮PBFT 算法的容錯性,提出節(jié)點(diǎn)分組策略和信用分級模型,以期在分布式網(wǎng)絡(luò)環(huán)境下,整個網(wǎng)絡(luò)仍然能達(dá)成正確和一致的共識,從而減少系統(tǒng)的通信開銷,同時,使用信用分級機(jī)制檢測拜占庭節(jié)點(diǎn),提高系統(tǒng)安全性。本文主要工作如下:

        1)優(yōu)化一致性協(xié)議,提出節(jié)點(diǎn)分組模型。以聯(lián)盟鏈的節(jié)點(diǎn)對管理節(jié)點(diǎn)的響應(yīng)速度作為分組依據(jù),先進(jìn)行組內(nèi)共識,管理節(jié)點(diǎn)帶著組內(nèi)共識的結(jié)果再參與組外共識,從而減少節(jié)點(diǎn)間的通信量,提高共識效率。

        2)提出一種信用分級機(jī)制。通過引入信用模型,對網(wǎng)絡(luò)中的共識節(jié)點(diǎn)分類,將節(jié)點(diǎn)劃分為管理節(jié)點(diǎn)、候選節(jié)點(diǎn)和普通節(jié)點(diǎn),提高信用值高的節(jié)點(diǎn)成為主節(jié)點(diǎn)的概率,從而減少惡意節(jié)點(diǎn)對系統(tǒng)的破壞,提高整個網(wǎng)絡(luò)的效率。

        3)搭建基于該改進(jìn)方案的仿真模擬與性能測試系統(tǒng),通過模擬實(shí)驗(yàn)證明方案的有效性以及可用性。

        1 PBFT 算法

        PBFT 算法被認(rèn)為是解決拜占庭問題的最佳算法之一,它有3 個角色:客戶端,主節(jié)點(diǎn),從節(jié)點(diǎn)??蛻舳颂峤皇聞?wù)請求后立即發(fā)送到主節(jié)點(diǎn),主節(jié)點(diǎn)在全網(wǎng)發(fā)起事務(wù)投票,從節(jié)點(diǎn)和主節(jié)點(diǎn)共同維護(hù)事務(wù)投票的有效性,主節(jié)點(diǎn)失效時將觸發(fā)視圖更改程序,選擇一個新的主節(jié)點(diǎn)。

        1.1 一致性協(xié)議

        PBFT 算法流程如圖1 所示。首先,客戶端C 向主節(jié)點(diǎn)0 發(fā)送一個消息m,主節(jié)點(diǎn)啟動PBFT 的5 段協(xié)議,即請求、預(yù)準(zhǔn)備、準(zhǔn)備、提交和回復(fù)。在圖1中,C 表示客戶端節(jié)點(diǎn),0~3 為共識節(jié)點(diǎn),其中,0 表示主節(jié)點(diǎn),3 表示故障節(jié)點(diǎn)。

        1)請求階段??蛻舳斯?jié)點(diǎn)生成消息摘要,添加請求操作o、時間戳t構(gòu)造請求。完成簽名后,將σC發(fā)送到主節(jié)點(diǎn)。

        2)預(yù)準(zhǔn)備階段。主節(jié)點(diǎn)接收到消息后,構(gòu)造<σ0,m>并廣播給從節(jié)點(diǎn),從節(jié)點(diǎn)判斷是否滿足以下內(nèi)容,若滿足則接收消息:(1)消息摘要d與m生成的摘要是否一致;(2)接收到的消息中的v與當(dāng)前視圖是否一致;(3)本地是否接收到相同n和v但不同d的消息。

        3)準(zhǔn)備階段。從節(jié)點(diǎn)接收預(yù)準(zhǔn)備信息,進(jìn)入準(zhǔn)備階段,向其他節(jié)點(diǎn)廣播消息σi,節(jié)點(diǎn)收到準(zhǔn)備消息驗(yàn)證是否符合以下要求,接收3f+1 個(包括其自身)消息即可進(jìn)入提交階段:(1)準(zhǔn)備消息簽名是否正確;(2)當(dāng)前節(jié)點(diǎn)是否收到相同v、n但不同簽名的消息;(3)判斷當(dāng)前節(jié)點(diǎn)生成的摘要是否與d一致。

        4)提交階段。提交階段需要廣播σi,其他節(jié)點(diǎn)判斷:(1)接收到的消息簽名是否正確;(2)當(dāng)前節(jié)點(diǎn)在一個v下是否沒有接收到同一個n;(3)當(dāng)前節(jié)點(diǎn)生成的信息摘要是否與收到的d一致。

        5)回復(fù)階段。當(dāng)前節(jié)點(diǎn)收到2f+1 個(包括其自身)提交后,將消息記錄到本地日志中并回復(fù)客戶端??蛻舳薈 收到回復(fù)后,整個網(wǎng)絡(luò)達(dá)成共識,消息提交到本地數(shù)據(jù)庫。

        1.2 PBFT 算法容錯性

        PBFT 算法可以容忍不超過(N-1)/3 個惡意或故障節(jié)點(diǎn)(N為節(jié)點(diǎn)總數(shù)),式(1)如果有f個惡意節(jié)點(diǎn),正常節(jié)點(diǎn)的數(shù)量至少為f+1 個,節(jié)點(diǎn)總數(shù)至少為2f+1 個,才能讓系統(tǒng)正常運(yùn)轉(zhuǎn)。式(2)如果存在極端情況,有f個惡意節(jié)點(diǎn)以及f個故障節(jié)點(diǎn),要保證系統(tǒng)能順利達(dá)成共識,節(jié)點(diǎn)總數(shù)至少為3f+1 個。

        1.3 PBFT 算法存在的缺陷

        雖然PBFT 算法在聯(lián)盟鏈中得到了廣泛的應(yīng)用,但是仍然存在很多問題[23],例如:主節(jié)點(diǎn)的選取存在安全風(fēng)險。如果多次選擇惡意節(jié)點(diǎn)作為主節(jié)點(diǎn),共識效率將顯著降低,從而浪費(fèi)系統(tǒng)資源,降低系統(tǒng)的穩(wěn)定性和可靠性;客戶端只向主節(jié)點(diǎn)發(fā)送請求,當(dāng)請求太多時會給主節(jié)點(diǎn)帶來太多的負(fù)擔(dān),不適合區(qū)塊鏈的P2P 網(wǎng)絡(luò)環(huán)境;算法可伸縮性較差,網(wǎng)絡(luò)通信開銷較高,需要進(jìn)行3 次廣播通信來實(shí)現(xiàn)異步模式下的安全性,消耗了大量的資源;算法動態(tài)性較差,沒有完善的節(jié)點(diǎn)加入和退出機(jī)制,節(jié)點(diǎn)加入和退出時,整個網(wǎng)絡(luò)需要重啟,開銷較大。

        2 CBFT 共識算法

        CBFT 算法是一種安全高效的拜占庭容錯共識算法,其相比PBFT 算法主要引入了2 個新的階段:一個是分組策略,另一個為信用模型。分組策略將大量節(jié)點(diǎn)劃分為多個組,以減少共識節(jié)點(diǎn)的規(guī)模,簡化共識的復(fù)雜性;信用模型選擇節(jié)點(diǎn)信用值作為主要參考,將信用值較高的節(jié)點(diǎn)作為管理節(jié)點(diǎn),可以有效降低管理節(jié)點(diǎn)是拜占庭節(jié)點(diǎn)的概率,從而減小系統(tǒng)開銷,提高共識效率。CBFT 共識流程如圖2所示。

        圖2 CBFT 共識流程Fig.2 CBFT consensus procedure

        2.1 分組策略

        基于節(jié)點(diǎn)之間的響應(yīng)速度設(shè)計分組策略,以最大限度地提高各節(jié)點(diǎn)間的通信效率。具體步驟如下:

        1)利用節(jié)點(diǎn)加入聯(lián)盟鏈的身份驗(yàn)證機(jī)制,隨機(jī)選取m個節(jié)點(diǎn)作為初始管理節(jié)點(diǎn),以其余節(jié)點(diǎn)對管理節(jié)點(diǎn)的響應(yīng)速度作為分組依據(jù),將節(jié)點(diǎn)劃分為G個共識集。

        2)管理節(jié)點(diǎn)i檢查組內(nèi)成員列表Gi,判斷節(jié)點(diǎn)數(shù)量是否大于Nmax:若節(jié)點(diǎn)數(shù)量大于Nmax,則不再允許組內(nèi)加入新節(jié)點(diǎn);若節(jié)點(diǎn)數(shù)量小于Nmax,則廣播接收成員消息σi,其中,Nmax為組內(nèi)允許的最大節(jié)點(diǎn)數(shù),t1為計時器,Gi為當(dāng)前組內(nèi)包含的節(jié)點(diǎn)列表,σi是管理節(jié)點(diǎn)i的簽名。

        3)節(jié)點(diǎn)x收到管理節(jié)點(diǎn)的廣播消息后,驗(yàn)證消息簽名是否正確,無誤則向管理節(jié)點(diǎn)發(fā)起入組申請σx。

        4)管理節(jié)點(diǎn)收到入組申請,驗(yàn)證無誤,將節(jié)點(diǎn)x加入組內(nèi)成員列表Gi并向其發(fā)送消息確認(rèn)σi。

        5)分組結(jié)束,管理節(jié)點(diǎn)廣播各自的小組列表Gi,若驗(yàn)證無誤,將該信息下發(fā)至各組內(nèi)成員,完成分組確認(rèn)。

        管理節(jié)點(diǎn)是組內(nèi)信用值最高的節(jié)點(diǎn),其作為本組的委托代理節(jié)點(diǎn)參與全局共識。因此,經(jīng)過一輪共識后,更新節(jié)點(diǎn)信用值,根據(jù)節(jié)點(diǎn)的新信用值選擇一個新的管理節(jié)點(diǎn),并按上述流程重新分組。

        針對PBFT 中節(jié)點(diǎn)不能動態(tài)連接的問題,CBFT建立了節(jié)點(diǎn)準(zhǔn)入與退出機(jī)制。準(zhǔn)入與退出機(jī)制可以使授權(quán)節(jié)點(diǎn)在不影響系統(tǒng)結(jié)構(gòu)的情況下動態(tài)加入共識網(wǎng)絡(luò),如圖3 所示。

        圖3 新節(jié)點(diǎn)入組過程Fig.3 New node entry process

        1)節(jié)點(diǎn)準(zhǔn)入機(jī)制。當(dāng)新節(jié)點(diǎn)要加入網(wǎng)絡(luò)時,首先尋找最近的管理節(jié)點(diǎn),向周圍節(jié)點(diǎn)發(fā)送搜尋請求,節(jié)點(diǎn)將管理節(jié)點(diǎn)的信息轉(zhuǎn)發(fā)給新節(jié)點(diǎn)并附帶時間戳,對比時間戳,向先收到回復(fù)的節(jié)點(diǎn)的管理節(jié)點(diǎn)發(fā)送入組申請,管理節(jié)點(diǎn)需要將新節(jié)點(diǎn)信息添加至組內(nèi)成員列表,并向新節(jié)點(diǎn)提供組內(nèi)其他節(jié)點(diǎn)的信息,則新節(jié)點(diǎn)加入網(wǎng)絡(luò)完成。新節(jié)點(diǎn)進(jìn)入網(wǎng)絡(luò)后為普通節(jié)點(diǎn),不參與共識,只接收共識結(jié)果。

        2)節(jié)點(diǎn)退出機(jī)制。若退出網(wǎng)絡(luò)的為管理節(jié)點(diǎn),首先要廣播消息將身份降為候選節(jié)點(diǎn),等待新的管理節(jié)點(diǎn)選舉成功,然后向管理節(jié)點(diǎn)報告退出;若是候選節(jié)點(diǎn)或普通節(jié)點(diǎn)退出網(wǎng)絡(luò),則直接向管理節(jié)點(diǎn)提出申請即可。

        2.2 信用模型

        PBFT 算法根據(jù)公式p=vmodN按順序確定主節(jié)點(diǎn),異常節(jié)點(diǎn)很可能被選為主節(jié)點(diǎn),影響系統(tǒng)的安全[14]。在改進(jìn)的CBFT 算法中,引入信用模型評估節(jié)點(diǎn)的信用狀態(tài),對網(wǎng)絡(luò)中的共識節(jié)點(diǎn)分類,優(yōu)化主節(jié)點(diǎn)的選舉,提高信用值高的節(jié)點(diǎn)成為主節(jié)點(diǎn)的概率,減少惡意節(jié)點(diǎn)對系統(tǒng)的破壞,從而提高整個網(wǎng)絡(luò)的效率。

        本文提出的信用模型將節(jié)點(diǎn)信用值區(qū)間設(shè)置為[0,100],初始值為30,并根據(jù)信用值的大小,將參與CBFT 共識的節(jié)點(diǎn)分為管理節(jié)點(diǎn)、候選節(jié)點(diǎn)、普通節(jié)點(diǎn)等3 類。管理節(jié)點(diǎn)和候選節(jié)點(diǎn)都是共識節(jié)點(diǎn),普通節(jié)點(diǎn)信用值偏低,只接收共識結(jié)果,不參與共識過程。不同區(qū)間的信用值劃分的節(jié)點(diǎn)類別如表1所示。

        表1 不同節(jié)點(diǎn)信用值劃分的節(jié)點(diǎn)類別Table 1 Node categories devided by different node credit value

        為了評估節(jié)點(diǎn)當(dāng)前的信用值,以節(jié)點(diǎn)的響應(yīng)性能、歷史信用值、選舉投票的完成情況和達(dá)成交易共識的正確率等數(shù)據(jù)作為衡量指標(biāo)[24-26],對節(jié)點(diǎn)可信度進(jìn)行測量。

        定義1延遲指數(shù)指對各種消息響應(yīng)過程中的延遲,表達(dá)式如下:

        其中:dij表示節(jié)點(diǎn)i第j筆交易的延遲;dmax表示交易所允許的最大延遲,如果超過最大延遲,則表示節(jié)點(diǎn)未能執(zhí)行該交易。

        定義2帶懲罰機(jī)制的交易完成率指進(jìn)入網(wǎng)絡(luò)后節(jié)點(diǎn)成功參與各交易的比例,表達(dá)式如下:

        其中:n為系統(tǒng)交易總數(shù);m表示節(jié)點(diǎn)i完成的交易數(shù)量;μ為交易是否成功的標(biāo)識符,交易成功μ=1,交易失敗μ=-1,這樣既考慮了成功完成交易對節(jié)點(diǎn)的促進(jìn)作用,又考慮了影響交易正常進(jìn)行對節(jié)點(diǎn)的不良影響,能夠更好地區(qū)分節(jié)點(diǎn)的信用值。

        定義3歷史信用值的影響指當(dāng)前節(jié)點(diǎn)的信用狀態(tài)受歷史信用值的影響,表達(dá)式如下:

        其中:系數(shù)z表示歷史狀態(tài)影響的程度。

        定義4 節(jié)點(diǎn)的最終信用分?jǐn)?shù)計算公式如下:

        其中:x為節(jié)點(diǎn)交易延遲的權(quán)重;y為節(jié)點(diǎn)自身完成交易的權(quán)重;x+y+z=1。信用模型直觀地反映了節(jié)點(diǎn)在共識中的性能。如果節(jié)點(diǎn)延遲小,交易完成率高,歷史信用值好,則可信度高;反之,節(jié)點(diǎn)延遲大,交易完成率低,歷史信用值差,則可信度低。

        2.3 CBFT 改進(jìn)共識流程

        CBFT 共識算法包含組內(nèi)外共識,主要實(shí)現(xiàn)參與共識的節(jié)點(diǎn)之間的共識。組員節(jié)點(diǎn)接收管理節(jié)點(diǎn)廣播,在組內(nèi)準(zhǔn)備和確認(rèn)階段,管理節(jié)點(diǎn)接收到足夠的建議信息,當(dāng)組外準(zhǔn)備階段完成時,意味著已經(jīng)有足夠多的節(jié)點(diǎn)驗(yàn)證并通過了客戶端發(fā)起的提議,組外的確認(rèn)階段僅是對提議在準(zhǔn)備階段通過的確認(rèn),確保有足夠的節(jié)點(diǎn)完成對提議的驗(yàn)證。因此,組外的三階段協(xié)議可以優(yōu)化為2 個階段,如圖4所示。

        圖4 CBFT 改進(jìn)共識流程Fig.4 Improved CBFT consensus procedure

        具體共識流程如下:

        1)組外預(yù)準(zhǔn)備階段。收到來自客戶端的請求后,管理節(jié)點(diǎn)對請求進(jìn)行驗(yàn)證和排序,并向組員廣播預(yù)準(zhǔn)備消息σi,其中,n為請求分配的序列號,t為時間戳,v表示視圖編號,D(m)為消息摘要,σi為管理節(jié)點(diǎn)i的簽名。

        2)組內(nèi)準(zhǔn)備階段。組員接收預(yù)準(zhǔn)備消息并進(jìn)行驗(yàn)證,此時網(wǎng)絡(luò)中的所有節(jié)點(diǎn)已接收預(yù)準(zhǔn)備消息。

        3)組內(nèi)確認(rèn)階段。組員驗(yàn)證提議,若無誤則將對提議的回應(yīng)σx發(fā)送給組長,其中,σx為節(jié)點(diǎn)x的簽名。

        4)組外準(zhǔn)備階段。管理節(jié)點(diǎn)收到足夠數(shù)量組員的回應(yīng),開啟全局共識,向所有管理節(jié)點(diǎn)廣播組內(nèi)共識的結(jié)果σi。

        5)組內(nèi)回復(fù)階段。若管理節(jié)點(diǎn)收到超過2f個相同的消息,則向組內(nèi)成員發(fā)送請求確認(rèn)σi。

        6)組外回復(fù)階段。同時,管理節(jié)點(diǎn)回復(fù)客戶端σi,客戶端接收到f+1 個相同的回復(fù)消息時,將該信息添加到區(qū)塊鏈的末尾,共識結(jié)束。

        3 實(shí)驗(yàn)與結(jié)果分析

        3.1 實(shí)驗(yàn)環(huán)境

        基于Java 編程語言模擬實(shí)現(xiàn)一個區(qū)塊鏈系統(tǒng),實(shí)驗(yàn)的初始條件如下:硬件條件為CPU AMD R7 5800H,內(nèi)存為16 GB,操作系統(tǒng)為Windows 10 64 位,軟件環(huán)境為Eclipse 4.21。在該系統(tǒng)中對CBFT 算法進(jìn)行驗(yàn)證,分別對20、25、30、35、40、45、50 個節(jié)點(diǎn)從安全性、時延、通信開銷、吞吐量等4 個方面來評估算法的性能。實(shí)驗(yàn)進(jìn)行1 000 次,每次客戶端發(fā)送200 個請求消息,取1 000 次的平均值作為測試結(jié)果。

        3.2 安全性

        CBFT 算法基于實(shí)用拜占庭容錯機(jī)制改進(jìn),由于算法沒有改變PBFT 的核心容錯機(jī)制,因此組長間的共識容錯性與PBFT 的拜占庭攻擊容錯性相同,但CBFT 算法基于分組策略與信用模型,使組內(nèi)可以容忍更多的拜占庭節(jié)點(diǎn),例如,若組內(nèi)全為拜占庭節(jié)點(diǎn),組長參與組外PBFT 共識,僅代表一個拜占庭節(jié)點(diǎn);若組內(nèi)拜占庭節(jié)點(diǎn)數(shù)小于50%,組外組長則作為正常節(jié)點(diǎn)參與共識,因此,CBFT 算法能容忍的最大拜占庭節(jié)點(diǎn)數(shù)為1/3 組內(nèi)節(jié)點(diǎn)全為拜占庭節(jié)點(diǎn)與2/3 組內(nèi)拜占庭節(jié)點(diǎn)占比小于50%的數(shù)量之和。綜上,在同等條件下采用CBFT 共識協(xié)議容錯性更高,且區(qū)塊鏈網(wǎng)絡(luò)會在一段時間的共識后提高容錯性,提高共識效率和系統(tǒng)整體可信度。

        圖5 為不同數(shù)量節(jié)點(diǎn)下PBFT、GRBFT[27]、CBFT算法最大可容忍惡意節(jié)點(diǎn)數(shù)的變化情況。從圖中可以看出,隨著節(jié)點(diǎn)數(shù)量的增加,CBFT 算法比PBFT、GRBFT 算法可以容忍更多的惡意節(jié)點(diǎn)數(shù),因此CBFT 算法具有更好的安全性。

        圖5 PBFT、GRBFT 和CBFT 算法最大可容忍惡意節(jié)點(diǎn)數(shù)Fig.5 Maximum number of malicious nodes tolerated by PBFT,GRBFT,and CBFT algorithms

        3.3 共識延遲

        共識延遲是指從交易開始到交易結(jié)束所經(jīng)歷的時間,是共識算法運(yùn)行速度的一個重要指標(biāo),較低的共識延遲可以使交易迅速得到確認(rèn),使系統(tǒng)更加安全和實(shí)用。共識延遲公式表示如下:

        其中:Tc表示交易確認(rèn)時間;Tr表示交易生成時間。從圖6 中可以看出,共識延遲隨著節(jié)點(diǎn)的增加而逐漸增加,但CBFT 的共識延遲明顯低于PBFT 和GRBFT 算法,隨著節(jié)點(diǎn)數(shù)的增加,PBFT 的延遲迅速增加,而CBFT 的延遲增加相對較緩慢。產(chǎn)生上述結(jié)果的主要原因是CBFT 的分組策略減少了參與共識的節(jié)點(diǎn)數(shù)量和節(jié)點(diǎn)間相互發(fā)送的信息量。因此,當(dāng)參與共識節(jié)點(diǎn)數(shù)量較多時,CBFT 仍然可以保證較高的共識度。

        圖6 PBFT、GRBFT 和CBFT 算法共識延遲Fig.6 Consensus latency of PBFT,GRBFT,and CBFT algorithms

        3.4 通信開銷

        通信開銷是指系統(tǒng)中的節(jié)點(diǎn)執(zhí)行共識算法時所產(chǎn)生的通信次數(shù)。假設(shè)每個共識集的節(jié)點(diǎn)數(shù)量是相同的(不少于3 個),共識集的數(shù)量應(yīng)該不少于4 個,系統(tǒng)總節(jié)點(diǎn)數(shù)為N個(N>12)。在PBFT 中有3 個階段需要發(fā)送消息以進(jìn)行通信。首先,客戶端將請求發(fā)送到主節(jié)點(diǎn),主節(jié)點(diǎn)將預(yù)準(zhǔn)備消息發(fā)送到所有從節(jié)點(diǎn),預(yù)準(zhǔn)備階段的通信開銷為(N-1)次;然后,節(jié)點(diǎn)接收到消息后,驗(yàn)證并發(fā)送準(zhǔn)備階段的消息,此階段的通信開銷為(N-1)2次;最后,在確認(rèn)階段,節(jié)點(diǎn)接收準(zhǔn)備消息,當(dāng)驗(yàn)證結(jié)果一致時,提交的消息將被發(fā)送給所有節(jié)點(diǎn),此階段的通信開銷為N(N-1)次。根據(jù)上述3 個階段的通信開銷,簡化得到PBFT 算法完成一致性協(xié)議的通信開銷T1計算式如下:

        當(dāng)N>12 時,T4

        圖7 顯示了CBFT、GRBFT 和PBFT 共識算法通信開銷的比較??梢钥闯?,在整個區(qū)塊鏈網(wǎng)絡(luò)中,CBFT的通信開銷要小得多且隨著共識節(jié)點(diǎn)數(shù)量的增加,通信開銷增長緩慢。例如,當(dāng)網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)量為30 個時,PBFT 的通信開銷為1 916 次,CBFT 的通信開銷為897次(4個分組),通信開銷較PBFT 降低了53.2%。

        圖7 PBFT、GRBFT 和CBFT 算法通信開銷Fig.7 Communications overhead of PBFT,GRBFT,and CBFT algorithms

        3.5 吞吐量

        在區(qū)塊鏈系統(tǒng)中,吞吐量是指系統(tǒng)在單位時間內(nèi)處理的事務(wù)數(shù),是衡量系統(tǒng)并發(fā)處理能力的重要指標(biāo)。吞吐量計算公式如下:

        其中:TTransactions,Δt表示Δt時間內(nèi)處理的事務(wù)數(shù)。

        為了驗(yàn)證分組策略,分別設(shè)置分組數(shù)為4、5、6,測試CBFT 算法在不同節(jié)點(diǎn)數(shù)量下的系統(tǒng)吞吐量,從圖8 中可以看出,CBFT 共識算法的分組數(shù)量對系統(tǒng)吞吐量的影響很小,其吞吐量始終高于傳統(tǒng)的PBFT 共識算法。PBFT 算法在節(jié)點(diǎn)數(shù)超過25 個后,吞吐量迅速下降,但即使節(jié)點(diǎn)數(shù)超過40 個時,CBFT依然保持較高的吞吐量。隨著節(jié)點(diǎn)數(shù)量的增加,2 種算法的吞吐量均呈下降趨勢,但CBFT 算法具有更高的吞吐量,并且隨著節(jié)點(diǎn)數(shù)量的增加,優(yōu)勢更加明顯,因此,在一個大型的聯(lián)盟鏈中,CBFT 算法可以保持高效率和穩(wěn)定性。

        圖8 PBFT、CBFT 算法吞吐量Fig.8 Throughput of PBFT,CBFT algorithms

        4 結(jié)束語

        PBFT 算法所支持的網(wǎng)絡(luò)規(guī)模有限,不利于大型聯(lián)盟鏈的發(fā)展。針對該問題,本文提出基于分組和信用分級的改進(jìn)CBFT 算法,將大規(guī)模網(wǎng)絡(luò)節(jié)點(diǎn)劃分為不同的共識集并基于信用值選擇共識節(jié)點(diǎn)。仿真結(jié)果表明,與PBFT、GRBFT 算法相比,CBFT 在安全性、時延、通信開銷和吞吐量等方面都有顯著改善,提高了系統(tǒng)的性能以及可靠性。在未來的工作中,將研究如何進(jìn)行節(jié)點(diǎn)身份認(rèn)證,以進(jìn)一步提高系統(tǒng)安全,促進(jìn)區(qū)塊鏈的發(fā)展。

        猜你喜歡
        拜占庭組內(nèi)共識
        共識 共進(jìn) 共情 共學(xué):讓“溝通之花”綻放
        論思想共識凝聚的文化向度
        拜占庭帝國的繪畫藝術(shù)及其多樣性特征初探
        用心說題 提高效率 培養(yǎng)能力
        商量出共識
        淺談初中歷史教學(xué)中的邏輯補(bǔ)充——從拜占庭帝國滅亡原因談起
        《西方史學(xué)通史》第三卷“拜占庭史學(xué)”部分糾繆
        古代文明(2016年1期)2016-10-21 19:35:20
        拜占庭之光
        鳳凰生活(2016年2期)2016-02-01 12:41:05
        合作學(xué)習(xí)組內(nèi)交流討論時間的遵循原則
        合作學(xué)習(xí)“組內(nèi)交流討論時間”注意問題
        国产精品99久久不卡二区| 国产美女久久精品香蕉69| 久久久久国色av∨免费看| WWW拍拍拍| 亚洲人成精品久久熟女| 一本大道熟女人妻中文字幕在线| 久久国产精品-国产精品 | 亚洲精品www久久久久久| 天美麻花果冻视频大全英文版 | 加勒比久草免费在线观看| 亚洲一区二区三区日本久久九| 人人色在线视频播放| 欧美激情五月| 日本不卡一区二区三区在线| 职场出轨的人妻中文字幕| 亚洲爆乳精品无码一区二区| 日韩AV无码一区二区三| 中文字幕人妻乱码在线| 国产av无码专区亚洲av男同 | 在线观看欧美精品| 日本高清中文字幕二区在线| 亚洲av免费不卡在线观看| 国产免国产免费| 久久久国产精品福利免费| 国产午夜激情视频在线看| 成年美女黄的视频网站| 国产精品永久免费视频| 国产在线观看免费一级| 美艳善良的丝袜高跟美腿| 69一区二三区好的精华| 国产一级毛片卡| 亚洲伊人av综合福利| 大陆国产乱人伦| 国产麻无矿码直接观看| 久久久亚洲精品免费视频| 麻豆69视频在线观看| 欧美日韩色另类综合| 娇柔白嫩呻吟人妻尤物| 亚洲成人一区二区av| 日产学生妹在线观看| 亚洲Av午夜精品a区|