999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于信譽機制的改進PBFT共識算法

2024-07-31 00:00:00李俊吉張佳琦
計算機應用研究 2024年6期

摘 要:針對實用拜占庭容錯共識算法(practical Byzantine fault tolerant,PBFT)通信開銷大和缺乏獎懲機制的問題,提出一種基于信譽機制的改進PBFT共識算法RPBFT(reputed practical Byzantine fault tolerance)。首先,引入信譽機制對節點評分,將參與共識的節點分為收集器節點和普通共識節點,并對惡意節點進行懲罰。其次,收集器節點負責收集普通共識節點的投票消息,避免普通共識節點之間的通信,從而降低通信開銷。最后,當普通共識節點中的拜占庭節點均無惡意行為時,通過增加收集所需的投票數量,減少一次投票收集過程,實現快速共識。實驗結果表明,RPBFT能夠有效地發現惡意節點并對其作出懲罰,同時具有更低的通信開銷、平均共識時延以及更高的共識吞吐量。當節點總數為37時,與SBFT相比,RPBFT將平均共識時延降低25.2%以上,并將共識吞吐量提高39%以上。

關鍵詞:共識算法;信譽機制;實用拜占庭容錯

中圖分類號:TP311.1 文獻標志碼:A文章編號:1001-3695(2024)06-004-1628-07

doi: 10.19734/j.issn.1001-3695.2023.11.0517

Improved PBFT consensus algorithm based on reputation mechanism

Abstract:Aiming at the problem that PBFT had high communication overhead and lacks reward and punishment mechanism, this paper proposed a reputed PBFT consensus algorithm (RPBFT) based on reputation mechanism. Firstly, the algorithm introduced a reputation mechanism to score nodes, dividing the nodes participating in the consensus into collector nodes and ordinary consensus nodes, and punishing malicious nodes. Secondly, the collector node was responsible for collecting the voting messages of ordinary consensus nodes to avoid communication between ordinary consensus nodes, thus reducing communication overhead. Finally, when the Byzantine nodes in the ordinary consensus nodes had no malicious behavior, the algorithm achieved a fast consensus by increasing the number of votes required for collection and reducing the process of collecting votes once. The experimental results show that RPBFT can effectively detect and punish malicious nodes, while having lower communication overhead, average consensus latency, and higher consensus throughput. When the total number of nodes is 37, RPBFT reduced the average consensus latency by more than 25.2% and increased consensus throughput by more than 39% compared to SBFT.

Key words:consensus algorithm; reputation mechanism; practical Byzantine fault tolerant(PBFT)

0 引言

近年來,以比特幣、以太坊、聯盟鏈等應用為代表的區塊鏈技術成功吸引了眾多研究者的關注。區塊鏈本質上是一個去中心化的分布式賬本,融合了密碼學、P2P網絡及共識算法[1~5]等技術。共識算法是區塊鏈去中心化賬本和加密貨幣技術的重要組成部分,保證了區塊鏈的完整性和一致性。

共識算法的研究始于20世紀80年代初,Pease和Lamport等人[6,7]定義了拜占庭將軍問題,并提出了兩種拜占庭容錯共識算法(Byzantine fault tolerance,BFT)。然而,這兩種算法的通信復雜度均為指數級,高昂的復雜度使其一直停留在理論研究中。1999年,Castro等人[8]提出實用拜占庭容錯共識算法(practical Byzantine fault tolerance,PBFT),解決了原始BFT效率不高的問題,將通信復雜度降低到多項式級,使得BFT在實際系統中應用變得可行。

然而,PBFT仍然存在一些不足。PBFT通信復雜度達到O(N2),其中N表示共識節點總數。這意味著當共識節點總數增加時,通信開銷會顯著增大,從而降低共識效率。此外,當拜占庭節點出現作惡行為時,PBFT不能提供有效的懲罰措施。

近年來,盡管許多PBFT改進算法[9~13]在一定程度上提高了性能,但它們主要是通過減少共識節點的數量來實現。這種方法雖然提高了效率,但也導致一些節點無法參與共識過程,從而降低了系統的去中心化程度。

因此,本文提出一種基于信譽機制[14]的改進PBFT共識算法RPBFT(reputed practical Byzantine fault tolerance,RPBFT)。首先對RPBFT的節點類型進行說明,并給出信譽機制的設計方案,接著介紹RPBFT的共識過程。最后,進行實驗分析,并將RPBFT與其他學者改進的PBFT共識算法進行對比。相較于傳統信譽機制改進的PBFT共識算法,RPBFT具有線性的通信復雜度。這意味著,隨著節點總數的增加,RPBFT的通信開銷相較于同類算法更少。本文的主要貢獻如下:

a)RPBFT引入收集器節點的概念,并采用信譽機制來管理共識節點。根據節點的信譽分數選取收集器節點和普通共識節點。

b)收集器節點被用來收集普通共識節點的投票消息,使得普通共識節點之間無須進行通信,從而降低通信開銷。

c)在普通共識節點中的所有拜占庭節點均無作惡行為的情況下,通過增加達成共識所需的投票數量,減少一次投票收集過程,實現快速共識。

1 相關工作

PBFT中的每個節點在prepare和commit階段都需要大量的通信,這導致節點較多時通信量成倍增加。因此,現階段的許多解決方案旨在通過減少參與共識的節點數量來提高PBFT的效率。Li等人[9]提出了一種可擴展的共識算法,該算法通過可驗證隨機函數選取部分節點參加共識,減少參與共識的節點數量,通過降低通信量來提高性能。然而,該算法中所有節點被選取的概率均相同,惡意節點仍然有機會參與共識。

