?

Hipro-HoneyBadgerBFT:一種基于并行運行機制的高性能異步共識算法

2024-04-26 20:08宋靜柏粉花張曉暉張弛
化工自動化及儀表 2024年2期
關鍵詞:拜占庭吞吐量實例

宋靜 柏粉花 張曉暉 張弛

基金項目:云南省教育廳科學研究基金(批準號:2022Y160)資助的課題。

作者簡介:宋靜(1997-),碩士研究生,從事區塊鏈的研究。

通訊作者:張弛(1996-),博士研究生,從事區塊鏈的研究,chizhang@stu.kust.edu.cn。

引用本文:宋靜,柏粉花,張曉暉,等.Hipro-HoneyBadgerBFT:一種基于并行運行機制的高性能異步共識算法[J].化工

自動化及儀表,2024,51(2):243-254.

DOI:10.20030/j.cnki.1000-3932.202402014

摘 要 在大數據時代,信息流通數量極速增長。區塊鏈技術非常適用于數據共享系統。目前數據共享系統搭建在區塊鏈網絡中會出現一些性能方面的瓶頸。為此,在HoneyBadgerBFT共識算法的基礎上,提出一種更加高效的異步拜占庭共識算法——Hipro-HoneyBadgerBFT。該算法在不犧牲安全性的前提下,可以降低系統的計算資源,提升算法的共識效率。實驗結果表明:Hipro-HoneyBadgerBFT共識算法的時延約為HoneyBadgerBFT共識算法時延的1%,吞吐量提升了7倍,CPU利用率則減少了54.09%。

關鍵詞 Hipro-HoneyBadgerBFT共識算法 數據共享 分布式 異步共識 聯盟區塊鏈 ACS協議解耦 ACS協議劃分

中圖分類號 TH865? ?文獻標志碼 A? ?文章編號 1000-3932(2024)02-0243-12

在今天的數據信息量爆炸時代,工業、交通、學校、醫療等領域對于數據量的需求都在極速增長。數據共享能夠實現不同用戶在不同地方使用不同設備,讀取其他用戶共享的數據,并對其進行各種操作和分析。實現數據共享,能夠使得各個單位用戶充分使用目前已有數據信息,便于數據發揮其價值,同時減少數據資料的采集、審核等重復工作量,便于工業、交通、學校、醫療等行業把工作重點放在開發應用程序和系統集成方面。在傳統的中心化數據共享工程[1]中,存在共享數據成本較高、共享效率低下、安全性不足等問題,很難滿足數據交易量日益增長的要求。由于共享數據牽涉到個人隱私、企業商業機密等安全問題,因此在數據傳輸過程中保障數據的安全性尤為重要?;谝陨蠁栴},在較多的用戶數量和海量數據共享方面,傳統的中心化數據共享平臺存在很大的局限性。因此,分布式系統的數據共享平臺被引入,更適合海量數據共享的情況。分布式系統在內部遇到各種錯誤時仍能滿足性能要求,并且對外部提供正確的服務,這種系統被稱為具有容錯能力的高可用系統[2]。將區塊鏈技術應用在數據共享系統中,能夠有效避免第三方服務提供商帶來的問題。作為一種新穎的分布式計算架構,區塊鏈具有防篡改、隱私保護和去中心化的優點。共識算法作為區塊鏈技術的核心之一,具有重大的研究意義。在數據共享系統中,共識算法的設計選擇能夠有效影響系統的安全性,以及系統達成一致的效率。異步共識算法不依賴于網絡時間假設,更貼合實際網絡情況等特性,實現數據庫的標準化融合、數據治理與可信共享,構建多方共同參與的數據共享系統。

作為一種典型的異步共識算法,HoneyBadgerBFT共識算法不依賴于對網絡的時間假設,更貼合實際網絡情況,相較于同步共識算法更有實際可用性,且其具有較高的吞吐量、較低的延遲。然而HoneyBadgerBFT共識算法采用的是傳統ACS協議進行共識操作,導致算法中各個節點之間的通信量過大,耗費了大量的通信資源,共識達成一致所需時間也較長。因此,筆者主要針對HoneyBadgerBFT共識算法中傳統的ACS協議進行研究和改進,提出Hipro-HoneyBadgerBFT共識算法,以提升數據共享系統的吞吐量、降低延遲、優化計算資源。

1 相關工作

1.1 拜占庭容錯共識算法

拜占庭容錯共識(Byzantine Fault Tolerance,BFT)算法是分布式計算領域的容錯技術[3],來源于拜占庭將軍問題。拜占庭將軍問題是描述分布式系統一致性問題抽象出的一個著名例子。由于硬件錯誤、網絡堵塞中斷或受到攻擊等原因,導致網絡出現不可預料的行為,即典型的拜占庭將軍問題[4]。在拜占庭將軍問題被提出來之后,有很多共識算法被陸續提出,這些共識算法被統稱為拜占庭容錯共識算法。

