?

面向物聯網的區塊鏈共識機制綜述

2021-04-20 14:06田志宏趙金東
計算機應用 2021年4期
關鍵詞:可擴展性共識區塊

田志宏,趙金東

(煙臺大學計算機與控制工程學院,山東煙臺 264005)

0 引言

近年來,物聯網(Internet of Things,IoT)設備呈指數級增長,物聯網以傳統互聯網、移動網絡、傳感器網絡為基礎,擴展了新的互聯網概念,實現萬物互聯互通,使人類社會更加高效、智能化[1-2]。但是,物聯網設備資源有限,且容易受到安全攻擊[3]。伴隨著區塊鏈在對等網絡(Peer to Peer,P2P)傳輸、分布式存儲、共識機制、密碼學、智能合約等技術方面的不斷運用,將區塊鏈核心技術之一的共識機制應用于物聯網場景中,能夠解決物聯網面臨的中心機構運行成本高、可擴展性差、安全性存在隱患等問題,提高物聯網的性能和安全性[4]。

傳統的共識機制需要競爭記賬權,會造成資源大量浪費的現象,不完全適用于資源有限的物聯網設備;此外,隨著物聯網設備的不斷增加,交易的處理速度和可擴展性也需要得到提高。而且,區塊鏈分叉[5]也會導致雙花攻擊。雙花攻擊指的是攻擊者通過不承認最近的某個交易,并在這個交易之前創建了一條更長的區塊鏈,從而實現一筆交易被花費了兩次[6]。為了解決分叉問題,區塊鏈通常采用最長鏈原則,但是這樣會造成交易高延遲問題[7]。因此研究各種共識機制優缺點,對物聯網和區塊鏈的結合具有重要的意義。

目前,出現了很多種共識機制,有的通過算力競爭來實現,如工作量證明(Proof of Work,PoW)共識機制;有的使用投票選舉來實現,如授權股權證明(Delegated Proof of Stake,DPoS)共識機制;還有的利用燃燒硬幣來實現,如燃燒證明(Proof of Burn,PoB)共識機制以及其他實現形式的共識機制等。這些共識機制各有各的優勢,并且都在相應的場景中得到了運用。但是物聯網具有節點密集、資源受限、容量不足等特征,現有共識機制能否直接在物聯網場景中得以實現,仍待研究。本文對區塊鏈技術現有的協議、算法和技術進行分析和對比,研究各種共識機制在物聯網環境中使用時存在的問題。

本文的主要工作如下:

1)對面向物聯網的共識機制進行了分類,分別討論了各類共識機制的工作原理和優缺點;

2)研究了共識機制在去中心化程度、交易處理速度、交易確認延遲、安全性和可擴展性方面與物聯網的適應度;

3)討論了面向物聯網的區塊鏈共識機制現有的挑戰,把握了今后研究工作的方向。

1 物聯網區塊鏈

1.1 區塊鏈

區塊鏈的概念最開始是由一個筆名為“中本聰”的學者于2008 年發表的論文“Bitcoin:a peer-to-peer electronic cash system”中提出的[8]。區塊鏈中存放了大量的交易信息,相當于一個數據庫[9-12]。文獻[13]提出區塊鏈是一種按照時間順序將區塊從后向前依次鏈接起來的數據結構,利用非對稱加密技術來保證不可篡改和不可偽造的去中心化共享賬本。圖1 是區塊鏈結構圖,其中a≥0(當a=0 時表示創世區塊),區塊由區塊頭和區塊體構成,區塊頭包括父區塊哈希值、版本號、時間戳、難度目標、nonce值以及merkle根,區塊體保存著大量的交易信息。

圖1 區塊鏈結構Fig.1 Blockchain structure

區塊鏈具有去中心化、開放性、共識機制和不可篡改等特點,確保了交易信息的正確性、安全性。

首先,區塊鏈去中心化的特點使每個節點都有權共享交易信息并對信息的正確性進行驗證;其次,區塊鏈開放性的特點是每個節點在任何時間都可以加入或者退出;再次,區塊鏈共識機制的特點可以使沒有聯系的節點,直接依靠共識機制來達成一致性協議;最后,區塊鏈不可篡改的特點是基于哈希算法來保證交易信息不會被更改[14]。此外,根據應用場景和開放程度,區塊鏈可以被劃分為公有鏈、聯盟鏈和私有鏈[15-16]。

1.1.1 比特幣的運行機制(區塊鏈1.0版本)

比特幣是區塊鏈1.0 版本的代表,它是一種數字貨幣,產生于分布式網絡結構,區塊鏈1.0 版本的系統架構如圖2所示。

圖2 區塊鏈1.0版本架構Fig.2 Blockchain version 1.0 architecture

在比特幣系統中,每個節點通過P2P 網絡傳輸的方式完成交易信息的共享,并且節點可以匿名,保證了網絡中交易信息的同步性。此外,為了防止雙花攻擊,系統采取給交易信息加上時間戳選取計算量最多的鏈為主鏈,維護其安全性。圖3描述了比特幣系統的運行流程[17]:

1)用戶發起一筆新的交易,交易信息在全網中不斷被廣播;

2)每個節點對接收到的交易進行驗證,如果該交易被驗證為有效,則將交易存儲在交易池中;

3)各節點通過挖礦來產生區塊,礦工們需要通過工作量證明來完成哈希計算;

4)當一個節點挖出一個區塊,網絡中的其他節點將確認該區塊的有效性,只需要花費少量的PoW計算即可;

5)如果該區塊被確認為有效,則將其鏈接到區塊鏈中;

6)成功完成一筆交易。

1.1.2 智能合約(區塊鏈2.0版本)

智能合約這一概念最先由Nick Szabo 提出,是一套以數字方式定義并被實現的承諾[18]。區塊鏈去中心化和不可篡改的特點為智能合約賦予了新的涵義,使智能合約能夠運行在安全可靠的環境中,圖4 是區塊鏈2.0 版本的基礎架構[13,19]。共識層包含各種共識機制,網絡層中P2P 網絡負責信息的廣播,數據層存放數據信息、時間戳等,激勵層包含以激勵的方式獲得收益所采用的機制[20-22],合約層主要是智能合約,應用層是區塊鏈的應用場景。Ethereum[23]和Hyperledger[24]等平臺利用智能合約,有效地解決了比特幣系統存在的交易處理速度慢和高延遲的問題。

