宋靜 柏粉花 張曉暉 張弛
基金項(xiàng)目:云南省教育廳科學(xué)研究基金(批準(zhǔn)號(hào):2022Y160)資助的課題。
作者簡(jiǎn)介:宋靜(1997-),碩士研究生,從事區(qū)塊鏈的研究。
通訊作者:張弛(1996-),博士研究生,從事區(qū)塊鏈的研究,chizhang@stu.kust.edu.cn。
引用本文:宋靜,柏粉花,張曉暉,等.Hipro-HoneyBadgerBFT:一種基于并行運(yùn)行機(jī)制的高性能異步共識(shí)算法[J].化工
自動(dòng)化及儀表,2024,51(2):243-254.
DOI:10.20030/j.cnki.1000-3932.202402014
摘 要 在大數(shù)據(jù)時(shí)代,信息流通數(shù)量極速增長(zhǎng)。區(qū)塊鏈技術(shù)非常適用于數(shù)據(jù)共享系統(tǒng)。目前數(shù)據(jù)共享系統(tǒng)搭建在區(qū)塊鏈網(wǎng)絡(luò)中會(huì)出現(xiàn)一些性能方面的瓶頸。為此,在HoneyBadgerBFT共識(shí)算法的基礎(chǔ)上,提出一種更加高效的異步拜占庭共識(shí)算法——Hipro-HoneyBadgerBFT。該算法在不犧牲安全性的前提下,可以降低系統(tǒng)的計(jì)算資源,提升算法的共識(shí)效率。實(shí)驗(yàn)結(jié)果表明:Hipro-HoneyBadgerBFT共識(shí)算法的時(shí)延約為HoneyBadgerBFT共識(shí)算法時(shí)延的1%,吞吐量提升了7倍,CPU利用率則減少了54.09%。
關(guān)鍵詞 Hipro-HoneyBadgerBFT共識(shí)算法 數(shù)據(jù)共享 分布式 異步共識(shí) 聯(lián)盟區(qū)塊鏈 ACS協(xié)議解耦 ACS協(xié)議劃分
中圖分類號(hào) TH865? ?文獻(xiàn)標(biāo)志碼 A? ?文章編號(hào) 1000-3932(2024)02-0243-12
在今天的數(shù)據(jù)信息量爆炸時(shí)代,工業(yè)、交通、學(xué)校、醫(yī)療等領(lǐng)域?qū)τ跀?shù)據(jù)量的需求都在極速增長(zhǎng)。數(shù)據(jù)共享能夠?qū)崿F(xiàn)不同用戶在不同地方使用不同設(shè)備,讀取其他用戶共享的數(shù)據(jù),并對(duì)其進(jìn)行各種操作和分析。實(shí)現(xiàn)數(shù)據(jù)共享,能夠使得各個(gè)單位用戶充分使用目前已有數(shù)據(jù)信息,便于數(shù)據(jù)發(fā)揮其價(jià)值,同時(shí)減少數(shù)據(jù)資料的采集、審核等重復(fù)工作量,便于工業(yè)、交通、學(xué)校、醫(yī)療等行業(yè)把工作重點(diǎn)放在開發(fā)應(yīng)用程序和系統(tǒng)集成方面。在傳統(tǒng)的中心化數(shù)據(jù)共享工程[1]中,存在共享數(shù)據(jù)成本較高、共享效率低下、安全性不足等問題,很難滿足數(shù)據(jù)交易量日益增長(zhǎng)的要求。由于共享數(shù)據(jù)牽涉到個(gè)人隱私、企業(yè)商業(yè)機(jī)密等安全問題,因此在數(shù)據(jù)傳輸過程中保障數(shù)據(jù)的安全性尤為重要?;谝陨蠁栴},在較多的用戶數(shù)量和海量數(shù)據(jù)共享方面,傳統(tǒng)的中心化數(shù)據(jù)共享平臺(tái)存在很大的局限性。因此,分布式系統(tǒng)的數(shù)據(jù)共享平臺(tái)被引入,更適合海量數(shù)據(jù)共享的情況。分布式系統(tǒng)在內(nèi)部遇到各種錯(cuò)誤時(shí)仍能滿足性能要求,并且對(duì)外部提供正確的服務(wù),這種系統(tǒng)被稱為具有容錯(cuò)能力的高可用系統(tǒng)[2]。將區(qū)塊鏈技術(shù)應(yīng)用在數(shù)據(jù)共享系統(tǒng)中,能夠有效避免第三方服務(wù)提供商帶來的問題。作為一種新穎的分布式計(jì)算架構(gòu),區(qū)塊鏈具有防篡改、隱私保護(hù)和去中心化的優(yōu)點(diǎn)。共識(shí)算法作為區(qū)塊鏈技術(shù)的核心之一,具有重大的研究意義。在數(shù)據(jù)共享系統(tǒng)中,共識(shí)算法的設(shè)計(jì)選擇能夠有效影響系統(tǒng)的安全性,以及系統(tǒng)達(dá)成一致的效率。異步共識(shí)算法不依賴于網(wǎng)絡(luò)時(shí)間假設(shè),更貼合實(shí)際網(wǎng)絡(luò)情況等特性,實(shí)現(xiàn)數(shù)據(jù)庫的標(biāo)準(zhǔn)化融合、數(shù)據(jù)治理與可信共享,構(gòu)建多方共同參與的數(shù)據(jù)共享系統(tǒng)。
作為一種典型的異步共識(shí)算法,HoneyBadgerBFT共識(shí)算法不依賴于對(duì)網(wǎng)絡(luò)的時(shí)間假設(shè),更貼合實(shí)際網(wǎng)絡(luò)情況,相較于同步共識(shí)算法更有實(shí)際可用性,且其具有較高的吞吐量、較低的延遲。然而HoneyBadgerBFT共識(shí)算法采用的是傳統(tǒng)ACS協(xié)議進(jìn)行共識(shí)操作,導(dǎo)致算法中各個(gè)節(jié)點(diǎn)之間的通信量過大,耗費(fèi)了大量的通信資源,共識(shí)達(dá)成一致所需時(shí)間也較長(zhǎng)。因此,筆者主要針對(duì)HoneyBadgerBFT共識(shí)算法中傳統(tǒng)的ACS協(xié)議進(jìn)行研究和改進(jìn),提出Hipro-HoneyBadgerBFT共識(shí)算法,以提升數(shù)據(jù)共享系統(tǒng)的吞吐量、降低延遲、優(yōu)化計(jì)算資源。
1 相關(guān)工作
1.1 拜占庭容錯(cuò)共識(shí)算法
拜占庭容錯(cuò)共識(shí)(Byzantine Fault Tolerance,BFT)算法是分布式計(jì)算領(lǐng)域的容錯(cuò)技術(shù)[3],來源于拜占庭將軍問題。拜占庭將軍問題是描述分布式系統(tǒng)一致性問題抽象出的一個(gè)著名例子。由于硬件錯(cuò)誤、網(wǎng)絡(luò)堵塞中斷或受到攻擊等原因,導(dǎo)致網(wǎng)絡(luò)出現(xiàn)不可預(yù)料的行為,即典型的拜占庭將軍問題[4]。在拜占庭將軍問題被提出來之后,有很多共識(shí)算法被陸續(xù)提出,這些共識(shí)算法被統(tǒng)稱為拜占庭容錯(cuò)共識(shí)算法。
拜占庭容錯(cuò)系統(tǒng)是一個(gè)擁有n臺(tái)節(jié)點(diǎn)的系統(tǒng),在該系統(tǒng)中,有故障的節(jié)點(diǎn)均被稱為拜占庭節(jié)點(diǎn),運(yùn)行正常的節(jié)點(diǎn)則是非拜占庭節(jié)點(diǎn)。在拜占庭容錯(cuò)系統(tǒng)中,由于無法分辨某個(gè)消息是否來自拜占庭節(jié)點(diǎn),因此單個(gè)消息是不可信的,只能相信大多數(shù)投票機(jī)制的消息。這就意味著即使拜占庭容錯(cuò)系統(tǒng)中的一些節(jié)點(diǎn)出現(xiàn)錯(cuò)誤,該系統(tǒng)也可以繼續(xù)正常運(yùn)行。
拜占庭共識(shí)算法支持在具有拜占庭節(jié)點(diǎn)的分布式系統(tǒng)中運(yùn)行的客戶端-服務(wù)器應(yīng)用程序。其正常操作包括3個(gè)階段[5]:第1階段為預(yù)準(zhǔn)備階段,主節(jié)點(diǎn)向所有節(jié)點(diǎn)廣播一條預(yù)準(zhǔn)備消息,其他節(jié)點(diǎn)驗(yàn)證該消息,若驗(yàn)證通過就向其他節(jié)點(diǎn)廣播準(zhǔn)備消息;第2階段為準(zhǔn)備階段,每個(gè)節(jié)點(diǎn)收到不同節(jié)點(diǎn)與該消息匹配的準(zhǔn)備消息,會(huì)向其他節(jié)點(diǎn)廣播提交消息;第3階段為提交階段,當(dāng)節(jié)點(diǎn)接收到其他2f個(gè)節(jié)點(diǎn)提交的消息后,提交階段結(jié)束,所有節(jié)點(diǎn)向服務(wù)器提交響應(yīng)。
由于系統(tǒng)需要支撐大量用戶進(jìn)行海量數(shù)據(jù)交易操作,對(duì)數(shù)據(jù)共享系統(tǒng)的響應(yīng)及時(shí)性、吞吐量和存儲(chǔ)量的要求非常高。目前常見的兩類共識(shí)算法是競(jìng)爭(zhēng)類共識(shí)算法和投票類共識(shí)算法。競(jìng)爭(zhēng)類共識(shí)算法中典型的有工作量證明共識(shí)算法(Proof of Work,PoW)[6],達(dá)成共識(shí)需要節(jié)點(diǎn)耗費(fèi)大量計(jì)算資源去解決哈希算法;投票類共識(shí)算法中典型的有復(fù)制技術(shù)的實(shí)用拜占庭容錯(cuò)共識(shí)算法(Practical Byzantine Fault Tolerance,PBFT)[7]中,各個(gè)節(jié)點(diǎn)通信過程需要耗費(fèi)大量通信資源才能達(dá)成共識(shí),保持各節(jié)點(diǎn)一致性。競(jìng)爭(zhēng)類共識(shí)算法和投票類共識(shí)算法兩類共識(shí)機(jī)制都有各自的弊端,導(dǎo)致區(qū)塊鏈技術(shù)應(yīng)用在數(shù)據(jù)共享系統(tǒng)中出現(xiàn)瓶頸。
區(qū)塊鏈中的共識(shí)算法是提升性能表現(xiàn)的關(guān)鍵,因此為了解決數(shù)據(jù)共享系統(tǒng)中的瓶頸問題,大量研究學(xué)者從優(yōu)化共識(shí)算法進(jìn)行研究,最開始關(guān)注于解決同步環(huán)境下的共識(shí)機(jī)制。由于實(shí)際的網(wǎng)絡(luò)情況難以滿足同步系統(tǒng)中嚴(yán)格的時(shí)間同步假設(shè),因此異步系統(tǒng)的共識(shí)機(jī)制備受研究學(xué)者的關(guān)注。文獻(xiàn)[8]提出異步系統(tǒng)共識(shí)機(jī)制的FLP不可能結(jié)論,便于研究學(xué)者們未來在研究異步拜占庭共識(shí)算法時(shí),去突破或規(guī)避掉FLP不可能結(jié)論。文獻(xiàn)[9]提出異步拜占庭二元共識(shí)算法,規(guī)避掉了FLP不可能結(jié)論,該算法采用拋硬幣的方式協(xié)調(diào)節(jié)點(diǎn)行為,在一定輪數(shù)后,以趨近于1的概率終止,保證所有正確節(jié)點(diǎn)對(duì)某個(gè)值達(dá)成共識(shí),能夠容忍不超過n/4個(gè)拜占庭節(jié)點(diǎn)。文獻(xiàn)[10]提出異步環(huán)境下的拜占庭共識(shí)算法HoneyBadgerBFT,算法通過RBC協(xié)議傳輸節(jié)點(diǎn)的提議值,用ABA協(xié)議對(duì)節(jié)點(diǎn)的提議值進(jìn)行共識(shí),能夠容忍不超過n/3個(gè)拜占庭節(jié)點(diǎn)。文獻(xiàn)[11]整合門限橢圓曲線數(shù)字簽名算法和擦除編碼參數(shù)優(yōu)化,設(shè)計(jì)異步拜占庭容錯(cuò)(ABFT)一致性協(xié)議,該協(xié)議在故障閾值內(nèi)不受不對(duì)稱網(wǎng)絡(luò)退化的影響。文獻(xiàn)[12]提出安全異步遠(yuǎn)程證明(SARA)協(xié)議,該協(xié)議利用異步通信能力來證明由被執(zhí)行的分布式物聯(lián)網(wǎng)服務(wù),該協(xié)議驗(yàn)證設(shè)備的可信度和合法的操作,減少了使用公、私鑰在的存儲(chǔ)和計(jì)算方面的操作成本。文獻(xiàn)[13]提出一種新的異步BFT結(jié)構(gòu),用一個(gè)廣播組件代替RBC,將消息復(fù)雜度降低到O(n2),節(jié)省了67%的通信。文獻(xiàn)[14]提出異步分布式密鑰生成(ADKG)協(xié)議,協(xié)議以模塊化方式使用了很多ACS、RBC、ABA等異步原語,在沒有可信第三方的情況下引導(dǎo)門限密碼系統(tǒng),該協(xié)議可以容忍不超過n/3個(gè)拜占庭節(jié)點(diǎn)。
1.2 HoneyBadgerBFT共識(shí)算法
區(qū)塊鏈系統(tǒng)中的通信環(huán)境主要分為三大類:同步網(wǎng)絡(luò)、半同步網(wǎng)絡(luò)和異步網(wǎng)絡(luò)[15]。同步網(wǎng)絡(luò)存在已知的最大網(wǎng)絡(luò)延遲,常見的有PoW同步協(xié)議,一致性和活性均依賴于同步假設(shè)。半同步網(wǎng)絡(luò)存在未知的最大網(wǎng)絡(luò)延遲,但是最終恢復(fù)同步狀態(tài),常見的有HotStuff半同步協(xié)議,活性依賴于同步假設(shè)。異步網(wǎng)絡(luò)對(duì)網(wǎng)絡(luò)條件做出最小的假設(shè),未知網(wǎng)絡(luò)延遲,刻畫網(wǎng)絡(luò)傳輸中斷和網(wǎng)絡(luò)攻擊,一致性和活性均不依賴于同步假設(shè)。
2016年,MILLER A等提出HoneyBadgerBFT共識(shí)算法,該算法是第1個(gè)接近實(shí)用的異步共識(shí)算法,是可以在異步網(wǎng)絡(luò)中正常運(yùn)行的BFT協(xié)議,目前已被應(yīng)用在區(qū)塊鏈平臺(tái)。HoneyBadgerBFT共識(shí)算法與PBFT共識(shí)算法相比,HoneyBadgerBFT共識(shí)算法是沒有領(lǐng)導(dǎo)者的,系統(tǒng)中的每個(gè)節(jié)點(diǎn)都可以作為共識(shí)的發(fā)起者,通過糾刪碼分割交易緩解單個(gè)節(jié)點(diǎn)的帶寬,選擇隨機(jī)交易塊配合門限加密,使得吞吐量更高。HoneyBadgerBFT共識(shí)算法主要包括3個(gè)步驟:首先,節(jié)點(diǎn)隨機(jī)選取交易集并對(duì)此進(jìn)行加密;其次,采用RBC協(xié)議實(shí)現(xiàn)交易的可靠廣播;最后,采用ABA協(xié)議實(shí)現(xiàn)交易的共識(shí)。
HoneyBadgerBFT共識(shí)算法流程如圖1所示。首先節(jié)點(diǎn)根據(jù)交易塊的選擇規(guī)則選取出要進(jìn)行共識(shí)的交易集合tx。對(duì)交易集合tx使用公鑰進(jìn)行加密,之后作為ACS協(xié)議的輸入進(jìn)行共識(shí)。ACS協(xié)議共識(shí)結(jié)束后,會(huì)收到n個(gè)交易集合以及對(duì)應(yīng)的比特串,每個(gè)比特對(duì)應(yīng)一個(gè)節(jié)點(diǎn)發(fā)起的共識(shí)交易集合。遍歷交易集合,將共識(shí)結(jié)果為1的交易塊解密,之后進(jìn)行降重、校驗(yàn)及排序等環(huán)節(jié)。交易被提交之后,會(huì)將共識(shí)完的交易從本地緩存中刪除。
圖1 HoneyBadgerBFT共識(shí)算法流程
HoneyBadgerBFT共識(shí)算法主要使用門限加密實(shí)現(xiàn)審查彈性[16]。門限加密方案,在共識(shí)達(dá)成之前無法將交易集和節(jié)點(diǎn)對(duì)應(yīng)起來,無法獲得交易集的相關(guān)信息。與此同時(shí),HoneyBadgerBFT共識(shí)算法優(yōu)化傳統(tǒng)的ACS協(xié)議,將RBC協(xié)議和ABA協(xié)議進(jìn)行組合,實(shí)現(xiàn)新型ACS協(xié)議,降低復(fù)雜度的同時(shí)提升算法性能。如圖2所示,系統(tǒng)中的節(jié)點(diǎn)對(duì)ACS協(xié)議的輸入進(jìn)行門限加密,對(duì)輸出進(jìn)行解密并排序。在整個(gè)ACS協(xié)議中的廣播和共識(shí)過程中,都是對(duì)加密后的交易集進(jìn)行的。由于該方案不是直接對(duì)明文交易進(jìn)行共識(shí)的,因此采用該方案可以有效防止敵手作惡,泄露信息。
由于影響HoneyBadgerBFT共識(shí)算法性能的主要瓶頸是異步二進(jìn)制協(xié)議,再加上異步系統(tǒng)共識(shí)機(jī)制的FLP不可能結(jié)論,因此異步二進(jìn)制協(xié)議是一個(gè)隨機(jī)方案。當(dāng)網(wǎng)絡(luò)不穩(wěn)定時(shí),可能會(huì)出現(xiàn)一些ABA實(shí)例結(jié)束得較慢的情況,最后一個(gè)ABA實(shí)例結(jié)束的時(shí)間決定了異步二進(jìn)制協(xié)議的運(yùn)行時(shí)間,繼而決定了HoneyBadgerBFT共識(shí)算法的運(yùn)行時(shí)間。Dumbo協(xié)議[17]提出了新的異步公共子集協(xié)議結(jié)構(gòu),有兩種解決方案,分別是Dumbo1和Dumbo2。Dumbo1方案通過選擇指定的提議子集輸出,只對(duì)指定的提議子集進(jìn)行二元共識(shí)協(xié)議,能夠大概率地保證指定的提議子集中至少有一個(gè)是誠(chéng)實(shí)的。Dumbo2方案主要通過對(duì)MVBA的創(chuàng)新,執(zhí)行實(shí)例化異步公共子集協(xié)議,提出了一種更快的異步BFT協(xié)議,實(shí)現(xiàn)恒定的運(yùn)行時(shí)間。
2 Hipro-HoneyBadgerBFT共識(shí)算法
由1.2節(jié)的研究可知,HoneyBadgerBFT共識(shí)算法中的ACS協(xié)議是順序執(zhí)行的。經(jīng)過門限加密后的交易作為RBC的輸入,廣播給其他節(jié)點(diǎn)之后進(jìn)行共識(shí)。n個(gè)異步二元共識(shí)協(xié)議執(zhí)行完畢之后,該輪共識(shí)才會(huì)結(jié)束。一個(gè)異步二元共識(shí)協(xié)議實(shí)例在共識(shí)過程中可能會(huì)執(zhí)行較多輪數(shù),并且每一輪都需要協(xié)商公共拋幣值。整個(gè)系統(tǒng)中會(huì)有n個(gè)節(jié)點(diǎn)輸出n個(gè)實(shí)例,這就導(dǎo)致交易的共識(shí)過程耗時(shí)較長(zhǎng)。在多輪共識(shí)執(zhí)行的情況下,傳統(tǒng)ACS中,RBC協(xié)議和ABA協(xié)議順序執(zhí)行會(huì)降低整個(gè)算法性能,再加上HoneyBadgerBFT共識(shí)算法中的門限簽名和消息傳輸都會(huì)耗費(fèi)大量時(shí)長(zhǎng),使得HoneyBadgerBFT共識(shí)算法的時(shí)延較高。針對(duì)以上問題,筆者提出一種更加高效的異步拜占庭共識(shí)算法——Hipro-HoneyBadgerBFT,算法的邏輯如圖3所示。
2.1 Hipro-HoneyBadgerBFT共識(shí)算法結(jié)構(gòu)
在HoneyBadgerBFT共識(shí)算法中,交易共識(shí)的效率主要依賴于ACS協(xié)議的性能,而ABA協(xié)議是影響ACS協(xié)議性能的主要瓶頸之一。當(dāng)節(jié)點(diǎn)數(shù)量很大,網(wǎng)絡(luò)狀態(tài)不穩(wěn)定時(shí),可能會(huì)導(dǎo)致一些ABA實(shí)例運(yùn)行的速度很慢,最慢的ABA實(shí)例決定了ACS協(xié)議的運(yùn)行時(shí)間。Hipro-HoneyBadger BFT共識(shí)算法結(jié)構(gòu)如圖4所示。
本研究對(duì)HoneyBadgerBFT共識(shí)算法有兩步改進(jìn)方案:
a. 對(duì)Hipro-HoneyBadgerBFT共識(shí)算法中的ACS協(xié)議進(jìn)行解耦,在每輪共識(shí)中分布式隨機(jī)選取部分ERBC實(shí)例,降低后續(xù)ABA實(shí)例的數(shù)量,能夠有效減少ABA協(xié)議達(dá)成一致過程中節(jié)點(diǎn)間的通信量,優(yōu)化算法的計(jì)算資源;
b. 將ACS協(xié)議劃分為區(qū)域1和區(qū)域2兩個(gè)部分,使得廣播過程和共識(shí)過程并行執(zhí)行,能夠有效避免兩者相互牽制,提升數(shù)據(jù)交易的執(zhí)行效率,降低延遲。
Hipro-HoneyBadgerBFT共識(shí)算法偽代碼中,步驟2~4為ERBC協(xié)議,步驟5~6為ABA協(xié)議,二者并行執(zhí)行。具體如下:
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
本研究對(duì)Hipro-HoneyBadgerBFT共識(shí)算法共有以下兩個(gè)改進(jìn)步驟。
a. 為了提升ACS協(xié)議的性能,筆者提出減少ABA協(xié)議中運(yùn)行實(shí)例的數(shù)量。在輸出的n個(gè)ERBC實(shí)例中分布式隨機(jī)選取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共識(shí)算法將傳統(tǒng)的ACS協(xié)議進(jìn)行解耦,在ERBC協(xié)議和ABA協(xié)議之間增加k個(gè)暫存池。數(shù)據(jù)交易的廣播過程和共識(shí)過程并不直接交互,而是都和相應(yīng)的暫存池交互。數(shù)據(jù)交易在經(jīng)過ERBC協(xié)議可靠廣播之后不需要再等ABA協(xié)議運(yùn)行結(jié)束,就可以進(jìn)行下一輪的可靠廣播。此方案可以避免傳統(tǒng)ACS協(xié)議順序執(zhí)行造成的耗時(shí)過長(zhǎng)問題,降低了HoneyBadgerBFT共識(shí)算法的執(zhí)行效率。偽代碼如下: 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共識(shí)算法流程 在數(shù)據(jù)共享系統(tǒng)中,數(shù)據(jù)交易雙方交易成功后,通過Hipro-HoneyBadgerBFT共識(shí)算法將數(shù)據(jù)交易合約存入?yún)^(qū)塊鏈,該數(shù)據(jù)交易合約會(huì)永久保存,不可更改。Hipro-HoneyBadgerBFT共識(shí)算法將ACS協(xié)議劃分為區(qū)域1和區(qū)域2,兩個(gè)區(qū)域并行執(zhí)行。兩個(gè)區(qū)域之間不進(jìn)行交互,而是同與之相應(yīng)的暫存池交互。Hipro-HoneyBadgerBFT共識(shí)算法流程如圖5所示。 Hipro-HoneyBadgerBFT共識(shí)算法中的相關(guān)變量信息見表1。 Hipro-HoneyBadgerBFT共識(shí)算法區(qū)域1中的基本操作步驟如下: a. 節(jié)點(diǎn)Nodei從本地?cái)?shù)據(jù)事務(wù)池中隨機(jī)選取m/n(m為所有參與節(jié)點(diǎn)提議的事務(wù)數(shù)量,n為參與節(jié)點(diǎn)的數(shù)目)個(gè)數(shù)據(jù)事務(wù)作為提案Proposali。節(jié)點(diǎn)Nodei對(duì)提案Proposai進(jìn)行Lifted EIGamal門限加密,也即Proposal_Encryptedi←EIGamal(Nodei,Proposali),節(jié)點(diǎn)Nodei將加密后的提案Proposal_ Encryptedi作為ERBCi實(shí)例輸入。 b. 算法在n個(gè)ERBC實(shí)例中分布式隨機(jī)選取k個(gè)ERBC實(shí)例進(jìn)行后續(xù)的ABA協(xié)議(n>k>n/3)。 c. 當(dāng)ERBCi實(shí)例收到節(jié)點(diǎn)Nodei廣播加密后的提案Proposal_Encryptedi,將提案放入暫存池Bufferi中。 d. 至此,節(jié)點(diǎn)Nodei提議的提案Proposali,其可靠廣播步驟ERBC協(xié)議完成。重復(fù)步驟a~c,等待接收節(jié)點(diǎn)Nodei發(fā)起的下一個(gè)提案廣播。 Hipro-HoneyBadgerBFT共識(shí)算法區(qū)域2中的基本操作步驟如下: a. 算法中節(jié)點(diǎn)Nodei(i={0,1,…,n})對(duì)其相應(yīng)的暫存池Bufferi定期查詢。當(dāng)暫存池Bufferi中存在某個(gè)提案的序號(hào)是已經(jīng)完成共識(shí)的數(shù)據(jù)事務(wù)則序號(hào)加1,即有Buffer_IDi=Consensus_IDi+1;如果沒有給ABAi實(shí)例提供輸入,那么就給ABAi實(shí)例提供輸入值1,即ABAi←1。 b. ABAi實(shí)例執(zhí)行ABA協(xié)議結(jié)束并且其輸出值為1后,將二元共識(shí)結(jié)果result[i]設(shè)置為1,即result[i]←1。當(dāng)具有不低于n-f(其中f為故障節(jié)點(diǎn)數(shù)量)個(gè)ABA實(shí)例的輸出值為1后,將其余沒有給出輸入值的ABA實(shí)例的輸入值設(shè)置為0,便于提高沒有輸入值的ABA實(shí)例的執(zhí)行效率。 c. 所有ABA實(shí)例執(zhí)行結(jié)束后,遍歷二元共識(shí)結(jié)果向量result。如果result[j]=1(j=0,1,2,…,k-1),將暫存池Bufferj中的隊(duì)頭事務(wù)提案放入數(shù)據(jù)事務(wù)集合中,已完成的共識(shí)數(shù)據(jù)事務(wù)序號(hào)自增1,即有Consensus_IDj=Consensus_IDj+1,暫存池Bufferj中該事務(wù)提案刪除。 d. 節(jié)點(diǎn)Nodei利用其私鑰片段將數(shù)據(jù)事務(wù)集合中相應(yīng)的加密提案片段進(jìn)行解密,將解密后的提案片段Section_Proposali廣播發(fā)送給其他節(jié)點(diǎn)。節(jié)點(diǎn)接收到f+1個(gè)解密片段后對(duì)其進(jìn)行解密,推出明文提案Proposali。在明文提案Proposali存入?yún)^(qū)塊后,對(duì)其進(jìn)行降重,按時(shí)間戳進(jìn)行順序排序。每個(gè)節(jié)點(diǎn)Nodei都會(huì)獲得一致的區(qū)塊。 e. 將二元共識(shí)結(jié)果向量result重置為0,繼續(xù)重復(fù)步驟a~d,進(jìn)行新一輪的共識(shí)協(xié)議。 將傳統(tǒng)的ACS協(xié)議解耦,劃分為區(qū)域1、2,區(qū)域1進(jìn)行ERBC協(xié)議,區(qū)域2進(jìn)行ABA協(xié)議。兩個(gè)區(qū)域并行執(zhí)行,ERBC協(xié)議和ABA協(xié)議互不交互。在ERBC協(xié)議中抽取一部分ERBC實(shí)例進(jìn)行后續(xù)操作。與HoneyBadgerBFT共識(shí)算法相比,Hipro-HoneyBadgerBFT共識(shí)算法降低了ABA協(xié)議中數(shù)據(jù)傳輸過程的時(shí)長(zhǎng),并行執(zhí)行也提升了ACS協(xié)議的性能,提高了數(shù)據(jù)共享的吞吐量。 2.3 安全性分析 將Hipro-HoneyBadgerBFT共識(shí)算法應(yīng)用在區(qū)塊鏈系統(tǒng)中。區(qū)塊鏈要求網(wǎng)絡(luò)中的所有節(jié)點(diǎn)都要存儲(chǔ)區(qū)塊鏈賬本,區(qū)塊與區(qū)塊之間通過哈希指針相連。如果敵手想篡改某一區(qū)塊數(shù)據(jù),需要1/3的節(jié)點(diǎn)對(duì)該區(qū)塊以及之后的所有存儲(chǔ)完畢的區(qū)塊進(jìn)行修改。這是十分困難并且需要耗費(fèi)大量算力的行為。Hipro-HoneyBadgerBFT共識(shí)算法應(yīng)用在聯(lián)盟區(qū)塊鏈中,節(jié)點(diǎn)都是先要經(jīng)過授權(quán),之后實(shí)名加入到聯(lián)盟區(qū)塊鏈中,節(jié)點(diǎn)本身的誠(chéng)信問題都是有保障的。在區(qū)塊鏈網(wǎng)絡(luò)中,節(jié)點(diǎn)與節(jié)點(diǎn)之間通過點(diǎn)對(duì)點(diǎn)認(rèn)證通道相連,敵手是無法成功偽裝成正確節(jié)點(diǎn)的。 Hipro-HoneyBadgerBFT共識(shí)算法達(dá)成一致的過程中,節(jié)點(diǎn)發(fā)送的消息都要進(jìn)行簽名,其他節(jié)點(diǎn)收到該消息后,也都會(huì)對(duì)其簽名信息和身份信息進(jìn)行檢查。如果簽名信息或身份信息驗(yàn)證失敗,該信息就會(huì)被丟棄。Hipro-HoneyBadgerBFT共識(shí)算法保留了HoneyBadgerBFT共識(shí)算法中的門限加密方案。在ACS協(xié)議之前對(duì)輸入數(shù)據(jù)交易集合進(jìn)行加密,敵手無法知道具體的交易內(nèi)容,可有效防止敵手惡意阻塞特定節(jié)點(diǎn)的交易,不會(huì)損害審查彈性。 為了驗(yàn)證筆者提出的Hipro-HoneyBadgerBFT共識(shí)算法未降低HoneyBadgerBFT共識(shí)算法的安全性能,設(shè)計(jì)故障節(jié)點(diǎn)的數(shù)量對(duì)系統(tǒng)吞吐量影響的測(cè)試。本實(shí)驗(yàn)分別在系統(tǒng)中設(shè)置不同的故障節(jié)點(diǎn)數(shù)量,對(duì)Hipro-HoneyBadgerBFT共識(shí)算法進(jìn)行測(cè)試。實(shí)驗(yàn)設(shè)置區(qū)塊批量大小分別為2×103、2×104,2×105、2×106,總節(jié)點(diǎn)數(shù)量為N,故障節(jié)點(diǎn)數(shù)量為f,算法中參與節(jié)點(diǎn)的數(shù)目n=4f,算法中暫存池的數(shù)目k=n/3+1。本實(shí)驗(yàn)不考慮拜占庭行為,只針對(duì)故障節(jié)點(diǎn)做測(cè)試。 筆者用Origin繪制出Hipro-HoneyBadgerBFT共識(shí)算法在節(jié)點(diǎn)數(shù)量和故障節(jié)點(diǎn)數(shù)量不同的情況下,吞吐量的對(duì)比結(jié)果,如圖6所示。 圖6 節(jié)點(diǎn)數(shù)量和故障節(jié)點(diǎn)數(shù)量不同的吞吐量比較 由以上實(shí)驗(yàn)數(shù)據(jù)可知,筆者提出的Hipro-HoneyBadgerBFT共識(shí)算法同樣可以實(shí)現(xiàn)原子廣播。采用Hipro-HoneyBadgerBFT共識(shí)算法的網(wǎng)絡(luò)中,存在故障節(jié)點(diǎn)的情況下進(jìn)行數(shù)據(jù)交易共識(shí),算法仍然可以繼續(xù)執(zhí)行并輸出相關(guān)結(jié)果。網(wǎng)絡(luò)數(shù)據(jù)交易的安全性不會(huì)受到損害。 3 實(shí)驗(yàn)結(jié)果與分析 3.1 實(shí)驗(yàn)環(huán)境設(shè)置 本次實(shí)驗(yàn)在Windows11,64位操作系統(tǒng)的單臺(tái)主機(jī)完成測(cè)試,機(jī)帶RAM為16.0 GB,處理器11th Gen Intel(R)Core(TM)i5-1135G7@2.40 GHz 2.42 GHz。 采用go語言實(shí)現(xiàn)Hipro-HoneyBadgerBFT共識(shí)算法和HoneyBadgerBFT共識(shí)算法。 用于對(duì)比實(shí)驗(yàn)的Dumbo1共識(shí)算法,Dumbo2共識(shí)算法[17]用Python語言實(shí)現(xiàn)。 門限加密部分使用相同的庫和安全參數(shù),公鑰加密部分使用HoneyBadgerBFT共識(shí)算法中所采用的混合加密方法。 3.2 實(shí)驗(yàn)分析 采用的共識(shí)算法的性能在很大程度上會(huì)影響網(wǎng)絡(luò)的吞吐量[18]。首先對(duì)HoneyBadgerBFT共識(shí)算法、Dumbo1共識(shí)算法、Dumbo2共識(shí)算法和Hipro-HoneyBadgerBFT共識(shí)算法的吞吐量進(jìn)行測(cè)試。 吞吐量表示每秒鐘處理的事務(wù)量,即在單位時(shí)間內(nèi)共識(shí)算法處理的交易事務(wù)量的數(shù)量的總和。吞吐量TPS的計(jì)算式為: TPS= 其中,Ntransaction代表一個(gè)區(qū)塊內(nèi)包含的數(shù)據(jù)交易數(shù)量;ΔT代表生成一個(gè)區(qū)塊耗費(fèi)的時(shí)間。 吞吐量是對(duì)軟件測(cè)試的測(cè)量單位,衡量共識(shí)算法性能的重要指標(biāo)之一。一個(gè)事務(wù)是客戶機(jī)向服務(wù)器發(fā)送請(qǐng)求,服務(wù)器對(duì)其做出反應(yīng)的過程,在這個(gè)過程中計(jì)算時(shí)間和完成事務(wù)的數(shù)量。 3.2.1 吞吐量比較 3.2.1.1 不同共識(shí)算法的吞吐量比較 為了研究不同共識(shí)算法的吞吐量,分別在節(jié)點(diǎn)數(shù)量不同的情況下,對(duì)4種共識(shí)算法進(jìn)行吞吐量測(cè)試。設(shè)置區(qū)塊批量大小為2×105,k=n/3+1,節(jié)點(diǎn)數(shù)量分別為32、64、100。測(cè)試HoneyBadgerBFT(HBBFT)共識(shí)算法、Dumbo1共識(shí)算法、Dumbo2共識(shí)算法和Hipro-HoneyBadgerBFT(Hipro-HBBFT)共識(shí)算法,分別進(jìn)行20輪共識(shí),取其平均值,并對(duì)其吞吐量進(jìn)行計(jì)算和分析。用Origin軟件繪制出以上4種共識(shí)算法的吞吐量,結(jié)果如圖7所示。 圖7 不同共識(shí)算法的吞吐量比較 由圖7可以看出,當(dāng)節(jié)點(diǎn)數(shù)量在負(fù)荷范圍內(nèi)時(shí),共識(shí)算法的吞吐量隨著節(jié)點(diǎn)數(shù)量的增加而提升。當(dāng)節(jié)點(diǎn)數(shù)量過多,超過負(fù)荷后,共識(shí)算法的吞吐量會(huì)隨之降低。以上這4種共識(shí)算法在相同區(qū)塊批量大小和節(jié)點(diǎn)數(shù)量中,HoneyBadgerBFT共識(shí)算法的吞吐量最低,Hipro-HoneyBadgerBFT共識(shí)算法的吞吐量最高。在節(jié)點(diǎn)數(shù)量為64時(shí),Hipro-HoneyBadgerBFT共識(shí)算法與HoneyBadgerBFT共識(shí)算法相比,在吞吐量方面提升了7倍;與Dumbo2共識(shí)算法相比,吞吐量大小增加了30.44%。 3.2.1.2 節(jié)點(diǎn)數(shù)量和批量大小不同的吞吐量比較 為了研究共識(shí)算法中節(jié)點(diǎn)數(shù)量、區(qū)塊批量大小與吞吐量之間的關(guān)系,本次實(shí)驗(yàn)分別在節(jié)點(diǎn)數(shù)量不同和區(qū)塊批量大小不同的情況下,對(duì)HoneyBadgerBFT共識(shí)算法、Dumbo1共識(shí)算法、Dumbo2共識(shí)算法和Hipro-HoneyBadgerBFT共識(shí)算法進(jìn)行吞吐量測(cè)試,結(jié)果如圖8所示。如圖8d所示,節(jié)點(diǎn)數(shù)量設(shè)置為100。共4組實(shí)驗(yàn),每組實(shí)驗(yàn)設(shè)置k=n/3+1,區(qū)塊批量大小分別為2×103、2×104、2×105、2×106。連續(xù)進(jìn)行20輪共識(shí),將其吞吐量取平均值觀察其變化。筆者用Origin繪制4種共識(shí)算法在節(jié)點(diǎn)數(shù)量和區(qū)塊批量大小不同的情況下,吞吐量的對(duì)比結(jié)果,如圖8所示,共4組實(shí)驗(yàn)數(shù)據(jù)。 圖8 節(jié)點(diǎn)數(shù)量不同和區(qū)塊批量大小不同的情況下4種算法的吞吐量測(cè)試結(jié)果 從圖8可以看出,共識(shí)算法的吞吐量隨著批量大小的增加呈現(xiàn)出上升的態(tài)勢(shì)。而在圖8a中可以看到,當(dāng)帶寬或者計(jì)算資源不夠的情況下,共識(shí)算法的吞吐量會(huì)隨之降低,甚至出現(xiàn)錯(cuò)誤問題。在圖8b中,區(qū)塊批量大小為2×106時(shí),Hipro-HoneyBadgerBFT共識(shí)算法的吞吐量達(dá)到了每秒鐘22 217.6筆,是HoneyBadgerBFT共識(shí)算法的8倍多。 3.2.2 CPU利用率比較 為了研究Hipro-HoneyBadgerBFT共識(shí)算法與HoneyBadgerBFT共識(shí)算法對(duì)于計(jì)算資源的消耗。本次實(shí)驗(yàn)設(shè)置區(qū)塊批量大小為2×105,k=n/3+1。在節(jié)點(diǎn)數(shù)量相同的情況下,分別運(yùn)行Hipro-HoneyBadgerBFT共識(shí)算法與HoneyBadgerBFT共識(shí)算法,檢測(cè)主機(jī)的CPU利用率,以此來證明Hipro-HoneyBadgerBFT共識(shí)算法優(yōu)化了計(jì)算資源。用Origin繪制出的Hipro-HoneyBadgerBFT共識(shí)算法與HoneyBadgerBFT共識(shí)算法的CPU利用率比較結(jié)果如圖9所示。 圖9 CPU利用率比較 從圖9可以看出,在區(qū)塊批量大小相同的情況下,節(jié)點(diǎn)數(shù)量越多,CPU的利用率越高。在節(jié)點(diǎn)數(shù)量相同的情況下,Hipro-HoneyBadgerBFT共識(shí)算法的CPU利用率均比HoneyBadgerBFT共識(shí)算法低。說明Hipro-HoneyBadgerBFT共識(shí)算法在計(jì)算資源方面進(jìn)行了優(yōu)化。 3.2.3 不同共識(shí)算法的時(shí)延比較 在區(qū)塊鏈網(wǎng)絡(luò)中,時(shí)延能夠反映達(dá)成共識(shí)的運(yùn)行時(shí)間以及通信的性能[19]。本次實(shí)驗(yàn)中的延遲是第1個(gè)事務(wù)結(jié)束到最后一個(gè)事務(wù)確認(rèn)的時(shí)間間隔。時(shí)延T的計(jì)算式為: T=T-T 其中,T代表該區(qū)塊前面的一個(gè)事務(wù)結(jié)束的時(shí)間;T則代表該區(qū)塊第1個(gè)事務(wù)結(jié)束的時(shí)間。 在時(shí)延測(cè)試方面,本次實(shí)驗(yàn)設(shè)置區(qū)塊批量大小為2×106,k=n/3+1,節(jié)點(diǎn)數(shù)量分別為32、64、100。記錄HoneyBadgerBFT共識(shí)算法、Dumbo1共識(shí)算法、Dumbo2共識(shí)算法和Hipro-HoneyBadgerBFT共識(shí)算法連續(xù)進(jìn)行20輪共識(shí)所需要的時(shí)延,取其平均值。用Origin繪制出的4種共識(shí)算法的時(shí)延如圖10所示。 圖10 不同共識(shí)算法的時(shí)延比較 從圖10可以看出,Hipro-HoneyBadgerBFT共識(shí)算法的時(shí)延最低,HoneyBadgerBF共識(shí)算法的時(shí)延最高。在節(jié)點(diǎn)數(shù)量為64的情況下,Hipro-HoneyBadgerBFT共識(shí)算法的時(shí)延約為HoneyBadgerBFT共識(shí)算法時(shí)延的1%,與Dumbo2共識(shí)算法相比時(shí)延減少了82.14%。 3.3 實(shí)驗(yàn)總結(jié) 在區(qū)塊鏈網(wǎng)絡(luò)中傳入相同大小的區(qū)塊,節(jié)點(diǎn)對(duì)于區(qū)塊達(dá)成一致的速度影響著共識(shí)算法的吞吐量。筆者主要針對(duì)吞吐量、延遲和CPU利用率3個(gè)性能指標(biāo),驗(yàn)證Hipro-HoneyBadgerBFT共識(shí)算法對(duì)于性能的提升?,F(xiàn)對(duì)HoneyBadgerBFT共識(shí)算法、Dumbo1共識(shí)算法、Dumbo2共識(shí)算法[17]和Hipro-HoneyBadgerBFT共識(shí)算法采用不同的節(jié)點(diǎn)數(shù)量、不同的區(qū)塊大小進(jìn)行一系列測(cè)試實(shí)驗(yàn)。相關(guān)的實(shí)驗(yàn)結(jié)果表明,在相同條件下,筆者提出的Hipro-HoneyBadgerBFT共識(shí)算法相較于Honey Badger BFT共識(shí)算法,在吞吐量、延遲和計(jì)算資源方面都有較大的提升。 4 總結(jié)與展望 在社會(huì)高速發(fā)展,數(shù)據(jù)量激增的時(shí)代背景下,數(shù)據(jù)共享系統(tǒng)的重要性和廣泛性與日俱增。區(qū)塊鏈技術(shù)的高可用分布式系統(tǒng)自身的特性非常適配于數(shù)據(jù)共享系統(tǒng),便于數(shù)據(jù)盡可能地發(fā)揮其價(jià)值。共識(shí)算法作為區(qū)塊鏈的核心技術(shù)之一,選擇和改進(jìn)共識(shí)算法使其更好地適配相關(guān)的系統(tǒng)是十分重要的。為了更好地應(yīng)用在數(shù)據(jù)量激增的時(shí)代,筆者提出了基于HoneyBadgerBFT共識(shí)算法改進(jìn)的高效異步拜占庭共識(shí)算法,即Hipro-HoneyBadgerBFT共識(shí)算法,屬于聯(lián)盟區(qū)塊鏈中異步共識(shí)技術(shù)領(lǐng)域。Hipro-HoneyBadgerBFT共識(shí)算法應(yīng)用于數(shù)據(jù)共享系統(tǒng),針對(duì)系統(tǒng)中的時(shí)延、吞吐量和計(jì)算資源進(jìn)行性能提升。Hipro-Honey BadgerBFT共識(shí)算法提出選取部分ERBC實(shí)例降低ABA協(xié)議中的通信量,引入并行運(yùn)行機(jī)制將共識(shí)算法流程分為兩個(gè)區(qū)域的方案。本研究的實(shí)驗(yàn)結(jié)果表明,Hipro-HoneyBadgerBFT共識(shí)算法在未降低系統(tǒng)安全性的情況下,降低了通信延遲,優(yōu)化了計(jì)算資源,提升了吞吐量。 在未來的工作中,可以在共識(shí)算法的安全性和性能方面繼續(xù)深入研究。未來改進(jìn)后的共識(shí)算法要能夠容納數(shù)據(jù)共享系統(tǒng)中存在的大量用戶,容納用戶與用戶之間產(chǎn)生的海量數(shù)據(jù)交易合約,滿足系統(tǒng)中極具復(fù)雜的種種要求。共識(shí)算法達(dá)成共識(shí)的同時(shí),保障數(shù)據(jù)的安全性,提升共識(shí)效率,保證系統(tǒng)的整體性能。未來的研究,還需著重對(duì)隱私方面進(jìn)行加強(qiáng),滿足數(shù)據(jù)共享系統(tǒng)中用戶對(duì)于其本身隱私以及數(shù)據(jù)私密性的需求。 參 考 文 獻(xiàn) [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,F(xiàn)ERREIRA 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