付曉東,漆鑫鑫,劉驪,彭瑋,丁家滿,代飛
(1.昆明理工大學信息工程與自動化學院,云南 昆明 650500;2.昆明理工大學云南省計算機應用技術重點實驗室,云南 昆明 650500;3.西南林業大學大數據與智能工程學院,云南 昆明 650224)
2008 年,中本聰提出一種P2P 形式的加密貨幣——比特幣[1]。比特幣出現之后,其底層區塊鏈技術便迅速引起了學術界與各個行業的關注。區塊鏈技術因具有去中心化、難以篡改、集體維護等特點廣泛應用于金融、物聯網、交通等領域[2-3]。共識機制[4]作為區塊鏈的重要組成部分,其性能的好壞直接影響區塊鏈系統的安全性、事務處理能力以及可擴展性。然而,由于區塊鏈技術結構的復雜性以及缺乏安全管控,針對區塊鏈系統共識機制層面的攻擊也在逐年增加[5-6]。
區塊鏈中常見的共識機制有工作量證明(PoW,proof of work)[7]、權益證明(PoS,proof of stake)[8-9]和委托權益證明(DPoS,delegate proof of stake)[10]等。比特幣采用PoW 的共識機制,通過節點“挖礦”來競爭記賬權。雖然PoW 算法簡單且容易實現,但是它在通過“挖礦”達成共識的過程中需要消耗大量計算資源[11]。為了解決PoW 資源浪費的問題,PoS 被提出[9]。由于PoS 在一定程度上縮短了達成共識的時間,而且不再需要消耗大量資源,因此PoS 一經提出就引起廣泛關注。雖然PoS 可避免資源浪費,但是達成共識的過程容易產生壟斷,并面臨幣齡累計攻擊[12]、51%攻擊[13-14]以及無利害攻擊[15]等各種不同攻擊的風險。為了解決PoS 中參與驗證與記賬的節點數量過多的問題,DPoS 被提出,共識時間進一步縮短,被以太坊[16]、EOSIO[17]等平臺作為共識機制。然而,與PoS 類似,DPoS依然存在易被攻擊的問題。
DPoS 作為PoS 共識機制的衍生體,其核心在于擁有權益的節點通過投票選出k個委托節點,每輪選舉結束就由這k個節點輪流生成區塊,DPoS共識機制模型如圖1 所示。由于DPoS 節點的投票權重不同,該投票過程本質上是加權投票,與PoS相比,DPoS 減少了共識時間以及資源的消耗。雖然DPoS 對PoW 和PoS 存在的問題進行了改進,但DPoS 在投票過程中可能存在惡意節點與其他節點串通并選擇傀儡委托節點的共謀行為,這種行為也被稱為共謀攻擊[18]。共謀攻擊使惡意節點可操縱選舉,被操縱選舉出的委托節點會進一步影響共識結果,降低DPoS 區塊鏈系統的安全性。考慮到目前的研究沒有解決DPoS 共識機制遭受共謀攻擊的問題,本文提出了一種基于權力指數(PI,power index)的DPoS 共謀攻擊檢測與預防方法來解決上述問題。本文主要貢獻如下。