圖3 比特幣系統運行流程Fig.3 Operation flow of bitcoin system

圖4 區塊鏈2.0版本架構Fig.4 Blockchain version 2.0 architecture

1.2 共識機制

去中心化是區塊鏈中的一個核心要素,每個節點的權力都是一樣的,為了保證各個節點之間相互協作需要一套算法,這套算法被稱為共識機制[25-26]。共識機制的研究起源比較早。1982 年,Lamport、Shostak 和Pease 提出了在遭受拜占庭節點的情況下如何達成一致性協議的拜占庭將軍問題,推動了共識機制的發展[27-28]。

區塊鏈核心技術共識機制首先應用于比特幣中,隨著區塊鏈技術的不斷發展與完善,共識機制也越來越成熟。常見的共識機制有工作量證明、權益證明(Proof of Stake,PoS)、授權股權證明、權威證明(Proof of Authority,PoA)、燃燒證明、貢獻證明(Proof of Contribution,PoC)、存在證明(Proof of Existence,PoE)[29]、數據可恢復證明(Proof of Retrievability,PoR)[30]、存儲證明(Proof of Storage)[31]、拜占庭容錯(Byzantine Fault Tolerance,BFT)[32]、實用拜占庭容錯(Practical BFT,PBFT)、簡化拜占庭容錯(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]等。

1.3 物聯網

物聯網通過連接互聯網和信息傳感設備,實現智能化控制和處理信息[40]。圖5 是物聯網層次結構,自底向上可分為三層:感知層、網絡層和應用層。感知層能夠收集和處理信息;網絡層通過網絡傳輸完成信息交互;應用層直接聯系具體業務,如智慧城市[40]、智慧工廠[41]、智能家居[42]等。

物聯網通常包括資源約束的嵌入式設備,如射頻識別(Radio Frequency IDentification,RFID)和傳感器節點[43]。傳感器節點作為物聯網的重要組成部分,在實際應用中會面臨一些技術挑戰[44-46]:第一,由于傳感器節點數量多,分布范圍廣,難以對節點進行集中的管理和維護;第二,由于體積小、功耗低、成本低,傳感器節點的能量、計算、存儲、通信能力受到限制,影響了網絡的擴展能力;第三,由于大多數傳感器節點都部署在無人值守的區域,容易出現數據被篡改或遭受攻擊,安全性得不到保障;第四,傳感器節點容易損壞,一旦出現問題,就無法判斷是軟件問題、硬件問題還是系統故障,這是由于節點存儲空間有限,在節點端很難存儲過多的調試信息,沒有調試信息就不能夠找到錯誤原因;第五,由于傳感器節點在共享信息時,信息容易被泄露,面臨隱私泄露威脅。

圖5 物聯網層次結構Fig.5 Hierarchical structure of internet of things

區塊鏈擁有安全可靠的加密技術,并且憑借去中心化、共識機制、不可篡改的特性,能夠改善物聯網的安全和可擴展性等問題[47]。區塊鏈去中心化的特點使物聯網設備不需要中心服務器直接進行信息交互,解決中心機構運行成本高的問題。區塊鏈共識機制的特點能夠使物聯網設備之間保持信任,增強網絡的可靠性[48]。區塊鏈不可篡改的特點使得數據寫入區塊鏈就難以更改,實現物聯網設備中數據的追本溯源[49]。文獻[50]提出利用區塊鏈去中心化的特點解決物聯網集中訪問控制的問題,實現了去中心化訪問控制系統。文獻[51]為解決分布式物聯網內的設備之間的信任問題,借助區塊鏈共識機制,提出了一種適用于分布式物聯網的信任管理方法,實現了數據共享與數據安全。將區塊鏈共識機制應用于物聯網中,在物聯網設備之間實現共識過程,將增強物聯網的性能和安全性。

接下來,將詳細討論面向物聯網的各種共識機制,并對常見的共識機制進行分類研究,分析共識機制是否適用于物聯網場景中。

2 共識算法

物聯網設備具有數量多、分布范圍廣、功耗低、計算能力弱和安全存在隱患的特征,因此分析區塊鏈共識機制的優缺點,對區塊鏈技術能否應用于物聯網場景中具有至關重要的作用。隨著區塊鏈技術的發展,共識機制的數量與日俱增。本章將介紹在區塊鏈網絡中廣泛使用的共識機制,并討論它們的優缺點。

根據生成新區塊的方式,可以把共識機制劃分為證明類、拜占庭類[7]和有向無環圖(Directed Acyclic Graph,DAG)類。下面將介紹各類共識機制(PoW、PoS、DPoS、PoA、PoC、Ouroboros、PBFT、Algorand、Tendermint、IOTA、Byteball),并對比分析共識機制在物聯網場景中的適應度。

2.1 證明類共識機制

證明類共識需要在共識過程中證明自己滿足的特定條件,一般表示為“Proof of X”[52]。

2.1.1 PoW共識機制

PoW 共識機制,即工作量證明共識機制。其思想最早出現在1992 年由Dwork 和Naor 發表的論文中,被用來防止垃圾郵件問題[53]。比特幣成功利用PoW 共識機制在沒有中央機構的情況下,使全網每個獨立的節點就交易信息的正確性達成一致,實現節點之間的相互信任,同時防止惡意節點制造假身份發起女巫攻擊[54]。

圖6 PoW共識機制工作原理Fig.6 Working principle of PoW consensus mechanism

難度目標值的計算公式[55]為:

其中:newtarget表示生產新區塊的難度目標值;oldtarget表示生產上一個區塊的難度目標值;totaltime代表生產前2 016 個區塊所使用的時間。PoW 難度目標值調整機制:newtarget變大,生產區塊所使用的時間會縮短;newtarget變小,生產區塊所使用的時間會變長。

