李俊清 辛衍森 宋長青
摘 ?要: 區(qū)塊鏈?zhǔn)且环N基于零信任基礎(chǔ)、去中心化及不可篡改的分布式賬本技術(shù)。共識算法作為區(qū)塊鏈主要技術(shù)之一,其效率直接影響區(qū)塊鏈系統(tǒng)性能。針對PBFT共識算法運行效率低的問題,本文提出了基于信譽的動態(tài)授權(quán)PBFT共識機(jī)制,引入信譽評價體系對系統(tǒng)節(jié)點進(jìn)行信譽評價,動態(tài)決定從信譽最高的節(jié)點中選取共識節(jié)點,同時實現(xiàn)了非停機(jī)情況下動態(tài)增刪節(jié)點的功能,且隨著系統(tǒng)長期運行,所能容忍的拜占庭節(jié)點動態(tài)增加;優(yōu)化了一致性協(xié)議,將傳統(tǒng)的一致性協(xié)議與基于speculation技術(shù)的拜占庭協(xié)議進(jìn)行融合,降低了算力開銷和通信代價;通過對共識節(jié)點的信譽及行為分析,進(jìn)一步降低惡意節(jié)點成為共識節(jié)點的概率,解決了由拜占庭節(jié)點作為主節(jié)點帶來的交易延遲增加問題。最后從算力開銷、交易吞吐量和容錯性能等方面進(jìn)行了論證分析。
關(guān)鍵詞: 區(qū)塊鏈;PBFT共識算法;全局信譽模型;動態(tài)授權(quán);speculation技術(shù)
中圖分類號: TP311.13 ? ?文獻(xiàn)標(biāo)識碼: A ? ?DOI:10.3969/j.issn.1003-6970.2019.05.001
本文著錄格式:李俊清,辛衍森,宋長青,等. 基于信譽的動態(tài)授權(quán)PBFT共識機(jī)制[J]. 軟件,2019,40(5):0107
【Abstract】: Blockchain is a distributed ledger technology based on zero-trust foundation, decentralization and non-tamperability. Consensus algorithm is one of the main techniques of blockchain, and its efficiency directly affects the performance of blockchain system. Aiming at the low efficiency of PBFT consensus algorithm, this paper proposes a reputation-based dynamic authorization PBFT consensus mechanism, introduces a reputation evaluation system to evaluate the reputation of system nodes, and dynamically decides to select consensus nodes from the nodes with the highest reputation. At the same time, the function of dynamically adding and deleting nodes in the case of non-downtime is realized, and the Byzantine nodes that can be tolerated dynamically increase with the long-term operation of the system; The consistency protocol is optimized, and the traditional consistency protocol is merged with the Byzantine protocol based on speculation technology, which reduces the computational overhead and communication cost; Through the analysis of the reputation and behavior of the consensus node, the probability of the malicious node becoming the consensus node is further reduced, and the problem of increased transaction delay caused by the Byzantine node as the master node is solved. Finally, the argumentation analysis is carried out from the aspects of computational power, transaction throughput and fault tolerance.
【Key words】: Blockchain; PBFT consensus algorithm; Global reputation model; Dynamic authorization; Speculation technology
0 ?引言
區(qū)塊鏈(Blockchain)作為當(dāng)下熱門的分布式數(shù)據(jù)庫技術(shù)方案,包含分布式數(shù)據(jù)存儲技術(shù)、P2P網(wǎng)絡(luò)傳輸機(jī)制、分布式節(jié)點間的共識機(jī)制、加密算法、可編程的智能合約等技術(shù)[1]。由于其具有去中心化、開放性、自治性、不可篡改和匿名性的特點,區(qū)塊鏈不僅在數(shù)字貨幣等數(shù)字資產(chǎn)中發(fā)揮巨大作用,而且對金融服務(wù)、公共服務(wù)、社會生活等領(lǐng)域產(chǎn)生深遠(yuǎn)影響。
區(qū)塊鏈的快速發(fā)展的同時,其存儲、共識、監(jiān)管和安全等方面問題凸顯,其中共識算法效率制約著區(qū)塊鏈技術(shù)大范圍應(yīng)用。起初比特幣區(qū)塊鏈采用依賴節(jié)點算力的工作量證明共識算法(POW)來實現(xiàn)一致性選擇[1]。隨著技術(shù)發(fā)展,非許可鏈中相繼涌現(xiàn)出權(quán)益證明機(jī)制(POS)和股份授權(quán)證明機(jī)制(DPOS),許可鏈發(fā)展了實用拜占庭容錯機(jī)制(PBFT)[2]等共識機(jī)制,但每種機(jī)制在吞吐量、時延、功耗等方面都難以兼顧。
本文基于DPOS的思想,利用信譽評價體系進(jìn)行共識節(jié)點的選取,在PBFT共識機(jī)制基礎(chǔ)上融合基于speculation技術(shù)的拜占庭算法,同時引入拜占庭節(jié)點檢測機(jī)制,以保障系統(tǒng)長期運行環(huán)境的安全性和高效性。
1 ?相關(guān)知識
1.1 ?共識機(jī)制介紹
共識就是使得在權(quán)力高度分散的去中心化系統(tǒng)中各個節(jié)點達(dá)成一致,共識機(jī)制在去中心化的基礎(chǔ)上解決了節(jié)點間互相信任的問題。如何在分布式系統(tǒng)中高效達(dá)成共識是分布式計算領(lǐng)域的重要研究問題之一[1]。區(qū)塊鏈網(wǎng)絡(luò)中節(jié)點數(shù)目越多,去中心化程度越高,那么節(jié)點決策權(quán)越小,系統(tǒng)達(dá)成共識的效率越低。
1.1.1 ?工作量證明機(jī)制(POW)
中本聰在2009年實現(xiàn)的比特幣系統(tǒng)中采用了POW共識機(jī)制,其核心思想是通過算力進(jìn)行挖礦,獲取記賬權(quán)。比特幣所采用的是一種可重復(fù)使用的Hashcash工作證明機(jī)制,使得生成工作證明量是一個概率意義上的隨機(jī)過程[2]。在系統(tǒng)中,所有的節(jié)點(礦工)都要根據(jù)各自計算機(jī)算力使用不同的隨機(jī)數(shù)持續(xù)計算一個特定的哈希值,該過程被稱為“挖礦”。為了驅(qū)使礦工進(jìn)行挖礦,該行為設(shè)定了相應(yīng)的獎勵機(jī)制。由此可知,該共識機(jī)制的優(yōu)點是通過算力競爭保證系統(tǒng)的完全去中心化和安全性,缺點是挖礦造成大量能源消耗和硬件資源浪費。比特幣系統(tǒng)動態(tài)調(diào)整目標(biāo)值,維持生成區(qū)塊的平均時間和交易確認(rèn)時間分別在十分鐘和一小時左右,效率低,難以大范圍應(yīng)用。
1.1.2 ?權(quán)益證明機(jī)制(POS)
Nick Szabo提出的POS可以說是為了解決POW的資源消耗問題的一種節(jié)能替代機(jī)制,本質(zhì)上是用對貨幣所有權(quán)的證明取代算力競爭。貨幣的來源是在生成一個區(qū)塊時,由礦工發(fā)起關(guān)于特定貨幣分配的交易,POS是基于幣齡來選擇節(jié)點創(chuàng)建下一個區(qū)塊,節(jié)點所持有的代幣越多、時間越長,挖礦的難度越低,達(dá)成共識的時間越短。與POW相比,POS可以節(jié)省更多的資源,性能有所提高,而其容錯能力與POW相當(dāng),并沒有擺脫節(jié)點挖礦,不具有普適性。由于該機(jī)制相信權(quán)益高的節(jié)點攻擊網(wǎng)絡(luò)的可能性低,所以一定程度上安全性降低。
1.1.3 ?股份授權(quán)證明機(jī)制(DPOS)
DPOS是在POW及POS的基礎(chǔ)上,用節(jié)點的權(quán)益作為選票選出一定數(shù)量的代表節(jié)點輪流進(jìn)行區(qū)塊的生成和驗證。過程中產(chǎn)生的收益由這些代表節(jié)點平分,并且含有權(quán)益的節(jié)點可以隨時發(fā)起投票更換“有問題”的代表節(jié)點。DPOS機(jī)制大幅降低了直接參與共識的節(jié)點,減少了對確認(rèn)的需求,使共識驗證過程可以在秒級單位內(nèi)完成。隨之帶來的是節(jié)點參與投票不積極或者代理投票的問題,同時對于代幣的依賴使得該機(jī)制難以適用于商業(yè)應(yīng)用。
1.1.4 ?實用拜占庭容錯機(jī)制(PBFT)
拜占庭容錯技術(shù)能夠容忍任意形式的軟件錯誤和安全漏洞,作為一種解決分布式系統(tǒng)容錯問題的通用方案,復(fù)雜度由指數(shù)級降到了多項式級,大大降低了拜占庭協(xié)議的開銷[3]。PBFT作為一種狀態(tài)機(jī)副本復(fù)制算法,其前提要求節(jié)點共識時狀態(tài)相同,且對同一消息處理結(jié)果也必須相同。PBFT中,區(qū)塊鏈網(wǎng)絡(luò)中存在拜占庭節(jié)點數(shù)f,則總節(jié)點須大于3f,而多于3f的節(jié)點帶來是系統(tǒng)算力增加,容錯性能較低。其在交易吞吐量和共識延遲方面性能有較大提高,符合大部分應(yīng)用要求,是目前最主流的共識算法。目前,HyperLedger聯(lián)盟、中國ChinaLedger聯(lián)盟等區(qū)塊鏈聯(lián)盟都在進(jìn)行該共識機(jī)制的實際部署應(yīng)用[2]。
1.2 ?全局信譽模型
胡建理等學(xué)者提出的一種基于反饋可信度的分布式P2P信任模型(FCTrust)[4]是在原有的基于信譽的全局信任模型上[5,6],為了防止惡意節(jié)點進(jìn)行虛假評價、共謀欺騙等惡意行為,提出的一種節(jié)點反饋信息評價機(jī)制,將全局可信度高的節(jié)點與反饋信息可信度高的節(jié)點區(qū)分開來。該反饋信息評價機(jī)制將節(jié)點間交易頻率和節(jié)點評價的相似度納入主要參考因素。FCTrust是通過參與交易的節(jié)點之間相互評價,分析節(jié)點之間的交易次數(shù)、評分比較和節(jié)點的全局信譽值,為該節(jié)點分配一個信任值,然后通過迭代運算得到一個在全局范圍內(nèi)的信譽值,該信譽值在沒有交易進(jìn)行的情況下對所有節(jié)點是保持不變并且唯一的。
由于其引入了節(jié)點反饋信息評價機(jī)制,所以相比EigenTrust模型對惡意節(jié)點的虛假評價、對抗共謀等惡意行為的處理更加有效,給予惡意節(jié)點更低的全局信譽值。綜合考慮了交易節(jié)點之間的局部信任、節(jié)點自身的全局信譽值和節(jié)點間反饋信息可信度,降低系統(tǒng)信任誤差度,使得節(jié)點最終得到的全局信譽值更加可靠和精確。FCTrust要求所取得最終的全局信譽值依賴的節(jié)點評價及反饋信息具有近期有效性,并且利用分布式求解協(xié)議計算全局信譽值,因此大大降低了算法的復(fù)雜度。例如在消息復(fù)雜度的測試中,得到EigenTrust模型為O(n2),而FCTrust模型僅為O(n)[4]。
2 ?共識機(jī)制優(yōu)化
本文提出了一種優(yōu)化的共識機(jī)制,以下稱為基于信譽的實用拜占庭容錯機(jī)制,簡稱RPBFT(reputation practical byzantine fault tolerance)。利用全局信任模型決定直接參與共識的節(jié)點;采用傳統(tǒng)一致性協(xié)議融合基于speculation技術(shù)的拜占庭協(xié)議,降低網(wǎng)絡(luò)開銷,提高系統(tǒng)效率;通過對共識節(jié)點的行為和其自身的全局信譽值分析,引入拜占庭節(jié)點的檢測機(jī)制,對拜占庭節(jié)點進(jìn)行降級處理,提高該系統(tǒng)所能容忍的最大惡意節(jié)點數(shù)。
2.1 ?共識節(jié)點的選擇
基于DPOS的思想,同時為了避免投票機(jī)制帶來的投票者不積極、代理投票等導(dǎo)致投票的有效性降低的問題,本文利用全局信任模型,將節(jié)點的全局信譽值作為選擇共識節(jié)點的重要標(biāo)準(zhǔn)。為了確保選取的共識節(jié)點都處于正常在線狀態(tài),為每一個節(jié)點設(shè)置一個狀態(tài)標(biāo)識。然后按照公式1:
Rf=GrfState ? ? (1)
公式1中,Rf是節(jié)點信用系數(shù)值,Grf代表節(jié)點的全局信譽值,State(Boolean類型)表示節(jié)點狀態(tài);當(dāng)節(jié)點出現(xiàn)掛機(jī)、被攻擊、自身故障、網(wǎng)絡(luò)問題、離線狀態(tài)等不能正常運行時State為0。由公式得出每個節(jié)點的信用系數(shù)值,按照該信任系數(shù)值從高到低選取前100位組成共識節(jié)點集,其中各節(jié)點之間是相互平等的,繼續(xù)選取前50位組成預(yù)備共識節(jié)點集,兩節(jié)點集中節(jié)點數(shù)目可由所有節(jié)點投票動態(tài)決定。
當(dāng)共識節(jié)點集正在進(jìn)行區(qū)塊的生成及驗證時,由于節(jié)點的State可能發(fā)生變化,要求預(yù)備共識節(jié)點集是動態(tài)變化的。隨著交易進(jìn)行對節(jié)點評價和反饋消息會不斷更新,同時要求這些評價和反饋消息具有近期有效性,以保證節(jié)點的全局信譽值是動態(tài)變化的。因此,為保障系統(tǒng)實時有效性,共識節(jié)點集每經(jīng)過一段時間需進(jìn)行更新。該時間間隔內(nèi)若在共識節(jié)點集中發(fā)現(xiàn)惡意節(jié)點,系統(tǒng)將惡意節(jié)點賦予更低全局信譽值并將其剔除共識節(jié)點集,由預(yù)備共識節(jié)點集的首個節(jié)點代替該節(jié)點參與共識。隨著系統(tǒng)的運行,正常節(jié)點交易越頻繁,全局信譽值越高,而各類惡意節(jié)點能夠被全局信任模型有效識別并賦予更低的全局信譽值,系統(tǒng)開始良性循環(huán),惡意節(jié)點被選作共識節(jié)點的可能性非常低。共識算法中所能容忍的拜占庭節(jié)點數(shù)不變,但惡意節(jié)點被選作共識節(jié)點的可能性降低,因此整個系統(tǒng)可容忍的惡意節(jié)點數(shù)量動態(tài)增加。
2.2 ?RPBFT共識算法
2.2.1 ?算法定義
PBFT共識機(jī)制在保證活性和安全性的基礎(chǔ)上,當(dāng)總節(jié)點數(shù)目為3f+1時,其能容忍的拜占庭節(jié)點數(shù)最大為f。該算法中由一致性協(xié)議保證每一個正常節(jié)點以相同順序執(zhí)行客戶端的請求消息;在主節(jié)點發(fā)生系統(tǒng)錯誤或成為拜占庭節(jié)點時利用視圖更換協(xié)議更換主節(jié)點,使正常節(jié)點執(zhí)行過的客戶端請求不被篡改;檢查點協(xié)議用以清除日志記錄、設(shè)置水線值(h和H)、同步節(jié)點狀態(tài)。
RPBFT共識機(jī)制,相對于傳統(tǒng)的一致性協(xié)議,融合了基于Zyzzyva5協(xié)議[7]的拜占庭算法,該算法引入了speculation技術(shù),在節(jié)點接收請求后直接執(zhí)行請求,省去了一致性協(xié)議中耗時的兩兩交互環(huán)節(jié),但在共識過程中若存在拜占庭節(jié)點,其性能會大大降低。因此,我們利用全局信任模型和拜占庭節(jié)點檢測機(jī)制大幅降低甚至消除共識節(jié)點中拜占庭節(jié)點的存在,將傳統(tǒng)的一致性協(xié)議和基于speculation技術(shù)的拜占庭協(xié)議進(jìn)行結(jié)合。
2.2.2 ?算法流程
假設(shè)共識節(jié)點共有n個,則從0到n-1對節(jié)點進(jìn)行編號,所有節(jié)點的相同狀態(tài)信息稱為視圖,同時對視圖由0開始遞增編號。視圖中要求有一個主節(jié)點(primary),該主節(jié)點采用公式2選取,
p=(h+v)mod n ?(2)
公式2中p代表節(jié)點編號,h代表當(dāng)前共識區(qū)塊高度,v代表視圖編號;其余共識節(jié)點稱作從節(jié)點(replica);當(dāng)primary節(jié)點失效時,從replica節(jié)點中依據(jù)公式2選取一個新的primary節(jié)點[8]。算法如下:
(1)若共識節(jié)點中無拜占庭節(jié)點
RPBFT共識的具體步驟如下:
a)客戶端將交易信息發(fā)送到primary節(jié)點。
b)primary節(jié)點收到客戶端請求消息后打包排序,然后廣播預(yù)準(zhǔn)備消息給replica節(jié)點。
c)節(jié)點執(zhí)行該請求,最后向客戶端反饋結(jié)果,如果客戶端收到3f+1個節(jié)點反饋的信息并且信息全部相同,則共識成功。
d)若客戶端沒有收到所有節(jié)點的反饋信息或者存在不相同的反饋信息,則說明共識失敗,共識節(jié)點中存在拜占庭節(jié)點,轉(zhuǎn)到一致性協(xié)議共識流程重新共識。
RPBFT共識流程采用基于Zyzzyva5協(xié)議的共識流程,如圖1所示。
(2)若共識節(jié)點中存在拜占庭節(jié)點
RPBFT共識的具體步驟如下:
a)客戶端將交易信息發(fā)送到primary節(jié)點。
b)primary節(jié)點接收消息后進(jìn)行打包并檢驗其中交易合法性,刪除非法交易信息,分配序列號。然后向replica節(jié)點發(fā)送預(yù)準(zhǔn)備消息<
c)replica節(jié)點收到預(yù)準(zhǔn)備消息,則表明消息通過節(jié)點驗證(該驗證包括視圖編號、消息序號、摘要、簽名等)且進(jìn)入準(zhǔn)備階段,發(fā)送準(zhǔn)備消息
d)在節(jié)點收到2f個準(zhǔn)備消息后進(jìn)行合法性驗證,寫入日志,準(zhǔn)備消息必須寫入日志,而預(yù)準(zhǔn)備消息則可進(jìn)行選擇記錄,日志的寫入標(biāo)志著準(zhǔn)備階段完成。發(fā)送確認(rèn)消息
e)節(jié)點收到2f+1個確認(rèn)消息,代表著達(dá)成共識,然后節(jié)點執(zhí)行該請求并寫入數(shù)據(jù),最后向客戶端反饋信息。
RPBFT共識流程采用基于傳統(tǒng)一致性協(xié)議流程,如圖2所示。
隨著系統(tǒng)運行,節(jié)點的全局信譽值越來越精確,共識節(jié)點中存在拜占庭節(jié)點的可能性大大降低,因此系統(tǒng)將會采用基于speculation技術(shù)的算法進(jìn)行共識并保持良性循環(huán)。從而降低共識的響應(yīng)延遲、增加系統(tǒng)吞吐量、減少算力、降低功耗。圖3為系統(tǒng)完整的共識算法流程圖。
2.3 ?拜占庭節(jié)點檢測與降級
在共識節(jié)點集沒進(jìn)行更新的這段時間內(nèi),共識節(jié)點有可能會發(fā)生系統(tǒng)故障、網(wǎng)絡(luò)延遲或遭受惡意攻擊等錯誤,則該節(jié)點被稱為拜占庭節(jié)點。因此,當(dāng)一個共識階段完成后,未能向客戶端發(fā)送反饋消息或者反饋消息不一致的節(jié)點,則認(rèn)為產(chǎn)生錯誤行為,此時本算法將降低其全局信譽值并且立即剔除共識節(jié)點集,由預(yù)備共識節(jié)點集中首個節(jié)點代替參與共識。進(jìn)一步降低了共識節(jié)點中拜占庭節(jié)點存在的可能性,配合全局信任模型為系統(tǒng)執(zhí)行基于speculation技術(shù)的拜占庭協(xié)議提供保障,提高系統(tǒng)效率。
3 ?性能分析
現(xiàn)有的共識算法中,全球大部分算力被比特幣區(qū)塊鏈系統(tǒng)所吸引,因此其它采用POW的系統(tǒng)很難獲得足夠算力以保障系統(tǒng)安全,而且系統(tǒng)達(dá)成共識時間較長;POS雖然解決了一部分資源浪費的問題,但仍然沒有擺脫挖礦過程,沒有解決其本質(zhì)問題;DPOS是在POS的基礎(chǔ)上發(fā)展而來,卻沒有擺脫代幣的制約;因此,POW、POS、DPOS在眾多的應(yīng)用中都存在著制約問題。許可鏈中普遍采用的PBFT共識效率和吞吐量高,但是較低的容錯性和兩兩交互的通信代價導(dǎo)致其只適用于小規(guī)模的許可鏈。本文提出的RPBFT在PBFT基礎(chǔ)上,利用全局信任模型選取共識節(jié)點,提高共識效率,增強(qiáng)系統(tǒng)容錯性;將PBFT中靜態(tài)的共識節(jié)點機(jī)制調(diào)整為動態(tài)可加入、剔除和降級處理機(jī)制,適用于非許可鏈系統(tǒng)和大規(guī)模的許可鏈系統(tǒng)。
從算力開銷、交易吞吐量和容錯性能三個方面進(jìn)行RPBFT與PBFT對比分析如下:
3.1 ?算力開銷
PBFT共識算法中存在兩次全網(wǎng)節(jié)點相互通信的過程,通信代價高,所以限制了該共識在公有鏈和大規(guī)模的聯(lián)盟鏈系統(tǒng)中的適用性。RPBFT相比PBFT大大降低兩兩通信交互的過程,因此其通信代價大幅降低。
由于RPBFT引用了全局信任模型,通信代價有所增加,但其復(fù)雜度遠(yuǎn)小于PBFT的復(fù)雜度;同時RPBFT將傳統(tǒng)的一致性協(xié)議與基于speculation技術(shù)的拜占庭協(xié)議進(jìn)行結(jié)合,全局信譽值低的惡意節(jié)點參與共識的概率非常低,配合拜占庭節(jié)點檢測與降級機(jī)制,最優(yōu)情況下可以消除共識節(jié)點中拜占庭節(jié)點,所以大部分共識過程中,系統(tǒng)采用基于speculation技術(shù)的拜占庭協(xié)議進(jìn)行區(qū)塊生成與驗證。
下面利用該全局信任模型求解所選出的共識節(jié)點中惡意節(jié)點的概率,該模型的性能評價中引入成功交易率(STR),即系統(tǒng)中成功交易次數(shù)占總交易次數(shù)的比例。這里可以認(rèn)為是一個節(jié)點選擇另一個節(jié)點進(jìn)行交易,若交易節(jié)點是正常節(jié)點,則交易成功,否則交易失敗,可以認(rèn)為成功交易率亦代表節(jié)點選擇正常節(jié)點的概率。惡意節(jié)點包括簡單惡意節(jié)點(SMS)、不誠實推薦節(jié)點(SMR)、協(xié)同惡意節(jié)點(CM)和策略型惡意節(jié)點(SMP)[4]。由于SMP節(jié)點能夠視具體情況進(jìn)行相應(yīng)評價,以避免被模型識別并賦予較低信譽值,因此,其對系統(tǒng)的影響要大于其他種類的惡意節(jié)點。假設(shè)系統(tǒng)中惡意節(jié)點全為SMP節(jié)點且占系統(tǒng)總節(jié)點33%,STR在隨SMP節(jié)點的變化情況,如圖4
由圖4可知,當(dāng)SMP節(jié)點占比為33%時,STR約為0.84。由于現(xiàn)實系統(tǒng)中惡意節(jié)點不只是SMP類型,即說明在惡意節(jié)點為33%的系統(tǒng)中,選擇共識節(jié)點時正常節(jié)點的概率要大于84%。若節(jié)點在共識中不作為,則可認(rèn)為該節(jié)點為“漏網(wǎng)”的拜占庭節(jié)點,賦予低信譽值并且降級處理,進(jìn)一步降低拜占庭節(jié)點的存在,降低算力開銷。
3.2 ?交易吞吐量
區(qū)塊鏈系統(tǒng)的交易吞吐量是量化系統(tǒng)運行效率高低的一個重要標(biāo)準(zhǔn)。RPBFT有效的降低了交易延遲、提高吞吐量。
RPBFT中主節(jié)點發(fā)生故障的可能性降低,降低調(diào)用試圖切換協(xié)議的頻率,降低了交易延遲;算力開銷降低,縮短了交易處理時間,進(jìn)一步提高了交易吞吐量;因此,RPBFT的交易吞吐量隨著系統(tǒng)運行時間增加而增加,相比PBFT的相對穩(wěn)定值有較大提高。
3.3 ?容錯性能
PBFT共識算法要求系統(tǒng)能容忍的最大拜占庭節(jié)點數(shù)不超過全網(wǎng)結(jié)點的1/3,容錯能力較低,對系統(tǒng)性能影響較大。RPBFT的容錯性能要大于33%。
RPBFT能夠隨著系統(tǒng)的長期運行,共識節(jié)點中拜占庭節(jié)點數(shù)大大降低甚至消除,惡意節(jié)點的全局信譽值越來越低,所以惡意節(jié)點在共識節(jié)點的選取上所發(fā)揮的作用微乎其微。由圖4可知,SMP節(jié)點占比增加至40%時,STR仍高達(dá)0.8,配合拜占庭檢測機(jī)制,則當(dāng)系統(tǒng)中惡意節(jié)點適當(dāng)增加時并不會對系統(tǒng)產(chǎn)生影響。因此,RPBFT能容忍的惡意節(jié)點數(shù)隨著系統(tǒng)進(jìn)入良性循環(huán)而增加,可由交易吞吐量檢測來間接反應(yīng)適當(dāng)增加惡意節(jié)點時對系統(tǒng)性能的影響。
以上分析對比在相同的非必要因素條件下,論證了RPBFT共識機(jī)制具有更低的通信開銷、更高的交易吞吐量和容錯能力。
4 ?總結(jié)與展望
本文提出的基于信譽的PBFT共識機(jī)制,通過全局信任模型為每個節(jié)點分配全局信譽值,配合拜占庭節(jié)點檢測和剔除機(jī)制,并融合了傳統(tǒng)一致性協(xié)議算法和基于speculation技術(shù)的協(xié)議,有效改善了PBFT的容錯性能較低和靜態(tài)節(jié)點結(jié)構(gòu),進(jìn)一步提高系統(tǒng)性能。
本文下一步工作是:如何利用信譽評價模型賦予每個節(jié)點更加精確和準(zhǔn)確的信譽值,縮短系統(tǒng)運行進(jìn)入良性循環(huán)的時間;在共識節(jié)點選取和讀取節(jié)點信譽值進(jìn)行比較時,如何嚴(yán)格的保障數(shù)據(jù)的隱私安全。
參考文獻(xiàn)
[1] 袁勇, 王飛躍. 區(qū)塊鏈技術(shù)發(fā)展現(xiàn)狀與展望[J]. 自動化學(xué)報, 2016, 42(4): 481-494.
[2] 蔡亮, 李啟雷, 梁秀波. 區(qū)塊鏈技術(shù)進(jìn)階與實戰(zhàn)[M]. 北京: 人民郵電出版社, 2018.
[3] 范捷, 易樂天, 舒繼武. 拜占庭系統(tǒng)技術(shù)研究綜述[J]. 軟件學(xué)報, 2013, 24(06): 1346-1360.
[4] 胡建理, 吳泉源, 周斌, 劉家紅. 一種基于反饋可信度的分布式P2P信任模型[J]. 軟件學(xué)報, 2009, 20(10): 2885- 2898.
[5] 竇文, 王懷民, 賈焰, 鄒鵬. 構(gòu)造基于推薦的Peer-to-Peer環(huán)境下的Trust模型[J]. 軟件學(xué)報, 2004(04): 571-583.
[6] Xiong L, Liu L. PeerTrust: Supporting Reputation-Based Trust for Peer-to-Peer Electronic Communities[J]. IEEE Transactions on Knowledge & Data Engineering, 2004, 16(7): 843-857.
[7] Kotla R, Alvisi L, Dahlin M, Clement A, Wong E. Zyzzyva: Speculative Byzantine fault tolerance. In: Proc. of the 21st ACM SIGOPS Symp. on Operating Systems Principles. New York: ACM Press, 2007, 45-58. [doi:10.1145/1294261. 1294267]
[8] 劉肖飛. 基于動態(tài)授權(quán)的拜占庭容錯共識算法的區(qū)塊鏈性能改進(jìn)研究[D]. 浙江大學(xué), 2017.
[9] Miguel Castro, Barbara Liskov. Practical byzantine fault tolerance and proactive recovery[J]. ACM Transactions on Computer Systems (TOCS), 2002, 20(4).
[10] Cowling J, Myers D, Liskov B, Rodrigues R, Shrira L. HQ replication: A hybrid quorum protocol for Byzantine fault tolerance. In: Proc. of the 7th Symp. on Operating Systems Design and Implementation. Berkeley: USENIX Association, 2006. 177-190.
[11] 王曉光. 區(qū)塊鏈技術(shù)共識算法綜述[J]. 信息與電腦(理論版), 2017(9): 72-74.
[12] 周鄴飛. 區(qū)塊鏈核心技術(shù)演進(jìn)之路——共識機(jī)制演進(jìn)(1)[J]. 計算機(jī)教育, 2017(4): 155-158.
[13] Nakamoto S. Bitcoin: A peer-to-peer electronic cash system[J]. Consulted, 2008.
[14] Hendricks J, Sinnamohideen S, Ganger GR, Reiter MK. Zzyzx: Scalable fault tolerance through Byzantine locking. In: Proc. of the 2010 IEEE/IFIP Intl Conf. on Dependable Systems and Networks. 2010. 363-372. [doi:10.1109/DSN.2010.5544297]
[15] 常文軍, 孫超平, 胡鑫. 基于分布式偏好關(guān)系的多屬性決策方法及應(yīng)用[J]. 計算機(jī)應(yīng)用研究, 2017, 34(12): 3693- 3697+3707.
[16] 閔新平, 李慶忠, 孔蘭菊, 張世棟, 鄭永清, 肖宗水. 許可鏈多中心動態(tài)共識機(jī)制[J]. 計算機(jī)學(xué)報, 2018, 41(05): 1005-1020.
[17] I Bentov, C Lee, A Mizrahi, M Rosenfeld. Proof of Activity: Extending BitcoinS Proof of Work via Proof of Stake. Acm Sigmetrics Performance Evaluation Review, 2014. 42(3): 34-37.
[18] 苑超, 徐蜜雪, 斯雪明. 基于聚合簽名的共識算法優(yōu)化方案[J]. 計算機(jī)科學(xué), 2018, 45(02): 53-56+83.
[19] 張永, 李曉輝. 一種改進(jìn)的區(qū)塊鏈共識機(jī)制的研究與實現(xiàn)[J]. 電子設(shè)計工程, 2018, 26(01): 38-42+47.
[20] Happe A, Krenn S, Lornnser T. PBFT and Secret—Sharing in Storage Settings[C]//Twenty-fourth International Workshop on Security Protocols. 2016.