◆馬超宇
基于貢獻機制的獎懲算法
◆馬超宇
(遼寧大學(xué) 遼寧 110036)
針對區(qū)塊鏈中委托權(quán)益證明共識機制中惡意節(jié)點無法被快速剔除的問題,本文提出一種基于貢獻機制的獎懲算法。在該算法中,通過對代理節(jié)點計算貢獻值并調(diào)度反饋系統(tǒng),實現(xiàn)了對優(yōu)良節(jié)點的獎勵和對惡意節(jié)點的懲罰,達到了對惡意節(jié)點的快速剔除。
區(qū)塊鏈;共識機制;貢獻機制;反饋系統(tǒng)
比特幣[1]和區(qū)塊鏈技術(shù)是人們關(guān)注的熱點,無論在計算機、醫(yī)學(xué)還是金融等領(lǐng)域[2],都有著廣泛影響。作為比特幣的底層架構(gòu),區(qū)塊鏈技術(shù)有著分布式、去中心化和不可篡改等特點[3]。而區(qū)塊鏈的核心,共識機制促進了該技術(shù)的快速發(fā)展。目前,區(qū)塊鏈中主要的共識機制有PoW[4]、PoS[5]、PBFT[6]、DPoS[7]等。這些共識機制在不同方面都存在著一些問題,本文便針對DPoS共識機制中存在的惡意節(jié)點無法被快速剔除的問題,提出了基于貢獻機制的獎懲算法,使得DPoS中的安全性得以保證。
本文通過定義貢獻機制等相關(guān)概念,提出了基于貢獻機制的獎懲算法。該算法通過計算代理節(jié)點的貢獻值,并調(diào)度反饋系統(tǒng),實現(xiàn)了對優(yōu)良節(jié)點和惡意節(jié)點的獎懲。
定義1 貢獻等級:系統(tǒng)為代理節(jié)點設(shè)定的狀態(tài)標(biāo)識。貢獻等級分為四級,不同等級代表不同代理節(jié)點的出塊狀況、行為和不同的貢獻值范圍。基于此,本文提出一種劃分貢獻值范圍的方法,其公式如下:


1級:代理節(jié)點在區(qū)塊生產(chǎn)的過程中多次產(chǎn)生有效區(qū)塊,次數(shù)大于累計值(一個常量,由系統(tǒng)設(shè)定),其貢獻值范圍為[0.75, 1];
2級:代理節(jié)點在區(qū)塊生產(chǎn)的過程中沒有產(chǎn)生無效區(qū)塊,其貢獻值范圍為[0.5, 0.75);
3級:代理節(jié)點在區(qū)塊生產(chǎn)的過程中產(chǎn)生過一些無效區(qū)塊,但次數(shù)小于累計值,其貢獻值范圍為[0.25, 0.5);
4級:代理節(jié)點在區(qū)塊生產(chǎn)的過程中多次產(chǎn)生過無效區(qū)塊,次數(shù)大于累計值,其貢獻值范圍為[0, 0.25)。
當(dāng)代理節(jié)點成功產(chǎn)生和驗證區(qū)塊后,系統(tǒng)會獎勵其0.05個貢獻值;若代理節(jié)點產(chǎn)生了無效區(qū)塊,系統(tǒng)則懲罰其0.1個貢獻值。
定義2 貢獻等級動態(tài)變更:代理節(jié)點的貢獻等級會根據(jù)其產(chǎn)生有效區(qū)塊的數(shù)量和連續(xù)性動態(tài)變化。代理節(jié)點的初始等級都為2級,貢獻值都為0.5。貢獻等級動態(tài)變更圖如圖1:

圖1 貢獻等級動態(tài)變更圖
定義3 貢獻值:貢獻等級的具體表現(xiàn)方式。貢獻值的大小將影響節(jié)點最終的代理選舉結(jié)果,初始值為0.5。基于此,本文提出了計算貢獻值的方法,其公式如下:

其中,?t表示上一區(qū)塊產(chǎn)生的時間,?t表示當(dāng)前區(qū)塊產(chǎn)生的時間。
定義4 反饋系統(tǒng):用來對不同貢獻等級的代理節(jié)點進行獎懲的實施。其具體實現(xiàn)如下:
步驟1:調(diào)度反饋系統(tǒng)后,反饋系統(tǒng)會創(chuàng)建兩張狀態(tài)表,用來動態(tài)維護黑白名單;
步驟2:根據(jù)代理節(jié)點的貢獻值將代理節(jié)點的相關(guān)信息記錄到相應(yīng)的名單中去;
步驟3:對不同貢獻等級的代理節(jié)點進行相應(yīng)的操作。
通過對比原始DPoS共識機制可以得出,本文提出的算法在對優(yōu)良節(jié)點的平均投票數(shù)上較后者的平均投票數(shù)高出很多;而對異常節(jié)點的平均投票數(shù)上較后者降低了很多。并且當(dāng)某一代理節(jié)點的貢獻等級降為4級后,本文提出的算法在對惡意節(jié)點的剔除效率上較后者提升了很多。
本文提出的算法解決了DPoS共識機制中惡意節(jié)點無法被快速剔除的問題。但本文仍有不足,即網(wǎng)絡(luò)中的節(jié)點會大幅減少。在后續(xù)的理論研究中,將繼續(xù)完善本文提出的算法。
[1]Nakamoto. Bitcoin: a peer-to-peer electronic cash system, https://bitcoin.org/bitcoin.pdf.
[2]何蒲,于戈,張巖峰,等. 區(qū)塊鏈技術(shù)與應(yīng)用前瞻綜述[J].計算機科學(xué), 2017, 44(4):1-7.
[3]袁勇,王飛躍. 區(qū)塊鏈技術(shù)發(fā)展現(xiàn)狀與展望[J]. 自動化學(xué)報, 2016, 42(4):481-494.
[4]BitFury Group. Proof of Stake versus Proof of Work,White Paper. https://bitfury.com/content/downloads/ pos-vs-pow-1.0.2.pdf.
[5]Sunny K, Scott N. PPCoin: Peer-to-Peer Crypto Currency with Proof-of-Stake.
[6]M. Castro and B. Liskow. Practical Byzantine Fault Toerance.
[7]BitShares. Delegated Proof of Stake, https://bitshares.org/ technology/delegated-proof-of-stake-consensus.