SHA256哈希函數:交易信息被編碼為固定長度的由字母和數字組成的字符串后寫入區塊鏈[13]。哈希函數滿足三個特性[17]:1)輸入長度不同,但是輸出長度卻是不變的。2)由輸出推導出輸入基本上是不可能發生的。對于給定的b,找到一個a,使Hash(a)=b,幾乎不可能。3)輸入不同,要產生相同的輸出是很難的。給定不相同的a和b,使Hash(a)=Hash(b)基本上不可能。

數字簽名:共識機制通過數字簽名的方式來核對發送者的身份,驗證交易信息在傳輸過程中沒有被篡改過,保證交易信息的完整性。數字簽名的算法流程[17]如下:1)密鑰生成。首先對交易信息進行加密,并且使用橢圓曲線密碼算法來產生公鑰和私鑰。2)簽名算法。接收者使用私鑰對接收到的消息進行簽名,并且廣播出去。3)驗證算法。對發送者的身份進行確認,判斷身份是否正確。

PoW 共識機制的通信復雜度:通信復雜度是指共識過程中各個節點為了達成一致所需要的通信量。由于工作量證明采用哈希算法,通過尋找nonce值,重復計算區塊頭信息,礦工之間不需要通信,只有在生成區塊后才在全網進行廣播,其他節點驗證區塊有效性。因此,PoW 共識機制的通信復雜度為O(n)。

PoW共識機制的優點:

1)去中心化程度高。每個節點享有同等參與的權力,并且對產生的新區塊進行驗證工作。

2)安全性高?;谧铋L鏈原則的PoW 共識機制,產生區塊需要犧牲大量的算力,作惡成本高,避免雙花攻擊。

3)算法簡單,容易實現。生成和驗證區塊是通過求解哈希函數來解決一個純粹的數學問題[56]。

PoW共識機制的缺點:

1)高延遲。生成一個區塊需要花費10 min,使得區塊的確認時間長。

2)可擴展性差。隨著交易數量的增加,處理交易的能力有限。

3)成本高。由于挖礦是一個不斷進行哈希計算的過程,要以耗費大量的算力為代價,浪費資源。

4)需要特殊的硬件設備,而且對帶寬的要求較高。

PoW共識機制與物聯網場景的適應度:

PoW 共識機制應用于物聯網場景中,受到四個因素限制:一是,挖礦需要消耗大量的算力資源,而物聯網設備由于計算能力弱不適合成為礦工節點[2];二是,完成共識過程需要消耗大量的能量,而物聯網設備具有低功耗的特征,而且大部分物聯網終端采用電池供電壽命有限,不能滿足能量的供應;三是,由于哈希函數求解的復雜性,解決此難題需要一些時間,使交易處理速度較慢,影響了出塊的時間,無法滿足物聯網應用的低延遲需求;四是,工作量證明共識機制需要特殊的硬件設備來支持以及對帶寬有一定的要求,也不適合物聯網場景。

2.1.2 PoS共識機制

PoS 共識機制,即權益證明共識機制,也稱股權證明共識機制。其想法來源于Nick Szabo[18],之后在2011 年bitconitalk論壇上被Quantum Mechanic 正式提出[57],目的是解決PoW 共識機制存在處理速度慢、高延遲以及計算量大的問題。與PoW 相比,PoS 是用權益來代替算力,權益也被稱為幣齡。該算法的中心思想是通過權益大小來獲得生成區塊的權力,權益越大的節點越有可能先生成區塊,當系統簽名一個區塊時,其幣齡被置為零[57]。由于通過幣齡來產生區塊不需要消耗大量的算力,因此能量消耗少。

PoS 算法表示:coinage=coin*time,coinage表示該筆交易的幣齡,coin和time分別表示持有貨幣的數量和時間,持有貨幣的數量越多或者時間越長,則獲得產生區塊的難度越小。

PoS共識機制的優點:

1)節省資源。生產區塊不需要進行大量的計算,消耗的能量少。

2)低延遲。節點挖礦不需要算力競爭,只需要權益證明,提高了確認效率,從交易被打包裝入區塊到生成新區塊的共識過程的確認時間大約是1 min[56]。

PoS共識機制的缺點:

1)安全性差。由于挖礦成本不高,攻擊者可以累積一定量的幣齡,發起雙花攻擊。

2)可擴展性差。由于交易數量的增加,網絡節點處理交易的能力有限。

3)激勵問題。因為PoS共識機制在共識過程中不需要消耗大量的算力,相較于PoW,其激勵程度遠遠不及。

PoS共識機制與物聯網場景的適應度:

PoS 共識機制應用于物聯網場景中,受到兩個限制:一是,PoS 共識機制生成區塊成本低,惡意節點可以發起51%攻擊,而物聯網設備本身就容易遭受攻擊,因此不太適用于物聯網場景中[58];二是,由于其可擴展性差,當物聯網設備增加時,網絡節點處理能力有限。

2.1.3 DPoS共識機制

DPoS[59]共識機制,即授權股份證明機制。DPoS 是在PoS的基礎上改進的一種共識算法,與PoW 和PoS一樣,最長的有效區塊鏈即為最佳區塊鏈。相較于PoW 和PoS 共識機制,DPoS 共識機制提高了交易處理速度,大約每3 s 產生一個區塊。全網每個擁有權益的節點都具有投票的權力,投票選出一定數量的代表節點,代表節點的職責是生產區塊并進行區塊的驗證,類似于現實中“民主集中”制度的記賬方式,可以在短時間內達成共識[60]。圖7 是DPoS 共識機制的工作流程:每個擁有權益的用戶,投票選出100 個代表,代表節點以輪流的方式在規定的時間內生產區塊,只有驗證通過,才能產生有效區塊。此外,如果某一個代表節點長時間不在線或者多次產生無效區塊,其他節點將投票選出一個新代表節點。

圖7 DPoS共識機制的工作流程Fig.7 Workflow of DPoS consensus mechanism

DPoS共識機制的優點:

1)交易確認速度快。代表節點的數量是有限的,使得短時間內達成共識,產生一個區塊僅僅需要大約3 s,相較于PoW 共識機制產生一個區塊需要10 min,明顯提高了確認速度。

