摘 要:針對(duì)實(shí)用拜占庭容錯(cuò)共識(shí)算法中存在缺少對(duì)惡意節(jié)點(diǎn)的懲罰機(jī)制、通信開銷大、主節(jié)點(diǎn)選取安全性不足等問(wèn)題,提出了一種基于信譽(yù)和標(biāo)準(zhǔn)差聚類的PBFT共識(shí)優(yōu)化算法TSD-PBFT,旨在提高共識(shí)效率和安全性。首先,建立節(jié)點(diǎn)動(dòng)態(tài)和靜態(tài)結(jié)合的信譽(yù)評(píng)估模型,通過(guò)實(shí)時(shí)監(jiān)測(cè)節(jié)點(diǎn)投票數(shù)和參與度來(lái)動(dòng)態(tài)評(píng)估節(jié)點(diǎn)行為,并剔除惡意節(jié)點(diǎn)來(lái)提高整體共識(shí)效率和可靠性,同時(shí)通過(guò)周期性地重置高信譽(yù)值節(jié)點(diǎn)的評(píng)分,防止單一節(jié)點(diǎn)或小團(tuán)體長(zhǎng)期主導(dǎo)共識(shí)過(guò)程;其次,提出基于信譽(yù)和標(biāo)準(zhǔn)差的聚類算法,引入標(biāo)準(zhǔn)差逐步選取密度高且信譽(yù)良好的節(jié)點(diǎn)作為聚類中心,避免局部最優(yōu)解;同時(shí)采用改進(jìn)的K-medoids聚類算法將節(jié)點(diǎn)分組并形成兩層,實(shí)現(xiàn)分層共識(shí)來(lái)降低共識(shí)過(guò)程的通信開銷;最后,優(yōu)化主節(jié)點(diǎn)選取方式,由聚類中心節(jié)點(diǎn)投票產(chǎn)生主節(jié)點(diǎn),通過(guò)賦予信譽(yù)高且標(biāo)準(zhǔn)差低的節(jié)點(diǎn)更高的投票權(quán)重來(lái)降低惡意節(jié)點(diǎn)擔(dān)任主節(jié)點(diǎn)的概率,提高主節(jié)點(diǎn)選取的安全性和公正性。實(shí)驗(yàn)仿真結(jié)果表明,在相同的網(wǎng)絡(luò)設(shè)置和節(jié)點(diǎn)數(shù)量條件下,與PBFT相比,TSD-PBFT算法平均吞吐量提高了72.1%,平均時(shí)延降低了50.2%。與現(xiàn)在類似PBFT改進(jìn)算法相比,TSD-PBFT也具有明顯的性能優(yōu)勢(shì),能更好的適用于大規(guī)模聯(lián)盟鏈場(chǎng)景。
關(guān)鍵詞:區(qū)塊鏈; 共識(shí)機(jī)制; 實(shí)用拜占庭容錯(cuò); 信譽(yù)機(jī)制; 標(biāo)準(zhǔn)差聚類
中圖分類號(hào):TP301"" 文獻(xiàn)標(biāo)志碼:A
文章編號(hào):1001-3695(2025)03-004-0677-10
doi:10.19734/j.issn.1001-3695.2024.09.0312
Tsd-PBFT: PBFT consensus optimization algorithm based ontrust and standard deviation clustering
Zhang Li 1, Deng Xiaohong2,3, Shi Yiran1, Liu Yong 1, Liu Lihui1
(1.School of Information Engineering, Jiangxi University of Science amp; Technology, Ganzhou Jiangxi 341000, China; 2.School of Information Engineering, Gannan University of Science amp; Technology, Ganzhou Jiangxi 341000, China; 3.Key Laboratory of Cloud Computing amp; Big Data, Ganzhou Jiangxi 341000, China)
Abstract:Aiming to address the lack of punishment mechanisms for malicious nodes, high communication overhead, and insufficient security in master node selection within practical Byzantine fault-tolerant consensus algorithms, this paper proposed a PBFT consensus optimization algorithm based on trust and standard deviation clustering,called TSD-PBFT, which aimed to improve the consensus efficiency and security. Firstly, the algorithm established a dynamic and static trust assessment model to evaluate node behavior in real-time by monitoring node votes and participation. This process eliminated malicious nodes to enhance overall consensus efficiency and reliability. Additionally, the scores of nodes with high trust values were periodically reset to prevent individual nodes or small groups from dominating the consensus process for extended periods. Secondly, the algorithm introduced a clustering approach based on trust and standard deviation. It selected nodes with high density and strong trust as clustering centers by incorporating standard deviation, which avoided local optimal solutions. The improved K-medoids clustering algorithm grouped the nodes into two layers, facilitating layered consensus and reducing communication overhead during the consensus process. Finally, the algorithm optimized the master node selection method. Nodes at the clustering centers voted to choose the master node, giving higher voting weights to those with high trust and low standard deviation. This approach reduced the likelihood of malicious nodes becoming the master node and enhanced the security and fairness of the selection process. Experimental simulation results demonstrate that, under the same network settings and number of nodes, TSD-PBFT algorithm improves average throughput by 72.1% and reduces average delay by 50.2% compared to PBFT. TSD-PBFT also shows significant performance advantages over similar PBFT improvements, making it more suitable for large-scale consortium blockchain scenarios.
Key words:blockchain; consensus mechanism; practical Byzantine fault tolerance; trust mechanism; standard deviation clustering
0 引言
自比特幣[1]問(wèn)世以來(lái),其底層核心技術(shù)——區(qū)塊鏈,引起了研究者們的廣泛關(guān)注。區(qū)塊鏈作為一種去中心化的分布式賬本技術(shù),融合p2p網(wǎng)絡(luò)、密碼學(xué)原理、共識(shí)算法以及智能合約技術(shù)[2],構(gòu)建了一個(gè)安全、透明且難以篡改的數(shù)據(jù)存儲(chǔ)系統(tǒng)。隨著以太坊和智能合約的問(wèn)世,區(qū)塊鏈技術(shù)開始在能源[3]、醫(yī)療[4]、物聯(lián)網(wǎng)[5]等領(lǐng)域廣泛應(yīng)用。根據(jù)區(qū)塊鏈中節(jié)點(diǎn)規(guī)模和覆蓋范圍的不同,區(qū)塊鏈可分為公有鏈、私有鏈和聯(lián)盟鏈三種類型[6]。公有鏈允許非授權(quán)節(jié)點(diǎn)自由加入或退出區(qū)塊鏈系統(tǒng),并驗(yàn)證交易;私有鏈專為企業(yè)內(nèi)部使用,不對(duì)外開放;而聯(lián)盟鏈將公有鏈和私有鏈的特點(diǎn)結(jié)合,只有經(jīng)過(guò)授權(quán)的合作機(jī)構(gòu)內(nèi)部人員才能加入,這種機(jī)制在保持一定開放性和可控性之間達(dá)到平衡,成為市場(chǎng)上應(yīng)用最廣泛的區(qū)塊鏈類型。
共識(shí)算法是區(qū)塊鏈的核心技術(shù),它確保系統(tǒng)的可靠性和穩(wěn)定性,直接影響整個(gè)區(qū)塊鏈系統(tǒng)的性能和可應(yīng)用場(chǎng)景。目前常見的共識(shí)算法有工作量證明(proof of work,PoW)[7]、權(quán)益證明(proof of stake,PoS)[8]、Raft(replication and fault tolerant)[9]、實(shí)用拜占庭容錯(cuò)(practical byzantine fault tolerance,PBFT)[10]等。PoW共識(shí)算法廣泛應(yīng)用于公有鏈,但其效率低下且消耗大量算力資源。為解決PoW的缺陷,PoS共識(shí)算法引入幣齡概念,但其去中心化程度較低,導(dǎo)致記賬權(quán)集中在少數(shù)擁有大量幣齡的節(jié)點(diǎn)手中。Raft共識(shí)算法以其通信復(fù)雜度低而在私有鏈中被廣泛應(yīng)用,然而它不具備拜占庭容錯(cuò)的能力。相比之下,PBFT共識(shí)算法不依賴代幣,共識(shí)過(guò)程無(wú)資源浪費(fèi)和分叉問(wèn)題,且能容忍拜占庭節(jié)點(diǎn),因此在聯(lián)盟鏈中被廣泛采用。盡管如此,PBFT算法仍然有以下三個(gè)方面的不足:a)主節(jié)點(diǎn)按編號(hào)輪流擔(dān)任,易受p2p網(wǎng)絡(luò)中的DDoS(distributed denial of service)攻擊和女巫攻擊[11],存在潛在安全風(fēng)險(xiǎn);b)缺少懲罰機(jī)制,當(dāng)主節(jié)點(diǎn)作惡時(shí),僅通過(guò)視圖切換保障共識(shí)過(guò)程的繼續(xù),惡意節(jié)點(diǎn)仍然存在于系統(tǒng)中,留下安全隱患;c)三階段廣播過(guò)程中要求所有節(jié)點(diǎn)進(jìn)行大量消息交互和確認(rèn),導(dǎo)致通信開銷巨大,嚴(yán)重影響算法性能。
鑒于這些局限性,研究者們致力于改進(jìn)和優(yōu)化PBFT,以提高其適用性、靈活性和效率。例如,文獻(xiàn)[12]將信譽(yù)評(píng)估機(jī)制和可驗(yàn)證的隨機(jī)函數(shù)結(jié)合,用于主節(jié)點(diǎn)的選取,不僅考慮節(jié)點(diǎn)的信譽(yù)度,還通過(guò)隨機(jī)函數(shù)的驗(yàn)證確保選取過(guò)程的隨機(jī)性和公正性,有效提升系統(tǒng)的安全性。Wang等人[13]引入一種特征信譽(yù)模型對(duì)主節(jié)點(diǎn)選擇進(jìn)行優(yōu)化,通過(guò)考慮節(jié)點(diǎn)的特征屬性,對(duì)節(jié)點(diǎn)的信譽(yù)值進(jìn)行更精準(zhǔn)的評(píng)估,從而增加信譽(yù)值高的節(jié)點(diǎn)成為主節(jié)點(diǎn)的概率。李俊吉等人[14]提出通過(guò)信譽(yù)評(píng)分劃分節(jié)點(diǎn)角色,減少節(jié)點(diǎn)間通信并優(yōu)化投票流程,從而實(shí)現(xiàn)高效、安全的快速共識(shí)。陳蘇明等人[15]則通過(guò)引入信譽(yù)獎(jiǎng)懲機(jī)制進(jìn)一步提升安全性,采用分組機(jī)制降低系統(tǒng)的中心化風(fēng)險(xiǎn),并優(yōu)化主節(jié)點(diǎn)選舉和共識(shí)流程,從而提高共識(shí)效率。Sun等人[16]根據(jù)實(shí)時(shí)地理位置將每個(gè)節(jié)點(diǎn)聚類到多個(gè)從屬鏈中,將系統(tǒng)共識(shí)任務(wù)分解為局部共識(shí)組,有效降低整體通信開銷和共識(shí)時(shí)延。Gan等人[17]利用貪婪聚類算法對(duì)網(wǎng)絡(luò)中的物聯(lián)網(wǎng)節(jié)點(diǎn)進(jìn)行分組,根據(jù)節(jié)點(diǎn)之間的相似性和連接關(guān)系將節(jié)點(diǎn)進(jìn)行有效地聚合,減少通信開銷和共識(shí)時(shí)延。陳子豪等人[18]利用聚類算法對(duì)參與區(qū)塊鏈共識(shí)的大規(guī)模網(wǎng)絡(luò)節(jié)點(diǎn)根據(jù)特征進(jìn)行聚類與層次劃分,從而提高區(qū)塊鏈平臺(tái)處理請(qǐng)求的效率。Tong等人[19]設(shè)計(jì)節(jié)點(diǎn)信用評(píng)分的投票機(jī)制,通過(guò)節(jié)點(diǎn)之間的投票機(jī)制來(lái)確定主節(jié)點(diǎn)的選取,增加信用評(píng)分較高的節(jié)點(diǎn)成為主節(jié)點(diǎn)的概率。上述研究者提出的PBFT優(yōu)化方案提升了系統(tǒng)安全性,并在一定程度上減少了共識(shí)通信開銷,提高了系統(tǒng)的運(yùn)行效率。
本文對(duì)其進(jìn)行對(duì)比總結(jié),結(jié)果如表1所示,現(xiàn)有優(yōu)化方法在同時(shí)解決如下三個(gè)方面的問(wèn)題時(shí)仍面臨挑戰(zhàn)。a)信譽(yù)評(píng)價(jià)指標(biāo)方面未考慮信用評(píng)估模型的動(dòng)態(tài)性,可能導(dǎo)致高信用值節(jié)點(diǎn)成為主導(dǎo)節(jié)點(diǎn),從而使低信用值節(jié)點(diǎn)喪失共識(shí)積極性,影響系統(tǒng)的公平性和去中心化程度;b)聚類分組算法容易受到異常節(jié)點(diǎn)的影響,如果存在惡意節(jié)點(diǎn)或者異常行為的節(jié)點(diǎn),可能導(dǎo)致聚類中心點(diǎn)選取出現(xiàn)偏差,進(jìn)而影響整個(gè)共識(shí)過(guò)程的準(zhǔn)確性和可靠性;c)信用投票機(jī)制雖提高了高信用評(píng)分節(jié)點(diǎn)成為主節(jié)點(diǎn)的概率,但可能加劇中心化。此外,如果主節(jié)點(diǎn)在作惡后其信譽(yù)值依然在正常閾值內(nèi),惡意節(jié)點(diǎn)仍可繼續(xù)參與共識(shí),帶來(lái)安全隱患。
針對(duì)上述不足,本文提出一種基于信譽(yù)和標(biāo)準(zhǔn)差聚類的PBFT共識(shí)優(yōu)化算法(trust and standard deviation clustering PBFT,TSD-PBFT),主要的創(chuàng)新工作如下:
a)建立動(dòng)態(tài)與靜態(tài)結(jié)合的信譽(yù)評(píng)估模型。在共識(shí)過(guò)程中,動(dòng)態(tài)評(píng)價(jià)節(jié)點(diǎn)收到的投票數(shù)和參與度,用于實(shí)時(shí)檢測(cè)和清除惡意節(jié)點(diǎn),提升共識(shí)效率和可靠性。靜態(tài)評(píng)價(jià)則考慮節(jié)點(diǎn)的投入成本和歷史行為,確保共識(shí)機(jī)制的公平性和穩(wěn)定性。同時(shí)通過(guò)周期性地重置高信譽(yù)值節(jié)點(diǎn)的評(píng)分,防止單一節(jié)點(diǎn)或小團(tuán)體長(zhǎng)期主導(dǎo)共識(shí)過(guò)程,從而維護(hù)系統(tǒng)的去中心化特性。
b)提出基于信譽(yù)和標(biāo)準(zhǔn)差的聚類算法。選取標(biāo)準(zhǔn)差小于總體標(biāo)準(zhǔn)差的節(jié)點(diǎn)作為初始中心點(diǎn)候選集,以優(yōu)化計(jì)算開銷并聚焦在具有較為穩(wěn)定數(shù)據(jù)分布的節(jié)點(diǎn)上。在候選集中逐步選擇密度高且信譽(yù)好的節(jié)點(diǎn)作為最終的聚類中心點(diǎn),并確保最終聚類中心均勻分布在不同聚類簇中,以避免局部最優(yōu)解。同時(shí),采用改進(jìn)的K-medoids聚類算法將剩余節(jié)點(diǎn)分配到最近的聚類中心點(diǎn),來(lái)減少共識(shí)過(guò)程中的通信開銷,提高聚類的精確性和處理效率。
c)設(shè)計(jì)基于投票機(jī)制的主節(jié)點(diǎn)選取算法。由聚類中心節(jié)點(diǎn)投票產(chǎn)生主節(jié)點(diǎn),選取依據(jù)是被投票節(jié)點(diǎn)的信譽(yù)值和標(biāo)準(zhǔn)差,而非僅由信譽(yù)值最高的節(jié)點(diǎn)擔(dān)任。高信譽(yù)值和低標(biāo)準(zhǔn)差的節(jié)點(diǎn)在投票中權(quán)重更大,確??尚刨嚨墓?jié)點(diǎn)在主節(jié)點(diǎn)選舉中具有更大的影響力。
1 問(wèn)題提出
1.1 主節(jié)點(diǎn)選取問(wèn)題
主節(jié)點(diǎn)在PBFT共識(shí)系統(tǒng)中充當(dāng)客戶端與從節(jié)點(diǎn)之間的橋梁,負(fù)責(zé)轉(zhuǎn)發(fā)所有客戶端請(qǐng)求,主節(jié)點(diǎn)的安全性關(guān)乎到整個(gè)共識(shí)系統(tǒng)能否正常運(yùn)行。
在PBFT中,主節(jié)點(diǎn)的選取根據(jù)預(yù)設(shè)規(guī)則進(jìn)行。假設(shè)節(jié)點(diǎn)總數(shù)為N,當(dāng)前視圖編號(hào)為V,則主節(jié)點(diǎn)編號(hào)為p=V mod N。PBFT主節(jié)點(diǎn)選取如圖1所示,其中灰色節(jié)點(diǎn)為當(dāng)前視圖的主節(jié)點(diǎn),白色節(jié)點(diǎn)為從節(jié)點(diǎn),黑色節(jié)點(diǎn)為惡意節(jié)點(diǎn)(參見電子版)。在初始視圖V=0時(shí),主節(jié)點(diǎn)編號(hào)為p=0 mod 4=0,節(jié)點(diǎn)0成為主節(jié)點(diǎn),當(dāng)視圖編號(hào)變化為V=1時(shí),主節(jié)點(diǎn)編號(hào)為p=1 mod 4=1,節(jié)點(diǎn)1成為主節(jié)點(diǎn),依此類推,隨著視圖編號(hào)V的增加,各節(jié)點(diǎn)將輪流擔(dān)任主節(jié)點(diǎn)。然而,這種主節(jié)點(diǎn)選取機(jī)制中存在兩個(gè)關(guān)鍵問(wèn)題:
a)缺少門檻條件的節(jié)點(diǎn)輪換機(jī)制。每個(gè)節(jié)點(diǎn)輪流擔(dān)任主節(jié)點(diǎn),而沒有設(shè)置門檻限制。例如圖1中,當(dāng)視圖從view=0變化為view=1時(shí),新的主節(jié)點(diǎn)編號(hào)由當(dāng)前失效主節(jié)點(diǎn)編號(hào)N0變?yōu)镹1。
b)缺乏對(duì)惡意節(jié)點(diǎn)的有效處理機(jī)制。圖1中在view=3時(shí)惡意節(jié)點(diǎn)N3也能夠成為主節(jié)點(diǎn),并且將持續(xù)存在系統(tǒng)中,惡意節(jié)點(diǎn)可以利用系統(tǒng)的設(shè)計(jì)漏洞不斷地參與視圖轉(zhuǎn)換,并有機(jī)會(huì)再次成為主節(jié)點(diǎn),形成惡性循環(huán)。特別是當(dāng)惡意節(jié)點(diǎn)的數(shù)量超出算法容忍范圍時(shí),系統(tǒng)將無(wú)法有效保證其安全性和正確性。
1.2 通信復(fù)雜度問(wèn)題
PBFT的通信復(fù)雜度主要體現(xiàn)在如下兩個(gè)方面:
a)由于PBFT未能對(duì)惡意節(jié)點(diǎn)進(jìn)行處理,一旦惡意節(jié)點(diǎn)成為主節(jié)點(diǎn),系統(tǒng)將需要進(jìn)行視圖轉(zhuǎn)換。然而,即便進(jìn)行視圖轉(zhuǎn)換,惡意節(jié)點(diǎn)仍有可能再次成為主節(jié)點(diǎn),導(dǎo)致系統(tǒng)需要不斷地進(jìn)行視圖轉(zhuǎn)換,這進(jìn)一步增加系統(tǒng)的通信開銷,對(duì)系統(tǒng)性能造成了巨大影響。
b)PBFT在執(zhí)行共識(shí)過(guò)程中經(jīng)歷預(yù)準(zhǔn)備、準(zhǔn)備和提交三個(gè)階段。其中,預(yù)準(zhǔn)備階段和提交階段都需要所有節(jié)點(diǎn)向其他節(jié)點(diǎn)發(fā)送請(qǐng)求消息,以確定進(jìn)入下一階段所需的最小數(shù)量的準(zhǔn)備消息,這個(gè)過(guò)程需要所有節(jié)點(diǎn)之間進(jìn)行通信,并且必須等待所有節(jié)點(diǎn)都完成后才能進(jìn)入下一階段,這使得通信復(fù)雜度達(dá)到了O(n2)級(jí)別。
1.3 K-medoids聚類算法及其存在的問(wèn)題
1.3.1 K-medoids聚類算法介紹
聚類算法[20]是一種無(wú)監(jiān)督學(xué)習(xí)的數(shù)據(jù)分析方法,用于揭示數(shù)據(jù)內(nèi)在結(jié)構(gòu)和模式,無(wú)需預(yù)定義類別標(biāo)簽。K-medoids算法是聚類分析領(lǐng)域中的一種重要方法,旨在將數(shù)據(jù)樣本劃分成具有相似特征的簇。假設(shè)節(jié)點(diǎn)樣本{x1,x2,…,xn},使用K-medoids算法進(jìn)行聚類,xi屬于聚類簇Cj={C1,C2,…,Ck}的簇內(nèi)節(jié)點(diǎn),Oi={O1,O2,…,Ok}是聚類簇中心的節(jié)點(diǎn)集,且klt;n。整個(gè)聚類過(guò)程只需兩個(gè)計(jì)算公式就能完成,式(1)是兩個(gè)節(jié)點(diǎn)的歐氏距離,式(2)是節(jié)點(diǎn)的總體誤差平方。計(jì)算公式如下:
d(i,j)=(xi-xj)2
(1)
E=∑ki=1∑xi∈cjd(Oi,xi)2
(2)
其中:xi和xj分別表示節(jié)點(diǎn)i和j的坐標(biāo);Oi是簇Cj的中心點(diǎn);d(Oi,x)是節(jié)點(diǎn)x到簇中心點(diǎn)Oi的距離。
K-medoids聚類算法步驟如下:a)隨機(jī)選擇k個(gè)樣本作為初始聚類中心;b)將剩余的樣本分配給與其距離最近的聚類中心;c)計(jì)算每個(gè)聚類中所有樣本到其他樣本的距離和;d)選擇每個(gè)聚類中的一個(gè)代表樣本作為新的聚類中心,使其到簇內(nèi)其他點(diǎn)的總距離最小;e)重復(fù)步驟b)~d),直到聚類中心穩(wěn)定或達(dá)到最大迭代次數(shù)。
1.3.2 K-medoids聚類算法存在的問(wèn)題
共識(shí)算法通常使用聚類算法將節(jié)點(diǎn)分組,以便更高效地在分布式系統(tǒng)中實(shí)現(xiàn)一致性。在PBFT中引入聚類算法對(duì)節(jié)點(diǎn)進(jìn)行分組以優(yōu)化執(zhí)行效率,例如將地理位置相近或網(wǎng)絡(luò)延遲較低的節(jié)點(diǎn)聚在一起,可以減少通信延遲,提高共識(shí)過(guò)程的效率。而在聚類算法中初始中心點(diǎn)的選擇是提高聚類效果和效率的關(guān)鍵因素,如果初始中心點(diǎn)選擇偏離最終聚類中心區(qū)域的樣本或孤立點(diǎn),聚類過(guò)程容易陷入局部極值,導(dǎo)致聚類結(jié)果準(zhǔn)確性較低且需要更多次迭代來(lái)更新中心點(diǎn)。與K-means等其他算法相比,K-medoids聚類算法更為魯棒,尤其在處理系統(tǒng)中的離群點(diǎn)時(shí)表現(xiàn)更出色。然而,K-medoids在選擇初始中心點(diǎn)時(shí)容易受到異常點(diǎn)的影響,可能導(dǎo)致局部最優(yōu)解,聚類算法對(duì)比如表2所示。
為改進(jìn)原K-medoids聚類算法,本文利用標(biāo)準(zhǔn)差定義初始中心點(diǎn)候選集,有效避免選擇密度較低或孤立點(diǎn)的樣本,從而提高對(duì)異常值的穩(wěn)健性。同時(shí),采用逐步增加中心點(diǎn)的策略,確保聚類中心點(diǎn)分布在不同聚類簇中,減少局部最優(yōu)解的影響。改進(jìn)的K-medoids聚類算法將在2.3節(jié)中詳細(xì)介紹。本文通過(guò)仿真對(duì)比了改進(jìn)前后聚類算法的效果,如圖2所示。
傳統(tǒng)K-medoids算法選擇了紅色節(jié)點(diǎn)1、2、3和4作為聚類中心,這些中心點(diǎn)較為分散,尤其是節(jié)點(diǎn)3和4位于低密度區(qū)域,且與其他數(shù)據(jù)點(diǎn)距離較遠(yuǎn),當(dāng)中心點(diǎn)落在數(shù)據(jù)分布的邊緣或離群點(diǎn)時(shí),會(huì)降低算法的穩(wěn)定性和準(zhǔn)確性。相比之下,改進(jìn)的基于信譽(yù)值和標(biāo)準(zhǔn)差的聚類算法選擇了紫色節(jié)點(diǎn)1、2、3和4作為聚類中心,這些節(jié)點(diǎn)集中于數(shù)據(jù)的高密度區(qū)域,更準(zhǔn)確地反映數(shù)據(jù)的實(shí)際分布,避免將孤立點(diǎn)或邊緣點(diǎn)作為中心,提高了聚類的精度和效果(參見電子版)。
2 TSD-PBFT算法
2.1 算法模型
TSD-PBFT將系統(tǒng)中的節(jié)點(diǎn)分為兩層。第一層共識(shí)組由聚類中心節(jié)點(diǎn)組成,這些節(jié)點(diǎn)是根據(jù)信譽(yù)評(píng)估、節(jié)點(diǎn)密集程度等標(biāo)準(zhǔn)選出的代表性節(jié)點(diǎn)。在第一層共識(shí)組中,聚類中心節(jié)點(diǎn)中通過(guò)投票機(jī)制選出主節(jié)點(diǎn),以降低主節(jié)點(diǎn)作惡的風(fēng)險(xiǎn)。剩余節(jié)點(diǎn)則采用聚類分組策略,形成第二層共識(shí)組,并通過(guò)各自的聚類中心節(jié)點(diǎn)參與共識(shí)。以系統(tǒng)中20個(gè)節(jié)點(diǎn)為例,設(shè)定分組數(shù)K=4,算法的整體模型如圖3所示。
主要分為以下四個(gè)步驟:
a)計(jì)算節(jié)點(diǎn)信譽(yù)值和標(biāo)準(zhǔn)差。在每輪共識(shí)開始之前,根據(jù)系統(tǒng)設(shè)計(jì)的信譽(yù)評(píng)估和標(biāo)準(zhǔn)差評(píng)估方法,對(duì)20個(gè)節(jié)點(diǎn)進(jìn)行評(píng)估,選擇信譽(yù)值高且密集程度高的節(jié)點(diǎn)作為聚類中心節(jié)點(diǎn)。通過(guò)計(jì)算,確定節(jié)點(diǎn)1~4擔(dān)任聚類中心節(jié)點(diǎn)及第二層領(lǐng)導(dǎo)者。
b)投票選取主節(jié)點(diǎn)。在聚類中心節(jié)點(diǎn)投票選取主節(jié)點(diǎn)的過(guò)程中,將節(jié)點(diǎn)信譽(yù)值和標(biāo)準(zhǔn)差的比值作為投票權(quán)重。高信譽(yù)值和低標(biāo)準(zhǔn)差的節(jié)點(diǎn)被賦予更大的權(quán)重,以確保它們?cè)谥鞴?jié)點(diǎn)選舉中發(fā)揮更重要的作用和影響力。節(jié)點(diǎn)根據(jù)其權(quán)重進(jìn)行投票,例如,圖3中節(jié)點(diǎn)1憑借其高信譽(yù)值和低標(biāo)準(zhǔn)差獲得了三票支持,而節(jié)點(diǎn)2和4則各獲得了兩票,節(jié)點(diǎn)3僅獲得一票。根據(jù)票數(shù)統(tǒng)計(jì)規(guī)則,節(jié)點(diǎn)1因累積到最高權(quán)重值當(dāng)選為主節(jié)點(diǎn)。這種方式確保了主節(jié)點(diǎn)選取的公平性和安全性。
c)聚類分組。按照節(jié)點(diǎn)之間的距離對(duì)節(jié)點(diǎn)進(jìn)行分組并形成四個(gè)聚類簇。圖3中聚類簇1包含節(jié)點(diǎn)1、5、10、14、19,聚類簇2包含節(jié)點(diǎn)2、6、7、11、15,聚類簇3包含節(jié)點(diǎn)3、9、13、17、18,聚類簇4包含節(jié)點(diǎn)4、8、12、16、20。
d)分層共識(shí)。在第一層共識(shí)中,由節(jié)點(diǎn)1領(lǐng)導(dǎo)運(yùn)行簡(jiǎn)化的PBFT共識(shí)算法,將原PBFT的三階段共識(shí)簡(jiǎn)化為預(yù)準(zhǔn)備和準(zhǔn)備階段兩階段共識(shí)
。在第二層共識(shí)中,由節(jié)點(diǎn)1~4共同領(lǐng)導(dǎo)運(yùn)行HotStuff共識(shí)算法。
2.2 信譽(yù)評(píng)估模型
現(xiàn)有的PBFT改進(jìn)算法在處理惡意節(jié)點(diǎn)、網(wǎng)絡(luò)攻擊和節(jié)點(diǎn)參與度不平衡時(shí)仍有不足,例如惡意節(jié)點(diǎn)可能潛伏以尋找攻擊機(jī)會(huì),威脅網(wǎng)絡(luò)安全;長(zhǎng)期不參與共識(shí)的節(jié)點(diǎn)可能被誤選為主節(jié)點(diǎn);現(xiàn)有信譽(yù)評(píng)估模型缺乏動(dòng)態(tài)響應(yīng)能力,不能及時(shí)反映節(jié)點(diǎn)行為變化。
為改進(jìn)以上不足,本文提出了一種由靜態(tài)評(píng)價(jià)和動(dòng)態(tài)評(píng)價(jià)組成的節(jié)點(diǎn)信譽(yù)模型,其中定義1、4、5借鑒文獻(xiàn)[21]。靜態(tài)評(píng)價(jià)包括節(jié)點(diǎn)歷史共識(shí)行為和節(jié)點(diǎn)的投入成本,動(dòng)態(tài)評(píng)價(jià)包括節(jié)點(diǎn)的參與程度以及節(jié)點(diǎn)投票數(shù)。結(jié)合靜態(tài)評(píng)價(jià)和動(dòng)態(tài)評(píng)價(jià)可以使信譽(yù)評(píng)估更加及時(shí)和靈活,適應(yīng)不同時(shí)期節(jié)點(diǎn)的實(shí)際情況。例如,節(jié)點(diǎn)i在過(guò)去的共識(shí)過(guò)程中表現(xiàn)良好,但近期連續(xù)發(fā)送錯(cuò)誤消息,表現(xiàn)出惡意行為。在靜態(tài)評(píng)價(jià)中,節(jié)點(diǎn)i的歷史行為將影響其歷史共識(shí)行為Bi的值,若該值低于設(shè)定的閾值,節(jié)點(diǎn)即被判定為惡意并剔除。同時(shí),動(dòng)態(tài)評(píng)價(jià)通過(guò)實(shí)時(shí)監(jiān)控節(jié)點(diǎn)的參與程度和投票情況,及時(shí)發(fā)現(xiàn)異常并調(diào)整信譽(yù)值,從而增強(qiáng)系統(tǒng)對(duì)惡意節(jié)點(diǎn)的響應(yīng)能力。
定義1 投入成本。投入成本用于反映節(jié)點(diǎn)加入系統(tǒng)的誠(chéng)意,即節(jié)點(diǎn)加入?yún)^(qū)塊鏈網(wǎng)絡(luò)需支付的押金。節(jié)點(diǎn)i的投入成本Ci為
Ci=MiMn
(3)
其中:Mi表示節(jié)點(diǎn)i加入?yún)^(qū)塊鏈網(wǎng)絡(luò)所支付的押金;Mn代表所有節(jié)點(diǎn)的總押金,反映整個(gè)網(wǎng)絡(luò)的穩(wěn)定性和資金儲(chǔ)備。
定義2 歷史共識(shí)行為。歷史共識(shí)行為代表節(jié)點(diǎn)在共識(shí)過(guò)程中的誠(chéng)信度。具有良好歷史共識(shí)行為的節(jié)點(diǎn)通常被認(rèn)為是可信賴的,因?yàn)樗鼈冊(cè)谶^(guò)去的共識(shí)活動(dòng)中表現(xiàn)出積極參與共識(shí)的態(tài)度。節(jié)點(diǎn)i的歷史共識(shí)行為為
Bi=φ×Ris-ω×RifRi
(4)
其中:Ris為節(jié)點(diǎn)i在共識(shí)過(guò)程中的良好行為次數(shù),而不良行為次數(shù)則表示為Rif,總行為次數(shù)為Ri=Ris+Rif;φ和ω分別代表良好行為和不良行為的權(quán)重(φ=0.05,ω=0.6。實(shí)驗(yàn)參數(shù)在5.1節(jié)有詳細(xì)介紹)。假設(shè)節(jié)點(diǎn)i在一個(gè)共識(shí)周期內(nèi)有14次良好行為(5次按時(shí)參與共識(shí)、4次成功驗(yàn)證其他節(jié)點(diǎn)的消息、5次遵循規(guī)則參與投票)和4次不良行為(1次未按時(shí)響應(yīng)請(qǐng)求、2次參與度低于平均水平、1次發(fā)送錯(cuò)誤消息),則Ri=Ris+Rif=14+4=18,根據(jù)式(4)計(jì)算得Bi=(0.05×14-0.1×4)/18=0.0167。當(dāng)Bilt;0時(shí),該節(jié)點(diǎn)將被視為惡意節(jié)點(diǎn)并被系統(tǒng)剔除。
定義3 節(jié)點(diǎn)參與程度。節(jié)點(diǎn)參與程度通過(guò)實(shí)時(shí)監(jiān)測(cè)和評(píng)估節(jié)點(diǎn)行為,及時(shí)發(fā)現(xiàn)活躍度高、積極參與共識(shí)的節(jié)點(diǎn)。節(jié)點(diǎn)i的參與程度為
Pi=RiR
(5)
其中:R代表所有節(jié)點(diǎn)的總參與次數(shù)。若某節(jié)點(diǎn)在一個(gè)共識(shí)周期內(nèi)連續(xù)兩次參與程度低于平均水平,全網(wǎng)節(jié)點(diǎn)將進(jìn)行投票表決是否剔除該節(jié)點(diǎn),超過(guò)2/3的節(jié)點(diǎn)同意則執(zhí)行剔除操作。通過(guò)保留參與度和活躍度更高的節(jié)點(diǎn),可以提高整體共識(shí)的效率和可靠性。
定義4 節(jié)點(diǎn)收到的投票數(shù)。節(jié)點(diǎn)收到的投票數(shù)越多,該節(jié)點(diǎn)越可信。節(jié)點(diǎn)i收到的投票數(shù)總和為
Votei=∑Nj=0Xj
(6)
其中:Xj表示節(jié)點(diǎn)j對(duì)i的投票行為,對(duì)于支持票數(shù)低于全網(wǎng)平均水平的節(jié)點(diǎn),將其識(shí)別為不可信節(jié)點(diǎn)并從系統(tǒng)中剔除。
定義5 節(jié)點(diǎn)投票行為。如果節(jié)點(diǎn)j支持i參與共識(shí),那么i的票數(shù)會(huì)增加1;若節(jié)點(diǎn)j選擇不投票,則表明持中立態(tài)度。節(jié)點(diǎn)j的投票行為公式為
Xj=1 節(jié)點(diǎn)j向i投票0 節(jié)點(diǎn)j不向i投票
(7)
定義6 靜態(tài)評(píng)價(jià)。靜態(tài)評(píng)價(jià)包括投入成本和歷史共識(shí)行為。節(jié)點(diǎn)i的靜態(tài)評(píng)價(jià)為
TSi=Ci+Bi
(8)
定義7 動(dòng)態(tài)評(píng)價(jià)。節(jié)點(diǎn)參與程度和節(jié)點(diǎn)收到的投票數(shù)鼓勵(lì)節(jié)點(diǎn)持續(xù)積極參與共識(shí)過(guò)程,通過(guò)動(dòng)態(tài)調(diào)整信譽(yù)值,激勵(lì)良好行為并懲罰惡意行為。節(jié)點(diǎn)i的動(dòng)態(tài)評(píng)價(jià)為
TDti=Pi+Votei
(9)
定義8 綜合信譽(yù)值。綜合信譽(yù)值是節(jié)點(diǎn)i的綜合表現(xiàn)。計(jì)算公式為
Trusti=a×TSi+β×TDti
(10)
其中:α是靜態(tài)評(píng)價(jià)權(quán)重;β是動(dòng)態(tài)評(píng)價(jià)權(quán)重。這些定義共同構(gòu)成了一個(gè)綜合的信譽(yù)評(píng)估體系,以確保節(jié)點(diǎn)以可靠、安全的方式參與共識(shí),并在系統(tǒng)性能和效率之間取得平衡。
定義9 信譽(yù)值更新。為避免高信譽(yù)值節(jié)點(diǎn)長(zhǎng)期主導(dǎo)共識(shí),本文設(shè)定以y次共識(shí)為周期進(jìn)行信譽(yù)值更新,在執(zhí)行信譽(yù)值更新時(shí),系統(tǒng)將檢查并清零所有信譽(yù)值達(dá)到Trustmax=5的節(jié)點(diǎn),并根據(jù)新的綜合信譽(yù)值公式重新計(jì)算這些節(jié)點(diǎn)的信譽(yù)值。新的計(jì)算公式為
Trustnewi=(a×TSi+β×TDti)1.5×Sumterm
(11)
其中:Sumterm表示節(jié)點(diǎn)信譽(yù)值被清零的次數(shù)。被清零的節(jié)點(diǎn)重新參與共識(shí)時(shí),其信譽(yù)值乘以1.5,以激勵(lì)它們通過(guò)積極的行為重新建立信譽(yù),并在共識(shí)過(guò)程中獲得更高的信譽(yù)獎(jiǎng)勵(lì)。這一更新機(jī)制旨在防止高信譽(yù)值節(jié)點(diǎn)長(zhǎng)期主導(dǎo)共識(shí),避免主導(dǎo)現(xiàn)象,并促進(jìn)低信譽(yù)值節(jié)點(diǎn)通過(guò)積極行為重新建立信譽(yù),提升共識(shí)過(guò)程的公正性和可靠性。信譽(yù)評(píng)估主要算法描述如下:
算法1 信譽(yù)評(píng)估算法
輸入:Mi、Mn、Ri、Ris、Rif、R。
輸出:Trusti。
for round in range(5)://每五輪共識(shí)為一個(gè)周期
Sumterm=0//初始化Sumterm
Trust_count=0//初始化Trusti超過(guò)Trustmax的次數(shù)計(jì)數(shù)
Ci←Mi/Mn//計(jì)算投入成本
Bi=(φ×Ris-ω×Rif)/Ri//計(jì)算歷史共識(shí)行為
if Bi≤0:
remove node//剔除惡意節(jié)點(diǎn)
end if
Pi←Ri/R//計(jì)算參與程度
if low participation countgt;=2://若兩次參與度低于平均水平
remove node
end if
Votei←node.votes_received+=1//投票數(shù)
if Voteilt;average votes:
remove node
end if
Trusti=a×(Bi+Ci)+β×(Pi+Votei)//綜合信譽(yù)值
if Trustigt;=Trustmax:
Trust_count+=1//更新超限次數(shù)
Trusti=0//重置Trusti為0
Sumterm=Trust_count
Trustnewi=1.5×Trusti×Sumterm
end if
end for
return Trusti
2.3 基于信譽(yù)和標(biāo)準(zhǔn)差的聚類算法
2.3.1 聚類中心節(jié)點(diǎn)選取
依據(jù)信譽(yù)評(píng)估模型對(duì)節(jié)點(diǎn)信譽(yù)值進(jìn)行評(píng)估后,再引入標(biāo)準(zhǔn)差來(lái)衡量節(jié)點(diǎn)的離散程度,以確保選取出的聚類中心節(jié)點(diǎn)具有較高的信譽(yù)值和較小的標(biāo)準(zhǔn)差。選取聚類中心節(jié)點(diǎn)主要分為兩個(gè)部分:
1)確定初始中心候選節(jié)點(diǎn)集Sm
通過(guò)計(jì)算節(jié)點(diǎn)總體的標(biāo)準(zhǔn)差v以及每個(gè)節(jié)點(diǎn)的個(gè)體標(biāo)準(zhǔn)差vi的大小,確定初始中心候選節(jié)點(diǎn)集Sm,將個(gè)體標(biāo)準(zhǔn)差vi小于總體標(biāo)準(zhǔn)差v的節(jié)點(diǎn)確定為初始中心候選節(jié)點(diǎn)集,即Sm={i|vilt;v}。v和vi計(jì)算公式為
v=1n-1∑ni=1d(xi.x)2
(12)
vi=1n-1∑nj=1d(xi,xj)2
(13)
2)從Sm中逐步選取K個(gè)聚類中心節(jié)點(diǎn)Oj
a)在Sm中選擇兩個(gè)起始中心點(diǎn)O1、O2。第一個(gè)初始確定中心O1是Sm中距離所有節(jié)點(diǎn)總距離最小的點(diǎn),第二個(gè)初始確定中心O2則是Sm中距離O1最遠(yuǎn)的點(diǎn)。第一個(gè)初始中心點(diǎn)O1和第二個(gè)初始中心點(diǎn)O2的公式為
O1=argmino∈Sm∑ni=1d(O,xi)
(14)
O2=argmaxo∈Sm\{O1}d(O,O1)
(15)
其中:Sm表示初始中心點(diǎn)集合;Sm\{O1}表示從Sm中排除O1后的集合;d(O,O1)表示中心點(diǎn)O到O1的距離。
b)分配剩余節(jié)點(diǎn)到聚類簇Cj。剩余節(jié)點(diǎn)將根據(jù)就近原則分配給最近的初始確定中心形成聚類簇Cj。聚類簇Cj的公式為
Cj={xi|d(xi,Oj)=mink∈(1,2,…,k)d(xi,Ok)}
(16)
其中:Cj表示聚類簇;d(xi,Oj)表示節(jié)點(diǎn)xi與中心點(diǎn)Oj之間的距離。
c)更新聚類中心Oj。計(jì)算每個(gè)節(jié)點(diǎn)到其所屬初始確定簇中心的距離,若初始確定中心不是距離簇內(nèi)節(jié)點(diǎn)總距離最小的點(diǎn),則繼續(xù)尋找新的中心點(diǎn)Oj,確保新中心點(diǎn)Oj到簇內(nèi)所有節(jié)點(diǎn)的距離和最小。若新選定的中心點(diǎn)與上次相同,則停止更新。更新聚類中心Oj的公式為
Oj=arg minx∈Cj∑xi∈Cjd(xi,x)
(17)
其中:Oj表示更新后的簇Cj的中心點(diǎn)。
d)選取剩余聚類中心Og+1。當(dāng)已經(jīng)存在g個(gè)中心點(diǎn)(2≤glt;k)時(shí),選擇第Og+1個(gè)初始中心點(diǎn)的原則是選擇距離每個(gè)聚類簇中心點(diǎn)最遠(yuǎn)的一個(gè)點(diǎn)。剩余聚類中心Og+1的公式為
Og+1=arg maxxi∈Sm,Oj∈{O1,O2,…,Og}d(xi,Oj)
(18)
其中:Oj表示更新后的簇Cj的中心點(diǎn);Og+1表示第g+1個(gè)初始中心點(diǎn)。
以系統(tǒng)中20個(gè)節(jié)點(diǎn)為例,設(shè)定分組數(shù)K=4,聚類中心節(jié)點(diǎn)選取如圖4所示。
節(jié)點(diǎn)O1在20個(gè)節(jié)點(diǎn)中與其他節(jié)點(diǎn)的總距離最小,節(jié)點(diǎn)O8則距離O1最遠(yuǎn)。根據(jù)就近原則,將其余節(jié)點(diǎn)分配給最近的中心點(diǎn),形成兩個(gè)聚類簇。例如,聚類簇1由O1擔(dān)任初始中心節(jié)點(diǎn),簇內(nèi)節(jié)點(diǎn)包括(3、4、5、6、10、11、14、18、19),聚類簇8由O8擔(dān)任第二個(gè)初始中心節(jié)點(diǎn),簇內(nèi)節(jié)點(diǎn)包括(2、7、9、12、13、15、16、17、20)。并驗(yàn)證初始中心點(diǎn)是否為最終中心點(diǎn)。如果初始中心點(diǎn)不是距離簇內(nèi)所有節(jié)點(diǎn)總距離最小的點(diǎn),則重新選擇,直到找到總距離最小的中心點(diǎn)。例如,節(jié)點(diǎn)O8不是聚類簇8中到所有簇內(nèi)節(jié)點(diǎn)總距離最小的點(diǎn),則繼續(xù)尋找,直到確定最終中心點(diǎn)。一旦確定節(jié)點(diǎn)O1和O2為最終中心點(diǎn),接著選取第三個(gè)初始中心節(jié)點(diǎn)O3,即距離O1和O2最遠(yuǎn)的節(jié)點(diǎn),并形成三個(gè)聚類簇。依次類推,選出O4,計(jì)算每個(gè)節(jié)點(diǎn)到其簇中心的距離,確保新中心點(diǎn)到簇內(nèi)所有節(jié)點(diǎn)的總距離最小。如果新中心點(diǎn)與上次相同,則停止更新;否則,繼續(xù)迭代。聚類中心節(jié)點(diǎn)選取算法描述如下:
算法2 聚類中心節(jié)點(diǎn)選取算法
輸入:Nnodes、k。
輸出:Oj、Cj。
for each node in Nnodes:
node position←(xi,yj) //獲取節(jié)點(diǎn)的位置坐標(biāo)
v←式(11) //計(jì)算總體標(biāo)準(zhǔn)差
vi←式(12) //計(jì)算節(jié)點(diǎn)標(biāo)準(zhǔn)差
if vilt;v:
Sm←(vilt;v)//初始中心點(diǎn)
end if
O1←Mindij[nodes]//選擇第一個(gè)中心點(diǎn)
O2←Maxdij(node,O1)//選擇距離O1最大的節(jié)點(diǎn)最為O2
Cj←[Mindij(node,center)]//分配節(jié)點(diǎn)到最近中心點(diǎn)所在的簇
Oj←Mindij(Cnodei,Cnode)//表示更新后的簇Euclid Math OneCAp的中心點(diǎn)
while Ojlt;k://在中心點(diǎn)數(shù)量小于k時(shí)
Og+1←Maxdij(node,center)//第g+1個(gè)中心點(diǎn)
if Og+1==Oj: //如果新的中心點(diǎn)與舊的一致,則停止迭代
end if
end while
end for
return [Oj,Cj]
2.3.2 聚類分組
根據(jù)前文介紹,通過(guò)信譽(yù)值和標(biāo)準(zhǔn)差計(jì)算公式,選出信譽(yù)度較高且標(biāo)準(zhǔn)差小的節(jié)點(diǎn)作為聚類中心節(jié)點(diǎn)。這些聚類中心節(jié)點(diǎn)投票選舉出主節(jié)點(diǎn),確保選出的主節(jié)點(diǎn)在信譽(yù)和性能方面具有優(yōu)越性(將在2.4節(jié)中詳細(xì)介紹)。確定聚類中心節(jié)點(diǎn)后,剩余節(jié)點(diǎn)根據(jù)與各中心節(jié)點(diǎn)的距離進(jìn)行分配,形成K個(gè)簇。每個(gè)簇的節(jié)點(diǎn)數(shù)量嚴(yán)格控制在N/K以內(nèi),以確保負(fù)載均衡。這種分組方式不僅減少了通信延遲,還避免單個(gè)簇內(nèi)節(jié)點(diǎn)過(guò)多導(dǎo)致的瓶頸問(wèn)題,提高系統(tǒng)的整體效率和穩(wěn)定性。
節(jié)點(diǎn)聚類分組如圖5所示,在第一層,節(jié)點(diǎn)1~4作為聚類中心節(jié)點(diǎn),由節(jié)點(diǎn)1擔(dān)任主節(jié)點(diǎn)并運(yùn)行簡(jiǎn)化的PBFT共識(shí)算法,將原來(lái)的三階段共識(shí)簡(jiǎn)化為僅包含預(yù)準(zhǔn)備和準(zhǔn)備兩個(gè)階段。由于第一層的聚類中心節(jié)點(diǎn)都是高信譽(yù)值且密集程度高,所以共識(shí)過(guò)程更加可靠和安全。在第二層,節(jié)點(diǎn)1領(lǐng)導(dǎo)的聚類簇1(包括節(jié)點(diǎn)5、10、18、19)進(jìn)一步執(zhí)行HotStuff共識(shí)算法,大幅減少系統(tǒng)通信開銷,從而提高整體效率和性能。
2.4 基于投票機(jī)制的主節(jié)點(diǎn)選取算法
為確保主節(jié)點(diǎn)選取的公正與隨機(jī)性,引入投票機(jī)制,此機(jī)制由第一層聚類中心節(jié)點(diǎn)通過(guò)投票產(chǎn)生主節(jié)點(diǎn),投票流程如圖6所示。
投票流程具體步驟如下:
a)初始準(zhǔn)備。每個(gè)第一層聚類中心節(jié)點(diǎn)廣播其信譽(yù)值Trusti和標(biāo)準(zhǔn)差Vi。
b)投票過(guò)程。每個(gè)節(jié)點(diǎn)可以根據(jù)其他節(jié)點(diǎn)的信譽(yù)值和標(biāo)準(zhǔn)差進(jìn)行最多K/2次投票。節(jié)點(diǎn)將自己的投票信息格式化為〈vote,i,j,g〉,其中i表示被投票節(jié)點(diǎn)編號(hào),j表示投票節(jié)點(diǎn)編號(hào),g表示投票行為(0或1)。例如圖6中,節(jié)點(diǎn)1向節(jié)點(diǎn)2投票的信息可以表示為〈vote,2,1,1〉。投票行為g的確定取決于被投票節(jié)點(diǎn)的信譽(yù)值和標(biāo)準(zhǔn)差。如果被投票節(jié)點(diǎn)的信譽(yù)值較高且標(biāo)準(zhǔn)差較低,投票節(jié)點(diǎn)可能會(huì)選擇g=1;反之,則為g=0。
c)票數(shù)統(tǒng)計(jì)。每個(gè)節(jié)點(diǎn)收到其他節(jié)點(diǎn)的投票信息后進(jìn)行匯總,根據(jù)式(19)計(jì)算自己的最終票數(shù)。
Li=∑Ki=0(TrustiVi)votei
(19)
其中:Li表示主節(jié)點(diǎn)收到的最終投票數(shù)統(tǒng)計(jì);Trusti/Vi的比值越大,意味著節(jié)點(diǎn)在主節(jié)點(diǎn)選舉中的影響力越大;votei表示節(jié)點(diǎn)收到的投票數(shù)。例如在圖6中,節(jié)點(diǎn)1收到3票,節(jié)點(diǎn)2和4各收到2票,節(jié)點(diǎn)3收到1票。假設(shè)節(jié)點(diǎn)1的信譽(yù)值為2.4,標(biāo)準(zhǔn)差為0.1,對(duì)應(yīng)的投票權(quán)重為24;節(jié)點(diǎn)2的信譽(yù)值為2.3,標(biāo)準(zhǔn)差為0.1,權(quán)重為23;節(jié)點(diǎn)3的信譽(yù)值為2.1,標(biāo)準(zhǔn)差為0.3,權(quán)重為7;節(jié)點(diǎn)4的信譽(yù)值為2.4,標(biāo)準(zhǔn)差為0.2,權(quán)重為12。節(jié)點(diǎn)1的最終票數(shù)Li計(jì)算如下:L1=23×1+7×1+12×1=42、L2=36、L3=24、L4=30。最終票數(shù)最高的節(jié)點(diǎn)1被廣播為主節(jié)點(diǎn)。若票數(shù)相同,則選擇編號(hào)較小的節(jié)點(diǎn)進(jìn)行廣播。
d)確認(rèn)投票結(jié)果。一旦主節(jié)點(diǎn)確定,從節(jié)點(diǎn)將向主節(jié)點(diǎn)發(fā)送確認(rèn)信息以確認(rèn)其身份。例如,若節(jié)點(diǎn)1被選為主節(jié)點(diǎn),則其他節(jié)點(diǎn)會(huì)向節(jié)點(diǎn)1發(fā)送類型為〈1,confirmation〉的信息。
此機(jī)制保證主節(jié)點(diǎn)由信譽(yù)值較高且標(biāo)準(zhǔn)差小的節(jié)點(diǎn)擔(dān)任,這種方法不僅避免了主導(dǎo)節(jié)點(diǎn)的產(chǎn)生,還確保了選取過(guò)程的公正性。主節(jié)點(diǎn)選取的主要算法描述如下。
算法3 主節(jié)點(diǎn)選取算法
輸入:C1nodes。
輸出:主節(jié)點(diǎn)編號(hào)i。
for each node in C1nodes: //遍歷第一層聚類中心節(jié)點(diǎn)
voting process(C1nodes) //執(zhí)行投票過(guò)程
vote=(g, node.id, other node.id) //存儲(chǔ)投票信息〈g,j,i〉
g=node vote for(other node) //投票行為0或1
total votes=∑Ki=0(trusti/Vi)votei //計(jì)算票數(shù)
if vote countgt;max votes:
max votes=vote count
i=find node by id(node id) //找到得票最多的節(jié)點(diǎn)
broadcast i //廣播主節(jié)點(diǎn)
end if
return i
end for
2.5 TSD-PBFT共識(shí)流程
TSD-PBFT對(duì)系統(tǒng)節(jié)點(diǎn)進(jìn)行聚類分組后,實(shí)現(xiàn)兩層共識(shí),第一層采用簡(jiǎn)化的PBFT算法,第二層則采用HotStuff算法。具體共識(shí)流程如圖7所示,節(jié)點(diǎn)1~4是第一層聚類中心節(jié)點(diǎn),其中節(jié)點(diǎn)1為主節(jié)點(diǎn),節(jié)點(diǎn)5、10、18、19為聚類簇1內(nèi)的點(diǎn)。
a)請(qǐng)求階段??蛻舳讼蛑鞴?jié)點(diǎn)發(fā)送請(qǐng)求,請(qǐng)求消息格式為〈request,C,M〉,其中C表示客戶端標(biāo)識(shí),M表示請(qǐng)求消息內(nèi)容。
b)預(yù)準(zhǔn)備階段。主節(jié)點(diǎn)1廣播消息到備份節(jié)點(diǎn)(節(jié)點(diǎn)2~4)。消息格式為〈pre-prepare,V,N,D(M),i,QC〉,其中:V表示當(dāng)前視圖編號(hào);N表示當(dāng)前請(qǐng)求編號(hào);D(M)表示消息摘要;i表示主節(jié)點(diǎn)編號(hào);QC(quorum certificate)表示共識(shí)證書。第一層聚類中心節(jié)點(diǎn)對(duì)消息進(jìn)行校驗(yàn),確認(rèn)無(wú)誤后,備份節(jié)點(diǎn)進(jìn)入準(zhǔn)備階段。若存在異常情況,執(zhí)行視圖變更,更換主節(jié)點(diǎn)。
c)PBFT準(zhǔn)備階段。備份節(jié)點(diǎn)確認(rèn)消息合法性,并廣播消息〈prepare-PBFT,V,N,D(M),i,QC-PBFT〉。當(dāng)備份節(jié)點(diǎn)收到超過(guò)2f個(gè)準(zhǔn)備消息時(shí),生成QC并廣播〈QC-PBFT,V,N,D(M),i〉,其中QC為第一層精簡(jiǎn)PBFT產(chǎn)生的消息證據(jù)。
d)Hotstuff準(zhǔn)備階段。第二層領(lǐng)導(dǎo)者節(jié)點(diǎn)(節(jié)點(diǎn)1)廣播消息〈prepareQC,V,N,D(M),QC-HotStuff〉到簇內(nèi)其他節(jié)點(diǎn)(節(jié)點(diǎn)5、10、18、19)。確保在第二層的共識(shí)過(guò)程中,節(jié)點(diǎn)具有足夠的共識(shí)證據(jù)來(lái)進(jìn)行后續(xù)的提交階段。
e)預(yù)提交階段。簇內(nèi)節(jié)點(diǎn)收到prepareQC-HotStuff消息后,確認(rèn)消息合法性,并廣播消息給其他節(jié)點(diǎn)。消息格式為
〈pre-commit,V,N,D(M),i,QC-HotStuff〉。
f)提交階段。當(dāng)領(lǐng)導(dǎo)者節(jié)點(diǎn)(節(jié)點(diǎn)1)收到超過(guò)2f+1個(gè)預(yù)提交消息后,生成新的QC并廣播消息〈commit,V,N,D(M),i,QC-HotStuff〉給其他節(jié)點(diǎn),確保共識(shí)過(guò)程已經(jīng)達(dá)成一致,并可以進(jìn)行最終的決定階段。
g)決定階段。簇內(nèi)節(jié)點(diǎn)收到提交消息后,確認(rèn)消息合法性,向客戶端發(fā)送最終的決定消息〈decision,V,N,D(M),i,QC-HotStuff〉。當(dāng)客戶端收到2f+1個(gè)一致的決定消息后,認(rèn)為請(qǐng)求已經(jīng)得到執(zhí)行,本輪共識(shí)完成。
3 算法分析
3.1 安全性分析
3.1.1 主節(jié)點(diǎn)選取的安全性
在PBFT算法中,主節(jié)點(diǎn)是按輪流方式選取的,且算法在主節(jié)點(diǎn)的選取過(guò)程中不具備過(guò)濾惡意節(jié)點(diǎn)的能力,PBFT算法的過(guò)濾效率PP-f=0。而在TSD-PBFT中,主節(jié)點(diǎn)通過(guò)信譽(yù)機(jī)制和投票機(jī)制選取,具備更高的惡意節(jié)點(diǎn)過(guò)濾效率。當(dāng)節(jié)點(diǎn)的歷史共識(shí)行為評(píng)分低于閾值,或參與程度連續(xù)兩次低于平均水平時(shí),該節(jié)點(diǎn)將被視為惡意節(jié)點(diǎn)并予以剔除。因此,信譽(yù)機(jī)制的過(guò)濾效率Ptgt;0。投票機(jī)制通過(guò)節(jié)點(diǎn)間的投票進(jìn)一步排除潛在的惡意節(jié)點(diǎn)。由于惡意節(jié)點(diǎn)的行為往往與大多數(shù)誠(chéng)實(shí)節(jié)點(diǎn)不一致,投票機(jī)制能夠進(jìn)一步提升過(guò)濾效率,即Pvgt;0,由于Ptgt;0和Pvgt;0,必然有聯(lián)合過(guò)濾效率PTSD-f=1-(1-Pt)×(1-Pv)gt;0。因此,TSD-PBFT的惡意節(jié)點(diǎn)過(guò)濾效率PTSD-f始終大于PBFT的惡意節(jié)點(diǎn)過(guò)濾效率PP-f。
3.1.2 共識(shí)過(guò)程的安全性
原PBFT算法能容忍的最大惡意節(jié)點(diǎn)數(shù)量為f≤(N-1)/3,其中N為總節(jié)點(diǎn)數(shù),f為惡意節(jié)點(diǎn)數(shù)。當(dāng)惡意節(jié)點(diǎn)數(shù)量超過(guò)這個(gè)上限時(shí),PBFT將無(wú)法達(dá)成共識(shí)。在TSD-PBFT中,通過(guò)引入信譽(yù)機(jī)制和投票機(jī)制來(lái)動(dòng)態(tài)過(guò)濾惡意節(jié)點(diǎn),顯著提高了系統(tǒng)的容忍度,實(shí)際參與共識(shí)過(guò)程的惡意節(jié)點(diǎn)數(shù)量減少為Nf=f×(1-PTSD-f),為確保共識(shí)安全性,需要滿足條件Nf≤(N-1)/3,代入ff的表達(dá)式,得f≤(N-1)/3(1-PTSD-f)。由于PTSD-fgt;0,所以1/(1-PTSD-f)gt;1,意味著TSD-PBFT能夠容忍的惡意節(jié)點(diǎn)數(shù)量f大于PBFT的上限(N-1)/3,這一改進(jìn)增強(qiáng)了系統(tǒng)的安全性。
3.1.3 系統(tǒng)整體共識(shí)成功概率
PBFT的整體共識(shí)成功概率計(jì)算為PP-S=1-PP-F,其中PP-F是惡意節(jié)點(diǎn)導(dǎo)致共識(shí)失敗的概率。在最壞情況下,如果惡意節(jié)點(diǎn)的數(shù)量fgt;(N-1)/3,則PP-F=1,即PP-S=0。在惡意節(jié)點(diǎn)數(shù)量f≤(N-1)/3的情況下,PP-F取決于惡意節(jié)點(diǎn)對(duì)消息傳遞和驗(yàn)證過(guò)程的干擾程度,由于PBFT沒有過(guò)濾惡意節(jié)點(diǎn)的機(jī)制,惡意節(jié)點(diǎn)可以通過(guò)阻止或偽造信息來(lái)影響共識(shí),所以PBFT的共識(shí)成功概率顯著低于具備惡意節(jié)點(diǎn)過(guò)濾機(jī)制的算法。本文TSD-PBFT的共識(shí)成功概率PTSD-S與其過(guò)濾惡意節(jié)點(diǎn)的效率PTSD-f相關(guān),可以表示為PTSD-S=1-PTSD-F,其中PTSD-F表示在TSD-PBFT中惡意節(jié)點(diǎn)導(dǎo)致共識(shí)失敗的概率。由于TSD-PBFT能夠過(guò)濾一部分惡意節(jié)點(diǎn),進(jìn)一步細(xì)化PTSD-F=PP-F(1-PTSD-f)。因此,TSD-PBFT的共識(shí)成功概率PTSD-S=1-PP-F(1-PTSD-f)。由于PTSD-fgt;0,有0lt;(1-PTSD-f)lt;1,所以PP-F(1-PTSD-f)lt;PP-F,這意味著PTSD-Sgt;PP-S,由此可見TSD-PBFT的整體共識(shí)成功概率始終高于PBFT的共識(shí)成功概率。
3.2 通信開銷分析
本節(jié)對(duì)PBFT共識(shí)算法、文獻(xiàn)[16]、TSD-PBFT算法在完成單次共識(shí)所需的通信次數(shù)進(jìn)行分析。首先假設(shè)文獻(xiàn)[16]和本文算法區(qū)塊鏈系統(tǒng)被分成了K組,每組包含N/K個(gè)節(jié)點(diǎn)。因此,整個(gè)區(qū)塊鏈系統(tǒng)的總節(jié)點(diǎn)數(shù)可以表示為N=K×n(k≥4,n>3)。
1)PBFT算法共識(shí)通信次數(shù)
PBFT共識(shí)算法通信開銷在預(yù)準(zhǔn)備階段通信次數(shù)為(N-1);在準(zhǔn)備階段通信次數(shù)為(N-1)2;在確認(rèn)階段通信次數(shù)為N(N-1);因此PBFT共識(shí)算法在正常共識(shí)中的通信次數(shù)為T1=(N-1)+(N-1)2+N(N-1)=2N(N-1)。
2)TSD-PBFT算法共識(shí)通信次數(shù)
由圖7可知,第一層使用簡(jiǎn)化PBFT算法,第二層采用HotStuff共識(shí)。在第一層PBFT中,節(jié)點(diǎn)之間的通信次數(shù)為1+(K-1)+(K-1)2。在第二層共識(shí)中,共有(N/K-1)8次節(jié)點(diǎn)通信。因此,完成一次TSD-PBFT共識(shí)所需的節(jié)點(diǎn)通信次數(shù)為T2=1+(K-1)+(K-1)2+[(N/K-1)8]K=8N+K2-9K+1。
3)文獻(xiàn)[16]共識(shí)通信次數(shù)
關(guān)于文獻(xiàn)[16]共識(shí)算法的通信次數(shù)的計(jì)算有以下假設(shè):假設(shè)聚類后的從鏈數(shù)量為K,從鏈節(jié)點(diǎn)數(shù)量為N/K,主鏈中對(duì)應(yīng)的主節(jié)點(diǎn)數(shù)量也是K。從鏈的共識(shí)通信次數(shù)計(jì)算如下:[(N/K-1)+(N/K-1)2+N/K(N/K-1)]K=2N2/K-2N。主鏈的共識(shí)通信次數(shù)計(jì)算如下:(K-1)+(K-1)2+K(K-1)=2K2-2K。因此,總體的共識(shí)通信次數(shù)T3=2N2/K-2N+2K2-2K。
通過(guò)比較T1、T2和T3的通信次數(shù),可以確定TSD-PBFT與PBFT算法之間的通信開銷比T12,以及文獻(xiàn)[16]與TSD-PBFT算法的通信開銷比T23。
T1=(N-1)+(N-1)2+N×(N-1)=2N×(N-1)
T2=(K-1)+(K-1)2+[(N/K-1)×8]K=8N+K2-9K
T3=2N2/K-2N+2K2-2K
T12=T2T1=8N+K2-9K+12N×(N-1)
T23=T2T3=8N+K2-9K+12N2/K-2N+2K2-2K
(20)
文中設(shè)定K值為[3,10],并將節(jié)點(diǎn)數(shù)量N的范圍設(shè)置為[6,100]。分析幾種算法的通信開銷比,不同節(jié)點(diǎn)數(shù)量和K值下的通信開銷比情況如圖8所示。圖中x軸代表節(jié)點(diǎn)數(shù)量N,y軸代表K值,z軸代表通信開銷比。
從圖8可以看出,在給定的范圍內(nèi),無(wú)論K和N如何變化,T12、T23的值始終保持在小于1的水平,表明TSD-PBFT算法的通信開銷一直低于PBFT共識(shí)算法和文獻(xiàn)[16]。隨著節(jié)點(diǎn)數(shù)量的增加,通信開銷率也會(huì)隨之下降,TSD-PBFT通過(guò)引入信譽(yù)機(jī)制和投票機(jī)制,使主節(jié)點(diǎn)的選擇變得更為安全可靠,顯著降低了視圖更換的風(fēng)險(xiǎn)。綜上所述,TSD-PBFT在實(shí)際應(yīng)用中展現(xiàn)出更高的效率和穩(wěn)定性。
3.3 應(yīng)用場(chǎng)景分析
金融交易系統(tǒng)是現(xiàn)代金融科技的核心,要求高頻交易中的實(shí)時(shí)性、安全性和透明度。系統(tǒng)各方需共享交易狀態(tài)、風(fēng)險(xiǎn)評(píng)估及市場(chǎng)數(shù)據(jù),以便迅速?zèng)Q策。區(qū)塊鏈通過(guò)去中心化提升交易透明度與安全性,用戶作為節(jié)點(diǎn)提交交易并參與驗(yàn)證,交易平臺(tái)作為主節(jié)點(diǎn)協(xié)調(diào)交易和反饋。然而,傳統(tǒng)PBFT共識(shí)算法在金融交易系統(tǒng)中的主要缺陷包括:a)處理交易延遲能力不足,難以快速響應(yīng)市場(chǎng)波動(dòng),可能導(dǎo)致用戶錯(cuò)失關(guān)鍵機(jī)會(huì)并產(chǎn)生經(jīng)濟(jì)損失;b)缺乏有效的信譽(yù)評(píng)估機(jī)制,低信譽(yù)節(jié)點(diǎn)可能降低系統(tǒng)性能,影響交易穩(wěn)定性;c)主節(jié)點(diǎn)選取機(jī)制不完善,主節(jié)點(diǎn)性能不佳時(shí)會(huì)削弱共識(shí)效率與系統(tǒng)安全性,增加交易的不確定性。
本文TSD-PBFT顯著提升了金融交易系統(tǒng)的效率與安全性。該算法引入動(dòng)態(tài)信譽(yù)評(píng)估模型,實(shí)時(shí)監(jiān)控參與者行為,及時(shí)識(shí)別并剔除惡意節(jié)點(diǎn),確保系統(tǒng)完整性和數(shù)據(jù)真實(shí)性。同時(shí),TSD-PBFT優(yōu)化了主節(jié)點(diǎn)選取機(jī)制,增強(qiáng)交易高峰期的響應(yīng)能力,選擇信譽(yù)高、性能穩(wěn)定的節(jié)點(diǎn),有效減少共識(shí)延遲,確保交易快速完成并高效運(yùn)作。此外,聚類算法降低了通信開銷,提升高頻交易中的數(shù)據(jù)交換效率,通過(guò)分散負(fù)載保證系統(tǒng)穩(wěn)定運(yùn)行,避免傳統(tǒng)算法的瓶頸問(wèn)題。動(dòng)態(tài)信譽(yù)機(jī)制還增強(qiáng)了用戶信任,提升市場(chǎng)活躍度與穩(wěn)定性。
4 仿真分析
為了驗(yàn)證TSD-PBFT共識(shí)算法的有效性,本實(shí)驗(yàn)在采用Intel CoreTM i5-8265U CPU 1.80 GHz處理器、8 GB內(nèi)存的Windows 11系統(tǒng)下進(jìn)行。實(shí)驗(yàn)通過(guò)配置多臺(tái)虛擬機(jī)加端口映射的方式模擬多節(jié)點(diǎn)環(huán)境,開啟多個(gè)端口模擬節(jié)點(diǎn)的并發(fā)活動(dòng),通過(guò)日志記錄收集共識(shí)過(guò)程中產(chǎn)生的數(shù)據(jù),并利用Origin軟件進(jìn)行可視化,以便直觀展示實(shí)驗(yàn)結(jié)果并進(jìn)行深入分析。實(shí)驗(yàn)涵蓋了多個(gè)方面的性能分析與對(duì)比,包括算法的實(shí)驗(yàn)參數(shù)、共識(shí)周期、信用評(píng)估模型、惡意節(jié)點(diǎn)剔除、系統(tǒng)穩(wěn)健性、時(shí)延和吞吐量。
4.1 實(shí)驗(yàn)參數(shù)分析算法模型
根據(jù)信用評(píng)價(jià)模型的要求,在本文的信譽(yù)評(píng)估模型中,動(dòng)態(tài)評(píng)價(jià)是節(jié)點(diǎn)的主要評(píng)價(jià)指標(biāo),反映節(jié)點(diǎn)在實(shí)時(shí)共識(shí)中的行為表現(xiàn)和互動(dòng)方式。為準(zhǔn)確評(píng)估節(jié)點(diǎn)的信譽(yù)度,動(dòng)態(tài)評(píng)價(jià)的權(quán)重系數(shù)β應(yīng)大于靜態(tài)評(píng)價(jià)的權(quán)重系數(shù)α,以更精準(zhǔn)地衡量節(jié)點(diǎn)的行為特征和對(duì)共識(shí)系統(tǒng)的貢獻(xiàn)。此外,靜態(tài)評(píng)價(jià)中的歷史行為,尤其是不良行為,會(huì)對(duì)系統(tǒng)的穩(wěn)定性和可信度產(chǎn)生負(fù)面影響,因此應(yīng)嚴(yán)格限制。為突顯對(duì)不良行為的嚴(yán)厲制裁,不良行為的權(quán)重系數(shù)ω應(yīng)遠(yuǎn)大于良好行為的權(quán)重系數(shù)φ。通過(guò)動(dòng)態(tài)調(diào)整φ、ω、α和β的值來(lái)調(diào)整綜合信用值中靜態(tài)信譽(yù)值、動(dòng)態(tài)信譽(yù)值和歷史行為值的比重。權(quán)重之間滿足φ+ω+α+β=1,且α+βgt;φ+ω?;诖?,本文按照動(dòng)態(tài)評(píng)價(jià)權(quán)重系數(shù)β逐漸增大選取三組權(quán)重值組合:(0.35、0.4、0.25)、(0.3、0.5、0.2)、(0.25、0.6、0.15)。當(dāng)這些權(quán)重值變化時(shí),節(jié)點(diǎn)在5輪測(cè)試中的信譽(yù)值變化如圖9所示。
通過(guò)對(duì)實(shí)驗(yàn)數(shù)據(jù)的分析,權(quán)重組合(0.25、0.6、0.15)在5輪共識(shí)中表現(xiàn)最佳,信譽(yù)值提升幅度最大,說(shuō)明這種組合在強(qiáng)調(diào)動(dòng)態(tài)評(píng)價(jià)的情況下能夠更好地激勵(lì)節(jié)點(diǎn)積極參與共識(shí)過(guò)程,從而提高系統(tǒng)的整體信譽(yù)度。相比之下,第二組權(quán)重系數(shù)(0.3,0.5,0.2)中動(dòng)態(tài)評(píng)價(jià)仍然較高,但其相對(duì)均衡的靜態(tài)評(píng)價(jià)和歷史行為可能導(dǎo)致對(duì)節(jié)點(diǎn)長(zhǎng)期歷史行為的過(guò)度關(guān)注,而第三組權(quán)重系數(shù)(0.35,0.4,0.25)中歷史行為的較高權(quán)重可能會(huì)過(guò)度強(qiáng)調(diào)節(jié)點(diǎn)過(guò)去的表現(xiàn),而不足以及時(shí)應(yīng)對(duì)節(jié)點(diǎn)當(dāng)前的實(shí)時(shí)行為變化,影響系統(tǒng)對(duì)實(shí)時(shí)性和靈活性的要求。因此,本文設(shè)定實(shí)驗(yàn)參數(shù):靜態(tài)評(píng)價(jià)權(quán)重為0.25,動(dòng)態(tài)評(píng)價(jià)權(quán)重為0.6,歷史共識(shí)行為權(quán)重為0.15。詳細(xì)參數(shù)如表3所示。
4.2 共識(shí)周期分析
在區(qū)塊鏈系統(tǒng)中,共識(shí)周期的設(shè)計(jì)對(duì)系統(tǒng)性能和穩(wěn)定性至關(guān)重要。周期過(guò)短會(huì)導(dǎo)致節(jié)點(diǎn)無(wú)法及時(shí)參與,影響共識(shí)效率和吞吐量;周期過(guò)長(zhǎng)則會(huì)增加系統(tǒng)延遲,延長(zhǎng)交易確認(rèn)時(shí)間。因此,選擇適當(dāng)?shù)墓沧R(shí)周期對(duì)于平衡節(jié)點(diǎn)參與度和系統(tǒng)穩(wěn)定性以及確保系統(tǒng)高效運(yùn)轉(zhuǎn)至關(guān)重要。共識(shí)周期對(duì)比如圖10所示,在節(jié)點(diǎn)總數(shù)為60的系統(tǒng)中,對(duì)3~7次共識(shí)周期的平均延遲進(jìn)行了對(duì)比分析。
從圖10可以看出,隨著共識(shí)周期的增加,系統(tǒng)的平均延遲先逐步降低,但在達(dá)到最優(yōu)點(diǎn)后又開始上升。在所測(cè)試的五種共識(shí)周期中,5次共識(shí)周期的平均延遲最低,為1.2 s,顯著優(yōu)于3次周期的1.52 s、4次周期的1.42 s、6次周期的1.32 s和7次周期的1.42 s。5次共識(shí)周期在確保高效共識(shí)的同時(shí),有效降低了系統(tǒng)響應(yīng)時(shí)間,適合快速交易確認(rèn)的應(yīng)用場(chǎng)景。這一周期為節(jié)點(diǎn)提供了足夠的時(shí)間參與共識(shí),避免過(guò)長(zhǎng)等待,并能及時(shí)發(fā)現(xiàn)和糾正異常行為,保障系統(tǒng)穩(wěn)定性。
4.3 節(jié)點(diǎn)信用值變化
為清晰驗(yàn)證信譽(yù)評(píng)估模型的有效性,本文設(shè)定四種不同類型的節(jié)點(diǎn),分別為優(yōu)秀共識(shí)節(jié)點(diǎn)1、誠(chéng)實(shí)共識(shí)節(jié)點(diǎn)2、不良行為共識(shí)節(jié)點(diǎn)3和惡意共識(shí)節(jié)點(diǎn)4。進(jìn)行一個(gè)周期共識(shí)過(guò)程的測(cè)試,共識(shí)中節(jié)點(diǎn)信譽(yù)值實(shí)驗(yàn)如圖11所示。
從圖11可以看出,節(jié)點(diǎn)1~4在不同的共識(shí)輪次中表現(xiàn)出不同的信譽(yù)增長(zhǎng)趨勢(shì)。初始時(shí)假設(shè)4個(gè)節(jié)點(diǎn)信用值均為0.1,節(jié)點(diǎn)1作為優(yōu)秀節(jié)點(diǎn),在每一輪共識(shí)中都積極參與,并獲得其他節(jié)點(diǎn)的高度認(rèn)可,信譽(yù)值穩(wěn)步且顯著增長(zhǎng)。節(jié)點(diǎn)2在第二輪中僅獲得少數(shù)投票,導(dǎo)致信譽(yù)值有所下降,但在其他輪次中表現(xiàn)出誠(chéng)實(shí)參與,信譽(yù)值逐步恢復(fù)。節(jié)點(diǎn)3在第三輪共識(shí)中表現(xiàn)欠佳,信譽(yù)值顯著下降,但在隨后的輪次中逐漸調(diào)整表現(xiàn),信譽(yù)值得以回升。節(jié)點(diǎn)4則自第一輪起就表現(xiàn)出惡意行為,信譽(yù)值持續(xù)下降,反映出其在系統(tǒng)中的不良表現(xiàn),最終被系統(tǒng)有效識(shí)別和剔除。
圖11中四種不同屬性節(jié)點(diǎn)信用值變化驗(yàn)證信譽(yù)評(píng)估模型在應(yīng)對(duì)不同節(jié)點(diǎn)行為時(shí)的有效性。通過(guò)動(dòng)態(tài)評(píng)估不僅可以及時(shí)識(shí)別和處理惡意節(jié)點(diǎn),還能避免對(duì)故障節(jié)點(diǎn)懲罰過(guò)度問(wèn)題,給予節(jié)點(diǎn)自我修復(fù)的可能性。該算法確保共識(shí)過(guò)程的可靠性和安全性。
4.4 惡意節(jié)點(diǎn)剔除對(duì)比
PBFT共識(shí)算法由于缺乏對(duì)惡意節(jié)點(diǎn)的有效處理,在存在較多惡意節(jié)點(diǎn)的網(wǎng)絡(luò)環(huán)境下,這些惡意節(jié)點(diǎn)可能頻繁被選擇成為領(lǐng)導(dǎo)者或參與關(guān)鍵共識(shí)決策,導(dǎo)致系統(tǒng)面臨安全性風(fēng)險(xiǎn)并難以正常運(yùn)轉(zhuǎn);TSD-PBFT通過(guò)信譽(yù)模型識(shí)別并剔除系統(tǒng)中存在的惡意節(jié)點(diǎn),從而極大程度上提高了網(wǎng)絡(luò)節(jié)點(diǎn)的質(zhì)量。實(shí)驗(yàn)中設(shè)置了6個(gè)拜占庭節(jié)點(diǎn)將隨機(jī)干擾共識(shí),觀察在10輪共識(shí)中PBFT、文獻(xiàn)[16]、K-PBFT[18]和TSD-PBFT共識(shí)算法拜占庭節(jié)點(diǎn)數(shù)量隨共識(shí)輪次增加的變化情況,實(shí)驗(yàn)結(jié)果如圖12所示。
從圖12可以看出,PBFT因缺乏獎(jiǎng)懲機(jī)制而導(dǎo)致惡意節(jié)點(diǎn)一直存在,嚴(yán)重威脅系統(tǒng)的安全性。相比之下,文獻(xiàn)[16]、K-PBFT和TSD-PBFT中的惡意節(jié)點(diǎn)數(shù)量呈下降趨勢(shì),成功減少惡意節(jié)點(diǎn)的數(shù)量。在文獻(xiàn)[16]中,如果節(jié)點(diǎn)在共識(shí)過(guò)程中進(jìn)行惡意行為,如數(shù)據(jù)篡改,其信譽(yù)評(píng)分將被設(shè)定為0,被視為拜占庭節(jié)點(diǎn)并被系統(tǒng)要求退出,接受審查,若后續(xù)節(jié)點(diǎn)表現(xiàn)良好并修復(fù)了信譽(yù),它們將有機(jī)會(huì)重新加入系統(tǒng)參與共識(shí)。K-PBFT因引入惰性系數(shù)P減少了頻繁的節(jié)點(diǎn)調(diào)整,但也導(dǎo)致節(jié)點(diǎn)剔除速度趨于保守,限制了惡意節(jié)點(diǎn)的快速剔除。而TSD-PBFT引入信譽(yù)評(píng)估模型,并定期更新信譽(yù)值,從而更及時(shí)地發(fā)現(xiàn)并清除惡意節(jié)點(diǎn)。這種靈活性使系統(tǒng)能夠在一定程度上對(duì)惡意節(jié)點(diǎn)進(jìn)行控制和管理,但仍可能出現(xiàn)惡意節(jié)點(diǎn)重新加入后繼續(xù)干擾共識(shí)的情況,而TSD-PBFT引入信譽(yù)評(píng)估模型,并定期更新信譽(yù)值,從而更及時(shí)地發(fā)現(xiàn)并清除惡意節(jié)點(diǎn)。與文獻(xiàn)[16]和K-PBFT相比,TSD-PBFT不僅能夠快速識(shí)別當(dāng)前的惡意節(jié)點(diǎn),還通過(guò)持續(xù)監(jiān)控和更新信譽(yù)值,降低惡意節(jié)點(diǎn)在后續(xù)共識(shí)中的存在概率。實(shí)驗(yàn)結(jié)果顯示,TSD-PBFT在10輪共識(shí)中迅速減少了拜占庭節(jié)點(diǎn)的數(shù)量,到第6輪時(shí)系統(tǒng)中已無(wú)惡意節(jié)點(diǎn)存在。因此,TSD-PBFT共識(shí)算法能夠有效識(shí)別和迅速剔除惡意節(jié)點(diǎn),提高系統(tǒng)的安全性。
4.5 系統(tǒng)穩(wěn)健性
穩(wěn)健性是評(píng)估區(qū)塊鏈系統(tǒng)中共識(shí)算法性能的重要指標(biāo)之一。在存在拜占庭節(jié)點(diǎn)的系統(tǒng)中,系統(tǒng)的穩(wěn)定程度可通過(guò)視圖轉(zhuǎn)換的次數(shù)來(lái)衡量。引起視圖轉(zhuǎn)換的原因通常包括網(wǎng)絡(luò)問(wèn)題、主節(jié)點(diǎn)的惡意行為或受到惡意節(jié)點(diǎn)的攻擊等。如果系統(tǒng)的視圖轉(zhuǎn)換頻率較高,則表明系統(tǒng)的穩(wěn)健性較差。在節(jié)點(diǎn)總數(shù)為60的系統(tǒng)中,本文分別設(shè)置不同數(shù)量的拜占庭節(jié)點(diǎn),圖13展示在不同數(shù)量拜占庭節(jié)點(diǎn)情況下四種算法的視圖轉(zhuǎn)換情況。
從圖13可以看出,隨著拜占庭節(jié)點(diǎn)數(shù)量的增加,PBFT的視圖轉(zhuǎn)換次數(shù)迅速增長(zhǎng)。文獻(xiàn)[16]在主節(jié)點(diǎn)表現(xiàn)出惡意行為時(shí)會(huì)對(duì)其進(jìn)行信譽(yù)懲罰,但如果惡意主節(jié)點(diǎn)的信譽(yù)值仍在主節(jié)點(diǎn)選取的信譽(yù)級(jí)別范圍內(nèi),該節(jié)點(diǎn)可能再次被選為主節(jié)點(diǎn),難以徹底消除惡意節(jié)點(diǎn)的負(fù)面影響,進(jìn)而導(dǎo)致共識(shí)失敗。K-PBFT引入惰性系數(shù)P降低了節(jié)點(diǎn)頻繁遷移的概率,增強(qiáng)了簇的穩(wěn)定性,減少了不必要的視圖轉(zhuǎn)換。然而,隨著拜占庭節(jié)點(diǎn)數(shù)量的增加,惡意節(jié)點(diǎn)影響的累積導(dǎo)致視圖轉(zhuǎn)換次數(shù)上升。相比之下,TSD-PBFT算法在不同數(shù)量的拜占庭節(jié)點(diǎn)下,視圖轉(zhuǎn)換次數(shù)始終保在最低水平,即使在拜占庭節(jié)點(diǎn)較多的情況下也能維持極低的視圖轉(zhuǎn)換次數(shù)。這是因?yàn)門SD-PBFT算法采用周期更新的動(dòng)態(tài)信譽(yù)機(jī)制和投票機(jī)制來(lái)選取主節(jié)點(diǎn),對(duì)于表現(xiàn)出惡意行為的節(jié)點(diǎn),其信譽(yù)值會(huì)立即受到影響,確保這些節(jié)點(diǎn)在下一輪主節(jié)點(diǎn)選取時(shí)被排除在外,有效防止少數(shù)惡意節(jié)點(diǎn)的反復(fù)干擾,大大降低了拜占庭節(jié)點(diǎn)被選為主節(jié)點(diǎn)的可能性,從而減少視圖轉(zhuǎn)換問(wèn)題,顯著增強(qiáng)系統(tǒng)的穩(wěn)定性。
4.6 共識(shí)過(guò)程耗時(shí)分析
共識(shí)時(shí)延是指從客戶端發(fā)起交易請(qǐng)求到區(qū)塊上鏈所需的時(shí)間。實(shí)驗(yàn)結(jié)果如圖14所示,比較了PBFT、文獻(xiàn)[16]、EIoT-PBFT[17]和本文TSD-PBFT在分組數(shù)K為4、6、9下的平均延遲,取30次測(cè)試均值。
從圖14可見,節(jié)點(diǎn)數(shù)量較少時(shí),四種算法的時(shí)延增長(zhǎng)率相差不大,隨著節(jié)點(diǎn)數(shù)量增加,增長(zhǎng)率差異逐漸顯現(xiàn)。當(dāng)節(jié)點(diǎn)數(shù)量增至70個(gè)時(shí),通信量增加導(dǎo)致四種算法的共識(shí)時(shí)延上升,其中PBFT的共識(shí)時(shí)延最高,因?yàn)镻BFT算法復(fù)雜的共識(shí)過(guò)程和惡意節(jié)點(diǎn)持續(xù)存在導(dǎo)致頻繁的視圖更換。相比之下,文獻(xiàn)[16]低于PBFT的原因在于選取的主節(jié)點(diǎn)信譽(yù)較高,減少惡意攻擊和視圖轉(zhuǎn)換。EIoT-PBFT優(yōu)于文獻(xiàn)[16],因其篩選信譽(yù)高且地理位置合理的節(jié)點(diǎn),剔除潛在惡意或低效節(jié)點(diǎn),避免了共識(shí)過(guò)程中的通信延遲。然而,其時(shí)延仍低于TSD-PBFT,因新加入節(jié)點(diǎn)缺乏歷史信譽(yù)數(shù)據(jù),導(dǎo)致其無(wú)法迅速參與共識(shí),進(jìn)而影響整體響應(yīng)時(shí)間。TSD-PBFT的共識(shí)時(shí)延明顯低于PBFT、文獻(xiàn)[16]和EIoT-PBFT,主要是因?yàn)門SD-PBFT提高了分組效率并采用混合共識(shí)機(jī)制,從而有效降低大規(guī)模節(jié)點(diǎn)網(wǎng)絡(luò)中的共識(shí)時(shí)延。隨著分組數(shù)的增加,共識(shí)時(shí)延進(jìn)一步降低,當(dāng)分組數(shù)K=4時(shí),分組減少了節(jié)點(diǎn)間通信,但每組節(jié)點(diǎn)較多,組內(nèi)通信開銷依然較大,時(shí)延改善有限;當(dāng)分組數(shù)K=6時(shí),分組增加,組內(nèi)節(jié)點(diǎn)減少,通信復(fù)雜度和延遲顯著降低,時(shí)延增長(zhǎng)更為平緩;在分組數(shù)K=9時(shí),共識(shí)時(shí)延降至最低,因?yàn)楦嗟姆纸M使每個(gè)組的節(jié)點(diǎn)數(shù)量最少,組間并行處理效率最大化,從而減少了共識(shí)時(shí)間。相較PBFT,TSD-PBFT在分組數(shù)為K=9時(shí),平均時(shí)延降低了50.2%。實(shí)驗(yàn)結(jié)果表明,TSD-PBFT顯著提升系統(tǒng)的運(yùn)行效率,加速交易確認(rèn),系統(tǒng)更加高效實(shí)用。
4.7 吞吐量分析
系統(tǒng)在單位時(shí)間內(nèi)可以處理的事務(wù)任務(wù)數(shù)量稱為吞吐量。吞吐量越高,系統(tǒng)的事務(wù)處理效率越高。在相同的實(shí)驗(yàn)條件下,本文對(duì)四種算法的時(shí)延進(jìn)行了測(cè)試,并進(jìn)行了對(duì)比分析。通過(guò)進(jìn)行30次測(cè)試并取平均值的方式獲得了結(jié)果,具體數(shù)據(jù)如圖15所示。
從圖15可以看出,隨著節(jié)點(diǎn)數(shù)量的增加,節(jié)點(diǎn)間需要交換請(qǐng)求、確認(rèn)、簽名等消息的通信量也隨之增多,節(jié)點(diǎn)計(jì)算負(fù)擔(dān)加重,從而導(dǎo)致系統(tǒng)單位時(shí)間內(nèi)的交易處理量下降,降低整體吞吐量。
其中PBFT共識(shí)算法的吞吐量最低,而文獻(xiàn)[16]和EIoT-PBFT的吞吐量雖較PBFT有所改善,但在大規(guī)模節(jié)點(diǎn)網(wǎng)絡(luò)中仍面臨一定的限制。文獻(xiàn)[16]在主節(jié)點(diǎn)的選取過(guò)程中,雖然信譽(yù)機(jī)制能夠過(guò)濾掉部分惡意節(jié)點(diǎn),但在信譽(yù)分?jǐn)?shù)接近邊界的情況下,仍存在較高的風(fēng)險(xiǎn),導(dǎo)致潛在的系統(tǒng)性能波動(dòng)。EIoT-PBFT通過(guò)分組減少每組內(nèi)的節(jié)點(diǎn)數(shù)量,顯著降低通信量,從而提升系統(tǒng)吞吐量。然而,當(dāng)組內(nèi)節(jié)點(diǎn)過(guò)多,可能導(dǎo)致共識(shí)過(guò)程變慢,成為系統(tǒng)吞吐量的瓶頸,進(jìn)而拖累整體性能。相比之下,TSD-PBFT表現(xiàn)更佳,采用節(jié)點(diǎn)聚類分組、主節(jié)點(diǎn)投票選取機(jī)制和混合共識(shí)機(jī)制,有效降低共識(shí)時(shí)延和通信開銷。在分組數(shù)為K=9時(shí),TSD-PBFT的吞吐量較PBFT提高了72.1%。隨著分組數(shù)增加,系統(tǒng)吞吐量進(jìn)一步提高,因?yàn)椴捎脴?biāo)準(zhǔn)差聚類分組方法選擇密集度高且信譽(yù)好的節(jié)點(diǎn)作為聚類中心節(jié)點(diǎn),確保每個(gè)小組內(nèi)的節(jié)點(diǎn)密度相對(duì)較高,減少消息傳輸路徑長(zhǎng)度和通信開銷,進(jìn)而提高了吞吐量。然而,盡管調(diào)整分組數(shù)K可以優(yōu)化吞吐量表現(xiàn),隨著節(jié)點(diǎn)數(shù)量的增加,特別是超過(guò)70個(gè)節(jié)點(diǎn)時(shí),TSD-PBFT的吞吐量仍然會(huì)下降。其原因在于,無(wú)論分組數(shù)如何設(shè)置,由于HotStuff采用星型通信結(jié)構(gòu),導(dǎo)致第二層的領(lǐng)導(dǎo)者節(jié)點(diǎn)需要一對(duì)多的通信,增加通信負(fù)擔(dān),限制TSD-PBFT在大規(guī)模節(jié)點(diǎn)情況下的吞吐量表現(xiàn)。因此,綜合各方面因素考慮,TSD-PBFT整體上優(yōu)于PBFT、文獻(xiàn)[16]和EIoT-PBFT,具有更好的吞吐性能,能夠提升系統(tǒng)的共識(shí)效率。
5 結(jié)束語(yǔ)
本文針對(duì)PBFT共識(shí)算法存在的缺少獎(jiǎng)懲機(jī)制、通信開銷大和主節(jié)點(diǎn)選取不安全等問(wèn)題,提出了TSD-PBFT共識(shí)算法。建立了動(dòng)態(tài)與靜態(tài)結(jié)合的信譽(yù)評(píng)估模型,實(shí)時(shí)檢測(cè)和清除惡意節(jié)點(diǎn),并通過(guò)周期性地重置高信譽(yù)值節(jié)點(diǎn)的評(píng)分,避免主導(dǎo)節(jié)點(diǎn)產(chǎn)生。同時(shí),提出基于信譽(yù)和標(biāo)準(zhǔn)差的聚類算法,逐步選擇密度高且信譽(yù)好的節(jié)點(diǎn)作為最終聚類中心點(diǎn),并利用K-medoids算法將剩余節(jié)點(diǎn)分配到最近的聚類中心點(diǎn),從而降低通信開銷。最后在主節(jié)點(diǎn)選取過(guò)程中引入投票機(jī)制,確保主節(jié)點(diǎn)選取的安全可靠。實(shí)驗(yàn)結(jié)果顯示,這種方法具有更高的安全性、更高的吞吐量以及更低的時(shí)延,有助于提高系統(tǒng)的運(yùn)行效率。然而,TSD-PBFT在吞吐量和時(shí)延方面仍有改進(jìn)空間,需要進(jìn)一步優(yōu)化。在未來(lái)的研究中,將繼續(xù)優(yōu)化信用評(píng)估指標(biāo)和通信拓?fù)浣Y(jié)構(gòu),以提高算法在大規(guī)模節(jié)點(diǎn)網(wǎng)絡(luò)環(huán)境中的性能表現(xiàn),進(jìn)一步完善TSD-PBFT,使其更加穩(wěn)健高效。
參考文獻(xiàn):
[1]Nakamoto S. Bitcoin: a peer-to-peer electronic cash system[EB/OL]. (2008)[2024-3-20]. http://bitcoin.org/bitcoin.pdf.
[2]袁勇, 王飛躍. 區(qū)塊鏈技術(shù)發(fā)展現(xiàn)狀與展望[J]. 自動(dòng)化學(xué)報(bào), 2016, 42(4): 481-494. (Yuan Yong, Wang Feiyue. Blockchain: the state of the art and future trends[J]. Acta Automatica Sinica, 2016, 42(4): 481-494.)
[3]Woo J, Fatima R, Kibert C J, et al. Applying blockchain technology for building energy performance measurement, reporting, and verification(MRV) and the carbon credit market: a review of the literature[J]. Building and Environment, 2021, 205: 108199.
[4]Rehman M, Javed I T, Qureshi K N, et al. A cyber secure medical management system by using blockchain[J]. IEEE Trans on Computational Social Systems, 2023,10(4): 2123-2136.
[5]Yang Li, Zou Yifei, Xu Minghui, et al. Distributed consensus for blockchains in Internet-of-Things networks[J]. Tsinghua Science and Technology, 2022, 27(5): 817-831.
[6]Gavezotti P, Picozzi R, Vezzulli GG, et al. Research on privacy data security sharing scheme based on blockchain and function encryption[J]. Big Data Research, 2022, 8(5): 33-44.
[7]Fu Xiang, Wang Huaimin, Shi Peichang, et al. Teegraph: a blockchain consensus algorithm based on TEE and DAG for data sharing in IoT[J]. Journal of Systems Architecture, 2022, 122: 102344.
[8]King S, Nadal S. PPCoin: peer-to-peer crypto-currency with proof-of-stake[EB/OL]. (2012)[2024-3-20]. https://decred.org/research/king2012.pdf.
[9]Xu Jinjie, Wang Wei, Zeng Yu, et al. Raft-PLUS: improving raft by multi-policy based leader election with unprejudiced sorting[J]. Symmetry, 2022, 14(6): 1122.
[10]Castro M, Liskov B. Practical Byzantine fault tolerance and proactive recovery[J]. ACM Trans on Computer Systems, 2002, 20(4): 398-461.
[11]Cheng Jieren, Yao Xinzhi, Li Hui, et al. Cooperative detection method for DDoS attacks based on blockchain[J]. Computer Systems Science and Engineering, 2022, 43(1): 103-117.
[12]李淑芝, 熊偉志, 鄧小鴻, 等. 基于完美二叉樹通信拓?fù)涞陌菡纪ト蒎e(cuò)共識(shí)算法[J]. 電子與信息學(xué)報(bào), 2023,45(7): 2484-2493. (Li Shuzhi, Xiong Weizhi, Deng Xiaohong, et al. Byzantine fault-tolerance consensus algorithm based on perfect binary tree communication[J]. Journal of Electronics amp; Information Technology, 2023, 45(7): 2484-2493.)
[13]Wang Yong, Zhong Meiling, Cheng Tong. Research on PBFT consensus algorithm for grouping based on feature trust[J]. Scientific Reports, 2022,12(1): 12515.
[14]李俊吉, 張佳琦. 基于信譽(yù)機(jī)制的改進(jìn)PBFT共識(shí)算法[J]. 計(jì)算機(jī)應(yīng)用研究, 2024,41(6): 1628-1634. (Li Junji, Zhang Jiaqi. Improved PBFT consensus algorithm based on reputation mechanism[J]. Application Research of Computers, 2024, 41(6): 1628-1634.)
[15]陳蘇明, 王冰, 陳玉全, 等. 基于節(jié)點(diǎn)分組信譽(yù)模型的改進(jìn)PBFT共識(shí)算法[J]. 計(jì)算機(jī)應(yīng)用研究, 2023, 40(10): 2916-2921. (Chen Suming, Wang Bing, Chen Yuquan, et al. Improved PBFT consensus algorithm based on node grouping reputation model[J]. App-lication Research of Computers, 2023, 40(10): 2916-2921.)
[16]Sun Yi, Fan Ying. Improved PBFT algorithm based on K-means clustering for emergency scenario swarm robotic systems[J]. IEEE Access, 2023, 11: 121753-121765.
[17]Gan Bo, Wang Yaojie, Wu Qiwu, et al. EIoT-PBFT: a multi-stage consensus algorithm for IoT edge computing based on PBFT[J]. Microprocessors and Microsystems, 2022, 95: 104713.
[18]陳子豪, 李強(qiáng). 基于K-medoids的改進(jìn)PBFT共識(shí)機(jī)制[J]. 計(jì)算機(jī)科學(xué), 2019, 46(12): 101-107. (Chen Zihao, Li Qiang. Improved PBFT consensus mechanism based on K-medoids[J]. Computer Science, 2019, 46(12): 101-107.)
[19]Tong Shihua, Li Jibing, Fu Wei. An efficient and scalable Byzantine fault-tolerant consensus mechanism based on credit scoring and aggregated signatures[J]. IEEE Access, 2024, 12: 10393-10410.
[20]Vaghela R D, Iyer S S. A comparative analysis of clustering algorithm[J]. ECS Transactions, 2022, 107(1): 2435-2443.
[21]胡繼圓, 于瓅. 基于信譽(yù)機(jī)制分組的改進(jìn)PBFT算法[J]. 湖北民族大學(xué)學(xué)報(bào)(自然科學(xué)版), 2023, 41(1): 85-89,95. (Hu Jiyuan, Yu Li. Improved PBFT algorithm based on reputation mechanism grouping[J]. Journal of Hubei Minzu University(Natural Science Edition), 2023, 41(1): 85-89,95.)