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

        ?

        基于信譽(yù)分類的拜占庭容錯(cuò)共識(shí)算法

        2024-07-17 00:00:00高建彬劉洋洋夏虎程捷夏琦
        無線電工程 2024年4期
        關(guān)鍵詞:區(qū)塊鏈

        摘 要:針對(duì)許可區(qū)塊鏈場(chǎng)景下實(shí)用拜占庭容錯(cuò)(Practical Byzantine Fault Tolerance,PBFT) 共識(shí)算法通信開銷大、主節(jié)點(diǎn)選取隨意以及吞吐量低等問題,通過引入并優(yōu)化信譽(yù)評(píng)分模型(Reputation Scoring Model,RSM)。提出了一種基于信譽(yù)分類的拜占庭容錯(cuò)(Byzantine Fault Tolerance Based on Reputation Classification,RCBFT) 共識(shí)算法。定義RSM,依據(jù)節(jié)點(diǎn)的歷史共識(shí)行為所獲得的信譽(yù)評(píng)分排序?qū)⑴c節(jié)點(diǎn)進(jìn)行動(dòng)態(tài)分類以及分級(jí)管理,提出基于信譽(yù)分類的多層次節(jié)點(diǎn)架構(gòu);在可信節(jié)點(diǎn)層中隨機(jī)選取節(jié)點(diǎn)來?yè)?dān)任主節(jié)點(diǎn),優(yōu)化主節(jié)點(diǎn)選取機(jī)制;設(shè)計(jì)了緩沖節(jié)點(diǎn)層類型轉(zhuǎn)換策略(Type ConversionStrategy for Nodes,TCSN),兼顧了環(huán)境等非主觀因素導(dǎo)致低信譽(yù)評(píng)分的誠(chéng)實(shí)節(jié)點(diǎn)不能參與共識(shí)的問題,使得誠(chéng)實(shí)節(jié)點(diǎn)盡可能多地參與共識(shí),而拜占庭節(jié)點(diǎn)快速下降到最差類型中限制共識(shí)權(quán)限;RCBFT 共識(shí)算法還對(duì)傳統(tǒng)三階段共識(shí)協(xié)議進(jìn)行優(yōu)化,減少通信開銷,在確保容錯(cuò)性的同時(shí)能夠提高算法性能。實(shí)驗(yàn)分析表明,相較于PBFT 共識(shí)算法,RCBFT 共識(shí)算法能夠提升交易吞吐量,降低通信開銷與共識(shí)時(shí)延。

        關(guān)鍵詞:區(qū)塊鏈;共識(shí)算法;信譽(yù)分類;拜占庭節(jié)點(diǎn);性能提升

        中圖分類號(hào):TP311 文獻(xiàn)標(biāo)志碼:A 開放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(OSID):

        文章編號(hào):1003-3106(2024)04-0804-13

        0 引言

        區(qū)塊鏈本質(zhì)上是一種去中心化的分布式賬本技術(shù),用于記錄由沒有中央權(quán)威機(jī)構(gòu)的節(jié)點(diǎn)維護(hù)的交易[1]。去中心化是區(qū)塊鏈技術(shù)帶來的一個(gè)獨(dú)特理念。在過去,人們都生活在一個(gè)中心化的環(huán)境中,往往受到各方組織的監(jiān)督和管理。而在區(qū)塊鏈實(shí)現(xiàn)的去中心化的網(wǎng)絡(luò)環(huán)境中,沒有各種各樣的中心化組織的監(jiān)督,每個(gè)節(jié)點(diǎn)之間是公平公正的。因此,需要每個(gè)節(jié)點(diǎn)之間達(dá)成共識(shí),實(shí)現(xiàn)交易的合法性和區(qū)塊鏈的去中心化。

        隨著區(qū)塊鏈技術(shù)在各行各業(yè)的發(fā)展與廣泛應(yīng)用,區(qū)塊鏈的類別也越來越細(xì)化,不同分類依據(jù)會(huì)有不同的區(qū)塊鏈分類方式,同時(shí)不同的區(qū)塊鏈適配的共識(shí)算法也有所不同。根據(jù)不同應(yīng)用場(chǎng)景下信任的不同構(gòu)建模式,可以將區(qū)塊鏈分為兩大類:許可區(qū)塊鏈與非許可區(qū)塊鏈[2]。依據(jù)去中心化的程度,區(qū)塊鏈可以分為公有鏈、聯(lián)盟鏈以及私有鏈。許可區(qū)塊鏈包含聯(lián)盟鏈以及私有鏈,是由一組已知的、已識(shí)別的節(jié)點(diǎn)組成,這些節(jié)點(diǎn)不能完全信任彼此,只有被授權(quán)節(jié)點(diǎn)才可以加入?yún)^(qū)塊鏈網(wǎng)絡(luò),并且每個(gè)節(jié)點(diǎn)所具有的權(quán)限也各有不同。這種事前建立信任的模式使得許可區(qū)塊鏈相比于非許可區(qū)塊鏈效率更高。在許多應(yīng)用場(chǎng)景中,非許可區(qū)塊鏈完全開放、完全去中心化以及節(jié)點(diǎn)完全的自由進(jìn)出的特性并不是必需的,其極低的效率更不能滿足實(shí)際的應(yīng)用需求,因此許可區(qū)塊鏈在許多實(shí)際應(yīng)用場(chǎng)景中成為高適用性的區(qū)塊鏈選型。只有把好的共識(shí)算法應(yīng)用到合適的場(chǎng)景中,才能使其效益最大化。

        共識(shí)算法是影響系統(tǒng)整體復(fù)雜程度、容錯(cuò)效果和吞吐量的重要因素,具有不同的安全性和擴(kuò)展性需求的系統(tǒng)所需的共識(shí)協(xié)議也不盡相同。對(duì)于非許可區(qū)塊鏈和許可區(qū)塊鏈而言,二者的節(jié)點(diǎn)準(zhǔn)入程度、容錯(cuò)要求、吞吐量以及網(wǎng)絡(luò)規(guī)模存在差異,共識(shí)算法在二者之間也產(chǎn)生了較大的區(qū)別。具體而言,非許可區(qū)塊鏈網(wǎng)絡(luò)對(duì)所有節(jié)點(diǎn)是完全開放的,一般具有很高的網(wǎng)絡(luò)規(guī)模,多采用PoX 類協(xié)議并配合激勵(lì)機(jī)制實(shí)現(xiàn)共識(shí)一致性;許可區(qū)塊鏈對(duì)相關(guān)節(jié)點(diǎn)限制了訪問權(quán)限,可以在一定程度上減少拜占庭事件的發(fā)生,因此可采用拜占庭類協(xié)議來構(gòu)造信任模型。

        在當(dāng)前的許可區(qū)塊鏈應(yīng)用場(chǎng)景,如物流、金融和供應(yīng)鏈等對(duì)區(qū)塊鏈系統(tǒng)性能要求高的行業(yè),需要處理大量的業(yè)務(wù)數(shù)據(jù),但存在交易處理速度慢、吞吐量低等問題。因此,對(duì)適配高性能許可區(qū)塊鏈場(chǎng)景的共識(shí)算法設(shè)計(jì)變得尤為重要。

        2018 年,Lei 等[3] 針對(duì)實(shí)用拜占庭容錯(cuò)(Practical Byzantine Fault Tolerance,PBFT)算法很難及時(shí)識(shí)別和刪除故障節(jié)點(diǎn)、主節(jié)點(diǎn)容易受到攻擊以及節(jié)點(diǎn)之間的平等關(guān)系不適用于某些現(xiàn)實(shí)場(chǎng)景等問題,通過對(duì)節(jié)點(diǎn)行為的信譽(yù)評(píng)估,提出了一種基于信譽(yù)的拜占庭容錯(cuò)算法RBFT,實(shí)現(xiàn)對(duì)共識(shí)過程中惡意節(jié)點(diǎn)的容錯(cuò)處理,避免拜占庭錯(cuò)誤,確保系統(tǒng)的穩(wěn)定運(yùn)行。在投票過程中,如果檢測(cè)到節(jié)點(diǎn)有任何的惡意行為,都會(huì)降低節(jié)點(diǎn)的信譽(yù),并且較高信譽(yù)的節(jié)點(diǎn)成為主節(jié)點(diǎn)的機(jī)會(huì)更大。實(shí)驗(yàn)結(jié)果表明該算法獲得了較好的性能,保證了系統(tǒng)的安全性和可靠性。但該算法仍然維持PBFT 的三階段共識(shí),具有較大的通信開銷,可擴(kuò)展性較差,而且并未考慮環(huán)境等客觀因素造成節(jié)點(diǎn)信譽(yù)偏低的情況。

        2019 年,Gao 等[4]在PBFT 算法的基礎(chǔ)上引入特征信任的概念以構(gòu)建可信任共識(shí)組,提出了基于特征信任(Eigen Trust)模型的優(yōu)化PBFT 共識(shí)算法———TPBFT,根據(jù)節(jié)點(diǎn)間的交易行為來評(píng)估節(jié)點(diǎn)的信任程度,并選出網(wǎng)絡(luò)中的高信任值的節(jié)點(diǎn)來構(gòu)建共識(shí)組,該算法降低了通信復(fù)雜度,提高了共識(shí)效率。雖然該算法降低了視圖的切換頻率和通信的復(fù)雜度,但并未考慮到主節(jié)點(diǎn)是拜占庭節(jié)點(diǎn)的情況。甘俊等[5]針對(duì)PBFT 算法靜態(tài)的網(wǎng)絡(luò)結(jié)構(gòu)、主節(jié)點(diǎn)選取隨意和通信開銷較大等問題,提出了EPBFT 共識(shí)算法。通過巧妙設(shè)置節(jié)點(diǎn)的生命周期,允許節(jié)點(diǎn)動(dòng)態(tài)出入,并結(jié)合最長(zhǎng)鏈原則優(yōu)化選主方式,具有良好的實(shí)用性和有效性,但只能應(yīng)用于節(jié)點(diǎn)較少的場(chǎng)景。

        2020 年,宋哲[6]聚焦于共識(shí)算法的性能提升,也引入了信任機(jī)制的概念來改進(jìn)PBFT,根據(jù)不同信譽(yù)值的節(jié)點(diǎn)被選為主節(jié)點(diǎn)的概率不同,測(cè)試結(jié)果表明其設(shè)計(jì)的CPBFT 算法有較好的時(shí)延和吞吐量,擁有較小的通信開銷,可以適應(yīng)大部分高性能區(qū)塊鏈應(yīng)用場(chǎng)景。雖然CPBFT 算法限制了一些惡意節(jié)點(diǎn)的共識(shí)參與,但是低信譽(yù)值的節(jié)點(diǎn)依然有可能成為主節(jié)點(diǎn),而且信譽(yù)值較低的節(jié)點(diǎn)可以繳納一定的保證金來提升自己成為主節(jié)點(diǎn)的概率,因此當(dāng)惡意節(jié)點(diǎn)認(rèn)為所獲得的收益超過保證金時(shí),惡意節(jié)點(diǎn)就會(huì)做出利己的惡意行為,而如果某個(gè)節(jié)點(diǎn)長(zhǎng)期擁有大量的保證金,就會(huì)導(dǎo)致系統(tǒng)中心化,背離區(qū)塊鏈去中心化思想,該系統(tǒng)仍然存在共識(shí)延遲、共識(shí)效率等問題。

        2021 年,周藝華等[7]針對(duì)哈希圖(Hashgraph)共識(shí)算法[8]穩(wěn)定性差、共識(shí)過程復(fù)雜,以及易受節(jié)點(diǎn)性能、帶寬等影響的問題,在Hashgraph 共識(shí)算法中引入信譽(yù)度模型以評(píng)估節(jié)點(diǎn)的性能,與獎(jiǎng)勵(lì)機(jī)制結(jié)合來監(jiān)管并激勵(lì)節(jié)點(diǎn)參與共識(shí),同時(shí)引入領(lǐng)導(dǎo)人縮減共識(shí)過程,降低算法復(fù)雜度,引入可驗(yàn)證隨機(jī)函數(shù)(Verifiable Random Function,VRF)保障領(lǐng)導(dǎo)人選取的不可預(yù)測(cè)性。實(shí)驗(yàn)結(jié)果表明,該算法縮短了交易時(shí)間,提高了系統(tǒng)穩(wěn)定性。Hashgraph 是采用了有向無環(huán)圖(Directed Acyclic Graph,DAG)結(jié)構(gòu)的經(jīng)典共識(shí)應(yīng)用之一,許多研究人員也試圖通過將DAG 結(jié)構(gòu)引入?yún)^(qū)塊鏈中對(duì)交易進(jìn)行并發(fā)處理以達(dá)到性能提升的目的,如Li 等[9-10]提出的Conflux 系統(tǒng),指出該系統(tǒng)與GHOST[11]具有相同的安全性,但并未具體論述和證明。

        2022 年,陳潤(rùn)宇等[12]針對(duì)PBFT 主節(jié)點(diǎn)選取隨意、通信復(fù)雜度高且易集中化等問題,提出RNVPBFT 共識(shí)算法,通過引入監(jiān)督節(jié)點(diǎn)實(shí)現(xiàn)信息的中轉(zhuǎn),同時(shí)采用隨機(jī)參數(shù)以增強(qiáng)系統(tǒng)去中心化,并設(shè)計(jì)動(dòng)態(tài)信譽(yù)模型以區(qū)分節(jié)點(diǎn)是否誠(chéng)實(shí),在一定程度上對(duì)一致性協(xié)議進(jìn)行了簡(jiǎn)化。實(shí)驗(yàn)結(jié)果表明該算法能有效地降低通信的復(fù)雜度,同時(shí)也能較好地解決去中心化帶來的問題。但該算法將所有投票結(jié)果記錄在一個(gè)節(jié)點(diǎn)中,雖然避免了節(jié)點(diǎn)之間過多的通信,但敵手很可能會(huì)集中攻擊該節(jié)點(diǎn)造成系統(tǒng)宕機(jī)。而且該算法區(qū)分拜占庭節(jié)點(diǎn)和誠(chéng)實(shí)節(jié)點(diǎn)以信譽(yù)值0. 5 的分界閾值為判斷依據(jù),劃分過于簡(jiǎn)單,同時(shí)也并未考慮到環(huán)境因素所造成的節(jié)點(diǎn)非主觀惡意行為的情況。黃子鑫等[13]提出針對(duì)傳統(tǒng)PBFT 算法在監(jiān)理數(shù)據(jù)共享系統(tǒng)應(yīng)用中存在的主節(jié)點(diǎn)選取隨意、共識(shí)效率隨節(jié)點(diǎn)規(guī)模增大而不斷降低等問題,根據(jù)節(jié)點(diǎn)信任度評(píng)價(jià)模型對(duì)PBFT 進(jìn)行改進(jìn),縮小共識(shí)群組規(guī)模降低通信復(fù)雜度,在保證共識(shí)安全的前提下,有效地提升了共識(shí)效率。陳潤(rùn)宇等[12]提出一種基于信譽(yù)值投票與隨機(jī)數(shù)選舉的RNVPBFT 共識(shí)算法。增設(shè)初始記賬節(jié)點(diǎn),降低選舉過程的通信復(fù)雜度以及提升選舉公平性,但是在三階段通信廣播中,存在2 次全網(wǎng)廣播,嚴(yán)重占用系統(tǒng)帶寬。

        因此,提出了一種基于信譽(yù)分類的拜占庭容錯(cuò)(Byzantine Fault Tolerance Based on Reputation Classification,RCBFT)共識(shí)算法。該算法針對(duì)傳統(tǒng)的PBFT共識(shí)算法的不足之處進(jìn)行改進(jìn),通過引入信譽(yù)分類協(xié)議并優(yōu)化信譽(yù)評(píng)分模型(Reputation Scoring Model,RSM),依據(jù)節(jié)點(diǎn)的歷史共識(shí)行為所獲得的信譽(yù)評(píng)分來對(duì)參與節(jié)點(diǎn)進(jìn)行動(dòng)態(tài)分類以及分級(jí)管理,提高了視圖切換安全性,同時(shí)對(duì)PBFT 共識(shí)算法的三階段共識(shí)協(xié)議進(jìn)行優(yōu)化,減少通信開銷,在確保容錯(cuò)性的同時(shí)能夠提高算法性能。主要工作如下:

        ① 提出了一種基于信譽(yù)分類的多層次節(jié)點(diǎn)架構(gòu)對(duì)區(qū)塊鏈網(wǎng)絡(luò)中的節(jié)點(diǎn)進(jìn)行分布式的信譽(yù)評(píng)分管理。

        ② 設(shè)計(jì)了信譽(yù)分類協(xié)議(Reputation ClassificationProtocol,RCP),闡述了RSM、節(jié)點(diǎn)分類設(shè)計(jì)(Node Classification Design,NCD)以及緩沖節(jié)點(diǎn)層類型轉(zhuǎn)換策略等,并給出改進(jìn)后的RCBFT 共識(shí)算法具體流程。

        ③ 通過仿真實(shí)驗(yàn)將RCBFT 共識(shí)算法與PBFT共識(shí)算法在通信次數(shù)、交易吞吐量以及共識(shí)時(shí)延等方面進(jìn)行了對(duì)比。

        1 相關(guān)背景

        拜占庭容錯(cuò)(BFT)算法由Lamport 等[14]于1982 年提出。Lamport 證明了當(dāng)背叛者數(shù)量小于等于f 且將軍總數(shù)N 大于3f 時(shí),忠誠(chéng)的將軍可以對(duì)命令達(dá)成一致,即N≥3f+1,算法復(fù)雜度為O(nf+1 )。然而,由于BFT 算法具有較高的通信復(fù)雜度,還沒有應(yīng)用到實(shí)際場(chǎng)景中。直到Castro 等[15]于1999 年提出了PBFT 算法才將BFT 算法引入到工程領(lǐng)域。

        PBFT 算法是基于投票的共識(shí)算法,也是目前使用最廣泛的許可區(qū)塊鏈共識(shí)算法之一。BFT 類算法在拜占庭節(jié)點(diǎn)作惡時(shí)仍能保證分布式網(wǎng)絡(luò)中數(shù)據(jù)的正確一致性。因此,BFT 共識(shí)算法對(duì)于區(qū)塊鏈技術(shù)的發(fā)展,保證區(qū)塊鏈分布式網(wǎng)絡(luò)中各節(jié)點(diǎn)數(shù)據(jù)的正常一致性和交易的有序進(jìn)行具有重要意義。共識(shí)算法的通信復(fù)雜性、可擴(kuò)展性、容錯(cuò)性和性能將直接影響區(qū)塊鏈系統(tǒng)的性能[16]。

        由于PBFT 算法是弱同步算法,因此假設(shè)區(qū)塊鏈網(wǎng)絡(luò)是異步網(wǎng)絡(luò),該網(wǎng)絡(luò)中的節(jié)點(diǎn)廣播消息時(shí)可能會(huì)延遲廣播,但并不會(huì)一直延遲下去。假設(shè)網(wǎng)絡(luò)中節(jié)點(diǎn)總數(shù)為N,則可能存在f 個(gè)拜占庭節(jié)點(diǎn),其中,N≥3f+1,算法的時(shí)間復(fù)雜度為O(n2 ),算法流程如圖1 所示。

        PBFT 算法主要由一致性協(xié)議、視圖切換協(xié)議以及檢查點(diǎn)協(xié)議三部分組成[17]。一致性協(xié)議主要用來保證全網(wǎng)節(jié)點(diǎn)數(shù)據(jù)的一致性,通過PBFT 共識(shí)算法的核心部分三階段共識(shí)來實(shí)現(xiàn);在運(yùn)行一致性協(xié)議時(shí),若主節(jié)點(diǎn)發(fā)生故障,則會(huì)觸發(fā)視圖切換協(xié)議來更換視圖;定時(shí)觸發(fā)檢查點(diǎn)協(xié)議以清理共識(shí)過程中節(jié)點(diǎn)儲(chǔ)存的通信消息與同步狀態(tài)等。

        ① 一致性協(xié)議

        圖1 顯示了PBFT 一致性協(xié)議即三階段共識(shí)協(xié)議流程,其中包括客戶端節(jié)點(diǎn)C 和4 個(gè)共識(shí)節(jié)點(diǎn),節(jié)點(diǎn)0 是通過輪換和選舉機(jī)制選出的主節(jié)點(diǎn),節(jié)點(diǎn)1、2、3 為從節(jié)點(diǎn)(也稱為副本節(jié)點(diǎn))。

        ② 檢查點(diǎn)協(xié)議

        PBFT 算法設(shè)計(jì)了一種從日志中丟棄已執(zhí)行請(qǐng)求的三階段消息的機(jī)制。當(dāng)執(zhí)行每k 個(gè)請(qǐng)求時(shí),節(jié)點(diǎn)記錄執(zhí)行這些請(qǐng)求所產(chǎn)生的狀態(tài),稱為檢查點(diǎn)。當(dāng)節(jié)點(diǎn)生成檢查點(diǎn)時(shí),它會(huì)向所有其他節(jié)點(diǎn)廣播一條檢查點(diǎn)消息,并在其日志中收集來自這些節(jié)點(diǎn)的檢查點(diǎn)消息。在從不同節(jié)點(diǎn)收集2f+1 個(gè)相同的檢查點(diǎn)后,它可以證明檢查點(diǎn)的正確性。具有正確性證明的檢查點(diǎn)稱為穩(wěn)定檢查點(diǎn),節(jié)點(diǎn)可以從日志中丟棄序列號(hào)小于或等于它的所有三階段消息。

        ③ 視圖切換協(xié)議

        當(dāng)主節(jié)點(diǎn)發(fā)生故障時(shí),視圖切換協(xié)議(ViewChange Protocol,VCP)可以通過變更當(dāng)前視圖到新視圖以此保證系統(tǒng)活性。當(dāng)三階段共識(shí)協(xié)議超時(shí)或系統(tǒng)的節(jié)點(diǎn)收到空塊時(shí),觸發(fā)VCP 處理流程,切換到更高的視圖,即視圖編號(hào)加1,主節(jié)點(diǎn)也會(huì)隨之切換到下一個(gè)節(jié)點(diǎn)成為主節(jié)點(diǎn)。視圖切換超時(shí)觸發(fā),可防止從節(jié)點(diǎn)無限期等待請(qǐng)求執(zhí)行。

        圖2 顯示了VCP 的具體流程,最開始節(jié)點(diǎn)0 是主節(jié)點(diǎn),節(jié)點(diǎn)1、2、3 為從節(jié)點(diǎn),此時(shí)視圖view = 0,當(dāng)主節(jié)點(diǎn)0 出現(xiàn)故障時(shí)會(huì)觸發(fā)viewchange,此時(shí)視圖編號(hào)加1,即當(dāng)前的新視圖view = 1,而主節(jié)點(diǎn)也隨之切換,原從節(jié)點(diǎn)1 變?yōu)樾乱晥D的主節(jié)點(diǎn)。

        當(dāng)網(wǎng)絡(luò)中存在f 個(gè)拜占庭節(jié)點(diǎn)時(shí),PBFT 算法依然能夠根據(jù)其他節(jié)點(diǎn)使得網(wǎng)絡(luò)達(dá)成共識(shí),具有較高的共識(shí)效率。雖然PBFT 已經(jīng)成為許可區(qū)塊鏈的主流共識(shí)算法,但該算法依然存在通信開銷大、主節(jié)點(diǎn)選取隨意、機(jī)制僵化和吞吐量低等方面的問題。

        2 RCBFT 共識(shí)算法

        針對(duì)PBFT 算法的不足之處,在PBFT 算法的基礎(chǔ)上進(jìn)行改進(jìn),引入并優(yōu)化RSM,提出了一種許可區(qū)塊鏈場(chǎng)景下基于信譽(yù)分類的BFT 共識(shí)算法———RCBFT 共識(shí)算法。首先定義RSM,然后依據(jù)節(jié)點(diǎn)的歷史共識(shí)行為所獲得的信譽(yù)評(píng)分排序來對(duì)參與節(jié)點(diǎn)進(jìn)行動(dòng)態(tài)分類以及分級(jí)管理,提出基于信譽(yù)分類的多層次節(jié)點(diǎn)架構(gòu)。在可信節(jié)點(diǎn)層中隨機(jī)選取節(jié)點(diǎn)來?yè)?dān)任共識(shí)節(jié)點(diǎn),優(yōu)化主節(jié)點(diǎn)選取機(jī)制。

        同時(shí),設(shè)計(jì)了緩沖節(jié)點(diǎn)層類型轉(zhuǎn)換策略(TypeConversion Strategy for Nodes,TCSN),兼顧了環(huán)境等非主觀因素導(dǎo)致的低信譽(yù)評(píng)分節(jié)點(diǎn)(實(shí)際為誠(chéng)實(shí)節(jié)點(diǎn))不能參與共識(shí)的問題,使得誠(chéng)實(shí)節(jié)點(diǎn)盡可能多地參與共識(shí),而拜占庭節(jié)點(diǎn)快速下降到最差類型中,限制共識(shí)權(quán)限并列入黑名單。對(duì)PBFT 算法傳統(tǒng)的三階段共識(shí)協(xié)議進(jìn)行優(yōu)化,減少通信開銷,在確保容錯(cuò)性的同時(shí)能夠提高算法性能。RCBFT 算法整體框架如圖3 所示。

        2. 1 基于信譽(yù)分類的多層次節(jié)點(diǎn)架構(gòu)

        本節(jié)設(shè)計(jì)了基于信譽(yù)分類的多層次節(jié)點(diǎn)架構(gòu),并對(duì)區(qū)塊鏈網(wǎng)絡(luò)中的節(jié)點(diǎn)進(jìn)行分布式的信譽(yù)評(píng)分管理,如圖4 所示,設(shè)計(jì)了RCP。RCP 主要包括RSM、NCD 以及TCSN 等。

        2. 1. 1 RSM 定義

        節(jié)點(diǎn)的信譽(yù)評(píng)分是基于多方面因素對(duì)節(jié)點(diǎn)進(jìn)行綜合評(píng)估,包括節(jié)點(diǎn)的自身性能、可信度和穩(wěn)定性等方面的表現(xiàn),通過追蹤節(jié)點(diǎn)的歷史共識(shí)行為,實(shí)現(xiàn)對(duì)節(jié)點(diǎn)信譽(yù)度的整體評(píng)估。提出的節(jié)點(diǎn)信譽(yù)評(píng)分是從節(jié)點(diǎn)的自身情況以及歷史共識(shí)行為等方面綜合考慮而得出的。

        節(jié)點(diǎn)的歷史共識(shí)行為評(píng)價(jià)由主節(jié)點(diǎn)完成。主節(jié)點(diǎn)在共識(shí)過程中通過收集其他共識(shí)節(jié)點(diǎn)對(duì)本輪共識(shí)的執(zhí)行情況與最終的共識(shí)結(jié)果作對(duì)比,以此來評(píng)估該節(jié)點(diǎn)的共識(shí)行為,從而更新各個(gè)共識(shí)節(jié)點(diǎn)的信譽(yù)評(píng)分,并廣播新的節(jié)點(diǎn)信譽(yù)評(píng)分信息,實(shí)現(xiàn)信譽(yù)評(píng)分的網(wǎng)絡(luò)同步。分析節(jié)點(diǎn)在共識(shí)過程中的歷史行為,能夠更好地確定節(jié)點(diǎn)的信譽(yù)正負(fù)評(píng)分調(diào)整級(jí)別。

        節(jié)點(diǎn)RSM 定義如下:

        式中:節(jié)點(diǎn)信譽(yù)評(píng)分RSisum 由三部分組成,RS0 表示節(jié)點(diǎn)Ni 的基礎(chǔ)(初始)信譽(yù)評(píng)分,是對(duì)節(jié)點(diǎn)自身性能的評(píng)價(jià);RSi 表示反映節(jié)點(diǎn)Ni 歷史共識(shí)行為的動(dòng)態(tài)信譽(yù)評(píng)分,是通過節(jié)點(diǎn)Ni 在區(qū)塊鏈網(wǎng)絡(luò)中的具體共識(shí)表現(xiàn)以及和其他節(jié)點(diǎn)動(dòng)態(tài)交互得到的信譽(yù)評(píng)分,包括了節(jié)點(diǎn)信譽(yù)正評(píng)分和信譽(yù)負(fù)評(píng)分兩部分;a 表示節(jié)點(diǎn)Ni 的基礎(chǔ)信譽(yù)評(píng)分所對(duì)應(yīng)的權(quán)重,β 表示節(jié)點(diǎn)Ni 的動(dòng)態(tài)信譽(yù)評(píng)分所對(duì)應(yīng)的權(quán)重,f(x)表示時(shí)間衰減函數(shù)。

        (1)基礎(chǔ)信譽(yù)評(píng)分

        在共識(shí)過程中,每個(gè)節(jié)點(diǎn)因其自身的性能表現(xiàn)不同,在進(jìn)行廣播通信、消息驗(yàn)證以及存儲(chǔ)信息時(shí)也會(huì)有不同的表現(xiàn)。性能低的節(jié)點(diǎn)在共識(shí)中可能會(huì)降低共識(shí)效率,增加消息時(shí)延。因此,通過評(píng)估節(jié)點(diǎn)內(nèi)存、處理器以及磁盤等具體情況,量化后進(jìn)行基礎(chǔ)信譽(yù)評(píng)分的計(jì)算,既提升性能高的節(jié)點(diǎn)被選中的概率,又不忽視性能較低節(jié)點(diǎn)多次正常共識(shí)的表現(xiàn)。同時(shí),對(duì)節(jié)點(diǎn)的基礎(chǔ)信譽(yù)評(píng)分取值范圍做出限制,使得節(jié)點(diǎn)之間不會(huì)造成“性能霸權(quán)”,讓低性能但誠(chéng)實(shí)的節(jié)點(diǎn)也有獲得高信譽(yù)評(píng)分的機(jī)會(huì)。

        節(jié)點(diǎn)Ni 的基礎(chǔ)信譽(yù)評(píng)分定義為:

        式中:MCi、PCi、DSi 分別表示節(jié)點(diǎn)Ni 的內(nèi)存容量、處理器內(nèi)核數(shù)量以及磁盤存儲(chǔ)容量量化后對(duì)應(yīng)的信譽(yù)評(píng)分,γ1 、γ2 、γ3 分別表示節(jié)點(diǎn)Ni 三個(gè)指標(biāo)的信譽(yù)評(píng)分所對(duì)應(yīng)的權(quán)值,RSgood、RSnormal 分別表示節(jié)點(diǎn)Ni的基礎(chǔ)信譽(yù)評(píng)分取值上下界。

        (2)動(dòng)態(tài)信譽(yù)評(píng)分

        ① 信譽(yù)負(fù)評(píng)分

        區(qū)塊鏈網(wǎng)絡(luò)中的節(jié)點(diǎn)在歷史共識(shí)行為中可能存在3 種不可接受的行為,用UB 表示,其定義如下:

        UB = {b1 ,b2 ,b3 }, (3)

        式中:b1 表示節(jié)點(diǎn)延遲廣播所收到的信息,即節(jié)點(diǎn)存在延時(shí)轉(zhuǎn)發(fā)行為;b2 表示節(jié)點(diǎn)從未傳播所收到的信息,即節(jié)點(diǎn)存在崩潰宕機(jī)行為;b3 表示節(jié)點(diǎn)修改信息并廣播修改后的信息,即節(jié)點(diǎn)存在惡意篡改行為。

        每種行為bi 對(duì)應(yīng)不同的懲罰級(jí)別pi,pi∈P:

        P = {p1 ,p2 ,p3 }。(4)

        不同的懲罰級(jí)別的嚴(yán)厲程度不同:

        p3 > p2 > p1 。(5)

        在每輪共識(shí)過程之后會(huì)進(jìn)行新一輪的信譽(yù)評(píng)分調(diào)整過程。具體而言,區(qū)塊鏈系統(tǒng)中給定節(jié)點(diǎn)Ni 的行為信息是從其周圍節(jié)點(diǎn)收集的。在每輪共識(shí)結(jié)束時(shí),參與共識(shí)過程的節(jié)點(diǎn)通過HTTP 協(xié)議請(qǐng)求向主節(jié)點(diǎn)提供信息反饋?;谥車?jié)點(diǎn)的意見,節(jié)點(diǎn)Ni的信譽(yù)評(píng)分調(diào)整如下:

        RSi = RSi - pi。(6)

        換句話說,通過對(duì)節(jié)點(diǎn)原有信譽(yù)評(píng)分中減去pi來懲罰節(jié)點(diǎn)Ni。假設(shè)某個(gè)節(jié)點(diǎn)Ni 的原有信譽(yù)評(píng)分RSi = 5,懲罰級(jí)別P = {p1 = 1,p2 = 3,p3 = 5}。如果判斷節(jié)點(diǎn)Ni 參與了b1 行為,則其信譽(yù)評(píng)分將減少1。因此,節(jié)點(diǎn)Ni 更新后的信譽(yù)評(píng)分將是RSi = 4。如果節(jié)點(diǎn)Ni 被判斷為表現(xiàn)出行為b3 ,則其信譽(yù)評(píng)分將變?yōu)椋啊?/p>

        ② 信譽(yù)正評(píng)分

        參與共識(shí)過程的節(jié)點(diǎn)根據(jù)其活躍度獲得獎(jiǎng)勵(lì)。具體來說,節(jié)點(diǎn)間的活躍度可以通過衡量節(jié)點(diǎn)Ni 的的共識(shí)時(shí)間Ti 和平均共識(shí)時(shí)間Tavg 來評(píng)估。Tavg 定義如下:

        式中:Nsum 為所有參與共識(shí)的節(jié)點(diǎn)總數(shù)。

        如果一個(gè)節(jié)點(diǎn)的共識(shí)時(shí)間Ti 小于所有節(jié)點(diǎn)的平均共識(shí)時(shí)間Tavg,則其信譽(yù)評(píng)分將適當(dāng)增加。如果節(jié)點(diǎn)向系統(tǒng)報(bào)告其他節(jié)點(diǎn)的惡意篡改或者崩潰宕機(jī)等行為,該節(jié)點(diǎn)將獲得相應(yīng)的信譽(yù)評(píng)分作為獎(jiǎng)勵(lì)。這種機(jī)制可以鼓勵(lì)節(jié)點(diǎn)積極地參與到系統(tǒng)的安全維護(hù)中來。這也能提高整個(gè)系統(tǒng)的安全性和魯棒性。主節(jié)點(diǎn)可以通過鏈上運(yùn)行日志手動(dòng)和自動(dòng)驗(yàn)證反饋信息。信譽(yù)評(píng)分更新公式如下:

        RSi = RSi + rwRSi = RSi + rw, (8)

        式中:rw 為獎(jiǎng)勵(lì)分值。

        節(jié)點(diǎn)的反饋信息包括它的鄰居節(jié)點(diǎn)的行為信息和它傳播接收到的消息的證據(jù)。主節(jié)點(diǎn)根據(jù)節(jié)點(diǎn)所有鄰居的反饋信息確定該節(jié)點(diǎn)的行為類型。大多數(shù)鄰居節(jié)點(diǎn)報(bào)告的行為類型最終會(huì)被采納。例如,假設(shè)節(jié)點(diǎn)Ni 有4 個(gè)鄰居節(jié)點(diǎn),如果其中3 個(gè)鄰居節(jié)點(diǎn)報(bào)告節(jié)點(diǎn)Ni 沒有傳播消息,則主節(jié)點(diǎn)將節(jié)點(diǎn)Ni 的行為類型設(shè)置為b2 。如果節(jié)點(diǎn)報(bào)告鄰居節(jié)點(diǎn)的惡意行為,則反饋信息必須附有相應(yīng)的證據(jù)證明,如收到消息的時(shí)間戳。主節(jié)點(diǎn)將識(shí)別這些證據(jù)并確定鄰居節(jié)點(diǎn)的行為,通過分析節(jié)點(diǎn)的行為和活動(dòng)來調(diào)整節(jié)點(diǎn)的信譽(yù)評(píng)分。

        (3)時(shí)間衰減函數(shù)

        為了提高節(jié)點(diǎn)參與共識(shí)的誠(chéng)實(shí)性和積極性,提高節(jié)點(diǎn)在網(wǎng)絡(luò)中的活躍度,在RSM 中加入了時(shí)間衰減函數(shù)f(x),使得節(jié)點(diǎn)近期共識(shí)行為對(duì)動(dòng)態(tài)信譽(yù)評(píng)分更重要。具體表示為:

        式中:k 表示區(qū)塊鏈系統(tǒng)已完成的總共識(shí)輪次,x 表示節(jié)點(diǎn)Ni 最近參與完成的共識(shí)輪次,底數(shù)a 表示衰減因子。每輪共識(shí)過程中都會(huì)存在一個(gè)時(shí)間衰減函數(shù)。

        當(dāng)x = k 時(shí),即節(jié)點(diǎn)Ni 最近一輪參與完成的共識(shí)輪次與系統(tǒng)總共識(shí)輪次相等,此時(shí)f(k)= 1,表明節(jié)點(diǎn)Ni 前一輪的共識(shí)行為表現(xiàn)不會(huì)對(duì)其動(dòng)態(tài)信譽(yù)評(píng)分產(chǎn)生衰減;當(dāng)x = k-1 時(shí),即節(jié)點(diǎn)Ni 最近一輪參與完成的共識(shí)輪次為k-1,第k 輪時(shí)并未參與共識(shí),此時(shí)f(k-1)= a,動(dòng)態(tài)信譽(yù)評(píng)分會(huì)附加衰減因子a,使得信譽(yù)評(píng)分降低。甚至如果節(jié)點(diǎn)Ni 在總共識(shí)輪次k 中只在第一輪參與共識(shí),其他輪次都未參與,此時(shí)f(1)= ak-1 ,衰減程度更大,節(jié)點(diǎn)近期衰減程度示意如圖5 所示。

        通過附上時(shí)間衰減函數(shù)這種方式可以使得節(jié)點(diǎn)努力在近期的共識(shí)輪次中積極參與,只要節(jié)點(diǎn)每次都參與最近一輪的共識(shí),那么時(shí)間衰減函數(shù)一直都為1,從而使得自身的動(dòng)態(tài)信譽(yù)評(píng)分不會(huì)受影響,提高了節(jié)點(diǎn)的活躍度與積極性。

        2. 1. 2 NCD

        一般情況下,當(dāng)節(jié)點(diǎn)的歷史信譽(yù)評(píng)分很高時(shí),表明該節(jié)點(diǎn)對(duì)多輪共識(shí)整體做出的是積極貢獻(xiàn);相反,若節(jié)點(diǎn)的歷史信譽(yù)評(píng)分很低時(shí),表明該節(jié)點(diǎn)對(duì)多輪共識(shí)整體做出的是消極影響,阻礙了共識(shí)過程,考慮該節(jié)點(diǎn)有作惡情況。因此,基于節(jié)點(diǎn)的歷史信譽(yù)評(píng)分可以對(duì)共識(shí)節(jié)點(diǎn)群進(jìn)行分類,并對(duì)分類后的節(jié)點(diǎn)群進(jìn)行分類分權(quán)限管理,不僅可以提升節(jié)點(diǎn)的積極性,而且能夠有效防止惡意節(jié)點(diǎn)被選為主節(jié)點(diǎn),從而減少惡意節(jié)點(diǎn)參與共識(shí)帶來的通信損失,提高區(qū)塊鏈系統(tǒng)效率。

        定義RSisum 代表節(jié)點(diǎn)每輪共識(shí)最終獲得的信譽(yù)評(píng)分,Ncategory 代表節(jié)點(diǎn)所屬類別,根據(jù)節(jié)點(diǎn)在區(qū)塊鏈系統(tǒng)中的共識(shí)行為增加信譽(yù)評(píng)分或減少信譽(yù)評(píng)分?;谛抛u(yù)分類的多層次節(jié)點(diǎn)架構(gòu)根據(jù)上一小節(jié)的信譽(yù)評(píng)分機(jī)制將所有節(jié)點(diǎn)分為5 類:A、B、C、D、E。其中,A 類代表高信譽(yù)共識(shí)節(jié)點(diǎn),B 類代表候選的共識(shí)主節(jié)點(diǎn),C、D 類代表普通共識(shí)節(jié)點(diǎn),E 類代表惡意節(jié)點(diǎn)。而A 類也稱為可信節(jié)點(diǎn)層,D 類也稱為緩沖節(jié)點(diǎn)層,分類后的節(jié)點(diǎn)架構(gòu)示意如圖6 所示。

        節(jié)點(diǎn)類別Ncategory 具體定義如下:

        式中:RSgood、RSaverage、RSnormal、RSaccepted 分別表示5 類節(jié)點(diǎn)信譽(yù)評(píng)分的分界閾值,A ~ E 從高到低分別代表節(jié)點(diǎn)類別高低。依據(jù)RSM 將節(jié)點(diǎn)劃分為5 類,賦予每類節(jié)點(diǎn)不同的權(quán)限。

        當(dāng)RSisum ≥RSgood 時(shí),節(jié)點(diǎn)Ni 為A 類節(jié)點(diǎn),稱為可信節(jié)點(diǎn)層。A 類節(jié)點(diǎn)信譽(yù)評(píng)分級(jí)別最高,優(yōu)先擔(dān)任主節(jié)點(diǎn)。

        當(dāng)RSaverage ≤RSisum <RSgood 時(shí),節(jié)點(diǎn)Ni 為B 類節(jié)點(diǎn)。當(dāng)A 類節(jié)點(diǎn)被選擇完畢或者不存在A 類節(jié)點(diǎn)時(shí),可以從B 類節(jié)點(diǎn)中選擇主節(jié)點(diǎn)。當(dāng)RSnormal≤RSisum <RSaverage 時(shí),節(jié)點(diǎn)Ni 為C 類節(jié)點(diǎn)。C 類節(jié)點(diǎn)由于信譽(yù)評(píng)分偏低不適合擔(dān)任主節(jié)點(diǎn),但仍然可以作為從節(jié)點(diǎn)參與區(qū)塊共識(shí)。B 類和C 類節(jié)點(diǎn)統(tǒng)稱為初始節(jié)點(diǎn)層,即節(jié)點(diǎn)剛加入網(wǎng)絡(luò)時(shí),根據(jù)自身性能評(píng)估得到的基礎(chǔ)信譽(yù)值在初始節(jié)點(diǎn)層中。

        當(dāng)RSaccepted ≤RSisum <RSnormal 時(shí),節(jié)點(diǎn)Ni 為D 類節(jié)點(diǎn)。D 類節(jié)點(diǎn)信譽(yù)評(píng)分太低,疑似環(huán)境等非主觀因素造成信譽(yù)評(píng)分偏低,可以根據(jù)TCSN 策略使得D 類中的節(jié)點(diǎn)能夠快速向C 類和E 類2 類節(jié)點(diǎn)靠近,使得因環(huán)境等非主觀因素造成低信譽(yù)評(píng)分的誠(chéng)實(shí)節(jié)點(diǎn)能夠快速回到C 類正常參與共識(shí),而主觀作惡的惡意節(jié)點(diǎn)快速降到E 類被隔離起來,從而在初始節(jié)點(diǎn)層和惡意節(jié)點(diǎn)之間形成緩沖節(jié)點(diǎn)層。

        當(dāng)RSisum <RSaccepted 時(shí),節(jié)點(diǎn)Ni 為E 類節(jié)點(diǎn)。E 類節(jié)點(diǎn)信譽(yù)評(píng)分最差,歸為惡意節(jié)點(diǎn)被限制權(quán)限,不能參與共識(shí)和同步環(huán)節(jié)。

        NCD 不僅能夠提高節(jié)點(diǎn)的積極性,而且每次共識(shí)節(jié)點(diǎn)優(yōu)先從較高的信譽(yù)評(píng)分節(jié)點(diǎn)層中選擇,能夠有效預(yù)防惡意節(jié)點(diǎn)被選為主節(jié)點(diǎn),減少惡意節(jié)點(diǎn)參與共識(shí)帶來的通信損失以及視圖切換頻次,提高系統(tǒng)共識(shí)效率。

        2. 1. 3 TCSN

        當(dāng)節(jié)點(diǎn)的歷史信譽(yù)評(píng)分低于初始節(jié)點(diǎn)層即為D 類時(shí),很難對(duì)節(jié)點(diǎn)的好壞進(jìn)行判別。這主要是因?yàn)橛型獠凯h(huán)境等非惡意因素的存在影響正常節(jié)點(diǎn)歷史信譽(yù)評(píng)分的異常下降,使得正常節(jié)點(diǎn)“看起來”很像惡意節(jié)點(diǎn)(其實(shí)不是),那么當(dāng)這些非惡意因素被消除后節(jié)點(diǎn)的行為會(huì)趨于正常。此時(shí)為了區(qū)分D 類中的誠(chéng)實(shí)節(jié)點(diǎn)與拜占庭節(jié)點(diǎn),設(shè)計(jì)了TCSN,當(dāng)D 類節(jié)點(diǎn)連續(xù)作惡時(shí)TCSN 會(huì)給其更低的信譽(yù)評(píng)分使得快速下降到E 類,歸為拜占庭節(jié)點(diǎn);而當(dāng)D 類節(jié)點(diǎn)連續(xù)正常共識(shí)時(shí)TCSN 會(huì)給其更高的信譽(yù)評(píng)分使得快速上升到C 類,從而正常參與后續(xù)的共識(shí)過程。具體的TCSN 定義如下:

        式中:x 為D 類節(jié)點(diǎn)動(dòng)態(tài)信譽(yù)評(píng)分的增長(zhǎng)幅度,δ、ε為策略參數(shù),c 為常量。TCSN 為初始節(jié)點(diǎn)層中受環(huán)境等影響的誠(chéng)實(shí)節(jié)點(diǎn)提供共識(shí)緩沖與快速回歸通道,也能讓緩沖節(jié)點(diǎn)層中的惡意節(jié)點(diǎn)快速下落到E類,從而讓落在D 類的節(jié)點(diǎn)向兩邊快速分開。

        2. 2 RCBFT 共識(shí)算法具體設(shè)計(jì)

        RCBFT 共識(shí)算法針對(duì)當(dāng)前PBFT 共識(shí)算法中存在的問題,基于信譽(yù)分類的多層次節(jié)點(diǎn)架構(gòu)設(shè)計(jì)了RCP,提出了RSM,對(duì)網(wǎng)絡(luò)中的節(jié)點(diǎn)進(jìn)行分類分級(jí)管理,優(yōu)化主節(jié)點(diǎn)的選取,并采用RCP 來優(yōu)化傳統(tǒng)PBFT 共識(shí)算法的一致性協(xié)議,減少了節(jié)點(diǎn)間的通信時(shí)間,增強(qiáng)了網(wǎng)絡(luò)的安全性,同時(shí)也提高了算法的性能。具體設(shè)計(jì)如下:

        2. 2. 1 主節(jié)點(diǎn)選取策略

        傳統(tǒng)PBFT 共識(shí)算法的主節(jié)點(diǎn)選取策略為:

        i = vmodN, (12)

        式中:v 為當(dāng)前的視圖編號(hào),N 為節(jié)點(diǎn)總數(shù)。

        這種方式類似于隨機(jī)選取主節(jié)點(diǎn),惡意節(jié)點(diǎn)被選中的概率接近于三分之一。當(dāng)惡意節(jié)點(diǎn)成為主節(jié)點(diǎn)時(shí)會(huì)導(dǎo)致視圖被頻繁切換,增加系統(tǒng)時(shí)延,降低共識(shí)性能。

        在網(wǎng)絡(luò)中選取信譽(yù)評(píng)分最高的或者輪流選取主節(jié)點(diǎn)都不能防止敵手預(yù)測(cè)并集中攻擊。為了保證網(wǎng)絡(luò)的安全性并結(jié)合NCD,主節(jié)點(diǎn)選取采用在網(wǎng)絡(luò)中最高類別的誠(chéng)實(shí)節(jié)點(diǎn)群集中進(jìn)行隨機(jī)選擇的策略,可以有效防止信譽(yù)評(píng)分最高的節(jié)點(diǎn)一直被選為主節(jié)點(diǎn),從而避免該主節(jié)點(diǎn)成為被集中攻擊的對(duì)象。

        2. 2. 2 一致性協(xié)議CA 優(yōu)化

        PBFT 共識(shí)算法時(shí)間復(fù)雜度為O(n2 ),在三階段通信廣播中,存在2 次全網(wǎng)廣播,嚴(yán)重占用系統(tǒng)帶寬。尤其是在commit 確認(rèn)階段,節(jié)點(diǎn)之間會(huì)互相廣播commit 信息,目的是對(duì)視圖編號(hào)和消息序號(hào)進(jìn)行一致性校驗(yàn),以防節(jié)點(diǎn)處于不同的視圖中。為了解決這個(gè)問題,將NCD 中除選好的主節(jié)點(diǎn)之外的信譽(yù)評(píng)分高的前n 個(gè)節(jié)點(diǎn)作為備用節(jié)點(diǎn),存在備用節(jié)點(diǎn)表SNList 中,其中第一個(gè)節(jié)點(diǎn)稱為記錄員節(jié)點(diǎn)(Recorder Node,RN)。RN 會(huì)記錄主節(jié)點(diǎn)廣播的消息和消息所對(duì)應(yīng)的序號(hào),系統(tǒng)發(fā)生視圖切換后,可以在RN 中找到保存的信息,重新廣播。如果網(wǎng)絡(luò)中有其他節(jié)點(diǎn)的信譽(yù)評(píng)分超過備用節(jié)點(diǎn)表中的節(jié)點(diǎn),則將節(jié)點(diǎn)插入表中,并將信譽(yù)評(píng)分低的節(jié)點(diǎn)從表中移除。

        采用的RCP 機(jī)制,使得加入共識(shí)的節(jié)點(diǎn)穩(wěn)定性和可靠性比較高,惡意節(jié)點(diǎn)會(huì)被控制權(quán)限,新選取出來的主節(jié)點(diǎn)是惡意節(jié)點(diǎn)的概率很小,再加上RN 能保證切換后的節(jié)點(diǎn)擁有相同的視圖編號(hào),因此RCBFT 共識(shí)算法以PBFT 共識(shí)算法的三階段共識(shí)協(xié)議為基礎(chǔ),結(jié)合基于信譽(yù)分類的多層次節(jié)點(diǎn)架構(gòu),將PBFT 共識(shí)算法三階段共識(shí)優(yōu)化為二階段共識(shí),減小通信開銷,提高共識(shí)效率。RCBFT 共識(shí)算法一致性協(xié)議流程如圖7 所示。

        RCBFT 一致性協(xié)議具體優(yōu)化如下:

        ①pre-prepare:預(yù)準(zhǔn)備階段。主節(jié)點(diǎn)收到來自授權(quán)客戶端c 有效請(qǐng)求m 后,主節(jié)點(diǎn)向其他從節(jié)點(diǎn)廣播已簽名的pre-prepare 消息<<pre-prepare,v,n,d,rs>,m>,其中v 表示當(dāng)前的視圖編號(hào),n 表示主節(jié)點(diǎn)分配的序列號(hào),d 表示消息m 的摘要,rs 表示主節(jié)點(diǎn)信譽(yù)評(píng)分級(jí)別。從節(jié)點(diǎn)會(huì)驗(yàn)證消息簽名、摘要、視圖編號(hào)、序列號(hào)以及信譽(yù)評(píng)分級(jí)別是否大于或等于當(dāng)前節(jié)點(diǎn)等。注意,在存在拜占庭節(jié)點(diǎn)的情況下,為了提供有效性,所有節(jié)點(diǎn)發(fā)送的所有消息都會(huì)被簽名。

        ② prepare:準(zhǔn)備階段。一旦從節(jié)點(diǎn)從主節(jié)點(diǎn)處接收到有效的preprepare 消息,它就向其他節(jié)點(diǎn)廣播prepare 消息<prepare,v,n,d,i,rs>,其中,i 表示節(jié)點(diǎn)序號(hào),其余符號(hào)含義同上。其他節(jié)點(diǎn)會(huì)驗(yàn)證消息簽名、視圖編號(hào)、序列號(hào)以及信譽(yù)評(píng)分級(jí)別是否大于或等于當(dāng)前節(jié)點(diǎn)等。如果節(jié)點(diǎn)收到2f+1 條來自不同節(jié)點(diǎn)(包括其自身)的有效的prepare 消息與pre-prepare 消息匹配一致時(shí),則將消息直接返回給客戶端c,否則進(jìn)入視圖切換,新的主節(jié)點(diǎn)會(huì)查詢RN 中記錄的信息并重新廣播。

        ③ reply:響應(yīng)階段。節(jié)點(diǎn)發(fā)送reply 消息<reply,v,t,c,i,rs,r>給客戶端c,r 表示客戶端c 請(qǐng)求執(zhí)行最終結(jié)果,其余符號(hào)含義同上。c 收到來自不同節(jié)點(diǎn)的f+1 條有效響應(yīng)匹配一致時(shí),說明已達(dá)成共識(shí)。

        2. 2. 3 算法整體流程

        為保證整個(gè)算法的效率,將2 次共識(shí)的時(shí)間間隔上限設(shè)置為Δt。假設(shè)網(wǎng)絡(luò)中存在n 個(gè)節(jié)點(diǎn),將單個(gè)區(qū)塊包含交易數(shù)量上限設(shè)置為p,每輪共識(shí)生成區(qū)塊數(shù)量下限設(shè)置為q。圖8 所示為RCBFT 共識(shí)算法的流程,在許可區(qū)塊鏈網(wǎng)絡(luò)中,節(jié)點(diǎn)收到網(wǎng)絡(luò)上的交易數(shù)據(jù)后,都要向全網(wǎng)廣播交易,共識(shí)節(jié)點(diǎn)負(fù)責(zé)將交易數(shù)據(jù)放入自己的交易池,并分別封裝自己的區(qū)塊。

        共識(shí)算法具體步驟如下:

        ① 節(jié)點(diǎn)觸發(fā)RCP 進(jìn)行網(wǎng)絡(luò)初始化,按照T =λCT的周期執(zhí)行RCP,其中CT 為檢查點(diǎn)協(xié)議的周期,λ 為周期系數(shù),可以根據(jù)網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)量進(jìn)行調(diào)整,網(wǎng)絡(luò)中各個(gè)節(jié)點(diǎn)信譽(yù)評(píng)分為RSisum ,i = 1,2,…,n,并依據(jù)RSisum 將節(jié)點(diǎn)劃分為不同類別,不同類別的節(jié)點(diǎn)具有不同的權(quán)限,當(dāng)節(jié)點(diǎn)NCD 結(jié)果為Ncategory時(shí),進(jìn)入相應(yīng)的節(jié)點(diǎn)類別集合Ncategory Set。

        ② 在A 類集合ASet 中選出主節(jié)點(diǎn),獲得視圖編號(hào)v,若沒有ASet,則依次往后面的類別集合BSet、CSet 進(jìn)行主節(jié)點(diǎn)選取,并更新SNList,每次執(zhí)行一致性共識(shí)之前或者經(jīng)過Δt 時(shí)間后都會(huì)進(jìn)行主節(jié)點(diǎn)選取。

        ③客戶端c 發(fā)布交易Txc,用私鑰PrivateKeyc 對(duì)Txc 進(jìn)行簽名后,將Txc 向許可區(qū)塊鏈網(wǎng)絡(luò)進(jìn)行全網(wǎng)廣播,共識(shí)輪次為R。

        ④ 網(wǎng)絡(luò)中的節(jié)點(diǎn)收到發(fā)來的Txc 時(shí)都會(huì)進(jìn)行消息轉(zhuǎn)發(fā),當(dāng)共識(shí)節(jié)點(diǎn)收到Txc 后會(huì)用公鑰PublicKeyc進(jìn)行交易驗(yàn)證,驗(yàn)證通過的交易會(huì)放在自己的交易池TransPool 中,驗(yàn)證不通過則丟棄該交易。

        ⑤ 當(dāng)共識(shí)節(jié)點(diǎn)的TransPool 中至少有p 筆交易后,結(jié)合前一個(gè)區(qū)塊哈希信息PrevBlockHash 構(gòu)造當(dāng)前的區(qū)塊Blocki,其中i 為區(qū)塊編號(hào),進(jìn)入下一步驟。

        ⑥ 主節(jié)點(diǎn)對(duì)這p 筆交易按時(shí)間戳排序,驗(yàn)證交易合理性和合法性,以每個(gè)區(qū)塊p 筆交易進(jìn)行區(qū)塊打包,生成區(qū)塊哈希BlockHashi,并觸發(fā)RCBFT 優(yōu)化后的CA,向其他共識(shí)節(jié)點(diǎn)廣播preprepare 消息。

        ⑦ 其他共識(shí)節(jié)點(diǎn)收到preprepare 消息,驗(yàn)證通過后向其他共識(shí)節(jié)點(diǎn)發(fā)送prepare 消息,并等待來自其他共識(shí)節(jié)點(diǎn)的prepare 消息。若驗(yàn)證失敗,則懷疑主節(jié)點(diǎn)為拜占庭節(jié)點(diǎn),并且不會(huì)再給其他節(jié)點(diǎn)發(fā)送共識(shí)消息,若t>Δt 或沒有接收到足夠多的prepare消息時(shí),執(zhí)行VCP 并重新選擇主節(jié)點(diǎn),新的主節(jié)點(diǎn)會(huì)查詢SNList 中RN 記錄的信息并重新廣播,返回執(zhí)行上一步。

        ⑧ 如果節(jié)點(diǎn)收到2f+1 條來自不同節(jié)點(diǎn)(包括其自身)的消息匹配一致時(shí),則將消息直接返回給客戶端c,客戶端c 收到來自不同節(jié)點(diǎn)的f+1 條有效響應(yīng)匹配一致時(shí),說明此時(shí)已達(dá)成共識(shí)。

        ⑨ 共識(shí)完成后,節(jié)點(diǎn)對(duì)新的區(qū)塊鏈進(jìn)行同步,清空TransPool 中已上鏈的這p 筆交易,同時(shí)區(qū)塊編號(hào)增1,即i = i+1,并更新節(jié)點(diǎn)RSisum ,同時(shí)周期執(zhí)行檢查點(diǎn)協(xié)議釋放日志消息。

        ⑩ 本輪共識(shí)完成,R = R + 1,準(zhǔn)備進(jìn)入新一輪共識(shí)。

        3 算法分析

        3. 1 安全性分析

        假設(shè)網(wǎng)絡(luò)中存在拜占庭節(jié)點(diǎn)數(shù)量為f,節(jié)點(diǎn)總數(shù)n = 3f+1。

        安全性1:RCBFT 算法大大減小了拜占庭節(jié)點(diǎn)參與共識(shí)的概率。

        證明:一般而言,如果一個(gè)節(jié)點(diǎn)可以正常地進(jìn)行共識(shí),不存在延時(shí)轉(zhuǎn)發(fā)、崩潰宕機(jī)以及惡意篡改等行為,那么這個(gè)節(jié)點(diǎn)的信譽(yù)評(píng)分就會(huì)處于一個(gè)比較高的水平,能夠分到A 類可信節(jié)點(diǎn)層,即使節(jié)點(diǎn)自身性能較差,但由于RCP 的設(shè)計(jì),初始類別也至少為C 類,隨著正常共識(shí)行為的積累,也能慢慢升級(jí)類別,而不同類別有著相應(yīng)的共識(shí)權(quán)限。如果節(jié)點(diǎn)偶爾出現(xiàn)宕機(jī)等因環(huán)境因素導(dǎo)致的非主觀惡意行為,信譽(yù)評(píng)分會(huì)按照相應(yīng)規(guī)則減少,但結(jié)合RCP 中TCSN 策略對(duì)誠(chéng)實(shí)節(jié)點(diǎn)信譽(yù)評(píng)分的增加力度,只要在之后能夠正常地參與到共識(shí)當(dāng)中,那么它的信譽(yù)評(píng)分就會(huì)快速增加以回到初始節(jié)點(diǎn)層。與此同時(shí),若發(fā)現(xiàn)節(jié)點(diǎn)出現(xiàn)惡意行為,則根據(jù)TCSN 策略對(duì)拜占庭節(jié)點(diǎn)的處罰力度,會(huì)使得節(jié)點(diǎn)迅速降到E 類,并對(duì)E 類惡意節(jié)點(diǎn)進(jìn)行權(quán)限控制,使得共識(shí)過程中暴露出來的拜占庭節(jié)點(diǎn)逐漸減少,高信譽(yù)評(píng)分節(jié)點(diǎn)會(huì)逐漸增多。因此,RCBFT 算法采用的RCP 能夠大大減小拜占庭節(jié)點(diǎn)參與共識(shí)的概率。

        安全性2:RCBFT 算法提高了共識(shí)過程中視圖切換的安全性。

        證明:假設(shè)PBFT 共識(shí)過程中觸發(fā)VCP 的概率為p:

        p = 平均出發(fā)VCP 的次數(shù)/總共識(shí)輪次。(13)

        由安全性1 可知,RCBFT 算法采用的RCP 能夠大大減小拜占庭節(jié)點(diǎn)參與共識(shí)的概率,即可以有效防止拜占庭節(jié)點(diǎn)被選為主節(jié)點(diǎn),那么RCBFT 由于主節(jié)點(diǎn)故障而導(dǎo)致視圖切換的概率為p1 ,且p1 <p。因此,RCBFT 算法的RCP 機(jī)制降低了拜占庭節(jié)點(diǎn)的共識(shí)參與,提高了節(jié)點(diǎn)誠(chéng)實(shí)作為的積極性,也提高了共識(shí)過程中視圖切換的安全性。

        安全性3:系統(tǒng)共識(shí)進(jìn)程不會(huì)因?yàn)榘菡纪ス?jié)點(diǎn)的惡意行為而中斷,即RCBFT 算法具有活性。

        證明:已知網(wǎng)絡(luò)中存在f 個(gè)拜占庭節(jié)點(diǎn),由安全性1、2 可知,網(wǎng)絡(luò)的拜占庭節(jié)點(diǎn)數(shù)量是在逐漸減少的,視圖切換的概率也在減小。與此同時(shí),如果主節(jié)點(diǎn)作惡或者因網(wǎng)絡(luò)問題宕機(jī)使得共識(shí)停滯,系統(tǒng)會(huì)根據(jù)VCP,開始新的共識(shí),選取新的較高信譽(yù)評(píng)分的主節(jié)點(diǎn),新的主節(jié)點(diǎn)可以在RN 中找到保存的信息,重新廣播,防止出現(xiàn)無限期的共識(shí)等待,進(jìn)而使系統(tǒng)共識(shí)進(jìn)程不會(huì)因?yàn)榘菡纪ス?jié)點(diǎn)的作惡行為而中斷,保持了活性。

        安全性4:RCBFT 算法的安全性不會(huì)因commit階段的刪除而下降。

        證明:

        首先定義一些符號(hào)和術(shù)語(yǔ):f 是系統(tǒng)中最多可以容忍的惡意節(jié)點(diǎn)數(shù)量。VCP 是一種視圖切換協(xié)議,可以通過變更當(dāng)前視圖到新視圖以此保證系統(tǒng)活性。RCP 是一種信譽(yù)分類協(xié)議,可以優(yōu)化傳統(tǒng)PBFT 共識(shí)算法的一致性協(xié)議,減少節(jié)點(diǎn)間的通信時(shí)間,增強(qiáng)網(wǎng)絡(luò)的安全性,同時(shí)提高算法的性能。

        ① 共識(shí)安全性

        在RCBFT 系統(tǒng)中,采用RCP 來評(píng)估節(jié)點(diǎn)的歷史表現(xiàn)并對(duì)其進(jìn)行信譽(yù)分類。通過RCP,系統(tǒng)能夠懲罰不誠(chéng)實(shí)或低效的節(jié)點(diǎn),降低其后續(xù)參與共識(shí)的概率。這減少了拜占庭節(jié)點(diǎn)干擾共識(shí)過程的可能性,增強(qiáng)了系統(tǒng)的共識(shí)安全性。

        此外,通過VCP,系統(tǒng)能夠及時(shí)檢測(cè)到拜占庭節(jié)點(diǎn)或歷史表現(xiàn)較差節(jié)點(diǎn)擔(dān)任領(lǐng)導(dǎo)節(jié)點(diǎn)的情況,并進(jìn)行必要的視圖更改。通過降低拜占庭節(jié)點(diǎn)或歷史表現(xiàn)較差節(jié)點(diǎn)擔(dān)任領(lǐng)導(dǎo)節(jié)點(diǎn)的頻率,系統(tǒng)能夠減小共識(shí)過程中出現(xiàn)異常的可能性,從而增強(qiáng)了共識(shí)協(xié)議的安全性。因此,通過RCP 和VCP 的組合,RCBFT 系統(tǒng)能夠在半同步模型下提供確定性的共識(shí)安全性保證。

        ② 共識(shí)活性

        在RCBFT 系統(tǒng)中,通過VCP 確保系統(tǒng)中的正常節(jié)點(diǎn)能夠形成一個(gè)活躍的虛擬子網(wǎng)絡(luò),即使在某些情況下需要進(jìn)行視圖切換。通過VCP,系統(tǒng)能夠及時(shí)檢測(cè)到節(jié)點(diǎn)的異常,并進(jìn)行必要的視圖更改以維護(hù)系統(tǒng)的活躍性。因此,采用RCP 懲罰不誠(chéng)實(shí)的節(jié)點(diǎn)或低效的節(jié)點(diǎn)能夠使得系統(tǒng)保證共識(shí)活性。

        3. 2 性能分析

        對(duì)比PBFT 共識(shí)算法和RCBFT 共識(shí)算法在共識(shí)過程中所耗費(fèi)的通信開銷。在共識(shí)過程中,2 種共識(shí)算法的通信開銷主要集中在CA 和VCP 這2 個(gè)協(xié)議上,因此主要從通信次數(shù)來定量衡量這2 個(gè)協(xié)議共識(shí)過程的通信開銷。

        假設(shè)網(wǎng)絡(luò)中節(jié)點(diǎn)數(shù)量為n,PBFT 共識(shí)過程中觸發(fā)VCP 的概率為p。RCBFT 觸發(fā)VCP 的概率為p1 ,且p1 <p,通信次數(shù)統(tǒng)計(jì)用CommNum 表示,則有CommNumPBFT ≈(p+2)n(n-1),CommNumRPBFT =(n-1)(n+p1 n+1)。PBFT 共識(shí)算法和RCBFT 共識(shí)算法通信次數(shù)的比值為:

        R = CommNumPBFT/CommNumRCBFT= (p + 2)n/n + p1 n + 1。(14)

        取n∈[0,200],p1 = 0. 2,p1 <p,繪制在節(jié)點(diǎn)數(shù)不同以及觸發(fā)VCP 概率不同時(shí)通信次數(shù)的比值,通信次數(shù)比較如圖9 所示。

        4 仿真實(shí)驗(yàn)

        實(shí)驗(yàn)操作系統(tǒng)為Windows 11,硬件環(huán)境為處理器11th Gen Intel(R)Core(TM)i511320H @ 3. 20 GHz,機(jī)帶RAM 為16 GB,編譯器使用版本為1. 76. 0(usersetup)的VSCode,在Node. js v16. 14. 2 環(huán)境中采用JavaScript 編寫,結(jié)合WebSocket 技術(shù)實(shí)現(xiàn)節(jié)點(diǎn)之間的通信。

        本實(shí)驗(yàn)對(duì)惡意節(jié)點(diǎn)的設(shè)定為在共識(shí)過程中會(huì)不發(fā)送消息或故意發(fā)送錯(cuò)誤消息的節(jié)點(diǎn)。為了觀察節(jié)點(diǎn)作惡情況以及TCSN 策略對(duì)節(jié)點(diǎn)的影響,在模擬測(cè)試中分別對(duì)10 輪共識(shí)過程中2 個(gè)惡意節(jié)點(diǎn)連續(xù)作惡以及2 個(gè)誠(chéng)實(shí)節(jié)點(diǎn)初始受環(huán)境影響延時(shí)轉(zhuǎn)發(fā)與崩潰宕機(jī)等情況進(jìn)行模擬,具體如圖10 所示。

        如圖10(a)所示惡意節(jié)點(diǎn)連續(xù)作惡情況,節(jié)點(diǎn)1與節(jié)點(diǎn)2 作為惡意節(jié)點(diǎn),因初始性能較好從而獲得較高的初始信譽(yù)評(píng)分被分為B 類節(jié)點(diǎn),參與共識(shí)過程。節(jié)點(diǎn)1 與節(jié)點(diǎn)2 連續(xù)在第2 輪共識(shí)過程中作惡時(shí),由于動(dòng)態(tài)信譽(yù)評(píng)分p3 的調(diào)整并結(jié)合時(shí)間衰減函數(shù),使得節(jié)點(diǎn)信譽(yù)評(píng)分降到(20,40),即歸為C 類節(jié)點(diǎn)。隨著節(jié)點(diǎn)的連續(xù)惡意行為的存在,節(jié)點(diǎn)的信譽(yù)評(píng)分幾乎呈線性遞減。當(dāng)節(jié)點(diǎn)信譽(yù)評(píng)分降到(0,20)時(shí),此時(shí)歸為D 類節(jié)點(diǎn)并啟動(dòng)TCSN 策略,使得節(jié)點(diǎn)快速向E 類節(jié)點(diǎn)收斂。從圖10(a)可知,在信譽(yù)評(píng)分為D 時(shí),節(jié)點(diǎn)從第5 輪進(jìn)入D 類到第7 輪連續(xù)2 次作惡就會(huì)下降到E 類,被分類為惡意節(jié)點(diǎn),該節(jié)點(diǎn)將不能參與共識(shí)過程,被限制權(quán)限。

        如圖10(b)所示誠(chéng)實(shí)節(jié)點(diǎn)因環(huán)境問題導(dǎo)致的非主觀作惡情況,節(jié)點(diǎn)3 和節(jié)點(diǎn)4 因自身性能較差被分為C 類,在第1 ~ 2 輪中節(jié)點(diǎn)4 因延時(shí)轉(zhuǎn)發(fā)行為、節(jié)點(diǎn)4 因崩潰宕機(jī)行為被降為D 類從而觸發(fā)TCSN策略。由于節(jié)點(diǎn)3 和節(jié)點(diǎn)4 在第3 輪環(huán)境改善后,信譽(yù)評(píng)分會(huì)快速增加。在第5 輪開始信譽(yù)評(píng)分線性增加,共識(shí)過程正常進(jìn)行。

        同時(shí),為了觀察采用RCP 后的RCBFT 與PBFT共識(shí)算法在共識(shí)過程中惡意節(jié)點(diǎn)數(shù)量的變化,實(shí)驗(yàn)將共識(shí)節(jié)點(diǎn)數(shù)量設(shè)置為10,其中拜占庭節(jié)點(diǎn)設(shè)置為2 個(gè),即為前述的節(jié)點(diǎn)1 和節(jié)點(diǎn)2,如圖11 所示,當(dāng)共識(shí)輪次進(jìn)行到第7 輪時(shí),RCBFT 算法中惡意節(jié)點(diǎn)的信譽(yù)評(píng)分低于0 時(shí),節(jié)點(diǎn)被控制權(quán)限,不再參與共識(shí),此時(shí)共識(shí)節(jié)點(diǎn)中的惡意節(jié)點(diǎn)總數(shù)為0,而PBFT沒有相應(yīng)的節(jié)點(diǎn)選取與控制機(jī)制,惡意節(jié)點(diǎn)一直在網(wǎng)絡(luò)中參與共識(shí)。因此,RCBFT 算法在節(jié)點(diǎn)激勵(lì)與惡意節(jié)點(diǎn)控制上優(yōu)于PBFT 算法。

        共識(shí)時(shí)延是衡量算法性能的重要指標(biāo)之一,具體是指完成一輪共識(shí)所需要的時(shí)間,即從發(fā)起客戶端請(qǐng)求的時(shí)間到完成共識(shí)的時(shí)間。共識(shí)時(shí)延越小,交易確認(rèn)時(shí)間越短,達(dá)成共識(shí)的速度也越快。具體計(jì)算如下:

        Tdelay = Tfinish - Trequest, (15)

        式中:Tdelay 為共識(shí)時(shí)延,Tfinish 為完成共識(shí)的時(shí)間點(diǎn),Trequest 為發(fā)起客戶端請(qǐng)求的時(shí)間點(diǎn)。

        為了觀察節(jié)點(diǎn)數(shù)量對(duì)共識(shí)時(shí)延的影響,在模擬實(shí)驗(yàn)中測(cè)試RCBFT 和PBFT 共識(shí)算法每輪共識(shí)生成一個(gè)區(qū)塊并且共識(shí)節(jié)點(diǎn)數(shù)量?。?、7、10、13 和16時(shí),共識(shí)時(shí)延隨節(jié)點(diǎn)數(shù)量的變化情況,如圖12 所示。

        從圖12 可知,2 種BFT 類共識(shí)算法共識(shí)時(shí)延都會(huì)隨著節(jié)點(diǎn)數(shù)量的增加而增加,但RCBFT 共識(shí)算法的共識(shí)時(shí)延明顯低于PBFT 共識(shí)算法,這是因?yàn)椋校拢疲?三階段共識(shí)的通信復(fù)雜度很高,節(jié)點(diǎn)之間兩兩通信耗費(fèi)了很多時(shí)間。在節(jié)點(diǎn)數(shù)量從4 增加到16 的過程中,曲線斜率增大,PBFT 共識(shí)算法的共識(shí)時(shí)延增加速率明顯快于RCBFT 共識(shí)算法的共識(shí)時(shí)延增加速率,這主要是由于RCBFT 共識(shí)算法采用了RCP 改進(jìn),并優(yōu)化了共識(shí)過程,通過信譽(yù)評(píng)分將節(jié)點(diǎn)分類管理,參與共識(shí)的節(jié)點(diǎn)具有較高的可信度。這些節(jié)點(diǎn)具有更好的可靠性與穩(wěn)定性,有利于降低共識(shí)中發(fā)生錯(cuò)誤的概率,提高了共識(shí)算法效率。

        為了觀察RCBFT 與PBFT 共識(shí)算法的交易吞吐量變化,通過在模擬實(shí)驗(yàn)中修改不同的參數(shù)設(shè)置來對(duì)比算法的性能。算法預(yù)先設(shè)置一輪共識(shí)生成一個(gè)區(qū)塊,固定區(qū)塊包含的交易數(shù)量,同時(shí)用多進(jìn)程模擬區(qū)塊鏈網(wǎng)絡(luò)中的共識(shí)節(jié)點(diǎn)并且節(jié)點(diǎn)之間采用WebSocket 通信,每輪共識(shí)時(shí)一個(gè)節(jié)點(diǎn)會(huì)向其他各個(gè)節(jié)點(diǎn)發(fā)送數(shù)據(jù)。圖13 顯示了共識(shí)節(jié)點(diǎn)數(shù)量取4、7、10、13 和16 時(shí),RCBFT 與PBFT 共識(shí)算法的交易吞吐量隨節(jié)點(diǎn)數(shù)量的變化而變化。

        由圖13 可以看出,隨著節(jié)點(diǎn)數(shù)量的增加,RCBFT 和PBFT 共識(shí)算法的交易吞吐量均呈下降趨勢(shì)。這是因?yàn)殡S著節(jié)點(diǎn)數(shù)量的增加,共識(shí)所需的時(shí)間也會(huì)增加。但是當(dāng)網(wǎng)絡(luò)中的節(jié)點(diǎn)數(shù)量保持一致時(shí),RCBFT 共識(shí)算法的交易吞吐量要優(yōu)于PBFT 算法。RCBFT 共識(shí)算法的特點(diǎn)在于采用了RCP 協(xié)議使得信譽(yù)評(píng)分較高的共識(shí)節(jié)點(diǎn)才能參與共識(shí)過程,同時(shí)只需要進(jìn)行兩階段通信。這些改進(jìn)優(yōu)化了系統(tǒng)的吞吐量。

        5 結(jié)束語(yǔ)

        提出了一種基于信譽(yù)分類的拜占庭共識(shí)算法———RCBFT。該算法針對(duì)傳統(tǒng)的PBFT 共識(shí)算法的不足之處進(jìn)行了改進(jìn),通過引入信譽(yù)分類協(xié)議并優(yōu)化RSM,依據(jù)節(jié)點(diǎn)的歷史共識(shí)行為所獲得的信譽(yù)評(píng)分來對(duì)參與節(jié)點(diǎn)進(jìn)行動(dòng)態(tài)分類以及分級(jí)管理,提高了視圖切換安全性,同時(shí)對(duì)PBFT 共識(shí)算法的三階段共識(shí)協(xié)議進(jìn)行優(yōu)化,減少通信開銷,在確保容錯(cuò)性的同時(shí)能夠提高算法性能。實(shí)驗(yàn)結(jié)果表明,與PBFT 共識(shí)算法相比,RCBFT 共識(shí)算法有著更高的交易吞吐量與更低的共識(shí)時(shí)延。

        參考文獻(xiàn)

        [1] CACHIN C, VUKOLIC' M. Blockchain ConsensusProtocols in the Wild[EB / OL]. (2017-07-06)[2023-08-15]. https:∥arxiv. org / abs / 1707. 01873.

        [2] 曾詩(shī)欽,霍如,黃韜,等. 區(qū)塊鏈技術(shù)研究綜述:原理,進(jìn)展與應(yīng)用[J]. 通信學(xué)報(bào),2020,41(1):134-151.

        [3] LEI K,ZHANG Q C,XU L M,et al. Reputationbased Byzantine FaultTolerance for Consortium Blockchain[C]∥2018 IEEE 24th International Conference on Parallel andDistributed Systems (ICPADS). Singapore:IEEE,2018:604-611.

        [4] GAO S,YU T Y,ZHU J M,et al. TPBFT:An EigenTrustbased Practical Byzantine Fault Tolerance Consensus Algorithm [J ]. China Communications,2019,16 (12 ):111-123.

        [5] 甘俊,李強(qiáng),陳子豪,等. 區(qū)塊鏈實(shí)用拜占庭容錯(cuò)共識(shí)算法的改進(jìn)[J]. 計(jì)算機(jī)應(yīng)用,2019,39(7):2148-2155.

        [6] 宋哲. 改進(jìn)實(shí)用拜占庭容錯(cuò)算法的區(qū)塊鏈系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D]. 桂林:桂林電子科技大學(xué),2020.

        [7] 周藝華,賈立圓,賈玉欣,等. 基于信譽(yù)度的Hashgraph共識(shí)算法[J ]. 計(jì)算機(jī)應(yīng)用研究,2021,38 (9 ):2590-2593.

        [8] BAIRD L. The Swirlds Hashgraph Consensus Algorithm:Fair,Fast,Byzantine Fault Tolerance [R / OL]. (2016 -05- 31)[2023 - 08 - 18 ]. https:∥ www. swirlds. com /downloads / SWIRLDS-TR-2016-01. pdf

        [9] LI C X,LI P L,ZHOU D,et al. Scaling Nakamoto Consensus to Thousands of Transactions Per Second [EB /OL]. (2018 - 05 - 10)[2023 - 08 - 19]. https:∥ arxiv.org / abs / 1805. 03870.

        [10] LI C X,LI P L,ZHOU D,et al. A DecentralizedBlockchain with High Throughput and Fast Confirmation[C]∥2020 USENIX Annual Technical Conference. [S.l. ]:USENIX,2020:515-528.

        [11] SOMPOLINSKY Y,ZOHAR A. Secure Highrate Transaction Processing in Bitcoin [C]∥ Financial Cryptographyand Data Security(FC 2015). San Juan:Springer,2015:507-527.

        [12] 陳潤(rùn)宇,王倫文,朱然剛. 基于信譽(yù)值投票與隨機(jī)數(shù)選舉的PBFT 共識(shí)算法[J]. 計(jì)算機(jī)工程,2022,48 (6):42-49.

        [13] 黃子鑫,黨建武,王陽(yáng)萍,等. 基于改進(jìn)PBFT 的區(qū)塊鏈工程監(jiān)理數(shù)據(jù)共享模型[J]. 無線電工程,2023,53(2):298-307.

        [14] LAMPORT L,SHOSTAK R,PEASE M. The ByzantineGenerals Problem[J]. ACM Transactions on ProgrammingLanguages and Systems,1982,4(3):382-401.

        [15] CASTRO M,LISKOV B. Practical Byzantine Fault Tolerance [C ] ∥ OSDI ’99:Proceedings of the ThirdSymposium on Operating Systems Design and Implementation. New Orleans:USENIX,1999:173-186.

        [16] LI W Y,FENG C L,ZHANG L,et al. A Scalable MultiLayer PBFT Consensus for Blockchain[J]. IEEE Transactions on Parallel and Distributed Systems,2020,32(5):1146-1160.

        [17] 方維維,王子岳,宋慧麗,等. 一種面向區(qū)塊鏈的優(yōu)化PBFT 共識(shí)算法[J]. 北京交通大學(xué)學(xué)報(bào),2019,43(5):58-64.

        作者簡(jiǎn)介

        高建彬 男,(1976—),博士,副教授。主要研究方向:區(qū)塊鏈理論與應(yīng)用、網(wǎng)絡(luò)數(shù)據(jù)安全。

        劉洋洋 男,(1988—),博士研究生。主要研究方向:區(qū)塊鏈隱私與安全。

        夏 虎 男,(1981—),博士,副研究員。主要研究方向:區(qū)塊鏈理論與應(yīng)用、大數(shù)據(jù)安全。

        程 捷 男,(2003—),碩士研究生。主要研究方向:區(qū)塊鏈組網(wǎng)理論。

        (通信作者)夏 琦 女,(1979—),博士,教授,博士生導(dǎo)師。主要研究方向:區(qū)塊鏈理論與應(yīng)用、網(wǎng)絡(luò)數(shù)據(jù)安全、大數(shù)據(jù)安全。

        基金項(xiàng)目:國(guó)家自然科學(xué)基金(U22B2029);四川省科技計(jì)劃項(xiàng)目(2023JDRC0001);基礎(chǔ)加強(qiáng)計(jì)劃技術(shù)領(lǐng)域基金項(xiàng)目(2021JCJQJJ0463)

        猜你喜歡
        區(qū)塊鏈
        區(qū)塊鏈對(duì)互聯(lián)網(wǎng)金融發(fā)展的重塑與挑戰(zhàn)分析
        基于區(qū)塊鏈技術(shù)的海上散裝液體化學(xué)品運(yùn)輸安全監(jiān)管方法
        保險(xiǎn)企業(yè)的區(qū)塊鏈技術(shù)應(yīng)用方向選擇研究
        區(qū)塊鏈技術(shù)在金融領(lǐng)域的應(yīng)用與前景研究
        區(qū)塊鏈技術(shù)的應(yīng)用價(jià)值分析
        商情(2016年40期)2016-11-28 11:24:12
        “區(qū)塊鏈”發(fā)展現(xiàn)狀評(píng)述及展望
        商(2016年34期)2016-11-24 14:46:00
        “區(qū)塊鏈”的茍且、詩(shī)和遠(yuǎn)方
        基于區(qū)塊鏈技術(shù)的數(shù)字貨幣與傳統(tǒng)貨幣辨析
        互聯(lián)網(wǎng)金融新模式與中小企業(yè)融資關(guān)系研究
        智能合約與金融合約
        商(2016年6期)2016-04-20 17:50:36
        日本人妻免费一区二区三区| 99精品国产闺蜜国产在线闺蜜| 亚洲综合精品在线观看中文字幕| 谷原希美中文字幕在线| 综合色就爱涩涩涩综合婷婷| 精品国产乱码久久久软件下载| 亚洲AV无码国产精品久久l| av天堂中文亚洲官网| 免费在线黄色电影| 人人玩人人添人人澡| 免费国产h视频在线观看86| 手机av在线播放网站| 久久久久亚洲av无码专区首 | 日韩精品人妻久久久一二三| 国产高清一区二区三区视频| 亚洲不卡无码高清视频| 日韩成人高清不卡av| 综合亚洲伊人午夜网| 性色av无码一区二区三区人妻| 亚洲三区二区一区视频| av国产自拍在线观看| 亚洲一区二区三区影院| 无码人妻一区二区三区免费| 久久精品国产亚洲片| 人妻制服丝袜中文字幕| 国产精品欧美一区二区三区| 亚洲精品一二区| 国产一区二区三区特区| 高清午夜福利电影在线| 免费人成无码大片在线观看| 黄 色 成 年 人 网 站免费| 青青草手机在线观看视频在线观看 | 亚洲一品道一区二区三区| 久久综合亚洲色hezyo国产| 亚洲无毛片| 精品国产车一区二区三区| 激情综合五月| 日韩人妻精品无码一区二区三区| a√无码在线观看| 黄片小视频免费观看完整版| 久久综合国产乱子伦精品免费|