2)節約資源。在系統中投票選取少量的代表節點,依靠每個代表節點輪流產生區塊,不需要消耗大量的算力資源。

3)可擴展性好。由于代表節點處理交易能力強,提高了節點處理交易的擴展能力[60]。

4)抵御雙花攻擊。因為每個代表節點都擁有生成區塊的權力,一旦一個代表節點在規定的時間沒有生成區塊或者多次產生無效的區塊,那么這個代表節點會被其他代表節點投票剔除。

DPoS共識機制的缺點:

1)將一些代表節點的權力中心化。因為多個代表節點能夠聯合起來共同作惡,影響共識過程。

2)代表節點可能遭受分布式拒絕服務攻擊(Distributed Denial of Service,DDoS)攻擊。因為攻擊者可以單獨對每一個代表節點發起攻擊,從而影響代表節點在規定的時間內生產區塊。

DPoS共識機制與物聯網場景的適應度:

目前,采用DPoS 共識機制的區塊鏈應用平臺是EOS 項目。EOS全稱EOS.IO軟件,通過構建一個類似操作系統的體系結構的應用程序,來實現去中心化應用程序的性能擴展(每秒可以處理百萬級交易)[61]。EOS 項目的物聯網應用是EOSIoT,利用智能合約和射頻識別(Radio Frequency Identification,RFID)系統傳送的電子標簽,實現EOS 鏈服務于物聯網場景中[62]。

DPoS 共識機制完全應用于物聯網場景中時會受到一些限制:DPoS 共識機制的共識過程雖然簡單高效,但是去中心化程度不高,不適用于分布范圍廣的物聯網設備;而且,當物聯網設備少時,代表性不強。對DPoS共識機制改進的物聯網區塊鏈項目是IoTEX,通過隨機選擇代表節點發布區塊,進一步增強了去中心化和可擴展性方面的能力[63]。圖8 是IoTEX架構,根鏈負責維護子鏈,子鏈直接用來連接物聯網設備,當子鏈出現故障時,根鏈繼續正常運行。

圖8 IoTEX架構Fig.8 IoTEX architecture

2.1.4 PoA共識機制

PoA 共識機制,即權威證明共識機制,在PoS 的基礎上進一步提高交易處理速度和可擴展性。該機制把節點分為普通節點和驗證者,由驗證者輪流對區塊進行簽名來判斷是否為驗證者。以下是PoA共識機制的工作原理[64]:

1)系統根據節點信譽選出一定數量的驗證者。

2)用戶或者智能合約向系統發起交易請求。

3)系統中的驗證者接收到交易請求后,將交易打包到區塊中。

4)當一個驗證者將交易打包到區塊并確認出塊,在全網進行廣播,驗證者對區塊進行簽名,檢查該節點是否為驗證者。如果該節點被確認為驗證者,則該區塊是有效的。

5)如果普通節點申請成為新的驗證者,需要在驗證者內部投票決定。驗證者將根據投票數量是否大于1/2,來對該節點進行判斷。如果得到超過1/2的投票數,該節點將成為新的驗證者。

PoA共識機制的優點:

1)交易處理速度快。由于計算能力要求低,不需要進行大量的計算,平均只需5 s即可生成區塊[65]。

2)安全性高。由于該機制需要對驗證者的身份進行確認,只有確認合格才能發布區塊,所以驗證者很難作惡,能夠有效避免雙花攻擊。

PoA共識機制的缺點:

1)去中心化程度不高。因為參與共識過程的驗證者數量較少。

2)驗證者作惡。如果驗證者在共識過程中選擇作惡,當前有效的解決方法是使用多重簽名機制。

3)隱私威脅。由于驗證者身份是公開的,個人信息容易被泄露。

PoA共識機制與物聯網場景的適應度:

PoA 共識機制適用于解決物聯網面臨的處理能力弱、能量供應有限等問題,但是應用于物聯網場景中會受到一個限制:與DPoS共識機制類似,由于去中心化程度不高,不適用于分布范圍廣的物聯網設備。

2.1.5 PoC共識機制

PoC 共識機制,即貢獻證明共識機制,最早是由CyberVein 團隊提出的,被用來解決區塊鏈中51%攻擊問題。PoC 共識機制生產區塊是通過貢獻算法選擇貢獻最多的節點,貢獻算法的計算公式[66]:

其中:MC代表貢獻值;m和n表示節點的數量;ω1影響復原的時間;ω2與節點的初始狀態有關;ω3是一個常數值;ω4是節點在線時間系數;ΔT是一個時間差;kc表示節點狀態的相關系數;T1代表共識結束時區塊的時間戳;T2代表初始的時間戳;T3代表用戶不在線的時間。

PoC共識機制的優點:

1)去中心化程度高。貢獻證明算法每次選擇貢獻最高的節點生產區塊,節點可以自由參與或者退出。

2)安全可靠。采用貢獻算法,以貢獻量最大的節點生產區塊,能夠避免雙花攻擊。

PoC共識機制的缺點:

1)可擴展性差。隨著交易量的增加,網絡節點處理交易的性能沒有改變。

PoC共識機制與物聯網場景的適應度:

PoC 共識機制雖然能夠解決物聯網存在的安全問題,但是會受到一個限制:隨著物聯網設備日益增加,擴展能力將受限。

2.1.6 Ouroboros共識機制

基于PoS 共識機制的Ouroboros,被用來防止自私挖礦等攻擊,保證系統安全性。在共識過程中,用slot 表示劃分的時間段,相鄰的幾個slot組成一個epoch。

Ouroboros共識機制的工作原理[39]:

1)獲取當前epoch 的公鑰vk、權益s和初始化隨機種子ρ的信息。

2)由隨機變量F(S,ρ,slj)計算出領導者Ui負責生產區塊的概率,其中代表第j個slot。如果超過當前slot 的時間,放棄當前的slot 進入下一個;同時,MPC 協議會產生一個隨機種子ρ作為下一個epoch 過程的函數信息。