圖1 DPoS 共識機制模型
1) 針對DPoS 中共謀攻擊的特點,建立加權投票博弈模型并借鑒博弈理論[19]中的權力指數[20],分析共謀攻擊存在的可能性以及惡意節點發起共謀的行為動機。通過計算各個節點在投票過程中的權力指數值,得到每個節點對選舉結果影響程度的大小。
2) 對DPoS 中共謀攻擊進行檢測與預防。由于惡意節點在加權投票博弈過程中權力指數可能出現異常,可以根據權力指數變化幅度判別投票節點的加權投票博弈中是否存在共謀攻擊。為了對DPoS 中共謀攻擊進行預防,本文通過Softsign 激活函數抑制惡意節點的權力指數,同時抑制惡意節點的行為動機。
3) 對權力指數的單調性以及Softsign函數的飽和性進行理論證明,驗證了DPoS 存在共謀攻擊以及攻擊預防方法的合理性。實驗驗證了DPoS 中共謀攻擊存在的合理性,以及DPoS 共謀攻擊檢測與預防方法的有效性與優越性。
近年來,為了提高區塊鏈共識層面的安全性,國內外學者展開了一系列的研究。針對非DPoS 區塊鏈系統的研究中,Yang 等[21]提出了一種將礦工歷史加權信息與計算難度相結合的方案,以緩解PoW中 51%攻擊。為了減輕 PoS 中的遠程攻擊,AlMallohi 等[22]提出了一種在區塊鏈技術中實施檢查點的方法。本文將提高DPoS 區塊鏈系統安全性的相關研究分為理論與策略分析和共識機制的改進研究2 個層面。
為了對DPoS 的安全問題進行理論與策略分析,Wang 等[23]提出了一種DPoS 的博弈分析方法。該方法通過構建擴展的DPoS 博弈樹,理論上可以有效地分析是否存在惡意攻擊。田國華等[24]根據區塊鏈層次結構對現有的區塊鏈攻擊進行分類,并針對已知的區塊鏈系統設計了各種攻擊和防御手段。魏松杰等[25]以比特幣與以太坊為例,對區塊鏈系統的安全威脅進行分類和總結。
針對DPoS中投票選舉的中心化問題,Luo等[26]提出了一種DPoS 共識機制選舉算法,該算法改進了基于環的協調器選舉算法,不僅降低了交易成本,而且達到了杜絕壟斷和去中心化的效果。Yao等[27]在DPoS 委托節點的選擇階段通過節點分組實現了組間隔離,提高了選擇過程中委托節點的公平性;此外,該研究利用魚群算法提高了區塊鏈網絡的安全性能和容錯率。為了提高DPoS 節點投票的積極性,Wang 等[28]提出一種基于聚類算法的激勵機制,由于傳統的聚類算法存在需要預測聚類數量、無法處理異常值等問題,該研究還提出一種Hegselmann-Krause 意見動力學聚類算法來滿足獎勵分配機制的需求。
通過對目前的DPoS 共識機制的安全研究進行分析可以看到,一方面,現有研究主要以理論分析為主對DPoS 面臨的各種惡意攻擊進行梳理,總結出DPoS 共識機制遭受的各種攻擊的基本原理,提出一些建議與防御措施,但這種理論分析缺乏具體的實驗加以驗證。另一方面,現有研究主要利用特殊方法與技術對DPoS 進行改進,激勵節點的投票積極性以及隔絕惡意節點的攻擊行為。然而,DPoS 共識機制的關鍵在于如何保證委托節點選舉的安全性。一旦委托節點的選舉過程被操縱,DPoS 共識機制的安全性與一致性也就無法保證。雖然部分文獻提出了新的選舉算法,但未驗證針對DPoS 的共謀攻擊進行檢測與預防的有效性。而且,以上研究都沒有對DPoS 的共謀攻擊行為進行分析。考慮到博弈中的個體理性,應通過建立分析模型并找到惡意節點的行為動機解決DPoS 中面臨共謀攻擊的問題。針對上述研究中沒有考慮到的問題以及不足,本文提出了一種基于權力指數的DPoS 共謀攻擊檢測與預防方法,通過建立加權投票博弈模型對惡意節點的行為動機進行分析。同時,根據分析結果對DPoS中的共謀攻擊進行檢測與預防,最終提高DPoS 區塊鏈的安全性。
權力指數是加權投票博弈中衡量個體影響博弈結果能力的指標。目前,Shapley-Shubik[29-30]和Banzhaf[29,31]權力指數是加權投票博弈較常見的2 個權力指數。Shapley-Shubik 權力指數的核心是將沙普利值應用于投票領域,其主要思想是計算某一特定個體對任意聯盟的價值的期望貢獻。Banzhaf 權力指數是在所有聯盟出現概率相同的情形下,計算某一特定個體對任何聯盟的平均邊際貢獻。權力指數的值越大,特定個體影響投票結果的能力就越大。
考慮到DPoS 委托節點的選舉就是通過加權投票得到的,本文將Shapley-Shubik 與Banzhaf權力指數作為DPoS 投票節點在加權投票博弈中影響委托節點選舉結果能力的指標。由于DPoS中的共謀攻擊就是惡意節點串通其他節點合并成串通同盟的過程,且在存在惡意節點的博弈中,惡意節點會從自身成本角度出發,逐步從小權重節點開始共謀。串通同盟形成過程將導致在同一加權投票博弈中的最小權重且不參與共謀的節點的權力指數變化與不存在惡意節點的博弈中最小權重且不參與共謀的節點的權力指數變化不同。因此,可根據異常的權力指數變化對DPoS 加權投票中的共謀攻擊進行檢測。此外,為了預防DPoS 中的共謀攻擊,本文使用Softsign 激活函數在檢測過程中對惡意節點的共謀攻擊行為進行懲罰。為更清晰地闡述本文方法,表1 展示了本文方法涉及的符號及其含義。