針對這個問題,一些研究者對節點進行信譽評估,拒絕分數較低的節點參與共識。Lao等人[10]提出了一種基于位置的可擴展共識算法,該算法使用地理位置信息唯一標識物聯網節點。節點的可信度是根據其在同一位置的工作時間來衡量的??尚哦仍礁撸贿x為背書節點的概率就越大。該方法優化了共識委員會的選取,并防止了女巫節點參與共識。Tang等人[11]提出了一種基于信任的實用拜占庭算法,該算法引入信用分數來評估節點可信度,選取一部分信用分數較高的節點參與共識過程,提高了通信開銷、共識效率等方面的性能。Tong等人[12]提出了Trust-PBFT算法,設計了一個三鏈模型來簡化存儲結構,并通過節點信任值選擇節點執行共識,降低了通信開銷,提高了性能。涂園超等人[13]提出一種基于信譽投票的改進方案,對每個節點進行評分,并根據評分分配不同的角色(普通節點、投票節點、候選節點和備選主節點),以便每次可以盡可能多地選擇非拜占庭節點。

在以上縮小共識委員會的方法中,如果選取較多的節點,通信量仍然很高;如果只選取少數節點參與共識,系統就會出現中心化趨勢。與此同時,一些研究者[15~21]使用分層或分組的方法來縮小單個共識委員會的規模,降低通信開銷,并允許更多的節點參與共識,但他們都沒有對共識流程進行改進。陳蘇明等人[22]提出一種基于節點分組信譽模型的改進PBFT共識算法。該算法根據節點的信譽分數將節點進行分組,并對commit階段進行優化,以減少該階段的通信開銷。然而,prepare階段的通信開銷并未發生改變,因此該算法的總體通信復雜度仍為O(N2)。

引入密碼學技術來設計共識算法是一個有益的改進思路,可以減少通信開銷。Yin等人[23]提出一種三階段投票的BFT類共識算法HotStuff,該算法在投票過程中引入了基于門限簽名[24,25]的收集器,以實現O(N)的消息驗證復雜度。然而,該算法使用主節點承擔收集器職責,增加了主節點的開銷。Gueta等人[26]提出了一種可擴展的實用拜占庭容錯共識算法SBFT,使從節點亦可承擔收集器職責,有效地解決了主節點開銷大的問題;同時,他們還設計了一種快速共識路徑來提高系統性能。

然而,門限簽名增加了時間開銷并影響效率。Liu等人[27]引入密鑰分享技術來實現收集器,但密鑰分享技術在密鑰收集過程中短暫復現私鑰,增加了安全風險。本文提出的改進共識算法RPBFT基于信譽分數選取收集器節點,旨在減少門限簽名帶來的時間開銷,從而提高性能,并對惡意行為進行懲罰。

2 RPBFT共識算法

2.1 節點分類

為了更好地管理和協調節點,將RPBFT中的節點分為共識節點和備選節點兩類[14]。其中,共識節點包括收集器節點和普通共識節點。

2.1.1 收集器節點

借鑒基于門限簽名實現收集器[23,26]的傳統方案,引入收集器節點的概念。收集器節點主要負責收集來自共識節點的簽名消息,并構建決議證書(quorum certificate,QC),QC的構建如算法1所示。在收集到2f+1個來自收集器節點和c+1個來自普通共識節點的正確投票后,收集器節點會記錄投票消息并進行簽名,生成QC。其中,f表示收集器節點中最多能夠容忍的拜占庭節點數量,c表示普通共識節點中最多能夠容忍的拜占庭節點數量。一旦QC構建成功,它將在整個網絡廣播,完成一次投票收集過程。

收集器節點類型與PBFT類似,分為主節點和從節點。收集器主節點接收來自客戶端的請求,對其進行簽名驗證。驗證成功后,它向所有節點廣播PRE-PREPARE消息。在接收到正確的PRE-PREPARE消息后,收集器節點進入prepare階段,并在收集器節點中廣播PREPARE消息。

算法1 構建QC

2.1.2 普通共識節點

普通共識節點負責對收集器節點提出的提案進行投票。普通共識節點收到超過2f個來自不同收集器節點的相同提案,即可為該提案投票。

2.1.3 備選節點

新加入的節點默認設置為備選節點,暫不參與共識過程。備選節點按照到達順序進行排名。當共識節點中的惡意節點被剔除后,排名最靠前的備選節點將轉變為普通共識節點,并賦予初始信譽分數。

2.2 信譽機制

由于PBFT中缺乏獎懲機制,RPBFT引入了信譽機制,對誠實節點進行獎勵,對作惡節點進行懲罰。在RPBFT中,收集器節點和普通共識節點共同維護節點的信譽分數信息。每一輪共識結束后,根據各個節點的信譽分數,選擇信譽分數最高的3f+1個節點作為收集器節點,剩余的2c+1個節點則作為普通共識節點。在系統初始時,所有共識節點的信譽分數都被設為0,并隨機選取3f+1個節點作為初始收集器節點。

在每一輪共識過程中,所有共識節點都將參與兩次投票。收集器節點根據這些投票信息計算每個節點的信譽分數。收集器節點只有接收到2f個來自其他收集器節點的正確投票和c+1個來自普通共識節點的正確投票時,才會開始構建QC。由于QC中只保存了部分先達的投票信息,所以信譽分數是基于前c+1個來自普通共識節點的正確投票和前2f+1個來自收集器節點的正確投票來計算的。