3)當前的epoch過程完成。

Ouroboros共識機制的優點:

1)安全性高。Ouroboros對安全性做了嚴格的數學論證,提出了一種新的激勵機制,讓誠實節點的行為是一個近似納什均衡,能夠防止惡意攻擊。

2)交易處理速度快。耗費算力資源少,比PoW 和PoS 共識機制更高效,大約能夠在20 s達成共識完成出塊。

Ouroboros共識機制的缺點:

1)容易遭受DDoS 攻擊。由于Ouroboros 共識機制能夠提前知道誰是下一個出塊者,攻擊者可以單獨發起對某一個出塊者的惡意行為。

2)去中心化程度低。在Ouroboros共識機制中,由于節點進行選擇出塊候選人與代幣的分布有關,會影響去中心化程度。

Ouroboros共識機制與物聯網場景的適應度:

Ouroboros 共識機制提高了系統的安全性和交易速度,但由于后期去中心化程度的降低,不太適用于物聯網場景中。

2.2 拜占庭類共識機制

拜占庭類共識機制,是以BFT為基礎發展而來的。

2.2.1 PBFT共識機制

PBFT 共識算法,即實用拜占庭容錯共識機制,最早是由Castro 和Liskov 在1999 年發表的論文中提出的[67]。節點間為了達成共識需要處理大量的消息,作出決定所需的消息數量取決于拜占庭節點的估計數量,通常用f表示拜占庭節點數,n表示網絡中總節點數,使用n與f的關系在分布式系統中達成共識。比特幣中n>2f+1,如果拜占庭節點數超過全網總節點數的1/2,會使區塊鏈分叉,遭受雙花攻擊。而PBFT共識機制采用的是n>3f+1,只要系統中正常工作的節點能夠達到2/3 就可以達成共識。PBFT 算法由請求、預準備、準備、提交和回復五個階段組成,一次共識過程中存在一個主節點和若干個備份節點,如圖9 所示。PBFT 共識機制的工作過程[67]如下:

1)請求。網絡中的主節點接收客戶端發送的請求消息。

2)預準備。主節點接收到消息后,計算預準備消息為(預準備,v,a,b),其中v表示視圖編號,a表示序列號,b為消息的摘要。

3)準備。備份節點接收到預準備消息后,計算準備消息為(準備,v,a,b,i),i為節點編號。同時,每個節點需要檢驗消息的有效性:如果驗證有效,就會把消息寫到日志文件中。

4)提交。每個節點在收到準備消息后,會對準備消息進行驗證,只有通過驗證客戶端才能收到回復。

5)回復。若客戶端收到的相同回復消息至少是f+1,則表示請求結束;否則,重新發起請求。

圖9 PBFT算法流程Fig.9 PBFT algorithm flow

文獻[68]針對PBFT 共識過程中需要進行多次交互的問題,提出了一種基于信用的改進PBFT共識機制的高效動態的CPBFT 共識機制,該機制能夠減少交易確認的時間和節點與節點之間的通信次數,提高了系統的性能。文獻[69]提出采用多主節點的PBFT共識機制,有效地降低了拜占庭節點作為主節點的可能性。

PBFT共識機制的通信復雜度:由于算法共識過程的五個階段需要廣播大量的消息,所以PBFT共識機制的通信復雜度為O(n2)。

PBFT共識機制的優點:

1)共識效率高。在秒級內就能夠生產區塊,效率高。

PBFT共識機制的缺點:

1)適用范圍有限。PBFT 共識機制不適合采用公有鏈方式。

2)可擴展性較差。在節點數增多后,網絡節點處理能力有限。

3)容錯性低。PBFT 共識機制要求節點總數n>3f+1,即系統拜占庭節點數不超過全網節點數的1/3。

4)容易遭受拒絕服務(Denial of Service,DoS)攻擊。攻擊者發起對一筆交易的拒絕服務攻擊,使消息得不到傳播,阻礙成功完成交易。

PBFT共識機制與物聯網場景的適應度:

PBFT 共識機制應用于物聯網會受到一個限制:由于PBFT共識機制的安全性會隨著節點數量的增多而降低,而物聯網設備數量多,不能夠解決物聯網設備的安全威脅問題。

2.2.2 Algorand共識機制

Algorand 是一種將PoS 與BFT 共識機制結合的混合共識機制,解決了PoW 和PoS 共識機制中存在的交易延遲以及PBFT 共識機制的可擴展性問題[70]。該共識機制以拜占庭協議為基礎,在共識過程結束時生成一個區塊。因此,交易確認時間比PoW 和PoS 共識機制短。而且,在Algorand 中會對每個用戶分配一個權重,該權重大小是根據用戶所占用資金數量決定的,只要系統中有占2/3 資金以上的誠實節點,就可以避免雙花和分叉[43]。此外,通過隨機選擇領導者生產區塊和委員會成員投票決議(驗證區塊)的方式實現共識過程,解決了PBFT共識機制的可擴展性問題。

Algorand 共識過程[28]:①在當前輪中,計算隨機數的數值,Qi-1是隨機種子,ci-1是上一輪的領導者表示ci-1對Qi-2的數字簽名,i-1表示輪數。②利用可驗證隨機函數(Verifiable Random Function,VRF)選出領導者和委員會成員。③當前被選中的領導者運行委員會內改進的拜占庭共識算法BA★。

Algorand共識機制的優點:

1)交易處理速度快于PoW 和PoS 共識機制。Algorand 共識機制通過選取一部分節點完成共識過程,提高了交易處理的效率;而且采用改進的拜占庭共識算法BA★,以很小的通信量使委員會成員達成一致,進一步縮短了共識時間。

2)安全性高。由于采用了隨機選取領導者和委員會成員的方式,不能夠確定誰是下一個區塊的生產者,有效地抵御了攻擊者的任意行為。

Algorand共識機制的缺點:

1)沒有激勵機制。由于沒有額外的獎勵,節點不會積極參與。

2)安全隱患。網絡用戶重復使用領導者和委員會成員的私鑰,使私鑰容易被泄露;此外,當系統中惡意節點占有2/3以上資金時,惡意節點可以發起任何行為的攻擊。