表1 符號及其含義
假設DPoS 在投票過程中有n個投票節點N={nd1,nd2,…,ndn},投票節點根據幣齡通過最小值化公式進行等比縮小,當縮小到最小投票節點的幣齡為正整數1 時,再全部取整轉成權重集合W={w1,w2,…,wn}進行加權投票。加權投票博弈是投票領域的一種聯盟博弈[32]形式,所以,DPoS 中的加權投票博弈可以看成一個簡單的聯盟博弈的擴展。定義四元組(N,W,q,v)為DPoS 的一個加權投票博弈,其中價值函數v具體描述為當聯盟S的權重達到或者超過閾值q時,聯盟S獲勝,即

由于Shapley-Shubik 權力指數反映的是投票個體在包含其聯盟中的平均力量,僅反映了個體對聯盟的影響。而Banzhaf 權力指數只從聯盟的角度考慮,投票個體的“權力”是其作為獲勝聯盟中關鍵加入者的個數。總而言之,雖然2 個權力指數都能反映投票個體在群體決策中的實際權力,但其中任何一個權力指數都無法從多個角度完整反映出個體對投票結果的實際影響能力值。為了能更好地分析DPoS 共謀攻擊中各個投票節點在多個角度下實際權力的變化,本文結合Shapley-Shubik 與Banzhaf權力指數對DPoS 共謀攻擊進行檢測和防范。


一個加權投票博弈只能討論和分析DPoS 在投票過程中選出一位委托節點的情況下是否存在共謀攻擊。然而,DPoS 在加權投票階段會選擇k個委托節點。因此,本文在k個加權投票博弈下對DPoS 共謀攻擊進行分析與檢測。
在加權投票博弈中,惡意節點為了形成新的惡意節點會串通投票過程中權重較小的節點,導致攻擊發起后最小權重且不參與共謀的節點發生改變。根據分析過程中的多次模擬,可以計算DPoS 惡意節點在共謀攻擊發起前后的最小權重且不參與共謀的節點的權力指數的變化幅度,進而得到DPoS在k個加權投票博弈中檢測存在共謀攻擊的范圍。如果一個加權投票博弈的變化幅度在設置的范圍內,則認定加權投票博弈中存在惡意節點的共謀攻擊。為了對檢測效果進行具體評估,本文共謀攻擊檢測的對比實驗將在相同條件下通過皮爾遜相關系數比較不同方法得到測試值。

為了對k個加權投票博弈分區中存在的共謀攻擊進行統計,設Ml與Mh分別是存在惡意節點的加權投票博弈中最小權重且不參與共謀的節點的權力指數最小值與最大值的變化幅度,Dk(Mk)為第k個加權投票博弈中是否存在共謀攻擊的結果。如果存在,結果為1,否則為0,即