收集器節點完成信譽分數的計算后,將包含投票節點編號的QC廣播給所有節點,隨后普通共識節點會根據接收到的QC驗證收集器節點的信譽分數計算是否正確。如果驗證失敗,普通共識節點會認為該收集器節點作惡,向所有的收集器節點報告該作惡行為,當有超過2f+1的收集器節點和超過c+1以上的普通共識節點認為該節點作惡,該收集器節點將被剔除,隨后根據信譽機制重新選取收集器節點和普通共識節點。由于QC中攜帶有收集器節點不可偽造的簽名信息,所以該QC可以作為收集器節點作惡的證據。

信譽機制引入節點活躍度,以表示一段時間內節點參與投票的積極性,其公式為

其中:i表示節點編號5b0359b02b9ff924c393f77e56d5e623ea6464dd007422bf749316175508084a;b表示該時間段內總的投票次數;a表示節點i在b輪投票期間的投票數。RPBFT將b設置為50。

當節點出現異常行為但原因不明時,將對該節點采取懲罰措施,并觀察其后續表現。異常的原因可能是系統中的網絡問題導致的超時。由于該行為并非是由節點自身的作惡行為引起的,所以不能直接將其視為惡意節點。為此,信譽機制設計了懲罰因子。首次出現惡意行為不進行懲罰,以減少對誠實節點的誤判。同時減緩對多次作惡的惡意節點的信譽分數的恢復速度。其公式為

其中:m表示懲罰因子;x表示異常行為的次數。當沒有出現過異常行為時,m的值為1,信譽分數增長率為正常值。當出現一次異常行為時,考慮到可能不是由于節點自身的問題而發生的,m仍設置為1,此時增長率是正常的。但當異常行為次數超過1時,就會對其施以懲罰,減小信譽分數的增長率。如果異常行為的次數達到閾值(RPBFT設置為5),則將該節點認定為惡意節點,并將其剔除。同時,將從備選節點中選取最早進入的節點加入普通共識節點,參與共識。

為了防止收集器節點的信譽分數持續增加并確保其不會長期擔任收集器節點,信譽機制引入信譽調節因子p。當節點i為收集器節點時,p=-0.15,否則p=0。使得收集器節點在完成共識后會適當減去一些信譽分數,避免連續擔任收集器節點。節點的信譽分數Sin的計算如式(3)所示。

其中:n表示節點編號;i表示投票輪次;N表示節點總數;Si-1n為節點n上一次投票后的信譽分數;m為懲罰因子;Activationi為節點活躍度;p為信譽調節因子。當該節點參與投票時,k的值為1,否則為0。收集器節點一定參與投票,因為它包含自己的一票,若不包含,則認為收集器節點作惡。一旦發現收集器節點存在異常行為時,將其信譽分數減少所有節點平均信譽分數的一半,從而使其信譽分數更快地降低。初始信譽分數設為0,即S0n=0。

RPBFT中收集器節點有多個,每個收集器節點計算得到的信譽分數均不相同,這是因為每個收集器節點收到的投票節點各不相同。RPBFT將所有收集器節點的信譽分數進行綜合,取平均值作為節點的最終信譽分數,并選取3f+1個分數最高的節點作為收集器節點。為應對惡意收集器節點對信譽分數的影響,本文在選取新一任收集器節點時,會去除f個最大值以及f個最小值,最終信譽分數計算如算法2所示。

算法2 計算最終信譽分數

2.3 共識過程

為了降低通信開銷,RPBFT優化共識過程,盡可能減少投票階段的通信次數。RPBFT共識節點的總數|R|=3f+2c+2,其中,f表示收集器節點中最多存在f個拜占庭節點,c表示普通共識節點中最多存在c個拜占庭節點。在RPBFT中,收集器節點數量為N1=3f+1,普通共識節點數量為N2=2c+1。收集器節點和普通共識節點通過信譽機制進行劃分。RPBFT共識流程如圖1所示,其中,C為客戶端節點,0~3為收集器節點,4~6為普通共識節點。

RPBFT由七個階段組成,分別是request階段、pre-prepare階段、prepare階段、prepare-ack階段、commit階段、commit-ack階段和reply階段。

2.3.1 request階段

在request階段,客戶端會向收集器主節點發送REQUEST消息,該消息中包含客戶端對該消息的簽名。本文基于一個假設,即沒有簽名方的私鑰,任何人都無法偽造簽名。因此,在不公開客戶端私鑰的情況下,任何人都不能冒充該客戶端發送虛假請求。

2.3.2 pre-prepare階段

在pre-prepare階段,收集器主節點會等待來自客戶端的請求,驗證其簽名是否有效并滿足應用層的要求。如果驗證通過,將創建PRE-PREPARE消息并將其廣播到所有節點。

2.3.3 prepare階段

在prepare階段,所有節點等待來自收集器主節點的PRE-PREPARE消息,對其進行驗證。驗證通過后,開始第一輪投票。每個節點向所有的收集器節點發送投票消息,等待收集器節點整合投票消息。

2.3.4 prepare-ack階段

在prepare-ack階段,收集器節點負責收集有效投票消息。當收集到c+1個來自普通共識節點的投票消息以及2f+1(包括自己)個來自收集器節點的投票消息,且這些消息均通過正確性驗證,則投票收集完成。節點的信譽分數計算如算法3所示。隨后,根據投票消息創建QC。為便于普通共識節點對收集器節點計算信譽值分數進行監督,QC中包括參與投票的節點編號以及收集器節點對QC的簽名。接著,創建PREPARE-ACK消息,并將其與QC一并發送至所有的普通共識節點。鑒于收集器節點在下一個階段并無任務,RPBFT要求收集器節點在本階段提前開始第二輪投票,發送COMMIT投票消息給所有的收集器節點。