拜占庭容錯系統是一個擁有n臺節點的系統,在該系統中,有故障的節點均被稱為拜占庭節點,運行正常的節點則是非拜占庭節點。在拜占庭容錯系統中,由于無法分辨某個消息是否來自拜占庭節點,因此單個消息是不可信的,只能相信大多數投票機制的消息。這就意味著即使拜占庭容錯系統中的一些節點出現錯誤,該系統也可以繼續正常運行。

拜占庭共識算法支持在具有拜占庭節點的分布式系統中運行的客戶端-服務器應用程序。其正常操作包括3個階段[5]:第1階段為預準備階段,主節點向所有節點廣播一條預準備消息,其他節點驗證該消息,若驗證通過就向其他節點廣播準備消息;第2階段為準備階段,每個節點收到不同節點與該消息匹配的準備消息,會向其他節點廣播提交消息;第3階段為提交階段,當節點接收到其他2f個節點提交的消息后,提交階段結束,所有節點向服務器提交響應。

由于系統需要支撐大量用戶進行海量數據交易操作,對數據共享系統的響應及時性、吞吐量和存儲量的要求非常高。目前常見的兩類共識算法是競爭類共識算法和投票類共識算法。競爭類共識算法中典型的有工作量證明共識算法(Proof of Work,PoW)[6],達成共識需要節點耗費大量計算資源去解決哈希算法;投票類共識算法中典型的有復制技術的實用拜占庭容錯共識算法(Practical Byzantine Fault Tolerance,PBFT)[7]中,各個節點通信過程需要耗費大量通信資源才能達成共識,保持各節點一致性。競爭類共識算法和投票類共識算法兩類共識機制都有各自的弊端,導致區塊鏈技術應用在數據共享系統中出現瓶頸。

區塊鏈中的共識算法是提升性能表現的關鍵,因此為了解決數據共享系統中的瓶頸問題,大量研究學者從優化共識算法進行研究,最開始關注于解決同步環境下的共識機制。由于實際的網絡情況難以滿足同步系統中嚴格的時間同步假設,因此異步系統的共識機制備受研究學者的關注。文獻[8]提出異步系統共識機制的FLP不可能結論,便于研究學者們未來在研究異步拜占庭共識算法時,去突破或規避掉FLP不可能結論。文獻[9]提出異步拜占庭二元共識算法,規避掉了FLP不可能結論,該算法采用拋硬幣的方式協調節點行為,在一定輪數后,以趨近于1的概率終止,保證所有正確節點對某個值達成共識,能夠容忍不超過n/4個拜占庭節點。文獻[10]提出異步環境下的拜占庭共識算法HoneyBadgerBFT,算法通過RBC協議傳輸節點的提議值,用ABA協議對節點的提議值進行共識,能夠容忍不超過n/3個拜占庭節點。文獻[11]整合門限橢圓曲線數字簽名算法和擦除編碼參數優化,設計異步拜占庭容錯(ABFT)一致性協議,該協議在故障閾值內不受不對稱網絡退化的影響。文獻[12]提出安全異步遠程證明(SARA)協議,該協議利用異步通信能力來證明由被執行的分布式物聯網服務,該協議驗證設備的可信度和合法的操作,減少了使用公、私鑰在的存儲和計算方面的操作成本。文獻[13]提出一種新的異步BFT結構,用一個廣播組件代替RBC,將消息復雜度降低到O(n2),節省了67%的通信。文獻[14]提出異步分布式密鑰生成(ADKG)協議,協議以模塊化方式使用了很多ACS、RBC、ABA等異步原語,在沒有可信第三方的情況下引導門限密碼系統,該協議可以容忍不超過n/3個拜占庭節點。

1.2 HoneyBadgerBFT共識算法

區塊鏈系統中的通信環境主要分為三大類:同步網絡、半同步網絡和異步網絡[15]。同步網絡存在已知的最大網絡延遲,常見的有PoW同步協議,一致性和活性均依賴于同步假設。半同步網絡存在未知的最大網絡延遲,但是最終恢復同步狀態,常見的有HotStuff半同步協議,活性依賴于同步假設。異步網絡對網絡條件做出最小的假設,未知網絡延遲,刻畫網絡傳輸中斷和網絡攻擊,一致性和活性均不依賴于同步假設。

