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

        ?

        CS-Raft:適用于聯(lián)盟鏈的拜占庭容錯(cuò)共識(shí)算法

        2024-04-29 00:00:00翟社平聶浩楠陸嫻婧楊銳

        摘 要:針對(duì)目前聯(lián)盟鏈共識(shí)算法的性能不足,提出了一種基于信用評(píng)分的可拜占庭容錯(cuò)聯(lián)盟鏈共識(shí)算法CS-Raft。首先,為所有節(jié)點(diǎn)賦予信用評(píng)分屬性,節(jié)點(diǎn)的信用評(píng)分根據(jù)節(jié)點(diǎn)的共識(shí)行為、活躍度、加入集群時(shí)間等指標(biāo)進(jìn)行更新,信用評(píng)分越高代表節(jié)點(diǎn)可信度越高;其次,根據(jù)節(jié)點(diǎn)信用評(píng)分選取監(jiān)督節(jié)點(diǎn),監(jiān)督節(jié)點(diǎn)具有檢驗(yàn)權(quán),可以參與領(lǐng)導(dǎo)人選舉,監(jiān)督節(jié)點(diǎn)的設(shè)置可以有效抵抗拜占庭惡意節(jié)點(diǎn)的攻擊;最后,改善了領(lǐng)導(dǎo)人選舉中選票分裂問題,對(duì)領(lǐng)導(dǎo)人選舉的速度進(jìn)行提升。經(jīng)實(shí)驗(yàn)分析,CS-Raft算法相較于PBFT算法在實(shí)現(xiàn)拜占庭容錯(cuò)的同時(shí),有效地減少了共識(shí)時(shí)間延遲、提高了系統(tǒng)吞吐量,并加快了其領(lǐng)導(dǎo)人選舉速度。

        關(guān)鍵詞:聯(lián)盟鏈; 拜占庭容錯(cuò); 共識(shí)算法; 信用評(píng)分

        中圖分類號(hào):TP301文獻(xiàn)標(biāo)志碼: A文章編號(hào):1001-3695(2024)04-005-0995-06

        doi:10.19734/j.issn.1001-3695.2023.07.0338

        CS-Raft:Byzantine fault tolerant consensus algorithm for consortium chains

        Zhai Sheping Nie Haonan Lu Xianjing Yang Ruia

        Abstract:This paper proposed a credit-score-based Byzantine fault-tolerant consensus algorithm,called CS-Raft,to address the inadequate performance of the current consensus algorithms in consortium chains.Initially,it assigned credit score attributes to all nodes and updated the credit score of each node according to their consensus behavior,activity level,time of joining the cluster and other metrics.The higher the credit score,the higher the node’s trustworthiness.Secondly,it selected monitoring nodes based on their credit scores,which had the authority to inspect and participate in leader elections.The setting of monitoring nodes could effectively resist attacks from Byzantine malicious nodes.Finally,it made improvements to address the issue of vote splitting in leader elections,thereby enhancing the speed of leader election.Experimental analysis shows that compared to the PBFT algorithm,

        the CS-Raft algorithm effectively reduces consensus latency,increases system throughput,and accelerates leader election speed while achieving Byzantine fault tolerance.

        Key words:consortium blockchain; Byzantine fault tolerance; consensus algorithm; credit score

        0 引言

        比特幣是迄今為止規(guī)模最大、最早出現(xiàn)的分布式網(wǎng)絡(luò)加密數(shù)字貨幣之一,它的出現(xiàn)也推動(dòng)了區(qū)塊鏈技術(shù)的發(fā)展并引起了全球企業(yè)的廣泛關(guān)注[1]。目前,區(qū)塊鏈技術(shù)的研究可分為底層技術(shù)和應(yīng)用場(chǎng)景兩個(gè)方向。區(qū)塊鏈技術(shù)在不同場(chǎng)景下需要根據(jù)需求對(duì)底層技術(shù)進(jìn)行改進(jìn)。共識(shí)算法是區(qū)塊鏈底層技術(shù)之一,對(duì)確保區(qū)塊鏈系統(tǒng)的安全、穩(wěn)定和高效起著至關(guān)重要的作用[2]。

        根據(jù)節(jié)點(diǎn)數(shù)量和準(zhǔn)入機(jī)制的不同,區(qū)塊鏈可以被分類為許可鏈和非許可鏈[3]。公有鏈?zhǔn)欠窃S可鏈的一種,任何人都可以參與其中并成為網(wǎng)絡(luò)中的節(jié)點(diǎn),通過共識(shí)算法來維護(hù)網(wǎng)絡(luò)的安全性和可信性,同時(shí)不受單個(gè)中央機(jī)構(gòu)控制,數(shù)據(jù)完全公開透明。由于這種特性,公有鏈的適用場(chǎng)景有限,通常適用于對(duì)信任、安全和持久性要求較高的應(yīng)用場(chǎng)景,如選舉投票[4]、資產(chǎn)注冊(cè)[5]、公益捐款[6]和物聯(lián)網(wǎng)[7]等。公有鏈的主流共識(shí)算法有工作量證明(PoW)[1]、權(quán)益證明(PoS)[8]和委托權(quán)益證明(DPoS)[9]等。相比之下,許可鏈(包括聯(lián)盟鏈[10]和私有鏈[11])系統(tǒng)中的每個(gè)節(jié)點(diǎn)都必須經(jīng)過授權(quán)才能參與,確保了節(jié)點(diǎn)的可管理性和安全性。聯(lián)盟鏈對(duì)開放性和去中心化程度有所限制,通常需要進(jìn)行身份驗(yàn)證和權(quán)限管理。實(shí)用拜占庭容錯(cuò)(PBFT)[12]共識(shí)算法是典型的聯(lián)盟鏈共識(shí)算法。

        私有鏈?zhǔn)且环N僅限于特定組織或個(gè)人內(nèi)部使用的區(qū)塊鏈網(wǎng)絡(luò)模型,具有較高的控制權(quán)和私密性。Paxos[13]和Raft[14]是目前主流的私有鏈共識(shí)算法。相較之下,聯(lián)盟鏈通常由多個(gè)相互已知身份的組織建立,如企業(yè)間的供應(yīng)鏈管理[15]、政府部門間的數(shù)據(jù)共享[16]、銀行間的支付結(jié)算[17]等。聯(lián)盟鏈應(yīng)用場(chǎng)景廣泛,發(fā)展前景廣闊,因此,現(xiàn)有聯(lián)盟鏈共識(shí)算法需要提高驗(yàn)證速度和吞吐量,以滿足應(yīng)用需求。

        在聯(lián)盟鏈共識(shí)算法研究方面,文獻(xiàn)[18]提出了適用于聯(lián)盟鏈的帶有監(jiān)督節(jié)點(diǎn)的兩級(jí)共識(shí)機(jī)制RBFT,采用網(wǎng)絡(luò)分片思想實(shí)現(xiàn)了高效的共識(shí)機(jī)制,比傳統(tǒng)的PBFT和Raft算法具有更高的擴(kuò)展性和拜占庭容錯(cuò)能力。文獻(xiàn)[19]提出了RB-Raft算法,該算法具有抵抗拜占庭節(jié)點(diǎn)的能力,并且通過哈希鏈和動(dòng)態(tài)驗(yàn)證機(jī)制來解決日志偽造和驗(yàn)證問題,此外,該算法還提出了基于門限加密的遺書機(jī)制,以解決拜占庭節(jié)點(diǎn)對(duì)系統(tǒng)一致性的影響。文獻(xiàn)[20]提出了RPFT共識(shí)算法,通過利用PoW算法成功選取高效率的副領(lǐng)導(dǎo)人節(jié)點(diǎn),引入等待時(shí)間選舉模型,并結(jié)合PoW共識(shí)算法對(duì)Raft算法的投票選舉進(jìn)行優(yōu)化,實(shí)現(xiàn)了快速選舉高效的領(lǐng)導(dǎo)人節(jié)點(diǎn)。文獻(xiàn)[21]提出了一種基于Raft算法改進(jìn)的實(shí)用拜占庭容錯(cuò)共識(shí)算法K-RPBFT,使用K-medoids聚類算法進(jìn)行分片,每個(gè)分片使用PBFT算法對(duì)聚類中心節(jié)點(diǎn)進(jìn)行共識(shí),分片內(nèi)部則采用監(jiān)督節(jié)點(diǎn)改進(jìn)的Raft算法進(jìn)行共識(shí)。文獻(xiàn)[22]提出了一種適用于聯(lián)盟鏈的可理解的高效率共識(shí)協(xié)議VBBFT-Raft,通過將共識(shí)劃分為日志復(fù)制、提交確認(rèn)和領(lǐng)導(dǎo)人選舉來提供可理解性,并引入了數(shù)字簽名和嵌套哈希來應(yīng)對(duì)拜占庭式故障。文獻(xiàn)[23]將Raft與信用模型相結(jié)合,提出了一種基于信用模型的區(qū)塊鏈共識(shí)算法CRaft,采用基于RBF的支持向量機(jī)作為異常檢測(cè)方法構(gòu)建節(jié)點(diǎn)信用評(píng)價(jià)模型,然后引入信任節(jié)點(diǎn)列表機(jī)制,在可信網(wǎng)絡(luò)環(huán)境中建立共識(shí)階段。

        Raft算法于2014年被提出,目前主要應(yīng)用于私有鏈中,但也存在一些問題,使其不能很好地應(yīng)用于聯(lián)盟鏈中。首先,隨著集群節(jié)點(diǎn)數(shù)量的增加,可能會(huì)出現(xiàn)投票分裂,即沒有節(jié)點(diǎn)獲得一半以上選票,無法選出唯一的領(lǐng)導(dǎo)人,這時(shí)需要進(jìn)行再一次選舉,導(dǎo)致系統(tǒng)運(yùn)行時(shí)間和復(fù)雜度增加。其次,聯(lián)盟鏈中不同企業(yè)之間存在競(jìng)爭(zhēng)關(guān)系,可能存在參與方作惡,出現(xiàn)拜占庭節(jié)點(diǎn),拜占庭節(jié)點(diǎn)可能會(huì)發(fā)送不正確或欺騙性的信息,或者不發(fā)送信息,會(huì)導(dǎo)致分布式系統(tǒng)中的節(jié)點(diǎn)之間無法達(dá)成一致意見,即產(chǎn)生分歧或錯(cuò)誤的決策,但Raft算法無法進(jìn)行拜占庭容錯(cuò)。

        針對(duì)以上問題,本文的主要研究工作如下:

        a)為解決Raft共識(shí)算法中因集群節(jié)點(diǎn)數(shù)量增加導(dǎo)致的領(lǐng)導(dǎo)人選舉速度下降以及投票分裂導(dǎo)致選舉效率低下的問題,提出了一種基于信用評(píng)分模型的可拜占庭容錯(cuò)共識(shí)算法——CS-Raft(credit score Raft),結(jié)合信用評(píng)分模型選取領(lǐng)導(dǎo)人,只有信用評(píng)分達(dá)到監(jiān)督節(jié)點(diǎn)選取要求的節(jié)點(diǎn)才可以參與選舉,從而減少了參與領(lǐng)導(dǎo)人選舉的節(jié)點(diǎn)數(shù)量,進(jìn)而加快了領(lǐng)導(dǎo)人選舉速度。

        b)針對(duì)Raft共識(shí)算法無法拜占庭容錯(cuò)的問題,基于信用評(píng)分模型引入監(jiān)督節(jié)點(diǎn),監(jiān)督節(jié)點(diǎn)具有較高的信用評(píng)分和更高的安全性。監(jiān)督節(jié)點(diǎn)負(fù)責(zé)對(duì)leader打包的區(qū)塊進(jìn)行檢驗(yàn),從而有效監(jiān)督和阻止拜占庭節(jié)點(diǎn)的干擾,使CS-Raft算法更適用于聯(lián)盟鏈。

        c)通過在超級(jí)賬本平臺(tái)上進(jìn)行仿真實(shí)驗(yàn)測(cè)試,對(duì)CS-Raft、Raft和PBFT算法的共識(shí)時(shí)延、吞吐量和選舉速度進(jìn)行評(píng)估,驗(yàn)證了CS-Raft算法有效性和可靠性。

        1 背景知識(shí)

        1.1 超級(jí)賬本

        超級(jí)賬本(Hyperledger)[24]是由Linux基金會(huì)主持的開源區(qū)塊鏈項(xiàng)目,旨在為企業(yè)級(jí)區(qū)塊鏈解決方案提供一個(gè)靈活的平臺(tái),同時(shí)支持聯(lián)盟鏈應(yīng)用場(chǎng)景。超級(jí)賬本項(xiàng)目涵蓋了多個(gè)區(qū)塊鏈框架和工具,例如Hyperledger Fabric、Hyperledger Sawtooth、Hyperledger Explorer和Hyperledger Caliper等。這些框架和工具都具有不同的特點(diǎn)和適用場(chǎng)景,可以用于構(gòu)建不同類型的區(qū)塊鏈應(yīng)用程序。

        Hyperledger Fabric是一個(gè)開源的企業(yè)級(jí)分布式賬本平臺(tái),旨在為企業(yè)應(yīng)用場(chǎng)景提供一個(gè)可擴(kuò)展、靈活和可定制的區(qū)塊鏈解決方案。Hyperledger Fabric支持插件式共識(shí)協(xié)議,這使得該平臺(tái)能夠更有效地適應(yīng)特定的業(yè)務(wù)場(chǎng)景和信任模型。Hyperledger Fabric支持多種共識(shí)算法,包括Kafka[25]、Solo、Raft和SBFT(simplified Byzantine fault tolerance)等。其中Kafka是默認(rèn)的共識(shí)算法,是一種基于發(fā)布/訂閱模型的共識(shí)算法,通過對(duì)交易進(jìn)行排序和確認(rèn)來確保網(wǎng)絡(luò)中的一致性。Solo是一種簡(jiǎn)單的共識(shí)算法,適用于單個(gè)節(jié)點(diǎn)的測(cè)試和開發(fā)環(huán)境。而SBFT則是一種抗拜占庭容錯(cuò)的共識(shí)算法,可以在網(wǎng)絡(luò)中存在一定數(shù)量的惡意節(jié)點(diǎn)時(shí)依然保證一致性。

        Hyperledger Caliper是一個(gè)基準(zhǔn)測(cè)試工具,旨在為不同的區(qū)塊鏈平臺(tái)提供可靠的性能基準(zhǔn)測(cè)試,可用于評(píng)估各種區(qū)塊鏈平臺(tái)的性能、可擴(kuò)展性和穩(wěn)定性。Hyperledger Caliper提供了一組標(biāo)準(zhǔn)化的基準(zhǔn)測(cè)試用例,用于評(píng)估不同區(qū)塊鏈平臺(tái)的性能。這些基準(zhǔn)測(cè)試用例模擬了不同的業(yè)務(wù)場(chǎng)景和負(fù)載,包括交易吞吐量、延遲、資源利用率等指標(biāo)。

        1.2 Raft算法

        在Raft算法問世之前,Paxos一直被視為代表分布式一致性算法的典范。盡管Paxos算法在理論上是可行的,但是由于其難以理解并且在實(shí)際系統(tǒng)中實(shí)現(xiàn)困難,所以Raft采用了一些特定技術(shù)來提高共識(shí)算法的可理解性。圖1是三種狀態(tài)的轉(zhuǎn)換關(guān)系。

        在Raft集群中,每個(gè)節(jié)點(diǎn)始終處于領(lǐng)導(dǎo)人(leader)、跟隨者(follower)或候選人(candidate)這三個(gè)狀態(tài)中的一個(gè)。通常情況下,一個(gè)集群只有一個(gè)領(lǐng)導(dǎo)人,其余的節(jié)點(diǎn)則是跟隨者。跟隨者只響應(yīng)來自領(lǐng)導(dǎo)人或候選人的請(qǐng)求,是被動(dòng)的節(jié)點(diǎn)。領(lǐng)導(dǎo)人處理所有的客戶端請(qǐng)求,如果客戶端需要與跟隨者通信,跟隨者會(huì)將請(qǐng)求重定向到領(lǐng)導(dǎo)人。當(dāng)需要

        選舉新領(lǐng)導(dǎo)人時(shí),節(jié)點(diǎn)會(huì)進(jìn)入候選人狀態(tài)。

        Raft算法的過程可以被分解為一些相對(duì)獨(dú)立、耦合性較低的模塊,其中包括領(lǐng)導(dǎo)人選舉、日志復(fù)制、安全性和集群成員變更。

        a)領(lǐng)導(dǎo)人選舉。當(dāng)一個(gè)節(jié)點(diǎn)發(fā)現(xiàn)當(dāng)前沒有領(lǐng)導(dǎo)人時(shí),它會(huì)自己成為一個(gè)候選者并向其他節(jié)點(diǎn)發(fā)出請(qǐng)求選票的請(qǐng)求。其他節(jié)點(diǎn)收到請(qǐng)求后,會(huì)檢查自己是否已經(jīng)投過票給了其他候選者,如果沒有,則投票給當(dāng)前候選者并將自己的任期號(hào)更新為候選者的任期號(hào)。如果候選者收到了大多數(shù)節(jié)點(diǎn)的選票,那么它就成為了新的領(lǐng)導(dǎo)人。如果候選者在一定時(shí)間內(nèi)沒有獲得足夠的選票,那么就會(huì)重新開始一個(gè)新的選舉過程。

        b)日志復(fù)制。Raft中每個(gè)節(jié)點(diǎn)都有一份日志記錄系統(tǒng)狀態(tài)的變化,領(lǐng)導(dǎo)人將客戶端請(qǐng)求的狀態(tài)變化追加到自己的日志中并向其他節(jié)點(diǎn)發(fā)送,當(dāng)一個(gè)日志條目被大多數(shù)節(jié)點(diǎn)復(fù)制后就被認(rèn)為是已提交的,并應(yīng)用到狀態(tài)機(jī)中更新系統(tǒng)狀態(tài)。

        c)安全性。Raft的安全性由多種機(jī)制保證,包括領(lǐng)導(dǎo)人選舉機(jī)制、日志復(fù)制機(jī)制、快照機(jī)制和安全性限制。

        d)集群成員變更。Raft的集群成員變更包括添加新節(jié)點(diǎn)和移除舊節(jié)點(diǎn)兩個(gè)步驟。添加新節(jié)點(diǎn)和移除舊節(jié)點(diǎn)都需要發(fā)送請(qǐng)求并等待集群中大多數(shù)節(jié)點(diǎn)的響應(yīng)。

        2 CS-Raft算法

        2.1 信用評(píng)分模型

        CS-Raft根據(jù)節(jié)點(diǎn)的行為對(duì)節(jié)點(diǎn)進(jìn)行信用評(píng)分。全網(wǎng)節(jié)點(diǎn)維護(hù)一個(gè)節(jié)點(diǎn)評(píng)分信息表,記錄節(jié)點(diǎn)信用評(píng)分和判定因素。每個(gè)節(jié)點(diǎn)緩存所有節(jié)點(diǎn)的評(píng)分信息表,并在每次共識(shí)結(jié)束后更新。表中內(nèi)容也記錄在信用區(qū)塊鏈上,確保節(jié)點(diǎn)之間記錄的行為信息一致。

        每個(gè)新加入的節(jié)點(diǎn)的信用評(píng)分被初始化為0.5。節(jié)點(diǎn)的信用評(píng)分指標(biāo)包括節(jié)點(diǎn)誠(chéng)實(shí)反饋總數(shù)、錯(cuò)誤反饋總數(shù)、節(jié)點(diǎn)活躍度、節(jié)點(diǎn)激勵(lì)和節(jié)點(diǎn)平衡等,每輪根據(jù)信用評(píng)分更新算法對(duì)節(jié)點(diǎn)信用評(píng)分進(jìn)行更新。

        節(jié)點(diǎn)i的節(jié)點(diǎn)活躍度(NAi)表示節(jié)點(diǎn)的活躍程度,衡量節(jié)點(diǎn)在共識(shí)過程中的響應(yīng)速度。領(lǐng)導(dǎo)人需要積極生成區(qū)塊,否則將被視為不活躍,可能失去領(lǐng)導(dǎo)人的職位。如果節(jié)點(diǎn)在規(guī)定時(shí)間內(nèi)未能響應(yīng)領(lǐng)導(dǎo)人的消息,則可能出現(xiàn)網(wǎng)絡(luò)延遲、宕機(jī)等情況,從而可能成為惡意節(jié)點(diǎn)。節(jié)點(diǎn)的活躍度較低會(huì)延長(zhǎng)共識(shí)時(shí)間,降低共識(shí)成功率,因此活躍度較高的節(jié)點(diǎn)更容易被選為領(lǐng)導(dǎo)人。節(jié)點(diǎn)i的節(jié)點(diǎn)活躍度可以表示為

        其中:OTi指節(jié)點(diǎn)i加入到區(qū)塊鏈中在線的總時(shí)長(zhǎng);ATi指節(jié)點(diǎn)i加入到區(qū)塊鏈中的總時(shí)長(zhǎng)。

        根據(jù)節(jié)點(diǎn)行為,若獲得正確反饋則視為積極行為,若獲得錯(cuò)誤反饋則視為惡意行為。節(jié)點(diǎn)激勵(lì)評(píng)價(jià)(NSki)基于節(jié)點(diǎn)i在每輪共識(shí)中的行為,結(jié)合節(jié)點(diǎn)信用評(píng)分進(jìn)行獎(jiǎng)懲。信用評(píng)分高的節(jié)點(diǎn)作出誠(chéng)實(shí)行為時(shí),獲得的獎(jiǎng)勵(lì)更多,但當(dāng)其行為出錯(cuò)時(shí),受到的懲罰也更大。此指標(biāo)加大高信用節(jié)點(diǎn)作惡的懲罰,鼓勵(lì)節(jié)點(diǎn)做出誠(chéng)實(shí)行為。其中k表示共識(shí)的輪次,Ck-1i表示節(jié)點(diǎn)i上一輪共識(shí)后的信用評(píng)分,節(jié)點(diǎn)i在第k輪共識(shí)時(shí)的節(jié)點(diǎn)激勵(lì)評(píng)價(jià)計(jì)算公式如下:

        為了限制新加入網(wǎng)絡(luò)的節(jié)點(diǎn)快速提高信譽(yù)值,維護(hù)系統(tǒng)的穩(wěn)定性,加入節(jié)點(diǎn)平衡參數(shù)(NBi),其中HCi指節(jié)點(diǎn)i誠(chéng)實(shí)反饋總數(shù)。

        由以上評(píng)價(jià)指標(biāo)計(jì)算出每個(gè)節(jié)點(diǎn)的信用評(píng)分,最終的信用評(píng)分模型為

        其中:Cki表示節(jié)點(diǎn)i在k輪共識(shí)后的信用評(píng)分;ECi表示節(jié)點(diǎn)i錯(cuò)誤反饋總數(shù);系數(shù)α和β是用來表示過去信用評(píng)分對(duì)當(dāng)前信用評(píng)分的影響以及過去錯(cuò)誤反饋次數(shù)對(duì)節(jié)點(diǎn)信用評(píng)分的影響比例的系數(shù),α+β=1。當(dāng)α值較小時(shí),信用評(píng)分增長(zhǎng)速度較快,經(jīng)過較少的輪次信用評(píng)分即可接近于1,同時(shí)惡意節(jié)點(diǎn)的信用評(píng)分減少速度較慢,需要進(jìn)行多次共識(shí)信用評(píng)分才能下降到接近0;而當(dāng)α值較大時(shí),信用評(píng)分增長(zhǎng)速度較慢,需要進(jìn)行多次共識(shí)信用評(píng)分才能接近于1,同時(shí)惡意節(jié)點(diǎn)的信用評(píng)分減少速度較快,經(jīng)過較少的輪次信用評(píng)分即可下降到接近0。

        根據(jù)信用評(píng)分模型可以發(fā)現(xiàn),節(jié)點(diǎn)如果一直表現(xiàn)誠(chéng)實(shí),其信用評(píng)分會(huì)逐漸提高并最終保持在較高水平。但是,如果節(jié)點(diǎn)表現(xiàn)惡意,其信用評(píng)分會(huì)大幅下降,從而防止其影響正常的共識(shí)過程。節(jié)點(diǎn)的信用評(píng)分C屬于(0,1)的實(shí)數(shù),節(jié)點(diǎn)信用評(píng)分越高,表示節(jié)點(diǎn)可信程度越高。信用評(píng)分更新的偽代碼如下所示。

        算法1 updateCreditScore()

        輸入:舊節(jié)點(diǎn)評(píng)分信息表SIO。

        輸出:新節(jié)點(diǎn)評(píng)分信息表SIN。

        while SIO do

        read(SIO);//讀取舊節(jié)點(diǎn)評(píng)分信息表

        calculateCreditScore(Cki);/*根據(jù)節(jié)點(diǎn)評(píng)分信息表中數(shù)據(jù)計(jì)算節(jié)點(diǎn)信用評(píng)分*/

        end while

        SIN=updateScoringInformation(SIO);//更新節(jié)點(diǎn)評(píng)分信息表

        consensus(SIN);//進(jìn)行下一次共識(shí)過程

        return SIN;

        2.2 節(jié)點(diǎn)狀態(tài)轉(zhuǎn)移

        CS-Raft算法有l(wèi)eader、follower、supervisor和candidate四種節(jié)點(diǎn)狀態(tài)。這四種狀態(tài)的轉(zhuǎn)移條件如圖2所示。

        CS-Raft與Raft一樣,在每個(gè)區(qū)塊鏈節(jié)點(diǎn)集群中只有一個(gè)leader節(jié)點(diǎn),它負(fù)責(zé)管理整個(gè)集群中日志復(fù)制。leader負(fù)責(zé)接收客戶端的請(qǐng)求,將請(qǐng)求轉(zhuǎn)換為日志條目,復(fù)制日志到其他節(jié)點(diǎn),并通知其他節(jié)點(diǎn)將日志條目提交到狀態(tài)機(jī)中執(zhí)行。同時(shí),leader節(jié)點(diǎn)需要定期發(fā)送心跳消息來維持其領(lǐng)導(dǎo)地位和通知其他節(jié)點(diǎn)它仍然處于活動(dòng)狀態(tài)。如果leader生成區(qū)塊后丟失心跳,會(huì)觸發(fā)選舉過程產(chǎn)生新的leader。此時(shí)舊的leader生成的區(qū)塊不會(huì)自動(dòng)丟棄,新的leader會(huì)從舊的leader那里獲取尚未提交的日志條目,并將其復(fù)制到其他節(jié)點(diǎn),從而使所有節(jié)點(diǎn)達(dá)到一致狀態(tài)。然后,新的leader可以在這個(gè)一致狀態(tài)下繼續(xù)生成新的區(qū)塊,確保區(qū)塊鏈的連續(xù)性。在正常情況下,leader節(jié)點(diǎn)會(huì)一直保持工作狀態(tài),只有在收到任期更高的leader消息時(shí)才會(huì)放棄領(lǐng)導(dǎo)地位轉(zhuǎn)變?yōu)閒ollower狀態(tài)。follower節(jié)點(diǎn)是CS-Raft算法中的普通節(jié)點(diǎn),無權(quán)驗(yàn)證區(qū)塊,只有在領(lǐng)導(dǎo)人選舉階段才會(huì)投票,或在收到leader節(jié)點(diǎn)的區(qū)塊提交消息時(shí),將區(qū)塊上傳到自己的副本中。Supervisor節(jié)點(diǎn)是通過信用評(píng)分排名從follower中選舉產(chǎn)生的監(jiān)督節(jié)點(diǎn),只有經(jīng)過supervisor節(jié)點(diǎn)的檢驗(yàn)批準(zhǔn),區(qū)塊才能保存到區(qū)塊鏈副本中。candidate是領(lǐng)導(dǎo)人選舉階段的中間狀態(tài),只有在收到超過半數(shù)選票或在選票分裂后信用評(píng)分最高,才能轉(zhuǎn)換為leader。

        2.3 監(jiān)督節(jié)點(diǎn)選取

        CS-Raft算法通過選取信用評(píng)分排名靠前的節(jié)點(diǎn)作為supervisor來實(shí)現(xiàn)領(lǐng)導(dǎo)人選舉的參與限制,當(dāng)出現(xiàn)信用評(píng)分一樣的情況,則先加入?yún)^(qū)塊鏈的節(jié)點(diǎn)優(yōu)先成為supervisor。super-visor具有檢驗(yàn)權(quán),可以參與領(lǐng)導(dǎo)人選舉,并能夠?qū)ο到y(tǒng)的正確性和安全性進(jìn)行檢驗(yàn)。而其余節(jié)點(diǎn)則為follower節(jié)點(diǎn),僅能參與共識(shí)過程,但無法參與領(lǐng)導(dǎo)人的選舉過程。通過這種參與限制的機(jī)制提高系統(tǒng)的效率和可靠性,降低惡意行為的風(fēng)險(xiǎn)。根據(jù)信用評(píng)分計(jì)算模型,排名靠前的節(jié)點(diǎn)通常表現(xiàn)出更高的誠(chéng)實(shí)反饋率和活躍度。這也表明在supervisor中,拜占庭節(jié)點(diǎn)出現(xiàn)的概率較低,同時(shí)supervisor對(duì)于leader的響應(yīng)更加及時(shí)。

        節(jié)點(diǎn)被選為supervisor后需要對(duì)leader打包的區(qū)塊進(jìn)行檢驗(yàn),如果該節(jié)點(diǎn)的檢驗(yàn)結(jié)果與區(qū)塊的最終檢驗(yàn)結(jié)果相同,則檢驗(yàn)通過。同時(shí)supervisor負(fù)責(zé)計(jì)算所有節(jié)點(diǎn)的信用評(píng)分。supervisor將自己計(jì)算得到的信用評(píng)分列表發(fā)送給leader。如果超過一半的supervisor計(jì)算得到相同的信用評(píng)分列表,則leader會(huì)將該信用評(píng)分列表保存到本地,并通知其他所有節(jié)點(diǎn)更新該信用評(píng)分列表。

        CS-Raft算法在節(jié)點(diǎn)數(shù)量為y的集群中supervisor的數(shù)量x需要滿足以下兩個(gè)條件:a)supervisor數(shù)量x必須為奇數(shù),以避免在區(qū)塊檢驗(yàn)結(jié)果投票中出現(xiàn)平票的情況;b)x必須大于等于y/2,以確保拜占庭supervisor無法獲得集群半數(shù)以上的投票,從而避免其被選為領(lǐng)導(dǎo)人。普通節(jié)點(diǎn)無法判斷拜占庭節(jié)點(diǎn),因此若有拜占庭supervisor發(fā)起惡意領(lǐng)導(dǎo)人選舉,它能獲得所有普通節(jié)點(diǎn)的投票,但其他supervisor和leader節(jié)點(diǎn)只有在確認(rèn)當(dāng)前l(fā)eader無異常行為的情況下才會(huì)投票。為了滿足以上兩個(gè)條件且盡可能降低檢驗(yàn)過程的資源消耗,supervisor的數(shù)x應(yīng)滿足特定的公式:

        2.4 領(lǐng)導(dǎo)人選舉

        CS-Raft的整體共識(shí)流程如圖3所示。

        節(jié)點(diǎn)的初始狀態(tài)均為follower,在被賦予隨機(jī)的初始信用評(píng)分后選出supervisor,每個(gè)supervisor都會(huì)隨機(jī)產(chǎn)生一個(gè)選舉超時(shí)時(shí)間。如果某個(gè)supervisor在選舉超時(shí)時(shí)間內(nèi)沒有收到來自leader的心跳消息,那么它將自動(dòng)變成candidate狀態(tài)并將其任期加一,然后開始發(fā)起選舉投票。另外,如果supervisor在區(qū)塊驗(yàn)證過程中發(fā)現(xiàn)leader存在欺騙行為,也會(huì)觸發(fā)leader選舉機(jī)制。

        當(dāng)supervisor轉(zhuǎn)變?yōu)閏andidate時(shí),首先會(huì)為自己投出一票并發(fā)送RequestVote RPC給其他共識(shí)節(jié)點(diǎn)以請(qǐng)求投票。RequestVote RPC包含了該candidate當(dāng)前的索引、任期、最后一個(gè)區(qū)塊等信息。如果該candidate是由supervisor判定當(dāng)前l(fā)eader為拜占庭節(jié)點(diǎn)而轉(zhuǎn)變,則RequestVote RPC還將包含問題區(qū)塊的相關(guān)信息,包括邏輯時(shí)間戳和哈希值。該candidate最終可能出現(xiàn)以下三種情況:a)獲得集群中超過半數(shù)共識(shí)節(jié)點(diǎn)的投票,成為新的leader;

        b)在請(qǐng)求投票的過程中收到新任leader的心跳信息,轉(zhuǎn)變?yōu)閒ollower;

        c)沒有節(jié)點(diǎn)成功當(dāng)選,出現(xiàn)投票分裂,信用評(píng)分最高的節(jié)點(diǎn)自動(dòng)成為leader。

        當(dāng)leader當(dāng)選后,會(huì)廣播該節(jié)點(diǎn)成為leader的信息,并開始選取新的supervisor節(jié)點(diǎn)。

        3 算法分析

        3.1 安全性分析

        在可拜占庭容錯(cuò)的共識(shí)算法中,安全性是指誠(chéng)實(shí)共識(shí)節(jié)點(diǎn)最終保存的區(qū)塊是一致且未被竄改的重要保證。在CS-Raft共識(shí)算法的共識(shí)過程中,必須確保被竄改的區(qū)塊內(nèi)容不會(huì)在誠(chéng)實(shí)節(jié)點(diǎn)之間達(dá)成共識(shí),同時(shí)保證所有誠(chéng)實(shí)節(jié)點(diǎn)存儲(chǔ)的區(qū)塊是相同的。接下來對(duì)CS-Raft的拜占庭容錯(cuò)性能進(jìn)行分析。

        1)leader

        當(dāng)出現(xiàn)拜占庭leader節(jié)點(diǎn)時(shí),supervisor可以通過區(qū)塊驗(yàn)證機(jī)制發(fā)現(xiàn)欺騙行為,并立即將錯(cuò)誤數(shù)據(jù)丟棄。此時(shí),CS-Raft算法會(huì)將leader轉(zhuǎn)換為follower,發(fā)起新一輪的領(lǐng)導(dǎo)人選舉過程。在選舉過程中,集群會(huì)選出新的leader來替換原有的拜占庭leader,并繼續(xù)進(jìn)行數(shù)據(jù)打包和同步工作。

        2)candidate

        在領(lǐng)導(dǎo)人選舉中,candidate是否具有最新的任期和完整的區(qū)塊鏈副本是其能否獲得投票的主要依據(jù)。candidate在RequestVote RPC中攜帶本地最新提交區(qū)塊的邏輯時(shí)間戳和哈希值,以證明自己具有完整的區(qū)塊鏈信息。拜占庭candidate可能惡意偽造區(qū)塊邏輯時(shí)間戳和哈希值以成功當(dāng)選為leader。其他節(jié)點(diǎn)在核對(duì)最新提交區(qū)塊的邏輯時(shí)間戳和哈希值時(shí),如果發(fā)現(xiàn)拜占庭candidate擁有自己不具備的區(qū)塊信息,會(huì)認(rèn)為自己當(dāng)前的區(qū)塊鏈不完整并向其他節(jié)點(diǎn)請(qǐng)求缺失的區(qū)塊,節(jié)點(diǎn)完善區(qū)塊鏈副本后才會(huì)向candidate投票。由于拜占庭candidate偽造了區(qū)塊信息,其他節(jié)點(diǎn)無法驗(yàn)證其擁有完整的區(qū)塊鏈信息。當(dāng)半數(shù)以上的節(jié)點(diǎn)無法驗(yàn)證其區(qū)塊信息時(shí),會(huì)認(rèn)為投票申請(qǐng)是偽造的,并拒絕向其投票。因此,拜占庭candidate無法獲得半數(shù)以上的節(jié)點(diǎn)投票,也就無法成功當(dāng)選為leader。

        3)supervisor

        supervisor節(jié)點(diǎn)的身份是定期更換的,每個(gè)決定需要得到超過半數(shù)的supervisor節(jié)點(diǎn)支持。因此,只要每輪驗(yàn)證組中的拜占庭supervisor節(jié)點(diǎn)數(shù)量不超過總節(jié)點(diǎn)數(shù)的一半,拜占庭supervisor就無法進(jìn)行合謀欺騙。如果拜占庭supervisor為了獲得數(shù)據(jù)打包權(quán)而發(fā)起惡意的領(lǐng)導(dǎo)人選舉,只要leader和其他supervisor節(jié)點(diǎn)確認(rèn)當(dāng)前的leader是誠(chéng)實(shí)且能夠正常工作,就不會(huì)向該拜占庭supervisor節(jié)點(diǎn)投票。但是,由于follower節(jié)點(diǎn)缺乏判斷拜占庭節(jié)點(diǎn)的條件,他們會(huì)進(jìn)行投票,所以拜占庭supervisor節(jié)點(diǎn)發(fā)起的惡意領(lǐng)導(dǎo)人選舉能夠獲得所有follower的投票。但是,由于驗(yàn)證組的選舉規(guī)則,follower節(jié)點(diǎn)數(shù)量不足集群所有節(jié)點(diǎn)數(shù)量的一半,所以拜占庭supervisor無法獲得足夠的投票,也就無法當(dāng)選為leader。

        4)follower

        在CS-Raft中,拜占庭follower節(jié)點(diǎn)可以在共識(shí)過程中發(fā)起惡意領(lǐng)導(dǎo)人選舉以獲取數(shù)據(jù)打包權(quán),然而它們?cè)谒惴ü沧R(shí)過程中只是一個(gè)被動(dòng)的角色,僅負(fù)責(zé)在本地區(qū)塊鏈副本中提交新區(qū)塊。因此,即使存在拜占庭follower節(jié)點(diǎn),它們對(duì)檢驗(yàn)結(jié)果不會(huì)造成影響。雖然拜占庭follower節(jié)點(diǎn)可以發(fā)起惡意領(lǐng)導(dǎo)人選舉,但其他節(jié)點(diǎn)都能正常收到leader的heartbeat消息,不會(huì)向拜占庭follower節(jié)點(diǎn)投票。因此,只要集群中拜占庭節(jié)點(diǎn)的數(shù)量少于總節(jié)點(diǎn)數(shù)的一半,就可以避免其進(jìn)行合謀投票,使得拜占庭節(jié)點(diǎn)成為leader的情況發(fā)生。

        3.2 活性分析

        在分布式系統(tǒng)中,共識(shí)算法的活性是指該算法能夠確保在有限的時(shí)間內(nèi)所有正常節(jié)點(diǎn)都能夠達(dá)成一致的共識(shí)結(jié)果。這意味著,只要沒有任何正常節(jié)點(diǎn)故障,共識(shí)算法就能在一定時(shí)間內(nèi)達(dá)成一致的共識(shí)結(jié)果。

        在Raft算法中,通過領(lǐng)導(dǎo)人選舉機(jī)制確保系統(tǒng)中只有一個(gè)leader,leader負(fù)責(zé)向follower發(fā)送心跳消息,如果follower長(zhǎng)時(shí)間未收到心跳消息,則會(huì)啟動(dòng)選舉新leader的過程。同時(shí),Raft算法中的日志復(fù)制機(jī)制確保了所有節(jié)點(diǎn)都具有相同的日志序列,從而達(dá)成一致的共識(shí)結(jié)果。如果網(wǎng)絡(luò)延遲或者節(jié)點(diǎn)失效,Raft算法可以通過重新選舉leader和日志復(fù)制機(jī)制來恢復(fù)系統(tǒng)的活性。

        CS-Raft算法保持了Raft算法的日志復(fù)制機(jī)制,但是在領(lǐng)導(dǎo)人選舉方面做了一些改進(jìn)。leader每隔50 ms就會(huì)廣播心跳消息以維持自身的領(lǐng)導(dǎo)人地位,而supervisor和candidate的定時(shí)器超時(shí)時(shí)間一般為150~300 ms。當(dāng)supervisor在超時(shí)時(shí)間內(nèi)沒有收到leader的心跳信息后,就會(huì)轉(zhuǎn)換為candidate并參與leader選舉。由于不同的節(jié)點(diǎn)的定時(shí)器是隨機(jī)設(shè)置的,超時(shí)時(shí)間不同,所以沒有選出leader的概率很低。如果出現(xiàn)因?yàn)檫x票被瓜分而沒有選出leader的情況,信用評(píng)分最高的節(jié)點(diǎn)會(huì)直接成為leader,從而保證了CS-Raft算法具有較高的活性。

        3.3 通信復(fù)雜度分析

        假設(shè)集群節(jié)點(diǎn)數(shù)為n。在Raft算法中,每個(gè)節(jié)點(diǎn)只需向所有其他節(jié)點(diǎn)發(fā)送RPC消息來同步它們的日志,并且只有在領(lǐng)導(dǎo)人選舉期間需要進(jìn)行投票。因此,Raft算法的通信復(fù)雜度是O(n)。而在PBFT算法中,每個(gè)階段的通信都需要n-1個(gè)消息的廣播,這導(dǎo)致了O(n)的通信復(fù)雜度。同時(shí),在每個(gè)階段中,需要等待2f+1個(gè)節(jié)點(diǎn)的回復(fù)才能繼續(xù)進(jìn)行,其中f是拜占庭節(jié)點(diǎn)的數(shù)量,這導(dǎo)致了O(n)的等待復(fù)雜度。因此,整個(gè)PBFT算法的時(shí)間復(fù)雜度為O(n2)。

        在CS-Raft算法共識(shí)過程中,假設(shè)supervisor節(jié)點(diǎn)數(shù)量為m。首先,leader發(fā)送區(qū)塊消息給supervisor節(jié)點(diǎn),supervisor節(jié)點(diǎn)隨后將檢驗(yàn)結(jié)果返回給leader。最后,leader再通知集群所有節(jié)點(diǎn)提交區(qū)塊。整個(gè)過程的通信次數(shù)為(2m+n-1),由式(5)可知supervisor節(jié)點(diǎn)數(shù)量m與集群節(jié)點(diǎn)數(shù)量n成正相關(guān),因此CS-Raft算法的通信復(fù)雜度為O(n)。

        4 實(shí)驗(yàn)分析

        本文基于超級(jí)賬本的Hyperledger Fabric構(gòu)建了一個(gè)區(qū)塊鏈系統(tǒng),并采用Golang編程語言實(shí)現(xiàn)了CS-Raft算法。首先,在實(shí)驗(yàn)環(huán)境中部署了一個(gè)模擬測(cè)試環(huán)境,包括一定數(shù)量的節(jié)點(diǎn)。具體節(jié)點(diǎn)數(shù)量根據(jù)不同場(chǎng)景需求進(jìn)行調(diào)整。每個(gè)節(jié)點(diǎn)都配置了相應(yīng)的Hyperledger Fabric節(jié)點(diǎn)軟件,并確保節(jié)點(diǎn)之間能夠進(jìn)行相互通信。隨后,對(duì)Raft、PBFT、CRaft和CS-Raft算法進(jìn)行了性能測(cè)試。模擬了1 000次交易并將其記錄到區(qū)塊鏈中,同時(shí)記錄了交易的吞吐量、共識(shí)時(shí)延以及領(lǐng)導(dǎo)人選舉時(shí)間等關(guān)鍵性能指標(biāo)。在CS-Raft算法的共識(shí)過程中,記錄了節(jié)點(diǎn)信用評(píng)分的變化情況。

        4.1 吞吐量

        區(qū)塊鏈的吞吐量是指在單位時(shí)間內(nèi)可以處理的交易量,通常以每秒鐘可以處理的交易數(shù)量來衡量。吞吐量是區(qū)塊鏈性能的一個(gè)重要指標(biāo),與區(qū)塊鏈的節(jié)點(diǎn)數(shù)量、網(wǎng)絡(luò)帶寬、共識(shí)算法等因素密切相關(guān)。較高的吞吐量意味著區(qū)塊鏈可以處理更多的交易,提高了系統(tǒng)的可用性和效率。吞吐量的計(jì)算公式為

        TPS= 區(qū)塊大小Bs/(平均交易大小Ds×區(qū)塊時(shí)間Bt ) (6)

        其中:區(qū)塊大小Bs是指區(qū)塊中包含的所有數(shù)據(jù)的大小,包括交易數(shù)據(jù)和區(qū)塊頭數(shù)據(jù)等;平均交易大小Ds是指每個(gè)交易在數(shù)據(jù)大小上的平均值;區(qū)塊時(shí)間Bt是指產(chǎn)生一個(gè)新區(qū)塊的平均時(shí)間。

        使用Caliper對(duì)Raft、PBFT、CRaft和CS-Raft四種共識(shí)算法的吞吐量進(jìn)行測(cè)試。在測(cè)試中,區(qū)塊大小和平均交易大小被設(shè)為固定值,系統(tǒng)節(jié)點(diǎn)數(shù)量被設(shè)置在5~30。通過模擬實(shí)驗(yàn)并對(duì)結(jié)果取平均值的方式,得到了各種算法的吞吐量實(shí)驗(yàn)結(jié)果,如圖4所示。

        從圖4的實(shí)驗(yàn)結(jié)果可以看出,隨著集群節(jié)點(diǎn)數(shù)量的增加,四種共識(shí)算法的吞吐量均逐步減少。在CS-Raft算法中,隨著集群節(jié)點(diǎn)數(shù)量的增加,監(jiān)督節(jié)點(diǎn)數(shù)量會(huì)隨之增加。監(jiān)督節(jié)點(diǎn)在區(qū)塊共識(shí)過程中需要進(jìn)行通信和計(jì)算,隨著監(jiān)督節(jié)點(diǎn)數(shù)量的增加,這些通信和計(jì)算復(fù)雜度也隨之增大,導(dǎo)致區(qū)塊達(dá)成共識(shí)所需的時(shí)間增加,因此單位時(shí)間內(nèi)達(dá)成共識(shí)的區(qū)塊數(shù)量減少。然而,CS-Raft算法在吞吐量方面仍顯著超越PBFT算法,并且優(yōu)于CRaft算法,在性能表現(xiàn)上接近于Raft算法。

        4.2 共識(shí)時(shí)延

        共識(shí)時(shí)延是指在分布式系統(tǒng)中,在所有節(jié)點(diǎn)達(dá)成共識(shí)所需的時(shí)間。在區(qū)塊鏈中,共識(shí)時(shí)延是指在一個(gè)區(qū)塊被成功添加到區(qū)塊鏈之前,需要所有的節(jié)點(diǎn)都達(dá)成一致意見所需要的時(shí)間。共識(shí)時(shí)延受到許多因素的影響,包括節(jié)點(diǎn)數(shù)量、網(wǎng)絡(luò)延遲、共識(shí)算法的復(fù)雜度等。共識(shí)時(shí)延越低,區(qū)塊鏈系統(tǒng)性能越好,共識(shí)效率越高,節(jié)點(diǎn)可以更快地確認(rèn)交易已經(jīng)成功。共識(shí)時(shí)延的計(jì)算公式為

        delay=Tcreate-Tnotarize (7)

        其中:delay指共識(shí)時(shí)延;Tcreate表示區(qū)塊生成時(shí)間,指從區(qū)塊打包開始到區(qū)塊被全部節(jié)點(diǎn)驗(yàn)證并接受為止的時(shí)間;Tnotarize表示區(qū)塊內(nèi)平均交易確認(rèn)時(shí)間,指一個(gè)區(qū)塊中包含的交易在所有節(jié)點(diǎn)中確認(rèn)的平均時(shí)間。

        本實(shí)驗(yàn)使用Caliper對(duì)Raft、PBFT、CRaft和CS-Raft四種共識(shí)算法的共識(shí)時(shí)延進(jìn)行測(cè)試,客戶端發(fā)送交易時(shí)帶有時(shí)間戳,當(dāng)交易成功上鏈時(shí)記錄該區(qū)塊的時(shí)間戳,通過模擬實(shí)驗(yàn)并對(duì)結(jié)果求平均值得到四種算法的共識(shí)時(shí)延。實(shí)驗(yàn)結(jié)果如圖5所示。

        圖5顯示了隨著集群節(jié)點(diǎn)數(shù)量的增加,四種共識(shí)算法的共識(shí)時(shí)延變化情況。PBFT算法的共識(shí)時(shí)延隨著集群節(jié)點(diǎn)數(shù)量的增加而急劇上升。這是由于PBFT算法在完成三階段共識(shí)時(shí)具有較高的通信時(shí)間復(fù)雜度,各個(gè)節(jié)點(diǎn)需要發(fā)送和接收大量的消息,并驗(yàn)證數(shù)字簽名的正確性。這些操作需要花費(fèi)較長(zhǎng)的時(shí)間,因此共識(shí)時(shí)延隨著集群節(jié)點(diǎn)數(shù)量的增加而迅速增加。

        CS-Raft、CRaft和Raft算法的共識(shí)時(shí)延與集群節(jié)點(diǎn)數(shù)量呈正相關(guān),隨著集群節(jié)點(diǎn)數(shù)量的增加而增加,但增長(zhǎng)速度相對(duì)較慢,折線圖相對(duì)平緩。相比于PBFT共識(shí)算法,整體共識(shí)時(shí)延較低。這是由于CS-Raft、CRaft和Raft共識(shí)算法無須在fol-lower之間進(jìn)行相互通信,所以其通信時(shí)間復(fù)雜度較低。

        4.3 領(lǐng)導(dǎo)人選舉時(shí)間

        Raft算法中的領(lǐng)導(dǎo)選舉時(shí)間是指當(dāng)原leader失效或無法通信時(shí),新的leader被選舉出來的時(shí)間。本實(shí)驗(yàn)設(shè)置了節(jié)點(diǎn)數(shù)在5~30的集群,并進(jìn)行多次實(shí)驗(yàn)取平均值,得到了Raft和CS-Raft算法在不同節(jié)點(diǎn)數(shù)量下的領(lǐng)導(dǎo)選舉時(shí)間。實(shí)驗(yàn)結(jié)果如圖6所示。

        根據(jù)實(shí)驗(yàn)結(jié)果可以看出,隨著集群節(jié)點(diǎn)數(shù)量n的增加,Raft和CS-Raft的領(lǐng)導(dǎo)人選舉時(shí)間呈上升趨勢(shì),在集群節(jié)點(diǎn)數(shù)大于15后CS-Raft算法的選舉時(shí)間始終低于Raft算法。網(wǎng)絡(luò)延遲和集群規(guī)模是影響Raft算法領(lǐng)導(dǎo)人選舉時(shí)間的重要因素。隨著集群節(jié)點(diǎn)數(shù)的增加,網(wǎng)絡(luò)延遲和不可靠性會(huì)增加,導(dǎo)致節(jié)點(diǎn)之間的消息傳遞出現(xiàn)不確定性,容易發(fā)生選票分裂。然而,CS-Raft算法有效降低了選票分裂出現(xiàn)的概率,并且對(duì)于出現(xiàn)選票分裂的情況不再進(jìn)行隨機(jī)等待時(shí)間后重新選舉,從而有效降低了領(lǐng)導(dǎo)人選舉用時(shí)。

        4.4 節(jié)點(diǎn)信用變化

        節(jié)點(diǎn)信用評(píng)分代表了節(jié)點(diǎn)的誠(chéng)信度,高評(píng)分節(jié)點(diǎn)更為可信,而低評(píng)分節(jié)點(diǎn)可能不穩(wěn)定且容易受攻擊,還可能存在惡意行為。本實(shí)驗(yàn)對(duì)共識(shí)節(jié)點(diǎn)進(jìn)行了分組,包括誠(chéng)實(shí)節(jié)點(diǎn)組和惡意節(jié)點(diǎn)組,其中誠(chéng)實(shí)節(jié)點(diǎn)始終進(jìn)行誠(chéng)實(shí)反饋,而惡意節(jié)點(diǎn)在第四輪共識(shí)之后進(jìn)行錯(cuò)誤反饋,該實(shí)驗(yàn)將誠(chéng)實(shí)節(jié)點(diǎn)組和惡意節(jié)點(diǎn)組的信用評(píng)分進(jìn)行平均值計(jì)算,并得到實(shí)驗(yàn)結(jié)果。其中,為了誠(chéng)實(shí)節(jié)點(diǎn)信用評(píng)分增長(zhǎng)和惡意節(jié)點(diǎn)信用評(píng)分降低兩個(gè)方面均表現(xiàn)較為均衡,設(shè)置α和β均為0.5,得到實(shí)驗(yàn)結(jié)果如圖7所示。

        根據(jù)實(shí)驗(yàn)結(jié)果可知,隨著共識(shí)次數(shù)的增加,誠(chéng)實(shí)節(jié)點(diǎn)的信用評(píng)分在逐漸上升,但增長(zhǎng)速度逐漸減緩,并最終趨近于1。而惡意節(jié)點(diǎn)在進(jìn)行錯(cuò)誤反饋后,其信用評(píng)分迅速下降,最終趨近于0,且在之后無法參與領(lǐng)導(dǎo)人節(jié)點(diǎn)的選舉。通過信用評(píng)分的設(shè)計(jì)可以有效防止節(jié)點(diǎn)作惡。

        5 結(jié)束語

        本文提出了一種基于信用評(píng)分的可拜占庭容錯(cuò)聯(lián)盟鏈共識(shí)算法CS-Raft。該算法為所有節(jié)點(diǎn)賦予了信用評(píng)分屬性,基于信用評(píng)分選取監(jiān)督節(jié)點(diǎn),通過監(jiān)督節(jié)點(diǎn)的檢驗(yàn)權(quán)使CS-Raft具備抵抗拜占庭惡意節(jié)點(diǎn)的能力,同時(shí)加快了領(lǐng)導(dǎo)人選舉速度。經(jīng)過算法分析和基于Hyperledger Fabric的仿真實(shí)驗(yàn),結(jié)果表明CS-Raft算法具有有效抵抗拜占庭惡意節(jié)點(diǎn)攻擊的能力。同時(shí),在領(lǐng)導(dǎo)人選舉速度上較Raft算法有所提高,相較于PBFT算法有效地減少了共識(shí)時(shí)間延遲、提高了系統(tǒng)吞吐量,更適用于聯(lián)盟鏈環(huán)境中擁有大量網(wǎng)絡(luò)節(jié)點(diǎn)的情況。盡管如此,CS-Raft算法仍存在許多不足,因此未來的研究方向是持續(xù)優(yōu)化信用評(píng)分模型,以進(jìn)一步提高CS-Raft算法的高效性和安全性。

        參考文獻(xiàn):

        [1]Nakamoto S.Bitcoin:a peer-to-peer electronic cash system[EB/OL].(2008).https://bitcoin.org/en/bitcoin-paper.

        [2]袁勇,倪曉春,曾帥,等.區(qū)塊鏈共識(shí)算法的發(fā)展現(xiàn)狀與展望[J].自動(dòng)化學(xué)報(bào),2018, 44 (11):2011-2022. (Yuan Yong,Ni Xiaochun,Zeng Shuai,et al.Blockchain consensus algorithms:the state of the art and future trends[J]. Acta Automatica Sinica ,2018, 44 (11):2011-2022.)

        [3]夏清,竇文生,郭凱文,等.區(qū)塊鏈共識(shí)協(xié)議綜述[J].軟件學(xué)報(bào),202 32 (2):277-299. (Xia Qing,Dou Wensheng,Guo Kaiwen,et al.Survey on blockchain consensus protocol[J]. Journal of Software ,202 32 (2):277-299.)

        [4]Huang Jun,He Debiao,Obaidat M S,et al.The application of the blockchain technology in voting systems:a review[J]. ACM Computing Surveys ,202 54 (3):1-28.

        [5]Zhang Caijun,Xian Kaiqiang,Wu Qianjun,et al.Blockchain-based power digital asset security management framework[J]. Procedia Computer Science ,2022, 208 :354-360.

        [6]Howson P.Crypto-giving and surveillance philanthropy:exploring the trade-offs in blockchain innovation for nonprofits[J]. Nonprofit Management and Leadership ,202 31 (4):805-820.

        [7]Hou Lu,Xu Xiaojun,Zheng Kan,et al.An intelligent transaction migration scheme for RAFT-based private blockchain in Internet of Things applications[J]. IEEE Communications Letters ,202 25 (8):2753-2757.

        [8]謝晴晴,董凡.輕量級(jí)區(qū)塊鏈技術(shù)綜述[J].軟件學(xué)報(bào),2023, 34 (1):33-49. (Xie Qingqing,Dong Fan.Survey on lightweight blockchain technology[J]. Journal of Software ,2023, 34 (1):33-49.)

        [9]Wang Baocheng,Li Zetao,Li Haibin.Hybrid consensus algorithm based on modified proof-of-probability and DPoS[J]. Future Internet ,2020, 12 (8):122.

        [10]蔡曉晴,鄧堯,張亮,等.區(qū)塊鏈原理及其核心技術(shù)[J].計(jì)算機(jī)學(xué)報(bào),202 44 (1):84-131. (Cai Xiaoqing,Deng Yao,Zhang Liang,et al.The principle and core technology of blockchain[J]. Chinese Journal of Computers ,202 44 (1):84-131.)

        [11]Assaqty M,Gao Ying,Hu Xiping,et al.Private-blockchain-based industrial IoT for material and product tracking in smart manufacturing[J]. IEEE Network ,2020, 34 (5):91-97.

        [12]盧麗,孫林夫,鄒益勝.基于一致性哈希環(huán)多主節(jié)點(diǎn)的改進(jìn)實(shí)用拜占庭容錯(cuò)算法[J].計(jì)算機(jī)集成制造系統(tǒng),2023, 29 (1):25-35. (Lu Li,Sun Linfu,Zou Yisheng.Improved PBFT algorithm of multi-primary-node based on ring of consistent hash[J]. Computer Integrated Manufacturing Systems ,2023, 29 (1):25-35.)

        [13]Lamport L.The part-time parliament[J]. ACM Trans on Computer Systems ,1998, 16 (2):133-169.

        [14]Ongaro D,Ousterhout J.In search of an understandable consensus algorithm[C]//Proc of USENIX Conference on USENIX Annual Technical Conference.[S.l.]:USENIX Association,2014:305-319.

        [15]于戈,聶鐵錚,李曉華,等.區(qū)塊鏈系統(tǒng)中的分布式數(shù)據(jù)管理技術(shù)——挑戰(zhàn)與展望[J].計(jì)算機(jī)學(xué)報(bào),202 44 (1):28-54. (Yu Ge,Nie Tiezheng,Li Xiaohua,et al.The challenge and prospect of distributed data management techniques in blockchain systems[J]. Chinese Journal of Computers ,202 44 (1):28-54.)

        [16]Piao Chunhui,Hao Yurong,Yan Jiaqi,et al.Privacy preserving in blockchain-based government data sharing:a service-on-chain(SOC) approach[J]. Information Processing amp; Management ,202 58 (5):102651.

        [17]李娟娟,袁勇,王飛躍.基于區(qū)塊鏈的數(shù)字貨幣發(fā)展現(xiàn)狀與展望[J].自動(dòng)化學(xué)報(bào),202 47 (4):715-729. (Li Juanjuan,Yuan Yong,Wang Feiyue.Blockchain-based digital currency:the state of the art and future trends[J]. Acta Automatica Sinica ,202 47 (4):715-729.)

        [18]黃冬艷,李浪,陳斌,等.RBFT:基于Raft集群的拜占庭容錯(cuò)共識(shí)機(jī)制[J].通信學(xué)報(bào),202 42 (3):209-219. (Huang Dongyan,Li Lang,Chen Bin,et al.RBFT:a new Byzantine fault-tolerant consensus mechanism based on Raft cluster[J]. Journal on Communications ,202 42 (3):209-219.)

        [19]李淑芝,鄒懿杰,鄧小鴻,等.RB-Raft:一種抗拜占庭節(jié)點(diǎn)的Raft共識(shí)算法[J].計(jì)算機(jī)應(yīng)用研究,2022, 39 (9):2591-2596. (Li Shuzhi,Zou Yijie,Deng Xiaohong,et al.RB-Raft:a consensus algorithm for Raft with anti-Byzantine nodes[J]. Application Research of Computers ,2022, 39 (9):2591-2596.)

        [20]錢慧,鄭朝暉,榮寶俊,等.RPFT:基于PoW的高效率共識(shí)算法[J].小型微型計(jì)算機(jī)系統(tǒng),2023, 44 (5):1061-1068. (Qian Hui,Zheng Zhaohui,Rong Baojun,et al.RPFT:an efficient consensus algorithm based on PoW[J]. Journal of Chinese Computer Systems ,2023, 44 (5):1061-1068.)

        [21]王謹(jǐn)東,李強(qiáng).基于Raft算法改進(jìn)的實(shí)用拜占庭容錯(cuò)共識(shí)算法[J].計(jì)算機(jī)應(yīng)用,2023, 43 (1):122-129. (Wang Jindong,Li Qiang.Improved practical Byzantine fault tolerance consensus algorithm based on Raft algorithm[J]. Journal of Computer Applications ,2023, 43 (1):122-129.)

        [22]Tan Dezhi,Hu Jianguo,Wang Jun.VBBFT-Raft:an understandable blockchain consensus protocol with high performance[C]//Proc of the 7th International Conference on Computer Science and Network Technology.Piscataway,NJ:IEEE Press,2019:111-115.

        [23]Chen Yunfang,Liu Ping,Zhang Wei.Raft consensus algorithm based on credit model in consortium blockchain[J]. Wuhan University Journal of Natural Sciences ,2020, 130 (2):59-67.

        [24]孟吳同,張大偉.Hyperledger Fabric共識(shí)機(jī)制優(yōu)化方案[J].自動(dòng)化學(xué)報(bào),202 47 (8):1885-1898. (Meng Wutong,Zhang Dawei.Optimization scheme for Hyperledger Fabric consensus mechanism[J]. Acta Automatica Sinica ,202 47 (8):1885-1898.)

        [25]Thein K M M.Apache Kafka:next generation distributed messaging system[J]. International Journal of Scientific Engineering and Technology Research ,2014, 3 (47):9478-9483.

        收稿日期:2023-07-07;修回日期:2023-08-24 基金項(xiàng)目:國(guó)家自然科學(xué)基金資助項(xiàng)目(61373116);工業(yè)和信息化部通信軟科學(xué)項(xiàng)目(2018-R-26);陜西省重點(diǎn)研發(fā)計(jì)劃資助項(xiàng)目(2022GY-038);陜西省大學(xué)生創(chuàng)新創(chuàng)業(yè)計(jì)劃訓(xùn)練項(xiàng)目(202211664016);陜西省教育廳科學(xué)研究計(jì)劃資助項(xiàng)目(18JK0697);陜西省社會(huì)科學(xué)基金資助項(xiàng)目(2016N008);西安市社會(huì)科學(xué)規(guī)劃基金資助項(xiàng)目(17X63);西安郵電大學(xué)研究生創(chuàng)新基金資助項(xiàng)目(CXJJYL2021050)

        作者簡(jiǎn)介:翟社平(1971—),男,陜西寶雞人,教授,碩導(dǎo),博士,CCF高級(jí)會(huì)員,主要研究方向?yàn)閰^(qū)塊鏈、語義計(jì)算;聶浩楠(1998—),男(通信作者),陜西西安人,碩士,主要研究方向?yàn)閰^(qū)塊鏈(1402870015@qq.com);陸嫻婧(1998—),女,陜西渭南人,碩士,主要研究方向?yàn)閰^(qū)塊鏈;楊銳(1976—),女,陜西咸陽人,講師,碩士,主要研究方向?yàn)閰^(qū)塊鏈.

        狠狠色综合7777久夜色撩人ⅰ| 亚洲女同恋中文一区二区| 中文字幕综合一区二区| 午夜成人理论福利片| 亚洲五月天综合| 伊人亚洲综合网色AV另类| 亚洲国产综合精品中文| 久久久久免费精品国产| 亚洲伊人色欲综合网| 国产自产精品露脸刺激91在线| 亚洲视频中文字幕更新| 亚洲国产一区二区三区| 亚洲码国产精品高潮在线 | 亚洲av无码成人精品国产| 国产尤物精品福利视频| 国产情侣一区在线| av网址在线一区二区| 人成午夜大片免费视频77777 | 亚洲av中文无码乱人伦下载| 男人边吃奶边做好爽免费视频| 天堂在线观看av一区二区三区| 丝袜美腿在线观看视频| 日本少妇春药特殊按摩3| 午夜亚洲www湿好大| 大白屁股流白浆一区二区三区| 国产影片一区二区三区| 国内精品卡一卡二卡三| 91亚洲国产成人aⅴ毛片大全| 亚洲无人区乱码中文字幕| 99re6在线视频精品免费| 性大片免费视频观看| 99久久精品久久久| 不卡一区二区三区国产| 亚洲成av人片在www| 免费一级毛片麻豆精品| 久久亚洲宅男天堂网址| 4hu四虎永久免费地址ww416| 国产欧美日韩a片免费软件| 色偷偷av一区二区三区人妖| 日本熟女中文字幕在线| 国产精品久久久久久久免费看 |