同時,設定m維向量D=(D1,D2,…,Dm),其中Dm為k個加權投票博弈中存在DPoS 共謀攻擊的加權投票博弈分區數量,即

基于權力指數對DPoS 共謀攻擊進行檢測的最終目的是對面臨的攻擊進行預防。為了抑制惡意節點在形成惡意攻擊同盟過程中權力指數的增加,本文采用Softsign 激活函數作為惡意節點的抑制函數。激活函數常用于神經網絡[33]中神經元輸入端映射到輸出端的函數,可分為飽和的激活函數與非飽和的激活函數。其中,飽和的激活函數是指隨著輸入值x的不斷增加,輸出值y逐漸不再變化。目前,較常見的飽和的激活函數有Softsign、Sigmoid 和Tanh 等。由于Softsign 激活函數的飽和性質可以降低惡意節點通過串通其他節點以大幅增長其權力指數的可能性,以及該激活函數的抑制效果相比Sigmoid 和Tanh 更加顯著,因此本文選擇在檢測DPoS 共謀攻擊的階段加入Softsign 激活函數對惡意節點的同盟進行抑制,即在共謀攻擊發起過程中,如果惡意節點在檢測的時候被識別,其同盟不斷增加的權重通過Softsign 激活函數進行飽和計算,使惡意節點串通同盟的權重趨于定值,最終其權力指數也將被抑制,惡意節點無法操縱選舉結果會使其行為動機被削弱,最終對DPoS 共謀攻擊達到預防的效果。假設wc為惡意節點串通同盟C?N的權重,定義Softsign 激活函數為