2016年,MILLER A等提出HoneyBadgerBFT共識算法,該算法是第1個接近實用的異步共識算法,是可以在異步網絡中正常運行的BFT協議,目前已被應用在區塊鏈平臺。HoneyBadgerBFT共識算法與PBFT共識算法相比,HoneyBadgerBFT共識算法是沒有領導者的,系統中的每個節點都可以作為共識的發起者,通過糾刪碼分割交易緩解單個節點的帶寬,選擇隨機交易塊配合門限加密,使得吞吐量更高。HoneyBadgerBFT共識算法主要包括3個步驟:首先,節點隨機選取交易集并對此進行加密;其次,采用RBC協議實現交易的可靠廣播;最后,采用ABA協議實現交易的共識。

HoneyBadgerBFT共識算法流程如圖1所示。首先節點根據交易塊的選擇規則選取出要進行共識的交易集合tx。對交易集合tx使用公鑰進行加密,之后作為ACS協議的輸入進行共識。ACS協議共識結束后,會收到n個交易集合以及對應的比特串,每個比特對應一個節點發起的共識交易集合。遍歷交易集合,將共識結果為1的交易塊解密,之后進行降重、校驗及排序等環節。交易被提交之后,會將共識完的交易從本地緩存中刪除。

圖1 HoneyBadgerBFT共識算法流程

HoneyBadgerBFT共識算法主要使用門限加密實現審查彈性[16]。門限加密方案,在共識達成之前無法將交易集和節點對應起來,無法獲得交易集的相關信息。與此同時,HoneyBadgerBFT共識算法優化傳統的ACS協議,將RBC協議和ABA協議進行組合,實現新型ACS協議,降低復雜度的同時提升算法性能。如圖2所示,系統中的節點對ACS協議的輸入進行門限加密,對輸出進行解密并排序。在整個ACS協議中的廣播和共識過程中,都是對加密后的交易集進行的。由于該方案不是直接對明文交易進行共識的,因此采用該方案可以有效防止敵手作惡,泄露信息。

由于影響HoneyBadgerBFT共識算法性能的主要瓶頸是異步二進制協議,再加上異步系統共識機制的FLP不可能結論,因此異步二進制協議是一個隨機方案。當網絡不穩定時,可能會出現一些ABA實例結束得較慢的情況,最后一個ABA實例結束的時間決定了異步二進制協議的運行時間,繼而決定了HoneyBadgerBFT共識算法的運行時間。Dumbo協議[17]提出了新的異步公共子集協議結構,有兩種解決方案,分別是Dumbo1和Dumbo2。Dumbo1方案通過選擇指定的提議子集輸出,只對指定的提議子集進行二元共識協議,能夠大概率地保證指定的提議子集中至少有一個是誠實的。Dumbo2方案主要通過對MVBA的創新,執行實例化異步公共子集協議,提出了一種更快的異步BFT協議,實現恒定的運行時間。

2 Hipro-HoneyBadgerBFT共識算法

由1.2節的研究可知,HoneyBadgerBFT共識算法中的ACS協議是順序執行的。經過門限加密后的交易作為RBC的輸入,廣播給其他節點之后進行共識。n個異步二元共識協議執行完畢之后,該輪共識才會結束。一個異步二元共識協議實例在共識過程中可能會執行較多輪數,并且每一輪都需要協商公共拋幣值。整個系統中會有n個節點輸出n個實例,這就導致交易的共識過程耗時較長。在多輪共識執行的情況下,傳統ACS中,RBC協議和ABA協議順序執行會降低整個算法性能,再加上HoneyBadgerBFT共識算法中的門限簽名和消息傳輸都會耗費大量時長,使得HoneyBadgerBFT共識算法的時延較高。針對以上問題,筆者提出一種更加高效的異步拜占庭共識算法——Hipro-HoneyBadgerBFT,算法的邏輯如圖3所示。

2.1 Hipro-HoneyBadgerBFT共識算法結構

在HoneyBadgerBFT共識算法中,交易共識的效率主要依賴于ACS協議的性能,而ABA協議是影響ACS協議性能的主要瓶頸之一。當節點數量很大,網絡狀態不穩定時,可能會導致一些ABA實例運行的速度很慢,最慢的ABA實例決定了ACS協議的運行時間。Hipro-HoneyBadger BFT共識算法結構如圖4所示。

本研究對HoneyBadgerBFT共識算法有兩步改進方案:

a. 對Hipro-HoneyBadgerBFT共識算法中的ACS協議進行解耦,在每輪共識中分布式隨機選取部分ERBC實例,降低后續ABA實例的數量,能夠有效減少ABA協議達成一致過程中節點間的通信量,優化算法的計算資源;

b. 將ACS協議劃分為區域1和區域2兩個部分,使得廣播過程和共識過程并行執行,能夠有效避免兩者相互牽制,提升數據交易的執行效率,降低延遲。

Hipro-HoneyBadgerBFT共識算法偽代碼中,步驟2~4為ERBC協議,步驟5~6為ABA協議,二者并行執行。具體如下:

Algorithm 1.Hipro-HoneyBadgerBFT Consensus algorithm