算法3 計算信譽分數

2.3.5 commit階段

在commit階段,普通共識節點等待接收收集器節點的PREPARE-ACK消息。收到該消息后,進行驗證,并通過攜帶的QC驗證收集器節點計算的信譽分數是否正確,普通共識節點驗證信譽分數的過程如算法4所示。驗證通過后,保存信譽分數,并進入下一階段投票。將投票消息發送給所有的收集器節點。由于收集器節點在prepare-ack階段已經發送過了投票消息,所以該階段不再進行投票。

算法4 普通共識節點驗證信譽分數

2.3.6 commit-ack階段

在commit-ack階段,收集器節點與prepare-ack階段類似,收集各節點的投票消息,對其進行驗證,并計算信譽分數,根據投票信息生成QC。隨后,向普通共識節點發送COMMIT-ACK消息,并攜帶QC以供普通共識節點驗證收集器節點計算的信譽分數。同時,向客戶端發送REPLY消息,告知其共識成功達成。

2.3.7 reply階段

在reply階段,客戶端等待接收來自收集器節點的REPLY消息,并對其驗證。當收到f+1個正確的REPLY消息且內容一致時,認為客戶端的請求操作已達成共識。

在此階段,普通共識節點會收到來自收集器節點的COMMIT-ACK消息及相應的QC,并對它們進行驗證。隨后根據QC驗證收集器節點計算的信譽分數是否正確。若分數不正確,則認為該收集器節點存在惡意行為,將其標記為惡意節點,同時將排名最高的備選節點晉升為普通共識節點,并重新選取收集器節點。若分數正確,則需要確定下一任的收集器節點。

2.4 快速共識

由于引入了信譽機制,拜占庭節點的數量會不斷減少,剩余的拜占庭節點也會盡可能地減少作惡行為以增加自己的信譽分數。在這種情況下,RPBFT進一步優化共識過程,實現快速共識。與Zyzzyva[28]類似,當普通共識節點中的拜占庭節點均無作惡行為時,增加commit階段中創建QC所需投票數,并精簡普通共識節點的prepare和prepare-ack階段,實現快速共識,稱為RPBFT-FAST。RPBFT-FAST的共識流程如圖2所示。

與RPBFT的共識流程類似,C表示客戶端節點,0~3為收集器節點,4~6為普通共識節點。在request階段,客戶端C向收集器主節點發送請求操作。隨后,收集器主節點驗證請求,驗證成功后以PRE-PREPARE消息的形式轉發給所有節點。收集器節點在收到正確的PRE-PREPARE消息后進入prepare階段,而普通共識節點則直接進入到commit階段。在prepare階段,收集器節點內部廣播PREPARE消息,每個收集器節點在收到2f+1個正確的PREPARE消息(包括自己)后進入commit階段。在commit階段,所有節點均向收集器節點發送COMMIT消息。收集器節點收到2c+1個來自普通共識節點(所有的普通共識節點)以及2f+1個來自收集器節點的正確COMMIT消息后向普通共識節點發送COMMIT-ACK消息,作為對COMMIT消息的響應。同時,收集器節點向客戶端發送REPLY消息,表明本輪共識已完成,并將區塊持久化到存儲中。如果客戶端收到f+1個正確的REPLY消息,則認為其發送的請求操作已經完成。當一個普通共識節點接收到2f+1個COMMIT-ACK消息時,認為本輪共識已完成,將區塊持久化到存儲中,準備進行下一輪共識。

RPBFT默認采用快速共識。然而,普通共識節點中存在惡意節點或故障節點時,由于無法收集到足夠的(2c+1條)正確的COMMIT消息,快速共識無法達成。此時,將未投票的節點視為惡意節點,扣除其信譽分數,以減少快速共識失敗的次數。隨后RPBFT-FAST切換到RPBFT重新開始共識。此時,保存收集到的COMMIT消息用于commit階段,即在收集器節點收集到足夠的PREPARE消息后,檢查收集器節點在快速共識期間收集的COMMIT消息是否足夠。如果足夠,則認為已經完成commit階段,并發送COMMIT-ACK和reply消息來完成共識。如果不足,則發送PREPARE-ACK消息請求重新完成commit階段。以此減少重復消息的發送,降低通信開銷。

2.5 安全性分析

假設收集器節點中最多存在f個拜占庭節點,普通共識節點中最多存在c個拜占庭節點,誠實節點不會同時對兩個不同的提案進行投票。如果所有非拜占庭節點本地提交的相同序號的區塊都一致,則算法安全。

定義1 安全性。如果以下條件成立,則算法是安全的:當收集器節點中最多存在f個拜占庭節點,普通共識節點中最多存在c個拜占庭節點時,如果在某個序號n1上已有一個誠實節點提交了區塊,則將不會在該序號上提交其他區塊。

結論1 在序號為n1時,如果一個誠實的收集器節點收到2f+1條(包括自己)來自收集器節點的對提案p1的投票,則不可能收到2f+1條(包括自己)來自收集器節點的對提案p2的投票,其中p1≠p2。

證明 當收集器主節點是誠實節點時,最多f個收集器節點可以對提案p2投票。當收集器主節點是拜占庭節點時,收集器節點中最多存在f-1個從節點為拜占庭節點。如果收集器節點可以收到2f+1條(包括自己)來自收集器節點的對提案p2的投票,則有一個正常節點對兩個提案都進行了投票,這是不可能的。綜上所述,結論1成立。