本節通過權力指數的合并單調性[29,34]對DPoS共謀攻擊的存在合理性進行證明;同時,通過Softsign 激活函數的飽和性對預防DPoS 共謀攻擊的有效性進行證明。
性質1Shapley-Shubik 權力指數的單調性。當q不變時,給定一個 DPoS 的加權投票博弈(N,W,q,v),節點i,j∈S′以及聯盟S′?N,有
證明詳見附錄1。
性質2Banzhaf 權力指數的單調性。當q不變時,給定一個DPoS 的加權投票博弈(N,W,q,v),節點i,j∈S′以及聯盟S′?N,有
證明詳見附錄1。
根據性質1 與性質2,DPoS 中惡意節點發起共謀攻擊的動機在于利用權力指數的合并單調性提升自身對選舉結果的影響力,最終達到操縱選舉的目的。換句話說,DPoS 共謀攻擊的存在是合理的。同時,權力指數的合并單調性使在DPoS惡意節點發起共謀攻擊的過程中可以找到異常權力指數變化值,從而通過異常變化值可檢測DPoS中的共謀攻擊。
性質3Softsign 激活函數的飽和性。
證明詳見附錄1。
根據性質3,在惡意節點串通同盟的權重不斷增加的過程中,由于Softsign 激活函數的飽和性,惡意節點串通同盟的權重最后趨于不再變化的值,從而使其權力指數不再增加。
總而言之,本文通過理論證明權力指數的合并單調性,直觀地分析出惡意節點發起DPoS 共謀攻擊的動機,即惡意節點可通過共謀攻擊提高權力指數來操縱投票選舉。同時,計算出存在共謀攻擊博弈與不存在共謀攻擊博弈中權力指數的不同變化幅度值,最終通過存在共謀攻擊的博弈的異常權力指數變化幅度,有效檢測出DPoS中的共謀攻擊。最后,基于Softsign 激活函數的飽和性,在DPoS 遭受共謀攻擊的過程中抑制惡意節點串通同盟的權力指數,以起到預防該攻擊的效果。
為驗證本文基于PI 的DPoS 共謀攻擊檢測與預防方法的有效性,設計了相關實驗。實驗環境為Windows10 操作系統、Core i7-11700k 處理器、16 GB內存,開發環境為PyCharm 2021,編程語言為python 3。
由于隨機模擬節點權重等相關數據進行實驗不能保證實驗結果的真實性,本文采用公開的X-block 數據集[35-36]。該數據集包含被標記的以太坊節點的隱私數據以及節點間的交易數據。被標記的以太坊節點的隱私數據有2 880 個節點,節點的隱私數據包含物理地址、錢包余額等敏感信息。而節點間的交易數據包含幾十萬條以太坊節點間的歷史交易數據。
根據以太坊的隱私數據,實驗將其中各個節點的幣齡通過最小值化以及取整,轉換成各個節點的權重,最后將得到的權重來模擬DPoS 加權投票博弈中共謀攻擊的過程。考慮到基于支持向量機的方法可以有效識別及檢測類似共謀攻擊,且文獻[37]將支持向量機的檢測方法OSVM(one class support vector machine)融入自選異常數據檢測的算法中對DPoS 中惡意節點的自私行為進行識別檢測,以提高DPoS 的安全性。因此,本節通過以太坊的節點數據,將本文方法與基于支持向量機的檢測方法進行對比實驗。而在DPoS 共謀攻擊的預防實驗中,為了顯示Softsign 激活函數的抑制效果的優越性,對Sigmoid以及Tanh激活函數在檢測過程中的抑制結果進行對比驗證。
根據第3 節對權力指數的相關定義可知,節點權力指數越大,其對加權投票博弈選舉結果的影響力也就越大。因此,本文在選出k個委托節點的加權投票過程中,用權力指數得到惡意節點發起共謀攻擊過程中的變化值。由于DPoS 區塊鏈系統一般會選出k=21 個委托節點,本文對21 個不同的加權投票博弈進行實驗。此外,按照總權重遞增的順序模擬了DPoS 區塊鏈中選出21 個委托節點的難度。本文實驗將2 880 個以太坊節點分成21 個博弈分區。為了得到合理的分析結果,本文實驗在這些加權投票博弈中隨機選擇權重相同的惡意攻擊節點。同時,由于惡意節點發起共謀攻擊時其本身的權重未知,不同權重的攻擊者在發起共謀攻擊時,惡意節點聯盟的形成過程不同,而不同的過程將影響最終結果的判斷,為了能夠在不同權重下合理分析出攻擊者的行為動機,本文將攻擊者權重大于博弈中投票節點的平均權重的類型定義為較大權重的攻擊者,反之,則為較小權重的攻擊者。圖2 為惡意節點有較大權重時,共謀攻擊發起前后的2 個權力指數。圖3 為惡意節點有較小權重時,共謀攻擊發起前后的2 個權力指數。圖2 與圖3 中的SSI-B 與SSI-A 表示惡意節點發起共謀攻擊前后的Shapley-Shubik 權力指數,PBI-B 與 PBI-A 表示攻擊發起前后的Banzhaf 權力指數。

圖2 惡意節點有較大權重時,共謀攻擊發起前后的2 個權力指數

