付曉東,漆鑫鑫,劉驪,彭瑋,丁家滿,代飛
(1.昆明理工大學(xué)信息工程與自動化學(xué)院,云南 昆明 650500;2.昆明理工大學(xué)云南省計算機(jī)應(yīng)用技術(shù)重點實驗室,云南 昆明 650500;3.西南林業(yè)大學(xué)大數(shù)據(jù)與智能工程學(xué)院,云南 昆明 650224)
2008 年,中本聰提出一種P2P 形式的加密貨幣——比特幣[1]。比特幣出現(xiàn)之后,其底層區(qū)塊鏈技術(shù)便迅速引起了學(xué)術(shù)界與各個行業(yè)的關(guān)注。區(qū)塊鏈技術(shù)因具有去中心化、難以篡改、集體維護(hù)等特點廣泛應(yīng)用于金融、物聯(lián)網(wǎng)、交通等領(lǐng)域[2-3]。共識機(jī)制[4]作為區(qū)塊鏈的重要組成部分,其性能的好壞直接影響區(qū)塊鏈系統(tǒng)的安全性、事務(wù)處理能力以及可擴(kuò)展性。然而,由于區(qū)塊鏈技術(shù)結(jié)構(gòu)的復(fù)雜性以及缺乏安全管控,針對區(qū)塊鏈系統(tǒng)共識機(jī)制層面的攻擊也在逐年增加[5-6]。
區(qū)塊鏈中常見的共識機(jī)制有工作量證明(PoW,proof of work)[7]、權(quán)益證明(PoS,proof of stake)[8-9]和委托權(quán)益證明(DPoS,delegate proof of stake)[10]等。比特幣采用PoW 的共識機(jī)制,通過節(jié)點“挖礦”來競爭記賬權(quán)。雖然PoW 算法簡單且容易實現(xiàn),但是它在通過“挖礦”達(dá)成共識的過程中需要消耗大量計算資源[11]。為了解決PoW 資源浪費(fèi)的問題,PoS 被提出[9]。由于PoS 在一定程度上縮短了達(dá)成共識的時間,而且不再需要消耗大量資源,因此PoS 一經(jīng)提出就引起廣泛關(guān)注。雖然PoS 可避免資源浪費(fèi),但是達(dá)成共識的過程容易產(chǎn)生壟斷,并面臨幣齡累計攻擊[12]、51%攻擊[13-14]以及無利害攻擊[15]等各種不同攻擊的風(fēng)險。為了解決PoS 中參與驗證與記賬的節(jié)點數(shù)量過多的問題,DPoS 被提出,共識時間進(jìn)一步縮短,被以太坊[16]、EOSIO[17]等平臺作為共識機(jī)制。然而,與PoS 類似,DPoS依然存在易被攻擊的問題。
DPoS 作為PoS 共識機(jī)制的衍生體,其核心在于擁有權(quán)益的節(jié)點通過投票選出k個委托節(jié)點,每輪選舉結(jié)束就由這k個節(jié)點輪流生成區(qū)塊,DPoS共識機(jī)制模型如圖1 所示。由于DPoS 節(jié)點的投票權(quán)重不同,該投票過程本質(zhì)上是加權(quán)投票,與PoS相比,DPoS 減少了共識時間以及資源的消耗。雖然DPoS 對PoW 和PoS 存在的問題進(jìn)行了改進(jìn),但DPoS 在投票過程中可能存在惡意節(jié)點與其他節(jié)點串通并選擇傀儡委托節(jié)點的共謀行為,這種行為也被稱為共謀攻擊[18]。共謀攻擊使惡意節(jié)點可操縱選舉,被操縱選舉出的委托節(jié)點會進(jìn)一步影響共識結(jié)果,降低DPoS 區(qū)塊鏈系統(tǒng)的安全性??紤]到目前的研究沒有解決DPoS 共識機(jī)制遭受共謀攻擊的問題,本文提出了一種基于權(quán)力指數(shù)(PI,power index)的DPoS 共謀攻擊檢測與預(yù)防方法來解決上述問題。本文主要貢獻(xiàn)如下。
圖1 DPoS 共識機(jī)制模型
1) 針對DPoS 中共謀攻擊的特點,建立加權(quán)投票博弈模型并借鑒博弈理論[19]中的權(quán)力指數(shù)[20],分析共謀攻擊存在的可能性以及惡意節(jié)點發(fā)起共謀的行為動機(jī)。通過計算各個節(jié)點在投票過程中的權(quán)力指數(shù)值,得到每個節(jié)點對選舉結(jié)果影響程度的大小。
2) 對DPoS 中共謀攻擊進(jìn)行檢測與預(yù)防。由于惡意節(jié)點在加權(quán)投票博弈過程中權(quán)力指數(shù)可能出現(xiàn)異常,可以根據(jù)權(quán)力指數(shù)變化幅度判別投票節(jié)點的加權(quán)投票博弈中是否存在共謀攻擊。為了對DPoS 中共謀攻擊進(jìn)行預(yù)防,本文通過Softsign 激活函數(shù)抑制惡意節(jié)點的權(quán)力指數(shù),同時抑制惡意節(jié)點的行為動機(jī)。
3) 對權(quán)力指數(shù)的單調(diào)性以及Softsign函數(shù)的飽和性進(jìn)行理論證明,驗證了DPoS 存在共謀攻擊以及攻擊預(yù)防方法的合理性。實驗驗證了DPoS 中共謀攻擊存在的合理性,以及DPoS 共謀攻擊檢測與預(yù)防方法的有效性與優(yōu)越性。
近年來,為了提高區(qū)塊鏈共識層面的安全性,國內(nèi)外學(xué)者展開了一系列的研究。針對非DPoS 區(qū)塊鏈系統(tǒng)的研究中,Yang 等[21]提出了一種將礦工歷史加權(quán)信息與計算難度相結(jié)合的方案,以緩解PoW中 51%攻擊。為了減輕 PoS 中的遠(yuǎn)程攻擊,AlMallohi 等[22]提出了一種在區(qū)塊鏈技術(shù)中實施檢查點的方法。本文將提高DPoS 區(qū)塊鏈系統(tǒng)安全性的相關(guān)研究分為理論與策略分析和共識機(jī)制的改進(jìn)研究2 個層面。
為了對DPoS 的安全問題進(jìn)行理論與策略分析,Wang 等[23]提出了一種DPoS 的博弈分析方法。該方法通過構(gòu)建擴(kuò)展的DPoS 博弈樹,理論上可以有效地分析是否存在惡意攻擊。田國華等[24]根據(jù)區(qū)塊鏈層次結(jié)構(gòu)對現(xiàn)有的區(qū)塊鏈攻擊進(jìn)行分類,并針對已知的區(qū)塊鏈系統(tǒng)設(shè)計了各種攻擊和防御手段。魏松杰等[25]以比特幣與以太坊為例,對區(qū)塊鏈系統(tǒng)的安全威脅進(jìn)行分類和總結(jié)。
針對DPoS中投票選舉的中心化問題,Luo等[26]提出了一種DPoS 共識機(jī)制選舉算法,該算法改進(jìn)了基于環(huán)的協(xié)調(diào)器選舉算法,不僅降低了交易成本,而且達(dá)到了杜絕壟斷和去中心化的效果。Yao等[27]在DPoS 委托節(jié)點的選擇階段通過節(jié)點分組實現(xiàn)了組間隔離,提高了選擇過程中委托節(jié)點的公平性;此外,該研究利用魚群算法提高了區(qū)塊鏈網(wǎng)絡(luò)的安全性能和容錯率。為了提高DPoS 節(jié)點投票的積極性,Wang 等[28]提出一種基于聚類算法的激勵機(jī)制,由于傳統(tǒng)的聚類算法存在需要預(yù)測聚類數(shù)量、無法處理異常值等問題,該研究還提出一種Hegselmann-Krause 意見動力學(xué)聚類算法來滿足獎勵分配機(jī)制的需求。
通過對目前的DPoS 共識機(jī)制的安全研究進(jìn)行分析可以看到,一方面,現(xiàn)有研究主要以理論分析為主對DPoS 面臨的各種惡意攻擊進(jìn)行梳理,總結(jié)出DPoS 共識機(jī)制遭受的各種攻擊的基本原理,提出一些建議與防御措施,但這種理論分析缺乏具體的實驗加以驗證。另一方面,現(xiàn)有研究主要利用特殊方法與技術(shù)對DPoS 進(jìn)行改進(jìn),激勵節(jié)點的投票積極性以及隔絕惡意節(jié)點的攻擊行為。然而,DPoS 共識機(jī)制的關(guān)鍵在于如何保證委托節(jié)點選舉的安全性。一旦委托節(jié)點的選舉過程被操縱,DPoS 共識機(jī)制的安全性與一致性也就無法保證。雖然部分文獻(xiàn)提出了新的選舉算法,但未驗證針對DPoS 的共謀攻擊進(jìn)行檢測與預(yù)防的有效性。而且,以上研究都沒有對DPoS 的共謀攻擊行為進(jìn)行分析??紤]到博弈中的個體理性,應(yīng)通過建立分析模型并找到惡意節(jié)點的行為動機(jī)解決DPoS 中面臨共謀攻擊的問題。針對上述研究中沒有考慮到的問題以及不足,本文提出了一種基于權(quán)力指數(shù)的DPoS 共謀攻擊檢測與預(yù)防方法,通過建立加權(quán)投票博弈模型對惡意節(jié)點的行為動機(jī)進(jìn)行分析。同時,根據(jù)分析結(jié)果對DPoS中的共謀攻擊進(jìn)行檢測與預(yù)防,最終提高DPoS 區(qū)塊鏈的安全性。
權(quán)力指數(shù)是加權(quán)投票博弈中衡量個體影響博弈結(jié)果能力的指標(biāo)。目前,Shapley-Shubik[29-30]和Banzhaf[29,31]權(quán)力指數(shù)是加權(quán)投票博弈較常見的2 個權(quán)力指數(shù)。Shapley-Shubik 權(quán)力指數(shù)的核心是將沙普利值應(yīng)用于投票領(lǐng)域,其主要思想是計算某一特定個體對任意聯(lián)盟的價值的期望貢獻(xiàn)。Banzhaf 權(quán)力指數(shù)是在所有聯(lián)盟出現(xiàn)概率相同的情形下,計算某一特定個體對任何聯(lián)盟的平均邊際貢獻(xiàn)。權(quán)力指數(shù)的值越大,特定個體影響投票結(jié)果的能力就越大。
考慮到DPoS 委托節(jié)點的選舉就是通過加權(quán)投票得到的,本文將Shapley-Shubik 與Banzhaf權(quán)力指數(shù)作為DPoS 投票節(jié)點在加權(quán)投票博弈中影響委托節(jié)點選舉結(jié)果能力的指標(biāo)。由于DPoS中的共謀攻擊就是惡意節(jié)點串通其他節(jié)點合并成串通同盟的過程,且在存在惡意節(jié)點的博弈中,惡意節(jié)點會從自身成本角度出發(fā),逐步從小權(quán)重節(jié)點開始共謀。串通同盟形成過程將導(dǎo)致在同一加權(quán)投票博弈中的最小權(quán)重且不參與共謀的節(jié)點的權(quán)力指數(shù)變化與不存在惡意節(jié)點的博弈中最小權(quán)重且不參與共謀的節(jié)點的權(quán)力指數(shù)變化不同。因此,可根據(jù)異常的權(quán)力指數(shù)變化對DPoS 加權(quán)投票中的共謀攻擊進(jìn)行檢測。此外,為了預(yù)防DPoS 中的共謀攻擊,本文使用Softsign 激活函數(shù)在檢測過程中對惡意節(jié)點的共謀攻擊行為進(jìn)行懲罰。為更清晰地闡述本文方法,表1 展示了本文方法涉及的符號及其含義。
表1 符號及其含義
假設(shè)DPoS 在投票過程中有n個投票節(jié)點N={nd1,nd2,…,ndn},投票節(jié)點根據(jù)幣齡通過最小值化公式進(jìn)行等比縮小,當(dāng)縮小到最小投票節(jié)點的幣齡為正整數(shù)1 時,再全部取整轉(zhuǎn)成權(quán)重集合W={w1,w2,…,wn}進(jìn)行加權(quán)投票。加權(quán)投票博弈是投票領(lǐng)域的一種聯(lián)盟博弈[32]形式,所以,DPoS 中的加權(quán)投票博弈可以看成一個簡單的聯(lián)盟博弈的擴(kuò)展。定義四元組(N,W,q,v)為DPoS 的一個加權(quán)投票博弈,其中價值函數(shù)v具體描述為當(dāng)聯(lián)盟S的權(quán)重達(dá)到或者超過閾值q時,聯(lián)盟S獲勝,即
由于Shapley-Shubik 權(quán)力指數(shù)反映的是投票個體在包含其聯(lián)盟中的平均力量,僅反映了個體對聯(lián)盟的影響。而Banzhaf 權(quán)力指數(shù)只從聯(lián)盟的角度考慮,投票個體的“權(quán)力”是其作為獲勝聯(lián)盟中關(guān)鍵加入者的個數(shù)。總而言之,雖然2 個權(quán)力指數(shù)都能反映投票個體在群體決策中的實際權(quán)力,但其中任何一個權(quán)力指數(shù)都無法從多個角度完整反映出個體對投票結(jié)果的實際影響能力值。為了能更好地分析DPoS 共謀攻擊中各個投票節(jié)點在多個角度下實際權(quán)力的變化,本文結(jié)合Shapley-Shubik 與Banzhaf權(quán)力指數(shù)對DPoS 共謀攻擊進(jìn)行檢測和防范。
一個加權(quán)投票博弈只能討論和分析DPoS 在投票過程中選出一位委托節(jié)點的情況下是否存在共謀攻擊。然而,DPoS 在加權(quán)投票階段會選擇k個委托節(jié)點。因此,本文在k個加權(quán)投票博弈下對DPoS 共謀攻擊進(jìn)行分析與檢測。
在加權(quán)投票博弈中,惡意節(jié)點為了形成新的惡意節(jié)點會串通投票過程中權(quán)重較小的節(jié)點,導(dǎo)致攻擊發(fā)起后最小權(quán)重且不參與共謀的節(jié)點發(fā)生改變。根據(jù)分析過程中的多次模擬,可以計算DPoS 惡意節(jié)點在共謀攻擊發(fā)起前后的最小權(quán)重且不參與共謀的節(jié)點的權(quán)力指數(shù)的變化幅度,進(jìn)而得到DPoS在k個加權(quán)投票博弈中檢測存在共謀攻擊的范圍。如果一個加權(quán)投票博弈的變化幅度在設(shè)置的范圍內(nèi),則認(rèn)定加權(quán)投票博弈中存在惡意節(jié)點的共謀攻擊。為了對檢測效果進(jìn)行具體評估,本文共謀攻擊檢測的對比實驗將在相同條件下通過皮爾遜相關(guān)系數(shù)比較不同方法得到測試值。
為了對k個加權(quán)投票博弈分區(qū)中存在的共謀攻擊進(jìn)行統(tǒng)計,設(shè)Ml與Mh分別是存在惡意節(jié)點的加權(quán)投票博弈中最小權(quán)重且不參與共謀的節(jié)點的權(quán)力指數(shù)最小值與最大值的變化幅度,Dk(Mk)為第k個加權(quán)投票博弈中是否存在共謀攻擊的結(jié)果。如果存在,結(jié)果為1,否則為0,即
同時,設(shè)定m維向量D=(D1,D2,…,Dm),其中Dm為k個加權(quán)投票博弈中存在DPoS 共謀攻擊的加權(quán)投票博弈分區(qū)數(shù)量,即
基于權(quán)力指數(shù)對DPoS 共謀攻擊進(jìn)行檢測的最終目的是對面臨的攻擊進(jìn)行預(yù)防。為了抑制惡意節(jié)點在形成惡意攻擊同盟過程中權(quán)力指數(shù)的增加,本文采用Softsign 激活函數(shù)作為惡意節(jié)點的抑制函數(shù)。激活函數(shù)常用于神經(jīng)網(wǎng)絡(luò)[33]中神經(jīng)元輸入端映射到輸出端的函數(shù),可分為飽和的激活函數(shù)與非飽和的激活函數(shù)。其中,飽和的激活函數(shù)是指隨著輸入值x的不斷增加,輸出值y逐漸不再變化。目前,較常見的飽和的激活函數(shù)有Softsign、Sigmoid 和Tanh 等。由于Softsign 激活函數(shù)的飽和性質(zhì)可以降低惡意節(jié)點通過串通其他節(jié)點以大幅增長其權(quán)力指數(shù)的可能性,以及該激活函數(shù)的抑制效果相比Sigmoid 和Tanh 更加顯著,因此本文選擇在檢測DPoS 共謀攻擊的階段加入Softsign 激活函數(shù)對惡意節(jié)點的同盟進(jìn)行抑制,即在共謀攻擊發(fā)起過程中,如果惡意節(jié)點在檢測的時候被識別,其同盟不斷增加的權(quán)重通過Softsign 激活函數(shù)進(jìn)行飽和計算,使惡意節(jié)點串通同盟的權(quán)重趨于定值,最終其權(quán)力指數(shù)也將被抑制,惡意節(jié)點無法操縱選舉結(jié)果會使其行為動機(jī)被削弱,最終對DPoS 共謀攻擊達(dá)到預(yù)防的效果。假設(shè)wc為惡意節(jié)點串通同盟C?N的權(quán)重,定義Softsign 激活函數(shù)為
本節(jié)通過權(quán)力指數(shù)的合并單調(diào)性[29,34]對DPoS共謀攻擊的存在合理性進(jìn)行證明;同時,通過Softsign 激活函數(shù)的飽和性對預(yù)防DPoS 共謀攻擊的有效性進(jìn)行證明。
性質(zhì)1Shapley-Shubik 權(quán)力指數(shù)的單調(diào)性。當(dāng)q不變時,給定一個 DPoS 的加權(quán)投票博弈(N,W,q,v),節(jié)點i,j∈S′以及聯(lián)盟S′?N,有
證明詳見附錄1。
性質(zhì)2Banzhaf 權(quán)力指數(shù)的單調(diào)性。當(dāng)q不變時,給定一個DPoS 的加權(quán)投票博弈(N,W,q,v),節(jié)點i,j∈S′以及聯(lián)盟S′?N,有
證明詳見附錄1。
根據(jù)性質(zhì)1 與性質(zhì)2,DPoS 中惡意節(jié)點發(fā)起共謀攻擊的動機(jī)在于利用權(quán)力指數(shù)的合并單調(diào)性提升自身對選舉結(jié)果的影響力,最終達(dá)到操縱選舉的目的。換句話說,DPoS 共謀攻擊的存在是合理的。同時,權(quán)力指數(shù)的合并單調(diào)性使在DPoS惡意節(jié)點發(fā)起共謀攻擊的過程中可以找到異常權(quán)力指數(shù)變化值,從而通過異常變化值可檢測DPoS中的共謀攻擊。
性質(zhì)3Softsign 激活函數(shù)的飽和性。
證明詳見附錄1。
根據(jù)性質(zhì)3,在惡意節(jié)點串通同盟的權(quán)重不斷增加的過程中,由于Softsign 激活函數(shù)的飽和性,惡意節(jié)點串通同盟的權(quán)重最后趨于不再變化的值,從而使其權(quán)力指數(shù)不再增加。
總而言之,本文通過理論證明權(quán)力指數(shù)的合并單調(diào)性,直觀地分析出惡意節(jié)點發(fā)起DPoS 共謀攻擊的動機(jī),即惡意節(jié)點可通過共謀攻擊提高權(quán)力指數(shù)來操縱投票選舉。同時,計算出存在共謀攻擊博弈與不存在共謀攻擊博弈中權(quán)力指數(shù)的不同變化幅度值,最終通過存在共謀攻擊的博弈的異常權(quán)力指數(shù)變化幅度,有效檢測出DPoS中的共謀攻擊。最后,基于Softsign 激活函數(shù)的飽和性,在DPoS 遭受共謀攻擊的過程中抑制惡意節(jié)點串通同盟的權(quán)力指數(shù),以起到預(yù)防該攻擊的效果。
為驗證本文基于PI 的DPoS 共謀攻擊檢測與預(yù)防方法的有效性,設(shè)計了相關(guān)實驗。實驗環(huán)境為Windows10 操作系統(tǒng)、Core i7-11700k 處理器、16 GB內(nèi)存,開發(fā)環(huán)境為PyCharm 2021,編程語言為python 3。
由于隨機(jī)模擬節(jié)點權(quán)重等相關(guān)數(shù)據(jù)進(jìn)行實驗不能保證實驗結(jié)果的真實性,本文采用公開的X-block 數(shù)據(jù)集[35-36]。該數(shù)據(jù)集包含被標(biāo)記的以太坊節(jié)點的隱私數(shù)據(jù)以及節(jié)點間的交易數(shù)據(jù)。被標(biāo)記的以太坊節(jié)點的隱私數(shù)據(jù)有2 880 個節(jié)點,節(jié)點的隱私數(shù)據(jù)包含物理地址、錢包余額等敏感信息。而節(jié)點間的交易數(shù)據(jù)包含幾十萬條以太坊節(jié)點間的歷史交易數(shù)據(jù)。
根據(jù)以太坊的隱私數(shù)據(jù),實驗將其中各個節(jié)點的幣齡通過最小值化以及取整,轉(zhuǎn)換成各個節(jié)點的權(quán)重,最后將得到的權(quán)重來模擬DPoS 加權(quán)投票博弈中共謀攻擊的過程??紤]到基于支持向量機(jī)的方法可以有效識別及檢測類似共謀攻擊,且文獻(xiàn)[37]將支持向量機(jī)的檢測方法OSVM(one class support vector machine)融入自選異常數(shù)據(jù)檢測的算法中對DPoS 中惡意節(jié)點的自私行為進(jìn)行識別檢測,以提高DPoS 的安全性。因此,本節(jié)通過以太坊的節(jié)點數(shù)據(jù),將本文方法與基于支持向量機(jī)的檢測方法進(jìn)行對比實驗。而在DPoS 共謀攻擊的預(yù)防實驗中,為了顯示Softsign 激活函數(shù)的抑制效果的優(yōu)越性,對Sigmoid以及Tanh激活函數(shù)在檢測過程中的抑制結(jié)果進(jìn)行對比驗證。
根據(jù)第3 節(jié)對權(quán)力指數(shù)的相關(guān)定義可知,節(jié)點權(quán)力指數(shù)越大,其對加權(quán)投票博弈選舉結(jié)果的影響力也就越大。因此,本文在選出k個委托節(jié)點的加權(quán)投票過程中,用權(quán)力指數(shù)得到惡意節(jié)點發(fā)起共謀攻擊過程中的變化值。由于DPoS 區(qū)塊鏈系統(tǒng)一般會選出k=21 個委托節(jié)點,本文對21 個不同的加權(quán)投票博弈進(jìn)行實驗。此外,按照總權(quán)重遞增的順序模擬了DPoS 區(qū)塊鏈中選出21 個委托節(jié)點的難度。本文實驗將2 880 個以太坊節(jié)點分成21 個博弈分區(qū)。為了得到合理的分析結(jié)果,本文實驗在這些加權(quán)投票博弈中隨機(jī)選擇權(quán)重相同的惡意攻擊節(jié)點。同時,由于惡意節(jié)點發(fā)起共謀攻擊時其本身的權(quán)重未知,不同權(quán)重的攻擊者在發(fā)起共謀攻擊時,惡意節(jié)點聯(lián)盟的形成過程不同,而不同的過程將影響最終結(jié)果的判斷,為了能夠在不同權(quán)重下合理分析出攻擊者的行為動機(jī),本文將攻擊者權(quán)重大于博弈中投票節(jié)點的平均權(quán)重的類型定義為較大權(quán)重的攻擊者,反之,則為較小權(quán)重的攻擊者。圖2 為惡意節(jié)點有較大權(quán)重時,共謀攻擊發(fā)起前后的2 個權(quán)力指數(shù)。圖3 為惡意節(jié)點有較小權(quán)重時,共謀攻擊發(fā)起前后的2 個權(quán)力指數(shù)。圖2 與圖3 中的SSI-B 與SSI-A 表示惡意節(jié)點發(fā)起共謀攻擊前后的Shapley-Shubik 權(quán)力指數(shù),PBI-B 與 PBI-A 表示攻擊發(fā)起前后的Banzhaf 權(quán)力指數(shù)。
圖2 惡意節(jié)點有較大權(quán)重時,共謀攻擊發(fā)起前后的2 個權(quán)力指數(shù)
圖3 惡意節(jié)點有較小權(quán)重時,共謀攻擊發(fā)起前后的2 個權(quán)力指數(shù)
由圖2 與圖3 可知,惡意節(jié)點發(fā)起攻擊之后,與其他節(jié)點共謀并形成一個權(quán)重較大且新的惡意節(jié)點,增加了惡意節(jié)點對聯(lián)盟的貢獻(xiàn),這使它發(fā)起攻擊后的Shapley-Shubik 與Banzhaf 權(quán)力指數(shù)的曲線都在它發(fā)起攻擊前的2 個權(quán)力指數(shù)的曲線之上。同時,無論發(fā)起共謀攻擊的惡意節(jié)點的權(quán)重多大,惡意節(jié)點的Shapley-Shubik 與Banzhaf 權(quán)力指數(shù)在發(fā)起共謀攻擊之后都會增加。此外,惡意節(jié)點權(quán)力指數(shù)增加就是惡意節(jié)點通過串通攻擊前的其他節(jié)點增加了惡意節(jié)點對獲勝聯(lián)盟的影響,是導(dǎo)致其權(quán)力指數(shù)增加的主要原因。也就是說,惡意節(jié)點可以通過共謀并吸收其他節(jié)點權(quán)重增加其在加權(quán)投票博弈中的權(quán)力指數(shù),實現(xiàn)操縱投票選舉。同時,從惡意節(jié)點的個體理性的角度證實了DPoS 中共謀攻擊存在的可能性,惡意節(jié)點發(fā)起攻擊后,其2 個權(quán)力指數(shù)的增加也從側(cè)面證明了權(quán)力指數(shù)的合并單調(diào)性。
從圖2 和圖3 還能看到,隨著加權(quán)投票博弈的總權(quán)重增加,惡意節(jié)點在共謀攻擊發(fā)起前的Shapley-Shubik 權(quán)力指數(shù)相比Banzhaf 權(quán)力指數(shù)更加具有單調(diào)性,即惡意節(jié)點發(fā)起共謀攻擊前的Shapley-Shubik 權(quán)力指數(shù)逐漸變小。從Shapley-Shubik權(quán)力指數(shù)的角度上講,由于惡意攻擊節(jié)點越想操縱加權(quán)投票博弈分區(qū)序號越大的選舉,就越會降低惡意節(jié)點在總權(quán)重較大博弈分區(qū)中的影響力,其操縱的難度就會越大??偠灾?,惡意節(jié)點可通過提高本身的權(quán)力指數(shù)形成有效的共謀攻擊。
為了驗證本文DPoS 共謀攻擊檢測方法的性能,將實驗分成橫向參照對比和方法對比兩類。其中,橫向參照對比是通過在21 個DPoS 的加權(quán)投票博弈中隨機(jī)設(shè)定存在共謀攻擊博弈分區(qū),然后通過本文方法檢測的結(jié)果與設(shè)定值比較。方法對比是通過皮爾遜相關(guān)系數(shù)對比本文方法與OSVM 方法的檢測效果。
由于在21 個加權(quán)投票博弈中設(shè)定存在共謀攻擊的博弈數(shù)量過少,無法充分證明本文檢測方法的具體效果;設(shè)定的博弈數(shù)量過多,將導(dǎo)致在獲取相同利益的前提下攻擊成本上升,不符合惡意節(jié)點從個體理性出發(fā)的利益需求。因此,在橫向參照對比的實驗中,本文通過設(shè)定5 組不同數(shù)量且存在共謀攻擊的博弈分區(qū)來展示檢測結(jié)果,且檢測結(jié)果進(jìn)行多次實驗求平均值,如圖4 所示。從圖4 中可知,無論惡意節(jié)點的類型如何,5 組存在共謀攻擊的博弈分區(qū)的設(shè)定值與本文方法檢測的測試值沒有太大區(qū)別。
圖4 橫向參照對比檢測
雖然圖4 的結(jié)果表明本文方法的檢測效果不錯,但缺乏其他方法檢測DPoS 共謀攻擊的結(jié)果對比,因此仍然需要相關(guān)指標(biāo)進(jìn)行方法對比。OSVM方法的實驗數(shù)據(jù)是從幾十萬條以太坊的歷史節(jié)點交易數(shù)據(jù)中隨機(jī)選擇5 000 條數(shù)據(jù)分別作為兩類惡意節(jié)點類型的訓(xùn)練集。設(shè)定m維向量A=(A1,A2,…,Am),其中,Am為設(shè)定的k個加權(quán)投票博弈中存在DPoS 共謀攻擊的加權(quán)投票博弈數(shù)量。如果檢測方法得到的檢測值A(chǔ)m越接近設(shè)定存在共謀攻擊的加權(quán)投票博弈數(shù)量值mD,則說明檢測效果越好。皮爾遜相關(guān)系數(shù)、歐幾里得距離以及余弦相似度經(jīng)常用于度量2 個變量之間的相關(guān)性,當(dāng)變量是多維向量時,皮爾遜相關(guān)系數(shù)比歐幾里得距離更能展示向量間的運(yùn)動趨勢,且與余弦相似度相比,其能彌補(bǔ)在維度計算上的缺陷。所以,為了突出本文方法的優(yōu)越性,本文將皮爾遜相關(guān)系數(shù)作為方法間的檢測指標(biāo)。根據(jù)皮爾遜相關(guān)系數(shù)的定義,本文方法的皮爾遜相關(guān)系數(shù)PI_PCC 為
利用皮爾遜相關(guān)系數(shù),在不同維度上對本文基于PI 方法以及文獻(xiàn)[37]中OSVM 方法的檢測效果如圖5 所示。
圖5 檢測方法對比
圖5 中,PI_PCC_low 與OSVM_PCC_low 表示在惡意節(jié)點有較小權(quán)重時,本文方法和OSVM 方法得到的皮爾遜相關(guān)系數(shù);PI_PCC_high 與OSVM_PCC_high 表示在惡意節(jié)點有較大權(quán)重時,2 種方法得到的皮爾遜相關(guān)系數(shù)。基于皮爾遜相關(guān)系數(shù)的性質(zhì)可知,其值越接近1,2 個向量越呈正相關(guān)。從圖5 的結(jié)果可知,不管惡意節(jié)點的類型如何,基于PI 的DPoS 共謀攻擊檢測的皮爾遜相關(guān)系數(shù)總是不小于OSVM 方法,也就是說,本文方法的檢測效果優(yōu)于OSVM 方法。
通過DPoS 共謀攻擊分析與檢測實驗可知,惡意節(jié)點主要通過增加自身的權(quán)力指數(shù)來操縱DPoS中的投票選舉。為了顯示Softsign 激活函數(shù)在DPoS共謀攻擊環(huán)境下對惡意節(jié)點權(quán)力指數(shù)的抑制效果,本文使用Sigmoid 以及Tanh 激活函數(shù)進(jìn)行DPoS 共謀攻擊的預(yù)防實驗。為了和上述實驗保持一致性,預(yù)防實驗同樣在2 種不同類型的惡意節(jié)點下進(jìn)行。同時,實驗從21 個DPoS 的加權(quán)投票博弈中隨機(jī)選擇在檢測出共謀攻擊的博弈分區(qū)中加入激活函數(shù)并計算加入激活函數(shù)前后的權(quán)力指數(shù)的變化。最后,對這些博弈分區(qū)的權(quán)力指數(shù)平均值,本文將Sigmoid 以及Tanh 激活函數(shù)作為對比,圖6 與圖7具體展示了加入3 種激活函數(shù)下,惡意節(jié)點有較大權(quán)重和較小權(quán)重時的2 個權(quán)力指數(shù)的變化情況。
圖6 惡意節(jié)點有較大權(quán)重時,加入激活函數(shù)后的2 個權(quán)力指數(shù)
圖7 惡意節(jié)點有較小權(quán)重時,加入激活函數(shù)后的2 個權(quán)力指數(shù)
由圖6 可以看出,當(dāng)惡意節(jié)點有較大權(quán)重時,Sigmoid 與Tanh 激活函數(shù)的曲線比較相近,也就是說,這2 個激活函數(shù)在抑制惡意節(jié)點的效果方面相差不大。但是,與Softsign 激活函數(shù)相比,Sigmoid和Tanh 激活函數(shù)的曲線都在Softsign 激活函數(shù)的上方,即Softsign 激活函數(shù)的抑制效果明顯更好。
此外,之前的實驗表明,當(dāng)惡意節(jié)點有較小權(quán)重且未加入激活函數(shù)時,惡意節(jié)點的權(quán)力指數(shù)增加了十倍甚至幾十倍。而加入Softsign 激活函數(shù)后,圖7 中惡意節(jié)點權(quán)力指數(shù)增加的倍數(shù)最多不超過3.5 倍。而且從圖7 可知,當(dāng)惡意節(jié)點有較小權(quán)重時,相比Tanh 激活函數(shù),Softsign 激活函數(shù)的曲線變化更頻繁,表明Softsign激活函數(shù)值的收斂比Tanh激活函數(shù)值的更慢,但由于Softsign 激活函數(shù)的曲線一直在其他曲線下方,說明其在抑制效果方面仍然比Tanh 激活函數(shù)要好。
圖8 展示了加入Softsign 激活函數(shù)前后,檢測存在共謀攻擊的博弈分區(qū)數(shù)量。實驗結(jié)果最終分成惡意節(jié)點有較大與較小權(quán)重2 種類型,實驗通過比較加入Softsign 激活函數(shù)前后檢測出DPoS 中存在共謀攻擊的博弈分區(qū)數(shù)量,展示惡意節(jié)點的抑制效果。從圖8 可知,加入Softsign 激活函數(shù)后,檢測存在共謀攻擊的博弈分區(qū)不超過2 個,說明其能在一定程度上抑制惡意節(jié)點在DPoS 加權(quán)投票階段中的共謀攻擊,使惡意節(jié)點共謀行為的動機(jī)降低,對DPoS 共謀攻擊起到預(yù)防效果。
圖8 加入Softsign 激活函數(shù)前后,檢測存在共謀攻擊的博弈分區(qū)數(shù)量
本文針對DPoS 共識機(jī)制中惡意節(jié)點發(fā)起共謀攻擊來操縱委托節(jié)點的選舉導(dǎo)致DPoS 區(qū)塊鏈的安全性無法保證的問題,通過結(jié)合博弈理論中加權(quán)投票模型以及權(quán)力指數(shù),提出了一種基于權(quán)力指數(shù)的DPoS 共謀攻擊檢測與預(yù)防方法。首先通過定義權(quán)力指數(shù)來度量投票節(jié)點在加權(quán)投票博弈過程中影響結(jié)果的能力,接著對權(quán)力指數(shù)異常變化的惡意節(jié)點博弈分區(qū)進(jìn)行DPoS 共謀攻擊檢測,然后采用Softsign 激活函數(shù)抑制惡意節(jié)點的行為來預(yù)防攻擊,最后通過理論分析與實驗驗證了本文方法的合理性與有效性。
現(xiàn)階段本文采用Softsign 激活函數(shù)雖然可以有效抑制惡意節(jié)點的權(quán)力指數(shù),但Softsign 激活函數(shù)存在抑制速率較慢的問題。因此,后續(xù)研究將繼續(xù)探索新的DPoS 共謀攻擊預(yù)防方法,進(jìn)一步提升DPoS 區(qū)塊鏈系統(tǒng)的安全性。
附錄1 權(quán)力指數(shù)的單調(diào)性及Softsign 激活函數(shù)的飽和性證明
性質(zhì)1 的證明。首先,根據(jù)Shapley-Shubik 權(quán)力指數(shù)原理與式(2)可得