亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于信譽(yù)授權(quán)的DPoS共識機(jī)制改進(jìn)研究

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

        何 帥,黃襄念

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

        引 言

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

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

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

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

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

        1 委托權(quán)益證明共識機(jī)制的改進(jìn)方案

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

        圖1 委托權(quán)益證明共識機(jī)制的改進(jìn)流程

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

        1.1 改進(jìn)的共識節(jié)點(diǎn)選舉機(jī)制

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

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

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

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

        式(1)~(2)中:curD表示當(dāng)前區(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é)點(diǎn)進(jìn)入代理節(jié)點(diǎn)集合,為共識節(jié)點(diǎn)的選取做了初步篩選[18]。在節(jié)點(diǎn)計算哈希難題時,如果當(dāng)前節(jié)點(diǎn)的算力較大時,其挖礦時間可能少于60 s,則21600totalTime將大于1,此時curD將大于preD;如果當(dāng)前節(jié)點(diǎn)的算力較小時,其挖礦時間可能大于60 s,則21600totalTime將小于1,此時curD將小于preD。故通過對挖礦難度的動態(tài)調(diào)整能夠讓更多算力不同的節(jié)點(diǎn)公平地競爭出塊權(quán)。

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

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

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

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

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

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

        1.2 優(yōu)化共識節(jié)點(diǎn)出塊機(jī)制

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

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

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

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

        RanNum=VRF_HASH(priKey,hashValue)。

        (3)生成驗(yàn)證數(shù):

        VerNum=VRF_PROOF(priKey,hashValue)。

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

        RanNum=VRF_P2H(VerNum)。

        (5)當(dāng)?shù)?步驗(yàn)證通過,則對當(dāng)前區(qū)塊哈希值進(jìn)行驗(yàn)證:

        VRF_VERIFY(pubKey,hashValue,verNum)。

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

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

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

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

        算法1:witnessNodeBlockProcess()

        1.3 改進(jìn)的獎勵分配機(jī)制

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

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

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

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

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

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

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

        算法2:blockRewardDistribution()

        1.4 見證人節(jié)點(diǎn)動態(tài)轉(zhuǎn)換機(jī)制

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

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

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

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

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

        2 實(shí)驗(yàn)結(jié)果及分析

        2.1 實(shí)驗(yàn)環(huán)境

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

        2.2 算法驗(yàn)證

        2.2.1 節(jié)點(diǎn)安全性驗(yàn)證

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

        圖3 共識節(jié)點(diǎn)集合中誠實(shí)節(jié)點(diǎn)比例

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

        圖4 共識機(jī)制容錯率對比

        2.2.2 節(jié)點(diǎn)獎勵分配與投票積極性驗(yàn)證

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

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

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

        2.2.3 時間效率對比分析

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

        圖6 時間效率對比

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

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

        3 結(jié)束語

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

        猜你喜歡
        見證人挖礦共識
        合力攻堅 全面治理高校“挖礦”
        多措并舉 全流程整治“挖礦”
        共識 共進(jìn) 共情 共學(xué):讓“溝通之花”綻放
        論思想共識凝聚的文化向度
        商量出共識
        挖礦木馬的攻擊手段及防御策略研究
        挖礦的史蒂夫
        見證人先于立遺囑人死亡,遺囑是否有效
        伴侶(2018年7期)2018-07-25 05:47:36
        基層院反映司法實(shí)踐中刑事見證人制度實(shí)施亟待規(guī)范
        法制博覽(2017年28期)2017-01-27 12:45:19
        別讓“PX共識”在爆炸中瓦解
        国产白嫩护士被弄高潮| 国产日本精品一二三四区| 国产女主播一区二区三区| 国产美女高潮流白浆免费视频| 疯狂三人交性欧美| 97精品久久久久中文字幕| 国产一区二区三精品久久久无广告 | 韩国女主播一区二区在线观看| 久久久国产精品麻豆| 欧美色色视频| 国产女人体一区二区三区| 亚洲一区二区三区在线| 国产一区在线视频不卡| 粉嫩国产av一区二区三区| 久久久国产精品va麻豆| 久久久www成人免费精品| 欧洲日本一线二线三线区本庄铃| 久久中文字幕av一区二区不卡 | 国产精品久免费的黄网站| 亚洲精品美女自拍偷拍| 在线免费观看亚洲天堂av| 国产成人精品一区二区三区av| 激情综合五月婷婷久久| 国产乱子伦| 国产av无码专区亚洲av琪琪| 激情婷婷六月| 免费va国产高清不卡大片| 亚洲一区二区三区国产精品| 国产精品一区二区三区在线观看 | 日本熟女人妻一区二区三区| 五月开心六月开心婷婷网| 波多野结衣久久精品99e| 国产国语熟妇视频在线观看| 国产精品黄网站免费观看| av网站可以直接看的| 国产精品国产三级国产av品爱| 日本公妇在线观看中文版| 中文字幕乱码人妻无码久久麻豆| 国产高清天干天天视频| 白白色日韩免费在线观看| 亚洲国产色一区二区三区|