圖3 惡意節點有較小權重時,共謀攻擊發起前后的2 個權力指數
由圖2 與圖3 可知,惡意節點發起攻擊之后,與其他節點共謀并形成一個權重較大且新的惡意節點,增加了惡意節點對聯盟的貢獻,這使它發起攻擊后的Shapley-Shubik 與Banzhaf 權力指數的曲線都在它發起攻擊前的2 個權力指數的曲線之上。同時,無論發起共謀攻擊的惡意節點的權重多大,惡意節點的Shapley-Shubik 與Banzhaf 權力指數在發起共謀攻擊之后都會增加。此外,惡意節點權力指數增加就是惡意節點通過串通攻擊前的其他節點增加了惡意節點對獲勝聯盟的影響,是導致其權力指數增加的主要原因。也就是說,惡意節點可以通過共謀并吸收其他節點權重增加其在加權投票博弈中的權力指數,實現操縱投票選舉。同時,從惡意節點的個體理性的角度證實了DPoS 中共謀攻擊存在的可能性,惡意節點發起攻擊后,其2 個權力指數的增加也從側面證明了權力指數的合并單調性。
從圖2 和圖3 還能看到,隨著加權投票博弈的總權重增加,惡意節點在共謀攻擊發起前的Shapley-Shubik 權力指數相比Banzhaf 權力指數更加具有單調性,即惡意節點發起共謀攻擊前的Shapley-Shubik 權力指數逐漸變小。從Shapley-Shubik權力指數的角度上講,由于惡意攻擊節點越想操縱加權投票博弈分區序號越大的選舉,就越會降低惡意節點在總權重較大博弈分區中的影響力,其操縱的難度就會越大。總而言之,惡意節點可通過提高本身的權力指數形成有效的共謀攻擊。
為了驗證本文DPoS 共謀攻擊檢測方法的性能,將實驗分成橫向參照對比和方法對比兩類。其中,橫向參照對比是通過在21 個DPoS 的加權投票博弈中隨機設定存在共謀攻擊博弈分區,然后通過本文方法檢測的結果與設定值比較。方法對比是通過皮爾遜相關系數對比本文方法與OSVM 方法的檢測效果。
由于在21 個加權投票博弈中設定存在共謀攻擊的博弈數量過少,無法充分證明本文檢測方法的具體效果;設定的博弈數量過多,將導致在獲取相同利益的前提下攻擊成本上升,不符合惡意節點從個體理性出發的利益需求。因此,在橫向參照對比的實驗中,本文通過設定5 組不同數量且存在共謀攻擊的博弈分區來展示檢測結果,且檢測結果進行多次實驗求平均值,如圖4 所示。從圖4 中可知,無論惡意節點的類型如何,5 組存在共謀攻擊的博弈分區的設定值與本文方法檢測的測試值沒有太大區別。

圖4 橫向參照對比檢測
雖然圖4 的結果表明本文方法的檢測效果不錯,但缺乏其他方法檢測DPoS 共謀攻擊的結果對比,因此仍然需要相關指標進行方法對比。OSVM方法的實驗數據是從幾十萬條以太坊的歷史節點交易數據中隨機選擇5 000 條數據分別作為兩類惡意節點類型的訓練集。設定m維向量A=(A1,A2,…,Am),其中,Am為設定的k個加權投票博弈中存在DPoS 共謀攻擊的加權投票博弈數量。如果檢測方法得到的檢測值Am越接近設定存在共謀攻擊的加權投票博弈數量值mD,則說明檢測效果越好。皮爾遜相關系數、歐幾里得距離以及余弦相似度經常用于度量2 個變量之間的相關性,當變量是多維向量時,皮爾遜相關系數比歐幾里得距離更能展示向量間的運動趨勢,且與余弦相似度相比,其能彌補在維度計算上的缺陷。所以,為了突出本文方法的優越性,本文將皮爾遜相關系數作為方法間的檢測指標。根據皮爾遜相關系數的定義,本文方法的皮爾遜相關系數PI_PCC 為

利用皮爾遜相關系數,在不同維度上對本文基于PI 方法以及文獻[37]中OSVM 方法的檢測效果如圖5 所示。