3)缺少懲罰機制。在共識過程中,如果存在惡意節點,缺乏懲罰機制將不能阻止惡意行為攻擊。

Algorand共識機制與物聯網場景的適應度:

Algorand 共識機制應用于物聯網場景中會受到兩個限制:一是隱私泄露問題。由于在共識過程中會重復使用私鑰進行簽名,可能會泄露用戶信息,而物聯網設備本身就存在隱私泄露問題;二是當惡意節點掌握系統2/3 以上資金,會破壞共識過程,而物聯網設備本身就容易遭受安全威脅,這將使Algorand共識機制應用于物聯網中面臨安全挑戰。

2.2.3 Tendermint共識機制

Tendermint 共識機制是基于PoS 和PBFT 的共識機制,目的是為了解決無利害關系問題[71]。Tendermint 共識機制受PBFT SMR 算法和DLS 算法的啟發,與DLS 算法類似,Tendermint 以輪為單位進行,每輪都有一個專用的提議者(協調者或領導者),流程進入新一輪,作為正常處理的一部分[72]。Tendermint 共識算法中有兩個角色:1)驗證者,在生產區塊階段擁有投票的權力;2)提議者,提議區塊。其共識過程分為三個核心步驟和兩個特殊步驟,也稱一輪。三個核心步驟是預投票、預提交、提交,兩個特殊步驟是提議者提議區塊、生成新區塊并且區塊鏈高度加1。

圖10 是共識過程[71]:首先隨機選擇一部分節點成為驗證者,然后從驗證者中選擇一個作為提議者,當一個提議者完成對區塊的提議后,驗證者將以循環的方式產生下一個提議者。提議者開始提議一個區塊,并向全網廣播,驗證者在收到這個提議區塊后,驗證該區塊的有效性,如果是有效區塊,就進入到投票環節。在投票過程中,只有獲得2/3以上驗證者同意的票數才能進入到生產區塊的下一個階段。投票過程分為三個階段:第一階段預投票,如果有2/3 以上的驗證者投票同意則進入到第二階段預提交。同樣,在預提交階段如果有2/3以上的驗證者投票同意則進入到下一個階段提交。最終,提交產生一個新區塊,進入下一輪。此外,如果提議者沒有在設置的時間內提議區塊,系統不會等待而會生成一個空塊,進入下一階段。在預投票階段,如果沒有獲得2/3 驗證者投票的同意,系統也不會等待會生成一個空塊,進入預提交階段。在預提交階段,如果沒有獲得2/3 驗證者投票的同意,直接進入下一輪,由下一個提議者開始提議區塊??諌K不含任何交易信息,不是一個真正意義上的區塊。

圖10 Tendermint共識機制工作原理Fig.10 Working principle of Tendermint consensus mechanism

Tendermint 共識機制的通信復雜度:因為在投票階段,需要網絡中2/3 以上的驗證者投票同意才可以發送消息,所以,Algorand共識機制的通信復雜度為O(n2)。

Tendermint共識機制的優點:

1)交易處理速度快。因為只要有驗證者2/3 的投票同意就能夠生產區塊,可以在短時間內處理大量的交易,系統交易吞吐量大[73]。

2)安全性高。Tendermint共識機制對有惡意行為的節點采取罰款的方式,保證了交易信息的正確性。

Tendermint共識機制的缺點:

1)可能會遭受DoS 攻擊。由于以循環方式選擇提議者,可以針對某一個驗證者節點發起攻擊,阻止交易完成。

2)最多能容忍1/3 拜占庭節點。因為Tendermint 共識機制在共識過程中需要2/3 以上驗證者投票同意才能進入下一階段,能夠允許的最大拜占庭節點數是不超過全網總節點數的1/3。

Tendermint共識機制與物聯網場景的適應度:

Tendermint 共識機制的高吞吐和低延遲提高了物聯網的性能,特別是通過Tendermint 實現的Ethermint 被認為是物聯網區塊鏈結合的合適選擇[74]。相較于后面DAG 類共識機制,當節點數量特別多時其交易處理速度、安全性以及可擴展性不如IOTA以及Byteball共識機制。

2.3 DAG類共識機制

如果一個有向圖從某個頂點出發,經過若干條邊不能夠回到原點,則這個圖就是一個DAG,DAG 結構是一種新型區塊鏈技術[75]。區塊鏈在物聯網的運用中存在很多問題,現有的共識機制PoW 和PoS 等,無法適用于物聯網場景中,因此,提出了面向物聯網場景的DAG(也稱為Tangle)技術。

2.3.1 IOTA共識機制

IOTA 是針對物聯網場景的應用而提出的一種新型區塊鏈技術,物聯網中的設備可以作為區塊鏈的參與節點[76]。在IOTA 中,一個區塊存放一個交易,圖11 是IOTA 架構:每個新加入的交易將會被放在后面指向之前的兩個交易。相較于鏈式區塊鏈,IOTA 結構具有較好的可擴展性,同時能夠處理大量的交易信息,減少了共識的時間。

為了解IOTA的運行過程,需要知道交易的權重和累積權重。3n是權重,n是非負整數。交易的累積權重是通過該交易的自身權重和其他直接或者間接驗證這個交易的所有交易的自身權重相加求和得出的[77]。圖11中,一個字母代表一個交易,如A、B,方框內左上角的數字是交易的累積權重,右下角的數字是交易的自身權重。交易A指向交易B和C,那么A直接驗證了B和C;交易A、B、C、D、E、F、G最終都指向H,則交易H的累積權重的計算結果是16。

圖11 IOTA架構Fig.11 IOTA architecture

IOTA 共識機制的工作原理:節點發起一個交易,需要驗證Tangle中先前的兩個交易,并將此交易指向他們。然后,通過花費少量的PoW 計算權重和累積權重驗證先前的兩個交易。隨著這個交易被之后新的交易直接或者間接驗證,當交易的累積權重足夠大時,則認為這個交易是有效的。利用累積權重大小來驗證交易有效性,可能會受到雙花攻擊(典型的是寄生鏈攻擊)。為此,引入了馬爾可夫蒙特卡洛(Markov Chain Monte Carlo,MCMC)驗證算法,節點先在累積權重r和2r之間隨機選擇m個交易,然后以式(3)[77]所示的概率向尖端交易(tips)進行離散時間無規行走到tips,找到既定的目標:

