摘 要:
共識(shí)機(jī)制是區(qū)塊鏈技術(shù)的重要組成部分,針對(duì)委托權(quán)益證明(delegated proof of stake,DPoS)共識(shí)機(jī)制中對(duì)惡意節(jié)點(diǎn)不能及時(shí)有效處理的問(wèn)題,提出了一種基于支持向量機(jī)的DPoS共識(shí)機(jī)制改進(jìn)方案(SVM-DPoS)。首先構(gòu)建基于SVM的節(jié)點(diǎn)判別模型,通過(guò)訓(xùn)練好的模型分析節(jié)點(diǎn)的行為動(dòng)機(jī),根據(jù)判別結(jié)果及時(shí)剔除惡意節(jié)點(diǎn);其次基于固定協(xié)商出塊順序優(yōu)化傳統(tǒng)算法的出塊流程,提升出塊效率,進(jìn)一步提高了整個(gè)區(qū)塊鏈網(wǎng)絡(luò)的運(yùn)行效率。在公開(kāi)數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果表明,與已有的幾種方法相比,改進(jìn)后的共識(shí)機(jī)制能夠快速剔除惡意節(jié)點(diǎn),不僅維護(hù)了系統(tǒng)穩(wěn)定性,且增強(qiáng)了對(duì)惡意行為的防范能力,從而在保障區(qū)塊鏈網(wǎng)絡(luò)正常運(yùn)行的同時(shí),提高了整體共識(shí)的安全性。
關(guān)鍵詞:區(qū)塊鏈;委托權(quán)益證明;支持向量機(jī)
中圖分類(lèi)號(hào):TP301.6 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1001-3695(2024)09-005-2598-06
doi:10.19734/j.issn.1001-3695.2024.01.0029
Improvement of DPoS consensus mechanism based on SVM
He Jing1, 2, Dou Tianchen1, Chen Lin1, Dong Yunyun1, 2
(1.College of Software, Yunnan University, Kunming 650504, China; 2. Engineering Research Center of Cyberspace, Kunming 650504, China)
Abstract:
The consensus mechanism is a critical component of blockchain technology. To address the issue of delayed or ineffective handling of malicious nodes in the DPoS consensus mechanism, this paper proposed an improvement plan for the DPoS consensus mechanism based on SVM(SVM-DPoS). This approach firstly established a node discrimination model based on SVM, which analyzed the behavior motivations of nodes through a well-trained model, allowing for the timely elimination of malicious nodes based on discrimination results. Furthermore, it optimized the traditional block production process based on a fixed negotiated block order, enhancing the block production efficiency and consequently improving the overall operational efficiency of the blockchain network. Experimental results on public datasets indicate that compared to existing methods, the improved consensus mechanism can quickly eliminate malicious nodes. Not only does it maintain system stability, but it also strengthens the defense against malicious activities, thus ensuring the normal operation of the blockchain network while enhancing the overall security of the conseHDn6+r1d9FfOmTjB3xJ/aaM+/yDS1U+fjNysoYJvqNM=nsus.
Key words:block chain; delegated proof of interest; support vector machine
0 引言
共識(shí)問(wèn)題是社會(huì)科學(xué)和計(jì)算機(jī)科學(xué)等領(lǐng)域的經(jīng)典問(wèn)題,已經(jīng)有很長(zhǎng)的研究歷史。在分布式系統(tǒng)中,由于節(jié)點(diǎn)之間的異步通信和可能的故障,共識(shí)問(wèn)題變得尤為重要。在傳統(tǒng)的分布式系統(tǒng)中,共識(shí)問(wèn)題通常由拜占庭將軍問(wèn)題(Byzantine generals problem)引起,即如何在存在故障節(jié)點(diǎn)的情況下,讓節(jié)點(diǎn)之間達(dá)成一致的決策。針對(duì)拜占庭將軍問(wèn)題,研究者們提出了許多共識(shí)算法,例如Paxos算法[1]、Raft[2]算法等。這些算法的核心思想是通過(guò)多輪投票、選舉等機(jī)制,讓節(jié)點(diǎn)達(dá)成一致的共識(shí),從而保證系統(tǒng)的正確性和一致性。然而傳統(tǒng)的共識(shí)算法通常存在性能低下、可擴(kuò)展性差等問(wèn)題,無(wú)法滿(mǎn)足日益增長(zhǎng)的分布式系統(tǒng)的需求。
2008年,Nakamoto[3]提出并公開(kāi)了區(qū)塊鏈早期的實(shí)現(xiàn)代碼。作為區(qū)塊鏈的核心技術(shù)之一,共識(shí)算法具有顯著的優(yōu)勢(shì),其中之一就是在去中心化系統(tǒng)中能夠有效地實(shí)現(xiàn)各個(gè)節(jié)點(diǎn)對(duì)區(qū)塊數(shù)據(jù)有效性的共識(shí),尤其是在決策權(quán)高度分散的情況下,仍然能夠?qū)崿F(xiàn)高效的共識(shí)達(dá)成。根據(jù)參與者的權(quán)限和控制范圍,可以將區(qū)塊鏈分為公有鏈、聯(lián)盟鏈和私有鏈[4]。目前公有鏈的主流共識(shí)算法為工作量證明(proof-of-work,PoW)[5]、權(quán)益證明(proof-of-stake,PoS)[6]和委托權(quán)益證明(delegated proof-of-stake,DPoS)[7]。其中PoW利用哈希算力來(lái)競(jìng)爭(zhēng)記賬權(quán),但這容易造成電力資源的浪費(fèi)以及算力集中等問(wèn)題;PoS解決了PoW消耗大量算力的問(wèn)題,但權(quán)益的累積可能會(huì)導(dǎo)致節(jié)點(diǎn)之間的貧富差距過(guò)大;而DPoS則類(lèi)似于股份公司,根據(jù)股民持有的股份進(jìn)行投票,最終得票數(shù)排名靠前的節(jié)點(diǎn)成為見(jiàn)證節(jié)點(diǎn)輪流完成記賬[8,9]。與PoW和PoS相比,DPoS參與驗(yàn)證和記賬的節(jié)點(diǎn)數(shù)量大幅減少,因此可以提高交易處理速度和吞吐量。但DPoS仍然存在一些不足之處:
a)投票積極性不高,大多數(shù)節(jié)點(diǎn)只是持股,很少參與投票。
b)壟斷性高,只有持幣的人才能參與區(qū)塊驗(yàn)證。
c)沒(méi)有對(duì)惡意節(jié)點(diǎn)進(jìn)行快速剔除,不僅影響節(jié)點(diǎn)投票結(jié)果,還增加了投票周期,耗費(fèi)資源。
對(duì)于以上問(wèn)題,國(guó)內(nèi)外部分學(xué)者對(duì)DPoS算法進(jìn)行了改進(jìn)。針對(duì)投票積極性不高的問(wèn)題,Yu等人[10]提出獎(jiǎng)勵(lì)制度,討論了激勵(lì)機(jī)制和DPoS共識(shí)機(jī)制之間的適配和優(yōu)化,提出了“舉報(bào)獎(jiǎng)勵(lì)”這一激勵(lì)制度對(duì)節(jié)點(diǎn)進(jìn)行監(jiān)督,但采用獎(jiǎng)勵(lì)的方式提高節(jié)點(diǎn)的參與積極性依舊無(wú)法避免節(jié)點(diǎn)為換取獎(jiǎng)勵(lì)進(jìn)行惡意投票和惡意舉報(bào)的問(wèn)題;張雅萍等人[11]提出一種配對(duì)制度的DPoS共識(shí)機(jī)制(DPoS-M2),擯棄了節(jié)點(diǎn)投票的方式,通過(guò)比較節(jié)點(diǎn)的屬性值快速選出屬性值較高的作為記賬節(jié)點(diǎn)。對(duì)惡意節(jié)點(diǎn)問(wèn)題,Xu等人[12]通過(guò)引入模糊集概念加入棄權(quán)票,降低了惡意節(jié)點(diǎn)被選為代理節(jié)點(diǎn)的概率;何帥等人[13]引入RBF神經(jīng)網(wǎng)絡(luò)模型使選舉出的節(jié)點(diǎn)更加權(quán)威可信,同時(shí)引入信譽(yù)機(jī)制增加惡意節(jié)點(diǎn)攻擊成本;Yang等人[14]提出一種基于降級(jí)機(jī)制(DDPoS),通過(guò)對(duì)惡意節(jié)點(diǎn)降級(jí),對(duì)可靠節(jié)點(diǎn)升級(jí),保障系統(tǒng)良好運(yùn)行。對(duì)于惡意節(jié)點(diǎn)處理問(wèn)題,以上研究只是對(duì)其進(jìn)行了標(biāo)記,導(dǎo)致投票周期加長(zhǎng)、耗費(fèi)資源。
基于上述研究在惡意節(jié)點(diǎn)處理方向所存在的問(wèn)題,本文提出一種基于SVM改進(jìn)的DPoS(SVM-DPoS)共識(shí)機(jī)制。在DPoS共識(shí)機(jī)制中,如果有節(jié)點(diǎn)長(zhǎng)時(shí)間存在惡意行為,則會(huì)對(duì)整個(gè)網(wǎng)絡(luò)的安全性和穩(wěn)定性造成威脅。而傳統(tǒng)的DPoS共識(shí)機(jī)制可能無(wú)法及時(shí)發(fā)現(xiàn)和剔除這些惡意節(jié)點(diǎn)。這時(shí)可以引用SVM模型的分類(lèi)特性對(duì)節(jié)點(diǎn)進(jìn)行分類(lèi)識(shí)別,對(duì)可能的惡意節(jié)點(diǎn)進(jìn)行精準(zhǔn)標(biāo)識(shí)及時(shí)剔除,并且在見(jiàn)證節(jié)點(diǎn)降低到安全閾值以下時(shí),從候選節(jié)點(diǎn)中選擇新的節(jié)點(diǎn)加入驗(yàn)證節(jié)點(diǎn)集合,以保證網(wǎng)絡(luò)的安全性。在此基礎(chǔ)上可以進(jìn)一步收集節(jié)點(diǎn)的行為數(shù)據(jù),包括節(jié)點(diǎn)的投票行為、活躍程度等,用于訓(xùn)練SVM模型。通過(guò)不斷的訓(xùn)練和優(yōu)化,SVM模型的識(shí)別精度將逐步提高,使得惡意節(jié)點(diǎn)的識(shí)別和剔除更為及時(shí)和準(zhǔn)確。同時(shí)通過(guò)對(duì)這些數(shù)據(jù)的分析,還可以發(fā)現(xiàn)惡意節(jié)點(diǎn)的行為模式,從而進(jìn)一步完善和優(yōu)化共識(shí)機(jī)制。
1 基于SVM的DPoS共識(shí)機(jī)制
SVM在分類(lèi)和回歸分析中有著廣泛的應(yīng)用,它可以很好地處理小樣本、非線(xiàn)性以及高維模式識(shí)別中的問(wèn)題,對(duì)于異常檢測(cè)具有較高的準(zhǔn)確率。因此對(duì)于惡意節(jié)點(diǎn)的識(shí)別,SVM模型可以提供精準(zhǔn)且高效的識(shí)別結(jié)果。同時(shí)SVM的支持向量具有很好的解釋性,可以幫助人們理解惡意節(jié)點(diǎn)的行為特征,進(jìn)一步增強(qiáng)DPoS共識(shí)機(jī)制的安全性和穩(wěn)定性,具有極大的應(yīng)用價(jià)值。
1.1 節(jié)點(diǎn)分類(lèi)
區(qū)塊鏈作為一種分布式數(shù)據(jù)庫(kù)技術(shù),其核心特點(diǎn)是去中心化、不可竄改、可追溯和共識(shí)機(jī)制。它通過(guò)使用密碼學(xué)、點(diǎn)對(duì)點(diǎn)網(wǎng)絡(luò)和共識(shí)算法來(lái)維護(hù)網(wǎng)絡(luò)的安全性和可靠性,使得交易在不依賴(lài)中心化機(jī)構(gòu)的情況下得以進(jìn)行,從而具有廣泛的應(yīng)用價(jià)值。因此為了保證信息的安全,在DPoS系統(tǒng)中希望將產(chǎn)生區(qū)塊的權(quán)力交給那些可靠且值得信任的節(jié)點(diǎn),從而提高整個(gè)系統(tǒng)的效率和安全性。因?yàn)楸贿x出來(lái)的這些節(jié)點(diǎn)具備較高的技術(shù)能力和良好的聲譽(yù),所以它們生產(chǎn)和驗(yàn)證區(qū)塊的效率更高,同時(shí)也不太可能做出違背社區(qū)利益的行為,從而提高了系統(tǒng)的安全性。本文將參與共識(shí)的節(jié)點(diǎn)分成四類(lèi),即普通節(jié)點(diǎn)(ordinary nodes)、候選節(jié)點(diǎn)(candidate nodes)、見(jiàn)證節(jié)點(diǎn)(witness node)和作惡節(jié)點(diǎn)(malicious node)。
1.1.1 普通節(jié)點(diǎn)
普通節(jié)點(diǎn)是指沒(méi)有被選為見(jiàn)證節(jié)點(diǎn)的節(jié)點(diǎn),它們的主要作用是參與投票選舉見(jiàn)證節(jié)點(diǎn),并驗(yàn)證交易和傳輸區(qū)塊。普通節(jié)點(diǎn)的參與度和作用在DPoS網(wǎng)絡(luò)中相對(duì)較小,但是它們的投票和交易驗(yàn)證仍然是DPoS系統(tǒng)的重要組成部分,為整個(gè)網(wǎng)絡(luò)提供了基礎(chǔ)性的支持。
1.1.2 候選節(jié)點(diǎn)
候選節(jié)點(diǎn)與普通節(jié)點(diǎn)不同,它們的投票數(shù)和代幣數(shù)量決定了它們被選為見(jiàn)證節(jié)點(diǎn)的機(jī)率。候選節(jié)點(diǎn)通過(guò)得到足夠多的選票和代幣持有量,可以被選為下一輪的見(jiàn)證節(jié)點(diǎn)。候選節(jié)點(diǎn)的數(shù)量通常比見(jiàn)證節(jié)點(diǎn)多,因此它們之間的競(jìng)爭(zhēng)比較激烈。
1.1.3 見(jiàn)證節(jié)點(diǎn)
見(jiàn)證節(jié)點(diǎn)負(fù)責(zé)驗(yàn)證和打包交易,并將區(qū)塊添加到區(qū)塊鏈中以維護(hù)區(qū)塊鏈的安全和穩(wěn)定性。根據(jù)DPoS算法的設(shè)計(jì),一組見(jiàn)證節(jié)點(diǎn)輪流為每個(gè)區(qū)塊鏈生產(chǎn)區(qū)塊,其生產(chǎn)順序由其獲得選票的排名確定。由于見(jiàn)證節(jié)點(diǎn)需要獲得足夠的選票才能成為生產(chǎn)節(jié)點(diǎn),所以DPoS系統(tǒng)通常比其他共識(shí)機(jī)制具有更少的活躍見(jiàn)證節(jié)點(diǎn)。
1.1.4 作惡節(jié)點(diǎn)
作惡節(jié)點(diǎn)是指在網(wǎng)絡(luò)中惡意行為的節(jié)點(diǎn)。這些節(jié)點(diǎn)可能會(huì)試圖對(duì)區(qū)塊鏈進(jìn)行攻擊、竄改交易或者利用其權(quán)力進(jìn)行自私行為等,以達(dá)到其自身利益的目的。這些惡意節(jié)點(diǎn)會(huì)對(duì)整個(gè)系統(tǒng)造成威脅,可能導(dǎo)致區(qū)塊鏈的安全性和穩(wěn)定性受到損害。
1.2 DPoS共識(shí)機(jī)制流程
委托權(quán)益證明(DPoS)共識(shí)算法主要包含兩個(gè)步驟,即共識(shí)節(jié)點(diǎn)的選舉過(guò)程以及節(jié)點(diǎn)間達(dá)成共識(shí)的過(guò)程,改進(jìn)后的整體流程如圖1所示。
委托權(quán)益證明(DPoS)共識(shí)算法的具體流程可以分為以下幾個(gè)步驟:a)初始設(shè)定,在DPoS共識(shí)算法中,需要先確定見(jiàn)證節(jié)點(diǎn)候選人的初始列表,通常持有一定數(shù)量代幣的用戶(hù)可以成為見(jiàn)證節(jié)點(diǎn)候選人;b)見(jiàn)證節(jié)點(diǎn)選舉,所有持幣用戶(hù)可以通過(guò)投票來(lái)選舉見(jiàn)證節(jié)點(diǎn),如圖所示,在共識(shí)開(kāi)始時(shí)每個(gè)持幣用戶(hù)可以將自己的代幣投票給候選人,根據(jù)得票數(shù)排名,得票數(shù)最高的前21位候選人將成為見(jiàn)證節(jié)點(diǎn),這些見(jiàn)證節(jié)點(diǎn)將輪流負(fù)責(zé)出塊和驗(yàn)證交易,輪換的周期可以事先設(shè)定,通常是固定的時(shí)間間隔;c)區(qū)塊生產(chǎn),在輪到某個(gè)見(jiàn)證節(jié)點(diǎn)出塊時(shí),它將負(fù)責(zé)驗(yàn)證交易和打包成一個(gè)新的區(qū)塊,然后該區(qū)塊被廣播到網(wǎng)絡(luò)中,其他節(jié)點(diǎn)進(jìn)行驗(yàn)證和確認(rèn)。
本文提出基于SVM的節(jié)點(diǎn)剔除機(jī)制,在步驟c)出塊過(guò)程中,判斷見(jiàn)證節(jié)點(diǎn)是否作惡,如果存在作惡行為及時(shí)剔除。同時(shí),在見(jiàn)證節(jié)點(diǎn)集合低于11時(shí),從候選人集合中補(bǔ)充。盡最大可能保證每一輪共識(shí)過(guò)程中所有見(jiàn)證節(jié)點(diǎn)都能正常打包區(qū)塊,提高系統(tǒng)的穩(wěn)定性和安全性。
1.3 基于核支持向量機(jī)的惡意節(jié)點(diǎn)剔除機(jī)制
1.3.1 周期輪換
在DPoS系統(tǒng)中,節(jié)點(diǎn)通過(guò)投票,選出一定數(shù)量的區(qū)塊生產(chǎn)者。這些區(qū)塊生產(chǎn)者負(fù)責(zé)驗(yàn)證和添加新區(qū)塊到區(qū)塊鏈中,它們?cè)谔囟ǖ臅r(shí)間周期后被重新選舉。也就是說(shuō),所有的區(qū)塊生產(chǎn)者都會(huì)有一個(gè)固定的任期,并在此期間按照一定的順序生產(chǎn)區(qū)塊。這種周期輪換機(jī)制增加了系統(tǒng)的公平性和透明度,因?yàn)樗沟盟械膮⑴c者有平等的機(jī)會(huì)去生產(chǎn)區(qū)塊并獲得獎(jiǎng)勵(lì)。本文中對(duì)于周期輪換的具體實(shí)現(xiàn)如下所示。
輸入:初始節(jié)點(diǎn)genesis,出塊節(jié)點(diǎn)node_{block}。
輸出:是否重新選舉true,false。
begin
bnode_{block}=get_node(newBlock)
parent_{block}=get_parent(newBlock)
genesIsEpoch=get_Epoch(genesis)
preEopch=get_Epoch(parent_{block})
currentEpoch=get_EpocH(node_{block})
prevEpochIsGenesis=(prevEpoch== genesisEpoch)
if {(prevEpochIsGenesis) && (prevEpoch < currentEpoch)}
prevEpoch=currentEpoch-1
else if !prevEpochIsGenesis
kickoutValidator(prevEpoch,genesis)
votes=true
Return votes
else Return false
end
a)獲取當(dāng)前出塊節(jié)點(diǎn):首先系統(tǒng)需要確定當(dāng)前負(fù)責(zé)生成區(qū)塊的節(jié)點(diǎn)node_{block}。這個(gè)節(jié)點(diǎn)是通過(guò)DPoS共識(shí)算法中的投票機(jī)制選擇出來(lái)的,具有特定的權(quán)責(zé)和任期。
b)獲取出塊節(jié)點(diǎn)的父親節(jié)點(diǎn):在整個(gè)區(qū)塊鏈網(wǎng)絡(luò)中,每個(gè)節(jié)點(diǎn)都與其他節(jié)點(diǎn)相連,形成了一個(gè)復(fù)雜的網(wǎng)絡(luò)結(jié)構(gòu)。父節(jié)點(diǎn)parent_{block}是指在區(qū)塊鏈結(jié)構(gòu)中,與當(dāng)前節(jié)點(diǎn)node_{block}直接相連且位于其上一級(jí)的節(jié)點(diǎn)。
c)獲得創(chuàng)世塊周期時(shí)間:genesis是區(qū)塊鏈中的第一個(gè)區(qū)塊,它沒(méi)有父節(jié)點(diǎn),所有其他區(qū)塊都直接或間接地連接到它。系統(tǒng)會(huì)根據(jù)初始?jí)K的信息來(lái)確定創(chuàng)世塊的周期時(shí)間genesIsEpoch,也就是一個(gè)完整的區(qū)塊產(chǎn)生周期應(yīng)該有多長(zhǎng)時(shí)間。
d)獲取前個(gè)節(jié)點(diǎn)的周期及當(dāng)前周期時(shí)間:系統(tǒng)需要跟蹤每個(gè)周期的時(shí)間,以便于判斷何時(shí)應(yīng)當(dāng)進(jìn)行周期輪換。preEopch是指父節(jié)點(diǎn)生產(chǎn)塊時(shí)所在的周期,而currentEpoch則是指當(dāng)前出塊節(jié)點(diǎn)node_{block}所在的周期。
e)判斷是否進(jìn)行周期輪換:判斷是否進(jìn)行周期輪換依賴(lài)于比較當(dāng)前周期時(shí)間與上一周期時(shí)間,以及確認(rèn)上一周期是否為創(chuàng)世周期。
(a)如果上個(gè)周期preEopch與當(dāng)前出塊周期currentEpoch相同,則正常出塊不需要進(jìn)行周期輪換;
(b)如果preEopch是genesIsEpoch且preEopch小于currentEpoch,那么系統(tǒng)將執(zhí)行周期輪換算法,其中涉及重新選擇出塊節(jié)點(diǎn),修改區(qū)塊生成規(guī)則,以及與周期輪換相關(guān)的操作。如果上周期不是創(chuàng)世周期,調(diào)用kickoutValidator檢測(cè)是否需要剔除惡意節(jié)點(diǎn)。
1.3.2 模型的建立
支持向量機(jī)(support vector machine,SVM)是一種監(jiān)督學(xué)習(xí)算法,被廣泛應(yīng)用于分類(lèi)和回歸分析中。它的基本思想是將數(shù)據(jù)點(diǎn)映射到高維空間中,在該空間中構(gòu)建一個(gè)超平面來(lái)實(shí)現(xiàn)分類(lèi)或回歸分析。在訓(xùn)練過(guò)程中,SVM算法會(huì)嘗試找到一個(gè)最優(yōu)的超平面,使得該平面能夠?qū)⒉煌?lèi)別的數(shù)據(jù)點(diǎn)分離得最好,同時(shí)使得距離超平面最近的數(shù)據(jù)點(diǎn)到超平面的距離最大化。SVM算法具有許多優(yōu)點(diǎn),如泛化能力強(qiáng)、對(duì)噪聲數(shù)據(jù)具有魯棒性等,因此被廣泛應(yīng)用于機(jī)器學(xué)習(xí)和數(shù)據(jù)挖掘領(lǐng)域。隨著大數(shù)據(jù)技術(shù)的不斷發(fā)展,構(gòu)建適用于大規(guī)模數(shù)據(jù)的多分類(lèi)模型已成為數(shù)據(jù)挖掘技術(shù)的研究熱點(diǎn)[15~18]。許多學(xué)者在對(duì) SVM 技術(shù)進(jìn)行深入研究后,提出了多種基于SVM 的多分類(lèi)模型,例如一對(duì)一、一對(duì)多、決策樹(shù)、有向無(wú)環(huán)圖等多種分類(lèi)算法[19~23]。 SVM的主要特點(diǎn)是可以通過(guò)尋找最大間隔來(lái)進(jìn)行分類(lèi),同時(shí)具有較強(qiáng)的泛化能力和處理高維數(shù)據(jù)的能力,能夠有效地解決小樣本、非線(xiàn)性以及高維數(shù)據(jù)等問(wèn)題。其優(yōu)點(diǎn)還包括能夠處理較小規(guī)模的數(shù)據(jù)集、在訓(xùn)練過(guò)程中可以有效避免陷入局部最優(yōu)解、泛化能力強(qiáng)、對(duì)噪聲和數(shù)據(jù)缺失具有較好的容錯(cuò)能力。因此利用SVM算法對(duì)區(qū)塊鏈中見(jiàn)證節(jié)點(diǎn)的行為進(jìn)行預(yù)測(cè)評(píng)估,可以得到精度較高的結(jié)果,為DPoS共識(shí)機(jī)制中惡意節(jié)點(diǎn)的剔除提供了技術(shù)支撐,從而快速有效地剔除惡意節(jié)點(diǎn)。
本文設(shè)計(jì)了一種基于線(xiàn)性核函數(shù)的支持向量機(jī)模型,采用該模型識(shí)別作惡節(jié)點(diǎn)。線(xiàn)性核函數(shù)如下所示。
K(xi,xj)=xTi·xj(1)
其中:xi、xj為輸入向量,函數(shù)最終得到輸入向量的點(diǎn)積。
同時(shí)根據(jù)DPoS共識(shí)機(jī)制的運(yùn)行情況及源碼分析,采用表1中5個(gè)屬性指標(biāo)來(lái)綜合評(píng)判節(jié)點(diǎn)是否作惡,并結(jié)合支持向量機(jī)模型,將每個(gè)節(jié)點(diǎn)在區(qū)塊鏈上對(duì)應(yīng)5個(gè)指標(biāo)的歷史數(shù)據(jù)作為輸入,通過(guò)模型訓(xùn)練確定輸入與輸出的內(nèi)在聯(lián)系,最后將支持向量機(jī)的輸出值作為評(píng)判節(jié)點(diǎn)是否作惡的依據(jù)。節(jié)點(diǎn)相關(guān)評(píng)估指標(biāo)說(shuō)明如表1所示。
1.3.3 模型的求解
在基于SVM模型的訓(xùn)練過(guò)程中需要求解函數(shù),相關(guān)求解步驟如下:
a)樣本集為D={(yi,yi),i=1,2,…,m;yi=(-1,+1)},其中xi代表第i個(gè)輸入樣本,yi代表第i個(gè)輸入樣本對(duì)應(yīng)的類(lèi)別值,m為樣本數(shù)量,劃分超平面為
2 實(shí)驗(yàn)結(jié)果及分析
2.1 實(shí)驗(yàn)環(huán)境
為了驗(yàn)證改進(jìn)后的DPoS共識(shí)機(jī)制能否快速剔除惡意節(jié)點(diǎn)以及算法的有效性,本文在相同的環(huán)境下對(duì)DPoS共識(shí)機(jī)制改進(jìn)前后的安全性和時(shí)間消耗進(jìn)行了對(duì)比分析進(jìn)。本文仿真實(shí)驗(yàn)在處理器Intel CoreTM i5-10400F CPU @ 2.90 GHz 的 64位Windows 11專(zhuān)業(yè)版平臺(tái)上進(jìn)行,首先使用Python 3.6.13構(gòu)建基于SVM的惡意節(jié)點(diǎn)判別模型,使用Go語(yǔ)言go1.9.6模擬DPoS共識(shí)算法進(jìn)行實(shí)驗(yàn)。最后使用Origin 2021對(duì)最終的實(shí)驗(yàn)數(shù)據(jù)進(jìn)行可視化對(duì)比評(píng)價(jià)。
2.2 模型驗(yàn)證
為驗(yàn)證本文方法的有效性,設(shè)計(jì)了相關(guān)實(shí)驗(yàn)。本文采用公開(kāi)的EOS項(xiàng)目歷史交易數(shù)據(jù)集XBlock-EOS[24]對(duì)SVM模型進(jìn)行訓(xùn)練并保存訓(xùn)練好的模型,將訓(xùn)練好的模型轉(zhuǎn)換為Go語(yǔ)言代碼保存。在實(shí)驗(yàn)仿真過(guò)程中,根據(jù)EOS歷史交易數(shù)據(jù)集模擬1 600個(gè)節(jié)點(diǎn),70%數(shù)據(jù)作為訓(xùn)練集,然后對(duì)剩余 30%數(shù)據(jù)測(cè)試。其計(jì)算量少且為二分類(lèi)問(wèn)題,SVM算法的計(jì)算復(fù)雜度和訓(xùn)練集中的樣本數(shù)目成正比,計(jì)算復(fù)雜度低,足以支持分類(lèi)預(yù)測(cè)的運(yùn)行。訓(xùn)練集分類(lèi)準(zhǔn)確率為97.1%,測(cè)試集分類(lèi)準(zhǔn)確率達(dá) 98.5%,并無(wú)過(guò)擬合。見(jiàn)證節(jié)點(diǎn)作惡評(píng)估結(jié)果如表2所示,可以看出,訓(xùn)練好的模型能夠精確地判別出節(jié)點(diǎn)是否有作惡行為。
相對(duì)于傳統(tǒng)的DPoS共識(shí)機(jī)制而言,基于SVM的惡意節(jié)點(diǎn)判別模型可以快速判斷出節(jié)點(diǎn)是否作惡,并對(duì)作惡節(jié)點(diǎn)及時(shí)剔除,極大地減小了共識(shí)節(jié)點(diǎn)中存在惡意節(jié)點(diǎn)的幾率。首先構(gòu)建了一組包含正常節(jié)點(diǎn)和惡意節(jié)點(diǎn)的測(cè)試集,通過(guò)模擬這些節(jié)點(diǎn)的行為,生成對(duì)應(yīng)五個(gè)屬性指標(biāo)的歷史數(shù)據(jù)。然后將這些數(shù)據(jù)輸入到訓(xùn)練好的模型中,得到模型對(duì)于這些節(jié)點(diǎn)是否為惡意節(jié)點(diǎn)的預(yù)測(cè)結(jié)果。在比較模型的預(yù)測(cè)結(jié)果和實(shí)際情況后發(fā)現(xiàn),SVM模型能準(zhǔn)確識(shí)別出絕大部分的惡意節(jié)點(diǎn),同時(shí)幾乎沒(méi)有將正常節(jié)點(diǎn)錯(cuò)誤地識(shí)別為惡意節(jié)點(diǎn),這說(shuō)明本文模型具有很高的準(zhǔn)確率和可靠性。另外也測(cè)試了模型的處理速度,結(jié)果顯示SVM模型能在很短的時(shí)間內(nèi)完成對(duì)所有節(jié)點(diǎn)的評(píng)估,這說(shuō)明模型具有很高的運(yùn)行效率,能夠及時(shí)發(fā)現(xiàn)并處理惡意節(jié)點(diǎn),防止其對(duì)網(wǎng)絡(luò)造成破壞。此外,通過(guò)調(diào)整SVM模型的參數(shù),可以在一定程度上改變模型對(duì)于惡意節(jié)點(diǎn)的判定敏感度,從而在不同的網(wǎng)絡(luò)環(huán)境和要求下,優(yōu)化模型的判斷效果。
綜上,實(shí)驗(yàn)結(jié)果充分證明了基于SVM的惡意節(jié)點(diǎn)判別模型在DPoS共識(shí)機(jī)制中的有效性和優(yōu)越性。模型不僅能快速準(zhǔn)確地判斷出惡意節(jié)點(diǎn),還能根據(jù)網(wǎng)絡(luò)環(huán)境的需要,靈活地調(diào)整判斷策略,從而更好地維護(hù)網(wǎng)絡(luò)的穩(wěn)定性和安全性。
2.3 安全性
在傳統(tǒng)共識(shí)過(guò)程中惡意節(jié)點(diǎn)作惡方式多樣,影響區(qū)塊形成的速度,但算法并沒(méi)有及時(shí)采取任何應(yīng)對(duì)措施,只是對(duì)惡意節(jié)點(diǎn)進(jìn)行了簡(jiǎn)單的標(biāo)記,經(jīng)過(guò)下一輪選舉才能剔除節(jié)點(diǎn),這樣會(huì)給網(wǎng)絡(luò)造成安全隱患。由于沒(méi)有快速剔除惡意節(jié)點(diǎn),惡意節(jié)點(diǎn)可能會(huì)發(fā)動(dòng)攻擊,例如雙花攻擊(double-spending attack)、拒絕服務(wù)攻擊(DoS attack)等,這樣可能會(huì)嚴(yán)重影響區(qū)塊鏈網(wǎng)絡(luò)的安全性。其次如果惡意節(jié)點(diǎn)在區(qū)塊鏈網(wǎng)絡(luò)中占據(jù)主導(dǎo)地位,它們可能會(huì)通過(guò)偽造交易或者修改歷史記錄等方式破壞數(shù)據(jù)的一致性。最后惡意節(jié)點(diǎn)可能會(huì)通過(guò)一些手段,誘導(dǎo)或迫使其他節(jié)點(diǎn)接受它們生成的非法區(qū)塊,從而導(dǎo)致網(wǎng)絡(luò)分裂,形成多個(gè)并行的鏈,導(dǎo)致參與者對(duì)系統(tǒng)的信任破裂,進(jìn)而使得系統(tǒng)的價(jià)值大打折扣。
本實(shí)驗(yàn)主要對(duì)惡意節(jié)點(diǎn)剔除的速度進(jìn)行了測(cè)試對(duì)比分析,在相同網(wǎng)絡(luò)下設(shè)置100個(gè)節(jié)點(diǎn),其中隨機(jī)選取20個(gè)節(jié)點(diǎn)作為惡意節(jié)點(diǎn),其余80個(gè)節(jié)點(diǎn)為普通節(jié)點(diǎn)。普通節(jié)點(diǎn)參與正常的投票和記賬活動(dòng),而惡意節(jié)點(diǎn)無(wú)法按時(shí)生成區(qū)塊,有意破壞共識(shí)過(guò)程。如圖3所示,由于傳統(tǒng)DPoS共識(shí)機(jī)制對(duì)惡意節(jié)點(diǎn)容忍度較大,剔除節(jié)點(diǎn)方式較為保守,所以效果較差。DDPoS使用PoW選擇見(jiàn)證節(jié)點(diǎn),而不是根據(jù)投票選舉,雖然提高了安全性,但是增加了共識(shí)周期時(shí)長(zhǎng),因此也具有一定滯后性。DPoS-M2機(jī)制采用類(lèi)別評(píng)定模塊,較前兩者有所提升。本文采用基于SVM的惡意節(jié)點(diǎn)判別模型,對(duì)存在惡意行為的各類(lèi)節(jié)點(diǎn)及時(shí)懲罰,若見(jiàn)證節(jié)點(diǎn)被發(fā)現(xiàn)存在惡意行為,則將該節(jié)點(diǎn)踢出見(jiàn)證節(jié)點(diǎn)集合,相較于傳統(tǒng)DPoS、DDPoS及DPoS-M2均有所提升。在110 min時(shí)相較于DDPoS和DPoS-M2,分別提升了25%和20%左右,進(jìn)一步確保系統(tǒng)的安全性和穩(wěn)定運(yùn)行。
2.4 時(shí)間消耗
為了對(duì)比四種共識(shí)機(jī)制的時(shí)間消耗,本次實(shí)驗(yàn)設(shè)計(jì)在同一網(wǎng)絡(luò)環(huán)境下運(yùn)行24個(gè)模擬節(jié)點(diǎn),其中絕大部分,即21個(gè)節(jié)點(diǎn)扮演的是見(jiàn)證節(jié)點(diǎn)角色,而余下的3個(gè)節(jié)點(diǎn)則作為候選節(jié)點(diǎn)維持共識(shí)過(guò)程安全進(jìn)行,每產(chǎn)生50個(gè)塊記錄一次數(shù)據(jù)。結(jié)果如圖4所示,隨著區(qū)塊個(gè)數(shù)從0到2000的增長(zhǎng),使用SVM-DPoS共識(shí)算法比傳統(tǒng)DPoS共識(shí)算法在降低出塊時(shí)間方面的優(yōu)勢(shì)更加突出。這因?yàn)閭鹘y(tǒng)DPoS共識(shí)算法在選出節(jié)點(diǎn)后,見(jiàn)證節(jié)點(diǎn)之間的先后通信方式?jīng)]有明確的規(guī)定,采用隨機(jī)的見(jiàn)證出塊順序,出塊速度大致為3 s左右;DDPoS在節(jié)點(diǎn)選取階段使用PoW消耗大量計(jì)算資源,使得出塊交易確認(rèn)時(shí)間較長(zhǎng),出塊速度在8 s左右;DPoS-M2機(jī)制擯棄了節(jié)點(diǎn)投票而采用對(duì)屬性值進(jìn)行計(jì)算選取記賬節(jié)點(diǎn),出塊時(shí)間在4 s左右;本文將原先的隨機(jī)出塊順序改為由見(jiàn)證商議后確定的出塊順序,共識(shí)算法選取委托人后互相協(xié)商出一個(gè)出塊的順序,見(jiàn)證出塊時(shí)進(jìn)行全網(wǎng)廣播,其他見(jiàn)證收到新區(qū)塊后立即對(duì)此區(qū)塊進(jìn)行驗(yàn)證,無(wú)須等待其他見(jiàn)證自己出塊時(shí)再確認(rèn),降低了隨機(jī)選取委托人節(jié)點(diǎn)之間不必要的通信消耗,加快了區(qū)塊形成的速度。
最后對(duì)時(shí)間效率進(jìn)行分析。本次實(shí)驗(yàn)設(shè)計(jì)在同一網(wǎng)絡(luò)環(huán)境下運(yùn)行24個(gè)模擬節(jié)點(diǎn),其中絕大部分,即21個(gè)節(jié)點(diǎn)扮演的是見(jiàn)證節(jié)點(diǎn)角色,而余下的3個(gè)節(jié)點(diǎn)則作為候選節(jié)點(diǎn),其存在的主要目的是為了維護(hù)共識(shí)的安全性。進(jìn)行50輪的共識(shí)實(shí)驗(yàn),并同時(shí)比較了四種共識(shí)機(jī)制在此過(guò)程中所消耗的時(shí)間。具體的實(shí)驗(yàn)結(jié)果如圖5所示。觀(guān)察實(shí)驗(yàn)數(shù)據(jù)可以發(fā)現(xiàn)一個(gè)明顯的趨勢(shì),那就是隨著模擬周期的增長(zhǎng),四種共識(shí)機(jī)制消耗的時(shí)間都呈現(xiàn)出線(xiàn)性增長(zhǎng)的態(tài)勢(shì)。在相同的實(shí)驗(yàn)條件下,隨著共識(shí)次數(shù)的增加,SVM-DPoS共識(shí)機(jī)制所耗費(fèi)的時(shí)間相對(duì)其他三種機(jī)制來(lái)說(shuō)更少。即相比其他三種共識(shí)機(jī)制,時(shí)間消耗的優(yōu)勢(shì)更加明顯。這種優(yōu)勢(shì)主要體現(xiàn)在兩個(gè)方面:一是可以大幅度降低因節(jié)點(diǎn)惡意行為導(dǎo)致的網(wǎng)絡(luò)阻塞問(wèn)題,二是每個(gè)周期見(jiàn)證節(jié)點(diǎn)出塊順序固定且隨機(jī)產(chǎn)生,降低了時(shí)間開(kāi)銷(xiāo)。
3 結(jié)束語(yǔ)
在區(qū)塊鏈公鏈共識(shí)算法中,相較于PoW,DPoS在共識(shí)過(guò)程中減少了能源的浪費(fèi),通過(guò)代表節(jié)點(diǎn)的選舉和輪流出塊的方式,極大地提高了系統(tǒng)的能效。這為區(qū)塊鏈網(wǎng)絡(luò)的可持續(xù)性發(fā)展提供了有力支持。其次與PoS相比,DPoS通過(guò)選舉產(chǎn)生代表節(jié)點(diǎn),有效地避免了寡頭壟斷的問(wèn)題,使得共識(shí)過(guò)程更為去中心化和民主化。這有助于防止權(quán)力過(guò)于集中,維護(hù)了整個(gè)網(wǎng)絡(luò)的去中心化特性。雖然DPoS共識(shí)算法相對(duì)于PoW和PoS有了一定提升,但其安全性始終備受爭(zhēng)議?;诖耍疚膹囊?jiàn)證節(jié)點(diǎn)的作惡剔除方面進(jìn)行改進(jìn)和優(yōu)化。將支持向量機(jī)運(yùn)用到區(qū)塊鏈節(jié)點(diǎn)的共識(shí)過(guò)程中,利用構(gòu)建SVM分類(lèi)器實(shí)現(xiàn)對(duì)惡意節(jié)點(diǎn)的精確標(biāo)記,快速有效地剔除了惡意節(jié)點(diǎn),在保持原有性能的前提下,提高了共識(shí)節(jié)點(diǎn)的可信度及DPoS共識(shí)機(jī)制的安全性。但目前的研究還存在一些局限性和不足之處,需要繼續(xù)在實(shí)踐中不斷完善和改進(jìn),從而構(gòu)建安全、高效和可擴(kuò)展的區(qū)塊鏈系統(tǒng)。
參考文獻(xiàn):
[1]Chandra T D,Griesemer R,Redstone J. Paxos made live: an engineering perspective [C]// Proc of the 26th Annual ACM Symposium on Principles of Distributed Computing. New York:ACM Press,2007: 398-407.
[2]Ongaro D,Ousterhout J. In search of an P1HP2s2LLH/LsI7l+uwTU+T95NtJ+Aqcz0CyK1phtso=understandable consensus algorithm [C]// Proc of USENIX Annual Technical Conference. 2014: 305-319.
[3]Nakamoto S. Bitcoin: a peer-to-peer electronic cash system [R/OL]. (2008-10-31) [2020-09-12]. https://www. debr. io/article/21260-bitcoin-a-peer-to-peer-electronic-cash-system.
[4]鄧小鴻,王智強(qiáng),李娟,等. 主流區(qū)塊鏈共識(shí)算法對(duì)比研究 [J]. 計(jì)算機(jī)應(yīng)用研究,2022,39(1): 1-8. (Deng Xiaohong,Wang Zhiqiang,Li Juan,et al. Comparative research on mainstream blockchain consensus algorithms [J]. Application Research of Computers,2022,39(1): 1-8.)
[5]BitFury G. Proof of stake versus proof-of-work [EB/OL]. (2015-09-13). https://www. docin. com/p-1967383132. html.
[6]King S,Nadal S. PPCoin: peer-to-peer crypto-currency with proof-of-stake [EB/OL].(2012). https://www.researchgate.net/publication/265116876_PPCoin_Peer-to-Peer_Crypto-Currency_with_Proof-of-Stake.
[7]Larimer D. Delegated proof-of-stake (DPoS) [EB/OL]. (2014-04-03). https://how.bitshares.works/en/master/technology/dpos.html.
[8]Xu Jie,Wang Cong,Jia Xiaohua. A survey of blockchain consensus protocols [J]. ACM Computing Surveys,2023,55(13S): 1-35.
[9]Deepa N,Pham Q V,Nguyen D C,et al. A survey on blockchain for big data: Approaches,opportunities,and future directions [J]. Future Generation Computer Systems,2022,131: 209-226.
[10]Yu Bin,Li Xiaofeng,Zhao He,et al. A scalable blockchain network model with transmission paths and neighbor node subareas [J]. Computing,2022,104(10): 2253-2277.
[11]張雅萍,任秀麗. 基于配對(duì)制度的DPoS共識(shí)機(jī)制 [J]. 計(jì)算機(jī)應(yīng)用研究,2021,38(10): 2909-2914. (Zhang Yaping,Ren Xiuli. DPoS consensus mechanism based on matching mechanism [J]. Application Research of Computers,2021,38(10): 2909-2914.)
[12]Xu Guangxia,Liu Yong,Khan P W. Improvement of the DPoS consensus mechanism in blockchain based on vague sets [J]. IEEE Trans on Industrial Informatics,2019,16(6): 4252-4259.
[13]何帥,黃襄念,劉謙博,等. DPoS區(qū)塊鏈共識(shí)機(jī)制的改進(jìn)研究 [J]. 計(jì)算機(jī)應(yīng)用研究,2021,38(12): 3551-3557. (He Shuai,Huang Xiangnian,Liu Qianbo,et al. Research on improvement of DPoS blockchain consensus mechanism [J]. Application Research of Computers,2021,38(12): 3551-3557.)
[14]Yang Fan,Zhou Wei,Wu Qingqing,et al. Delegated proof of stake with downgrade: a secure and efficient blockchain consensus algorithm with downgrade mechanism [J]. IEEE Access,2019,7: 118541-118555.
[15]Sabokrou M,F(xiàn)athy M,Zhao Guoying,et al. Deep end-to-end one-class classifier [J]. IEEE Trans on Neural Networks and Learning Systems,2021,32(2): 675-684.
[16]Yu Zhi,Shi Xiuzhi,Zhou Jian,et al. A new multikernel relevance vector machine based on the HPSOGWO algorithm for predicting and controlling blast-induced ground vibration [J]. Engineering with Computers,2022,38: 1905-1920.
[17]Chen Kui,Badji A,Laghrouche S,et al. Polymer electrolyte membrane fuel cells degradation prediction using multi-kernel relevance vector regression and whale optimization algorithm [J]. Applied Energy,2022,318: 119099.
[18]Prabhavathy T,Elumalai V K,Balaji E. Hand gesture classification framework leveraging the entropy features from sEMG signals and VMD augmented multi-class SVM [J]. Expert Systems with Applications,2024,238: 121972.
[19]Vos K,Peng Z,Jenkins C,et al. Vibration-based anomaly detection using LSTM/SVM approaches [J]. Mechanical Systems and Signal Processing,2022,169: 108752.
[20]Zhou Junbo,Xiao Maohua,Niu Yue,et al. Rolling bearing fault diagnosis based on WGWOA-VMD-SVM [J]. Sensors,2022,22(16): 6281.
[21]戴小路,汪廷華,胡振威. 模糊多核支持向量機(jī)研究進(jìn)展 [J]. 計(jì)算機(jī)應(yīng)用研究,2021,38(10): 2896-2903. (Dai Xiaolu,Wang Tinghua,Hu Zhenwei. Research progress of fuzzy multiple kernel support vector machine [J]. Application Research of Computers,2021,38(10): 2896-2903.)
[22]肖開(kāi)研,廉潔. 基于多核支持向量機(jī)的句子分類(lèi)算法 [J]. 華東師范大學(xué)學(xué)報(bào): 自然科學(xué)版,2023 (6): 85-94. (Xiao Kaiyan,Lian Jie. Sentence classification algorithm based on multi-kernel support vector machine [J]. Journal of East China Normal University: Natural Science,2023 (6): 85-94.)
[23]Wang Yu,Zhang Mingkai,Tang Xiaowei,et al. A kMap optimized VMD-SVM model for milling chatter detection with an industrial robot [J]. Journal of Intelligent Manufacturing,2022,33: 1483-1502.
[24]Zheng Weilin,Zheng Zibin,Dai H N,et al. XBlock-EOS: extracting and exploring blockchain data from EOSIO [J]. Information Processing & Management,2021,58(3): 102477.
收稿日期:2024-01-08;修回日期:2024-03-22 基金項(xiàng)目:國(guó)家自然科學(xué)基金資助項(xiàng)目(62162067,82360280);云南省軟件工程重點(diǎn)實(shí)驗(yàn)室開(kāi)放基金資助項(xiàng)目(2020SE310);跨境網(wǎng)絡(luò)空間安全教育部工程研究中心開(kāi)放基金資助項(xiàng)目(KJAQ202112013)
作者簡(jiǎn)介:何婧(1978—),女,云南紅河人,副教授,碩導(dǎo),博士,主要研究方向?yàn)榇髷?shù)據(jù)分析、數(shù)據(jù)挖掘、區(qū)塊鏈;豆天晨(1998—),男,陜西咸陽(yáng)人,碩士研究生,主要研究方向?yàn)閰^(qū)塊鏈共識(shí)算法;陳琳(1998—),女,云南曲靖人,碩士研究生,主要研究方向?yàn)榫W(wǎng)絡(luò)表示學(xué)習(xí);董云云(1989—),女(通信作者),云南保山人,講師,博士,主要研究方向?yàn)閳D像隱寫(xiě)、區(qū)塊鏈(dongyy929@ynu.edu.cn).