Input: Transaction_Contract

Output:? Consensus results

1: get (Transaction_Contract)->Transaction_Buffer.i

2: For (Transaction_Buffer.i not null)

3:? ? ERBC protocol

4: end for

5: for (Buffer.i not null)

6:? ? ABA protocol

7: end for

本研究對Hipro-HoneyBadgerBFT共識算法共有以下兩個改進步驟。

a. 為了提升ACS協議的性能,筆者提出減少ABA協議中運行實例的數量。在輸出的n個ERBC實例中分布式隨機選取k(k

Algorithm 2.ERBC protocol phase

Input: Transaction_Contract

Output: Proposal_Encrypted.i

1:For (Transaction_Buffer.i not null)

2: Node.i randomly selects m/n transactions from Transaction_Buffer.i -> Proposal.i

3:? EIGamal (Node.i,Proposal.i) -> Proposal_Encr- ypted.i

4:? Proposal_Encrypted.i -> ERBC.i

5:? ?Select k ERBC instances at random to broadcast

6:? ERBC.i get Proposal_Encrypted.i from Node.i

7:? ?get (Proposal_Encrypted.i)? -> Buffer.i

8: end for

b. Hipro-HoneyBadgerBFT共識算法將傳統的ACS協議進行解耦,在ERBC協議和ABA協議之間增加k個暫存池。數據交易的廣播過程和共識過程并不直接交互,而是都和相應的暫存池交互。數據交易在經過ERBC協議可靠廣播之后不需要再等ABA協議運行結束,就可以進行下一輪的可靠廣播。此方案可以避免傳統ACS協議順序執行造成的耗時過長問題,降低了HoneyBadgerBFT共識算法的執行效率。偽代碼如下:

Algorithm 3.ABA protocol phase

Input: Proposal_Encrypted.i

Output: Consensus results

1:for (Buffer.i not null)

2:? Regular check for proposals in Buffer.i

3:? if Buffer_ID.i = Consensus_ID.i + 1 and ABA.i instance has no input

4:? ? ?1 -> ABA.i

5:? else

6:? ? ?break

7:? end if

8:? ABA.i instance run ABA agreements,1-> result[i]

9:? for (result == 1)

10:? ? ? Assemblies ∪ Buffer.i_front.proposal -> Assemblies

11:? Consensus_ID.j = Consensus_ID.j + 1

12:? end for

13: fragment Decryption Proposal_Encrypted.i to broadcast

14:? f+1 fragments were collected to recover Proposal.i

15:? remove duplication and sort,store block

16:? 0 -> result

17:end for

2.2 Hipro-HoneyBadgerBFT共識算法流程

在數據共享系統中,數據交易雙方交易成功后,通過Hipro-HoneyBadgerBFT共識算法將數據交易合約存入區塊鏈,該數據交易合約會永久保存,不可更改。Hipro-HoneyBadgerBFT共識算法將ACS協議劃分為區域1和區域2,兩個區域并行執行。兩個區域之間不進行交互,而是同與之相應的暫存池交互。Hipro-HoneyBadgerBFT共識算法流程如圖5所示。

Hipro-HoneyBadgerBFT共識算法中的相關變量信息見表1。

Hipro-HoneyBadgerBFT共識算法區域1中的基本操作步驟如下:

a. 節點Nodei從本地數據事務池中隨機選取m/n(m為所有參與節點提議的事務數量,n為參與節點的數目)個數據事務作為提案Proposali。節點Nodei對提案Proposai進行Lifted EIGamal門限加密,也即Proposal_Encryptedi←EIGamal(Nodei,Proposali),節點Nodei將加密后的提案Proposal_

Encryptedi作為ERBCi實例輸入。

b. 算法在n個ERBC實例中分布式隨機選取k個ERBC實例進行后續的ABA協議(n>k>n/3)。

c. 當ERBCi實例收到節點Nodei廣播加密后的提案Proposal_Encryptedi,將提案放入暫存池Bufferi中。

d. 至此,節點Nodei提議的提案Proposali,其可靠廣播步驟ERBC協議完成。重復步驟a~c,等待接收節點Nodei發起的下一個提案廣播。

Hipro-HoneyBadgerBFT共識算法區域2中的基本操作步驟如下:

a. 算法中節點Nodei(i={0,1,…,n})對其相應的暫存池Bufferi定期查詢。當暫存池Bufferi中存在某個提案的序號是已經完成共識的數據事務則序號加1,即有Buffer_IDi=Consensus_IDi+1;如果沒有給ABAi實例提供輸入,那么就給ABAi實例提供輸入值1,即ABAi←1。

b. ABAi實例執行ABA協議結束并且其輸出值為1后,將二元共識結果result[i]設置為1,即result[i]←1。當具有不低于n-f(其中f為故障節點數量)個ABA實例的輸出值為1后,將其余沒有給出輸入值的ABA實例的輸入值設置為0,便于提高沒有輸入值的ABA實例的執行效率。

c. 所有ABA實例執行結束后,遍歷二元共識結果向量result。如果result[j]=1(j=0,1,2,…,k-1),將暫存池Bufferj中的隊頭事務提案放入數據事務集合中,已完成的共識數據事務序號自增1,即有Consensus_IDj=Consensus_IDj+1,暫存池Bufferj中該事務提案刪除。

d. 節點Nodei利用其私鑰片段將數據事務集合中相應的加密提案片段進行解密,將解密后的提案片段Section_Proposali廣播發送給其他節點。節點接收到f+1個解密片段后對其進行解密,推出明文提案Proposali。在明文提案Proposali存入區塊后,對其進行降重,按時間戳進行順序排序。每個節點Nodei都會獲得一致的區塊。

e. 將二元共識結果向量result重置為0,繼續重復步驟a~d,進行新一輪的共識協議。

將傳統的ACS協議解耦,劃分為區域1、2,區域1進行ERBC協議,區域2進行ABA協議。兩個區域并行執行,ERBC協議和ABA協議互不交互。在ERBC協議中抽取一部分ERBC實例進行后續操作。與HoneyBadgerBFT共識算法相比,Hipro-HoneyBadgerBFT共識算法降低了ABA協議中數據傳輸過程的時長,并行執行也提升了ACS協議的性能,提高了數據共享的吞吐量。

2.3 安全性分析

將Hipro-HoneyBadgerBFT共識算法應用在區塊鏈系統中。區塊鏈要求網絡中的所有節點都要存儲區塊鏈賬本,區塊與區塊之間通過哈希指針相連。如果敵手想篡改某一區塊數據,需要1/3的節點對該區塊以及之后的所有存儲完畢的區塊進行修改。這是十分困難并且需要耗費大量算力的行為。Hipro-HoneyBadgerBFT共識算法應用在聯盟區塊鏈中,節點都是先要經過授權,之后實名加入到聯盟區塊鏈中,節點本身的誠信問題都是有保障的。在區塊鏈網絡中,節點與節點之間通過點對點認證通道相連,敵手是無法成功偽裝成正確節點的。

Hipro-HoneyBadgerBFT共識算法達成一致的過程中,節點發送的消息都要進行簽名,其他節點收到該消息后,也都會對其簽名信息和身份信息進行檢查。如果簽名信息或身份信息驗證失敗,該信息就會被丟棄。Hipro-HoneyBadgerBFT共識算法保留了HoneyBadgerBFT共識算法中的門限加密方案。在ACS協議之前對輸入數據交易集合進行加密,敵手無法知道具體的交易內容,可有效防止敵手惡意阻塞特定節點的交易,不會損害審查彈性。

為了驗證筆者提出的Hipro-HoneyBadgerBFT共識算法未降低HoneyBadgerBFT共識算法的安全性能,設計故障節點的數量對系統吞吐量影響的測試。本實驗分別在系統中設置不同的故障節點數量,對Hipro-HoneyBadgerBFT共識算法進行測試。實驗設置區塊批量大小分別為2×103、2×104,2×105、2×106,總節點數量為N,故障節點數量為f,算法中參與節點的數目n=4f,算法中暫存池的數目k=n/3+1。本實驗不考慮拜占庭行為,只針對故障節點做測試。

筆者用Origin繪制出Hipro-HoneyBadgerBFT共識算法在節點數量和故障節點數量不同的情況下,吞吐量的對比結果,如圖6所示。

圖6 節點數量和故障節點數量不同的吞吐量比較

由以上實驗數據可知,筆者提出的Hipro-HoneyBadgerBFT共識算法同樣可以實現原子廣播。采用Hipro-HoneyBadgerBFT共識算法的網絡中,存在故障節點的情況下進行數據交易共識,算法仍然可以繼續執行并輸出相關結果。網絡數據交易的安全性不會受到損害。

3 實驗結果與分析

3.1 實驗環境設置

本次實驗在Windows11,64位操作系統的單臺主機完成測試,機帶RAM為16.0 GB,處理器11th Gen Intel(R)Core(TM)i5-1135G7@2.40 GHz 2.42 GHz。

采用go語言實現Hipro-HoneyBadgerBFT共識算法和HoneyBadgerBFT共識算法。

用于對比實驗的Dumbo1共識算法,Dumbo2共識算法[17]用Python語言實現。

門限加密部分使用相同的庫和安全參數,公鑰加密部分使用HoneyBadgerBFT共識算法中所采用的混合加密方法。

3.2 實驗分析

采用的共識算法的性能在很大程度上會影響網絡的吞吐量[18]。首先對HoneyBadgerBFT共識算法、Dumbo1共識算法、Dumbo2共識算法和Hipro-HoneyBadgerBFT共識算法的吞吐量進行測試。

吞吐量表示每秒鐘處理的事務量,即在單位時間內共識算法處理的交易事務量的數量的總和。吞吐量TPS的計算式為:

TPS=

其中,Ntransaction代表一個區塊內包含的數據交易數量;ΔT代表生成一個區塊耗費的時間。

吞吐量是對軟件測試的測量單位,衡量共識算法性能的重要指標之一。一個事務是客戶機向服務器發送請求,服務器對其做出反應的過程,在這個過程中計算時間和完成事務的數量。

3.2.1 吞吐量比較

3.2.1.1 不同共識算法的吞吐量比較

為了研究不同共識算法的吞吐量,分別在節點數量不同的情況下,對4種共識算法進行吞吐量測試。設置區塊批量大小為2×105,k=n/3+1,節點數量分別為32、64、100。測試HoneyBadgerBFT(HBBFT)共識算法、Dumbo1共識算法、Dumbo2共識算法和Hipro-HoneyBadgerBFT(Hipro-HBBFT)共識算法,分別進行20輪共識,取其平均值,并對其吞吐量進行計算和分析。用Origin軟件繪制出以上4種共識算法的吞吐量,結果如圖7所示。

圖7 不同共識算法的吞吐量比較

由圖7可以看出,當節點數量在負荷范圍內時,共識算法的吞吐量隨著節點數量的增加而提升。當節點數量過多,超過負荷后,共識算法的吞吐量會隨之降低。以上這4種共識算法在相同區塊批量大小和節點數量中,HoneyBadgerBFT共識算法的吞吐量最低,Hipro-HoneyBadgerBFT共識算法的吞吐量最高。在節點數量為64時,Hipro-HoneyBadgerBFT共識算法與HoneyBadgerBFT共識算法相比,在吞吐量方面提升了7倍;與Dumbo2共識算法相比,吞吐量大小增加了30.44%。

3.2.1.2 節點數量和批量大小不同的吞吐量比較

為了研究共識算法中節點數量、區塊批量大小與吞吐量之間的關系,本次實驗分別在節點數量不同和區塊批量大小不同的情況下,對HoneyBadgerBFT共識算法、Dumbo1共識算法、Dumbo2共識算法和Hipro-HoneyBadgerBFT共識算法進行吞吐量測試,結果如圖8所示。如圖8d所示,節點數量設置為100。共4組實驗,每組實驗設置k=n/3+1,區塊批量大小分別為2×103、2×104、2×105、2×106。連續進行20輪共識,將其吞吐量取平均值觀察其變化。筆者用Origin繪制4種共識算法在節點數量和區塊批量大小不同的情況下,吞吐量的對比結果,如圖8所示,共4組實驗數據。

圖8 節點數量不同和區塊批量大小不同的情況下4種算法的吞吐量測試結果

從圖8可以看出,共識算法的吞吐量隨著批量大小的增加呈現出上升的態勢。而在圖8a中可以看到,當帶寬或者計算資源不夠的情況下,共識算法的吞吐量會隨之降低,甚至出現錯誤問題。在圖8b中,區塊批量大小為2×106時,Hipro-HoneyBadgerBFT共識算法的吞吐量達到了每秒鐘22 217.6筆,是HoneyBadgerBFT共識算法的8倍多。

3.2.2 CPU利用率比較

為了研究Hipro-HoneyBadgerBFT共識算法與HoneyBadgerBFT共識算法對于計算資源的消耗。本次實驗設置區塊批量大小為2×105,k=n/3+1。在節點數量相同的情況下,分別運行Hipro-HoneyBadgerBFT共識算法與HoneyBadgerBFT共識算法,檢測主機的CPU利用率,以此來證明Hipro-HoneyBadgerBFT共識算法優化了計算資源。用Origin繪制出的Hipro-HoneyBadgerBFT共識算法與HoneyBadgerBFT共識算法的CPU利用率比較結果如圖9所示。

圖9 CPU利用率比較

從圖9可以看出,在區塊批量大小相同的情況下,節點數量越多,CPU的利用率越高。在節點數量相同的情況下,Hipro-HoneyBadgerBFT共識算法的CPU利用率均比HoneyBadgerBFT共識算法低。說明Hipro-HoneyBadgerBFT共識算法在計算資源方面進行了優化。

3.2.3 不同共識算法的時延比較

在區塊鏈網絡中,時延能夠反映達成共識的運行時間以及通信的性能[19]。本次實驗中的延遲是第1個事務結束到最后一個事務確認的時間間隔。時延T的計算式為:

T=T-T

其中,T代表該區塊前面的一個事務結束的時間;T則代表該區塊第1個事務結束的時間。

在時延測試方面,本次實驗設置區塊批量大小為2×106,k=n/3+1,節點數量分別為32、64、100。記錄HoneyBadgerBFT共識算法、Dumbo1共識算法、Dumbo2共識算法和Hipro-HoneyBadgerBFT共識算法連續進行20輪共識所需要的時延,取其平均值。用Origin繪制出的4種共識算法的時延如圖10所示。

圖10 不同共識算法的時延比較

從圖10可以看出,Hipro-HoneyBadgerBFT共識算法的時延最低,HoneyBadgerBF共識算法的時延最高。在節點數量為64的情況下,Hipro-HoneyBadgerBFT共識算法的時延約為HoneyBadgerBFT共識算法時延的1%,與Dumbo2共識算法相比時延減少了82.14%。

3.3 實驗總結

在區塊鏈網絡中傳入相同大小的區塊,節點對于區塊達成一致的速度影響著共識算法的吞吐量。筆者主要針對吞吐量、延遲和CPU利用率3個性能指標,驗證Hipro-HoneyBadgerBFT共識算法對于性能的提升?,F對HoneyBadgerBFT共識算法、Dumbo1共識算法、Dumbo2共識算法[17]和Hipro-HoneyBadgerBFT共識算法采用不同的節點數量、不同的區塊大小進行一系列測試實驗。相關的實驗結果表明,在相同條件下,筆者提出的Hipro-HoneyBadgerBFT共識算法相較于Honey Badger BFT共識算法,在吞吐量、延遲和計算資源方面都有較大的提升。

4 總結與展望

在社會高速發展,數據量激增的時代背景下,數據共享系統的重要性和廣泛性與日俱增。區塊鏈技術的高可用分布式系統自身的特性非常適配于數據共享系統,便于數據盡可能地發揮其價值。共識算法作為區塊鏈的核心技術之一,選擇和改進共識算法使其更好地適配相關的系統是十分重要的。為了更好地應用在數據量激增的時代,筆者提出了基于HoneyBadgerBFT共識算法改進的高效異步拜占庭共識算法,即Hipro-HoneyBadgerBFT共識算法,屬于聯盟區塊鏈中異步共識技術領域。Hipro-HoneyBadgerBFT共識算法應用于數據共享系統,針對系統中的時延、吞吐量和計算資源進行性能提升。Hipro-Honey BadgerBFT共識算法提出選取部分ERBC實例降低ABA協議中的通信量,引入并行運行機制將共識算法流程分為兩個區域的方案。本研究的實驗結果表明,Hipro-HoneyBadgerBFT共識算法在未降低系統安全性的情況下,降低了通信延遲,優化了計算資源,提升了吞吐量。

在未來的工作中,可以在共識算法的安全性和性能方面繼續深入研究。未來改進后的共識算法要能夠容納數據共享系統中存在的大量用戶,容納用戶與用戶之間產生的海量數據交易合約,滿足系統中極具復雜的種種要求。共識算法達成共識的同時,保障數據的安全性,提升共識效率,保證系統的整體性能。未來的研究,還需著重對隱私方面進行加強,滿足數據共享系統中用戶對于其本身隱私以及數據私密性的需求。

參 考 文 獻

[1] ZHENG X,CAI Z.Privacy-preserved data sharing towa- rds multiple parties in industrial IoTs[J].IEEE Journal on Selected Areas in Communications,2020,38(5):968-979.

[2] CASTRO M,LISKOV B.Practical Byzantine fault tolerance and proactive recovery[J].ACM Transactions on Computer Systems(TOCS),2002,20(4):398-461.

[3] NEIHEISER R W.Scalable and resilient byzantine fault tolerant consensus[J].Florianópolis/Lisboa UNIVERSIDADE FEDERAL DE SANTA CATARINA,2022.https://repositorio.ufsc.br/bitstream/handle/123456789/23485 9/PEAS0406-T.pdf?sequence=-1&isAllowed=y.

[4] WU Z J,QIN Y J,LI Y,et al.Decentralized Predictive Enterprise Resource Planning Framework on Private Blockchain Networks Using Neural Networks[C]//Computer Supported Cooperative Work and Social Computing:16th CCF Conference,Chinese CSCW 2021,Xiangtan,Revised Selected Papers,Part I.Singapore:Springer Nature Singapore,2022:3-13.

[5] GRAMOLI V.From blockchain consensus back to Byza- ntine consensus[J].Future Generation Computer Systems,2020,107:760-769.

[6] KIAYIAS A,ZINDROS D.Proof-of-work sidechains[C]//Financial Cryptography and Data Security:FC 2019 International Workshops,VOTING and WTSC,St.Kitts,St.Kitts and Nevis,Revised Selected Papers 23.Springer International Publishing,2020:21-34.

[7] XU H,LONG Y,LIU Z Q,et al.Dynamic practical byz- antine fault tolerance[C]//2018 IEEE Conference on Communications and Network Security(CNS).Piscataway,NJ:IEEE,2018:1-8.

[8] FISCHER M J,LYNCH N A,PATERSON M S.Impossibility of distributed consensus with one faulty process[J].Journal of theACM(JACM),1985,32(2):374-382.

[9] RABIN M O.Randomized byzantine generals[C]//24th Annual Symposium on Foundations of Computer Science(SFCS 1983). Piscataway,NJ:IEEE,1983:403-409.

[10] MILLER A,XIA Y,CROMAN K,et al.The honey bad- ger of BFT protocols[C]//Proceedings of the 2016 ACM SIGSAC Conference on Computer and Communications Security.2016:31-42.

[11] KNUDSEN H,LI J,NOTLAND J S,et al.High-performance asynchronous byzantine fault tolerance consensus protocol[C]//2021 IEEE International Conference on Blockchain (Blockchain).Piscataway,NJ:IEEE,2021:476-483.

[12] DUSHKU E,RABBANI M M,CONTI M,et al.SARA:Secure Asynchronous Remote Attestation for IoT Systems[J].IEEE Transactions on Information Forensics and Security,2020,15:3123-3136.

[13] GUO B Y,LU Y J,LU Z L,et al.Speeding dumbo:Pushing asynchronous BFT closer to practice[J].Cryptology ePrintArchive,2022.https://eprint.iacr.org/2022/027.pdf.

[14] DAS S,YUREK T,XIANG Z,et al.Practical asynchronous distributed key generation[C]//2022 IEEE Symposium on Security and Privacy (SP). Piscataway,NJ:IEEE,2022:2518-2534.

[15] CORDASCO G,GARGANO L.Community detection via semi-synchronous label propagation algorithms[C]//2010 IEEE International Workshop on:Business Applications of Social Network Analysis (BASNA).Piscataway,NJ:IEEE,2010:1-8.

[16] DUAN S,REITER M K,ZHANG H.BEAT:Asynchron ous BFT made practical[C]//Proceedings of the 2018 ACM SIGSAC Conference on Computer and Communications Security.2018:2028-2041.

[17] GUO B Y,LU Z L,TANG Q,et al.Dumbo:Faster asyn- chronous BFT protocols[C]//Proceedings of the 2020 ACM SIGSAC Conference on Computer and Communications Security.2020:803-818.

[18] YANG R,CHANG X,MIIJ,et al.Quantitative Comparison of Two Chain-Selection Protocols under Selfish Mining Attack[J].IEEE Transactions on Network and Service Management,2022,19(2):1142-1158.

[19] GARROCHO C T B,SILVA M C,FERREIRA C M S,et al.Real-time systems implications in the blockchain-based vertical integration of industry 4.0[J].Computer,2020,53(9):46-55.

(收稿日期:2023-03-30,修回日期:2023-05-15)

Hipro-HoneyBadgerBFT: A High Performance Asynchronous Consensus Algorithm Based on Parallel Running Mechanism

SONG Jing, BAI Fen-hua, ZHANG Xiao-hui, ZHANG Chi

(Faculty of Information Engineering and Automation, Kunming University of Science and Technology)

Abstract? ?In era of big data, the information flowing grows rapidly and blockchain technology suits data sharing systems well. At present, the data sharing system built in the blockchain network will encounter some bottlenecks in performance. In this paper, having HoneyBadgerBFT consensus algorithm based to propose a more efficient asynchronous Byzantine consensus algorithm (Hipro-HoneyBadgerBFT) was implemented. The proposed algorithm can reduce computing resources of the system and improve consensus efficiency of the algorithm without sacrificing security. The experimental results show that, the delay of Hipro-HoneyBadgerBFT consensus algorithm is about 1% of the delay of HoneyBadgerBFT consensus algorithm, but the throughput is increased by 7 times, and the CPU utilization is reduced by 54.09%.

Key words? ?Hipro-HoneyBadgerBFT consensus algorithm, data sharing, distributed, asynchronous consensus, federated blockchain, ACS protocol decoupling, ACS protocol division

猜你喜歡
拜占庭吞吐量實例
拜占庭帝國的繪畫藝術及其多樣性特征初探
淺談初中歷史教學中的邏輯補充——從拜占庭帝國滅亡原因談起
2017年3月長三角地區主要港口吞吐量
2016年10月長三角地區主要港口吞吐量
2016年11月長三角地區主要港口吞吐量
《西方史學通史》第三卷“拜占庭史學”部分糾繆
拜占庭之光
完形填空Ⅱ
完形填空Ⅰ
2014年1月長三角地區主要港口吞吐量
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合