摘 要:基于信用的共識算法在共識效率和安全性上具有顯著優(yōu)勢,成為近年來學(xué)術(shù)界和產(chǎn)業(yè)界廣泛關(guān)注的熱點(diǎn)。對當(dāng)前信用共識算法進(jìn)行對比分析,為研究者們深入研究提供參考。首先對當(dāng)前的信用共識算法進(jìn)行系統(tǒng)梳理,給出了其發(fā)展歷程、分類和核心工作原理,總結(jié)了其信用計(jì)算模型和性能評價(jià)指標(biāo)。其次對信用共識算法進(jìn)行了定性和定量的比較分析,指出了各類信用共識算法的優(yōu)缺點(diǎn)。最后,針對目前信用共識算法中存在的信用激勵(lì)不夠和與共識過程融合度不高的問題,提出了從基于博弈論的信用激勵(lì)和設(shè)計(jì)高效的通信拓?fù)鋬蓚€(gè)方面進(jìn)行優(yōu)化,給出了未來的研究方向。
關(guān)鍵詞:區(qū)塊鏈;共識算法;信用;博弈論
中圖分類號:TP311.13 文獻(xiàn)標(biāo)志碼:A 文章編號:1001-3695(2023)02-001-0321-07
doi: 10.19734/j.issn.1001-3695.2022.07.0348
Comparative research on blockchain consensus algorithms based on credit
Liu Huiwen1, Xie Caibing2, Deng Xiaohong1
(1.School of Electronics amp; Information Engineering, Gannan University of Science amp; Technology, Ganzhou Jiangxi 341000, China; 2.Network amp; Information Security Center, China Mobile Communications Group Jiangxi Co., Ltd., Nanchang 330038, China)
Abstract:Consensus algorithm based on credit has significant advantages in consensus efficiency and security, which has received great attention from academy and industry in recent years. This paper made a comparative analysis of the current consensus algorithms based on credit to provide reference for researchers to study in depth. Firstly, this paper systematically reviewed the state-of-the-art consensus algorithms based on credit, gave its development history, classification and core working principle, and summarized its credit calculation model and performance evaluation indicators. Secondly, it analyzed the credit-based consensus algorithms qualitatively and quantitatively, and pointed out their advantages and disadvantages. Finally, aiming at the problems of insufficient credit incentive and low integration with the consensus process in the state-of-the-art consensus algorithms, this paper proposed to optimize from the credit incentive based on game theory and designing efficient communication topology, and gave the future research direction.
Key words:blockchain; consensus algorithm; credit; game theory
0 引言
共識起源于分布式系統(tǒng)中各個(gè)分節(jié)點(diǎn)對系統(tǒng)中的某個(gè)值達(dá)成一致的需要。共識機(jī)制是區(qū)塊鏈中的核心技術(shù),研究如何在去中心化的節(jié)點(diǎn)中達(dá)成數(shù)據(jù)賬本的一致性,并確保賬本真實(shí)有效可追溯[1]。事實(shí)上,區(qū)塊鏈中的共識過程包含了記賬節(jié)點(diǎn)選取、區(qū)塊打包生成、區(qū)塊驗(yàn)證與同步等,涉及到一個(gè)區(qū)塊從產(chǎn)生到最終上鏈存儲的全過程。共識機(jī)制的優(yōu)劣直接影響到區(qū)塊鏈系統(tǒng)的安全和效率,成為研究者們重點(diǎn)關(guān)注的領(lǐng)域。
目前,主流的區(qū)塊鏈共識算法可以分為基于證明類的和基于投票的算法兩大類。證明類的算法最為典型的就是比特幣中的工作量證明(proof of work,PoW)和Nextcoin的權(quán)益證明(proof of stack,PoS)[2]。證明類算法的核心思想是通過算力或者股權(quán)等的證明來競爭記賬權(quán),但往往這種證明會(huì)消耗大量的算力資源?;诖?,研究者們提出較多改進(jìn)方案,如Amani等人[3]提出輕量級的挖礦協(xié)議,減少算力消耗;Sallal等人[4]對PoW中的信息傳播機(jī)制進(jìn)行改進(jìn),提出構(gòu)建節(jié)點(diǎn)的信任節(jié)點(diǎn)集來有效提升信息傳播效率和抗雙花攻擊;Liu等人[5]提出PoLe共識機(jī)制,將PoW無意義的算力消耗用于神經(jīng)網(wǎng)絡(luò)的訓(xùn)練,解決神經(jīng)網(wǎng)絡(luò)模型中高計(jì)算量需求問題。證明類的算法及其改進(jìn)方案計(jì)算復(fù)雜度較高,節(jié)點(diǎn)參與規(guī)模較大,一般適合于公有鏈。投票類的算法最為典型的就是委托股權(quán)證明(proof of delegated,DPoS)算法和實(shí)用拜占庭容錯(cuò)(practical Byzantine fault tolerance,PBFT)算法[6]。投票類算法的核心思想是通過節(jié)點(diǎn)投票來決定誰是記賬節(jié)點(diǎn),但這種投票會(huì)存在較大的安全隱患。研究者們針對基于投票的共識機(jī)制進(jìn)行改進(jìn),如Liu等人[7]提出采用概率語言術(shù)語集來改進(jìn)DPoS共識,增加投票節(jié)點(diǎn)的安全性;Fan等人[8]提出一種動(dòng)態(tài)拜占庭容錯(cuò)共識機(jī)制DR-BFT,用于解決邊緣計(jì)算系統(tǒng)中的多層次間數(shù)據(jù)的完整性問題。投票類的算法計(jì)算復(fù)雜度大大降低,但節(jié)點(diǎn)去中心化程度也隨之下降,并且投票機(jī)制對節(jié)點(diǎn)的激勵(lì)不夠,常用于聯(lián)盟鏈中。
信用機(jī)制是P2P網(wǎng)絡(luò)中激勵(lì)分布式節(jié)點(diǎn)參與協(xié)作的重要機(jī)制,建立信用體系也是互聯(lián)網(wǎng)生態(tài)下重要的任務(wù),將信用機(jī)制引入到區(qū)塊鏈中,激勵(lì)節(jié)點(diǎn)競爭記賬具有較好研究價(jià)值。信用共識的基本思想是根據(jù)記賬節(jié)點(diǎn)的貢獻(xiàn)度(正確處理的交易數(shù)等)和損害度(產(chǎn)生錯(cuò)誤的交易數(shù)等)進(jìn)行信用值的計(jì)算,在獲取信用值后,將節(jié)點(diǎn)信用值作為選取記賬節(jié)點(diǎn)的重要依據(jù)。王纘等人[9]利用節(jié)點(diǎn)信用值改進(jìn)工作量證明算法,顯著減少了PoW算法的算力消耗,提高了系統(tǒng)安全性。王瑞錦等人[10]提出一種基于信用投票的共識算法(proof of vote and trust, PoVT),利用信用和投票機(jī)制解決PoS共識中可能出現(xiàn)的權(quán)益粉碎攻擊和“寡頭”現(xiàn)象。信用共識相比PoW和PoS具有更高的共識效率,與PBFT相比具有更好的安全性。此外,節(jié)點(diǎn)的信用值可作為區(qū)塊鏈中參與節(jié)點(diǎn)的利益分配依據(jù),激勵(lì)和約束節(jié)點(diǎn)的行為,具有較高的可行性,基于信用的區(qū)塊鏈共識算法(blockchain consensus algorithms based on credit,BCAC)逐漸受到研究者們重視。
本文的主要工作和貢獻(xiàn)如下:a)比較系統(tǒng)地梳理了BCAC發(fā)展歷程,并對其核心原理、信用計(jì)算模型和評價(jià)指標(biāo)進(jìn)行總結(jié),為其他研究者們提供重要參考;b)通過定性和定量的方式,對比分析了典型BCAC算法的優(yōu)缺點(diǎn),為產(chǎn)業(yè)界選用合適的共識算法提供依據(jù);c)給出了BCAC的發(fā)展方向,從基于博弈論的信用激勵(lì)和結(jié)構(gòu)化的通信拓?fù)浞矫鏋檠芯空邆兝^續(xù)深入研究信用共識機(jī)制提供借鑒。
1 BCAC算法介紹
1.1 發(fā)展歷程
2018年,文獻(xiàn)[9]首次提出了BCAC思想,接著,研究者們在這一領(lǐng)域展開深入研究。據(jù)不完全統(tǒng)計(jì),截止2022年上半年,共有22篇研究成果,其發(fā)展歷程如圖1所示。從圖1可以看出,2018年為BCAC的元年,以文獻(xiàn)[9]為代表。2019—2021年為穩(wěn)定發(fā)展時(shí)期,每年有5篇左右的研究成果,2019年見文獻(xiàn)[11~14],2020年見文獻(xiàn)[15~19],2021年見文獻(xiàn)[20~23],加上前面提及的文獻(xiàn)[10]。2022年為快速發(fā)展期,僅半年就有7篇左右成果,見文獻(xiàn)[24~30]。
1.2 核心思想
現(xiàn)有的BCAC算法主要可分為利用信用機(jī)制來優(yōu)化現(xiàn)有的共識算法和利用信用機(jī)制構(gòu)建全新的共識算法兩類。下面分別對不同類型共識算法的實(shí)施原理進(jìn)行介紹。
1.2.1 信用+現(xiàn)有共識算法
1)信用+PoX共識
這類算法是利用信用機(jī)制對證明類的算法進(jìn)行優(yōu)化,X可代表PoW中的W或PoS中的S等。典型的如文獻(xiàn)[9]將信用機(jī)制引入到PoW中,對參與PoW共識的所有節(jié)點(diǎn)進(jìn)行信用度的計(jì)算和排名,依據(jù)排名將求解sha256數(shù)學(xué)難題的搜索空間按比例分配給各個(gè)節(jié)點(diǎn),節(jié)點(diǎn)成功解決hash難題將獲得礦工身份并獲得相應(yīng)的獎(jiǎng)勵(lì)。節(jié)點(diǎn)信用值在算法中起到兩個(gè)作用:a)信用值較大的節(jié)點(diǎn)將獲得更多的搜索空間,更大概率成為礦工節(jié)點(diǎn);b)信用值為衡量節(jié)點(diǎn)是否為拜占庭節(jié)點(diǎn)的依據(jù),增強(qiáng)了共識算法的安全性。文獻(xiàn)[9]的優(yōu)點(diǎn)是增加PoW算法的故障節(jié)點(diǎn)容錯(cuò)能力,更好地處理分叉問題,大大增加了PoW算法的工作效率。但網(wǎng)絡(luò)規(guī)模小于PoW,算法設(shè)計(jì)也更加復(fù)雜。同樣地,文獻(xiàn)[12]針對物聯(lián)網(wǎng)中節(jié)點(diǎn)資源受限和數(shù)據(jù)的安全性需求,提出基于區(qū)塊鏈的物聯(lián)網(wǎng)系統(tǒng),并設(shè)計(jì)基于信用的PoW共識機(jī)制。信用值用于調(diào)整PoW算法的難度,對于誠實(shí)節(jié)點(diǎn)減小求解難度,而對于惡意節(jié)點(diǎn)則增加求解難度。算法的優(yōu)點(diǎn)是采用有向無環(huán)圖(directed acyclic graph, DAG)作為區(qū)塊鏈的底層數(shù)據(jù)結(jié)構(gòu),提高了系統(tǒng)的吞吐量;缺點(diǎn)是算法本質(zhì)上還是求解PoW中的hash難題,特別是當(dāng)系統(tǒng)中惡意節(jié)點(diǎn)較多時(shí),算法復(fù)雜度較高。
文獻(xiàn)[10]將信用機(jī)制引入到PoS中,綜合考慮節(jié)點(diǎn)的有效出塊數(shù)、有效投票數(shù)、參與度和歷史信用度計(jì)算節(jié)點(diǎn)的信用值,再結(jié)合節(jié)點(diǎn)本身的權(quán)益和信用值來遴選共識節(jié)點(diǎn)集。節(jié)點(diǎn)信用值在算法中的主要作用就是用來挑選共識節(jié)點(diǎn)集,信用值高的節(jié)點(diǎn)確保PoS算法安全性。文獻(xiàn)[10]的優(yōu)點(diǎn)是對PoS的改進(jìn)限于初始階段,如遴選記賬節(jié)點(diǎn)集合上,對PoS本身的復(fù)雜度沒有太多的提升;其缺點(diǎn)就是信用值的利用程度不高,對記賬節(jié)點(diǎn)的產(chǎn)生效率并沒有提升。文獻(xiàn)[13]將信用機(jī)制引入到DPoS共識機(jī)制中,通過節(jié)點(diǎn)的行為設(shè)置其信用分?jǐn)?shù)和等級,加大作惡節(jié)點(diǎn)獲得票數(shù)的難度,并提供獎(jiǎng)勵(lì)機(jī)制提高節(jié)點(diǎn)的投票積極性,信用等級較低的節(jié)點(diǎn)想成為見證人節(jié)點(diǎn)需要更多的票數(shù),而高信用的節(jié)點(diǎn)只需要少量的票數(shù),有更大的優(yōu)先級成為見證人節(jié)點(diǎn),其優(yōu)點(diǎn)是設(shè)計(jì)了節(jié)點(diǎn)信用等級的升降制度和參與投票的獎(jiǎng)懲制度,缺點(diǎn)是節(jié)點(diǎn)信用值的賦值與節(jié)點(diǎn)的實(shí)際行為無關(guān)。
文獻(xiàn)[18]設(shè)計(jì)了一個(gè)適用于工業(yè)物聯(lián)網(wǎng)的基于信用的區(qū)塊鏈共識協(xié)議,信用模塊可移植到當(dāng)前的PoX共識中,提出了礦工節(jié)點(diǎn)的選取規(guī)則和節(jié)點(diǎn)信用獎(jiǎng)懲機(jī)制。其優(yōu)點(diǎn)是信用模塊具有較高的移植性;缺點(diǎn)是礦工節(jié)點(diǎn)的選擇仍然依賴于高消耗的hash運(yùn)算,對于資源受限的傳感器節(jié)點(diǎn)是挑戰(zhàn)。文獻(xiàn)[19]提出一種主從多鏈區(qū)塊鏈結(jié)構(gòu),從鏈?zhǔn)褂没谛庞玫腜oS共識機(jī)制,主鏈中使用多種共識機(jī)制共同計(jì)算的方法驗(yàn)證從鏈產(chǎn)生的區(qū)塊。信用值的計(jì)算由節(jié)點(diǎn)打包區(qū)塊時(shí)的貢獻(xiàn)度累加計(jì)算,主要由完成的交易數(shù)評估,信用值可作為PoS挑選記賬節(jié)點(diǎn)的依據(jù)和權(quán)益。其優(yōu)點(diǎn)是提出采用融合多種共識機(jī)制提高安全性,主從多鏈結(jié)構(gòu)提高系統(tǒng)吞吐量;缺點(diǎn)是信用值評估考慮的因素單一,節(jié)點(diǎn)作惡時(shí)的信用值懲罰機(jī)制過于嚴(yán)厲,多種共識機(jī)制融合必然會(huì)帶來較大的時(shí)間開銷。
2)信用+BFT共識
這類算法是利用信用機(jī)制對BFT類的算法進(jìn)行優(yōu)化,典型的如文獻(xiàn)[11]根據(jù)節(jié)點(diǎn)自身的資產(chǎn)、交易活動(dòng)和共識參與情況計(jì)算其信用值,選取最高信用值的節(jié)點(diǎn)為leader節(jié)點(diǎn),負(fù)責(zé)生成區(qū)塊,新塊通過基于信用的投票進(jìn)行驗(yàn)證和確認(rèn),所有參與共識過程的節(jié)點(diǎn)(信用值排名在前20%的節(jié)點(diǎn))將依據(jù)其信用值的比例獲得獎(jiǎng)勵(lì)。節(jié)點(diǎn)信用值在算法中的主要作用就是用來挑選leader節(jié)點(diǎn)和投票驗(yàn)證節(jié)點(diǎn),并將信用值作為分配系統(tǒng)貨幣的依據(jù)。其優(yōu)點(diǎn)是節(jié)點(diǎn)信用值作為系統(tǒng)中實(shí)際貨幣的分配依據(jù),激勵(lì)作用明顯;缺點(diǎn)是節(jié)點(diǎn)作惡將會(huì)造成信用值變?yōu)樨?fù)值,很難再參與信用共識過程。文獻(xiàn)[14]將信用機(jī)制引入到BFT共識中,挑選信用值高的節(jié)點(diǎn)形成共識委員會(huì),減少惡意節(jié)點(diǎn)進(jìn)入委員會(huì)的概率。構(gòu)建了基于機(jī)器學(xué)習(xí)的信用值計(jì)算模型,選取節(jié)點(diǎn)響應(yīng)時(shí)間、股權(quán)值和響應(yīng)類型作為特征。其優(yōu)點(diǎn)是提出基于機(jī)器學(xué)習(xí)的節(jié)點(diǎn)信用值計(jì)算模型,支持增減特征,采用隨機(jī)策略增加了進(jìn)入委員會(huì)節(jié)點(diǎn)的不可預(yù)測性;缺點(diǎn)是信用值缺乏獎(jiǎng)懲機(jī)制,信用寡頭節(jié)點(diǎn)容易形成。
文獻(xiàn)[15]設(shè)計(jì)了一種由共識節(jié)點(diǎn)、候選節(jié)點(diǎn)和普通節(jié)點(diǎn)組成的并行層次方案,通過委派候選節(jié)點(diǎn)來初步驗(yàn)證事務(wù)的有效性,在主節(jié)點(diǎn)和備份節(jié)點(diǎn)中實(shí)現(xiàn)并行事務(wù)的邏輯驗(yàn)證。具有良好表現(xiàn)的共識節(jié)點(diǎn)將獲得更高的信用值,并且有更高的概率成為主節(jié)點(diǎn),通過設(shè)置信用閾值將故障節(jié)點(diǎn)從共識節(jié)點(diǎn)集中刪除,并將更可靠的候選節(jié)點(diǎn)加入。其優(yōu)點(diǎn)是并行事務(wù)驗(yàn)證處理增加了吞吐量;缺點(diǎn)是未考慮節(jié)點(diǎn)非惡意作惡的情況,缺乏有效的從故障節(jié)點(diǎn)恢復(fù)到共識節(jié)點(diǎn)的機(jī)制。文獻(xiàn)[17]采用委員會(huì)來代替單一的礦工節(jié)點(diǎn)工作,首先對節(jié)點(diǎn)信用值進(jìn)行排序,通過給定的分布函數(shù)生成隨機(jī)數(shù)在信用值排名前列的節(jié)點(diǎn)中選擇節(jié)點(diǎn)進(jìn)入委員會(huì),當(dāng)一輪共識中如果有超過2/3的誠實(shí)節(jié)點(diǎn),則該回合將成功,并且每個(gè)委員會(huì)成員的信用值增加。否則,如果誠實(shí)節(jié)點(diǎn)小于2/3,則協(xié)議停止,并且成員的信用值受到懲罰。其優(yōu)點(diǎn)是集體記賬規(guī)避單一節(jié)點(diǎn)作惡的風(fēng)險(xiǎn);缺點(diǎn)是節(jié)點(diǎn)信用值的評估模型缺乏,節(jié)點(diǎn)信用值的整體獎(jiǎng)勵(lì)與懲罰,容易造成部分節(jié)點(diǎn)的消極行為,激勵(lì)不夠。文獻(xiàn)[25]提出了一種適應(yīng)聯(lián)盟鏈的基于分段式DAG和BP神經(jīng)網(wǎng)絡(luò)的共識算法,設(shè)計(jì)基于BP神經(jīng)網(wǎng)絡(luò)的節(jié)點(diǎn)信用值評估機(jī)制,更為準(zhǔn)確地評價(jià)節(jié)點(diǎn)信用。設(shè)計(jì)基于分段式DAG的數(shù)據(jù)存儲結(jié)構(gòu),提升系統(tǒng)可擴(kuò)展性和交易并發(fā)性。其優(yōu)點(diǎn)是采用BP神經(jīng)網(wǎng)絡(luò)建立節(jié)點(diǎn)信用度評估模型,解決線性算法無法有效對節(jié)點(diǎn)的行為特征進(jìn)行描述問題,同時(shí)優(yōu)化底層存儲結(jié)構(gòu),提高系統(tǒng)吞吐量和降低共識實(shí)驗(yàn);缺點(diǎn)是節(jié)點(diǎn)作惡后的懲罰機(jī)制過于嚴(yán)厲,一旦存在惡意行為很難競爭進(jìn)入組委會(huì)節(jié)點(diǎn)和leader節(jié)點(diǎn)。
文獻(xiàn)[28]提出基于信用等級劃分的醫(yī)療區(qū)塊鏈共識算法,根據(jù)節(jié)點(diǎn)的參與區(qū)塊共識行為(對于區(qū)塊的投票情況)計(jì)算其信用值。在獲得信用值后,提出基于海洋掠食者的自我優(yōu)化信用等級劃分算法,綜合考慮節(jié)點(diǎn)的累積信用、歷史信用、成為代表節(jié)點(diǎn)次數(shù)和提供無效區(qū)塊次數(shù)。設(shè)計(jì)改進(jìn)的PBFT共識算法有效避免惡意節(jié)點(diǎn)成為主節(jié)點(diǎn)并提高共識效率。其優(yōu)點(diǎn)是新的信用等級劃分算法能有效區(qū)分醫(yī)療區(qū)塊鏈中的惡意節(jié)點(diǎn);缺點(diǎn)是節(jié)點(diǎn)信用值計(jì)算模型中可變參數(shù)過多,降低了通用性。文獻(xiàn)[30]提出基于信用的拜占庭容錯(cuò)共識算法,根據(jù)共識節(jié)點(diǎn)完成共識的情況計(jì)算節(jié)點(diǎn)信用,并根據(jù)信用值將節(jié)點(diǎn)劃分為共識節(jié)點(diǎn)和候補(bǔ)節(jié)點(diǎn)集,設(shè)計(jì)節(jié)點(diǎn)的動(dòng)態(tài)更替方式,優(yōu)化PBFT算法中可能出現(xiàn)的頻繁視圖切換問題。其優(yōu)點(diǎn)是設(shè)計(jì)節(jié)點(diǎn)替換方案,當(dāng)有節(jié)點(diǎn)作惡時(shí)能快速完成節(jié)點(diǎn)替換,避免視圖切換的高耗時(shí);缺點(diǎn)是節(jié)點(diǎn)的信用激勵(lì)機(jī)制不夠明顯,與選取主節(jié)點(diǎn)沒有直接關(guān)聯(lián)。
3)信用+其他共識機(jī)制
文獻(xiàn)[20]提出一種應(yīng)用于車聯(lián)網(wǎng)的眾包區(qū)塊鏈框架,提出節(jié)點(diǎn)信用模型,利用信任傳播與反饋相似性計(jì)算節(jié)點(diǎn)的信用值,并采用信用值來揭示車聯(lián)網(wǎng)中參與節(jié)點(diǎn)的任何惡意行為,優(yōu)化Raft算法抗攻擊能力。其優(yōu)點(diǎn)是信用模型降低任何惡意服務(wù)消費(fèi)者或提供商的信用,有效防止在處理眾包任務(wù)時(shí)出現(xiàn)敵對或不負(fù)責(zé)任的行為;缺點(diǎn)是信用模型與共識機(jī)制相對孤立。文獻(xiàn)[23]提出基于信用度的Hashgraph共識機(jī)制,利用信用值獎(jiǎng)懲激勵(lì)節(jié)點(diǎn)積極參與共識,并提出基于信用度的領(lǐng)導(dǎo)人選擇算法,增加了領(lǐng)導(dǎo)人節(jié)點(diǎn)的隨機(jī)性和抗拜占庭節(jié)點(diǎn)的能力。其優(yōu)點(diǎn)是對于節(jié)點(diǎn)信用值的評估因素考慮的比較全面,一共包含節(jié)點(diǎn)性能、安全性、活躍度和可信度四個(gè)指標(biāo);缺點(diǎn)是信用度計(jì)算公式中自主設(shè)置參數(shù)太多,降低了通用性。文獻(xiàn)[29]提出面向車聯(lián)網(wǎng)區(qū)塊鏈中異構(gòu)節(jié)點(diǎn)的高效一致性共識算法,根據(jù)節(jié)點(diǎn)的參與區(qū)塊共識行為(參與交易共識和區(qū)塊驗(yàn)證情況)計(jì)算其信用值。在獲得信用值后,提出采用模糊C均值聚類實(shí)現(xiàn)異構(gòu)節(jié)點(diǎn)的信用等級劃分,綜合考慮節(jié)點(diǎn)的累積信用、離線次數(shù)、離線時(shí)間、加入可信任列表次數(shù)和提供無效區(qū)塊次數(shù)。設(shè)計(jì)改進(jìn)的Ripple共識算法有效避免惡意節(jié)點(diǎn)對共識的影響并提高共識效率。其優(yōu)點(diǎn)是隨機(jī)選擇信用等級最高的節(jié)點(diǎn)成為礦工節(jié)點(diǎn),極大提高共識效率;缺點(diǎn)是對于信用等級低的節(jié)點(diǎn)激勵(lì)不夠,很難成為礦工節(jié)點(diǎn),容易導(dǎo)致信用寡頭出現(xiàn)。
1.2.2 純信用共識算法
此類算法是利用節(jié)點(diǎn)的信用值重新設(shè)計(jì)新的共識機(jī)制,根據(jù)節(jié)點(diǎn)在系統(tǒng)中的表現(xiàn)行為評估信用值,然后根據(jù)節(jié)點(diǎn)信用值選擇記賬節(jié)點(diǎn)生成區(qū)塊,并通過區(qū)塊驗(yàn)證最終上鏈存儲。文獻(xiàn)[16]讓一組信用值高于設(shè)定閾值的節(jié)點(diǎn)輪流成為礦工節(jié)點(diǎn),并由一組隨機(jī)選擇的監(jiān)督節(jié)點(diǎn)監(jiān)督礦工的行為并給予相應(yīng)的信用分?jǐn)?shù),當(dāng)?shù)V工的信用分?jǐn)?shù)低于系統(tǒng)閾值時(shí)將會(huì)被驅(qū)逐出礦工節(jié)點(diǎn)集。節(jié)點(diǎn)的網(wǎng)絡(luò)成熟度和信用值越高,其成為礦工節(jié)點(diǎn)的優(yōu)先級更高。其優(yōu)點(diǎn)是區(qū)塊的產(chǎn)生、驗(yàn)證和礦工節(jié)點(diǎn)的信用值均由部分節(jié)點(diǎn)保存,減小了系統(tǒng)的通信復(fù)雜度;缺點(diǎn)是礦工節(jié)點(diǎn)的信用值評估模型缺乏,每一輪礦工節(jié)點(diǎn)的選擇可預(yù)測,容易造成安全隱患。文獻(xiàn)[21]提出一種用于車聯(lián)網(wǎng)的累積信任證明的區(qū)塊鏈共識機(jī)制,首先計(jì)算節(jié)點(diǎn)的累積信用值,并選擇具有最高信用值的節(jié)點(diǎn)作為礦工節(jié)點(diǎn)。其優(yōu)點(diǎn)是根據(jù)節(jié)點(diǎn)惡意行為的類型或嚴(yán)重性來給予信用值的懲罰,能容忍節(jié)點(diǎn)的非惡意的錯(cuò)誤行為;缺點(diǎn)是礦工節(jié)點(diǎn)的選擇機(jī)制缺乏隨機(jī)性,具有安全隱患。文獻(xiàn)[22]提出適用于聯(lián)盟鏈的信用共識算法,信用評價(jià)指標(biāo)由節(jié)點(diǎn)成功生成的有效區(qū)塊中包含的交易數(shù)、成功上鏈所用的時(shí)間、無效區(qū)塊數(shù)組成。設(shè)計(jì)了分輪次的礦工節(jié)點(diǎn)選擇機(jī)制,在第一輪次采用隨機(jī)算法進(jìn)行礦工節(jié)點(diǎn)的選擇,在其他輪次按照信用值高低選擇礦工節(jié)點(diǎn)。優(yōu)點(diǎn)是提出了較為完善的節(jié)點(diǎn)信用評估機(jī)制、存儲機(jī)制、基于信用的礦工節(jié)點(diǎn)選擇機(jī)制;缺點(diǎn)是完全按照信用值高低選擇礦工節(jié)點(diǎn)的安全性差,沒有考慮節(jié)點(diǎn)作惡情況下仍然可能作為礦工的可能。
文獻(xiàn)[24,26]均提出了一種基于信用的共識模型,通過節(jié)點(diǎn)參與交易情況計(jì)算其信用值,全局信用值最大的節(jié)點(diǎn)被選擇為礦工節(jié)點(diǎn)。方法的優(yōu)點(diǎn)是給出了信用共識模型的狀態(tài)機(jī)模型,使得共識模型具有較好的通用性和可擴(kuò)展性;缺點(diǎn)是節(jié)點(diǎn)信用值的評價(jià)僅考慮所處理的交易數(shù)。文獻(xiàn)[27]提出基于信用空間的半脆弱聯(lián)盟鏈共識算法,設(shè)計(jì)了節(jié)點(diǎn)的信用值計(jì)算模型,并根據(jù)節(jié)點(diǎn)的信用值分配信用空間,然后在信用空間中采用隨機(jī)算法挑選礦工節(jié)點(diǎn),信用空間大的節(jié)點(diǎn)有更大的概率成為礦工節(jié)點(diǎn),保持激勵(lì)的同時(shí)兼顧了公平性。另外根據(jù)節(jié)點(diǎn)是否故意作惡,設(shè)計(jì)了分級懲罰機(jī)制。其優(yōu)點(diǎn)是在礦工節(jié)點(diǎn)選擇上保持信用激勵(lì)的同時(shí)兼顧了公平性,半脆弱分層懲罰機(jī)制充分考慮到實(shí)際網(wǎng)絡(luò)中節(jié)點(diǎn)的非故意作惡的情況;其缺點(diǎn)是采用了線性的節(jié)點(diǎn)信用值計(jì)算公式,評價(jià)指標(biāo)未能全面刻畫節(jié)點(diǎn)在網(wǎng)絡(luò)中的真實(shí)行為。
1.3 信用計(jì)算模型
BCAC算法的關(guān)鍵環(huán)節(jié)是對節(jié)點(diǎn)信用值的計(jì)算和管理,在參考現(xiàn)有算法評價(jià)指標(biāo)基礎(chǔ)上,本文給出節(jié)點(diǎn)信用計(jì)算的通用模型。
1)信用值評估機(jī)制
節(jié)點(diǎn)的信用值評估可描述如下:
Ci=F(Ti)(1)
其中:Ci代表節(jié)點(diǎn)i的信用值;F為信用值計(jì)算函數(shù),可表示為線性計(jì)算公式或神經(jīng)網(wǎng)絡(luò)訓(xùn)練函數(shù);Ti為節(jié)點(diǎn)i參與系統(tǒng)行為的特征向量,Ti可表示為
Ti=[itype,iPN,iFN,iPT,iAT](2)
其中:itype表示為節(jié)點(diǎn)i參與系統(tǒng)行為的類型,分為生成區(qū)塊、驗(yàn)證和同步三種情況,其中生成區(qū)塊獲得的信用值最大,僅僅完成數(shù)據(jù)同步獲得的信用值最?。籭PN為節(jié)點(diǎn)i正確處理交易數(shù);iFN為出錯(cuò)處理交易數(shù);iPT為節(jié)點(diǎn)i處理交易花費(fèi)的時(shí)間;iAT為節(jié)點(diǎn)i在系統(tǒng)中的活躍時(shí)間;iPN越大節(jié)點(diǎn)獲得的信用獎(jiǎng)勵(lì)越多,iFN越大節(jié)點(diǎn)受到的信用懲罰越大;iPT和iAT與節(jié)點(diǎn)的信用獎(jiǎng)勵(lì)分別成反比和正比關(guān)系。
2)信用值存儲與更新機(jī)制
節(jié)點(diǎn)信用值作為信用共識算法中挑選礦工節(jié)點(diǎn)或衡量節(jié)點(diǎn)可信度的重要依據(jù),需要和交易數(shù)據(jù)一樣進(jìn)行上鏈存儲,節(jié)點(diǎn)的信用值更新也需要得到鏈上節(jié)點(diǎn)的驗(yàn)證,避免針對節(jié)點(diǎn)信用值的攻擊。信用值的更新可在一輪共識結(jié)束后進(jìn)行,計(jì)算公式表示為
其中:Ch-1i為節(jié)點(diǎn)i在第h-1輪的信用值。節(jié)點(diǎn)i的總信用值可表示為
其中:CTotali為節(jié)點(diǎn)i的總信用值;H為節(jié)點(diǎn)i參與共識的總輪次。節(jié)點(diǎn)的總信用值可作為區(qū)塊鏈系統(tǒng)利益分配的依據(jù)。
1.4 BCAC評價(jià)指標(biāo)
這里主要考慮信用共識算法的可量化評價(jià)指標(biāo),主要包含吞吐量、時(shí)延、去中心化程度和安全性。其中去中心化程度由節(jié)點(diǎn)被選為礦工節(jié)點(diǎn)的概率衡量,安全性由惡意節(jié)點(diǎn)驅(qū)逐概率衡量。下面給出性能評價(jià)指標(biāo)的量化公式。
1)吞吐量
吞吐量由單位時(shí)間內(nèi)系統(tǒng)處理的總交易數(shù)計(jì)算,公式為
其中:N代表區(qū)塊鏈中總的節(jié)點(diǎn)數(shù);Trans_numi為節(jié)點(diǎn)i處理的交易數(shù);Time為區(qū)塊鏈系統(tǒng)運(yùn)行時(shí)間。
2)時(shí)延
時(shí)延指區(qū)塊鏈系統(tǒng)中一輪共識所需要的時(shí)間,從交易發(fā)起到區(qū)塊最終上鏈存儲,公式為
其中:Timeend為區(qū)塊完成上鏈存儲的時(shí)間;Timestart為交易發(fā)起時(shí)間。
3)去中心化程度
BCAC算法中,為了保持對節(jié)點(diǎn)參與系統(tǒng)行為的激勵(lì),信用值高的節(jié)點(diǎn)有更大的概率成為礦工節(jié)點(diǎn),但為了防止出現(xiàn)信用寡頭現(xiàn)象,應(yīng)該保證其他正常節(jié)點(diǎn)也能成為礦工節(jié)點(diǎn)。從節(jié)點(diǎn)被選為礦工的概率上看,雖然信用值低的節(jié)點(diǎn)會(huì)出現(xiàn)次數(shù)偏少的情況,但仍然會(huì)出現(xiàn)信用值偏低的節(jié)點(diǎn)次數(shù)比信用值高的節(jié)點(diǎn)成為礦工的次數(shù)多的現(xiàn)象。其計(jì)算公式為
其中:lead_numhi為節(jié)點(diǎn)i在第h輪共識成為礦工的次數(shù),如果被選中,結(jié)果為1,否則為0;H為共識總輪次數(shù)。
4)安全性
BCAC算法中,信用值高的節(jié)點(diǎn)其作惡的概率更低,通過系統(tǒng)中信用閾值的設(shè)定,信用值低于閾值的惡意節(jié)點(diǎn)將會(huì)被驅(qū)逐,被剝?nèi)⑴c系統(tǒng)行為的資格。惡意節(jié)點(diǎn)驅(qū)逐概率計(jì)算如下:
其中:Evil_numhi為節(jié)點(diǎn)i在第h輪共識做惡次數(shù),如果存在作惡行為,結(jié)果為1,否則為0;NE為H輪共識中總的節(jié)點(diǎn)作惡次數(shù)。
2 BCAC算法對比研究
2.1 定性分析
首先,對圖1中列出的22種信用共識算法進(jìn)行定性分析,從采用的基礎(chǔ)共識算法、底層拓?fù)?、信用值?jì)算的方式、吞吐量、時(shí)延、去中心化程度、安全性、獎(jiǎng)懲機(jī)制、可擴(kuò)展性和應(yīng)用場景共10個(gè)方面進(jìn)行定性比較,結(jié)果如表1所示。
采用的基礎(chǔ)共識算法通常決定了算法的吞吐量、時(shí)延、去中心化程度和應(yīng)用場景,如文獻(xiàn)[9,18]均在PoW共識上進(jìn)行改進(jìn),吞吐量較低,文獻(xiàn)[12]的基礎(chǔ)共識算法雖然也是PoW,但由于采用了DAG的底層拓?fù)?,交易的并行處理使得吞吐量更高。時(shí)延方面,文獻(xiàn)[9,12,18]中信用機(jī)制的引入僅僅是降低了信用值高節(jié)點(diǎn)的解題難度,本質(zhì)上還是求解hash難題,所以時(shí)延相對其他方法較大。基于PoW的信用共識機(jī)制,去中心化程度較高,通常適用于公鏈?;赑oS的信用共識機(jī)制,時(shí)延通常較小,因?yàn)樾庞脵C(jī)制加速了投票節(jié)點(diǎn)集的產(chǎn)生,但文獻(xiàn)[19]由于在主鏈中使用多種共識機(jī)制共同計(jì)算的方法驗(yàn)證從鏈產(chǎn)生的區(qū)塊,具有較大的時(shí)延。基于BFT類的共識算法通常具有較低的時(shí)延,由于只有信用值高的節(jié)點(diǎn)可以進(jìn)入共識節(jié)點(diǎn)集甚至是領(lǐng)導(dǎo)者節(jié)點(diǎn),去中心化程度較低,一般適用于聯(lián)盟鏈。從表1的數(shù)據(jù)可以看出,采用DAG作為底層數(shù)據(jù)拓?fù)涞墓沧R方法具有最高的吞吐量,其中文獻(xiàn)[15]雖然也采用傳統(tǒng)的鏈?zhǔn)椒椒ǎ捎谠黾恿瞬⑿惺聞?wù)處理機(jī)制,也具有高的吞吐量。通常情況下,設(shè)計(jì)了信用獎(jiǎng)懲機(jī)制的共識算法具有更好的可擴(kuò)展性。純信用共識算法利用節(jié)點(diǎn)信用值重新設(shè)計(jì)共識過程,信用值作為唯一挑選礦工節(jié)點(diǎn)的依據(jù),大大加速了共識過程,具有較小的時(shí)延和較高的吞吐量。
2.2 定量分析
為了更好地比較不同信用共識算法的性能,本文采用統(tǒng)一的實(shí)驗(yàn)平臺(實(shí)驗(yàn)環(huán)境選用的操作系統(tǒng)為CentOS,節(jié)點(diǎn)容器Docker,編程語言Python,框架PyTorch和Flask。使用Python與PyTorch編寫共識算法,使用Flask編寫Web程序接口,并利用Docker容器裝載Web程序模擬節(jié)點(diǎn),使用阿里云服務(wù)器來模擬多機(jī)多節(jié)點(diǎn)壓力測試)來進(jìn)行量化比較分析。實(shí)驗(yàn)對象選取信用+PoX類共識算法CPoW和CPoS、信用+BFT類共識算法ReCon和CABP、信用+其他共識算法ECCA、純信用類共識算法CCAC和SCACS。實(shí)驗(yàn)過程中采取與各選取文獻(xiàn)的實(shí)驗(yàn)分析中相同的參數(shù),如CPoW算法中構(gòu)造三層BP神經(jīng)網(wǎng)絡(luò),挖礦難度設(shè)為hash值前面5個(gè)0前綴。
1)吞吐量實(shí)驗(yàn)結(jié)果
本文設(shè)置并發(fā)量為每秒300筆,吞吐量對比實(shí)驗(yàn)如圖2所示。從圖2中可以看出,七種共識算法的吞吐量隨著節(jié)點(diǎn)數(shù)量增大,均呈下降趨勢,其中文獻(xiàn)[22,25,27,29]具有穩(wěn)定的吞吐量。純信用共識類的算法具有更高的吞吐量,并且CCAC算法的吞吐量高于SCACS算法,原因在于后者對于節(jié)點(diǎn)的信用值計(jì)算更加復(fù)雜,并且采用了信用空間來隨機(jī)生成礦工節(jié)點(diǎn),相比CCAC算法直接采用信用值排序來生成礦工節(jié)點(diǎn)更為復(fù)雜,在相同的交易并發(fā)量的情況下,完成共識所需的時(shí)間更長,所以吞吐量更低。信用+其他共識算法吞吐量相比純信用類共識算法更低,取決于所采用的共識協(xié)議,由于采用傳統(tǒng)鏈?zhǔn)浇Y(jié)構(gòu),吞吐量仍然是瓶頸。信用+PoX類的共識算法具有最低的吞吐量,其中CPoW讓所有節(jié)點(diǎn)參與破解hash難題競爭記賬,雖然信用機(jī)制的引入顯著提高了原始比特幣系統(tǒng)的吞吐量,但仍然很難應(yīng)用于實(shí)際場景。相比之下,CPoS具有更高的吞吐量,但由于信用機(jī)制的引入只是保證投票節(jié)點(diǎn)具有更高的可信度,并沒有對PoS共識進(jìn)行實(shí)質(zhì)的改進(jìn),算法的吞吐量要明顯小于純信用共識類。信用+BFT類算法在節(jié)點(diǎn)數(shù)量小于100時(shí),具有較高的吞吐量,但隨著節(jié)點(diǎn)規(guī)模的增大,文獻(xiàn)[17]的吞吐量顯著降低,因?yàn)橹恍薷牧薼eader節(jié)點(diǎn)的選舉方式,并無性能上的優(yōu)化傳統(tǒng)PBFT,所以隨著節(jié)點(diǎn)數(shù)量的增多會(huì)造成通信量的急劇增多,從而導(dǎo)致TPS急劇下降。而文獻(xiàn)[25]采用DAG作為數(shù)據(jù)底層存儲結(jié)構(gòu),并利用MapReduce提高交易的并行處理能力,故吞吐量保持在較高水平。
2)時(shí)延實(shí)驗(yàn)結(jié)果
本文設(shè)置20個(gè)節(jié)點(diǎn)參與共識,圖3給出了不同共識算法隨著共識次數(shù)變化得到的時(shí)延。從圖3可以看出,隨著共識次數(shù)的增加,共識時(shí)延逐漸增大。其中純信用類的共識算法時(shí)延最低,信用+BFT類次之,接著是信用+其他共識機(jī)制,最后是信用+PoX類。在純信用類的共識算法中,CCAC算法的共識時(shí)延比SCACS算法低。主要原因在于后者根據(jù)信用空間挑選礦工的,并且加入了分層懲罰機(jī)制,導(dǎo)致時(shí)延更大。信用+其他共識算法與信用+BFT類相比,時(shí)延更大,是由于ECCA中采用了信任傳播模型來評估節(jié)點(diǎn)信用等級,在時(shí)間上高于BFT類。信用+PoX類的算法中,CPoW的算法共識時(shí)延最高,CPoS次之。CPoW隨著區(qū)塊鏈長度的增加,它解決hash難題的難度也會(huì)成倍增加,因此會(huì)耗費(fèi)很多算力,共識時(shí)延較高。而CPoS基于采用節(jié)點(diǎn)投票方式選舉出礦工節(jié)點(diǎn),避免了復(fù)雜的hash運(yùn)算。信用+BFT類算法中,CABP相比ReCon的時(shí)延更高,原因在于前者引用神經(jīng)網(wǎng)絡(luò)模型來計(jì)算節(jié)點(diǎn)的信用值,相比線性計(jì)算方法更加耗時(shí)。
3)去中心化程度實(shí)驗(yàn)結(jié)果
本文設(shè)置20個(gè)節(jié)點(diǎn)參與共識,并對節(jié)點(diǎn)進(jìn)行1~20編號,進(jìn)行600次的共識,統(tǒng)計(jì)編號為奇數(shù)的節(jié)點(diǎn)成為礦工的次數(shù),結(jié)果如圖4和5所示。由于文獻(xiàn)[17]采用委員會(huì)來代替單一的礦工節(jié)點(diǎn),所以只比較了其余6種共識算法。從概率上分析,20個(gè)節(jié)點(diǎn)如果等概率成為礦工節(jié)點(diǎn),那么每個(gè)節(jié)點(diǎn)成為礦工的概率為1/20×100%=5%。圖4中是四種信用+現(xiàn)有共識機(jī)制的比較結(jié)果,從圖中可以看出CPoW算法共有8個(gè)節(jié)點(diǎn)的概率在0%~10%,ECCA為7個(gè),而CPoS和CABP均是6個(gè),但后面三個(gè)算法離基準(zhǔn)線5%距離較遠(yuǎn)的節(jié)點(diǎn)更多。值得注意的是,CPoS、ECCA和CABP節(jié)點(diǎn)最高的概率為15%,ECCA出現(xiàn)三次,CABP兩次,CPoS一次,意味著ECCA更容易出現(xiàn)“寡頭”節(jié)點(diǎn)。通過圖4可以判斷,四種算法中CPoW具有更好的去中心化程度,CPoS次之,ECCA最差。原因在于CPoW讓所有節(jié)點(diǎn)參與共識,雖然信用值高的節(jié)點(diǎn)會(huì)獲得更多的搜索空間,從而求解出hash難題的概率更大,但并不意味著信用值低的節(jié)點(diǎn)不能更早地求解出結(jié)果。CPoS、ECCA和CABP均在信用值高于閾值的節(jié)點(diǎn)集中挑選礦工,并不是所有的節(jié)點(diǎn)都有機(jī)會(huì)被選中,并且ECCA是在信用等級最高的節(jié)點(diǎn)集中隨機(jī)選擇leader節(jié)點(diǎn),更容易形成信用“寡頭”。
圖5是兩種純信用共識方法的比較結(jié)果。從圖中可以看出,CCAC每個(gè)節(jié)點(diǎn)等概率的成為礦工節(jié)點(diǎn),這與算法的實(shí)施原理直接相關(guān),CCAC中每一個(gè)周期是依次選取信用值降序排序的節(jié)點(diǎn)成為礦工,去中心化程度最高。SCACS的變化規(guī)律在5%附近震蕩,相比CCAC其去中心化程度更低,但這種不確定性增加了礦工節(jié)點(diǎn)的選取安全性。SCACS能讓每個(gè)節(jié)點(diǎn)成為礦工的概率趨向一致的主要原因是閾值機(jī)制能夠有效抑制“寡頭”節(jié)點(diǎn)的出現(xiàn),當(dāng)一個(gè)節(jié)點(diǎn)成為礦工的次數(shù)越大時(shí),其信用值增加得越來越慢,且需要更久的共識時(shí)間。
4)惡意節(jié)點(diǎn)驅(qū)逐概率實(shí)驗(yàn)結(jié)果
本文設(shè)置從第5輪共識開始,20個(gè)節(jié)點(diǎn)中20%的節(jié)點(diǎn)為惡意節(jié)點(diǎn),圖6給出了惡意節(jié)點(diǎn)驅(qū)逐概率的實(shí)驗(yàn)結(jié)果。從圖6中可以看出,隨著共識次數(shù)的增多,惡意節(jié)點(diǎn)被驅(qū)逐的概率越來越大,其中CABP和CPoW方法的性能領(lǐng)先于其他方法,在共識輪次達(dá)到70輪時(shí)基本上可以將所有的惡意節(jié)點(diǎn)驅(qū)逐。原因在于兩種方法均選用了神經(jīng)網(wǎng)絡(luò)方法對節(jié)點(diǎn)信用進(jìn)行評估,能更準(zhǔn)確地發(fā)現(xiàn)惡意節(jié)點(diǎn)行為。ECCA構(gòu)建了比較完整的信用等級評估模型,一旦出現(xiàn)惡意節(jié)點(diǎn),其信用等級會(huì)降低,成為礦工節(jié)點(diǎn)的概率幾乎為零,在共識輪次達(dá)到50次時(shí)將惡意節(jié)點(diǎn)驅(qū)逐的概率已達(dá)到50%。CPoS、CCAC和SCACS方法在共識輪次達(dá)到65時(shí)將惡意節(jié)點(diǎn)驅(qū)逐的概率達(dá)到50%,而ReCon方法驅(qū)逐惡意節(jié)點(diǎn)的能力最差,原因在于ReCon不是采用單一節(jié)點(diǎn)作為礦工節(jié)點(diǎn),而是采用委員會(huì)集體記賬的方式,那么單一節(jié)點(diǎn)作惡很難被發(fā)現(xiàn),因?yàn)橹灰沧R達(dá)成,即使有節(jié)點(diǎn)作惡,惡意節(jié)點(diǎn)也會(huì)從中獲得獎(jiǎng)勵(lì)。
3 BCAC展望
BCAC算法雖然取得了一定的進(jìn)展,但仍然存在在激勵(lì)機(jī)制不夠完善、信用機(jī)制與共識過程融合度不夠等問題,通過前期研究,BCAC算法可以充分與現(xiàn)有學(xué)科融合,引入博弈論和樹型通信拓?fù)鋪韮?yōu)化算法性能。
3.1 基于博弈論的信用激勵(lì)措施
去中心化網(wǎng)絡(luò)中節(jié)點(diǎn)的行為具有強(qiáng)自主性和不可控性,共識機(jī)制本質(zhì)上是節(jié)點(diǎn)參與網(wǎng)絡(luò)行為的具體表征,節(jié)點(diǎn)會(huì)選擇如何參與系統(tǒng)行為來獲得收益的最大化。博弈理論可以較好地對節(jié)點(diǎn)在網(wǎng)絡(luò)中的行為規(guī)律進(jìn)行建模,為設(shè)計(jì)更優(yōu)的信用激勵(lì)機(jī)制提供理論基礎(chǔ)。目前已經(jīng)有研究者們將博弈理論引入到共識算法中,如文獻(xiàn)[31]將博弈理論運(yùn)用到微電網(wǎng)管理區(qū)塊鏈的共識機(jī)制中,文獻(xiàn)[32,33]分別利用博弈論來優(yōu)化DPoS共識和PBFT共識。
區(qū)塊鏈系統(tǒng)的任務(wù)可以分為記賬(account)、驗(yàn)證(verify)和存儲(store)、節(jié)點(diǎn)參與任務(wù)的態(tài)度可分為積極(positive)、中肯(medium)和消極(negative)。節(jié)點(diǎn)采取博弈機(jī)制,通過不同的態(tài)度參與不同的系統(tǒng)任務(wù),獲得自己的收益。節(jié)點(diǎn)的收益矩陣如表2所示。研究者們可根據(jù)收益矩陣設(shè)計(jì)相應(yīng)的激勵(lì)函數(shù),使得節(jié)點(diǎn)在適當(dāng)?shù)耐度胂履塬@得最大的收益。
3.2 高效的通信拓?fù)?/p>
目前的信用共識算法,絕大多數(shù)將信用值用來選取礦工節(jié)點(diǎn),而缺乏與共識算法中其他步驟的融合。事實(shí)上,區(qū)塊驗(yàn)證與同步同樣是影響共識效率的關(guān)鍵。由于現(xiàn)有的區(qū)塊鏈中節(jié)點(diǎn)的通信方式基本上采用P2P方式,通信的時(shí)間復(fù)雜度通常為O(n2)。可采用結(jié)構(gòu)化的通信拓?fù)鋪斫档屯ㄐ诺膹?fù)雜度,Ji等人[34]早在2012年提出在共識算法中采用樹型拓?fù)浣Y(jié)構(gòu),將主節(jié)點(diǎn)作為根節(jié)點(diǎn),同步消息從根節(jié)點(diǎn)采用樹型圖遍歷方式進(jìn)行傳輸,通信的時(shí)間復(fù)雜度可降低為O(nlog2n),但無法保證主節(jié)點(diǎn)不是拜占庭節(jié)點(diǎn)。Du等人[35]提出將同步節(jié)點(diǎn)分為主動(dòng)和被動(dòng)節(jié)點(diǎn),由主動(dòng)節(jié)點(diǎn)給被動(dòng)節(jié)點(diǎn)采用樹型結(jié)構(gòu)進(jìn)行消息傳送,該方法顯著降低了通信的時(shí)間復(fù)雜度,但同樣存在主動(dòng)節(jié)點(diǎn)作惡對系統(tǒng)造成嚴(yán)重隱患的風(fēng)險(xiǎn)。
為了充分利用樹型結(jié)構(gòu)在通信復(fù)雜度上的優(yōu)勢,并有效解決惡意節(jié)點(diǎn)對系統(tǒng)性能的影響,可利用節(jié)點(diǎn)的信用值來構(gòu)建如圖7所示的樹型通信拓?fù)洹⒐?jié)點(diǎn)按照信用值進(jìn)行排序,編號為1的節(jié)點(diǎn)具有最高的信用值,也就是說信用值高的節(jié)點(diǎn)處于樹型通信拓?fù)涞妮^高層和父節(jié)點(diǎn),信用值低的節(jié)點(diǎn)大概率在底層或?yàn)槿~子節(jié)點(diǎn)。通常情況下,信用值低的節(jié)點(diǎn)具有大的概率作惡,由于處于樹型結(jié)構(gòu)的底層甚至是葉子節(jié)點(diǎn),即使作惡對于整個(gè)系統(tǒng)的影響可限制在較低的范圍,通過設(shè)計(jì)適當(dāng)?shù)墓?jié)點(diǎn)替換策略,能確保系統(tǒng)通信正常運(yùn)行。
當(dāng)然,除了在信用激勵(lì)和結(jié)構(gòu)化的通信拓?fù)渖厦婵蓪π庞霉沧R算法進(jìn)行優(yōu)化,也可從區(qū)塊鏈的底層數(shù)據(jù)存儲機(jī)制上進(jìn)行優(yōu)化,進(jìn)一步提升算法的效率。目前基于DAG的數(shù)據(jù)存儲機(jī)制相比傳統(tǒng)鏈?zhǔn)浇Y(jié)構(gòu)具有數(shù)據(jù)并發(fā)優(yōu)勢,已有較多的相關(guān)成果,可進(jìn)一步參考文獻(xiàn)[35~38]。
4 結(jié)束語
區(qū)塊鏈及其創(chuàng)新應(yīng)用是國家重點(diǎn)布局的新一代信息技術(shù),其中共識算法作為區(qū)塊鏈的核心技術(shù),成為研究熱點(diǎn)?;谛庞玫墓沧R算法作為一個(gè)新的研究方向近來年受到研究者們的廣泛關(guān)注,也取得了較好的研究成果。首先,本文對近年來的22種基于信用的區(qū)塊鏈共識算法進(jìn)行了系統(tǒng)地梳理,按照時(shí)間先后順序給出了其發(fā)展歷程。其次,對22種共識算法進(jìn)行了分類和簡要的介紹,概括出了信用共識算法的通用計(jì)算模型和評價(jià)指標(biāo)。接著,為了更好地對信用共識算法進(jìn)行深入研究,本文對現(xiàn)有的共識算法進(jìn)行了定性和定量的分析,對比分析了典型信用共識機(jī)制優(yōu)缺點(diǎn)。最后給出了信用共識的發(fā)展方向,提出可將博弈論引入到共識機(jī)制中,解決目前節(jié)點(diǎn)信用激勵(lì)不夠的問題;提出依據(jù)節(jié)點(diǎn)的信用值設(shè)計(jì)結(jié)構(gòu)化的樹型通信拓?fù)?,進(jìn)一步降低共識算法的通信復(fù)雜度。
參考文獻(xiàn):
[1]夏清,竇文生,郭凱文,等. 區(qū)塊鏈共識協(xié)議綜述[J]. 軟件學(xué)報(bào),2021,32(2): 277-299. (Xia Qing,Dou Wensheng,Guo Kaiwen,et al. Survey on blockchain consensus protocol[J]. Journal of Software,2021,32(2): 277-299.)
[2]Bouraga S. A taxonomy of blockchain consensus protocols: a survey and classification framework[J]. Expert Systems with Applications,2021,168: 114384.
[3]Amani A,Sun F,Richard R B,et al. Availability analysis of a permissioned blockchain with a lightweight consensus protocol[J]. Computers amp; Security,2021,102: 102098.
[4]Sallal M,Owenson G,Salman D,et al. Security and performance eva-luation of master node protocol based reputation blockchain in the bit-coin network[J]. Blockchain: Research and Applications,2022,3(1): 49-64.
[5]Liu Yuan,Lan Yixiao,Li Boyang,et al. Proof of learning(PoLe): empowering neural network training with consensus building on blockchains[J]. Computer Networks,2021,201: 108594.
[6]Ferdous M S,Chowdhury M J M,Hoque M A. A survey of consensus algorithms in public blockchain systems for crypt-currencies[J]. Journal of Network and Computer Applications,2021,182: 103035.
[7]Liu Jun,Xie Mingyue,Chen Shuyu,et al. An improved DPoS consensus mechanism in blockchain based on PLTS for the smart autonomous multi-robot system[J].Information Sciences,2021,575:528-541.
[8]Fan Yuqi,Wu Huanyu,Paik H Y. DR-BFT: a consensus algorithm for blockchain-based multi-layer data integrity framework in dynamic edge computing system[J]. Future Generation Computer Systems,2021,124: 33-38.
[9]王纘,田有亮,李秋賢,等. 基于信用模型的工作量證明算法[J]. 通信學(xué)報(bào),2018,39(8): 185-198. (Wang Zuan,Tian Youliang,Li Qiuxian,et al. Proof of work algorithm based on credit model[J]. Journal on Communications,2018,39(8): 185-198.)
[10]王瑞錦,郭上銅,邱瑋鴻,等. 基于信用投票共識的主從多鏈分層跨鏈模型[J]. 電子科技大學(xué)學(xué)報(bào),2021,50(6): 907-914. (Wang Ruijin,Guo Shangtong,Qiu Weihong,et al. A master-slave multi-chain hierarchical cross-chain model based on credit voting consensus[J]. Journal of University of Electronic Science and Technology of China,2021,50(6): 907-914.)
[11]Zhuang Qianwei,Liu Yuan,Chen Lisi,et al. Proof of reputation: a reputation-based consensus protocol for blockchain based systems[C]// Proc of Blockchain and Internet of Things Conference. New York: ACM Press,2019: 131-138.
[12]Huang Junqin,Kong Linghe,Chen Guihai,et al. B-IoT: blockchain driven Internet of Things with credit-based consensus mechanism[C]// Proc of the 39th IEEE International Conference on Distributed Computing Systems. Piscataway,NJ: IEEE Press,2019: 1348-1357.
[13]黃嘉成,許新華,王世純. 委托權(quán)益證明共識機(jī)制的改進(jìn)方案[J]. 計(jì)算機(jī)應(yīng)用,2019,39(7): 2162-2167. (Huang Jiacheng,Xu Xinhua,Wang Shichun. Improved scheme of delegated proof of stake consensus mechanism[J]. Journal of Computer Applications,2019,39(7): 2162-2167.)
[14]Bugday A,Ozsoy A,ztaner S M,et al. Creating consensus group using online learning based reputation in blockchain networks[J]. Pervasive and Mobile Computing,2019,59(C): 101056.
[15]Li Fengqi,Liu Kemeng,Liu Jing,et al. DHBFT: dynamic hierarchical Byzantine fault-tolerant consensus mechanism based on credit[C]// Proc of Asia-Pacific Web (APWeb) and Web-Age Information Management(WAIM) Joint International Conference on Web and Big Data. Berlin: Springer,2020: 3-17.
[16]Oliveira M T D,Reis L H A,Medeiros D S V,et al. Blockchain reputation-based consensus:a scalable and resilient mechanism for distributed mistrusting applications[J]. Computer Networks,2020,179: 107367.
[17]Biryukov A,F(xiàn)eher D. ReCon: sybil-resistant consensus from reputation[J]. Pervasive and Mobile Computing,2020,61: 101109.
[18]Wang E K,Liang Zuodong,Chen C M,et al. PoRX: a reputation incentive scheme for blockchain consensus of IIoT[J]. Future Gene-ration Computer Systems,2020,102: 140-151.
[19]劉昊哲,李莎莎,呂偉龍,等. 基于信譽(yù)度的主從多鏈區(qū)塊鏈共識機(jī)制[J]. 南京理工大學(xué)學(xué)報(bào),2020,44(3): 325-331.(Liu Hao-zhe,Li Shasha,Lyu Weilong,et al. Master-slave multiple-blockchain consensus based on credibility[J]. Journal of Nanjing University of Science and Technology,2020,44(3): 325-331.)
[20]Sun Lijun,Yang Qian,Chen Xiao,et al. RC-chain reputation-based crowdsourcing blockchain for vehicular networks[J]. Journal of Network and Computer Applications,2021,176: 102956.
[21]Mershad K,Cheikhrouhou O,Ismail L. Proof of accumulated trust: a new consensus protocol for the security of the IoV[J]. Vehicular Communications,2021,32: 100392.
[22]李淑芝,黃磊,鄧小鴻,等. 基于信用的聯(lián)盟鏈共識算法[J]. 計(jì)算機(jī)應(yīng)用研究,2021,38(8): 2284-2287. (Li Shuzhi,Huang Lei,Deng Xiaohong,et al. Consortium chain consensus algorithm based on credit[J]. Application Research of Computers,2021,38(8): 2284-2287.)
[23]周藝華,賈立圓,賈玉欣,等. 基于信譽(yù)度的Hashgraph共識算法[J]. 計(jì)算機(jī)應(yīng)用研究,2021,38(9): 2590-2593. (Zhou Yihua,Jia Liyuan,Jia Yuxin,et al. Hashgraph consensus algorithm based on credit[J]. Application Research of Computers,2021,38(9): 2590-2593.)
[24]Mohsenzadeh A,Bidgoly A J,F(xiàn)arjami Y. A fair consensus model in blockchain based on computational reputation[J]. Expert Systems with Applications,2022,204: 117578.
[25]Deng Xiaohong,Li Kangting,Wang Zhiqiang,et al. A novel consensus algorithm based on segmented DAG and BP neural network for consortium blockchain[J]. Security and Communication Networks,2022,2022: article ID 1060765.
[26]Mohsenzadeh A,Bidgoly A J,F(xiàn)arjami Y. A novel reputation-based consensus framework(RCF) in distributed ledger technology[J]. Computer Communications,2022,190(C): 126-144.
[27]Deng Xiaohong,Luo Zhiqiong,Zou Yijie,et al. A novel semifragile consensus algorithm based on credit space for consortium blockchain[J]. Security and Communication Networks,2022,2022: article ID 1955141.
[28]陳友榮,陳浩,韓蒙,等. 基于信用等級劃分的醫(yī)療數(shù)據(jù)安全共識算法[J]. 電子與信息學(xué)報(bào),2022,44(1): 279-287. (Chen Yourong,Chen Hao,Han Meng,et al. Security consensus algorithm of medical data based on credit rating[J]. Journal of Electronics amp; Information Technology,2022,44(1): 279-287.)
[29]陳友榮,章陽,陳浩,等. 面向車聯(lián)網(wǎng)異構(gòu)節(jié)點(diǎn)的區(qū)塊鏈高效一致性共識算法研究[J]. 電子與信息學(xué)報(bào),2022,44(1): 314-323. (Chen Yourong,Zhang Yang,Chen Hao,et al. Efficient consistency consensus algorithm of blockchain for heterogeneous nodes in the Internet of Vehicles[J]. Journal of Electronics amp; Information Technology,2022,44(1): 314-323.)
[30]黃保華,屈錫,鄭慧穎,等. 一種基于信用的拜占庭容錯(cuò)共識算法[J]. 信息網(wǎng)絡(luò)安全,2022,22(4): 86-92. (Huang Baohua,Qu Xi,Zheng Huiying,et al. A credit-based Byzantine fault tolerance consensus algorithm[J]. Netinfo Security,2022,22(4): 86-92.)
[31]Alhasnawi B N,Jasim B H,Sedhom B E,et al. Consensus algorithm-based coalition game theory for demand management scheme in smart microgrid[J]. Sustainable Cities and Society,2021,74: 103248.
[32]任南,馬園園. DPoS共識機(jī)制改進(jìn)的演化博弈及策略研究[J]. 計(jì)算機(jī)工程與應(yīng)用,2022,58(12): 102-111. (Ren Nan,Ma Yuanyuan. Research on evolutionary game and strategy of DPoS consensus mechanism improvement[J]. Computer Engineering and Applications,2022,58(12): 102-111.)
[33]楊昕宇,彭長根,楊輝,等. 基于演化博弈的理性拜占庭容錯(cuò)共識算法[J]. 計(jì)算機(jī)科學(xué),2022,49(3): 360-370. (Yang Xinyu,Peng Changgen,Yang Hui,et al. Rational PBFT consensus algorithm with evolutionary game[J]. Computer Science,2022,49(3): 360-370.)
[34]Ji Zhijian,Lin Hai,Yu Haisheng. Leaders in multi-agent control-lability under consensus algorithm and tree topology[J]. Systems amp; Control Letters,2012,61(9): 918-925.
[35]Du Liang,Tao Yuan,Chen Tianmei,et al. An advanced PBFT-based consensus algorithm for a bidding consortium blockchain[C]// Proc of the 3rd International Conference on Blockchain Technology. 2021: 176-182.
[36]高政風(fēng),鄭繼來,湯舒揚(yáng),等. 基于DAG的分布式賬本共識機(jī)制研究[J]. 軟件學(xué)報(bào),2020,31(4): 1124-1142. (Gao Zhengfeng,Zheng Jilai,Tang Suyang,et al. State-of-the-art survey of consensus mechanisms on DAG-based distributed ledger[J]. Journal of Software,2020,31(4): 1124-1142.)
[37]Fu Xiang,Wang Huaimin,Shi Peichang,et al. Teegraph: a blockchain consensus algorithm based on TEE and DAG for data sharing in IoT[J]. Journal of Systems Architecture,2022,122: 102344.
[38]Wang Shangping,Li Huan,Chen Juanjuan,et al. DAG blockchain-based lightweight authentication and authorization scheme for IoT devices[J]. Journal of Information Security and Applications,2022,66: 103134.
收稿日期:2022-07-21;修回日期:2022-09-19 基金項(xiàng)目:國家自然科學(xué)基金資助項(xiàng)目(61762046,62166019);江西省教育廳科學(xué)技術(shù)研究項(xiàng)目(GJJ209412,GJJ218506)
作者簡介:劉惠文(1987-),女,江西吉安人,講師,碩士,主要研究方向?yàn)閰^(qū)塊鏈及其應(yīng)用;謝才炳(1983-),男,江西贛州人,中級工程師,碩士,主要研究方向?yàn)榫W(wǎng)絡(luò)信息安全、區(qū)塊鏈;鄧小鴻(1982-),男(通信作者),湖北天門人,副教授,博士,主要研究方向?yàn)榫W(wǎng)絡(luò)信息安全、區(qū)塊鏈(deng_xh@jxust.edu.cn).