本發明涉及區塊鏈技術,具體涉及一種基于聚類分組和動態評分的pbft共識方法。
背景技術:
1、區塊鏈作為一種典型的分布式技術架構,憑借其高度的安全性和去中心化特性,已廣泛應用于各類分布式應用場景中。特別是在點對點(p2p)網絡中,區塊鏈能夠實現具有多樣化角色的節點之間的協作與交易。在p2p網絡環境下,節點以去信任化的方式相互作用,不同角色的節點根據各自的目的和功能參與其中,形成了一個去中心化、透明且安全的系統。區塊鏈通過將節點間的交易記錄存儲在每個節點的分布式賬本中,不僅保障了數據的不可篡改性,而且顯著增強了系統對惡意攻擊的抗干擾能力。
2、在區塊鏈技術的共識機制中,pbft(practical?byzantine?fault?tolerance,實用拜占庭容錯算法)作為一種廣泛應用的非競爭性共識算法,因其具備高吞吐量和低延遲的特性,已經在多種分布式系統中得到了成功應用。pbft算法通過節點間的投票過程確保系統能夠在存在拜占庭錯誤節點的情況下,依然能夠高效、安全地達成共識,從而保證區塊鏈網絡在面臨惡意節點攻擊時的可靠性和穩定性。與競爭性共識算法相比,pbft通過基于投票的共識方式,大幅減少了計算資源的浪費,提升了系統的效率和節能性。pbft的優勢之一在于其高可靠性,即使網絡中存在最多33%的惡意節點,系統仍能完成共識過程。然而,現有的pbft算法及其改進版本仍面臨一些挑戰,如通信開銷較大、擴展性差、以及在節點時延較高的環境下,現有的基于信譽值分組的pbft算法難以保持良好的共識效率。
技術實現思路
1、為解決上述問題,本發明提供了一種基于聚類分組和動態評分的pbft共識方法,其通過結合智能聚類分組和動態評分,有效提升了pbft在大規模分布式系統中的效率、擴展性和安全性,解決了現有pbft算法在通信開銷、擴展性、節點時延較高環境下性能不足的問題。
2、具體方案包括:
3、網絡初始化:為所有節點賦予相同的評分值,采用改進k-means方法將所有節點劃分為多組;在每一組中隨機選取一個節點作為組織代表節點,再從所有組織代表節點中隨機選取一個節點作為主節點;
4、共識階段:
5、s1.預準備階段:當主節點接收到請求消息m時,主節點為請求消息m分配一個序列號x,然后向參與本輪共識的節點廣播pre-prepare消息,并將pre-prepare消息加入日志;
6、s2.準備階段:參與本輪共識的每一節點接收到pre-prepare消息后執行組內準備操作,向自身所屬組的組織代表節點發送in-prepare消息;每一組織代表節點接收到in-prepare消息后執行組外準備操作,發送out-prepare消息;
7、s3.確認階段:每一組織代表節點收到out-prepare消息后,若out-prepare消息的發送方為組織代表節點,且摘要正確,則將out-prepare消息加入日志;判斷日志中是否存在2/3×k個具有相同視圖號、序列號和摘要的out-prepare消息,若是,則向主節點發送確認消息,并將確認消息加入日志;k表示組織代表節點數量;
8、s4.提交階段:主節點收到確認消息后執行確認回復操作,廣播確認回復消息;參與本輪共識的每一節點接收確認回復消息后,驗證確認回復消息的發送方是否為主節點,若是,則向客戶端發送回復消息,并將回復消息加入日志;客戶端接收回復消息,并將回復消息加入日志中,判斷針對請求消息m,是否收到了f+1個具有相同返回結果的回復消息,若是,則執行請求消息m;f表示系統能夠容忍的拜占庭節點最大數量;
9、共識節點動態評分:共識完成后,對參與本輪共識的所有節點進行評分值更新,參與同一輪共識的所有節點的評分值更新為相同數值;根據更新后的評分值計算出參與下一輪共識的節點數量。
10、本發明的有益效果:
11、本發明將改進k-means方法與pbft結合,優化了節點分組方式,減少了通信開銷,提升了網絡中節點間的協作效率。
12、本發明基于節點行為進行動態評分,確保了每個節點在共識過程中的投票權重與其信譽相符,提升了共識效率和系統的安全性。
13、本發明提出節點任期機制,通過節點角色的動態輪換,提升了pbft算法的公平性和系統的穩定性,避免了惡意節點的長期控制。
14、本發明提高pbft的擴展性和魯棒性,在節點數目龐大和節點時延較高的情況下,優化了pbft共識協議的效率,降低了由于時延引起的性能瓶頸。
1.一種基于聚類分組和動態評分的pbft共識方法,其特征在于,包括以下步驟:
2.根據權利要求1所述的一種基于聚類分組和動態評分的pbft共識方法,其特征在于,步驟s1采用改進k-means方法將所有節點劃分為多組,包括:
3.根據權利要求1所述的一種基于聚類分組和動態評分的pbft共識方法,其特征在于,在預準備階段,確定參與本輪共識的節點包括以下步驟:
4.根據權利要求1所述的一種基于聚類分組和動態評分的pbft共識方法,其特征在于,在每一輪共識完成后,對參與共識的節點進行評分值更新,更新公式為
5.根據權利要求1所述的一種基于聚類分組和動態評分的pbft共識方法,其特征在于,根據更新后的評分值計算出參與下一輪共識的節點數量,包括:
6.根據權利要求1所述的一種基于聚類分組和動態評分的pbft共識方法,其特征在于,在網絡初始化時,為每個節點賦予相同的信譽值,設置請求消息接收時限;當主節點接收到請求消息時,啟動計時器,到達請求消息接收時限后關閉計時器,若參與該請求消息的共識過程的節點在請求消息接收時限內未反應,則執行以下操作: