999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種基于門限簽名的區(qū)塊鏈共識算法

2022-12-31 00:00:00胡榮磊丁安邦于秉琪
計(jì)算機(jī)應(yīng)用研究 2022年12期

收稿日期:2022-04-28;修回日期:2022-06-21" 基金項(xiàng)目:北京電子科技學(xué)院教研基金資助項(xiàng)目(jy202148);大學(xué)生創(chuàng)新訓(xùn)練項(xiàng)目(202210018009);高精尖學(xué)科建設(shè)基金資助項(xiàng)目(20210032Z0401,20210033Z0402)

作者簡介:胡榮磊(1971-),男,河北衡水人,副研究員,碩導(dǎo),博士,主要研究方向?yàn)槲锫?lián)網(wǎng)、區(qū)塊鏈、信息安全;丁安邦(1996-),男(通信作者),江蘇淮安人,碩士,主要研究方向?yàn)閰^(qū)塊鏈、信息安全(dinganbang@foxmail.com);于秉琪(1995-),男,山東肥城人,碩士,主要研究方向?yàn)閰^(qū)塊鏈、信息安全.

摘 要:

針對區(qū)塊鏈應(yīng)用于物聯(lián)網(wǎng)環(huán)境下的特點(diǎn)和要求,分析了目前廣泛應(yīng)用于聯(lián)盟鏈的實(shí)用拜占庭容錯(cuò)算法(PBFT)的弊端以及目前應(yīng)用于共識網(wǎng)絡(luò)中的門限簽名算法存在的普遍問題,提出改進(jìn)的共識算法。首先,新共識機(jī)制將網(wǎng)絡(luò)中的節(jié)點(diǎn)分組用部分節(jié)點(diǎn)的兩兩通信代替所有節(jié)點(diǎn)的兩兩通信,減少了通信量;其次,將組合公鑰的思想引入到門限簽名中,減少了通信量與計(jì)算量;最后,在節(jié)點(diǎn)之間引入信用分機(jī)制,優(yōu)化視圖切換協(xié)議。仿真結(jié)果表明,新提出的共識算法在數(shù)據(jù)吞吐量以及通信時(shí)延方面有了明顯提升,并且得到了通信量最低時(shí)的最佳分組方式。

關(guān)鍵詞:實(shí)用拜占庭容錯(cuò);共識算法;區(qū)塊鏈;門限簽名