結論2 當序號為n1時,收集器將只通過一個提案。

證明 當收集器中主節點是誠實節點時,所有節點均可接收到正確的提案。2f+1個收集器節點和c+1個普通共識節點將會為該提案進行投票。由于只有拜占庭節點對其他提案投票,無法達到投票閾值,惡意提案無法通過。當主節點是拜占庭節點時,從結論1可得出結論,在收集器節點的投票過程中,只有一個提案p可以被通過。盡管普通共識節點可以產生多個惡意提案,但由于這些惡意提案與p不同,系統最終認為主節點存在作惡行為,并剔除作惡節點重新開始共識。綜上所述,結論2成立。

結論1和2證明了RPBFT具有安全性。

3 實驗及分析

考慮到SBFT有收集器節點和快速共識的思想,且RPBFT是PBFT的改進算法,本實驗選擇了SBFT和PBFT以及Kumar等人[29]提出的基于信譽的PBFT共識算法(reputed PBFT,R-PBFT)作為對比算法。實驗基于Java t-io框架,實現了多線程、多節點的PBFT、SBFT、R-PBFT以及RPBFT共識算法,對RPBFT的性能進行實驗分析,并與PBFT[8]和SBFT[26]、R-PBFT[29]進行對比。在實驗中,RPBFT的收集器節點數量為3f+1。為了使收集器節點更少以獲得更高的性能,實驗將收集器節點總數設置為4。此外,實驗設置誠實節點不會出現故障等問題。實驗過程中,客戶端發送并發交易5 000條,每100條交易打包成一個區塊。實驗重復50次,取平均值作為最終的實驗結果。實驗軟硬件配置信息如表1所示。

3.1 容錯性分析

RPBFT收集器節點能夠容忍的最大拜占庭節點數為f,普通共識節點能夠容忍的最大拜占庭節點數為c。容錯能力對比如圖3所示,SBFT、R-PBFT容錯能力與PBFT相同,這里不再贅述。RPBFT(x)表示收集器節點數為x時,RPBFT可以容忍的最大拜占庭節點數。從圖3中可以看出,RPBFT的容錯性能優于PBFT。當收集器節點數量越少時,容錯性能會提高。這是因為收集器節點可以容忍1/3的拜占庭節點,而普通共識節點中可以容忍1/2的拜占庭節點。這意味著,普通共識節點的數量增加時,可以容忍的拜占庭節點數量也會增加。因此,RPBFT容錯性能優于PBFT,且收集器節點數量越少,容錯性能越好。

3.2 信譽機制分析

將收集器節點的數量設置為4,普通共識節點的數量設置為41,其中初始收集器中存在1個拜占庭節點,普通共識節點中存在20個拜占庭節點。設置拜占庭節點作惡的概率為50%,其作惡行為表現為不發送消息。初始收集器節點為編號最小的4個節點,剩余41個節點為普通共識節點。實驗持續進行到第一個作惡的拜占庭節點被剔除,選擇該節點作為拜占庭節點代表,并任意選擇一個誠實節點作為誠實節點代表,記錄這段時間中誠實節點和拜占庭節點的信譽分數變化如圖4所示。

從圖4中可以看出,誠實節點的信譽分數在3附近振蕩。這是因為誠實節點在成功擔任收集器節點后會降低其信譽分數,以避免繼續擔任收集器節點。然而,拜占庭節點的信譽分數振蕩次數較少,且其間隔越來越大。這是因為拜占庭節點存在作惡行為,收集器節點有時無法收集到來自它的投票,導致信譽分數上升速度不如誠實節點快。此外,當拜占庭節點的作惡行為被發現后,懲罰因子導致它的增長速度進一步減慢。因此,需要更多的共識輪次信譽分數才能恢復到平均水平。在第932輪時,因為拜占庭節點作惡次數已經達到5次,此時該節點被標記為惡意節點并踢出系統。綜合來看,該信譽機制可以有效地發現作惡節點并對其作出懲罰,同時防止信譽分數無限增長。

3.3 共識通信量

設RPBFT和SBFT中收集器節點總數為N1,普通共識節點總數為N2,PBFT和R-PBFT節點總數為N。同時,RPBFT-FAST、SBFT-FAST表示兩者在拜占庭節點無作惡行為時的通信開銷,RPBFT、SBFT表示兩者在存在拜占庭節點作惡時的通信開銷。PBFT和R-PBFT在兩種情況下的通信開銷相同,不再分開討論。計算三種算法從request階段到reply階段的通信次數,通信開銷對比如表2所示。當收集器節點總數N1為常數時,RPBFT的通信復雜度為O(N2)。當收集器節點總數為4時,得到各算法通信開銷對比如圖5所示。

從圖5中可以看出,無論拜占庭節點是否存在作惡行為,RPBFT通信開銷均低于PBFT與R-PBFT。當拜占庭節點存在作惡行為時,RPBFT的通信開銷略低于SBFT,而在拜占庭節點不存在作惡行為時,兩者通信開銷幾乎相同??傮w來說,RPBFT與SBFT的通信開銷相差不大,但低于PBFT與R-PBFT。

3.4 平均共識時延

共識時延是指客戶端發送交易請求到整個共識過程完成所需要的時間,即

Delayi=Tfinish-Treq(4)

其中:Delayi表示交易i的共識時延;Tfinish表示交易所在區塊完成確認的時間;Treq表示客戶端發送請求的時間。