其中:α>0,j→i代表由i轉到j。

IOTA共識機制的優點:

1)高吞吐量。在DAG 結構下,只需要花費少量的PoW來驗證先前的兩筆交易,從而能夠并發處理大量的交易,減少了生成區塊的時間。

2)可擴展性好。隨著交易數量的不斷增多,IOTA 的處理速度和擴展能力得到相應的提高;而且,交易量越大,系統變得越穩定,安全性也會得到相應的提高。

IOTA共識機制的缺點:

1)交易時間不確定。由于IOTA 的交易驗證是通過計算累積權重的方式,在交易量比較少時,容易出現交易長時間得不到確認。

2)安全性降低。在節點數過少時,容易遭受雙花攻擊,系統安全性不如鏈式結構。

IOTA共識機制與物聯網場景的適應度:

IOTA 共識機制應用于物聯網需要解決一個技術挑戰:由于物聯網設備具有分布范圍廣的特征,當在一定范圍內物聯網設備比較少而且分散時,需要解決IOTA共識機制本身存在的交易時間不確認、容易遭受雙花攻擊的難題。但是相比前面介紹的幾種共識算法,隨著物聯網設備呈指數級的增長,它在速度、安全、可擴展性方面顯然更好,未來會適用于物聯網場景中。

2.3.2 Byteball共識機制

Byteball 是一個去中心化的系統,它可以對貨幣、股權等數據進行防篡改存儲[78]。單元包括要存儲的交易信息,他們之間相互鏈接,每一個新加入的單元直接或間接地被越來越多的包含哈希值的后續單元所確認。如圖12 所示,頂點表示單元,一旦一個單元被確認,新的單元隨之而來。

圖12 Byteball結構Fig.12 Byteball Structure

文獻[78]介紹了Byteball共識算法的原理:在Byteball中,引入12 個見證人,見證人用來記錄存儲單元。當用戶發起交易時,由一個頂端單元開始通過選擇算法選擇一個最優父單元,直到構成一條到達創世單元的最佳路徑稱為主鏈。DAG的每個頂端單元直接或者間接到達主鏈,把主鏈編號為MCI,創世單元的MCI設置為0,向后逐漸加1,主鏈上最先直接或者間接單元的MCI是不在主鏈上的單元的MCI。在發生雙重支付時,MCI小的存儲單元被認為是有效的。

Byteball共識機制的優點:

1)安全性強。Byteball 共識機制引入了見證人的方式,并且通過選擇算法來創建主鏈,提高了系統的安全性。

2)可擴展性好。與IOTA 共識機制類似,交易量越多,系統越穩定。

Byteball共識機制的缺點:

1)當存儲單元數量比較少時,可能會發生雙花問題,因為存儲單元太少,使一些交易長期得不到確認,此時攻擊者可以發起交易,制造另一條鏈,并且讓其成為主鏈;而且,交易確認的時間也是不確定的。

2)犧牲了去中心化程度。由于引入了12個見證人,沒有實現完全去中心化。

3)交易時間不確定。當系統中交易量較少時,會有一些交易長期得不到后續單元的確認。

Byteball共識機制與物聯網場景的適應度:

Byteball 和IOTA 共識機制相較于鏈式數據結構來說,能夠并發處理大量的交易,同時提高了擴展能力,更適用于物聯網場景中。

2.3.3 DAG類共識機制分析對比

IOTA 和Byteball共識機制,有很多的共性,同時也會有很多的區別。表1 是DAG 類共識機制對比,Byteball 與IOTA 的主要區別是:①Byteball 比IOTA 多了交易費用;②IOTA 相較于Byteball 用到了少量的PoW 來進行驗證工作;③IOTA 新發起的交易指向先前的兩個交易,而Byteball能夠指向先前的三個交易。

表1 DAG類共識機制對比Tab.1 Comparison of DAG consensus mechanisms

2.4 共識機制分析

研究區塊鏈共識機制,需要對影響區塊鏈共識機制的因素進行分析并做一些相應的比較。其影響因素如下:

1)去中心化程度。去中心化程度決定了參與共識節點的權力是掌握在少數人手里還是多數人手里。

2)交易處理速度。也叫交易吞吐量,是指在給定的時間段內處理交易的數量。

3)交易確認延遲是指交易從發起到生成區塊的時間也就是交易的響應時間[79]。

4)安全性。共識機制中的安全性指的是在共識過程中,其所能夠承受惡意節點發起任意行為攻擊的能力。

5)可擴展性是指網絡節點處理交易的能力,評價可擴展性好壞的標準是隨著交易數量的增加,系統中節點處理交易的能力能否得到相應的提高[80]。

表2 列出了各種共識機制的算法種類、提出年份、吞吐量、響應時間、容錯性和應用平臺。表3 展示了各種共識機制在是否容易分叉、交易處理速度、交易確認延遲、安全性以及可擴展性上的優缺點。通過表2 和表3 直觀的對各種共識機制進行對比,分析面向物聯網應用的共識機制。

PoW 共識機制采用公有鏈,每個節點都可以參與,因而去中心化程度高。表3 表明PoW 共識機制容易產生分叉,進而如果攻擊者掌握了全網51%的算力,會發起51%攻擊;并且,PoW 共識機制也會遭受其他類型的攻擊,如日蝕攻擊、自私挖礦攻擊等。通常情況下,PoW 共識機制產生一個區塊需要花費10 min,會帶來高延遲問題,而對于本身要求低延遲的物聯網設備顯然是不適用的。

相較于PoW 共識機制,PoS共識機制的出塊時間為1 min,而且依靠幣齡來產生區塊,不需要消耗大量的能量;但由于PoS 共識機制容易遭受51%攻擊以及無利害關系問題攻擊,使系統安全性得不到保障。PoS 共識機制雖然提高了交易處理的速度,但是在安全性和可擴展性上沒有任何的優勢,不能解決物聯網面臨的現狀問題。

