李一帆,徐雅斌+,劉欣然
(1.北京信息科技大學 網(wǎng)絡(luò)文化與數(shù)字傳播北京市重點實驗室,北京 100101; 2.北京信息科技大學 計算機學院,北京 100101)
隨著我國文化產(chǎn)業(yè)的迅猛發(fā)展,版權(quán)貿(mào)易日益頻繁,特別是在版權(quán)授權(quán)交易領(lǐng)域[1]。版權(quán)授權(quán)交易一方面能夠為版權(quán)擁有者宣傳推廣作品,實現(xiàn)原創(chuàng)作品價值的最大化,另一方面版權(quán)需求者可以快速獲取優(yōu)秀的作品,滿足個人或企業(yè)的需求。
但現(xiàn)如今,傳統(tǒng)的版權(quán)授權(quán)交易模式已無法滿足互聯(lián)網(wǎng)時代的需求。出現(xiàn)了例如版權(quán)歸屬難以厘清、版權(quán)交易缺乏透明度、集中式存儲導致版權(quán)信息及交易數(shù)據(jù)容易被竊取、篡改等諸多難以解決的問題[2]。為此,設(shè)計采用區(qū)塊鏈技術(shù)來實現(xiàn)可信的版權(quán)登記與授權(quán)交易,通過結(jié)合區(qū)塊鏈所具有的分布式存儲、去中心化、不可篡改等技術(shù)特點[3],可以有效解決傳統(tǒng)版權(quán)授權(quán)交易存在的確權(quán)難、交易不透明、數(shù)據(jù)安全性難以保障等難題。
而其中的共識算法作為區(qū)塊鏈系統(tǒng)最核心的組成部分,直接影響著版權(quán)登記與授權(quán)交易的安全性和效率。相比較而言,委托權(quán)益證明(delegated proof of stake,DPOS)共識算法由于其在主流公有鏈共識算法中相對出色的性能,能夠與版權(quán)交易業(yè)務(wù)實際需求相匹配,故選擇其作為此區(qū)塊鏈系統(tǒng)的共識機制。但是目前該算法卻在安全性上存在著不足。在共識過程中,各個節(jié)點往往為了讓自身獲取更大的利益,極易進行作惡。而惡意節(jié)點將會篡改區(qū)塊信息、產(chǎn)生持續(xù)生成無效區(qū)塊等行為[4],使區(qū)塊鏈版權(quán)交易數(shù)據(jù)的安全性大幅降低,并且該算法在效率上也有著一定的提升空間。因此,為了保障版權(quán)的登記與授權(quán)交易的安全性并提高其運行效率,本文將對區(qū)塊鏈DPOS共識算法開展研究。
本文的突出貢獻如下:
(1)首先針對DPOS共識算法使用的代表節(jié)點可信度不高的問題,提出了基于信用值和幣齡的DPOS共識算法,該算法采用CES生產(chǎn)函數(shù)模型對節(jié)點可信程度進行衡量,可顯著減少作惡節(jié)點當選代表節(jié)點的概率;
(2)由于經(jīng)典的順序出塊方法極易被預測到下一個出塊節(jié)點,為此我們采用基于混合同余算法的隨機出塊策略,使出塊的隨機性更強,安全性更高。同時增加改進區(qū)塊合法性驗證策略,使辨別合法區(qū)塊更加客觀、公正,整體提高共識算法的安全性;
(3)為了提高DPOS共識機制的效率,增加了基于出塊時間的信用值獎懲機制。該機制通過賦予網(wǎng)絡(luò)帶寬與節(jié)點性能更好的代表節(jié)點信用值獎勵,增大其成為出塊節(jié)點的概率,進一步提高系統(tǒng)的效率。
現(xiàn)如今區(qū)塊鏈技術(shù)在版權(quán)交易領(lǐng)域的應用越來越廣泛。例如MineLabs公司開發(fā)的區(qū)塊鏈系統(tǒng)Mediachain[5],該系統(tǒng)借助區(qū)塊鏈技術(shù)在互聯(lián)網(wǎng)上注冊、識別和跟蹤作品,實現(xiàn)發(fā)行商和創(chuàng)作者間的版權(quán)交易。Ascribe[6]利用比特幣區(qū)塊鏈技術(shù)為知識產(chǎn)權(quán)進行時間標記,給原創(chuàng)版權(quán)作品創(chuàng)建了可持續(xù)所有權(quán),并且使用區(qū)塊鏈技術(shù)對版權(quán)交易進行記錄。而目前,國內(nèi)基于區(qū)塊鏈的版權(quán)交易模式的建設(shè)才剛剛起步,如由上海七印科技推出的基于以太坊的版權(quán)交易平臺Primas[7],該平臺將內(nèi)容的特征值存入?yún)^(qū)塊鏈實現(xiàn)版權(quán)交易保護,但其采用工作量證明(proof of work,POW)作為共識機制,POW共識機制的核心是各個節(jié)點通過算力競爭來爭奪區(qū)塊的記賬權(quán)[8]。因此該算法在很大程度上造成了不必要的資源浪費,而且其性能較低,不能滿足快速交易的需要。
針對POW存在的問題,2012年股權(quán)證明機制(proof of stake,POS)由Sunny King[9]等提出,該算法是通過幣齡進行區(qū)塊記賬權(quán)的競爭,權(quán)益越大越容易獲得記賬權(quán),該策略雖解決了POW中浪費資源的問題,減少了共識的時間,但是問題也很明顯,單純使用幣齡會造成權(quán)益集中化的現(xiàn)象,增大作惡的風險。
DPOS是POS的演化版本,在DPOS共識算法[10]中每個擁有權(quán)益的節(jié)點都具有投票的權(quán)利,每個節(jié)點將可以給自己認為可信的節(jié)點投票,而得票數(shù)最多的節(jié)點,將成為代表節(jié)點進入委員會,代表節(jié)點的職責是生產(chǎn)區(qū)塊并進行區(qū)塊的驗證。在每一輪選舉結(jié)束之后,代表節(jié)點會輪流生產(chǎn)區(qū)塊,并且區(qū)塊的驗證只在代表節(jié)點內(nèi)部進行。
DPOS共識機制與POS相比大幅縮小參與驗證和記賬的節(jié)點的數(shù)量,效率有大幅提升。但與此同時,DPOS共識機制還存在一些不足。首先是安全性問題。如果代表節(jié)點中存在惡意節(jié)點,在產(chǎn)生區(qū)塊時,將會進行作惡,整個區(qū)塊鏈系統(tǒng)安全性也將無法保障[11]。其次是在效率上問題,目前基于DPOS的共識機制雖然部分算法可達到秒級,但與一些基于拜占庭共識的算法相比,仍有差距[12]。
DPOS共識機制作為目前區(qū)塊鏈系統(tǒng)研究領(lǐng)域的熱門方向,在國內(nèi)外對于該算法的改進研究主要從兩個方向上展開。第一個方向是DPOS與拜占庭類算法進行結(jié)合。如國外最知名的項目商用分布式設(shè)計區(qū)塊鏈操作系統(tǒng)(enterprise operation system,EOS)[13]對DPOS機制進行了改進,DPOS與拜占庭容錯算法(Byzantine fault tolerance,BFT)進行結(jié)合。在改進后的機制中,每輪只選出21位代表節(jié)點。雖然這種方式可以提高出塊速率,但是代表節(jié)點數(shù)量的減少會進一步導致系統(tǒng)中心化程度降低,導致節(jié)點作惡更加容易,破壞了系統(tǒng)的安全性。
第二個方向主要基于信用的獎懲機制進行設(shè)計,以降低異常節(jié)點成為代理節(jié)點的概率。此方法對代理節(jié)點的處理,相比于之前的算法無疑對系統(tǒng)安全性有了質(zhì)的提高,但是也存在著一定的不足。Fu等[14]在文獻中通過對節(jié)點信用值進行分級評價,以實現(xiàn)信用參數(shù)的選取。這種方法雖然也可以從宏觀上對節(jié)點的可信度進行大致判斷,但其顆粒度較粗,無法進行更有針對性的取舍。Zhang等[15]對DPOS的改進點在于,采用綜合其信用值加投票票數(shù)的方式對可信度進行評價。該方案的不足之處在于,對于代理節(jié)點選舉而言,一定會將投票目標選擇較為可靠的節(jié)點。但在論文中對節(jié)點可靠性的概念未有一個準確的定義,或給出一個量化的標準,甚至會有一些惡意的同行節(jié)點可以通過貶低其它節(jié)點來間接提高自己的得票數(shù)[16]。因此,將導致節(jié)點投票的隨機性較大,并且極有可能選擇惡意節(jié)點作為代表節(jié)點,或產(chǎn)生惡意節(jié)點共謀,不利于對最優(yōu)節(jié)點的選擇,導致區(qū)塊鏈整體安全性并未得到顯著提升。
傳統(tǒng)的DPOS共識機制作為區(qū)塊鏈核心模塊在安全性上有所不足。若在DPOS算法的代表節(jié)點中存在作惡節(jié)點,而作惡節(jié)點將只為了獲取自身利益而產(chǎn)生非法的區(qū)塊甚至不產(chǎn)生區(qū)塊,此問題嚴重影響著整個區(qū)塊鏈系統(tǒng)的安全性,目前無法適用于版權(quán)登記與授權(quán)交易情景中。
為此,本文針對DPOS共識算法開展研究,創(chuàng)新性的采用綜合信用值機制、隨機出塊算法、時間激勵算法、區(qū)塊驗證策略等技術(shù)手段對DPOS共識機制的各個重要環(huán)節(jié)進行全方位的改進,全面提升整個區(qū)塊鏈系統(tǒng)的效率和安全性,有效解決DPOS共識機制中惡意節(jié)點被選為代表節(jié)點進行作惡的問題,從而有效降低版權(quán)登記與交易系統(tǒng)的風險。
2.1.1 綜合信用值評分機制設(shè)計
綜合信用值評分采用千分制,每輪通過評分機制計算得出各個節(jié)點的綜合信用值,根據(jù)綜合信用值由高到低進行排序,選擇綜合信用值較高的前N個節(jié)點作為代表節(jié)點,負責產(chǎn)生區(qū)塊。同時利用該機制取代經(jīng)典算法中的投票機制進行代表節(jié)點的選擇,從而避免了在DPOS算法中出現(xiàn)投票不積極的現(xiàn)象,節(jié)省了投票時間,對安全性及效率具有一定程度的提升作用。
(1)綜合信用值參數(shù)的選擇
本文將節(jié)點信用值得分及其幣齡作為改進方案中計算綜合信用值的變量,通過信用值可以直接反應該節(jié)點的可信程度。每個節(jié)點初始信用值設(shè)置為500分。幣齡即該賬戶的持幣量與持幣時間的乘積,如式(1)所示
幣齡=持幣量*持幣時間
(1)
在傳統(tǒng)POS共識算法中,作為區(qū)塊記賬權(quán)競爭的主要因素,擁有幣量越大的節(jié)點幣齡就越大;持有時間越長的節(jié)點越容易獲得記賬權(quán)。采用幣齡作為綜合信用值評分參數(shù)時,作惡節(jié)點若想在前期獲取優(yōu)勢,則需投入大量資本,且持有一定時間。這樣,顯然增加了節(jié)點作惡的成本,從而降低了DPOS中節(jié)點作惡的意愿與能力,相應提高了安全性。
為避免因單純使用幣齡而導致權(quán)益集中化的現(xiàn)象,本文對有效持幣時間進行了修改,限制持幣時間為30天,幣齡的最大上限為1500分,以解決因幣齡無限增長而帶來的權(quán)益無限增大的問題。同時規(guī)定,每輪出塊節(jié)點出塊后的幣齡在數(shù)值上不進行重置。以此構(gòu)建綜合信用值評分模型,并在模型中強化信用值對記賬權(quán)競爭的影響。
(2)綜合信用值評分模型的構(gòu)建
本文采用改進CES生產(chǎn)函數(shù)[17]模型對節(jié)點綜合信用值進行評價,從而使代表節(jié)點的推選更加公平。CES生產(chǎn)函數(shù)即不變替代彈性生產(chǎn)函數(shù),是由阿羅和羅素等提出的。該模型不僅符合雙影響因素綜合評價規(guī)律,而且具有較好的統(tǒng)計特性,所以本文最終選取CES生產(chǎn)函數(shù)作為綜合信用值評分模型,如式(2)所示
Y=A(α1K-P+α2L-P)-1/P
(2)
其中,A為技術(shù)進步參數(shù),且A>0;K與L分別代表投入的勞動與資金兩種生產(chǎn)要素;α1與α2分別為勞動與資金的密集參數(shù),α1與α2均大于0,且α1+α2=1;P為替代參數(shù),且P≥-1。生產(chǎn)函數(shù)主要反映了在實際經(jīng)濟問題中,投入不同的生產(chǎn)要素與產(chǎn)出的關(guān)系。這里,我們基于該模型計算綜合信用值,實現(xiàn)對節(jié)點可信程度的評價。將信用值與幣齡作為模型中的初始投入生產(chǎn)要素,參數(shù)值α1與α2可根據(jù)實際情況進行調(diào)整,產(chǎn)出即為綜合信用值,以此作為區(qū)塊鏈節(jié)點是否可信賴的判斷依據(jù),同時使推選代表節(jié)點的過程相對公平。
2.1.2 信用值重置機制設(shè)計
為了防止數(shù)輪過后,由于節(jié)點綜合信用值差異過大而導致少數(shù)節(jié)點長期被選為代表節(jié)點,從而導致中心化,并可能發(fā)生潛在的作惡心理,我們設(shè)計了信用值重置機制。若節(jié)點信用值大于1000,則重置該節(jié)點信用值為500,從而保證代理節(jié)點合理的更替與輪換,且防止代表節(jié)點產(chǎn)生惰性,降低節(jié)點主觀作惡的意愿。
傳統(tǒng)DPOS算法在選舉出代表節(jié)點后,節(jié)點將順序輪流出塊。在本設(shè)計中,我們結(jié)合DPOS代表節(jié)點數(shù)量少、效率高的特點,采用混合同余算法進行隨機出塊計算。經(jīng)測試,該算法近300輪才會出現(xiàn)重復的隨機數(shù)。相比于其它普通隨機算法來說,其隨機性更高、質(zhì)量更好。委員會中節(jié)點隨機出塊,可避免惡意攻擊者預測到下一個出塊節(jié)點,并進行共謀,從而提升區(qū)塊鏈系統(tǒng)的安全性。算法步驟如下:
假定代表節(jié)點的總數(shù)為N,每個節(jié)點的下標為1~N,將使用混合同余算法生成的0到N-1之間的隨機數(shù)設(shè)為i。那么,下標為i+1對應的節(jié)點則為出塊節(jié)點,該節(jié)點進行出塊;若此代表節(jié)點成功生成區(qū)塊,完成出塊使命后,則代表節(jié)點總數(shù)變化為N-1,直至所有節(jié)點均完成出塊。
DPOS共識機制最突出的安全隱患即為惡意節(jié)點當選為代表節(jié)點,以至于代表節(jié)點所生產(chǎn)的區(qū)塊也并非是完全可信的。因此就需要在生成區(qū)塊之后對區(qū)塊進行驗證。在DPOS機制與其它文獻的DPOS機制改進設(shè)計中,區(qū)塊的產(chǎn)生及驗證均是通過委員會中的代表節(jié)點來實現(xiàn)。但如此設(shè)計,代表節(jié)點可類比為既當裁判員又當運動員,極易發(fā)生共謀,對惡意節(jié)點的驗證并不合理,因此本文將對區(qū)塊合法性驗證方式進行改進,將區(qū)塊驗證的權(quán)力從代表節(jié)點上脫離,賦予給除代表節(jié)點外綜合信用值較高,較為可信的一組節(jié)點,并且只有在驗證節(jié)點驗證結(jié)果一致的情況下,才可以把區(qū)塊添加到區(qū)塊鏈中。
具體區(qū)塊合法性驗證的過程如下,在DPOS共識機制選擇綜合信用值高的節(jié)點組成委員會后,選擇剩余節(jié)點中綜合信用值高的前N個節(jié)點組成驗證節(jié)點集,這N個節(jié)點即為區(qū)塊鏈的驗證節(jié)點;接下來生成的區(qū)塊需要通過驗證節(jié)點進行驗證,驗證內(nèi)容包括:區(qū)塊結(jié)構(gòu)是否完整;利用區(qū)塊鏈時間戳機制判斷新區(qū)塊的生成時間是否在上一個區(qū)塊之后;區(qū)塊體中的交易MerkleRoot是否與區(qū)塊頭中的MerkleRoot一致,在N個驗證節(jié)點對該區(qū)塊判斷結(jié)果均為合法的情況下,才可確認其為正常區(qū)塊,并在區(qū)塊通過驗證后將其保存到本地數(shù)據(jù)庫中,并廣播給周圍節(jié)點,至此完成共識機制的全部流程。本文中的改進區(qū)塊合法性驗證策略可更加客觀、公正的辨別合法區(qū)塊,提高區(qū)塊鏈系統(tǒng)的安全性。
為了彌補傳統(tǒng)DPOS共識機制在安全性及效率上的不足,本文增加了代表節(jié)點的信用值獎懲機制。對產(chǎn)生合法區(qū)塊的代表節(jié)點予以獎勵,對產(chǎn)生非法區(qū)塊或未生成區(qū)塊的代表節(jié)點予以懲罰,以減少作惡節(jié)點成為代表節(jié)點的概率,從而提升區(qū)塊鏈的安全性。在設(shè)計上,通過采用基于出塊時間的信用值獎懲機制,還可以增加性能更好的節(jié)點成為出塊節(jié)點的概率,從而提高區(qū)塊鏈系統(tǒng)的效率。
對經(jīng)過區(qū)塊驗證產(chǎn)生合法區(qū)塊的節(jié)點,若該節(jié)點名稱在委員會節(jié)點列表中,則將其信用值增加50分,對節(jié)點進行獎勵;對產(chǎn)生非法區(qū)塊或未能成功生成區(qū)塊等行為的節(jié)點,若該節(jié)點名稱在委員會節(jié)點列表中,則扣除信用值200分,以達到懲罰的目的。
算法1:代表節(jié)點獎懲算法
輸入:需計算信用值獎懲的代表節(jié)點
輸出:節(jié)點信用值
Begin
If(經(jīng)驗證該節(jié)點生成區(qū)塊為合法區(qū)塊)
If(該節(jié)點名稱在委員會節(jié)點列表中)
節(jié)點信用值增加50
End if
Else
If(該節(jié)點名稱在委員會節(jié)點列表中)
節(jié)點信用值減少200
End if
End
若有n個代表節(jié)點進行出塊操作,該算法的時間復雜度為O(n)。
令ΔT等于設(shè)置的限定出塊時間減去本輪該節(jié)點的出塊時間,若出塊時間小于限定的出塊時間,則說明該節(jié)點性能較好,可進行信用值獎勵,獎勵信用值為λ(ΔT)n(λ>0,n>1, 參數(shù)可根據(jù)實際情況確定);若λ(ΔT)n大于50,則出塊獎勵為50,以限定獎勵信用值額度。若出塊時間大于K倍的限定出塊時間,則不進行獎勵。若出塊時間大于K倍的限定出塊時間(K為參數(shù),可根據(jù)實際情況確定)時仍未出塊,則視為未能生成區(qū)塊,本出塊輪結(jié)束,將對該出塊節(jié)點進行信用值懲罰,節(jié)點信用值減去200。該模型將使網(wǎng)絡(luò)帶寬與節(jié)點性能更好的節(jié)點獲得信用值獎勵,增加其下一輪選舉出塊的概率,提高系統(tǒng)的效率。算法如下:
算法2:基于出塊時間的信用值獎懲機制算法
輸入:需計算基于時間獎懲的出塊節(jié)點
輸出:節(jié)點信用值
Begin
If(出塊時間小于限定出塊時間)
If(該節(jié)點名稱在委員會節(jié)點列表中)
If(λ(ΔT)n大于50)
節(jié)點信用值增加50
Else
節(jié)點信用值增加λ(ΔT)n
End if
End if
If(出塊時間大于K倍的限定出塊時間)
If(該節(jié)點名稱在委員會節(jié)點列表中)
節(jié)點信用值減少200
End if
End if
End
若有n個出塊節(jié)點進行出塊操作,該算法的時間復雜度為O(n)。
在Goland進行搭建中仿真實驗環(huán)境,Goland是JetBrain公司推出的Go語言集成開發(fā)環(huán)境。在仿真平臺上模擬建立了一個擁有20個節(jié)點的分布式網(wǎng)絡(luò),能夠模擬出改進前后DPOS共識算法推選委員會代表節(jié)點、生產(chǎn)區(qū)塊、驗證區(qū)塊等全過程。同時為確保實驗中的節(jié)點更加貼近現(xiàn)實情況,在實驗中授予不同節(jié)點不同的優(yōu)先級,使不同節(jié)點的性能有所不同。根據(jù)實際業(yè)務(wù)及安全性特征,在本實驗中綜合信用值評分模型中常量取值為:A=1,P=-1,信用值參數(shù)值α1=0.9,幣齡參數(shù)值α2=0.1,該取值保證了信用值在公式中起主導作用地位,同時避免由于幣齡因素導致作惡節(jié)點未得到應有懲罰;在基于出塊時間的信用值獎勵機制中常量根據(jù)實際情況確定,本實驗中為了保證其獎勵的公平性取T=0.5ms,λ=1000,n=2。實驗中采用的軟硬件設(shè)備的性能參數(shù)見表1。
表1 實驗環(huán)境配置
在我們提出的改進DPOS共識機制中,在每輪出塊前計算各個節(jié)點的綜合信用值,根據(jù)綜合信用值由高到低的排名得到代表節(jié)點列表,由這些代表節(jié)點負責產(chǎn)生區(qū)塊。
為了驗證改進DPOS共識算法的有效性,首先在系統(tǒng)中進行兩輪出塊操作。設(shè)定節(jié)點A為唯一的作惡節(jié)點,且為第一輪負責出塊的代表節(jié)點,統(tǒng)計此時節(jié)點A的綜合信用值排名,并完成第一輪出塊操作。接下來,以此次結(jié)果為基礎(chǔ)進行第二輪出塊,得到節(jié)點A第二輪出塊的綜合信用值排名,并可由此判斷節(jié)點A是否將再次成為代表節(jié)點。經(jīng)過30次實驗計算,得到節(jié)點A再次成為代表節(jié)點的概率。其概率越低,則其作惡的機會越低,算法的安全性越高。
分別統(tǒng)計30次實驗中節(jié)點A進行兩輪出塊的綜合信用值排名,繪制出的折線如圖1所示。
圖1 A節(jié)點兩輪出塊綜合信用值排名對比
從圖1中可以看出。在改進后的DPOS共識算法中,作惡節(jié)點A第二輪綜合信用值的排名均比第一輪排名靠后。且經(jīng)計算,作惡節(jié)點再次獲得代理節(jié)點的次數(shù)僅有一次,占總次數(shù)的比例約為3%。這是由于節(jié)點A在第一輪產(chǎn)生區(qū)塊時發(fā)生了作惡行為,經(jīng)過基于信用值和幣齡的綜合信用值評分,該節(jié)點綜合信用值大幅降低,導致節(jié)點在第二輪的代表節(jié)點的選擇中排名靠后。實驗驗證,改進后的DPOS共識算法能夠有效降低作惡節(jié)點再次成為代表節(jié)點的概率,從而提高了區(qū)塊鏈系統(tǒng)的安全性。
在相同的實驗環(huán)境下,將本文提出的方法與傳統(tǒng)的DPOS共識算法及胡亞菲[18]提出的改進算法進行第二輪綜合信用值排名的對比結(jié)果如圖2所示。
圖2 A節(jié)點第二輪綜合信用值排名對比
從圖2中可以看出,在30次實驗中,本文提出的改進算法作惡節(jié)點A在第二輪的綜合信用值排名比改進前的傳統(tǒng)算法更加靠后。統(tǒng)計得到的數(shù)據(jù)如下:改進前作惡節(jié)點獲得代理節(jié)點共有25次,概率約為84%。對比圖2中胡亞菲[18]論文中的實驗結(jié)果表明,其第二輪出塊獲得代理節(jié)點的次數(shù)有4次,占總次數(shù)的比例約為13%,而在本文提出的改進算法中,作惡節(jié)點A再次獲得代理節(jié)點的次數(shù)僅有1次,概率約為3%。這是因為相比改進前以及同類算法,該改進算法的綜合信用值評分方式更為合理,并增加了代表節(jié)點隨機性出塊與合法性驗證機制,能夠?qū)ψ鲪汗?jié)點準確進行懲罰,因此顯著降低了作惡節(jié)點成為代理節(jié)點的概率,對于安全性的提升更加明顯。
為了驗證在真實多作惡節(jié)點環(huán)境中,我們改進后的DPOS共識機制在安全性方面的提升情況,在相同實驗環(huán)境下,與傳統(tǒng)的DPOS共識算法在作惡節(jié)點數(shù)量上進行對比實驗,若作惡節(jié)點數(shù)量越少,則驗證該算法的安全性越高。對比實驗結(jié)果如圖3所示。
圖3 DPOS共識機制作惡節(jié)點數(shù)量對比
從圖3可以發(fā)現(xiàn),在30輪實驗中,改進前的算法每輪作惡節(jié)點數(shù)在1~4個之間,一直處于較高的水平。在高迎等[19]提出的方法中,需要將近9輪才會到達穩(wěn)定狀態(tài)。這是由于基于幣齡和信用值的DPOS共識機制使作惡節(jié)點的綜合信用值降低,從而導致在下一輪被快速剔除,無法進入委員會成為代表節(jié)點。而誠實節(jié)點由于正確地產(chǎn)生區(qū)塊,綜合信用值得到提升,在下一輪的委員會節(jié)點選擇中更占據(jù)優(yōu)勢。
在我們提出的改進DPOS共識機制中,作惡節(jié)點數(shù)量持續(xù)減少。在經(jīng)過5輪之后,到達一個穩(wěn)定狀態(tài),并且之后的每輪幾乎無作惡節(jié)點成為代表節(jié)點。相比于高迎等[19]的方法,對作惡節(jié)點剔除的更快,效果更加明顯。由此表明:本文提出的改進DPOS共識機制相比于同類方法,整體的安全性有較好的提升。
為了評價我們改進后的DPOS共識機制的效率,在相同環(huán)境下,設(shè)定每輪產(chǎn)生的區(qū)塊數(shù)量相同,改進前后兩種共識機制每輪生成區(qū)塊所消耗的時間如圖4所示。
圖4 DPOS共識機制產(chǎn)生區(qū)塊時間對比
從圖4中可以看到,隨著出塊輪次的增加,兩種DPOS共識機制的出塊時間都呈現(xiàn)出線性遞增的趨勢。但在每輪生成區(qū)塊數(shù)量相同的情況下,我們改進后的DPOS共識算法生成區(qū)塊所花費的時間對比改進前的共識機制略有降低。由此表明,本文提出的改進DPOS共識機制并沒有因為增加綜合信用值的計算過程而導致區(qū)塊生成時間有所增加,反而由于在系統(tǒng)中增加了基于出塊時間的信用值獎懲機制,導致性能較好的節(jié)點更容易成為出塊節(jié)點,從而產(chǎn)生區(qū)塊的時間更短,效率略有提升。
本文結(jié)合版權(quán)授權(quán)交易的實際應用,給出了采用區(qū)塊鏈技術(shù)進行版權(quán)登記交易的總體框架。并針對共識機制存在的問題,提出了基于信用值和幣齡的DPOS共識機制。該機制具有以下明顯優(yōu)勢:①顯著減少了作惡節(jié)點當選代表節(jié)點的概率,可有效解決大量惡意節(jié)點當選代理節(jié)點的問題;②通過隨機出塊策略與可信區(qū)塊驗證策略,大大增強了生產(chǎn)區(qū)塊的安全性;③使用基于出塊時間的信用值獎懲機制,增大了網(wǎng)絡(luò)帶寬與節(jié)點性能更好的節(jié)點成為出塊節(jié)點的概率,進而提升了系統(tǒng)的效率。
實驗結(jié)果表明,本文提出的改進DPOS共識機制不僅可以有效降低區(qū)塊鏈系統(tǒng)的安全性風險,而且還可以在一定程度上提高系統(tǒng)的運行效率,從而在版權(quán)登記與交易領(lǐng)域進行應用,實現(xiàn)可信的版權(quán)登記與授權(quán)交易。
未來,將進一步對DPOS共識機制算法進行優(yōu)化。通過增加加密策略實現(xiàn)安全性的進一步提升,使區(qū)塊鏈技術(shù)可以更好應用到各種版權(quán)交易場景當中,為原創(chuàng)版權(quán)作品的推廣和應用保駕護航。