實驗中,平均共識時延是對5 000次并發交易的共識時延取平均值,即

RPBFT與PBFT、R-PBFT和SBFT在節點數量相同的情況下進行對比實驗,實驗將節點總數設置為13、19、25、31、37,并保持收集器節點總數為4。確保四種算法的節點總數一致,比較算法的平均共識時延。RPBFT和SBFT在拜占庭節點無作惡行為的情況下,使用快速共識完成共識。拜占庭節點無作惡行為時,平均共識時延對比如圖6所示。

從圖6中可以看出,當拜占庭節點無作惡行為時,RPBFT的平均共識時延整體上高于PBFT、R-PBFT與SBFT。隨著節點數量的增加,RPBFT與SBFT的平均共識時延呈現出相對穩定的增長趨勢,而PBFT和R-PBFT的平均共識時延急劇上升。結果表明,當拜占庭節點無作惡行為且節點總數為37時,RPBFT的平均共識時延相較于SBFT減少了約25.2%,相較于PBFT降低了約76.4%,相較于R-PBFT下降了約60.5%。

當拜占庭節點存在作惡行為時,由于無法收集到足夠的投票,快速共識無法完成,拜占庭節點存在作惡行為時平均共識時延對比如圖7所示。整體上,RPBFT的平均共識時延低于SBFT、PBFT以及R-PBFT。當節點總數為13時,RPBFT的平均共識時延與PBFT和R-PBFT差距很小,此時R-PBFT的平均共識時延甚至低于SBFT,這表明R-PBFT在節點較少時具有較低的平均共識時延。然而,隨著節點總數的增加,PBFT和R-PBFT的平均共識時延迅速上升,并且整體上高于其他兩種算法。結果表明,在拜占庭節點存在作惡行為的情況下且節點總數為37時,RPBFT的平均共識時延與SBFT相比減少了約32.8%,與PBFT相比降低了約66.8%,與R-PBFT相比下降了約44.6%。

在節點總數較少的情況下,無論拜占庭節點是否存在作惡行為,RPBFT的平均共識時延與R-PBFT非常接近,并且小于SBFT。隨著節點數量的增加,RPBFT和SBFT的平均共識時延整體上低于PBFT和R-PBFT,并且RPBFT和SBFT的平均共識時延增長相對緩慢。由于RPBFT省去了門限簽名的開銷,與SBFT相比,RPBFT具有更低的平均共識時延。而PBFT和R-PBFT具有較高的通信復雜度,隨著節點數量的增加,兩者的平均共識時延迅速增加,遠遠超過RPBFT的平均共識時延。綜合來看,RPBFT在平均共識時延方面具有良好的性能。

3.5 共識吞吐量

共識吞吐量是指系統每秒內可以完成多少交易請求的共識,即

TPS=Countreq/Ttotal(6)

其中:Countreq為交易的總數;Ttotal是完成交易所花費的時間。吞吐量的單位為Tx/s,其中Tx表示交易的數量,s表示時間單位秒,Tx/s表示每秒完成的交易數。共識節點的總數分別設置為13、19、25、31、37。通過調整節點數量,比較四種共識算法的共識吞吐量。當拜占庭節點無作惡行為時,共識吞吐量對比如圖8所示??梢钥闯觯琑PBFT的共識吞吐量始終高于SBFT、R-PBFT和PBFT。當節點總數為37時,與SBFT相比提高了約39.9%,與R-PBFT相比上升了約171.5%,與PBFT相比增加了約356.8%。

當拜占庭節點中存在作惡行為時,共識吞吐量對比如圖9所示。當節點總數為13時,RPBFT的共識吞吐量與R-PBFT相差不大,而SBFT的共識吞吐量低于其他三種算法。這是因為節點較少時,SBFT的通信開銷與其他算法接近,但由于存在額外的門限簽名開銷,其共識吞吐量低于其他算法。隨著節點總數的增加,PBFT和R-PBFT的通信開銷急劇上升,它們的共識吞吐量快速下降,隨后低于SBFT的共識吞吐量。相比之下,RPBFT通信量較低且沒有門限簽名開銷,因此其共識吞吐量始終高于PBFT、R-PBFT和SBFT。當節點總數為37時,RPBFT的共識吞吐量與SBFT相比提高了約54%,與R-PBFT相比上升了約86.7%,與PBFT相比增加了約214.1%。

RPBFT算法在兩種情況下具有較高的共識吞吐量。值得注意的是,當節點數量較少時,RPBFT的共識吞吐量與R-PBFT接近,但隨著節點數量的增加,R-PBFT的共識吞吐量迅速下降,而SBFT與RPBFT的下降速度則較為緩慢。整體上來看,RPBFT具有較高的共識吞吐量。

綜上所述,當節點數量較少時,RPBFT的平均共識時延和共識吞吐量與R-PBFT接近。隨著節點數量的增加,RPBFT在平均共識時延和共識吞吐量方面的表現優于其他算法??傮w來看,RPBFT可以有效地降低惡意節點擔任收集器節點的概率,并在容錯性、共識通信量、平均共識時延和共識吞吐量方面展現出優異的性能。

4 結束語