圖5 檢測方法對比
圖5 中,PI_PCC_low 與OSVM_PCC_low 表示在惡意節點有較小權重時,本文方法和OSVM 方法得到的皮爾遜相關系數;PI_PCC_high 與OSVM_PCC_high 表示在惡意節點有較大權重時,2 種方法得到的皮爾遜相關系數。基于皮爾遜相關系數的性質可知,其值越接近1,2 個向量越呈正相關。從圖5 的結果可知,不管惡意節點的類型如何,基于PI 的DPoS 共謀攻擊檢測的皮爾遜相關系數總是不小于OSVM 方法,也就是說,本文方法的檢測效果優于OSVM 方法。
通過DPoS 共謀攻擊分析與檢測實驗可知,惡意節點主要通過增加自身的權力指數來操縱DPoS中的投票選舉。為了顯示Softsign 激活函數在DPoS共謀攻擊環境下對惡意節點權力指數的抑制效果,本文使用Sigmoid 以及Tanh 激活函數進行DPoS 共謀攻擊的預防實驗。為了和上述實驗保持一致性,預防實驗同樣在2 種不同類型的惡意節點下進行。同時,實驗從21 個DPoS 的加權投票博弈中隨機選擇在檢測出共謀攻擊的博弈分區中加入激活函數并計算加入激活函數前后的權力指數的變化。最后,對這些博弈分區的權力指數平均值,本文將Sigmoid 以及Tanh 激活函數作為對比,圖6 與圖7具體展示了加入3 種激活函數下,惡意節點有較大權重和較小權重時的2 個權力指數的變化情況。

圖6 惡意節點有較大權重時,加入激活函數后的2 個權力指數

圖7 惡意節點有較小權重時,加入激活函數后的2 個權力指數
由圖6 可以看出,當惡意節點有較大權重時,Sigmoid 與Tanh 激活函數的曲線比較相近,也就是說,這2 個激活函數在抑制惡意節點的效果方面相差不大。但是,與Softsign 激活函數相比,Sigmoid和Tanh 激活函數的曲線都在Softsign 激活函數的上方,即Softsign 激活函數的抑制效果明顯更好。
此外,之前的實驗表明,當惡意節點有較小權重且未加入激活函數時,惡意節點的權力指數增加了十倍甚至幾十倍。而加入Softsign 激活函數后,圖7 中惡意節點權力指數增加的倍數最多不超過3.5 倍。而且從圖7 可知,當惡意節點有較小權重時,相比Tanh 激活函數,Softsign 激活函數的曲線變化更頻繁,表明Softsign激活函數值的收斂比Tanh激活函數值的更慢,但由于Softsign 激活函數的曲線一直在其他曲線下方,說明其在抑制效果方面仍然比Tanh 激活函數要好。
圖8 展示了加入Softsign 激活函數前后,檢測存在共謀攻擊的博弈分區數量。實驗結果最終分成惡意節點有較大與較小權重2 種類型,實驗通過比較加入Softsign 激活函數前后檢測出DPoS 中存在共謀攻擊的博弈分區數量,展示惡意節點的抑制效果。從圖8 可知,加入Softsign 激活函數后,檢測存在共謀攻擊的博弈分區不超過2 個,說明其能在一定程度上抑制惡意節點在DPoS 加權投票階段中的共謀攻擊,使惡意節點共謀行為的動機降低,對DPoS 共謀攻擊起到預防效果。

圖8 加入Softsign 激活函數前后,檢測存在共謀攻擊的博弈分區數量
本文針對DPoS 共識機制中惡意節點發起共謀攻擊來操縱委托節點的選舉導致DPoS 區塊鏈的安全性無法保證的問題,通過結合博弈理論中加權投票模型以及權力指數,提出了一種基于權力指數的DPoS 共謀攻擊檢測與預防方法。首先通過定義權力指數來度量投票節點在加權投票博弈過程中影響結果的能力,接著對權力指數異常變化的惡意節點博弈分區進行DPoS 共謀攻擊檢測,然后采用Softsign 激活函數抑制惡意節點的行為來預防攻擊,最后通過理論分析與實驗驗證了本文方法的合理性與有效性。
現階段本文采用Softsign 激活函數雖然可以有效抑制惡意節點的權力指數,但Softsign 激活函數存在抑制速率較慢的問題。因此,后續研究將繼續探索新的DPoS 共謀攻擊預防方法,進一步提升DPoS 區塊鏈系統的安全性。
附錄1 權力指數的單調性及Softsign 激活函數的飽和性證明
性質1 的證明。首先,根據Shapley-Shubik 權力指數原理與式(2)可得