中圖分類號:TP309.2"" 文獻(xiàn)標(biāo)志碼:A""" 文章編號:1001-3695(2022)12-004-3555-07

doi:"" 10.19734/j.issn.1001-3695.2022.04.0219

Blockchain consensus algorithm based on threshold signature

Hu Ronglei, Ding Anbang, Yu Bingqi

(Dept. of Electronics amp; Information Engineering, Beijing Electronic Science amp; Technology Institute, Beijing 100070, China)

Abstract:

Considering the characteristics and requirements of blockchain used in the Internet of Things environment, this paper analyzed the various shortcomings of the PBFT algorithm which was currently used in alliance chains widely and the general problems existing in threshold signature algorithm applied in consensus networks. It also proposed an improved consensus algorithm. Firstly, the new consensus mechanism grouped the nodes in the network, and replaced the pairwise communication of all nodes with the pairwise communication of partial nodes to reduce the communications volume. Secondly, it introduced the idea of combining public keys into the threshold signature, which reduced the communications volume and calculation greatly. Finally, it used a credit point mechanism between nodes to optimize the view switching protocol. The simulation results show that the data throughput and communication delay of the newly proposed algorithm have been significantly improved. At the same time, this paper obtains the best grouping method when the communication volume is the lowest.

Key words:PBFT; consensus algorithm; blockchain; threshold signature

0 引言

區(qū)塊鏈作為比特幣[1]的底層技術(shù)支撐,自比特幣問世以來就受到了國內(nèi)外研究人員的廣泛關(guān)注。它是一種采用鏈?zhǔn)酱鎯Y(jié)構(gòu)的連續(xù)區(qū)塊存儲,實(shí)際上是一個(gè)去中心化的分布式數(shù)據(jù)庫系統(tǒng),不依賴任何中心化機(jī)構(gòu),由網(wǎng)絡(luò)中的分布式節(jié)點(diǎn)通過共識機(jī)制參與數(shù)據(jù)處理。由于區(qū)塊鏈具有去中心化、防竄改性、匿名性以及可溯源性等[2]特點(diǎn),使得它在金融機(jī)構(gòu)、智能家居、產(chǎn)業(yè)鏈等方面具有良好的應(yīng)用前景。但是,當(dāng)前區(qū)塊鏈因?yàn)槠浣灰状_認(rèn)時(shí)間長、系統(tǒng)吞吐量低和占用資源過高等問題導(dǎo)致其應(yīng)用場景受限,并且當(dāng)網(wǎng)絡(luò)中的節(jié)點(diǎn)數(shù)量增加時(shí),網(wǎng)絡(luò)性能會大幅降低,這些都限制了區(qū)塊鏈的發(fā)展。

區(qū)塊鏈的根本屬性是去中心化,而去中心化的水平很大程度上取決于共識機(jī)制的選擇。隨著區(qū)塊鏈技術(shù)的不斷更新,各種各樣的共識機(jī)制也層出不窮。目前共識算法按照區(qū)塊鏈類型的不同,可以分為公有鏈共識、私有鏈共識和聯(lián)盟鏈共識[3]。比特幣系統(tǒng)中使用的工作量證明機(jī)制(POW)[4]是公有鏈共識算法,網(wǎng)絡(luò)中所有節(jié)點(diǎn)互相競爭求解一個(gè)復(fù)雜的數(shù)學(xué)計(jì)算,求解成功的節(jié)點(diǎn)獲得記賬權(quán),這往往需要大量的算力資源以及時(shí)間,因此常常導(dǎo)致資源的浪費(fèi),而且共識效率低。為了解決POW機(jī)制的資源浪費(fèi)問題,權(quán)益證明機(jī)制(POS)[5]以及后來的股份授權(quán)機(jī)制(DPOS)[6]相繼被提出,使節(jié)點(diǎn)獲得記賬權(quán)的概率與其所持有的權(quán)益(幣數(shù))成正比,雖然在一定程度上緩解了POW資源浪費(fèi)的問題,但是交易的確認(rèn)時(shí)間以及吞吐量依舊沒有得到很好改善,并且這兩種共識機(jī)制都依賴于數(shù)字貨幣才能完成共識,而實(shí)際應(yīng)用場景中用到數(shù)字貨幣的情況不多,因此應(yīng)用場景十分有限。不同于公有鏈,私有鏈一般用于企業(yè)或機(jī)構(gòu)的內(nèi)部,因此基本上不存在拜占庭節(jié)點(diǎn)作惡的情況,所以常常會采用傳統(tǒng)的分布式一致性算法,如Paxos、Raft[7]等算法來完成共識操作。Raft與Paxos實(shí)現(xiàn)的功能相同,都是基于對多副本狀態(tài)機(jī)的日志復(fù)制進(jìn)行管理,只不過Raft更加易于理解和實(shí)現(xiàn)。

聯(lián)盟鏈?zhǔn)墙橛诠墟溑c私有鏈之間的區(qū)塊鏈,鏈中的成員節(jié)點(diǎn)都是經(jīng)過注冊授權(quán)的,用于企業(yè)內(nèi)部或是不同企業(yè)之間的交易管理。聯(lián)盟鏈中一開始主要使用的是實(shí)用拜占庭算法(practical Byzantine fault tolerance,PBFT)[8],此算法主要是為了解決拜占庭將軍問題,即在網(wǎng)絡(luò)中存在惡意節(jié)點(diǎn)的情況下,通信雙方通過一致性協(xié)議依舊能夠達(dá)成共識。在一致性協(xié)議運(yùn)行出現(xiàn)故障的時(shí)候,系統(tǒng)會運(yùn)行視圖切換協(xié)議,更換產(chǎn)生故障的主節(jié)點(diǎn),并且定時(shí)檢查系統(tǒng)狀態(tài)是否一致,對于不一致的節(jié)點(diǎn)進(jìn)行同步。后來,人們發(fā)現(xiàn)對于聯(lián)盟鏈中的一些特殊場景,并不需要解決拜占庭將軍問題(不存在惡意節(jié)點(diǎn)),只需要處理一般死機(jī)故障,同時(shí)追求共識效率和強(qiáng)一致性,于是引入Raft共識協(xié)議。Raft最初是一個(gè)用于管理復(fù)制日志的共識算法,注重協(xié)議的落地性和可理解性,是在非拜占庭故障下達(dá)成共識的強(qiáng)一致協(xié)議。它的傳輸速度快、共識效率高,但是Raft過度依賴leader,喪失了部分去中心化,在網(wǎng)絡(luò)出現(xiàn)波動(dòng)或者競爭導(dǎo)致網(wǎng)絡(luò)分叉的情況下,需要多次確認(rèn)才能達(dá)成共識。

目前,聯(lián)盟鏈作為介于公有鏈與私有鏈之間的區(qū)塊鏈技術(shù),有著部分去中心化的特征,同時(shí)在聯(lián)盟鏈中的節(jié)點(diǎn)通過認(rèn)證授權(quán)之后,鏈中成員共同維護(hù)著一個(gè)去中心化的分布式賬本。在物聯(lián)網(wǎng)環(huán)境中,最受大家關(guān)注的是其在安全性和隱私性方面的問題,同時(shí)它的中心化架構(gòu)難以應(yīng)對未來海量設(shè)備的負(fù)擔(dān),而區(qū)塊鏈以其安全加密傳輸、去中心化和對等結(jié)構(gòu)等特點(diǎn),可以有效解決物聯(lián)網(wǎng)存在的問題。海量節(jié)點(diǎn)通過網(wǎng)絡(luò)接入終端互聯(lián)互通,天然具備分布式系統(tǒng)的特征,兩者結(jié)合之后可以相輔相成。物聯(lián)網(wǎng)通過無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)、路由協(xié)議等相關(guān)技術(shù)在一個(gè)P2P網(wǎng)絡(luò)中實(shí)現(xiàn)數(shù)據(jù)通信與計(jì)算交互。每個(gè)終端設(shè)備均可以看做是一個(gè)區(qū)塊鏈的節(jié)點(diǎn),參與共識并維護(hù)區(qū)塊鏈網(wǎng)絡(luò)。但是現(xiàn)行區(qū)塊鏈技術(shù)存在一定的技術(shù)瓶頸,聯(lián)盟鏈所使用的共識算法受制于節(jié)點(diǎn)規(guī)模。當(dāng)網(wǎng)絡(luò)中節(jié)點(diǎn)數(shù)目變大時(shí),系統(tǒng)中的通信量也呈幾何趨勢增長,極大地影響了區(qū)塊鏈的性能,同時(shí)也限制了將聯(lián)盟鏈應(yīng)用于物聯(lián)網(wǎng)的發(fā)展。而一味地提高吞吐量也并不可取,高性能帶來的是低安全性,性能越高意味著攻擊者進(jìn)行網(wǎng)絡(luò)攻擊的計(jì)算成本越低。在物聯(lián)網(wǎng)場景下存在著遠(yuǎn)遠(yuǎn)多于互聯(lián)網(wǎng)環(huán)境的異構(gòu)設(shè)備,并且計(jì)算能力和節(jié)點(diǎn)性能都會受到運(yùn)行環(huán)境的制約,導(dǎo)致設(shè)備在安全性能方面更容易存在一定的隱患。因此,必須協(xié)調(diào)好各節(jié)點(diǎn)承擔(dān)的角色,盡量避免因節(jié)點(diǎn)數(shù)目增多而導(dǎo)致網(wǎng)絡(luò)性能下降的弊端。如何優(yōu)化共識機(jī)制,在節(jié)點(diǎn)選擇、降低復(fù)雜度、提高吞吐量的同時(shí)兼顧安全性至關(guān)重要。

本文從廣泛應(yīng)用于聯(lián)盟鏈的PBFT共識算法出發(fā),提出一種基于門限簽名的區(qū)塊鏈分組共識算法TPBFT(threshold practical Byzantine fault tolerance),以適用于物聯(lián)網(wǎng)環(huán)境下的區(qū)塊鏈解決方案。之所以使用分組的方式達(dá)成共識,一方面是通過先組內(nèi)共識再組外共識的方式,減少通信次數(shù)從而提高共識效率;另一方面,組內(nèi)外均引入門限簽名的方式達(dá)成共識,保證了算法的高容錯(cuò)率以及安全性。本文的貢獻(xiàn)主要如下:

a)TPBFT算法通過把節(jié)點(diǎn)分組的方式,將大數(shù)量的節(jié)點(diǎn)分割成許多節(jié)點(diǎn)組,組與組之間通過各組主節(jié)點(diǎn)互相通信,組內(nèi)從節(jié)點(diǎn)不需要關(guān)心組外的情況,只需要將自己的數(shù)據(jù)、簽名打包發(fā)送給同一組內(nèi)主節(jié)點(diǎn)即可。這樣不僅大大減少了共識節(jié)點(diǎn)之間的通信量,還優(yōu)化了網(wǎng)絡(luò)中節(jié)點(diǎn)的層次結(jié)構(gòu)。

b)TPBFT改進(jìn)了PBFT中主節(jié)點(diǎn)的選取過程,通過引入信用分的獎(jiǎng)懲機(jī)制,增加了節(jié)點(diǎn)作惡的成本,減少視圖切換的次數(shù),提高網(wǎng)絡(luò)的共識效率。

c)引入ElGamal門限數(shù)字簽名方案,將組合公鑰的思想引入到ElGamal門限數(shù)字簽名的隨機(jī)數(shù)生成中,采用預(yù)先協(xié)商隨機(jī)數(shù)矩陣的方法,減少了節(jié)點(diǎn)的交互次數(shù),使門限簽名方案與PBFT算法更好的結(jié)合,保證通信效率的同時(shí)也增加了共識網(wǎng)絡(luò)的安全性。

1 相關(guān)工作

1.1 實(shí)用拜占庭容錯(cuò)算法

PBFT算法是Castro等人[8]在1999年提出的一種狀態(tài)機(jī)副本復(fù)制算法,解決了拜占庭容錯(cuò)(BFT)算法效率低下的問題,同時(shí)將BFT算法的復(fù)雜度從指數(shù)級別降為了多項(xiàng)式級別,使其可以應(yīng)用于事件量多但是對吞吐量要求不高的系統(tǒng),真正地從理論研究變成實(shí)際可用。在PBFT算法中存在三種角色,分別是客戶端、主節(jié)點(diǎn)和從節(jié)點(diǎn)。客戶端是發(fā)送請求的一方;主節(jié)點(diǎn)負(fù)責(zé)接收客戶端的請求,同時(shí)對這些請求進(jìn)行排序,分配編號;從節(jié)點(diǎn)主要負(fù)責(zé)接收主節(jié)點(diǎn)和其他從節(jié)點(diǎn)發(fā)來的消息,進(jìn)行相應(yīng)的驗(yàn)證,之后再執(zhí)行對應(yīng)的操作,最后將共識結(jié)果發(fā)回客戶端。

PBFT算法的流程中真正涉及到共識過程的主要是預(yù)準(zhǔn)備、準(zhǔn)備和確認(rèn)這三個(gè)階段。主節(jié)點(diǎn)收到系統(tǒng)中超過1/3不同節(jié)點(diǎn)的確認(rèn)消息后,即認(rèn)為提交的消息是有效的。在共識節(jié)點(diǎn)數(shù)量為N的情況下,即使系統(tǒng)中有f=(N-1)/3個(gè)共識節(jié)點(diǎn)出錯(cuò),系統(tǒng)依然能夠達(dá)成共識。也就是說,PBFT算法要達(dá)成共識,至少需要2f+1個(gè)(包括自己)節(jié)點(diǎn)才能將共識信息添加到本地賬本中。

雖然對BFT算法進(jìn)行了改進(jìn),但PBFT自身依舊存在著一些問題:a)在不考慮節(jié)點(diǎn)失效的情況下,完成一次三階段的共識,節(jié)點(diǎn)之間需要通信的次數(shù)為2N2-2N,如果一段時(shí)間內(nèi)的請求頻率較高,通信成本還是比較大的,而且隨著網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)量的增加,通信成本也會呈多項(xiàng)式級別增長,因此算法對網(wǎng)絡(luò)帶寬的要求較高;b)還存在可拓展性的問題,PBFT網(wǎng)絡(luò)不支持節(jié)點(diǎn)的動(dòng)態(tài)刪減,每一次網(wǎng)絡(luò)中節(jié)點(diǎn)的變化都需要對共識網(wǎng)絡(luò)重新進(jìn)行初始化;c)不存在獎(jiǎng)懲機(jī)制,每一次視圖切換只是更換主節(jié)點(diǎn),但是惡意節(jié)點(diǎn)依然留在網(wǎng)絡(luò)中,下一次隨機(jī)選舉依然有概率選到無效的惡意節(jié)點(diǎn)。

對于PBFT存在的這些問題,文獻(xiàn)[9]提出了將DPoS與PBFT相結(jié)合的方法,根據(jù)節(jié)點(diǎn)持有的股權(quán)選出部分節(jié)點(diǎn)參與共識以此來減少通信量,但同樣依賴數(shù)字貨幣。文獻(xiàn)[10]提出了一種基于ElGamal數(shù)字簽名算法的環(huán)簽名方案,使得PBFT中節(jié)點(diǎn)可以動(dòng)態(tài)的加入和退出,一定程度上提高了共識的效率和可用性,但是只適用于規(guī)模較小的網(wǎng)絡(luò),且共識的速度與吞吐量都比較低。在超級賬本項(xiàng)目Fabric 0.6和 Honey badger[11]項(xiàng)目中都使用 PBFT 作為核心的共識算法。然而,上述研究在規(guī)模較大的網(wǎng)絡(luò)中的作用有限,缺乏對物聯(lián)網(wǎng)環(huán)境下隨著節(jié)點(diǎn)數(shù)量的增多,通信量過大問題的考慮。

在針對物聯(lián)網(wǎng)場景下,改進(jìn)PBFT算法的研究中,李豪[12]將投票過程及節(jié)點(diǎn)的可信度引入到物聯(lián)網(wǎng)環(huán)境下,對PBFT算法進(jìn)行改進(jìn),優(yōu)化了節(jié)點(diǎn)的選舉過程,但是由于物聯(lián)網(wǎng)節(jié)點(diǎn)能量有限,而單個(gè)節(jié)點(diǎn)可能因?yàn)槊看味急贿x舉導(dǎo)致能量消耗速度過快,沒有綜合考慮節(jié)點(diǎn)的可信狀態(tài)和剩余能量的關(guān)系。張思賢等人[13]設(shè)計(jì)出一種分組的共識算法,結(jié)合盲簽名優(yōu)化PBFT中主節(jié)點(diǎn)的選取過程,并使用該共識算法提出了一種物聯(lián)網(wǎng)系統(tǒng)的架構(gòu)設(shè)想,但是無法適用于節(jié)點(diǎn)規(guī)模較大的情況。王尚陽[14]基于PBFT開發(fā)了一種高效的混合共識機(jī)制,雖然避免了大數(shù)據(jù)上傳時(shí)易造成網(wǎng)絡(luò)擁塞的問題,但是為了保證共識機(jī)制的效率,同樣網(wǎng)絡(luò)中的節(jié)點(diǎn)數(shù)量不宜過多,對于惡意節(jié)點(diǎn)抱團(tuán)沖票等安全問題也沒有很好地解決。陳子豪等人[15]提出了一種基于K-medoids的改進(jìn)PBFT共識K-PBFT,利用聚類算法對大規(guī)模網(wǎng)絡(luò)節(jié)點(diǎn)進(jìn)行分組,通過組內(nèi)外先后進(jìn)行共識過程以提升效率,但是不能動(dòng)態(tài)配置各簇節(jié)點(diǎn)數(shù)量,同時(shí)無法解決節(jié)點(diǎn)作惡的問題。陳忠賢等人[16]設(shè)計(jì)了一種基于通信時(shí)間分組的PBFT改進(jìn)算法GBFT,根據(jù)節(jié)點(diǎn)間的通信時(shí)延進(jìn)行最優(yōu)分組,提高了節(jié)點(diǎn)之間的通信效率,但同樣對惡意節(jié)點(diǎn)沒有作出應(yīng)對策略。

1.2 門限簽名方案

門限簽名作為一種特殊的群體數(shù)字簽名技術(shù),具有數(shù)字簽名的認(rèn)證功能、防竄改以及秘密共享所具有的權(quán)力分散特點(diǎn)。群體簽名是密碼學(xué)中的一個(gè)應(yīng)用,只有群體中的某些成員互相合作才能產(chǎn)生一個(gè)足以代表整個(gè)群體的簽名,而不屬于群體的驗(yàn)證者可以利用群體的公鑰來驗(yàn)證產(chǎn)生的群體簽名。從它的屬性上來看,門限簽名根據(jù)有無第三方可信中心可分為兩大類:a)具有可信中心;b)沒有可信中心的方案。(t,n)門限簽名的概念最早是1991年由Desmedt等人[17]提出來的。在存在可信中心的門限簽名中,可信中心通過密鑰生成算法,生成一對系統(tǒng)公私鑰(PK,SK),同時(shí)將私鑰SK分割成n份交給系統(tǒng)中的n個(gè)群成員,成員之間的部分私鑰互相保密,只有同時(shí)聯(lián)合t+1個(gè)成員的私鑰分量才能計(jì)算出系統(tǒng)私鑰,任意少于t+1個(gè)成員合謀都不能得到系統(tǒng)私鑰。對于沒有可信中心的門限系統(tǒng)中,公私鑰對(PK,SK)是由系統(tǒng)中n個(gè)群成員通過協(xié)商的方式生成,其他過程與有可信中心的門限簽名類似。

門限簽名算法從構(gòu)成上可以分為以下四個(gè)階段:

a)系統(tǒng)初始化。對于存在第三方可信中心的算法,由可信中心選擇系統(tǒng)參數(shù),并計(jì)算每一個(gè)成員的部分私鑰同時(shí)負(fù)責(zé)分發(fā)。而沒有可信中心的算法中,由算法中的全體成員共同商定系統(tǒng)參數(shù),然后利用自認(rèn)證公鑰體制產(chǎn)生自身的密鑰。

b)生成部分簽名。當(dāng)群體決定對某個(gè)消息進(jìn)行簽名時(shí),群體中的成員都會用自己的部分私鑰給消息進(jìn)行簽名,在這個(gè)過程中,有的門限簽名算法需要部分成員之間互相通信以交換某些參數(shù)用來生成部分簽名,有些則不需要。

c)合成整體簽名。算法中的群體成員都簽名之后,會把生成的部分簽名發(fā)送給一個(gè)具有合成簽名功能的成員。簽名的合成方在收到大于門限值的部分簽名個(gè)數(shù)之后會按照特定的算法合成整體簽名。

d)驗(yàn)證整體簽名。簽名接收人在收到整體簽名之后,利用簽名驗(yàn)證算法驗(yàn)證整體簽名是否有效,決定是否接收該消息。

門限簽名機(jī)制相對于傳統(tǒng)的數(shù)字簽名更加安全。傳統(tǒng)的數(shù)字簽名機(jī)制中,一旦私鑰被攻擊方獲取,那么整個(gè)簽名的安全性就難以得到保證。而在門限簽名機(jī)制中,攻擊者需要同時(shí)攻破至少t個(gè)群體成員的部分私鑰才可以產(chǎn)生有效的簽名,這樣做的難度要遠(yuǎn)遠(yuǎn)大于傳統(tǒng)簽名機(jī)制。

目前的門限簽名方案根據(jù)不同的加密方法產(chǎn)生了很多具有不同功能的門限簽名,主要是通過將現(xiàn)存的比較成熟的RSA、ElGamal、DSS等簽名算法通過秘密分享的方式實(shí)現(xiàn)[18]。雖然門限簽名的方案多種多樣,但是針對門限簽名的攻擊方法也有很多,根據(jù)已知的群簽名來偽造新的群簽名是一種較為常見的攻擊手段。其中,合謀攻擊一直以來都是門限簽名中最難解決的問題,即網(wǎng)絡(luò)中t個(gè)及以上的成員合謀,以此來獲得系統(tǒng)的簽名私鑰,從而偽造簽名消息。與此同時(shí),現(xiàn)有的門限簽名及其改進(jìn)方案都普遍存在一個(gè)問題,就是在簽名前網(wǎng)絡(luò)中的節(jié)點(diǎn)各方都需要協(xié)商好一個(gè)隨機(jī)數(shù),這就需要多個(gè)節(jié)點(diǎn)互相配合,多次通信,由此帶來的通信量會大幅降低該簽名算法的效率和有效性。

2 本文提出的方案

2.1 算法介紹

TPBFT算法是一種高效、安全的拜占庭容錯(cuò)共識算法,當(dāng)系統(tǒng)中參與共識的節(jié)點(diǎn)數(shù)量為N,并且存在t個(gè)拜占庭節(jié)點(diǎn)的時(shí)候,整個(gè)網(wǎng)絡(luò)需要有t+1個(gè)誠實(shí)節(jié)點(diǎn)才能保證共識結(jié)果的正確,即N≥2t+1,該算法整體的流程框圖如圖1所示。

TPBFT對比PBFT算法主要引進(jìn)了兩個(gè)新的階段:a)節(jié)點(diǎn)分組以及選取主節(jié)點(diǎn)的過程;b)利用部分私鑰計(jì)算各自的部分簽名并最終合成總體簽名的過程。假設(shè)N個(gè)共識節(jié)點(diǎn)中至少有t+1個(gè)節(jié)點(diǎn)是誠實(shí)的,而惡意節(jié)點(diǎn)最多只有t個(gè),這樣就算攻擊者控制了t個(gè)節(jié)點(diǎn),也會有t+1個(gè)節(jié)點(diǎn)可以在一輪共識中完成對消息的驗(yàn)證、簽名和廣播,達(dá)到門限簽名的最低要求,完成消息的認(rèn)證。同時(shí),由于引入信用分機(jī)制,還可以利用公鑰驗(yàn)證簽名來優(yōu)化節(jié)點(diǎn)運(yùn)行環(huán)境,如果簽名沒有通過公鑰的驗(yàn)證,則降低節(jié)點(diǎn)的信用分,而節(jié)點(diǎn)成為主節(jié)點(diǎn)的概率與信用分正相關(guān)。通過引入分組的概念,對于算法復(fù)雜度的減少顯得十分直觀,原本需要所有共識節(jié)點(diǎn)之間兩兩通信來達(dá)成共識改為分組后組長之間的通信,對于分組內(nèi)部的具體信息傳遞,其他主節(jié)點(diǎn)根本不需要了解,解決了網(wǎng)絡(luò)中消息過多,易造成網(wǎng)絡(luò)堵塞的問題。

本文的簽名算法將組合公鑰(CPK)[19]的思想引入到ElGamal型門限簽名中,采用預(yù)先協(xié)商隨機(jī)數(shù)矩陣的方法,將門限簽名方案進(jìn)行改進(jìn),大大減少了網(wǎng)絡(luò)中節(jié)點(diǎn)的通信量和計(jì)算量。本文使用的全局變量參數(shù)如表1所示。

2.2 系統(tǒng)密鑰初始化

該方案由密鑰初始化與門限簽名兩部分組成,密鑰初始化用于生成門限簽名所需要的初始參數(shù),而門限簽名用于節(jié)點(diǎn)在確認(rèn)階段合成總的簽名,以達(dá)成共識。

網(wǎng)絡(luò)在系統(tǒng)初始化階段,需要一個(gè)可信的第三方(trusted third party,TTP)來完成網(wǎng)絡(luò)組建和參數(shù)設(shè)置,初始化完成之后,TTP即退出網(wǎng)絡(luò)。在TPBFT網(wǎng)絡(luò)中,由TTP選擇網(wǎng)絡(luò)中的N個(gè)節(jié)點(diǎn)作為分布式KDC節(jié)點(diǎn)[20]。TTP產(chǎn)生系統(tǒng)公私鑰對(x,y),公布公鑰y,系統(tǒng)私鑰x由N個(gè)節(jié)點(diǎn)共享,每個(gè)節(jié)點(diǎn)都持有部分私鑰xi,任意t(t≤N/2)個(gè)節(jié)點(diǎn)聯(lián)合即可恢復(fù)系統(tǒng)私鑰,任何少于t個(gè)節(jié)點(diǎn)聯(lián)合都不能恢復(fù)系統(tǒng)私鑰,也就是(t,N)門限管理方式。

TTP選擇DSS基礎(chǔ)簽名方案[21]中的參數(shù)作為系統(tǒng)參數(shù),包括兩個(gè)大素?cái)?shù)p、q、群Z*q和階為q的子群Z*p、群Z*p中階為q的生成元g,其中p、q、g是公開的,同時(shí)TTP還掌握系統(tǒng)的公私鑰對(x,y),其中私鑰x∈Z*q,公鑰y=gxmod p是公開的。

為了選擇隨機(jī)數(shù),分配部分密鑰,TTP還會產(chǎn)生一個(gè)隨機(jī)數(shù)矩陣R,為簽名方私有,P是其相應(yīng)的隨機(jī)數(shù)公鑰矩陣。

R=r11r12…r1vr21r22…r2vru1ru2…ruv(1)

P=gr11gr12…gr1vgr21gr22…gr2vgru1gru2…gruv mod p(2)

其中:rij∈Z*q(i=1,2,…,u; j=1,2,…,v)。

TTP公布隨機(jī)數(shù)公鑰矩陣,同時(shí)利用文獻(xiàn)[22,23]將私鑰x分割成N份,秘密分發(fā)給網(wǎng)絡(luò)中的節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)ui僅持有部分私鑰xi,使用同樣的方法將R中每個(gè)元素rij分割成N份,也秘密發(fā)給網(wǎng)絡(luò)中的每個(gè)節(jié)點(diǎn)。至此,每個(gè)節(jié)點(diǎn)ui掌握隨機(jī)數(shù)公鑰矩陣P、部分隨機(jī)數(shù)矩陣Ri和相應(yīng)的部分隨機(jī)數(shù)公鑰矩陣Pj。

Ri=(r11)i(r12)i…(r1v)i(r21)i(r22)i…(r2v)i(ru1)i(ru2)i…(ruv)i(3)

Pi=g(r11)ig(r12)i…g(r1v)ig(r21)ig(r22)i…g(r2v)ig(ru1)ig(ru2)i…g(ruv)i mod p(4)

保存部分隨機(jī)數(shù)公鑰矩陣是為了在部分簽名合成整體簽名出現(xiàn)問題的時(shí)候檢查部分簽名的正確性。關(guān)于部分簽名的具體生成過程以及其正確性的檢查,將在2.3節(jié)中詳細(xì)闡述。

2.3 一致性協(xié)議算法

PBFT算法的一致性協(xié)議在運(yùn)行過程中需要完成兩次復(fù)雜度為O(N2)的節(jié)點(diǎn)之間的兩兩通信,這樣設(shè)計(jì)主要是考慮到網(wǎng)絡(luò)中存在拜占庭節(jié)點(diǎn)時(shí),算法仍然可以完成共識。而對于物聯(lián)網(wǎng)環(huán)境中多設(shè)備以及大數(shù)據(jù)的情況下,節(jié)點(diǎn)之間兩兩通信才能完成共識,復(fù)雜度太高且處理速度較慢。針對這種情況,本文提出的TPBFT算法:首先將節(jié)點(diǎn)分組,分組不超過四組,如此分組的原因見3.2節(jié)通信量的對比分析,以此來減少通信復(fù)雜度;同時(shí),引入改進(jìn)門限簽名算法,即使存在拜占庭節(jié)點(diǎn),只要任意主節(jié)點(diǎn)收到t份簽名,即可完成共識,避免了拜占庭節(jié)點(diǎn)對網(wǎng)絡(luò)的影響。

本文在文獻(xiàn)[24]提出的拜占庭一致性協(xié)議的基礎(chǔ)上,結(jié)合所分析的改進(jìn)思路,提出如圖2所示的優(yōu)化一致性協(xié)議。

協(xié)議的具體執(zhí)行過程如下:

a)請求階段。客戶端C擔(dān)任發(fā)送共識請求與接收網(wǎng)絡(luò)共識結(jié)果并最終達(dá)成共識的角色。初始階段,客戶端C向主節(jié)點(diǎn)發(fā)送〈m,t,c,a〉,其中m是客戶端請求的消息,t代表時(shí)間戳。通過時(shí)間戳可以查看客戶端請求的順序,還可以防止客戶端對同一條共識發(fā)出多次請求,c是客戶端的編號,a是客戶端選擇的隨機(jī)數(shù),滿足a∈Z*q。

b)預(yù)準(zhǔn)備階段。主節(jié)點(diǎn)組接收到客戶端C發(fā)來的〈m,t,c,a〉,會先給請求消息分配一個(gè)序號n,然后向組內(nèi)所有的從節(jié)點(diǎn)廣播預(yù)準(zhǔn)備消息,預(yù)準(zhǔn)備消息的格式為〈〈PRE-PREPARE,v,n,d〉m,a〉,其中v是視圖編號, n表示消息序列,d是請求消息m的摘要,a是隨機(jī)數(shù)。從節(jié)點(diǎn)會檢驗(yàn)m的摘要信息與d相同,視圖編號v與當(dāng)前的視圖編號一致。

c)準(zhǔn)備階段。從節(jié)點(diǎn)在檢驗(yàn)完畢之后,如果接收了預(yù)準(zhǔn)備消息,則進(jìn)入分組準(zhǔn)備階段;各從節(jié)點(diǎn)在進(jìn)入分組準(zhǔn)備階段后向組內(nèi)除自己以外的其他節(jié)點(diǎn)廣播準(zhǔn)備消息,準(zhǔn)備消息格式為〈PREPARE,v,n,d,i〉,其中i是節(jié)點(diǎn)自身編號。需要檢查的內(nèi)容包括視圖編號v是否一致、消息的摘要是否一致以及消息的隊(duì)列號是否在規(guī)定的水線之內(nèi)。每個(gè)從節(jié)點(diǎn)都會將預(yù)準(zhǔn)備和準(zhǔn)備消息寫入本地消息日志,同時(shí)向主節(jié)點(diǎn)報(bào)告自己的完成情況。準(zhǔn)備階段完成的標(biāo)志為主節(jié)點(diǎn)收到t+1個(gè)從組內(nèi)不同副本節(jié)點(diǎn)收到的與預(yù)準(zhǔn)備消息一致的準(zhǔn)備消息。

d)組內(nèi)簽名確認(rèn)階段。當(dāng)從節(jié)點(diǎn)完成準(zhǔn)備階段之后,會進(jìn)入組內(nèi)簽名階段。從節(jié)點(diǎn)ui利用接收到的(m,a)來計(jì)算

lz=hz(m,a)mod u" z=1,2,…,v(5)

然后依次取出隨機(jī)數(shù)矩陣Ri的第z列第Cnormal行隨機(jī)數(shù),求和得到ui選擇的隨機(jī)數(shù)為li=∑vz=1(rlzz)imod q。同時(shí)ui取出隨機(jī)數(shù)公鑰矩陣P中v個(gè)相同位置的數(shù)值進(jìn)行乘法運(yùn)算:

ω=∏vz=1grlzz mod p=g(∑vz=1rlzz) mod p=gl mod p(6)

則ui對消息m的部分簽名為

si=[ωxi+h(m,ω)li]mod q(7)

隨后從節(jié)點(diǎn)會將部分簽名信息(ωi=glimod p,si)匯報(bào)給同一組內(nèi)的主節(jié)點(diǎn)。主節(jié)點(diǎn)收到組員從節(jié)點(diǎn)的部分簽名時(shí),首先會檢查消息的合法性,如視圖編號v是否一致、消息序列n是否在規(guī)定范圍內(nèi)等,經(jīng)確認(rèn)都沒有問題之后,當(dāng)組內(nèi)主節(jié)點(diǎn)驗(yàn)證通過的組員從節(jié)點(diǎn)超過組員半數(shù),主節(jié)點(diǎn)就會向除自己之外的主節(jié)點(diǎn)集合發(fā)送確認(rèn)消息,消息的格式為〈〈COMMIT,v,n,i〉ωi,si〉,其中si是消息的部分簽名,ωi用于后續(xù)檢驗(yàn)部分簽名的正確性。

e)門限簽名確認(rèn)階段。當(dāng)任意一個(gè)主節(jié)點(diǎn)收到了至少t+1個(gè)確認(rèn)消息之后,主節(jié)點(diǎn)會將部分簽名合成為整體簽名:

s=∑ti=1λisi mod q=∑ti=1λi[ωxi+h(m,ω)li]mod q=

[ω∑ti=1λixi+h(m,ω)∑ti=1λili]mod q=

[ωxA+h(m,ω)l]mod q(8)

其中:λi為Lagrange系數(shù)。而因?yàn)?/p>

∑ti=1λili mod q=∑ti=1λi∑vz=1(rlzz)i mod q=

∑vz=1∑ti=1λi(rlzz)i mod q=∑vz=1rlzz mod q=l(9)

所以l就是組內(nèi)從節(jié)點(diǎn)計(jì)算部分簽名時(shí)對應(yīng)隨機(jī)數(shù)矩陣R中選出的隨機(jī)數(shù)。任意一個(gè)主節(jié)點(diǎn)合成完整簽名之后,驗(yàn)證等式gs=yωAωh(m,ω)mod p,如果等式成立,則完成門限簽名的驗(yàn)證,認(rèn)為該輪共識達(dá)成,進(jìn)入最后的回復(fù)階段。如果等式不成立,主節(jié)點(diǎn)會通過gsi=yωiωh(m,ω)imod p驗(yàn)證消息的各部分簽名si是否正確,同時(shí)會驗(yàn)證ωi值的正確性。

ωi=glimod p=g(∑vz=1(rlzz)i)mod p=∏vz=1g(rlzz)imod p(10)

f)回復(fù)階段。當(dāng)任意主節(jié)點(diǎn)得到合成簽名并且通過了公鑰yA驗(yàn)證之后,會生成回復(fù)消息并廣播到客戶端和其他不同組的主節(jié)點(diǎn),消息的格式為〈〈REPLY,v,t,c,i,r〉ω,s〉,其中c是客戶端標(biāo)識,r是請求最后的執(zhí)行結(jié)果。不同分組的主節(jié)點(diǎn)負(fù)責(zé)通知組內(nèi)成員,刪除歷史消息的信息,并且重置視圖v=0,準(zhǔn)備開始新一輪的共識。

2.4 視圖切換協(xié)議

在整個(gè)共識運(yùn)行的過程當(dāng)中,將達(dá)成共識所用到的共識節(jié)點(diǎn)的集合稱為視圖,每個(gè)組的主節(jié)點(diǎn)均在一個(gè)視圖內(nèi),視圖的編號記為v,v從0開始逐漸遞增,直到達(dá)成該輪的共識為止,如果在一定時(shí)間內(nèi)無法達(dá)成共識,共識節(jié)點(diǎn)會請求更換視圖內(nèi)的主節(jié)點(diǎn)。出現(xiàn)以下情況,會觸發(fā)視圖切換協(xié)議:

a)共識主節(jié)點(diǎn)在合成完整簽名之后,若公鑰驗(yàn)證不通過,會判斷部分簽名的合法性,若部分簽名驗(yàn)證不通過,則該節(jié)點(diǎn)的信用分會降低,如果該節(jié)點(diǎn)是主節(jié)點(diǎn),則降低信用分的同時(shí)組內(nèi)共識節(jié)點(diǎn)還會發(fā)起視圖切換協(xié)議。

b)當(dāng)經(jīng)過時(shí)間Δ之后,消息m依舊沒達(dá)成共識,則認(rèn)為主節(jié)點(diǎn)故障,共識節(jié)點(diǎn)會發(fā)起視圖切換協(xié)議。其中,Δ為網(wǎng)絡(luò)的最大延遲。

視圖切換需要網(wǎng)絡(luò)中的節(jié)點(diǎn)之前互相通信,具體的執(zhí)行過程如下:

a)發(fā)起視圖切換協(xié)議的驗(yàn)證節(jié)點(diǎn),會發(fā)送視圖切換請求〈viewchange,〈h,v,i,v+1〉〉給所有共識節(jié)點(diǎn)。其中h是摘要信息,i是節(jié)點(diǎn)編號。

b)任意共識節(jié)點(diǎn)如果收到包括自己在內(nèi)大于門限值,即t+1個(gè)視圖切換請求,并且通過2.3節(jié)的門限簽名合成算法,得到一個(gè)能夠通過公鑰驗(yàn)證的合成簽名,則將當(dāng)前視圖v切換成v+1,廣播消息〈viewchange-ack,〈h,i,v+1〉〉到所有節(jié)點(diǎn),同時(shí)清除視圖切換前的一致性協(xié)議,達(dá)成視圖更換請求。

c)新視圖中,通過重新分組的形式,選取新的共識節(jié)點(diǎn),而主節(jié)點(diǎn)的選擇將在信用分較高的節(jié)點(diǎn)中產(chǎn)生,完成后準(zhǔn)備新一輪的一致性協(xié)議。

對于PBFT算法而言,主節(jié)點(diǎn)是通過初始化時(shí)節(jié)點(diǎn)編號的大小順序來依次得到的,同時(shí)不會經(jīng)過任何檢驗(yàn)校正,這樣使得網(wǎng)絡(luò)的安全性無法得到保障。而在視圖切換的過程中,整個(gè)網(wǎng)絡(luò)的共識操作會短暫停止,因此頻繁更換視圖會導(dǎo)致整個(gè)網(wǎng)絡(luò)的時(shí)延增大。本文通過給節(jié)點(diǎn)賦予信用分的形式增加作惡的成本,通過信用分的積累,多次順利達(dá)成共識的節(jié)點(diǎn)將會有更大的可能成為主節(jié)點(diǎn)。用這種制定信用分的方式評估節(jié)點(diǎn)的信用狀態(tài),實(shí)現(xiàn)了對網(wǎng)絡(luò)中共識節(jié)點(diǎn)的分級,大大地減少了惡意節(jié)點(diǎn)對系統(tǒng)運(yùn)行破壞的可能性,提高了整個(gè)網(wǎng)絡(luò)的效率。

網(wǎng)絡(luò)中的節(jié)點(diǎn)根據(jù)信用分的大小分為A、B、C、D四個(gè)級別。A類節(jié)點(diǎn)的信用值最高,在視圖切換時(shí)優(yōu)先考慮作為主節(jié)點(diǎn);當(dāng)A類節(jié)點(diǎn)不存在或者被選擇完時(shí),選擇B類節(jié)點(diǎn)作為主節(jié)點(diǎn);C類節(jié)點(diǎn)的信用分偏低,不適合作為主節(jié)點(diǎn),但仍可以作為共識節(jié)點(diǎn)參與共識;D類節(jié)點(diǎn)信用分太低,不考慮作為共識節(jié)點(diǎn)。共識節(jié)點(diǎn)的級別是動(dòng)態(tài)轉(zhuǎn)移的,主要與節(jié)點(diǎn)在網(wǎng)絡(luò)中的行為有關(guān)。不同級別節(jié)點(diǎn)的權(quán)限劃分如表2所示。

初始化階段,節(jié)點(diǎn)的信用分為Cbad,處于正常狀態(tài),當(dāng)節(jié)點(diǎn)誠實(shí)的記錄并完成一輪共識之后,其信用分會相應(yīng)的加1分,只有當(dāng)節(jié)點(diǎn)的信用分大于M才能被考慮擔(dān)任主節(jié)點(diǎn)。如果節(jié)點(diǎn)沒有完成共識,且不能成功生成交易區(qū)塊的時(shí)候,其信用分會相應(yīng)的減5分。當(dāng)節(jié)點(diǎn)信用分Cbadlt;Clt;Cnormal時(shí),節(jié)點(diǎn)的信用級別為C,只參與共識過程但沒有其他功能權(quán)限;當(dāng)信用分Cnormallt;Clt;Cgood時(shí),節(jié)點(diǎn)的信用級別為B;當(dāng)信用分大于Cgood時(shí),信用分極高,節(jié)點(diǎn)信用級別為A,可作為備用主節(jié)點(diǎn);最后當(dāng)節(jié)點(diǎn)信用分小于Cbad時(shí),節(jié)點(diǎn)的信用級別為D,無法參與到共識過程。

3 方案分析

TPBFT算法是一種針對物聯(lián)網(wǎng)海量節(jié)點(diǎn)應(yīng)用場景下的拜占庭容錯(cuò)共識算法,通過對共識網(wǎng)絡(luò)中的節(jié)點(diǎn)進(jìn)行分組,由各組組長負(fù)責(zé),提高了共識效率。利用新型的門限簽名算法,增強(qiáng)了簽名的安全性,也簡化了節(jié)點(diǎn)之間協(xié)商的過程。由于聯(lián)盟鏈中的節(jié)點(diǎn)均需要授權(quán)才能進(jìn)入網(wǎng)絡(luò),節(jié)點(diǎn)之間均存在部分信任關(guān)系,所以在物聯(lián)網(wǎng)環(huán)境中,以網(wǎng)關(guān)節(jié)點(diǎn)作為TPBFT網(wǎng)絡(luò)中的共識節(jié)點(diǎn),每個(gè)網(wǎng)關(guān)節(jié)點(diǎn)可以托載數(shù)百個(gè)終端,而數(shù)據(jù)終端并不需要作為共識節(jié)點(diǎn)參與共識過程,所以考慮到網(wǎng)關(guān)節(jié)點(diǎn)的作用,一般網(wǎng)絡(luò)規(guī)模并不是很大。

對比PBFT共識機(jī)制及其改進(jìn)算法和本文提出的TPBFT共識機(jī)制的運(yùn)行效率,以平均吞吐量和網(wǎng)絡(luò)時(shí)延為評價(jià)標(biāo)準(zhǔn),測試不同節(jié)點(diǎn)數(shù)量下,兩種算法的性能差異。本文使用OPNET網(wǎng)絡(luò)仿真軟件,編程實(shí)現(xiàn)了PBFT算法及其改進(jìn)算法,隨后在此基礎(chǔ)上又實(shí)現(xiàn)了TPBFT算法。客戶端發(fā)送請求間隔,即出塊速度為1 000 ms,每個(gè)區(qū)塊的大小設(shè)置為2 M,請求消息的大小為100 KB,設(shè)置適當(dāng)?shù)亩说蕉藭r(shí)延,分別取節(jié)點(diǎn)數(shù)量為4、8、12、16為參照對比實(shí)驗(yàn),在TPBFT中統(tǒng)一分為四組。最后,通過Origin分析對比TPBFT和PBFT算法及其改進(jìn)算法,發(fā)現(xiàn)TPBFT算法在數(shù)據(jù)吞吐量和交易時(shí)延上都有顯著的優(yōu)勢。

3.1 安全性分析

定理1 在一輪共識操作執(zhí)行完之后,如果有一個(gè)信任的節(jié)點(diǎn)記賬輸出了確認(rèn)區(qū)塊消息B,那么所有信任的共識節(jié)點(diǎn)都會記賬輸出確認(rèn)區(qū)塊消息B。

證明 當(dāng)t輪共識協(xié)議執(zhí)行結(jié)束的時(shí)候,假設(shè)記賬的主節(jié)點(diǎn)P輸出的確認(rèn)區(qū)塊消息為B,那么這個(gè)確認(rèn)消息一定是經(jīng)過了GBFT一致性協(xié)議中四個(gè)主要階段的其他信任節(jié)點(diǎn)的簽名驗(yàn)證的,最終合成的簽名結(jié)果s是由t+1個(gè)節(jié)點(diǎn)的部分簽名{s1,s2,…,st+1}共同簽名確認(rèn)的。由門限簽名的魯棒性和部分簽名的合成性質(zhì),可驗(yàn)證由t+1個(gè)部分簽名合成一定能得到一個(gè)可通過公鑰y驗(yàn)證合成簽名s。而部分簽名的不可偽造性可以證明部分簽名集合{s1,s2,…,st+1}的真實(shí)性。最后由PBFT的一致性,可以保證網(wǎng)絡(luò)中信任的共識節(jié)點(diǎn)都可以記賬輸出區(qū)塊消息B。

定理2 本文提出的改進(jìn)算法中的門限簽名方案擁有更高的安全性,節(jié)點(diǎn)的私鑰不能被偽造,且系統(tǒng)具有一定的自檢性。

證明 網(wǎng)絡(luò)中的節(jié)點(diǎn)可以對其持有的私鑰進(jìn)行自校驗(yàn),若網(wǎng)絡(luò)中存在惡意節(jié)點(diǎn)或者攻擊者試圖修改參數(shù)ga、xi或者ω,利用2.3節(jié)中的等式可以及時(shí)檢測出來,KDC中的節(jié)點(diǎn)獲得用戶私鑰x的難度相當(dāng)于求解離散對數(shù), 在計(jì)算上是不可行的。同時(shí),假設(shè)網(wǎng)絡(luò)中存在t個(gè)以上的KDC節(jié)點(diǎn)共謀想要獲取用戶私鑰x,也只能得到用戶私鑰的一部分,即∑ti=1λi(x)i,而不能獲得用戶私鑰x。TPBFT方案中利用少量的種子密鑰合成海量的密鑰空間(當(dāng)u=32, v=32時(shí),矩陣R擁有1 024個(gè)元素,隨機(jī)數(shù)容量可達(dá)到(25)32=2160 ≈ 1048),因此從攻擊者的角度來講,想要偽造出通過驗(yàn)證的密鑰是不可能的。

3.2 通信量分析

對于PBFT算法而言,核心過程有三個(gè)階段,分別是預(yù)準(zhǔn)備(pre-prepare)、準(zhǔn)備(prepare)和確認(rèn)(commit)階段。對于預(yù)準(zhǔn)備階段,只需要主節(jié)點(diǎn)廣播預(yù)準(zhǔn)備消息給其他節(jié)點(diǎn)即可,因此通信次數(shù)為N-1;對于prepare階段,每個(gè)節(jié)點(diǎn)同意了預(yù)準(zhǔn)備請求后,都需要再向其他節(jié)點(diǎn)廣播確認(rèn)消息,所以總的通信次數(shù)為N×(N-1);確認(rèn)階段亦如此,所以通信次數(shù)也是N×(N-1);所以PBFT總的通信次數(shù)就是(N-1)+N×(N-1)+N×(N-1),即2N2-N-1。

而對于本文提出的TPBFT算法而言,雖然確認(rèn)階段變成了組內(nèi)簽名確認(rèn)階段與門限簽名確認(rèn)階段,看似多了一個(gè)階段,但是每個(gè)階段需要參與通信的節(jié)點(diǎn)數(shù)目是不一樣的。TPBFT算法的核心過程有四個(gè)階段,假設(shè)總共有N個(gè)節(jié)點(diǎn)分為m組,那么每組就有N/m個(gè)節(jié)點(diǎn),在預(yù)準(zhǔn)備階段,主節(jié)點(diǎn)只需要將收到的廣播消息轉(zhuǎn)發(fā)給同一組的成員節(jié)點(diǎn)即可,總共有m組,因此通信次數(shù)為m×(N/m-1);在準(zhǔn)備階段,組內(nèi)每一個(gè)從節(jié)點(diǎn)需要向除自己以外的節(jié)點(diǎn)發(fā)送準(zhǔn)備消息,所以通信次數(shù)為m×(N/m-1)×(N/m-1);對于組內(nèi)簽名確認(rèn)階段,各組組內(nèi)從節(jié)點(diǎn)只需要將部分簽名的信息發(fā)給同一組內(nèi)的主節(jié)點(diǎn),共有m組,所以通信次數(shù)是m×(N/m-1);最后在門限簽名確認(rèn)階段,由主節(jié)點(diǎn)向除自己之外的主節(jié)點(diǎn)匯總簽名結(jié)果,共有m組,因此通信次數(shù)是m(m-1);所以TPBFT總的通信次數(shù)就是m×(N/m-1)+m×(N/m-1)×(N/m-1)+m×(N/m-1)+m(m-1),即(N2+m3-2m2)/m。通過Origin制作出不同分組下TPBFT與PBFT通信量的對比,如圖3所示。

從圖中可以看出,隨著節(jié)點(diǎn)數(shù)量的增加,PBFT和TPBFT的通信量都會相應(yīng)增加,但是TPBFT的通信量整體都要小于PBFT的通信量。并且當(dāng)節(jié)點(diǎn)個(gè)數(shù)達(dá)到一定數(shù)量時(shí),分組再多,對于通信量的減少也是微乎其微的,因此,本文以下仿真統(tǒng)一采取分成四組的形式進(jìn)行進(jìn)一步的仿真。

3.3 時(shí)延測試

交易時(shí)延指的是客戶端向主節(jié)點(diǎn)提交消息請求開始到客戶端確認(rèn)完成共識所需要的時(shí)間,它是衡量共識算法的一項(xiàng)重要指標(biāo),降低時(shí)延可以提高系統(tǒng)的運(yùn)行效率和實(shí)用性。本文中交易時(shí)延取100次交易的平均值,并在節(jié)點(diǎn)數(shù)量由4遞增到60,步長為4的情況下進(jìn)行分析比較。圖4為不同共識算法交易時(shí)延的對比。

可以看出,在同樣的網(wǎng)絡(luò)環(huán)境下,TPBFT算法的時(shí)延要明顯優(yōu)于PBFT及其改進(jìn)算法。隨著節(jié)點(diǎn)數(shù)量的增加,PBFT及其改進(jìn)算法交易的時(shí)延不斷增長且增長較快,而TPBFT算法的交易時(shí)延比較穩(wěn)定,基本維持在1 s左右,因此,TPBFT相較于其他算法擁有更低的時(shí)延,穩(wěn)定性更好。

3.4 吞吐量測試

吞吐量指的是單位時(shí)間內(nèi)完成交易的數(shù)量,一般用TPS(transaction per second)來表示。將比較的四種算法交易量固定為2 000條,對它們在共識節(jié)點(diǎn)數(shù)量從4到60,步長為8的情況下的吞吐量進(jìn)行10次測試,將這10次結(jié)果的平均值作為實(shí)驗(yàn)結(jié)果,圖5為不同算法中不同節(jié)點(diǎn)數(shù)量下的吞吐量對比。

從圖中可以看出,隨著網(wǎng)絡(luò)中節(jié)點(diǎn)數(shù)量的增多,這四種算法的吞吐量均有所下降,但是總體上來看,TPBFT算法的吞吐量始終要高于PBFT及已有的改進(jìn)算法,說明它能夠在相同時(shí)間內(nèi)處理更多的交易事務(wù),共識效率更高。

4 結(jié)束語

本文詳細(xì)解釋了基于投票的PBFT共識機(jī)制以及針對共識網(wǎng)絡(luò)的基礎(chǔ)簽名方案,對于PBFT算法存在的不足,提出了一種基于門限簽名的改進(jìn)算法TPBFT,適用于物聯(lián)網(wǎng)環(huán)境下數(shù)量龐大的多設(shè)備互連互通。該算法對共識網(wǎng)絡(luò)中的節(jié)點(diǎn)進(jìn)行了分組,使得原本需要所有節(jié)點(diǎn)兩兩通信達(dá)成共識的網(wǎng)絡(luò),只需要主節(jié)點(diǎn)之間進(jìn)行通信,大大地減少了通信量。同時(shí),對網(wǎng)絡(luò)中的節(jié)點(diǎn)引入信用分機(jī)制,優(yōu)化視圖切換協(xié)議,讓主節(jié)點(diǎn)的產(chǎn)生更加合理有效。將組合公鑰的思想引入到門限簽名中,利用預(yù)先協(xié)商隨機(jī)數(shù)矩陣的方法優(yōu)化簽名過程中的計(jì)算量與通信量,如此對簽名過程進(jìn)行改進(jìn),使得共識網(wǎng)絡(luò)中的簽名在保證安全性的同時(shí),運(yùn)行效率和成功率更高。

目前,TPBFT的算法模型仍然處于仿真實(shí)驗(yàn)階段,未來,還需要繼續(xù)深入研究。由于聯(lián)盟鏈相比于公鏈而言,具有更高的安全性,所以沒有討論組長節(jié)點(diǎn)均為惡意節(jié)點(diǎn)的最壞情況,下一步的任務(wù)是將此共識方案在實(shí)際應(yīng)用系統(tǒng)中進(jìn)行實(shí)踐部署,并考慮結(jié)合跨鏈技術(shù),解決聯(lián)盟鏈上單鏈隱私保護(hù)能力不足及擴(kuò)展性低的問題。

參考文獻(xiàn):

[1]Nakamoto S. Bitcoin: a peer-to-peer electronic cash system [EB/OL]. (2008-10-31).https://nakamotoinstitute.org/bitcoin.

[2]Yli-Huumo J,Ko D,Choi S,et al. Where is current research on blockchain technology?—A systematic review [J]. PLoS One,2016,11(10): e0163477.

[3]Swan M. Blockchain: blueprint for a new economy [M]. [S.l.]:O’Reilly,2015.

[4]Gervais A,Karame G O,Wüst K,et al. On the security and perfor-mance of proof of work blockchains [C]// Proc of ACM SIGSAC Conference on Computer amp; Communications Security. New York:ACM Press,2016.

[5]King S,Nadal S. PPCoin: peer-to-peer crypto-currency with proof-of-stake[EB/OL]. (2017-11-21).https://people.cs.georgetown.edu/~clay/classes/fall2017/835/papers/peercoin-paper.pdf.

[6]Larimer D. Delegated proof of stake [EB/OL]. (2018-08-29). https://how.bitshares.works/en/master/technology/dpos.Html.

[7]Ongaro D,Ousterhout J. In search of an understandable consensus algorithm[C]// Proc of USENIX Conference on USENIX Annual Technical Conference.2014:305-320.

[8]Castro M,Liskov B. Practical Byzantine fault tolerance [C]// Proc of the 3rd Symposium on Operating Systems Design and Implementation.1999:173-186.

[9]Crain T,Gramoli V,Larrea M,et al. DBFT: efficient leaderless Byzantine consensus and its application to blockchains [C]// Proc of the 17th IEEE International Symposium on Network Computing and Applications. Washington DC:IEEE Computer Society,2018.

[10]方軼,鄧建球,叢林虎,等. 一種基于環(huán)簽名的PBFT區(qū)塊鏈共識算法改進(jìn)方案 [J]. 計(jì)算機(jī)工程,2019,45(11): 32-36. (Fang Yi,Deng Jianqiu,Cong Linhu,et al. An improved scheme for PBFT blockchain consensus algorithm based on ring signature [J]. Computer Engineering,2019,45(11): 32-36.)

[11]Miller A,Xia Yu,Croman K,et al. The honey badger of BFT protocols [C]// Proc of ACM SIGSAC Conference on Computer amp; Communications Security. New York:ACM Press,2016: 31-42.

[12]李豪. 基于投票的物聯(lián)網(wǎng)入侵檢測技術(shù)研究 [D]. 上海:上海師范大學(xué),2019. (Li Hao. Research on intrusion detection technology of Internet of Things based on voting [D]. Shanghai:Shanghai Normal University,2019.)

[13]張思賢,文捷. 一種基于分組的區(qū)塊鏈共識算法 [J]. 計(jì)算機(jī)應(yīng)用與軟件,2020,37(3): 261-265,309. (Zhang Sixian,Wen Jie. A group-based blockchain consensus algorithm [J]. Computer Applications and Software,2020,37(3): 261-265,309.)

[14]王尚陽. 基于區(qū)塊鏈的安全高效數(shù)據(jù)共享方案 [D]. 西安:西安電子科技大學(xué),2019. (Wang Shangyang.A secure and efficient data sharing scheme based on blockchain [D]. Xi’an:Xidian University,2019.)

[15]陳子豪,李強(qiáng). 基于K-medoids的改進(jìn)PBFT共識機(jī)制 [J]. 計(jì)算機(jī)科學(xué),2019,46(12): 101-107. (Chen Zihao,Li Qiang. Improved PBFT consensus mechanism based on K-medoids [J]. Computer Science,2019,46(12): 101-107.)

[16]陳忠賢,李秦偉,羅婧雯. 基于通信時(shí)間分組的PBFT算法改進(jìn) [J]. 計(jì)算機(jī)與數(shù)字工程,2021,49(4): 711-717. (Chen Zhong-xian,Li Qinwei,Luo Jingwen. Improvement of PBFT algorithm based on communication time grouping [J]. Computer amp; Digital Engineering,2021,49(4): 711-717.)

[17]Desmedt Y,F(xiàn)rankel Y. Shared generation of authenticators and signatures (extended abstract) [J]. Advances in Cryptology,1991,576(12): 457-469.

[18]朱海韜. 門限數(shù)字簽名的研究與應(yīng)用 [D]. 昆明:昆明理工大學(xué),2015. (Zhu Haitao. Research and application of threshold digital signature [D]. Kunming:Kunming University of Science and Technology,2015.)

[19]唐文,南相浩,陳鐘. 基于橢圓曲線密碼系統(tǒng)的組合公鑰技術(shù)[J]. 計(jì)算機(jī)工程與應(yīng)用,2003(21):1-3. (Tang Wen,Nan Xianghao,Chen Zhong. Elliptic curve cryptography-based combined public key technique [J]. Computer Applications in Engineering Education,2003(21): 1-3.)

[20]Khalili A,Katz J,Arbaugh W. Toward secure key distribution in truly Ad hoc networks [C]// Proc of Symposium on Applications amp; the Internet Workshops.Piscataway,NJ: IEEE Press,2003.

[21]胡榮磊,張其善,劉建偉. 適用于Ad hoc網(wǎng)絡(luò)的ElGamal型門限數(shù)字簽名方案 [J]. 北京航空航天大學(xué)學(xué)報(bào),2009,35(6): 732-736. (Hu Ronglei,Zhang Qishan,Liu Jianwei. ElGamal type threshold digital signature scheme for Ad hoc networks [J]. Journal of Beihang University,2009,35(6): 732-736.)

[22]Pedersen T P. A threshold cryptosystem without a trusted party (extended abstract) [C]// Advance in Cryptology-EUROCRYPT,Workshop on Theory and Application of Cryptographic Techniques. 1991:522-526.

[23]Pedersen T P. Distributed provers with applications to undeniable signatures [C]// Advance in Cryptology-EUROCRYPT,Workshop on the Theory and Application of Cryptographic Techniques. Berlin: Springer,1991:221-242.

[24]Castro M,Liskoo B. Practical Byzantine fault tolerance and proac-tive recovery [J]. ACM Trans on Computer Systems,2002,20(4): 398-461.

[25]王日宏,張立鋒,徐泉清,等. 可應(yīng)用于聯(lián)盟鏈的拜占庭容錯(cuò)共識算法 [J]. 計(jì)算機(jī)應(yīng)用研究,2020,37(11): 3382-3386. (Wang Rihong,Zhang Lifeng,Xu Quanqing,et al. Byzantine fault tolerance algorithm for consortium blockchain [J]. Application Research of Computers,2020,37(11): 3382-3386.)

[26]王宇昊. 面向供應(yīng)鏈管理的區(qū)塊鏈共識機(jī)制研究 [D]. 泉州:華僑大學(xué),2019. (Wang Yuhao. Research on blockchain consensus mechanism for supply chain management [D]. Quanzhou:Huaqiao University,2019.)

[27]徐治理,封化民,劉飚. 一種基于信用的改進(jìn)PBFT高效共識機(jī)制 [J]. 計(jì)算機(jī)應(yīng)用研究,2019,36(9): 2788-2791. (Xu Zhili,F(xiàn)eng Huamin,Liu Biao. Improved PBFT efficient consensus mechanism based on credit [J]. Application Research of Computers,2019,36(9): 2788-2791.)

[28]胡榮磊,劉建偉,張其善. 自認(rèn)證公鑰體制Ad hoc網(wǎng)絡(luò)密鑰管理方案 [J]. 電子科技大學(xué)學(xué)報(bào),2009,38(6): 943-947. (Hu Ronglei,Liu Jianwei,Zhang Qishan. Key management scheme for Ad hoc networks using self-certified public key system [J]. Journal of University of Electronic Science and Technology of China,2009,38(6): 943-947.)

[29]滑金艷. 基于門限簽名的動(dòng)態(tài)TBFT機(jī)制的研究 [D]. 杭州:浙江工商大學(xué),2018. (Hua Jinyan. Research on dynamic TBFT mecha-nism based on threshold signature [D]. Hanghou:Zhejiang University of Commerce and Industry,2018.)

[30]涂園超,陳玉玲,李濤,等. 基于信譽(yù)投票的PBFT改進(jìn)方案 [J]. 應(yīng)用科學(xué)學(xué)報(bào),2021,39(1): 79-89. (Tu Yuanchao,Chen Yuling,Li Tao,et al. Improved PBFT scheme based on reputation voting [J]. Journal of Applied Sciences-Electronics and Information Engineering,2021,39(1): 79-89.)

[31]Herzberg A,Jarecki S,Krawczyk H,et al. Proactive secret sharing or: how to cope with perpetual leakage [C]// Advance in Cryptology-Crypto,International Cryptology Conference. Berlin:Springer,1995.

[32]方維維,王子岳,宋慧麗,等. 一種面向區(qū)塊鏈的優(yōu)化PBFT共識算法 [J]. 北京交通大學(xué)學(xué)報(bào),2019,43(5): 58-64. (Fang Weiwei,Wang Ziyue,Song Huili,et al. An optimized PBFT consensus algorithm for blockchain [J]. Journal of Beijing Jiaotong University,2019,43(5): 58-64.)

[33]丁庭琛,陳世平. 基于信用分級的PBFT共識算法改進(jìn)方案 [J]. 計(jì)算機(jī)系統(tǒng)應(yīng)用,2020,29(9): 255-259. (Ding Tingchen,Chen Shiping. Improved PBFT consensus mechanism based on credit-layered mechanism [J]. Computer System amp; Applications,2020,29(9): 255-259.)

主站蜘蛛池模板: 久久精品91麻豆| 8090成人午夜精品| 区国产精品搜索视频| 欧美日韩国产成人高清视频| 亚洲国产精品成人久久综合影院| 成人国产免费| 日本不卡在线播放| 91福利一区二区三区| 麻豆国产精品| 成人一区专区在线观看| 日韩免费毛片视频| 日韩天堂网| 夜夜爽免费视频| 亚洲美女操| 国产农村1级毛片| 伊人久久婷婷| a级毛片免费网站| 国产精品永久不卡免费视频| 国产传媒一区二区三区四区五区| 亚洲午夜国产精品无卡| 日本中文字幕久久网站| 精品自窥自偷在线看| 人人看人人鲁狠狠高清| 国产成人综合久久| 日韩美毛片| 午夜欧美在线| 日韩午夜福利在线观看| 国产精品久久久久久久久kt| www.av男人.com| 天堂亚洲网| 欧美亚洲国产一区| 欧美黄网在线| 亚洲福利网址| 成人综合久久综合| 特级毛片免费视频| 日本伊人色综合网| 国产欧美高清| 丁香五月亚洲综合在线 | 嫩草影院在线观看精品视频| 久久综合丝袜日本网| 手机精品福利在线观看| 九九免费观看全部免费视频| 国产97色在线| 热这里只有精品国产热门精品| 亚洲综合精品香蕉久久网| 9久久伊人精品综合| 波多野结衣视频网站| 免费精品一区二区h| 成人夜夜嗨| 99在线视频网站| 日韩成人午夜| 亚洲天堂视频网站| 区国产精品搜索视频| 青青草国产精品久久久久| 亚洲欧美综合另类图片小说区| 一本大道无码高清| AV无码一区二区三区四区| 欧美日韩国产系列在线观看| 日韩少妇激情一区二区| 国产成人综合久久精品下载| 久久综合色播五月男人的天堂| 影音先锋丝袜制服| 亚洲日本www| 日本免费新一区视频| 毛片在线播放网址| 精品久久蜜桃| 国产日韩精品欧美一区灰| 男女性午夜福利网站| 国内精品久久久久久久久久影视 | 日韩高清无码免费| 国产精品久久久精品三级| 激情乱人伦| 四虎永久在线精品国产免费| 2020国产精品视频| 欧美三级自拍| 日韩精品一区二区三区免费| 国产欧美在线观看视频| 国产99在线观看| 一级毛片a女人刺激视频免费| 亚洲国产91人成在线| 欧美成人精品一级在线观看| 很黄的网站在线观看|