針對PBFT通信開銷大及缺乏獎懲機制的問題,本文提出了一種基于信譽機制的RPBFT共識算法。RPBFT采用信譽機制對共識節點進行信譽評分,并選取信譽分數最高的3f+1個節點作為收集器節點,剩余2c+1個節點作為普通共識節點。新加入的備選節點不參與共識,等待共識節點作惡被踢出后,就可以轉變為普通共識節點參與共識。收集器節點負責收集普通共識節點的投票,以減少普通共識節點之間的通信,降低通信開銷。當普通共識節點中的拜占庭節點無作惡行為時,增加收集器節點需要接收投票的數量以減少一次投票收集過程,從而實現快速共識。實驗表明,RPBFT具有較低的通信開銷,并顯著提高了其在平均共識時延和吞吐量的性能,同時能夠對惡意節點進行有效懲罰。但RPBFT仍有不足之處,后續工作將進一步提高算法的可擴展性。

參考文獻:

[1]夏清,竇文生,郭凱文,等. 區塊鏈共識協議綜述 [J]. 軟件學報,2021,32(2): 277-299. (Xia Qing,Dou Wensheng,Guo Kaiwen,et al. Survey on blockchain consensus protocol [J]. Journal of Software,2021,32(2): 277-299.)

[2]Wang Xin,Duan Sisi,Clavin J,et al. BFT in blockchains: from protocols to use cases [J]. ACM Computing Surveys,2022,54(10): 1-37.

[3]馮了了,丁滟,劉坤林,等. 區塊鏈BFT共識算法研究進展 [J]. 計算機科學,2022,49(4): 329-339. (Feng Liaoliao,Ding Yan,Liu Kunlin,et al. Research advance on BFT consensus algorithms [J]. Computer Science,2022,49(4): 329-339.)

[4]劉懿中,劉建偉,張宗洋,等. 區塊鏈共識機制研究綜述 [J]. 密碼學報,2019,6(4): 395-432. (Liu Yizhong,Liu Jianwei,Zhang Zongyang,et al. Overview on blockchain consensus mechanisms [J]. Journal of Cryptologic Research,2019,6(4): 395-432.)

[5]袁勇,倪曉春,曾帥,等. 區塊鏈共識算法的發展現狀與展望 [J]. 自動化學報,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.)

[6]Pease M,Shostak R,Lamport L. Reaching agreement in the presence of faults [J]. Journal of the ACM,1980,27(2): 228-234.

[7]Lamport L,Shostak R,Pease M. The Byzantine generals problem [J]. ACM Trans on Programming Languages and Systems,1982,4(3): 382-401.

[8]Castro M,Liskov B. Practical Byzantine fault tolerance [C]// Proc of the 3rd Symposium on Operating Systems Design and Implementation. New York: ACM Press,1999: 173-186.

[9]Li Yixin,Wang Zhen,Fan Jia,et al. An extensible consensus algorithm based on PBFT [C]// Proc of International Conference on Cyber-enabled Distributed Computing and Knowledge Discovery. Pis-cataway,NJ: IEEE Press,2019: 17-23.

[10]Lao L,Dai Xiaohai,Xiao Bin,et al. G-PBFT: a location-based and scalable consensus protocol for IoT-Blockchain applications [C]// Proc of IEEE International Parallel and Distributed Processing Symposium. Piscataway,NJ: IEEE Press,2020: 664-673.

[11]Tang Song,Wang Zhiqiang,Jiang Jian,et al. Improved PBFT algorithm for high-frequency trading scenarios of alliance blockchain [J]. Scientific Reports,2022,12(1): article No.4426.

[12]Tong Wei,Dong Xuewen,Zheng Jiawei. Trust-PBFT: a PeerTrust-based practical Byzantine consensus algorithm [C]// Proc of International Conference on Networking and Network Applications. Pisca-taway,NJ: IEEE Press,2019: 344-349.

[13]涂園超,陳玉玲,李濤,等. 基于信譽投票的PBFT改進方案 [J]. 應用科學學報,2021,39(1): 79-89. (Tu Yuanchao,Chen Yuling,Li Tao,et al. Improved PBFT scheme based on reputation voting [J]. Journal of Applied Sciences,2021,39(1): 79-89.)

[14]路宇軒,孔蘭菊,張寶晨,等. MC-RHotStuff: 面向多鏈基于信譽的HotStuff共識機制 [J/OL]. 計算機研究與發展. (2023-08-14) [2023-10-24]. http://kns. cnki. net/kcms/detail/11. 1777. TP. 20230812. 1255. 002. html. (Lu Yuxuan,Kong Lanju,Zhang Baochen,et al. MC-RHotStuff: multi-chain oriented hotstuff consensus mechanism based on reputation [J/OL]. Journal of Computer Research and Development.(2023-08-14) [2023-10-24]. http://kns. cnki. net/kcms/detail/11.1777.TP.20230812.1255.002.html.)

[15]Feng Libo,Zhang Hui,Chen Yong,et al. Scalable dynamic multi-agent practical Byzantine fault-tolerant consensus in permissioned blockchain [J]. Applied Sciences,2018,8(10): 1919.

[16]Li Wenyu,Feng Chenglin,Zhang Lei,et al. A scalable multi-layer PBFT consensus for blockchain [J]. IEEE Trans on Parallel and Distributed Systems,2021,32(5): 1146-60.

[17]Miic' V B,Miic' J,Chang Xiaolin. The impact of vote counting policy on the performance of PBFT [C]// Proc of IEEE Canadian Confe-rence on Electrical and Computer Engineering. Piscataway,NJ: IEEE Press,2021: 1-6.

[18]Yu Ge,Wu Bin,Niu Xinxin. Improved blockchain consensus mechanism based on PBFT algorithm [C]// Proc of the 2nd International Conference on Advances in Computer Technology,Information Science and Communications. Piscataway,NJ: IEEE Press,2020: 14-21.

