田志宏,趙金東
(煙臺(tái)大學(xué)計(jì)算機(jī)與控制工程學(xué)院,山東煙臺(tái) 264005)
近年來,物聯(lián)網(wǎng)(Internet of Things,IoT)設(shè)備呈指數(shù)級(jí)增長,物聯(lián)網(wǎng)以傳統(tǒng)互聯(lián)網(wǎng)、移動(dòng)網(wǎng)絡(luò)、傳感器網(wǎng)絡(luò)為基礎(chǔ),擴(kuò)展了新的互聯(lián)網(wǎng)概念,實(shí)現(xiàn)萬物互聯(lián)互通,使人類社會(huì)更加高效、智能化[1-2]。但是,物聯(lián)網(wǎng)設(shè)備資源有限,且容易受到安全攻擊[3]。伴隨著區(qū)塊鏈在對(duì)等網(wǎng)絡(luò)(Peer to Peer,P2P)傳輸、分布式存儲(chǔ)、共識(shí)機(jī)制、密碼學(xué)、智能合約等技術(shù)方面的不斷運(yùn)用,將區(qū)塊鏈核心技術(shù)之一的共識(shí)機(jī)制應(yīng)用于物聯(lián)網(wǎng)場景中,能夠解決物聯(lián)網(wǎng)面臨的中心機(jī)構(gòu)運(yùn)行成本高、可擴(kuò)展性差、安全性存在隱患等問題,提高物聯(lián)網(wǎng)的性能和安全性[4]。
傳統(tǒng)的共識(shí)機(jī)制需要競爭記賬權(quán),會(huì)造成資源大量浪費(fèi)的現(xiàn)象,不完全適用于資源有限的物聯(lián)網(wǎng)設(shè)備;此外,隨著物聯(lián)網(wǎng)設(shè)備的不斷增加,交易的處理速度和可擴(kuò)展性也需要得到提高。而且,區(qū)塊鏈分叉[5]也會(huì)導(dǎo)致雙花攻擊。雙花攻擊指的是攻擊者通過不承認(rèn)最近的某個(gè)交易,并在這個(gè)交易之前創(chuàng)建了一條更長的區(qū)塊鏈,從而實(shí)現(xiàn)一筆交易被花費(fèi)了兩次[6]。為了解決分叉問題,區(qū)塊鏈通常采用最長鏈原則,但是這樣會(huì)造成交易高延遲問題[7]。因此研究各種共識(shí)機(jī)制優(yōu)缺點(diǎn),對(duì)物聯(lián)網(wǎng)和區(qū)塊鏈的結(jié)合具有重要的意義。
目前,出現(xiàn)了很多種共識(shí)機(jī)制,有的通過算力競爭來實(shí)現(xiàn),如工作量證明(Proof of Work,PoW)共識(shí)機(jī)制;有的使用投票選舉來實(shí)現(xiàn),如授權(quán)股權(quán)證明(Delegated Proof of Stake,DPoS)共識(shí)機(jī)制;還有的利用燃燒硬幣來實(shí)現(xiàn),如燃燒證明(Proof of Burn,PoB)共識(shí)機(jī)制以及其他實(shí)現(xiàn)形式的共識(shí)機(jī)制等。這些共識(shí)機(jī)制各有各的優(yōu)勢(shì),并且都在相應(yīng)的場景中得到了運(yùn)用。但是物聯(lián)網(wǎng)具有節(jié)點(diǎn)密集、資源受限、容量不足等特征,現(xiàn)有共識(shí)機(jī)制能否直接在物聯(lián)網(wǎng)場景中得以實(shí)現(xiàn),仍待研究。本文對(duì)區(qū)塊鏈技術(shù)現(xiàn)有的協(xié)議、算法和技術(shù)進(jìn)行分析和對(duì)比,研究各種共識(shí)機(jī)制在物聯(lián)網(wǎng)環(huán)境中使用時(shí)存在的問題。
本文的主要工作如下:
1)對(duì)面向物聯(lián)網(wǎng)的共識(shí)機(jī)制進(jìn)行了分類,分別討論了各類共識(shí)機(jī)制的工作原理和優(yōu)缺點(diǎn);
2)研究了共識(shí)機(jī)制在去中心化程度、交易處理速度、交易確認(rèn)延遲、安全性和可擴(kuò)展性方面與物聯(lián)網(wǎng)的適應(yīng)度;
3)討論了面向物聯(lián)網(wǎng)的區(qū)塊鏈共識(shí)機(jī)制現(xiàn)有的挑戰(zhàn),把握了今后研究工作的方向。
區(qū)塊鏈的概念最開始是由一個(gè)筆名為“中本聰”的學(xué)者于2008 年發(fā)表的論文“Bitcoin:a peer-to-peer electronic cash system”中提出的[8]。區(qū)塊鏈中存放了大量的交易信息,相當(dāng)于一個(gè)數(shù)據(jù)庫[9-12]。文獻(xiàn)[13]提出區(qū)塊鏈?zhǔn)且环N按照時(shí)間順序?qū)^(qū)塊從后向前依次鏈接起來的數(shù)據(jù)結(jié)構(gòu),利用非對(duì)稱加密技術(shù)來保證不可篡改和不可偽造的去中心化共享賬本。圖1 是區(qū)塊鏈結(jié)構(gòu)圖,其中a≥0(當(dāng)a=0 時(shí)表示創(chuàng)世區(qū)塊),區(qū)塊由區(qū)塊頭和區(qū)塊體構(gòu)成,區(qū)塊頭包括父區(qū)塊哈希值、版本號(hào)、時(shí)間戳、難度目標(biāo)、nonce值以及merkle根,區(qū)塊體保存著大量的交易信息。
圖1 區(qū)塊鏈結(jié)構(gòu)Fig.1 Blockchain structure
區(qū)塊鏈具有去中心化、開放性、共識(shí)機(jī)制和不可篡改等特點(diǎn),確保了交易信息的正確性、安全性。
首先,區(qū)塊鏈去中心化的特點(diǎn)使每個(gè)節(jié)點(diǎn)都有權(quán)共享交易信息并對(duì)信息的正確性進(jìn)行驗(yàn)證;其次,區(qū)塊鏈開放性的特點(diǎn)是每個(gè)節(jié)點(diǎn)在任何時(shí)間都可以加入或者退出;再次,區(qū)塊鏈共識(shí)機(jī)制的特點(diǎn)可以使沒有聯(lián)系的節(jié)點(diǎn),直接依靠共識(shí)機(jī)制來達(dá)成一致性協(xié)議;最后,區(qū)塊鏈不可篡改的特點(diǎn)是基于哈希算法來保證交易信息不會(huì)被更改[14]。此外,根據(jù)應(yīng)用場景和開放程度,區(qū)塊鏈可以被劃分為公有鏈、聯(lián)盟鏈和私有鏈[15-16]。
1.1.1 比特幣的運(yùn)行機(jī)制(區(qū)塊鏈1.0版本)
比特幣是區(qū)塊鏈1.0 版本的代表,它是一種數(shù)字貨幣,產(chǎn)生于分布式網(wǎng)絡(luò)結(jié)構(gòu),區(qū)塊鏈1.0 版本的系統(tǒng)架構(gòu)如圖2所示。
圖2 區(qū)塊鏈1.0版本架構(gòu)Fig.2 Blockchain version 1.0 architecture
在比特幣系統(tǒng)中,每個(gè)節(jié)點(diǎn)通過P2P 網(wǎng)絡(luò)傳輸?shù)姆绞酵瓿山灰仔畔⒌墓蚕?,并且?jié)點(diǎn)可以匿名,保證了網(wǎng)絡(luò)中交易信息的同步性。此外,為了防止雙花攻擊,系統(tǒng)采取給交易信息加上時(shí)間戳選取計(jì)算量最多的鏈為主鏈,維護(hù)其安全性。圖3描述了比特幣系統(tǒng)的運(yùn)行流程[17]:
1)用戶發(fā)起一筆新的交易,交易信息在全網(wǎng)中不斷被廣播;
2)每個(gè)節(jié)點(diǎn)對(duì)接收到的交易進(jìn)行驗(yàn)證,如果該交易被驗(yàn)證為有效,則將交易存儲(chǔ)在交易池中;
3)各節(jié)點(diǎn)通過挖礦來產(chǎn)生區(qū)塊,礦工們需要通過工作量證明來完成哈希計(jì)算;
4)當(dāng)一個(gè)節(jié)點(diǎn)挖出一個(gè)區(qū)塊,網(wǎng)絡(luò)中的其他節(jié)點(diǎn)將確認(rèn)該區(qū)塊的有效性,只需要花費(fèi)少量的PoW計(jì)算即可;
5)如果該區(qū)塊被確認(rèn)為有效,則將其鏈接到區(qū)塊鏈中;
6)成功完成一筆交易。
1.1.2 智能合約(區(qū)塊鏈2.0版本)
智能合約這一概念最先由Nick Szabo 提出,是一套以數(shù)字方式定義并被實(shí)現(xiàn)的承諾[18]。區(qū)塊鏈去中心化和不可篡改的特點(diǎn)為智能合約賦予了新的涵義,使智能合約能夠運(yùn)行在安全可靠的環(huán)境中,圖4 是區(qū)塊鏈2.0 版本的基礎(chǔ)架構(gòu)[13,19]。共識(shí)層包含各種共識(shí)機(jī)制,網(wǎng)絡(luò)層中P2P 網(wǎng)絡(luò)負(fù)責(zé)信息的廣播,數(shù)據(jù)層存放數(shù)據(jù)信息、時(shí)間戳等,激勵(lì)層包含以激勵(lì)的方式獲得收益所采用的機(jī)制[20-22],合約層主要是智能合約,應(yīng)用層是區(qū)塊鏈的應(yīng)用場景。Ethereum[23]和Hyperledger[24]等平臺(tái)利用智能合約,有效地解決了比特幣系統(tǒng)存在的交易處理速度慢和高延遲的問題。
圖3 比特幣系統(tǒng)運(yùn)行流程Fig.3 Operation flow of bitcoin system
圖4 區(qū)塊鏈2.0版本架構(gòu)Fig.4 Blockchain version 2.0 architecture
去中心化是區(qū)塊鏈中的一個(gè)核心要素,每個(gè)節(jié)點(diǎn)的權(quán)力都是一樣的,為了保證各個(gè)節(jié)點(diǎn)之間相互協(xié)作需要一套算法,這套算法被稱為共識(shí)機(jī)制[25-26]。共識(shí)機(jī)制的研究起源比較早。1982 年,Lamport、Shostak 和Pease 提出了在遭受拜占庭節(jié)點(diǎn)的情況下如何達(dá)成一致性協(xié)議的拜占庭將軍問題,推動(dòng)了共識(shí)機(jī)制的發(fā)展[27-28]。
區(qū)塊鏈核心技術(shù)共識(shí)機(jī)制首先應(yīng)用于比特幣中,隨著區(qū)塊鏈技術(shù)的不斷發(fā)展與完善,共識(shí)機(jī)制也越來越成熟。常見的共識(shí)機(jī)制有工作量證明、權(quán)益證明(Proof of Stake,PoS)、授權(quán)股權(quán)證明、權(quán)威證明(Proof of Authority,PoA)、燃燒證明、貢獻(xiàn)證明(Proof of Contribution,PoC)、存在證明(Proof of Existence,PoE)[29]、數(shù)據(jù)可恢復(fù)證明(Proof of Retrievability,PoR)[30]、存儲(chǔ)證明(Proof of Storage)[31]、拜占庭容錯(cuò)(Byzantine Fault Tolerance,BFT)[32]、實(shí)用拜占庭容錯(cuò)(Practical BFT,PBFT)、簡化拜占庭容錯(cuò)(Simplified BFT,SBFT)[33]、MinBFT[34]、Honeybadge-BFT[35]、Algorand、Paxos[36]、Raft、Tendermint、埃歐塔(Internet of Things Application,IOTA)、Byteball、Hashgraph[37]、HashNet[38]、Ouroboros[39]等。
物聯(lián)網(wǎng)通過連接互聯(lián)網(wǎng)和信息傳感設(shè)備,實(shí)現(xiàn)智能化控制和處理信息[40]。圖5 是物聯(lián)網(wǎng)層次結(jié)構(gòu),自底向上可分為三層:感知層、網(wǎng)絡(luò)層和應(yīng)用層。感知層能夠收集和處理信息;網(wǎng)絡(luò)層通過網(wǎng)絡(luò)傳輸完成信息交互;應(yīng)用層直接聯(lián)系具體業(yè)務(wù),如智慧城市[40]、智慧工廠[41]、智能家居[42]等。
物聯(lián)網(wǎng)通常包括資源約束的嵌入式設(shè)備,如射頻識(shí)別(Radio Frequency IDentification,RFID)和傳感器節(jié)點(diǎn)[43]。傳感器節(jié)點(diǎn)作為物聯(lián)網(wǎng)的重要組成部分,在實(shí)際應(yīng)用中會(huì)面臨一些技術(shù)挑戰(zhàn)[44-46]:第一,由于傳感器節(jié)點(diǎn)數(shù)量多,分布范圍廣,難以對(duì)節(jié)點(diǎn)進(jìn)行集中的管理和維護(hù);第二,由于體積小、功耗低、成本低,傳感器節(jié)點(diǎn)的能量、計(jì)算、存儲(chǔ)、通信能力受到限制,影響了網(wǎng)絡(luò)的擴(kuò)展能力;第三,由于大多數(shù)傳感器節(jié)點(diǎn)都部署在無人值守的區(qū)域,容易出現(xiàn)數(shù)據(jù)被篡改或遭受攻擊,安全性得不到保障;第四,傳感器節(jié)點(diǎn)容易損壞,一旦出現(xiàn)問題,就無法判斷是軟件問題、硬件問題還是系統(tǒng)故障,這是由于節(jié)點(diǎn)存儲(chǔ)空間有限,在節(jié)點(diǎn)端很難存儲(chǔ)過多的調(diào)試信息,沒有調(diào)試信息就不能夠找到錯(cuò)誤原因;第五,由于傳感器節(jié)點(diǎn)在共享信息時(shí),信息容易被泄露,面臨隱私泄露威脅。
圖5 物聯(lián)網(wǎng)層次結(jié)構(gòu)Fig.5 Hierarchical structure of internet of things
區(qū)塊鏈擁有安全可靠的加密技術(shù),并且憑借去中心化、共識(shí)機(jī)制、不可篡改的特性,能夠改善物聯(lián)網(wǎng)的安全和可擴(kuò)展性等問題[47]。區(qū)塊鏈去中心化的特點(diǎn)使物聯(lián)網(wǎng)設(shè)備不需要中心服務(wù)器直接進(jìn)行信息交互,解決中心機(jī)構(gòu)運(yùn)行成本高的問題。區(qū)塊鏈共識(shí)機(jī)制的特點(diǎn)能夠使物聯(lián)網(wǎng)設(shè)備之間保持信任,增強(qiáng)網(wǎng)絡(luò)的可靠性[48]。區(qū)塊鏈不可篡改的特點(diǎn)使得數(shù)據(jù)寫入?yún)^(qū)塊鏈就難以更改,實(shí)現(xiàn)物聯(lián)網(wǎng)設(shè)備中數(shù)據(jù)的追本溯源[49]。文獻(xiàn)[50]提出利用區(qū)塊鏈去中心化的特點(diǎn)解決物聯(lián)網(wǎng)集中訪問控制的問題,實(shí)現(xiàn)了去中心化訪問控制系統(tǒng)。文獻(xiàn)[51]為解決分布式物聯(lián)網(wǎng)內(nèi)的設(shè)備之間的信任問題,借助區(qū)塊鏈共識(shí)機(jī)制,提出了一種適用于分布式物聯(lián)網(wǎng)的信任管理方法,實(shí)現(xiàn)了數(shù)據(jù)共享與數(shù)據(jù)安全。將區(qū)塊鏈共識(shí)機(jī)制應(yīng)用于物聯(lián)網(wǎng)中,在物聯(lián)網(wǎng)設(shè)備之間實(shí)現(xiàn)共識(shí)過程,將增強(qiáng)物聯(lián)網(wǎng)的性能和安全性。
接下來,將詳細(xì)討論面向物聯(lián)網(wǎng)的各種共識(shí)機(jī)制,并對(duì)常見的共識(shí)機(jī)制進(jìn)行分類研究,分析共識(shí)機(jī)制是否適用于物聯(lián)網(wǎng)場景中。
物聯(lián)網(wǎng)設(shè)備具有數(shù)量多、分布范圍廣、功耗低、計(jì)算能力弱和安全存在隱患的特征,因此分析區(qū)塊鏈共識(shí)機(jī)制的優(yōu)缺點(diǎn),對(duì)區(qū)塊鏈技術(shù)能否應(yīng)用于物聯(lián)網(wǎng)場景中具有至關(guān)重要的作用。隨著區(qū)塊鏈技術(shù)的發(fā)展,共識(shí)機(jī)制的數(shù)量與日俱增。本章將介紹在區(qū)塊鏈網(wǎng)絡(luò)中廣泛使用的共識(shí)機(jī)制,并討論它們的優(yōu)缺點(diǎn)。
根據(jù)生成新區(qū)塊的方式,可以把共識(shí)機(jī)制劃分為證明類、拜占庭類[7]和有向無環(huán)圖(Directed Acyclic Graph,DAG)類。下面將介紹各類共識(shí)機(jī)制(PoW、PoS、DPoS、PoA、PoC、Ouroboros、PBFT、Algorand、Tendermint、IOTA、Byteball),并對(duì)比分析共識(shí)機(jī)制在物聯(lián)網(wǎng)場景中的適應(yīng)度。
證明類共識(shí)需要在共識(shí)過程中證明自己滿足的特定條件,一般表示為“Proof of X”[52]。
2.1.1 PoW共識(shí)機(jī)制
PoW 共識(shí)機(jī)制,即工作量證明共識(shí)機(jī)制。其思想最早出現(xiàn)在1992 年由Dwork 和Naor 發(fā)表的論文中,被用來防止垃圾郵件問題[53]。比特幣成功利用PoW 共識(shí)機(jī)制在沒有中央機(jī)構(gòu)的情況下,使全網(wǎng)每個(gè)獨(dú)立的節(jié)點(diǎn)就交易信息的正確性達(dá)成一致,實(shí)現(xiàn)節(jié)點(diǎn)之間的相互信任,同時(shí)防止惡意節(jié)點(diǎn)制造假身份發(fā)起女巫攻擊[54]。
圖6 PoW共識(shí)機(jī)制工作原理Fig.6 Working principle of PoW consensus mechanism
難度目標(biāo)值的計(jì)算公式[55]為:
其中:newtarget表示生產(chǎn)新區(qū)塊的難度目標(biāo)值;oldtarget表示生產(chǎn)上一個(gè)區(qū)塊的難度目標(biāo)值;totaltime代表生產(chǎn)前2 016 個(gè)區(qū)塊所使用的時(shí)間。PoW 難度目標(biāo)值調(diào)整機(jī)制:newtarget變大,生產(chǎn)區(qū)塊所使用的時(shí)間會(huì)縮短;newtarget變小,生產(chǎn)區(qū)塊所使用的時(shí)間會(huì)變長。
SHA256哈希函數(shù):交易信息被編碼為固定長度的由字母和數(shù)字組成的字符串后寫入?yún)^(qū)塊鏈[13]。哈希函數(shù)滿足三個(gè)特性[17]:1)輸入長度不同,但是輸出長度卻是不變的。2)由輸出推導(dǎo)出輸入基本上是不可能發(fā)生的。對(duì)于給定的b,找到一個(gè)a,使Hash(a)=b,幾乎不可能。3)輸入不同,要產(chǎn)生相同的輸出是很難的。給定不相同的a和b,使Hash(a)=Hash(b)基本上不可能。
數(shù)字簽名:共識(shí)機(jī)制通過數(shù)字簽名的方式來核對(duì)發(fā)送者的身份,驗(yàn)證交易信息在傳輸過程中沒有被篡改過,保證交易信息的完整性。數(shù)字簽名的算法流程[17]如下:1)密鑰生成。首先對(duì)交易信息進(jìn)行加密,并且使用橢圓曲線密碼算法來產(chǎn)生公鑰和私鑰。2)簽名算法。接收者使用私鑰對(duì)接收到的消息進(jìn)行簽名,并且廣播出去。3)驗(yàn)證算法。對(duì)發(fā)送者的身份進(jìn)行確認(rèn),判斷身份是否正確。
PoW 共識(shí)機(jī)制的通信復(fù)雜度:通信復(fù)雜度是指共識(shí)過程中各個(gè)節(jié)點(diǎn)為了達(dá)成一致所需要的通信量。由于工作量證明采用哈希算法,通過尋找nonce值,重復(fù)計(jì)算區(qū)塊頭信息,礦工之間不需要通信,只有在生成區(qū)塊后才在全網(wǎng)進(jìn)行廣播,其他節(jié)點(diǎn)驗(yàn)證區(qū)塊有效性。因此,PoW 共識(shí)機(jī)制的通信復(fù)雜度為O(n)。
PoW共識(shí)機(jī)制的優(yōu)點(diǎn):
1)去中心化程度高。每個(gè)節(jié)點(diǎn)享有同等參與的權(quán)力,并且對(duì)產(chǎn)生的新區(qū)塊進(jìn)行驗(yàn)證工作。
2)安全性高?;谧铋L鏈原則的PoW 共識(shí)機(jī)制,產(chǎn)生區(qū)塊需要犧牲大量的算力,作惡成本高,避免雙花攻擊。
3)算法簡單,容易實(shí)現(xiàn)。生成和驗(yàn)證區(qū)塊是通過求解哈希函數(shù)來解決一個(gè)純粹的數(shù)學(xué)問題[56]。
PoW共識(shí)機(jī)制的缺點(diǎn):
1)高延遲。生成一個(gè)區(qū)塊需要花費(fèi)10 min,使得區(qū)塊的確認(rèn)時(shí)間長。
2)可擴(kuò)展性差。隨著交易數(shù)量的增加,處理交易的能力有限。
3)成本高。由于挖礦是一個(gè)不斷進(jìn)行哈希計(jì)算的過程,要以耗費(fèi)大量的算力為代價(jià),浪費(fèi)資源。
4)需要特殊的硬件設(shè)備,而且對(duì)帶寬的要求較高。
PoW共識(shí)機(jī)制與物聯(lián)網(wǎng)場景的適應(yīng)度:
PoW 共識(shí)機(jī)制應(yīng)用于物聯(lián)網(wǎng)場景中,受到四個(gè)因素限制:一是,挖礦需要消耗大量的算力資源,而物聯(lián)網(wǎng)設(shè)備由于計(jì)算能力弱不適合成為礦工節(jié)點(diǎn)[2];二是,完成共識(shí)過程需要消耗大量的能量,而物聯(lián)網(wǎng)設(shè)備具有低功耗的特征,而且大部分物聯(lián)網(wǎng)終端采用電池供電壽命有限,不能滿足能量的供應(yīng);三是,由于哈希函數(shù)求解的復(fù)雜性,解決此難題需要一些時(shí)間,使交易處理速度較慢,影響了出塊的時(shí)間,無法滿足物聯(lián)網(wǎng)應(yīng)用的低延遲需求;四是,工作量證明共識(shí)機(jī)制需要特殊的硬件設(shè)備來支持以及對(duì)帶寬有一定的要求,也不適合物聯(lián)網(wǎng)場景。
2.1.2 PoS共識(shí)機(jī)制
PoS 共識(shí)機(jī)制,即權(quán)益證明共識(shí)機(jī)制,也稱股權(quán)證明共識(shí)機(jī)制。其想法來源于Nick Szabo[18],之后在2011 年bitconitalk論壇上被Quantum Mechanic 正式提出[57],目的是解決PoW 共識(shí)機(jī)制存在處理速度慢、高延遲以及計(jì)算量大的問題。與PoW 相比,PoS 是用權(quán)益來代替算力,權(quán)益也被稱為幣齡。該算法的中心思想是通過權(quán)益大小來獲得生成區(qū)塊的權(quán)力,權(quán)益越大的節(jié)點(diǎn)越有可能先生成區(qū)塊,當(dāng)系統(tǒng)簽名一個(gè)區(qū)塊時(shí),其幣齡被置為零[57]。由于通過幣齡來產(chǎn)生區(qū)塊不需要消耗大量的算力,因此能量消耗少。
PoS 算法表示:coinage=coin*time,coinage表示該筆交易的幣齡,coin和time分別表示持有貨幣的數(shù)量和時(shí)間,持有貨幣的數(shù)量越多或者時(shí)間越長,則獲得產(chǎn)生區(qū)塊的難度越小。
PoS共識(shí)機(jī)制的優(yōu)點(diǎn):
1)節(jié)省資源。生產(chǎn)區(qū)塊不需要進(jìn)行大量的計(jì)算,消耗的能量少。
2)低延遲。節(jié)點(diǎn)挖礦不需要算力競爭,只需要權(quán)益證明,提高了確認(rèn)效率,從交易被打包裝入?yún)^(qū)塊到生成新區(qū)塊的共識(shí)過程的確認(rèn)時(shí)間大約是1 min[56]。
PoS共識(shí)機(jī)制的缺點(diǎn):
1)安全性差。由于挖礦成本不高,攻擊者可以累積一定量的幣齡,發(fā)起雙花攻擊。
2)可擴(kuò)展性差。由于交易數(shù)量的增加,網(wǎng)絡(luò)節(jié)點(diǎn)處理交易的能力有限。
3)激勵(lì)問題。因?yàn)镻oS共識(shí)機(jī)制在共識(shí)過程中不需要消耗大量的算力,相較于PoW,其激勵(lì)程度遠(yuǎn)遠(yuǎn)不及。
PoS共識(shí)機(jī)制與物聯(lián)網(wǎng)場景的適應(yīng)度:
PoS 共識(shí)機(jī)制應(yīng)用于物聯(lián)網(wǎng)場景中,受到兩個(gè)限制:一是,PoS 共識(shí)機(jī)制生成區(qū)塊成本低,惡意節(jié)點(diǎn)可以發(fā)起51%攻擊,而物聯(lián)網(wǎng)設(shè)備本身就容易遭受攻擊,因此不太適用于物聯(lián)網(wǎng)場景中[58];二是,由于其可擴(kuò)展性差,當(dāng)物聯(lián)網(wǎng)設(shè)備增加時(shí),網(wǎng)絡(luò)節(jié)點(diǎn)處理能力有限。
2.1.3 DPoS共識(shí)機(jī)制
DPoS[59]共識(shí)機(jī)制,即授權(quán)股份證明機(jī)制。DPoS 是在PoS的基礎(chǔ)上改進(jìn)的一種共識(shí)算法,與PoW 和PoS一樣,最長的有效區(qū)塊鏈即為最佳區(qū)塊鏈。相較于PoW 和PoS 共識(shí)機(jī)制,DPoS 共識(shí)機(jī)制提高了交易處理速度,大約每3 s 產(chǎn)生一個(gè)區(qū)塊。全網(wǎng)每個(gè)擁有權(quán)益的節(jié)點(diǎn)都具有投票的權(quán)力,投票選出一定數(shù)量的代表節(jié)點(diǎn),代表節(jié)點(diǎn)的職責(zé)是生產(chǎn)區(qū)塊并進(jìn)行區(qū)塊的驗(yàn)證,類似于現(xiàn)實(shí)中“民主集中”制度的記賬方式,可以在短時(shí)間內(nèi)達(dá)成共識(shí)[60]。圖7 是DPoS 共識(shí)機(jī)制的工作流程:每個(gè)擁有權(quán)益的用戶,投票選出100 個(gè)代表,代表節(jié)點(diǎn)以輪流的方式在規(guī)定的時(shí)間內(nèi)生產(chǎn)區(qū)塊,只有驗(yàn)證通過,才能產(chǎn)生有效區(qū)塊。此外,如果某一個(gè)代表節(jié)點(diǎn)長時(shí)間不在線或者多次產(chǎn)生無效區(qū)塊,其他節(jié)點(diǎn)將投票選出一個(gè)新代表節(jié)點(diǎn)。
圖7 DPoS共識(shí)機(jī)制的工作流程Fig.7 Workflow of DPoS consensus mechanism
DPoS共識(shí)機(jī)制的優(yōu)點(diǎn):
1)交易確認(rèn)速度快。代表節(jié)點(diǎn)的數(shù)量是有限的,使得短時(shí)間內(nèi)達(dá)成共識(shí),產(chǎn)生一個(gè)區(qū)塊僅僅需要大約3 s,相較于PoW 共識(shí)機(jī)制產(chǎn)生一個(gè)區(qū)塊需要10 min,明顯提高了確認(rèn)速度。
2)節(jié)約資源。在系統(tǒng)中投票選取少量的代表節(jié)點(diǎn),依靠每個(gè)代表節(jié)點(diǎn)輪流產(chǎn)生區(qū)塊,不需要消耗大量的算力資源。
3)可擴(kuò)展性好。由于代表節(jié)點(diǎn)處理交易能力強(qiáng),提高了節(jié)點(diǎn)處理交易的擴(kuò)展能力[60]。
4)抵御雙花攻擊。因?yàn)槊總€(gè)代表節(jié)點(diǎn)都擁有生成區(qū)塊的權(quán)力,一旦一個(gè)代表節(jié)點(diǎn)在規(guī)定的時(shí)間沒有生成區(qū)塊或者多次產(chǎn)生無效的區(qū)塊,那么這個(gè)代表節(jié)點(diǎn)會(huì)被其他代表節(jié)點(diǎn)投票剔除。
DPoS共識(shí)機(jī)制的缺點(diǎn):
1)將一些代表節(jié)點(diǎn)的權(quán)力中心化。因?yàn)槎鄠€(gè)代表節(jié)點(diǎn)能夠聯(lián)合起來共同作惡,影響共識(shí)過程。
2)代表節(jié)點(diǎn)可能遭受分布式拒絕服務(wù)攻擊(Distributed Denial of Service,DDoS)攻擊。因?yàn)楣粽呖梢詥为?dú)對(duì)每一個(gè)代表節(jié)點(diǎn)發(fā)起攻擊,從而影響代表節(jié)點(diǎn)在規(guī)定的時(shí)間內(nèi)生產(chǎn)區(qū)塊。
DPoS共識(shí)機(jī)制與物聯(lián)網(wǎng)場景的適應(yīng)度:
目前,采用DPoS 共識(shí)機(jī)制的區(qū)塊鏈應(yīng)用平臺(tái)是EOS 項(xiàng)目。EOS全稱EOS.IO軟件,通過構(gòu)建一個(gè)類似操作系統(tǒng)的體系結(jié)構(gòu)的應(yīng)用程序,來實(shí)現(xiàn)去中心化應(yīng)用程序的性能擴(kuò)展(每秒可以處理百萬級(jí)交易)[61]。EOS 項(xiàng)目的物聯(lián)網(wǎng)應(yīng)用是EOSIoT,利用智能合約和射頻識(shí)別(Radio Frequency Identification,RFID)系統(tǒng)傳送的電子標(biāo)簽,實(shí)現(xiàn)EOS 鏈服務(wù)于物聯(lián)網(wǎng)場景中[62]。
DPoS 共識(shí)機(jī)制完全應(yīng)用于物聯(lián)網(wǎng)場景中時(shí)會(huì)受到一些限制:DPoS 共識(shí)機(jī)制的共識(shí)過程雖然簡單高效,但是去中心化程度不高,不適用于分布范圍廣的物聯(lián)網(wǎng)設(shè)備;而且,當(dāng)物聯(lián)網(wǎng)設(shè)備少時(shí),代表性不強(qiáng)。對(duì)DPoS共識(shí)機(jī)制改進(jìn)的物聯(lián)網(wǎng)區(qū)塊鏈項(xiàng)目是IoTEX,通過隨機(jī)選擇代表節(jié)點(diǎn)發(fā)布區(qū)塊,進(jìn)一步增強(qiáng)了去中心化和可擴(kuò)展性方面的能力[63]。圖8 是IoTEX架構(gòu),根鏈負(fù)責(zé)維護(hù)子鏈,子鏈直接用來連接物聯(lián)網(wǎng)設(shè)備,當(dāng)子鏈出現(xiàn)故障時(shí),根鏈繼續(xù)正常運(yùn)行。
圖8 IoTEX架構(gòu)Fig.8 IoTEX architecture
2.1.4 PoA共識(shí)機(jī)制
PoA 共識(shí)機(jī)制,即權(quán)威證明共識(shí)機(jī)制,在PoS 的基礎(chǔ)上進(jìn)一步提高交易處理速度和可擴(kuò)展性。該機(jī)制把節(jié)點(diǎn)分為普通節(jié)點(diǎn)和驗(yàn)證者,由驗(yàn)證者輪流對(duì)區(qū)塊進(jìn)行簽名來判斷是否為驗(yàn)證者。以下是PoA共識(shí)機(jī)制的工作原理[64]:
1)系統(tǒng)根據(jù)節(jié)點(diǎn)信譽(yù)選出一定數(shù)量的驗(yàn)證者。
2)用戶或者智能合約向系統(tǒng)發(fā)起交易請(qǐng)求。
3)系統(tǒng)中的驗(yàn)證者接收到交易請(qǐng)求后,將交易打包到區(qū)塊中。
4)當(dāng)一個(gè)驗(yàn)證者將交易打包到區(qū)塊并確認(rèn)出塊,在全網(wǎng)進(jìn)行廣播,驗(yàn)證者對(duì)區(qū)塊進(jìn)行簽名,檢查該節(jié)點(diǎn)是否為驗(yàn)證者。如果該節(jié)點(diǎn)被確認(rèn)為驗(yàn)證者,則該區(qū)塊是有效的。
5)如果普通節(jié)點(diǎn)申請(qǐng)成為新的驗(yàn)證者,需要在驗(yàn)證者內(nèi)部投票決定。驗(yàn)證者將根據(jù)投票數(shù)量是否大于1/2,來對(duì)該節(jié)點(diǎn)進(jìn)行判斷。如果得到超過1/2的投票數(shù),該節(jié)點(diǎn)將成為新的驗(yàn)證者。
PoA共識(shí)機(jī)制的優(yōu)點(diǎn):
1)交易處理速度快。由于計(jì)算能力要求低,不需要進(jìn)行大量的計(jì)算,平均只需5 s即可生成區(qū)塊[65]。
2)安全性高。由于該機(jī)制需要對(duì)驗(yàn)證者的身份進(jìn)行確認(rèn),只有確認(rèn)合格才能發(fā)布區(qū)塊,所以驗(yàn)證者很難作惡,能夠有效避免雙花攻擊。
PoA共識(shí)機(jī)制的缺點(diǎn):
1)去中心化程度不高。因?yàn)閰⑴c共識(shí)過程的驗(yàn)證者數(shù)量較少。
2)驗(yàn)證者作惡。如果驗(yàn)證者在共識(shí)過程中選擇作惡,當(dāng)前有效的解決方法是使用多重簽名機(jī)制。
3)隱私威脅。由于驗(yàn)證者身份是公開的,個(gè)人信息容易被泄露。
PoA共識(shí)機(jī)制與物聯(lián)網(wǎng)場景的適應(yīng)度:
PoA 共識(shí)機(jī)制適用于解決物聯(lián)網(wǎng)面臨的處理能力弱、能量供應(yīng)有限等問題,但是應(yīng)用于物聯(lián)網(wǎng)場景中會(huì)受到一個(gè)限制:與DPoS共識(shí)機(jī)制類似,由于去中心化程度不高,不適用于分布范圍廣的物聯(lián)網(wǎng)設(shè)備。
2.1.5 PoC共識(shí)機(jī)制
PoC 共識(shí)機(jī)制,即貢獻(xiàn)證明共識(shí)機(jī)制,最早是由CyberVein 團(tuán)隊(duì)提出的,被用來解決區(qū)塊鏈中51%攻擊問題。PoC 共識(shí)機(jī)制生產(chǎn)區(qū)塊是通過貢獻(xiàn)算法選擇貢獻(xiàn)最多的節(jié)點(diǎn),貢獻(xiàn)算法的計(jì)算公式[66]:
其中:MC代表貢獻(xiàn)值;m和n表示節(jié)點(diǎn)的數(shù)量;ω1影響復(fù)原的時(shí)間;ω2與節(jié)點(diǎn)的初始狀態(tài)有關(guān);ω3是一個(gè)常數(shù)值;ω4是節(jié)點(diǎn)在線時(shí)間系數(shù);ΔT是一個(gè)時(shí)間差;kc表示節(jié)點(diǎn)狀態(tài)的相關(guān)系數(shù);T1代表共識(shí)結(jié)束時(shí)區(qū)塊的時(shí)間戳;T2代表初始的時(shí)間戳;T3代表用戶不在線的時(shí)間。
PoC共識(shí)機(jī)制的優(yōu)點(diǎn):
1)去中心化程度高。貢獻(xiàn)證明算法每次選擇貢獻(xiàn)最高的節(jié)點(diǎn)生產(chǎn)區(qū)塊,節(jié)點(diǎn)可以自由參與或者退出。
2)安全可靠。采用貢獻(xiàn)算法,以貢獻(xiàn)量最大的節(jié)點(diǎn)生產(chǎn)區(qū)塊,能夠避免雙花攻擊。
PoC共識(shí)機(jī)制的缺點(diǎn):
1)可擴(kuò)展性差。隨著交易量的增加,網(wǎng)絡(luò)節(jié)點(diǎn)處理交易的性能沒有改變。
PoC共識(shí)機(jī)制與物聯(lián)網(wǎng)場景的適應(yīng)度:
PoC 共識(shí)機(jī)制雖然能夠解決物聯(lián)網(wǎng)存在的安全問題,但是會(huì)受到一個(gè)限制:隨著物聯(lián)網(wǎng)設(shè)備日益增加,擴(kuò)展能力將受限。
2.1.6 Ouroboros共識(shí)機(jī)制
基于PoS 共識(shí)機(jī)制的Ouroboros,被用來防止自私挖礦等攻擊,保證系統(tǒng)安全性。在共識(shí)過程中,用slot 表示劃分的時(shí)間段,相鄰的幾個(gè)slot組成一個(gè)epoch。
Ouroboros共識(shí)機(jī)制的工作原理[39]:
1)獲取當(dāng)前epoch 的公鑰vk、權(quán)益s和初始化隨機(jī)種子ρ的信息。
2)由隨機(jī)變量F(S,ρ,slj)計(jì)算出領(lǐng)導(dǎo)者Ui負(fù)責(zé)生產(chǎn)區(qū)塊的概率,其中代表第j個(gè)slot。如果超過當(dāng)前slot 的時(shí)間,放棄當(dāng)前的slot 進(jìn)入下一個(gè);同時(shí),MPC 協(xié)議會(huì)產(chǎn)生一個(gè)隨機(jī)種子ρ作為下一個(gè)epoch 過程的函數(shù)信息。
3)當(dāng)前的epoch過程完成。
Ouroboros共識(shí)機(jī)制的優(yōu)點(diǎn):
1)安全性高。Ouroboros對(duì)安全性做了嚴(yán)格的數(shù)學(xué)論證,提出了一種新的激勵(lì)機(jī)制,讓誠實(shí)節(jié)點(diǎn)的行為是一個(gè)近似納什均衡,能夠防止惡意攻擊。
2)交易處理速度快。耗費(fèi)算力資源少,比PoW 和PoS 共識(shí)機(jī)制更高效,大約能夠在20 s達(dá)成共識(shí)完成出塊。
Ouroboros共識(shí)機(jī)制的缺點(diǎn):
1)容易遭受DDoS 攻擊。由于Ouroboros 共識(shí)機(jī)制能夠提前知道誰是下一個(gè)出塊者,攻擊者可以單獨(dú)發(fā)起對(duì)某一個(gè)出塊者的惡意行為。
2)去中心化程度低。在Ouroboros共識(shí)機(jī)制中,由于節(jié)點(diǎn)進(jìn)行選擇出塊候選人與代幣的分布有關(guān),會(huì)影響去中心化程度。
Ouroboros共識(shí)機(jī)制與物聯(lián)網(wǎng)場景的適應(yīng)度:
Ouroboros 共識(shí)機(jī)制提高了系統(tǒng)的安全性和交易速度,但由于后期去中心化程度的降低,不太適用于物聯(lián)網(wǎng)場景中。
拜占庭類共識(shí)機(jī)制,是以BFT為基礎(chǔ)發(fā)展而來的。
2.2.1 PBFT共識(shí)機(jī)制
PBFT 共識(shí)算法,即實(shí)用拜占庭容錯(cuò)共識(shí)機(jī)制,最早是由Castro 和Liskov 在1999 年發(fā)表的論文中提出的[67]。節(jié)點(diǎn)間為了達(dá)成共識(shí)需要處理大量的消息,作出決定所需的消息數(shù)量取決于拜占庭節(jié)點(diǎn)的估計(jì)數(shù)量,通常用f表示拜占庭節(jié)點(diǎn)數(shù),n表示網(wǎng)絡(luò)中總節(jié)點(diǎn)數(shù),使用n與f的關(guān)系在分布式系統(tǒng)中達(dá)成共識(shí)。比特幣中n>2f+1,如果拜占庭節(jié)點(diǎn)數(shù)超過全網(wǎng)總節(jié)點(diǎn)數(shù)的1/2,會(huì)使區(qū)塊鏈分叉,遭受雙花攻擊。而PBFT共識(shí)機(jī)制采用的是n>3f+1,只要系統(tǒng)中正常工作的節(jié)點(diǎn)能夠達(dá)到2/3 就可以達(dá)成共識(shí)。PBFT 算法由請(qǐng)求、預(yù)準(zhǔn)備、準(zhǔn)備、提交和回復(fù)五個(gè)階段組成,一次共識(shí)過程中存在一個(gè)主節(jié)點(diǎn)和若干個(gè)備份節(jié)點(diǎn),如圖9 所示。PBFT 共識(shí)機(jī)制的工作過程[67]如下:
1)請(qǐng)求。網(wǎng)絡(luò)中的主節(jié)點(diǎn)接收客戶端發(fā)送的請(qǐng)求消息。
2)預(yù)準(zhǔn)備。主節(jié)點(diǎn)接收到消息后,計(jì)算預(yù)準(zhǔn)備消息為(預(yù)準(zhǔn)備,v,a,b),其中v表示視圖編號(hào),a表示序列號(hào),b為消息的摘要。
3)準(zhǔn)備。備份節(jié)點(diǎn)接收到預(yù)準(zhǔn)備消息后,計(jì)算準(zhǔn)備消息為(準(zhǔn)備,v,a,b,i),i為節(jié)點(diǎn)編號(hào)。同時(shí),每個(gè)節(jié)點(diǎn)需要檢驗(yàn)消息的有效性:如果驗(yàn)證有效,就會(huì)把消息寫到日志文件中。
4)提交。每個(gè)節(jié)點(diǎn)在收到準(zhǔn)備消息后,會(huì)對(duì)準(zhǔn)備消息進(jìn)行驗(yàn)證,只有通過驗(yàn)證客戶端才能收到回復(fù)。
5)回復(fù)。若客戶端收到的相同回復(fù)消息至少是f+1,則表示請(qǐng)求結(jié)束;否則,重新發(fā)起請(qǐng)求。
圖9 PBFT算法流程Fig.9 PBFT algorithm flow
文獻(xiàn)[68]針對(duì)PBFT 共識(shí)過程中需要進(jìn)行多次交互的問題,提出了一種基于信用的改進(jìn)PBFT共識(shí)機(jī)制的高效動(dòng)態(tài)的CPBFT 共識(shí)機(jī)制,該機(jī)制能夠減少交易確認(rèn)的時(shí)間和節(jié)點(diǎn)與節(jié)點(diǎn)之間的通信次數(shù),提高了系統(tǒng)的性能。文獻(xiàn)[69]提出采用多主節(jié)點(diǎn)的PBFT共識(shí)機(jī)制,有效地降低了拜占庭節(jié)點(diǎn)作為主節(jié)點(diǎn)的可能性。
PBFT共識(shí)機(jī)制的通信復(fù)雜度:由于算法共識(shí)過程的五個(gè)階段需要廣播大量的消息,所以PBFT共識(shí)機(jī)制的通信復(fù)雜度為O(n2)。
PBFT共識(shí)機(jī)制的優(yōu)點(diǎn):
1)共識(shí)效率高。在秒級(jí)內(nèi)就能夠生產(chǎn)區(qū)塊,效率高。
PBFT共識(shí)機(jī)制的缺點(diǎn):
1)適用范圍有限。PBFT 共識(shí)機(jī)制不適合采用公有鏈方式。
2)可擴(kuò)展性較差。在節(jié)點(diǎn)數(shù)增多后,網(wǎng)絡(luò)節(jié)點(diǎn)處理能力有限。
3)容錯(cuò)性低。PBFT 共識(shí)機(jī)制要求節(jié)點(diǎn)總數(shù)n>3f+1,即系統(tǒng)拜占庭節(jié)點(diǎn)數(shù)不超過全網(wǎng)節(jié)點(diǎn)數(shù)的1/3。
4)容易遭受拒絕服務(wù)(Denial of Service,DoS)攻擊。攻擊者發(fā)起對(duì)一筆交易的拒絕服務(wù)攻擊,使消息得不到傳播,阻礙成功完成交易。
PBFT共識(shí)機(jī)制與物聯(lián)網(wǎng)場景的適應(yīng)度:
PBFT 共識(shí)機(jī)制應(yīng)用于物聯(lián)網(wǎng)會(huì)受到一個(gè)限制:由于PBFT共識(shí)機(jī)制的安全性會(huì)隨著節(jié)點(diǎn)數(shù)量的增多而降低,而物聯(lián)網(wǎng)設(shè)備數(shù)量多,不能夠解決物聯(lián)網(wǎng)設(shè)備的安全威脅問題。
2.2.2 Algorand共識(shí)機(jī)制
Algorand 是一種將PoS 與BFT 共識(shí)機(jī)制結(jié)合的混合共識(shí)機(jī)制,解決了PoW 和PoS 共識(shí)機(jī)制中存在的交易延遲以及PBFT 共識(shí)機(jī)制的可擴(kuò)展性問題[70]。該共識(shí)機(jī)制以拜占庭協(xié)議為基礎(chǔ),在共識(shí)過程結(jié)束時(shí)生成一個(gè)區(qū)塊。因此,交易確認(rèn)時(shí)間比PoW 和PoS 共識(shí)機(jī)制短。而且,在Algorand 中會(huì)對(duì)每個(gè)用戶分配一個(gè)權(quán)重,該權(quán)重大小是根據(jù)用戶所占用資金數(shù)量決定的,只要系統(tǒng)中有占2/3 資金以上的誠實(shí)節(jié)點(diǎn),就可以避免雙花和分叉[43]。此外,通過隨機(jī)選擇領(lǐng)導(dǎo)者生產(chǎn)區(qū)塊和委員會(huì)成員投票決議(驗(yàn)證區(qū)塊)的方式實(shí)現(xiàn)共識(shí)過程,解決了PBFT共識(shí)機(jī)制的可擴(kuò)展性問題。
Algorand 共識(shí)過程[28]:①在當(dāng)前輪中,計(jì)算隨機(jī)數(shù)的數(shù)值,Qi-1是隨機(jī)種子,ci-1是上一輪的領(lǐng)導(dǎo)者表示ci-1對(duì)Qi-2的數(shù)字簽名,i-1表示輪數(shù)。②利用可驗(yàn)證隨機(jī)函數(shù)(Verifiable Random Function,VRF)選出領(lǐng)導(dǎo)者和委員會(huì)成員。③當(dāng)前被選中的領(lǐng)導(dǎo)者運(yùn)行委員會(huì)內(nèi)改進(jìn)的拜占庭共識(shí)算法BA★。
Algorand共識(shí)機(jī)制的優(yōu)點(diǎn):
1)交易處理速度快于PoW 和PoS 共識(shí)機(jī)制。Algorand 共識(shí)機(jī)制通過選取一部分節(jié)點(diǎn)完成共識(shí)過程,提高了交易處理的效率;而且采用改進(jìn)的拜占庭共識(shí)算法BA★,以很小的通信量使委員會(huì)成員達(dá)成一致,進(jìn)一步縮短了共識(shí)時(shí)間。
2)安全性高。由于采用了隨機(jī)選取領(lǐng)導(dǎo)者和委員會(huì)成員的方式,不能夠確定誰是下一個(gè)區(qū)塊的生產(chǎn)者,有效地抵御了攻擊者的任意行為。
Algorand共識(shí)機(jī)制的缺點(diǎn):
1)沒有激勵(lì)機(jī)制。由于沒有額外的獎(jiǎng)勵(lì),節(jié)點(diǎn)不會(huì)積極參與。
2)安全隱患。網(wǎng)絡(luò)用戶重復(fù)使用領(lǐng)導(dǎo)者和委員會(huì)成員的私鑰,使私鑰容易被泄露;此外,當(dāng)系統(tǒng)中惡意節(jié)點(diǎn)占有2/3以上資金時(shí),惡意節(jié)點(diǎn)可以發(fā)起任何行為的攻擊。
3)缺少懲罰機(jī)制。在共識(shí)過程中,如果存在惡意節(jié)點(diǎn),缺乏懲罰機(jī)制將不能阻止惡意行為攻擊。
Algorand共識(shí)機(jī)制與物聯(lián)網(wǎng)場景的適應(yīng)度:
Algorand 共識(shí)機(jī)制應(yīng)用于物聯(lián)網(wǎng)場景中會(huì)受到兩個(gè)限制:一是隱私泄露問題。由于在共識(shí)過程中會(huì)重復(fù)使用私鑰進(jìn)行簽名,可能會(huì)泄露用戶信息,而物聯(lián)網(wǎng)設(shè)備本身就存在隱私泄露問題;二是當(dāng)惡意節(jié)點(diǎn)掌握系統(tǒng)2/3 以上資金,會(huì)破壞共識(shí)過程,而物聯(lián)網(wǎng)設(shè)備本身就容易遭受安全威脅,這將使Algorand共識(shí)機(jī)制應(yīng)用于物聯(lián)網(wǎng)中面臨安全挑戰(zhàn)。
2.2.3 Tendermint共識(shí)機(jī)制
Tendermint 共識(shí)機(jī)制是基于PoS 和PBFT 的共識(shí)機(jī)制,目的是為了解決無利害關(guān)系問題[71]。Tendermint 共識(shí)機(jī)制受PBFT SMR 算法和DLS 算法的啟發(fā),與DLS 算法類似,Tendermint 以輪為單位進(jìn)行,每輪都有一個(gè)專用的提議者(協(xié)調(diào)者或領(lǐng)導(dǎo)者),流程進(jìn)入新一輪,作為正常處理的一部分[72]。Tendermint 共識(shí)算法中有兩個(gè)角色:1)驗(yàn)證者,在生產(chǎn)區(qū)塊階段擁有投票的權(quán)力;2)提議者,提議區(qū)塊。其共識(shí)過程分為三個(gè)核心步驟和兩個(gè)特殊步驟,也稱一輪。三個(gè)核心步驟是預(yù)投票、預(yù)提交、提交,兩個(gè)特殊步驟是提議者提議區(qū)塊、生成新區(qū)塊并且區(qū)塊鏈高度加1。
圖10 是共識(shí)過程[71]:首先隨機(jī)選擇一部分節(jié)點(diǎn)成為驗(yàn)證者,然后從驗(yàn)證者中選擇一個(gè)作為提議者,當(dāng)一個(gè)提議者完成對(duì)區(qū)塊的提議后,驗(yàn)證者將以循環(huán)的方式產(chǎn)生下一個(gè)提議者。提議者開始提議一個(gè)區(qū)塊,并向全網(wǎng)廣播,驗(yàn)證者在收到這個(gè)提議區(qū)塊后,驗(yàn)證該區(qū)塊的有效性,如果是有效區(qū)塊,就進(jìn)入到投票環(huán)節(jié)。在投票過程中,只有獲得2/3以上驗(yàn)證者同意的票數(shù)才能進(jìn)入到生產(chǎn)區(qū)塊的下一個(gè)階段。投票過程分為三個(gè)階段:第一階段預(yù)投票,如果有2/3 以上的驗(yàn)證者投票同意則進(jìn)入到第二階段預(yù)提交。同樣,在預(yù)提交階段如果有2/3以上的驗(yàn)證者投票同意則進(jìn)入到下一個(gè)階段提交。最終,提交產(chǎn)生一個(gè)新區(qū)塊,進(jìn)入下一輪。此外,如果提議者沒有在設(shè)置的時(shí)間內(nèi)提議區(qū)塊,系統(tǒng)不會(huì)等待而會(huì)生成一個(gè)空塊,進(jìn)入下一階段。在預(yù)投票階段,如果沒有獲得2/3 驗(yàn)證者投票的同意,系統(tǒng)也不會(huì)等待會(huì)生成一個(gè)空塊,進(jìn)入預(yù)提交階段。在預(yù)提交階段,如果沒有獲得2/3 驗(yàn)證者投票的同意,直接進(jìn)入下一輪,由下一個(gè)提議者開始提議區(qū)塊??諌K不含任何交易信息,不是一個(gè)真正意義上的區(qū)塊。
圖10 Tendermint共識(shí)機(jī)制工作原理Fig.10 Working principle of Tendermint consensus mechanism
Tendermint 共識(shí)機(jī)制的通信復(fù)雜度:因?yàn)樵谕镀彪A段,需要網(wǎng)絡(luò)中2/3 以上的驗(yàn)證者投票同意才可以發(fā)送消息,所以,Algorand共識(shí)機(jī)制的通信復(fù)雜度為O(n2)。
Tendermint共識(shí)機(jī)制的優(yōu)點(diǎn):
1)交易處理速度快。因?yàn)橹灰序?yàn)證者2/3 的投票同意就能夠生產(chǎn)區(qū)塊,可以在短時(shí)間內(nèi)處理大量的交易,系統(tǒng)交易吞吐量大[73]。
2)安全性高。Tendermint共識(shí)機(jī)制對(duì)有惡意行為的節(jié)點(diǎn)采取罰款的方式,保證了交易信息的正確性。
Tendermint共識(shí)機(jī)制的缺點(diǎn):
1)可能會(huì)遭受DoS 攻擊。由于以循環(huán)方式選擇提議者,可以針對(duì)某一個(gè)驗(yàn)證者節(jié)點(diǎn)發(fā)起攻擊,阻止交易完成。
2)最多能容忍1/3 拜占庭節(jié)點(diǎn)。因?yàn)門endermint 共識(shí)機(jī)制在共識(shí)過程中需要2/3 以上驗(yàn)證者投票同意才能進(jìn)入下一階段,能夠允許的最大拜占庭節(jié)點(diǎn)數(shù)是不超過全網(wǎng)總節(jié)點(diǎn)數(shù)的1/3。
Tendermint共識(shí)機(jī)制與物聯(lián)網(wǎng)場景的適應(yīng)度:
Tendermint 共識(shí)機(jī)制的高吞吐和低延遲提高了物聯(lián)網(wǎng)的性能,特別是通過Tendermint 實(shí)現(xiàn)的Ethermint 被認(rèn)為是物聯(lián)網(wǎng)區(qū)塊鏈結(jié)合的合適選擇[74]。相較于后面DAG 類共識(shí)機(jī)制,當(dāng)節(jié)點(diǎn)數(shù)量特別多時(shí)其交易處理速度、安全性以及可擴(kuò)展性不如IOTA以及Byteball共識(shí)機(jī)制。
如果一個(gè)有向圖從某個(gè)頂點(diǎn)出發(fā),經(jīng)過若干條邊不能夠回到原點(diǎn),則這個(gè)圖就是一個(gè)DAG,DAG 結(jié)構(gòu)是一種新型區(qū)塊鏈技術(shù)[75]。區(qū)塊鏈在物聯(lián)網(wǎng)的運(yùn)用中存在很多問題,現(xiàn)有的共識(shí)機(jī)制PoW 和PoS 等,無法適用于物聯(lián)網(wǎng)場景中,因此,提出了面向物聯(lián)網(wǎng)場景的DAG(也稱為Tangle)技術(shù)。
2.3.1 IOTA共識(shí)機(jī)制
IOTA 是針對(duì)物聯(lián)網(wǎng)場景的應(yīng)用而提出的一種新型區(qū)塊鏈技術(shù),物聯(lián)網(wǎng)中的設(shè)備可以作為區(qū)塊鏈的參與節(jié)點(diǎn)[76]。在IOTA 中,一個(gè)區(qū)塊存放一個(gè)交易,圖11 是IOTA 架構(gòu):每個(gè)新加入的交易將會(huì)被放在后面指向之前的兩個(gè)交易。相較于鏈?zhǔn)絽^(qū)塊鏈,IOTA 結(jié)構(gòu)具有較好的可擴(kuò)展性,同時(shí)能夠處理大量的交易信息,減少了共識(shí)的時(shí)間。
為了解IOTA的運(yùn)行過程,需要知道交易的權(quán)重和累積權(quán)重。3n是權(quán)重,n是非負(fù)整數(shù)。交易的累積權(quán)重是通過該交易的自身權(quán)重和其他直接或者間接驗(yàn)證這個(gè)交易的所有交易的自身權(quán)重相加求和得出的[77]。圖11中,一個(gè)字母代表一個(gè)交易,如A、B,方框內(nèi)左上角的數(shù)字是交易的累積權(quán)重,右下角的數(shù)字是交易的自身權(quán)重。交易A指向交易B和C,那么A直接驗(yàn)證了B和C;交易A、B、C、D、E、F、G最終都指向H,則交易H的累積權(quán)重的計(jì)算結(jié)果是16。
圖11 IOTA架構(gòu)Fig.11 IOTA architecture
IOTA 共識(shí)機(jī)制的工作原理:節(jié)點(diǎn)發(fā)起一個(gè)交易,需要驗(yàn)證Tangle中先前的兩個(gè)交易,并將此交易指向他們。然后,通過花費(fèi)少量的PoW 計(jì)算權(quán)重和累積權(quán)重驗(yàn)證先前的兩個(gè)交易。隨著這個(gè)交易被之后新的交易直接或者間接驗(yàn)證,當(dāng)交易的累積權(quán)重足夠大時(shí),則認(rèn)為這個(gè)交易是有效的。利用累積權(quán)重大小來驗(yàn)證交易有效性,可能會(huì)受到雙花攻擊(典型的是寄生鏈攻擊)。為此,引入了馬爾可夫蒙特卡洛(Markov Chain Monte Carlo,MCMC)驗(yàn)證算法,節(jié)點(diǎn)先在累積權(quán)重r和2r之間隨機(jī)選擇m個(gè)交易,然后以式(3)[77]所示的概率向尖端交易(tips)進(jìn)行離散時(shí)間無規(guī)行走到tips,找到既定的目標(biāo):
其中:α>0,j→i代表由i轉(zhuǎn)到j(luò)。
IOTA共識(shí)機(jī)制的優(yōu)點(diǎn):
1)高吞吐量。在DAG 結(jié)構(gòu)下,只需要花費(fèi)少量的PoW來驗(yàn)證先前的兩筆交易,從而能夠并發(fā)處理大量的交易,減少了生成區(qū)塊的時(shí)間。
2)可擴(kuò)展性好。隨著交易數(shù)量的不斷增多,IOTA 的處理速度和擴(kuò)展能力得到相應(yīng)的提高;而且,交易量越大,系統(tǒng)變得越穩(wěn)定,安全性也會(huì)得到相應(yīng)的提高。
IOTA共識(shí)機(jī)制的缺點(diǎn):
1)交易時(shí)間不確定。由于IOTA 的交易驗(yàn)證是通過計(jì)算累積權(quán)重的方式,在交易量比較少時(shí),容易出現(xiàn)交易長時(shí)間得不到確認(rèn)。
2)安全性降低。在節(jié)點(diǎn)數(shù)過少時(shí),容易遭受雙花攻擊,系統(tǒng)安全性不如鏈?zhǔn)浇Y(jié)構(gòu)。
IOTA共識(shí)機(jī)制與物聯(lián)網(wǎng)場景的適應(yīng)度:
IOTA 共識(shí)機(jī)制應(yīng)用于物聯(lián)網(wǎng)需要解決一個(gè)技術(shù)挑戰(zhàn):由于物聯(lián)網(wǎng)設(shè)備具有分布范圍廣的特征,當(dāng)在一定范圍內(nèi)物聯(lián)網(wǎng)設(shè)備比較少而且分散時(shí),需要解決IOTA共識(shí)機(jī)制本身存在的交易時(shí)間不確認(rèn)、容易遭受雙花攻擊的難題。但是相比前面介紹的幾種共識(shí)算法,隨著物聯(lián)網(wǎng)設(shè)備呈指數(shù)級(jí)的增長,它在速度、安全、可擴(kuò)展性方面顯然更好,未來會(huì)適用于物聯(lián)網(wǎng)場景中。
2.3.2 Byteball共識(shí)機(jī)制
Byteball 是一個(gè)去中心化的系統(tǒng),它可以對(duì)貨幣、股權(quán)等數(shù)據(jù)進(jìn)行防篡改存儲(chǔ)[78]。單元包括要存儲(chǔ)的交易信息,他們之間相互鏈接,每一個(gè)新加入的單元直接或間接地被越來越多的包含哈希值的后續(xù)單元所確認(rèn)。如圖12 所示,頂點(diǎn)表示單元,一旦一個(gè)單元被確認(rèn),新的單元隨之而來。
圖12 Byteball結(jié)構(gòu)Fig.12 Byteball Structure
文獻(xiàn)[78]介紹了Byteball共識(shí)算法的原理:在Byteball中,引入12 個(gè)見證人,見證人用來記錄存儲(chǔ)單元。當(dāng)用戶發(fā)起交易時(shí),由一個(gè)頂端單元開始通過選擇算法選擇一個(gè)最優(yōu)父單元,直到構(gòu)成一條到達(dá)創(chuàng)世單元的最佳路徑稱為主鏈。DAG的每個(gè)頂端單元直接或者間接到達(dá)主鏈,把主鏈編號(hào)為MCI,創(chuàng)世單元的MCI設(shè)置為0,向后逐漸加1,主鏈上最先直接或者間接單元的MCI是不在主鏈上的單元的MCI。在發(fā)生雙重支付時(shí),MCI小的存儲(chǔ)單元被認(rèn)為是有效的。
Byteball共識(shí)機(jī)制的優(yōu)點(diǎn):
1)安全性強(qiáng)。Byteball 共識(shí)機(jī)制引入了見證人的方式,并且通過選擇算法來創(chuàng)建主鏈,提高了系統(tǒng)的安全性。
2)可擴(kuò)展性好。與IOTA 共識(shí)機(jī)制類似,交易量越多,系統(tǒng)越穩(wěn)定。
Byteball共識(shí)機(jī)制的缺點(diǎn):
1)當(dāng)存儲(chǔ)單元數(shù)量比較少時(shí),可能會(huì)發(fā)生雙花問題,因?yàn)榇鎯?chǔ)單元太少,使一些交易長期得不到確認(rèn),此時(shí)攻擊者可以發(fā)起交易,制造另一條鏈,并且讓其成為主鏈;而且,交易確認(rèn)的時(shí)間也是不確定的。
2)犧牲了去中心化程度。由于引入了12個(gè)見證人,沒有實(shí)現(xiàn)完全去中心化。
3)交易時(shí)間不確定。當(dāng)系統(tǒng)中交易量較少時(shí),會(huì)有一些交易長期得不到后續(xù)單元的確認(rèn)。
Byteball共識(shí)機(jī)制與物聯(lián)網(wǎng)場景的適應(yīng)度:
Byteball 和IOTA 共識(shí)機(jī)制相較于鏈?zhǔn)綌?shù)據(jù)結(jié)構(gòu)來說,能夠并發(fā)處理大量的交易,同時(shí)提高了擴(kuò)展能力,更適用于物聯(lián)網(wǎng)場景中。
2.3.3 DAG類共識(shí)機(jī)制分析對(duì)比
IOTA 和Byteball共識(shí)機(jī)制,有很多的共性,同時(shí)也會(huì)有很多的區(qū)別。表1 是DAG 類共識(shí)機(jī)制對(duì)比,Byteball 與IOTA 的主要區(qū)別是:①Byteball 比IOTA 多了交易費(fèi)用;②IOTA 相較于Byteball 用到了少量的PoW 來進(jìn)行驗(yàn)證工作;③IOTA 新發(fā)起的交易指向先前的兩個(gè)交易,而Byteball能夠指向先前的三個(gè)交易。
表1 DAG類共識(shí)機(jī)制對(duì)比Tab.1 Comparison of DAG consensus mechanisms
研究區(qū)塊鏈共識(shí)機(jī)制,需要對(duì)影響區(qū)塊鏈共識(shí)機(jī)制的因素進(jìn)行分析并做一些相應(yīng)的比較。其影響因素如下:
1)去中心化程度。去中心化程度決定了參與共識(shí)節(jié)點(diǎn)的權(quán)力是掌握在少數(shù)人手里還是多數(shù)人手里。
2)交易處理速度。也叫交易吞吐量,是指在給定的時(shí)間段內(nèi)處理交易的數(shù)量。
3)交易確認(rèn)延遲是指交易從發(fā)起到生成區(qū)塊的時(shí)間也就是交易的響應(yīng)時(shí)間[79]。
4)安全性。共識(shí)機(jī)制中的安全性指的是在共識(shí)過程中,其所能夠承受惡意節(jié)點(diǎn)發(fā)起任意行為攻擊的能力。
5)可擴(kuò)展性是指網(wǎng)絡(luò)節(jié)點(diǎn)處理交易的能力,評(píng)價(jià)可擴(kuò)展性好壞的標(biāo)準(zhǔn)是隨著交易數(shù)量的增加,系統(tǒng)中節(jié)點(diǎn)處理交易的能力能否得到相應(yīng)的提高[80]。
表2 列出了各種共識(shí)機(jī)制的算法種類、提出年份、吞吐量、響應(yīng)時(shí)間、容錯(cuò)性和應(yīng)用平臺(tái)。表3 展示了各種共識(shí)機(jī)制在是否容易分叉、交易處理速度、交易確認(rèn)延遲、安全性以及可擴(kuò)展性上的優(yōu)缺點(diǎn)。通過表2 和表3 直觀的對(duì)各種共識(shí)機(jī)制進(jìn)行對(duì)比,分析面向物聯(lián)網(wǎng)應(yīng)用的共識(shí)機(jī)制。
PoW 共識(shí)機(jī)制采用公有鏈,每個(gè)節(jié)點(diǎn)都可以參與,因而去中心化程度高。表3 表明PoW 共識(shí)機(jī)制容易產(chǎn)生分叉,進(jìn)而如果攻擊者掌握了全網(wǎng)51%的算力,會(huì)發(fā)起51%攻擊;并且,PoW 共識(shí)機(jī)制也會(huì)遭受其他類型的攻擊,如日蝕攻擊、自私挖礦攻擊等。通常情況下,PoW 共識(shí)機(jī)制產(chǎn)生一個(gè)區(qū)塊需要花費(fèi)10 min,會(huì)帶來高延遲問題,而對(duì)于本身要求低延遲的物聯(lián)網(wǎng)設(shè)備顯然是不適用的。
相較于PoW 共識(shí)機(jī)制,PoS共識(shí)機(jī)制的出塊時(shí)間為1 min,而且依靠幣齡來產(chǎn)生區(qū)塊,不需要消耗大量的能量;但由于PoS 共識(shí)機(jī)制容易遭受51%攻擊以及無利害關(guān)系問題攻擊,使系統(tǒng)安全性得不到保障。PoS 共識(shí)機(jī)制雖然提高了交易處理的速度,但是在安全性和可擴(kuò)展性上沒有任何的優(yōu)勢(shì),不能解決物聯(lián)網(wǎng)面臨的現(xiàn)狀問題。
DPoS 共識(shí)機(jī)制交易處理速度比PoW 和PoS 更快,不容易產(chǎn)生分叉,安全性比PoW 和PoS更好;缺點(diǎn)是只有少量的代表節(jié)點(diǎn)參與共識(shí)過程,而物聯(lián)網(wǎng)設(shè)備具有分布范圍廣的特點(diǎn),節(jié)點(diǎn)太少不具有代表性。因此,DPoS 共識(shí)機(jī)制不能夠直接應(yīng)用于物聯(lián)網(wǎng)設(shè)備,只能通過改進(jìn)DPoS共識(shí)機(jī)制使其適用于物聯(lián)網(wǎng)設(shè)備。
PoA 共識(shí)機(jī)制具有交易處理速度快、共識(shí)時(shí)間短、擴(kuò)展性好的特點(diǎn);但算法實(shí)現(xiàn)起來比較困難,而且還存在隱私泄露問題,給物聯(lián)網(wǎng)與區(qū)塊鏈的結(jié)合帶來困擾。
PoC 共識(shí)機(jī)制不容易產(chǎn)生分叉,其安全性高;但是由于可擴(kuò)展性比較差很難適合數(shù)量不斷增加的物聯(lián)網(wǎng)設(shè)備。
Ouroboros 是一個(gè)可證明其安全性高的共識(shí)機(jī)制,其交易處理速度比PoW 和PoS 共識(shí)機(jī)制快;但由于后期去中心化程度的降低,會(huì)影響其在物聯(lián)網(wǎng)場景中的使用。
PBFT共識(shí)機(jī)制的優(yōu)點(diǎn)是不容易產(chǎn)生分叉,交易處理速度快。但是,這種共識(shí)機(jī)制容易遭受DoS 的攻擊;而且,PBFT 共識(shí)機(jī)制只能容忍不超過1/3的拜占庭節(jié)點(diǎn),隨著節(jié)點(diǎn)數(shù)量的增加,在安全性上得不到保障,不能解決物聯(lián)網(wǎng)的安全問題。
Algorand 共識(shí)機(jī)制具有交易處理速度快的優(yōu)點(diǎn)。但是,容易遭受系統(tǒng)中有占2/3 資金以上的不誠實(shí)節(jié)點(diǎn)攻擊;而且,當(dāng)物聯(lián)網(wǎng)設(shè)備的數(shù)量特別多時(shí),可擴(kuò)展性方面存在不足,會(huì)給物聯(lián)網(wǎng)和區(qū)塊鏈的結(jié)合帶來麻煩。
Tendermint 共識(shí)機(jī)制具有低延遲和可擴(kuò)展性好的優(yōu)點(diǎn),對(duì)于物聯(lián)網(wǎng)區(qū)塊鏈結(jié)合來說是適合的。但是,如果故障節(jié)點(diǎn)或惡意節(jié)點(diǎn)數(shù)超過1/3以上時(shí),安全性則得不到保證;而且,隨著物聯(lián)網(wǎng)設(shè)備的大量增多,在交易處理速度和可擴(kuò)展性上不如IOTA和Byteball共識(shí)機(jī)制。
IOTA 和Byteball 共識(shí)機(jī)制是一種新型加密技術(shù),其在交易吞吐量和可擴(kuò)展性上比傳統(tǒng)的區(qū)塊鏈共識(shí)機(jī)制有了很大的改進(jìn);但是在交易數(shù)量過少的情況下,IOTA 和Byteball的安全性低,而且容易發(fā)生交易長時(shí)間得不到確認(rèn)等問題。
根據(jù)共識(shí)機(jī)制在去中心化程度、交易處理速度、交易確認(rèn)延遲、安全性和可擴(kuò)展性方面對(duì)物聯(lián)網(wǎng)產(chǎn)生的影響,要因地制宜地選擇適用于物聯(lián)網(wǎng)場景的共識(shí)機(jī)制。在大多數(shù)情況下,PoW、PoS 共識(shí)機(jī)制不適合于物聯(lián)網(wǎng)場景中;DPoS 由于節(jié)點(diǎn)數(shù)量太少,不適用于分布范圍廣的物聯(lián)網(wǎng)體系;PBFT 在安全性要求低的物聯(lián)網(wǎng)場景中可以使用。隨著物聯(lián)網(wǎng)設(shè)備的增多,PoC、Ouroboros、Algorand、Tendermint、POA 和PoC 在吞吐量和可擴(kuò)展性上不如IOTA 和Byteball,IOTA 和Byteball 所具有的特點(diǎn)更適用于物聯(lián)網(wǎng)場景。文獻(xiàn)[81]研究了PoW、PoS 共識(shí)機(jī)制和利用DAG 技術(shù)的共識(shí)機(jī)制,根據(jù)生成區(qū)塊的平均時(shí)間、交易確認(rèn)的延遲、每秒處理交易的數(shù)量(Transaction Per Second,TPS)和確認(rèn)失敗的概率評(píng)估共識(shí)算法的性能,結(jié)果表明PoW 和PoS 對(duì)網(wǎng)絡(luò)資源的變化更敏感,而DAG 對(duì)網(wǎng)絡(luò)負(fù)載條件更為敏感。
表2 共識(shí)機(jī)制對(duì)比Tab.2 Comparison of consensus mechanisms
表3 共識(shí)機(jī)制優(yōu)缺點(diǎn)對(duì)比Tab.3 Comparison of advantages and disadvantages of consensus mechanisms
物聯(lián)網(wǎng)技術(shù)實(shí)現(xiàn)了物與物之間的互聯(lián),推動(dòng)了生產(chǎn)力的發(fā)展。但是,物聯(lián)網(wǎng)存在中心機(jī)構(gòu)運(yùn)行成本高、可擴(kuò)展性差和安全性低等缺陷,限制了物聯(lián)網(wǎng)的發(fā)展。而區(qū)塊鏈具有去中心化、開放性、共識(shí)機(jī)制和不可篡改等特點(diǎn),剛好彌補(bǔ)了物聯(lián)網(wǎng)的缺陷。在區(qū)塊鏈架構(gòu)中,物聯(lián)網(wǎng)設(shè)備利用區(qū)塊鏈的特點(diǎn),實(shí)現(xiàn)數(shù)據(jù)的安全存儲(chǔ)[82],將區(qū)塊鏈應(yīng)用于物聯(lián)網(wǎng)場景中,被認(rèn)為是區(qū)塊鏈3.0 版本[83]。文獻(xiàn)[84]提出物聯(lián)網(wǎng)能夠?qū)崿F(xiàn)物與物之間相互通信,但在數(shù)據(jù)隱私和安全方面還存在缺陷,利用區(qū)塊鏈去中心化的特點(diǎn),提供可靠的數(shù)據(jù)共享環(huán)境,實(shí)現(xiàn)物聯(lián)網(wǎng)系統(tǒng)的透明性、安全性和隱私性等。共識(shí)機(jī)制是區(qū)塊鏈技術(shù)的核心要素,將影響物聯(lián)網(wǎng)的發(fā)展。文獻(xiàn)[85]針對(duì)物聯(lián)網(wǎng)面臨的設(shè)備數(shù)量多、結(jié)構(gòu)復(fù)雜、計(jì)算能力弱等問題,提出利用區(qū)塊鏈的去中心化和共識(shí)機(jī)制的特點(diǎn),實(shí)現(xiàn)物聯(lián)網(wǎng)與區(qū)塊鏈的有效結(jié)合。本文通過對(duì)各種共識(shí)機(jī)制的優(yōu)缺點(diǎn)進(jìn)行對(duì)比,發(fā)現(xiàn)當(dāng)需要處理大量交易時(shí),IOTA 和Byteball 比其他共識(shí)機(jī)制在交易處理速度和可擴(kuò)展性等方面更有優(yōu)勢(shì),更適用于物聯(lián)網(wǎng)場景中。雖然IOTA和Byteball已經(jīng)開始應(yīng)用于物聯(lián)網(wǎng)場景,但是仍然存在很多的問題:
1)去中心化程度不徹底。IOTA 共識(shí)機(jī)制采用協(xié)調(diào)器來控制和處理信息,而Byteball共識(shí)機(jī)制引入見證人來維護(hù)網(wǎng)絡(luò)信息,因此他們都沒有實(shí)現(xiàn)完全去中心化。
2)安全問題。當(dāng)交易數(shù)量較少時(shí),IOTA 和Byteball 共識(shí)機(jī)制容易遭受雙花攻擊,而且交易可能長時(shí)間得不到確認(rèn),將他們應(yīng)用于物聯(lián)網(wǎng)場景,需要解決這一問題。
3)信息存儲(chǔ)。由于物聯(lián)網(wǎng)設(shè)備的存儲(chǔ)能力有限,在IOTA和Byteball 共識(shí)機(jī)制應(yīng)用于物聯(lián)網(wǎng)設(shè)備時(shí),需要解決存儲(chǔ)問題。本文通過分析區(qū)塊鏈共識(shí)機(jī)制的工作原理與優(yōu)缺點(diǎn)以及與物聯(lián)網(wǎng)的適應(yīng)度,希望給未來物聯(lián)網(wǎng)區(qū)塊鏈的融合帶來一些啟示。