DPoS 共識機制交易處理速度比PoW 和PoS 更快,不容易產生分叉,安全性比PoW 和PoS更好;缺點是只有少量的代表節點參與共識過程,而物聯網設備具有分布范圍廣的特點,節點太少不具有代表性。因此,DPoS 共識機制不能夠直接應用于物聯網設備,只能通過改進DPoS共識機制使其適用于物聯網設備。

PoA 共識機制具有交易處理速度快、共識時間短、擴展性好的特點;但算法實現起來比較困難,而且還存在隱私泄露問題,給物聯網與區塊鏈的結合帶來困擾。

PoC 共識機制不容易產生分叉,其安全性高;但是由于可擴展性比較差很難適合數量不斷增加的物聯網設備。

Ouroboros 是一個可證明其安全性高的共識機制,其交易處理速度比PoW 和PoS 共識機制快;但由于后期去中心化程度的降低,會影響其在物聯網場景中的使用。

PBFT共識機制的優點是不容易產生分叉,交易處理速度快。但是,這種共識機制容易遭受DoS 的攻擊;而且,PBFT 共識機制只能容忍不超過1/3的拜占庭節點,隨著節點數量的增加,在安全性上得不到保障,不能解決物聯網的安全問題。

Algorand 共識機制具有交易處理速度快的優點。但是,容易遭受系統中有占2/3 資金以上的不誠實節點攻擊;而且,當物聯網設備的數量特別多時,可擴展性方面存在不足,會給物聯網和區塊鏈的結合帶來麻煩。

Tendermint 共識機制具有低延遲和可擴展性好的優點,對于物聯網區塊鏈結合來說是適合的。但是,如果故障節點或惡意節點數超過1/3以上時,安全性則得不到保證;而且,隨著物聯網設備的大量增多,在交易處理速度和可擴展性上不如IOTA和Byteball共識機制。

IOTA 和Byteball 共識機制是一種新型加密技術,其在交易吞吐量和可擴展性上比傳統的區塊鏈共識機制有了很大的改進;但是在交易數量過少的情況下,IOTA 和Byteball的安全性低,而且容易發生交易長時間得不到確認等問題。

根據共識機制在去中心化程度、交易處理速度、交易確認延遲、安全性和可擴展性方面對物聯網產生的影響,要因地制宜地選擇適用于物聯網場景的共識機制。在大多數情況下,PoW、PoS 共識機制不適合于物聯網場景中;DPoS 由于節點數量太少,不適用于分布范圍廣的物聯網體系;PBFT 在安全性要求低的物聯網場景中可以使用。隨著物聯網設備的增多,PoC、Ouroboros、Algorand、Tendermint、POA 和PoC 在吞吐量和可擴展性上不如IOTA 和Byteball,IOTA 和Byteball 所具有的特點更適用于物聯網場景。文獻[81]研究了PoW、PoS 共識機制和利用DAG 技術的共識機制,根據生成區塊的平均時間、交易確認的延遲、每秒處理交易的數量(Transaction Per Second,TPS)和確認失敗的概率評估共識算法的性能,結果表明PoW 和PoS 對網絡資源的變化更敏感,而DAG 對網絡負載條件更為敏感。

表2 共識機制對比Tab.2 Comparison of consensus mechanisms

表3 共識機制優缺點對比Tab.3 Comparison of advantages and disadvantages of consensus mechanisms

3 結語

物聯網技術實現了物與物之間的互聯,推動了生產力的發展。但是,物聯網存在中心機構運行成本高、可擴展性差和安全性低等缺陷,限制了物聯網的發展。而區塊鏈具有去中心化、開放性、共識機制和不可篡改等特點,剛好彌補了物聯網的缺陷。在區塊鏈架構中,物聯網設備利用區塊鏈的特點,實現數據的安全存儲[82],將區塊鏈應用于物聯網場景中,被認為是區塊鏈3.0 版本[83]。文獻[84]提出物聯網能夠實現物與物之間相互通信,但在數據隱私和安全方面還存在缺陷,利用區塊鏈去中心化的特點,提供可靠的數據共享環境,實現物聯網系統的透明性、安全性和隱私性等。共識機制是區塊鏈技術的核心要素,將影響物聯網的發展。文獻[85]針對物聯網面臨的設備數量多、結構復雜、計算能力弱等問題,提出利用區塊鏈的去中心化和共識機制的特點,實現物聯網與區塊鏈的有效結合。本文通過對各種共識機制的優缺點進行對比,發現當需要處理大量交易時,IOTA 和Byteball 比其他共識機制在交易處理速度和可擴展性等方面更有優勢,更適用于物聯網場景中。雖然IOTA和Byteball已經開始應用于物聯網場景,但是仍然存在很多的問題:

1)去中心化程度不徹底。IOTA 共識機制采用協調器來控制和處理信息,而Byteball共識機制引入見證人來維護網絡信息,因此他們都沒有實現完全去中心化。

2)安全問題。當交易數量較少時,IOTA 和Byteball 共識機制容易遭受雙花攻擊,而且交易可能長時間得不到確認,將他們應用于物聯網場景,需要解決這一問題。

3)信息存儲。由于物聯網設備的存儲能力有限,在IOTA和Byteball 共識機制應用于物聯網設備時,需要解決存儲問題。本文通過分析區塊鏈共識機制的工作原理與優缺點以及與物聯網的適應度,希望給未來物聯網區塊鏈的融合帶來一些啟示。

猜你喜歡
可擴展性共識區塊
凝聚共識:新時代人民政協的初心與使命
《紅樓夢》的數字化述評——兼及區塊鏈的啟示
商量出共識
一場區塊鏈引發的全民狂歡
區塊鏈助力企業創新
區塊鏈投機者
基于微軟技術的高可擴展性中小企業系統解決方案研究
大數據分析平臺
基于物聯網的智能停車場管理系統設計及實現
一種基于MapReduce的頻繁項集挖掘算法
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合