[19]胡榮磊,丁安邦,于秉琪. 一種基于門限簽名的區塊鏈共識算法 [J]. 計算機應用研究,2022,39(12): 3555-3561. (Hu Ronglei,Ding Anbang,Yu Bingqi. Blockchain consensus algorithm based on threshold signature [J]. Application Research of Computers,2022,39(12): 3555-3561.)

[20]劉陜南,張榮華,劉長征. 基于分組和信用分級的 PBFT共識算法改進方案 [J]. 計算機工程,2023,49(11): 143-149. (Liu Shannan,Zhang Ronghua,Liu Changzheng. Improvement of PBFT consensus algorithm based on grouping and credit rating [J]. Computer Engineering,2023,49(11): 143-149.)

[21]朱海,金瑜. DS-PBFT: 一種基于距離的面向區塊鏈的共識算法 [J]. 小型微型計算機系統,2022,43(3): 506-513. (Zhu Hai,Jin Yu. DS-PBFT: a distance based consensus algorithm for blockchain [J]. Journal of Chinese Computer Systems,2022,43(3): 506-513.)

[22]陳蘇明,王冰,陳玉全,等. 基于節點分組信譽模型的改進PBFT共識算法 [J]. 計算機應用研究,2023,40(10): 2916-2921. (Chen Suming,Wang Bing,Chen Yuquan,et al. Improved PBFT consensus algorithm based on node grouping reputation model [J]. Application Research of Computers,2023,40(10): 2916-2921.)

[23]Yin Maofan,Malkhi D,Reiter M K,et al. HotStuff: BFT consensus with linearity and responsiveness [C]// Proc of ACM SymposiumG+dV3c7yLNBrXYA8mEP26Fhu1wQuQW+LzaNF8qLtybI= on Principles of Distributed Computing. New York: ACM Press,2019: 347-356.

[24]Boldyreva A. Threshold signatures,multisignatures and blind signatures based on the gap-Diffie-Hellman-group signature scheme [C]// Proc of the 6th International Workshop on Theory and Practice in Public Key Cryptography. Berlin: Springer,2002: 31-46.

[25]Boneh D,Lynn B,Shacham H. Short signatures from the Weil pairing [J]. Journal of Cryptology,2004,17(4): 297-319.

[26]Gueta G G,Abraham I,Grossman S,et al. SBFT: a scalable and decentralized trust infrastructure [C]// Proc of the 49th Annual IEEE/IFIP International Conference on Dependable Systems and Networks. Piscataway,NJ: IEEE Press,2019: 568-580.

[27]Liu Jian,Li Wenting,Karame G O,et al. Scalable Byzantine consensus via hardware-assisted secret sharing [J]. IEEE Trans on Computers,2019,68(1): 139-51.

[28]Kotla R,Alvisi L,Dahlin M,et al. Zyzzyva: speculative Byzantine fault tolerance [J]. ACM Trans on Computer Systems,2010,27(4): 1-39.

[29]Kumar A,Vishwakarma L,Das D. R-PBFT: a secure and intelligent consensus algorithm for Internet of Vehicles [J]. Vehicular Communications,2023,41: 100609.

主站蜘蛛池模板: 九色91在线视频| 欧美第二区| 久久久久九九精品影院| 欧美一级在线看| 国产丰满大乳无码免费播放| 99999久久久久久亚洲| 久久精品国产精品青草app| 99er这里只有精品| 国产手机在线观看| 国产精品香蕉| 国产成年无码AⅤ片在线| 中文字幕乱码中文乱码51精品| 美女无遮挡免费视频网站| 色久综合在线| 在线播放国产一区| 亚洲第一视频网站| 国产另类乱子伦精品免费女| 天堂成人在线| 中日无码在线观看| 亚洲AV色香蕉一区二区| 高清亚洲欧美在线看| 国内精品久久久久久久久久影视| 久久人人爽人人爽人人片aV东京热 | 国产一区在线观看无码| 美美女高清毛片视频免费观看| 亚洲第七页| 欧美日韩免费| 国产av无码日韩av无码网站| 波多野结衣亚洲一区| 91精品啪在线观看国产60岁| 中文字幕首页系列人妻| www.亚洲国产| 91精品视频在线播放| 99九九成人免费视频精品| 香蕉精品在线| 人人看人人鲁狠狠高清| 女人18毛片水真多国产| 婷婷在线网站| 亚洲网综合| 色网站在线视频| Jizz国产色系免费| 在线国产三级| 91网址在线播放| 国产成人一区免费观看| 久久性视频| 亚洲美女久久| 在线观看国产网址你懂的| 在线精品自拍| 亚洲综合激情另类专区| 亚洲资源站av无码网址| 久热re国产手机在线观看| 国产亚洲精| 99精品福利视频| 国产成人精品在线1区| 亚洲综合18p| 一级毛片网| 久久永久视频| 在线看国产精品| 99这里精品| 国产99视频免费精品是看6| 麻豆精品在线播放| 一本久道久久综合多人| 欧美一区福利| 午夜国产理论| 91精品啪在线观看国产60岁| 狠狠亚洲五月天| 亚洲最大情网站在线观看| 欧美日本激情| 国产精品青青| 国产第一页免费浮力影院| 国产第一页亚洲| 成人在线不卡| 黄色一及毛片| 国产白浆在线| 国产精品所毛片视频| 一本一本大道香蕉久在线播放| 欧美97欧美综合色伦图| 伊在人亞洲香蕉精品區| 亚洲成人播放| 超碰91免费人妻| 无码内射在线| 欧美综合在线观看|