• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于信譽授權的DPoS共識機制改進研究

      2022-07-20 05:57:42黃襄念
      關鍵詞:見證人挖礦共識

      何 帥,黃襄念

      (西華大學計算機與軟件工程學院,成都 610039)

      引 言

      區(qū)塊鏈技術是伴隨著比特幣的誕生而抽象出來的一種全新的分布式底層基礎架構與計算范式,能夠在缺乏第三方信任的機制下實現(xiàn)多方共識,不僅為數(shù)據(jù)隱私保護和安全傳輸提供了全新的技術支持,還提高了價值交互的效率[1]。區(qū)塊鏈的本質(zhì)是一種分布式共享數(shù)據(jù)庫,是將數(shù)據(jù)按照時間順序用類似鏈表的方式組成的數(shù)據(jù)結構[2],具有去中心化、數(shù)據(jù)防篡改、可追溯、不可偽造、多方共識的特性,已經(jīng)在金融、航運物流、司法存證等領域得到了成功運用[3]。

      目前,區(qū)塊鏈已經(jīng)形成了6層基礎架構模型,由下往上分別為數(shù)據(jù)層、網(wǎng)絡層、共識層、激勵層、合約層以及應用層[4]。其中,共識層作為整個區(qū)塊鏈架構的核心層,其共識算法保障了區(qū)塊鏈網(wǎng)絡數(shù)據(jù)的可驗性和可信性,具有維護區(qū)塊鏈系統(tǒng)穩(wěn)定運行和節(jié)點相互信任的重要作用,是決定區(qū)塊鏈系統(tǒng)中節(jié)點對賬本數(shù)據(jù)的有效性和一致性達成共識的關鍵技術,其性能的優(yōu)劣將直接影響整個區(qū)塊鏈系統(tǒng)的去中心化程度、交易處理能力、安全性和可擴展性[5]。

      當前區(qū)塊鏈技術正面臨著安全性、效率和去中心化的“不可能三角”問題,如何平衡三者之間的關系使得區(qū)塊鏈更加安全高效成為了亟待突破的技術瓶頸[6]。針對現(xiàn)有區(qū)塊鏈共識機制存在的不足之處,當前正圍繞著共識節(jié)點的選舉制度、惡意節(jié)點處理以及節(jié)點權益劃分等[7]問題進行創(chuàng)新研究,力爭研發(fā)出適用于更多區(qū)塊鏈場景的高效共識算法。

      目前,在區(qū)塊鏈公鏈系統(tǒng)中主流的共識機制有工作量證明(PoW)、權益證明(PoS)以及委托權益證明(DPoS)[8]。PoW 是基于自身算力競爭來求解一個難以計算但容易驗證的Hash數(shù)學難題,使得率先解決Hash 難題并得到其他節(jié)點有效驗證后的節(jié)點擁有記賬權并獲得獎勵[9]。但PoW 在達成共識過程中會消耗大量的算力造成資源浪費,并且打包交易數(shù)據(jù)產(chǎn)生新區(qū)塊的時間通常在10 min 以上,這顯然無法滿足復雜的業(yè)務需求。為了解決PoW 共識算法中存在的資源浪費以及“挖礦”不公平等問題,有學者提出了PoS 共識機制,通過利用PoS 取代基于算力的工作量證明來決定節(jié)點獲得記賬的權力,但當財富積累到一定的程度時,容易出現(xiàn)集權現(xiàn)象,導致幣齡大的節(jié)點始終掌握著記賬的權利,從而出現(xiàn)“財閥統(tǒng)治”的局面,不僅增加了中心化的風險,還降低了虛擬貨幣的流通性[10-11]。為了進一步滿足廣泛的區(qū)塊鏈業(yè)務需求,Larimer 在PoS 的基礎上通過優(yōu)化選擇記賬節(jié)點的過程,提出了DPoS 共識機制[12],實現(xiàn)了快速共識驗證,提高了區(qū)塊鏈系統(tǒng)達成共識的效率,進一步減少了資源的浪費并弱化了通過礦池算力疊加造成的中心化風險,增強了區(qū)塊鏈系統(tǒng)的安全性。但DPoS 在實際的應用過程中還存在節(jié)點投票不積極、惡意節(jié)點賄賂投票節(jié)點導致“腐敗攻擊”以及權益分配不合理等相關問題,這正是當前亟待突破的關鍵方向。

      為了提高區(qū)塊鏈的安全性和共識效率,針對上述委托權益證明共識機制存在的不足之處,相關研究學者對其展開了新一輪的探索與創(chuàng)新。付瑤瑤等[13]針對DPoS 共識機制中節(jié)點投票不積極以及惡意節(jié)點作惡問題,提出了一種基于獎勵機制和信用機制改進的方案,利用一種改進的收益分配算法合理分配各節(jié)點所得的權益,并通過優(yōu)化投票結果的計算方式加大惡意節(jié)點成為代理節(jié)點的難度,在一定程度上降低了惡意節(jié)點成為共識節(jié)點的概率,提高了系統(tǒng)的安全性。楊坤橋等[14]對DPoS 共識機制的計票機制和激勵機制進行了改進,使得改進的計票機制能夠更加全面的反映節(jié)點的信用情況,并根據(jù)節(jié)點選票權重快速剔除惡意節(jié)點,同時改進的激勵機制能夠對節(jié)點收益進行二次分配,提高了系統(tǒng)“去中心化”程度。在上述相關研究成果的基礎之上,本文利用基于算力競爭的PoW“挖礦”思想,結合可隨機驗證函數(shù),引入博弈論中沙普利值的計算方式對DPoS共識算法的投票選舉、見證人出塊順序以及節(jié)點的權益分配進行了改進和優(yōu)化,最后通過仿真實驗得出結論。

      1 委托權益證明共識機制的改進方案

      委托權益證明(DPoS)共識算法主要包含兩個步驟,即共識節(jié)點的選舉過程以及節(jié)點間達成共識的過程[15]。針對DPoS 共識算法中存在的不足之處,對共識節(jié)點選舉、共識節(jié)點的出塊順序、獎勵的分配以及節(jié)點出塊行為監(jiān)測進行改進和優(yōu)化,整體改進流程如圖1所示。

      圖1 委托權益證明共識機制的改進流程

      區(qū)塊鏈節(jié)點首先通過PoW“挖礦”機制篩選出部分節(jié)點組成代理節(jié)點集合,同時為代理節(jié)點集合中的節(jié)點設置權益上限,并通過投票機制選出共識節(jié)點集合。在共識節(jié)點集合中,獲得投票權益更高的節(jié)點組成見證人節(jié)點集合參與區(qū)塊的打包和驗證;剩余的節(jié)點成為候選節(jié)點集合,用于及時替換見證人節(jié)點集合中出現(xiàn)異常行為的節(jié)點。在出塊過程中,通過可驗證隨機函數(shù)(VRF)隨機選擇見證人節(jié)點集合中的節(jié)點參與區(qū)塊打包,并通過信譽積分對節(jié)點行為進行評斷,同時利用沙普利值的計算方式對成功出塊的節(jié)點所獲得的系統(tǒng)獎勵進行合理分配。最后,將出塊節(jié)點當前的信用積分、所獲得的投票權益以及系統(tǒng)獎勵作為指標計算其綜合信譽值(PCredit),并利用PCredit 值動態(tài)調(diào)整見證人集合和候選節(jié)點集合中的節(jié)點,盡最大可能保證每一輪共識過程中所有見證人節(jié)點都能正常打包區(qū)塊,提高系統(tǒng)的穩(wěn)定性和安全性。

      1.1 改進的共識節(jié)點選舉機制

      針對DPoS 共識機制中共識節(jié)點選舉公平性問題,對其做出如下優(yōu)化:

      (1)利用PoW 機制完全去中心化的特性對DPoS共識機制的節(jié)點選舉過程進行改進。首先,設置節(jié)點挖礦的時間來動態(tài)調(diào)整PoW機制中哈希計算的難度值,使得區(qū)塊鏈系統(tǒng)中大多數(shù)節(jié)點都能公平地參與記賬權的競爭,并規(guī)定在設置的時間內(nèi)能夠找到隨機數(shù)nonce的節(jié)點將成為代理節(jié)點,為共識節(jié)點的進一步選舉做了初步篩選[16]。通過降低并動態(tài)調(diào)整哈希計算的難度值,能夠讓更多的算力較小的節(jié)點也能有機會成為共識節(jié)點,體現(xiàn)出選舉的公平性。

      在PoW 共識機制中,當難度值為n時,節(jié)點基于自身算力通過蠻力法不斷地進行哈希碰撞以求解滿足要求的隨機數(shù)nonce,使得求解出的nonce 值拼接前一區(qū)塊的哈希值(PreHash)再次進行哈希計算得出的哈希值(CurHash)滿足前n位為0,即挖礦成功[17]。當前,PoW 始終保持每10 min 左右打包一個區(qū)塊,其難度值的計算公式如式(1)所示:

      在上式基礎上對PoW的難度值的計算方式進行調(diào)整,設置允許節(jié)點參與挖礦的時間為60 s。為了滿足更多節(jié)點基于算力挖礦的條件,將挖難度值設置為5,此時大部分節(jié)點能夠在幾十秒內(nèi)挖礦成功,找到滿足要求的隨機數(shù)nonce。同時,為了提高選舉效率,當成功創(chuàng)建360個區(qū)塊時進行一次難度調(diào)整,由于挖礦時間設置為60 s,因此相當于每6 h調(diào)整一次難度值,改進后的難度值計算公式如式(2)所示:

      式(1)~(2)中:curD表示當前區(qū)塊的難度值,preD表示前一區(qū)塊的難度值,allTime表示創(chuàng)建2016個區(qū)塊所花的總時間,其值接近于20160,單位為min;totalTime表示創(chuàng)建360 個區(qū)塊所花的總時間,其值接近于21600,單位為s。

      通過對PoW 挖礦時間的限制和難度值的調(diào)整,使得能夠在60 s 內(nèi)挖礦成功的節(jié)點進入代理節(jié)點集合,為共識節(jié)點的選取做了初步篩選[18]。在節(jié)點計算哈希難題時,如果當前節(jié)點的算力較大時,其挖礦時間可能少于60 s,則21600totalTime將大于1,此時curD將大于preD;如果當前節(jié)點的算力較小時,其挖礦時間可能大于60 s,則21600totalTime將小于1,此時curD將小于preD。故通過對挖礦難度的動態(tài)調(diào)整能夠讓更多算力不同的節(jié)點公平地競爭出塊權。

      (2)為了防止持幣量大的節(jié)點惡意攻擊,對利用PoW 篩選出來的節(jié)點和投票節(jié)點設置權益上限。由于DPoS 是在PoS 機制上演進而來的具有更高效率的共識機制,因此在投票過程中繼承了PoS 中幣齡的概念,通過權益投票選擇共識節(jié)點[19]。在DPoS中節(jié)點的權益用幣齡表示,即幣齡等于所持代幣數(shù)與持幣時間的乘積[21],如式(3)所示:

      其中:coinAge表示節(jié)點的幣齡,coinCount代表節(jié)點所擁有的代幣數(shù),coinTime表示持幣時間。

      在式(3)的基礎上,對節(jié)點的幣齡設置上限,規(guī)定幣齡最大值(mCoinAge)為2000,同時規(guī)定所有節(jié)點持幣時間的最大值(mCoinTime)為30 d,則幣齡計算如式(4)所示:

      從上式可以看出,當節(jié)點持幣時間達到最大值或者幣齡本身達到自身設置的最大值時,節(jié)點的幣齡均不會再增長,不僅能夠限制見證人節(jié)點可接受的最大投票總量,避免“財閥統(tǒng)治”[20]局面的出現(xiàn),還能促使持有大量token 的節(jié)點將權益投給多個見證人節(jié)點以獲得更多的投票回報獎勵,從而平衡節(jié)點的出塊概率,降低“賄賂攻擊”[21]的幾率。

      (3)權益持有者通過投票機制將自身持有的token委托給代理節(jié)點集合中的節(jié)點,并在節(jié)點最大權益限制的情況下根據(jù)代理節(jié)點中節(jié)點獲得的權益投票比例進行排序,選出排名前30的節(jié)點組成共識節(jié)點集合,其中排名前21的節(jié)點組成見證人節(jié)點集合,剩余節(jié)點組成候選節(jié)點集合。假設代理節(jié)點集合中節(jié)點i有n個權益投票人,則其最終獲得的投票權益計算如式(5)所示:

      其中:Vtotali表示代理節(jié)點集合中第i個節(jié)點最終獲得的投票權益,mCoinAge表示節(jié)點權益上限,NodecoinAgej表示第j個投票節(jié)點擁有的權益值,V coinAge i表示代理節(jié)點集合中第i個節(jié)點當前權益值。

      1.2 優(yōu)化共識節(jié)點出塊機制

      在區(qū)塊鏈系統(tǒng)中,DPoS共識算法所維護的見證人節(jié)點集合中所有節(jié)點均獲得記賬權后稱為完成一輪共識,當某一個見證人節(jié)點獲得記賬權并完成區(qū)塊的打包后稱為完成一次共識過程。在傳統(tǒng)的DPoS共識協(xié)議中,每一輪共識過程都是按照既定的見證人節(jié)點順序參與區(qū)塊的打包,惡意節(jié)點能夠通過已知的出塊順序發(fā)起合謀攻擊[21]。為了減少被攻擊的概率,對見證人節(jié)點的出塊順序進行改進,利用可驗證隨機函數(shù)(VRF)[22]改變每輪參與共識的節(jié)點順序,增加惡意節(jié)點攻擊的成本,防止合謀攻擊。

      利用VRF 生成隨機數(shù)來確定見證人節(jié)點的出塊順序,其隨機數(shù)的生成及驗證過程如下:

      (1)生成一對公私鑰,分別為pubKey和priKey。

      (2)生成隨機數(shù):

      RanNum=VRF_HASH(priKey,hashValue)。

      (3)生成驗證數(shù):

      VerNum=VRF_PROOF(priKey,hashValue)。

      (4)將RanNum和VerNum廣播給驗證者進行如下計算:

      RanNum=VRF_P2H(VerNum)。

      (5)當?shù)?步驗證通過,則對當前區(qū)塊哈希值進行驗證:

      VRF_VERIFY(pubKey,hashValue,verNum)。

      (6)如果第5 步中函數(shù)的返回值是TRUE,則驗證通過;若函數(shù)返回值為FALSE,則表明產(chǎn)生的隨機數(shù)被篡改。

      利用VRF 生成的隨機數(shù)在見證人節(jié)點集合中選取出塊節(jié)點,計算如式(6)所示:

      其中:RanNode表示本次獲得出塊權力的見證人節(jié)點編號,RanNum表示利用可驗證隨機函數(shù)生成的隨機數(shù),NodeNum表示見證人節(jié)點集合中節(jié)點數(shù)量。

      在出塊節(jié)點選取過程中,將當前負責出塊的見證人節(jié)點的私鑰設置成priKey,并通過當前區(qū)塊的哈希值hashValue生成RanNum和VerNum。當利用VRF 生成隨機數(shù)選取下一個出塊節(jié)點時,前一個出塊節(jié)點會將計算出的RanNum和VerNum廣播給其他見證人節(jié)點,此時其它的見證人節(jié)點可以對隨機數(shù)和下一個出塊節(jié)點進行驗證,如果超過2/3 的節(jié)點通過驗證,則說明隨機數(shù)未被篡改,下一個出塊節(jié)點將被確定。算法1概括了優(yōu)化后的見證人節(jié)點出塊機制。

      算法1:witnessNodeBlockProcess()

      1.3 改進的獎勵分配機制

      針對DPoS 算法中權益分配不均以及節(jié)點投票不積極問題,利用博弈論中沙普利值的計算方式對見證人節(jié)點的區(qū)塊獎勵進行合理分配。

      在博弈論中,根據(jù)局中人之間是否存在約束力將博弈分為合作博弈與非合作博弈[23]。在DPoS 共識機制中,當不同的權益持有者給同一個目標節(jié)點投票時,此目標節(jié)點與投票的節(jié)點將形成了一個“利益共同體”,只有當目標節(jié)點成為見證人節(jié)點后,投票節(jié)點才能獲得最大收益。因此,給同一見證人節(jié)點投票的節(jié)點之間形成了合作博弈的關系[24]。在合作博弈中,主要討論的對象是聯(lián)盟以及如何解決聯(lián)盟中每個局中人的收益分配問題。

      本文將DPoS 共識機制中給同一個目標節(jié)點投票的所有節(jié)點形成的“利益共同體”[25]集群稱為一個聯(lián)盟N,聯(lián)盟中的節(jié)點稱為局中人,為每一個聯(lián)盟定義一個價值函數(shù)V,并規(guī)定V( )?= 0,則聯(lián)盟博弈可以表示為(N,V)。在DPoS 的投票博弈中,每個局中人在聯(lián)盟中的邊際貢獻稱為沙普利值,若某個聯(lián)盟獲得總投票權益的一半,則該聯(lián)盟獲勝,目標節(jié)點將成為見證人節(jié)點;同時,為了限制節(jié)點投票的時間,防止節(jié)點無限期拖延投票,將時間作為節(jié)點沙普利值計算的一個因素。若用W表示獲勝的聯(lián)盟,則對于任意的子聯(lián)盟S其價值函數(shù)定義如式(7)[24]所示:

      則此時聯(lián)盟S中節(jié)點i的沙普利值如式(8)[25]所示:

      其中:Ti表示節(jié)點i投票結束的時間,Tvote表示發(fā)起投票的時間。當Ti-Tvote越小則說明節(jié)點投票花費的時間越少,此時分母越小節(jié)點的沙普利值越大,從而能夠促進更多的節(jié)點在規(guī)定時間范圍內(nèi)參與投票。

      假設見證人節(jié)點i有n個投票節(jié)點,當成功出塊后獲得的出塊獎勵為RBi,則每個投票節(jié)點的獎勵如式(10)所示。通過沙普利值為該見證人節(jié)點投票的節(jié)點分配獎勵后,該見證人節(jié)點最終獲得的區(qū)塊獎勵為Ri,如式(11)所示。

      區(qū)塊鏈系統(tǒng)的激勵機制是保證系統(tǒng)按照既定的規(guī)則穩(wěn)定運行的關鍵[26]。因此,更加合理的節(jié)點獎勵分配制度能夠避免節(jié)點通過作惡的方式獲取更多的收益,提高節(jié)點參與共識以及投票的積極性。通過引入了博弈論中沙普利值的計算方式對見證人節(jié)點打包區(qū)塊所獲得的系統(tǒng)獎勵進行合理分配,以獎勵回報的方式鼓勵更多的節(jié)點保持在線并積極參與投票,使得更多的小節(jié)點通過投票獲得一定的收益,提高其成為共識節(jié)點的機會,從而增強去中心化程度,不僅能夠解決區(qū)塊鏈系統(tǒng)中節(jié)點的“社會分層”現(xiàn)象[27],還能夠使得見證人節(jié)點和投票節(jié)點之間形成利益共同體,共同維護系統(tǒng)的安全和穩(wěn)定。算法2概括了改進后的節(jié)點獎勵分配機制。

      算法2:blockRewardDistribution()

      1.4 見證人節(jié)點動態(tài)轉換機制

      DPoS 共識機制中對異常節(jié)點并沒有及時的處理方式,而是在下一輪投票中將惡意節(jié)點通過投票的方式投票出局[28]。但為了保證算法的高效性,DPoS 共識機制的見證人集合會維持一定的時間段后再進行下一輪投票,通常都是利用鎖定機制進行投票,例如在企業(yè)運營系統(tǒng)(EOS)項目中,見證人節(jié)點集合鎖定每24 h 進行一次投票更新,從而防止因為頻繁投票而降低系統(tǒng)的性能[29]。因此,在下一輪投票開始之前,該異常節(jié)點還有機會參與出塊。如果該節(jié)點是因為節(jié)點宕機、斷電、網(wǎng)絡延遲等不可避免的因素出現(xiàn)異常行為,則在后面可能恢復正常。但如果該節(jié)點本身就是惡意節(jié)點,那么在下一輪共識過程中該節(jié)點可能持續(xù)作惡,導致出塊延遲、交易堵塞等問題。因此,本文在將通過投票系統(tǒng)選出的共識節(jié)點集合分為了見證人節(jié)點集合和候選節(jié)點集合,當見證人集合中某個節(jié)點出現(xiàn)異常行為時,將通過動態(tài)轉換機制將異常節(jié)點和候選節(jié)點集合中的節(jié)點及時進行替換,以保證在下一輪共識中所有節(jié)點均能正常打包區(qū)塊。

      在見證人節(jié)點動態(tài)轉換機制中,每一輪投票結束后給共識節(jié)點集合中的所有節(jié)點初始化一個信譽值(Credit),通過信譽積分對見證人節(jié)點的行為進行評斷,且初始賦值為100。當每次見證人節(jié)點出現(xiàn)異常行為時扣除10,每次正常出塊后信譽值增加1,通過節(jié)點信譽值丟失容易而難以積累的機制來限制節(jié)點作惡的行為;同時結合該節(jié)點所獲得的投票權益以及當前所獲得的系統(tǒng)獎勵計算節(jié)點的綜合信譽值(PCredit),并通過PCredit對節(jié)點進行動態(tài)轉換。其中第i個見證人節(jié)點的PCredit如式(12)所示:

      其中:α+β+γ= 1,并設定權益的權重為α= 0.2,區(qū)塊獎勵的權重為β= 0.3,信譽積分的權重為γ =0.5。由于每一輪投票后,共識節(jié)點集合中的節(jié)點會進行一次更新,而投票權益也會隨之更新,重新選出投票權益較大的節(jié)點構成共識節(jié)點集合,因此權益的權重系數(shù)最小;而信譽值只是給每一輪投票后產(chǎn)生的節(jié)點進行初始化賦值,其他普通投票節(jié)點并沒有信譽值,因此為了體現(xiàn)公平性,每次投票前均需要將上一輪投票選出的共識節(jié)點中所有節(jié)點的信譽值歸零處理,在下一輪投票選出共識節(jié)點集合后重新進行信譽值初始化,使得信譽值只對當前這一組共識節(jié)點進行行為評斷,并通過信譽獎懲及時處理惡意節(jié)點,因此信譽權重最大;同時,節(jié)點通過沙普利值分配得到的獎勵是節(jié)點通過長期積極投票或者有效出塊所積累的,因此在計算PCredit中系統(tǒng)獎勵所占權重比權益所占權重大,使得即使是算力大的節(jié)點也不能僅僅通過當前的算力優(yōu)勢獲得記賬權。

      在進行第一輪共識時,共識節(jié)點集合中所有節(jié)點的信譽值均相等,而見證人集合中的節(jié)點的投票權益比候選節(jié)點集合中節(jié)點的投票權益多,初始的系統(tǒng)獎勵均為0。當見證人節(jié)點集合中的節(jié)點完成一輪共識后,系統(tǒng)將計算見證人節(jié)點集合中所有節(jié)點的PCredit,當節(jié)點的PCredit低于系統(tǒng)設定的閾值時將自動退出見證人節(jié)點集合,此時候選節(jié)點集合中PCredit最大的節(jié)點將自動依次進入見證人節(jié)點集合去填補見證人節(jié)點集合中退出的節(jié)點;當完成一輪共識后,見證人節(jié)點集合中節(jié)點的PCredit均大于系統(tǒng)設定的閾值時,此時見證人集合中的節(jié)點將依次與候選節(jié)點集合中的節(jié)點的PCredit進行比較,用候選節(jié)點集合中PCredit更大的節(jié)點去替換見證人節(jié)點集合中PCredit相對較小的節(jié)點。通過PCredit值對見證人節(jié)點進行動態(tài)轉換能夠及時對異常節(jié)點進行處理,提高系統(tǒng)運行的穩(wěn)定和安全性,見證人節(jié)點動態(tài)轉換機制如圖2所示。

      圖2 見證人節(jié)點動態(tài)轉換流程

      2 實驗結果及分析

      2.1 實驗環(huán)境

      為驗證改進后的DPoS算法的有效性,在相同的模擬環(huán)境下從多個維度對DPoS 算法改進前后進行驗證分析。實驗在處理器Intel? CoreTM i7-7700 CPU@ 3.6 GHz 的64 位Windows 10 企業(yè)版平臺上,在go1.16windows-amd64 環(huán)境下利用Go 語言模擬了DPoS 算法,采用Geth 搭建101 個以太坊節(jié)點集群。最后,通過MATLAB R2016b 對最終的實驗數(shù)據(jù)進行可視化對比評價。

      2.2 算法驗證

      2.2.1 節(jié)點安全性驗證

      在DPoS共識機制中,共識節(jié)點選取過程的公平性和安全性將直接影響整個區(qū)塊鏈系統(tǒng)的性能。為了驗證改進后的DPoS 共識算法在節(jié)點選取階段是否能提高共識節(jié)點的可信度,在惡意節(jié)點占比30%的情況下通過多輪投票并統(tǒng)計對比了每輪選出的共識節(jié)點集合中誠實節(jié)點所占的比例,實驗結果如圖3 所示。從圖3 中可以看出,改進后的DPoS 共識算法通過投票機制選出的共識節(jié)點集合中誠實節(jié)點所占比例更高;且隨著投票輪次的增加,共識節(jié)點集合中誠實節(jié)點的占比逐漸增加并保持在92%左右,而傳統(tǒng)的DPoS共識算法選出的共識節(jié)點集合中誠實節(jié)點所占比例最終保持在83%左右。實驗結果表明,利用PoW挖礦機制對節(jié)點進行初步篩選,能夠讓更多節(jié)點基于算力通過更加公平的競爭成為共識節(jié)點;同時,在此基礎上通過對節(jié)點權益設置上限有效地避免了權益大的節(jié)點之間的“賄賂攻擊”,從而降低了惡意節(jié)點成為共識節(jié)點的幾率。

      圖3 共識節(jié)點集合中誠實節(jié)點比例

      此外,為了驗證改進后的DPoS共識機制的容錯性,在共識過程中通過斷網(wǎng)的方式模擬見證人節(jié)點遭受攻擊成為惡意節(jié)點的情況。當存在3個惡意節(jié)點時,統(tǒng)計了在50輪共識過程中共識節(jié)點產(chǎn)生有效區(qū)塊的個數(shù),其結果如圖4 所示。從圖4 中可以看出,在相同的模擬環(huán)境下,改進后的DPoS 共識機制能夠產(chǎn)生更多的有效區(qū)塊,這是因為改進后的DPoS共識機制中能夠通過見證人節(jié)點動態(tài)轉換機制及時處理惡意節(jié)點,當節(jié)點出現(xiàn)惡意行為時,系統(tǒng)能夠利用信用懲罰的方式通過備用節(jié)點集合對惡意節(jié)點進行及時替換,不需要通過下一輪投票剔除惡意節(jié)點,使得即使存在惡意節(jié)點的情況下也能保證在下一輪共識過程中盡最大可能產(chǎn)生有效區(qū)塊,提高了系統(tǒng)的容錯性,在一定程度上提高了系統(tǒng)的吞吐率和安全性。

      圖4 共識機制容錯率對比

      2.2.2 節(jié)點獎勵分配與投票積極性驗證

      在DPoS共識機制中,由于只有部分代表節(jié)點參與區(qū)塊的打包和驗證,使得區(qū)塊鏈系統(tǒng)中大部分節(jié)點長期處于不在線的狀態(tài)。本文為了驗證博弈論中沙普利值的計算方式對區(qū)塊獎勵均衡劃分以及對促進節(jié)點積極投票的有效性,在相同的環(huán)境下對改進前后的DPoS 共識機制進行了20 輪共識過程,對兩種算法中投票節(jié)點獲得的區(qū)塊獎勵以及參與投票的節(jié)點數(shù)量進行了統(tǒng)計和對比,其結果如圖5所示。

      在共識節(jié)點的選舉過程中,參與投票的節(jié)點大多數(shù)都是小節(jié)點。在本文的改進過程中,由于對節(jié)點的權益設置了上限,使得擁有較大權益的節(jié)點也不能將自身持有的權益投給一個節(jié)點,而是將自身權益分投給多個節(jié)點。因此,小節(jié)點的獎勵分配將直接影響其投票的積極性。從圖5(a)中可以得出,改進后的DPoS共識機制中,隨著投票節(jié)點中小節(jié)點個數(shù)的增加,小節(jié)點總體獲得的獎勵比重持續(xù)增加,而傳統(tǒng)DPoS 共識機制中,小節(jié)點獲得的獎勵并沒有明顯提高。這是因為在傳統(tǒng)的DPoS 共識機制中,投票節(jié)點最終獲得的獎勵是根據(jù)自身投票權益所占的比重進行分紅,使得那些大節(jié)點始終占據(jù)主導地位,從而加劇節(jié)點之間的“貧富差距”;而利用沙普利值通過每個投票節(jié)點的邊際貢獻對區(qū)塊獎勵進行分配,有利于使小節(jié)點獲得的收益更加合理。同時,在擁有101 個區(qū)塊鏈節(jié)點的集群中進行20 輪的共識投票,對積極參與投票的節(jié)點進行統(tǒng)計分析,其結果如圖5(b)所示,改進后的DPoS 共識機制能促進更多的節(jié)點參與共識投票,表明利用沙普利值對區(qū)塊獎勵進行分配不僅能夠避免大節(jié)點的“財閥統(tǒng)治”,還能促進更多的節(jié)點保持在線,共同維護系統(tǒng)安全。

      圖5 節(jié)點獎勵分配與投票積極性

      2.2.3 時間效率對比分析

      對比分析了20 輪共識過程中DPoS 共識機制改進前后的時間消耗,結果如圖6所示。

      圖6 時間效率對比

      從圖6 中可以看出,改進后的DPoS 共識算法略大于傳統(tǒng)的DPoS 共識算法的時間消耗。因為在DPoS共識機制的整體改進過程中,為了讓大部分節(jié)點擁有更公平的機會參與到記賬權競爭中,在共識節(jié)點選舉的前期階段利用了工作量證明中的挖礦機制對節(jié)點進行了初步篩選,但挖礦機制是基于數(shù)學難題的哈希計算,相對于傳統(tǒng)DPoS中的直接委托投票選舉而言,其時間消耗必然增加。因此為了平衡節(jié)點共識的公平性和整體時間開銷,限制了挖礦的難度并鎖定了節(jié)點挖礦時間為60 s 左右。在共識階段,傳統(tǒng)DPoS共識機制是按照既定的順序依次打包區(qū)塊;為了防止惡意節(jié)點的有效攻擊,本文利用可驗證隨機函數(shù)(VRF)增強了打包區(qū)塊的共識節(jié)點的隨機性,強化了共識過程的安全性,但VRF 的引入在一定程度上也增加了系統(tǒng)的開銷。在權益分配階段,傳統(tǒng)DPoS共識機制中各節(jié)點的最終權益是根據(jù)委托比重進行分紅;為了讓更多小節(jié)點獲得更多的權益,本文基于節(jié)點對共識過程中的貢獻利用沙普利值對權益進行了合理劃分,促進了更多節(jié)點積極參與到共識過程中來共同維護系統(tǒng)的穩(wěn)定,但同時也增加了整體算法的復雜度,因此改進后的DPoS算法需要花費更多的時間。

      綜上分析,雖然改進前后兩種機制的時間消耗有所不同,但并沒拉開太大的差距,總體上提高了系統(tǒng)的安全性,且DPoS 共識機制目前主要運行在EOS系統(tǒng)中,能夠容忍秒級單位范圍內(nèi)的時間消耗。因此,綜合考慮區(qū)塊鏈系統(tǒng)的穩(wěn)定性和效率,改進后的DPoS 算法能夠在相對高效的時間效率下更好地保證出塊的安全。

      3 結束語

      為了兼顧區(qū)塊鏈公鏈系統(tǒng)效率與其安全性,本文從共識節(jié)點的選舉、見證人節(jié)點出塊順序以及權益分配方面進行了改進和優(yōu)化。通過PoW 算法的“挖礦”機制增強了共識節(jié)點選舉的公平性,提高了小節(jié)點成為共識節(jié)點的幾率;同時,利用可驗證隨機函數(shù)優(yōu)化了見證人節(jié)點打包區(qū)塊的順序,增加了節(jié)點作惡的成本,在一定程度上防止了“合謀攻擊”的現(xiàn)象;最后,利用沙普利值的計算方式實現(xiàn)了對節(jié)點獎勵分配的均衡化,有效地避免了區(qū)塊鏈系統(tǒng)中“財閥統(tǒng)治”的局面,促進了節(jié)點投票積極性。實驗結果表明,本文的改進方法對DPoS共識協(xié)議的安全性有所鞏固,在保證算法高效出塊的情況下平衡了記賬權的競爭。但仍存在一些不足之處,在增強共識節(jié)點選舉公平性的同時,如何進一步減少時間開銷以及如何使得節(jié)點的權益分配達到納什均衡將是接下來的重要研究工作。

      猜你喜歡
      見證人挖礦共識
      合力攻堅 全面治理高?!巴诘V”
      多措并舉 全流程整治“挖礦”
      共識 共進 共情 共學:讓“溝通之花”綻放
      論思想共識凝聚的文化向度
      商量出共識
      人大建設(2019年12期)2019-11-18 12:11:06
      挖礦木馬的攻擊手段及防御策略研究
      挖礦的史蒂夫
      見證人先于立遺囑人死亡,遺囑是否有效
      伴侶(2018年7期)2018-07-25 05:47:36
      基層院反映司法實踐中刑事見證人制度實施亟待規(guī)范
      法制博覽(2017年28期)2017-01-27 12:45:19
      別讓“PX共識”在爆炸中瓦解
      江都市| 呼图壁县| 桃源县| 乌拉特中旗| 长丰县| 上栗县| 盘锦市| 城步| 名山县| 阿拉善盟| 南木林县| 彭州市| 肃南| 莲花县| 荥经县| 瑞金市| 宜章县| 保靖县| 兰考县| 通州区| 鹿泉市| 呈贡县| 康定县| 永州市| 葫芦岛市| 姚安县| 通海县| 梧州市| 泗阳县| 新巴尔虎左旗| 汾西县| 石渠县| 湖南省| 怀仁县| 榆中县| 乌拉特后旗| 曲周县| 阿坝县| 神池县| 谷城县| 耿马|