任秀麗,張雷
(遼寧大學 信息學院,沈陽 110036)(?通信作者電子郵箱1638938145@qq.com)
基于實用拜占庭容錯的改進的多主節點共識機制
任秀麗,張雷*
(遼寧大學 信息學院,沈陽 110036)(?通信作者電子郵箱1638938145@qq.com)
針對實用拜占庭容錯(PBFT)共識協議通信復雜度高導致的共識效率低、單一主節點發生故障或存在拜占庭行為時會導致共識過程停止的問題,提出了改進的多主節點實用拜占庭容錯(IMPBFT)共識機制。首先,通過節點的共識輪數、存在拜占庭行為的共識輪數以及節點被賦予的優先值,計算出節點的有效共識輪數,再依據有效共識輪數的大小選出多個主節點。其次,對原共識機制進行改進,使所有節點利用改進的機制進行共識。最后,引入流水線來實現IMPBFT共識的并發執行。在進行流水線操作時,不同輪共識的多階段消息統一簽名,并且不再使用固定周期來控制流水線。理論研究和實驗結果表明,IMPBFT的多主節點結構相較單一主節點的共識結構更加安全穩定;與平方級通信量的PBFT和信用委托拜占庭容錯(CDBFT)共識相比,IMPBFT將通信量降至線性級;在交易吞吐量、擴展性和交易時延方面,IMPBFT的性能要優于PBFT和CDBFT;使用“多階段消息統一簽名、無固定周期”流水線的IMPBFT,比未使用流水線的IMPBFT在交易吞吐量上提高了75.2%。
區塊鏈;聯盟鏈;共識機制;實用拜占庭容錯;流水線
區塊鏈起源于比特幣[1-2],區塊鏈的核心技術是共識機制,而對共識機制的研究卻遠早于區塊鏈。比特幣系統使用的共識機制是工作量證明(Proof of Work, PoW),其屬于公有鏈共識機制。PoW中的共識節點出于自身利益考慮[3],會維護區塊鏈的安全;但該共識機制的共識時間較長,無法適用于所有場景,這也促進了跨鏈技術[4]的出現。區塊鏈除了公有鏈,還有私有鏈和聯盟鏈。聯盟鏈中具有代表性的共識機制有實用拜占庭容錯(Practical Byzantine Fault Tolerance, PBFT)[5]。相較于PoW,PBFT能耗更小、效率更高,更適用于大型組織聯盟[6]。
PBFT共識機制包括pre-prepare、prepare和commit這3個重要階段。它要求共識節點處于弱同步網絡之中,具有拜占庭容錯特性的同時,也具有實用性。PBFT中只有一個主節點負責對交易排序,該共識的通信復雜度為O(n2)。隨著節點的增多,其通信量急劇增大,共識效率急劇下降。PBFT對于拜占庭節點不做處理,這些節點可以持續作惡。
以PBFT共識機制為基礎,又有許多新的改進方案:通過分層結構[7-11]來減少每輪共識節點數量,從而達到減少通信量的目的,這樣雖然可以提高共識效率,但同時也會造成共識的拜占庭容錯性降低;通過對節點身份驗證[12-13]、引入信任機制[14-15]、使用聚合簽名[16]等提高安全性,但也帶來了一些額外的資源消耗和一定程度中心化;通過簡化共識過程[17-18]來提高效率,但這使得共識實用性變差;通過將“協商”和“執行”工作分離[19]來提高效能,但每部分出錯都可能導致整個共識過程的停止;共識中引入節點退出機制[20],使得共識擴展性增強,不過每個節點的退出都會使得共識中的一些參數發生變化;通過動態更新共識節點集合[21]來提高共識一致性,但同時會帶來額外資源開銷;利用視圖向量[22]來表示共識數據,使得響應處理變快,但任一節點宕機都可能導致共識停止。
Wang等[23]提出了一種“代理”共識信用委托拜占庭容錯(Credit-Delegated Byzantine Fault Tolerance, CDBFT),該共識機制中將節點劃分為m個組織,每個組織選出一個代理節點。每次共識都包括兩個階段:組織內共識和代理節點共識。這種共識機制減少了參與共識的節點數量,相較于PBFT共識減少了通信量,提高了共識效率。然而,其通信復雜度仍然是O(n2);當節點變多時,它的共識效率會呈現急劇下降的趨勢,擴展性較差。
基于上述研究中的共識效率、安全性以及擴展性等問題的分析,本文提出了改進的多主節點實用拜占庭容錯(Improved Multi-primary-node Practical Byzantine Fault Tolerance, IMPBFT)共識機制,并通過流水線來實現該共識的并發執行。本文的主要工作如下:
1)計算有效共識輪數:根據節點參與共識的輪數以及存在拜占庭行為的輪數計算得到有效共識輪數。將有效共識輪數作為選舉主節點依據,可以降低拜占庭節點成為主節點幾率。
2)提出改進的多主節點共識IMPBFT:共識選出多個主節點來共同接收客戶端交易,以減少單個主節點弊端;改進共識流程,減少共識通信,提高共識效率。
3)引入流水線共識:IMPBFT共識中引入流水線進一步提高效率。在流水線執行過程中,多個階段消息統一簽名發送,并且不再使用固定的流水線周期,而是依靠共識自身來進行流水線控制。
所有節點的信息中都包含以下4個屬性信息:
1)共識輪數(R):表示節點參與了多少輪共識。一輪共識完成后,節點共識輪數加1,而且不管節點是否故障或者存在拜占庭行為,其共識輪數都會加1。
3)優先值(P):該值的設立主要是為了共識初始化階段主節點的選取。共識初始階段,由于所有節點共識輪數都為0,無法選出主節點,所以需要設置優先值來選出主節點。這里設置優先值為常數,未設置的都為0。
拜占庭行為主要是依據各節點發送的消息數據進行判斷,一旦發現與共識結果不同的數據,檢查該消息數據。若該消息中其他基本信息都相同,只有結果不同,由于消息中帶有簽名,那么可以判定發送該數據的節點存在拜占庭行為。若該消息中除結果外的其他基本信息不相同,并且這些信息被篡改了,那么也可以判定發送該消息的節點存在拜占庭行為。保留該消息作為證據,將證據發送給所有節點,如果沒有證據,則無法判定一個節點是否為拜占庭節點。例如:在IMPBFT共識中,各節點發送prepare1消息,主節點要收集到2n/3+1條prepare1消息,而某節點發送消息未被主節點收集,則主節點無法判定其是否為拜占庭節點。
一個節點出現故障時,其有效輪數依舊會隨著共識完成而增加。該故障節點若為主節點,也不會剝奪其主節點資格,但是因為它不能工作,相當于整個網絡是k-1個主節點,不影響共識過程的繼續。如果主節點全部故障,那么將重置節點優先值,重新選出主節點。若一個主節點存在拜占庭行為,那么其拜占庭輪數會增加,而且這會觸發主節點集合的更新,重新選出k個有效輪數最高的節點。下一輪開始時,這些節點作為主節點。只要不是所有主節點都出現了故障或者拜占庭行為,那么共識就可以繼續。
IMPBFT共識中一共有n個節點、k個主節點。在request階段,客戶將交易請求trade發送給k個主節點,request消息格式為。其中:trade表示一條交易的請求,trade中包含交易的時間戳、交易雙方的公鑰、交易額等信息;Ci表示客戶端的序列號;表示客戶對交易的簽名。
主節點收到客戶request消息后,便與其他節點進行共識,共識流程如圖1所示。圖1中,表示客戶端,0~9表示共識的節點,0和5表示主節點。

圖1 IMPBFT共識流程Fig. 1 Consensus process of IMPBFT
1)pre-prepare階段。主節點收到request消息后,首先驗證簽名。當收集到一定數量驗證通過的交易請求后,主節點向所有共識節點發送消息,其中,requestsSet是包含一定數量且帶有客戶簽名的交易原始請求集合,表示節點的簽名,Ni表示節點序列號。
2)prepare1階段。節點收到pre-prepare消息后,先驗證該消息包含的主節點簽名,然后對消息進行拆包,驗證requestsSet中的客戶簽名。驗證完畢后,拆解得到所有requestsSet包含的trade信息。對不同主節點的trade取并集,并依據時間戳進行排序,得到的交易集合記為T。排序完成后,該節點向主節點發送消息,其中H(T)表示T的哈希。
3)prepare2階段。主節點收到超過2n/3節點(包括自身)發來的prepare1消息后,比較各消息中的H(T)哈希值。如果有超過n/3的相同H(T),主節點向所有節點發送消息,其中表示主節點收集到的prepare1消息集合。
4)commit1階段。節點收到prepare2消息后,首先驗證消息簽名是否正確,其次驗證中簽名是否正確,最后比較H(T)是否與節點自身排好序的交易哈希值相同。驗證通過后,執行這些交易。執行完成后,該節點向主節點發送消息,其中表示帶有處理結果的交易信息。
5)commit2階段。主節點收集超過2n/3條commit1消息后,其中,如果有超過n/3的相同,那么主節點將這些交易打包成最終的區塊B。主節點向所有節點發送消息,commit1Set表示commit1消息集合。各節點和客戶端收到消息后對所有簽名進行驗證,并對擁有一致結果的節點數量核實。驗證通過后,表示區塊B可以添加到本地區塊鏈上了。
IMPBFT的共識流程如算法1所示:收到客戶端的交易請求requestMsg后,共識節點集群nodeSet會對交易請求進行5個階段共識,最終返回交易的結果。
算法1 IMPBFT共識算法。
輸入 交易請求;
輸出 交易的處理共識結果。
6) ENDIF
13) ENDIF
20) ENDIF
24) ENDFOR
25) END
為實現共識的并發執行,在IMPBFT共識中使用流水線。PBFT共識具有原子性,即當前共識未完成,無法進行下一輪共識。這種方式雖然可以加強交易的安全性,卻造成了共識效率的降低,可以采用多輪共識并行的方式提高效率。在IMPBFT共識中,只要不存在沖突交易的區塊(區塊中不存在兩個或兩個以上交易的付款人、收款人為同一客戶),便可以并行處理。而區塊鏈中,區塊的生成必須要等待上一個區塊完成才可以,因為一個區塊頭部需要包含前一個區塊的哈希值。所以,在最后生成區塊的commit2階段,必須保證當前區塊的前一個區塊已經生成。區塊的生成存在順序性,可以采用流水線方式的并行。
在流水線IMPBFT共識機制運行時,需保證“一位客戶交易未確認,該客戶新交易不得被共識”,這也是為了避免“雙花攻擊”。所以五輪共識之內不應存在同一客戶的不同請求,五輪共識內,若客戶多次發送交易請求,那么這些請求將不會被立即處理。
1.3.1 共識多階段消息統一簽名
圖2是使用流水線的5輪IMPBFT共識,其中,phase1、phase2、phase3、phase4、phase5分別代表IMPBFT共識中pre-prepare、prepare1、prepare2、commit1、commit2這5個階段,T1~T9表示9個流水線周期。

圖2 流水線共識Fig. 2 Pipeline consensus
在使用流水線共識期間,每個節點都會向其他節點發送不同階段消息,而每個共識階段的消息都有自己的獨立簽名。簽名與簽名驗證會消耗大量時間,所以對同一時間段向其他節點發送的不同階段的消息只進行一次簽名,將節約許多時間。例如:在圖2中T5期間,主節點需要向其他所有節點發送第1輪共識的commit2消息、第3輪的prepare2消息和第5輪的pre-prepare消息;所有節點都需要向主節點發送第2輪共識的commit1消息和第4輪的prepare1消息。那么,將第1輪的commit2消息、第3輪的prepare2消息和第5輪的pre-prepare消息放在一起,統一簽名后發給所有節點;將第2輪的commit1消息和第4輪的prepare1消息統一簽名后發送給主節點,這將節約大量時間。
1.3.2 無固定周期的IMPBFT流水線共識
無固定周期流水線共識與傳統計算機中流水線有所不同,計算機中采用的流水線都會使用一個統一的流水線周期。計算機中的流水線之所以采用統一流水線周期,是因為計算機處理器中的運算單元、存儲單元等資源都極為有限。如果一個周期沒結束便進行下一步指令處理操作,很可能會導致其他資源被破壞或其他處理操作被迫停止,最終致使執行結果錯誤。因此,計算機中會選擇執行時間最長的指令執行時間作為流水線周期。
然而,在共識程序執行過程中,共識執行所需的內存空間、算力等資源都是充足的。而且,有沖突交易是無法同時被處理的,無需擔心共識階段過早執行會破壞下階段的數據或處理結果,所以無需使用固定流水線周期。在該共識流水線執行過程中,一個節點一旦收集到足夠的消息,并且處理完自身的任務,便可以進行下一階段的任務了,這樣能夠更充分利用計算機資源。但是由于多階段統一簽名的限制,統一簽名的消息需要一起發送,所以每個主節點的pre-prepare、prepare2、commit2消息實際是在使用一個流水線周期時間。同理,每個節點的prepare1、commit1消息也是在使用一個流水線周期時間,這兩個周期時間可以不同。
在無固定周期的IMPBFT共識流水線中,共識自身會對流水線流程進行約束控制:首先,一輪共識的上一階段沒有結束,下一階段無法繼續;其次,由于在commit2階段生成區塊,區塊生成需要上一個區塊提供哈希,所以一輪共識的commit2階段開始必須要等到上一輪共識的commit2階段結束,這些約束也是不使用固定流水線周期的原因。因此實際共識中的流水線可能如圖3所示。最后通過實驗得出,無固定周期流水線的交易吞吐量會高于有固定周期流水線。

圖3 無固定周期流水線Fig. 3 Pipeline without fixed cycle
無固定周期流水線的共識如算法2所示:根據節點的序列號Ni,判斷節點是主節點還是普通共識節點,分別進行不同步驟的流水線共識。
算法2 無固定周期流水線共識算法。
輸入 共識節點序列號;
輸出 共識節點下一共識階段消息。
1) Algorithm NocyclePipeline()
13) ENDIF
19) ENDIF
20) ENDFOR
21) END
PBFT共識要求網絡節點部分同步,即PBFT共識要求有超過2n/3的網絡節點與網絡中其他至少2n/3網絡節點是同步的。由于CDBFT底層直接使用PBFT共識,所以它的要求和PBFT一樣。而IMPBFT共識要求有至少2n/3節點與主節點之間的網絡是同步的,相較于PBFT,IMPBFT網絡要求更低,更具有實用性。
一輪共識中,PBFT的共識通信次數E1為:
一輪共識中,CDBFT的共識通信次數E2為:
一輪共識中,IMPBFT的共識通信次數E3為:
PBFT和CDBFT的通信復雜度為O(n2),IMPBFT的通信復雜度為O(n)。當節點數n很大時,IMPBFT的共識通信量會更少,擴展性更好。
2.2.1 主節點選舉機制
在PBFT共識中,對于拜占庭節點是不做任何處理的,這也意味著拜占庭節點與誠實節點被選為主節點的概率相同。而在IMPBFT共識中,通過有效輪數對節點的拜占庭行為進行約束。
2.2.2 共識安全
PBFT、CDBFT與IMPBFT的共識拜占庭容忍度都是,但是IMPBFT多主節點的設計會更安全。
若只有一個主節點,那么交易的順序將由該主節點決定,這可能會帶來一些弊端。客戶將交易請求發送給主節點,主節點可以選擇不轉發。一段時間之后,客戶沒有收到交易的執行結果,會將交易請求再次發送給主節點以及所有的副本節點。如果該交易沒有被共識,那么節點對該交易共識。但是,交易的最終順序可能會被改變。
例如,客戶C0賬戶有100元,請求1:客戶C0在time時刻向客戶C1轉賬60元,請求2:客戶C0在time+1時刻向客戶C2轉賬50元。正常順序是先執行請求1再執行請求2,并且由于在PBFT共識中,一個客戶的請求未被執行完,那么該客戶是不可以繼續發送請求的,所以,請求2在請求1未出結果前是不合法的。但是,由于網絡或其他原因,兩個請求幾乎同時到達主節點,主節點正確的做法是選擇請求1;如果主節點選擇了請求2,那么最終的交易順序會被改變。
同樣地,惡意客戶不再把請求先發給主節點,而是將請求發送給副本節點,這會造成副本節點認為客戶的請求沒有被及時處理執行。在交易高峰期,惡意客戶向副本節點網絡中發送大量請求,可能會帶來不必要的損失。
主節點故障或存在拜占庭行為會導致其無法正常工作。一旦主節點全部無法正常工作,那么整個共識都將會停止,直到選出新的主節點,客戶的交易也將無法得到及時處理。
2)共識因為主節點全部故障而停止的概率P1:
其中,P1會隨著k的增大而不斷減小,所以主節點越多,共識因為主節點全部故障而停止的概率越小。
3)共識因為主節點全部是拜占庭節點而停止的概率為P2:
4)共識因為主節點全部都故障或者存在拜占庭行為而停止的概率為P3:
其中i表示主節點中拜占庭節點個數。

圖4 主節點數與共識停止的概率關系Fig. 4 Probability relationship between number of primary nodes and consensus stopping
在區塊鏈系統中,當交易量增多時,簽名與簽名的驗證非常耗時。相同的數據,簽名一次比將數據分割后多次簽名要節省時間,同理,將消息合并后一起簽名將會節約大量時間。
IMPBFT共識中每個消息獨立簽名,每輪共識簽名次數S1為:
IMPBFT共識中每個消息獨立簽名,每輪共識簽名驗證總次數V1為:
IMPBFT共識中多階段消息統一簽名,每輪共識簽名總次數S2為:
IMPBFT共識多階段消息統一簽名,每輪共識驗證簽名次數V2為:
使用多階段消息統一簽名的流水線共識,平均一輪共識通信次數E4為:
使用多階段消息統一簽名后,簽名次數與簽名驗證次數會減少,從而達到節約時間的目的。同樣地,使用多消息統一簽名的流水線共識會節約通信資源。
然而,多階段消息統一簽名會讓單次發送的消息數據變大。在網絡環境極差的情況下,例如遭到拒絕服務攻擊(Denial of Service, DoS)時,消息發送失敗的概率可能會高于獨立簽名的消息。
本文實驗利用Go語言編寫一個單機多節點測試平臺,在相同的軟硬件環境下,對不同共識機制進行模擬測試得到實驗數據。實驗電腦配置為:處理器i7-9750;內存16 GB;操作系統Windows 10,64位;實驗部署環境Go 1.15。在實驗中,利用Go語言中的“協程”來模擬節點,利用“通道”來傳輸數據,并利用Go語言中的“test”命令進行共識的性能測試。實驗主要對PBFT、CDBFT與IMPBFT共識的吞吐量、擴展性和交易時延進行了測試。
實驗中,IMPBFT主節點數k分別設置為2、3、4、5、6;CDBFT中組織個數m分別設置為2、3、4、5、6。吞吐量測試中,共識節點數量n分別設置為50、60、70、80,比較共識的不同時間段吞吐量。擴展性測試中,共識輪數(即多少輪共識)分別設置為100、200、300、400、500,控制共識節點數n,比較共識時間。交易時延測試中,通過控制拜占庭節點數f來比較交易的時延。
共識機制的交易吞吐量與共識效率有關,共識效率高,則交易吞吐量也必然高。影響共識效率的主要因素是通信量。該實驗比較了IMPBFT、PBFT、CDBFT以及使用流水線后IMPBFT共識的吞吐量。對共識吞吐量進行多組實驗測試,這里隨機選取了k為3、m為2、n為60的實驗結果,如圖5所示。其中,流水線1表示普通流水線共識(每個消息獨立簽名、有固定周期);流水線2表示“多階段消息統一簽名、有固定周期”流水線共識;流水線3表示“多階段消息統一簽名、無固定周期”流水線共識。三種流水線中設置的參數變量與IMPBFT保持一致。

圖5 PBFT、CDBFT、IMPBFT與使用流水線的IMPBFT的交易吞吐量對比Fig. 5 Comparison of transaction throughput of PBFT,CDBFT, IMPBFT and IMPBFT using pipeline
從圖5可知,IMPBFT共識的交易吞吐量相較PBFT、CDBFT分別提高了259.9%和11.8%。IMPBFT共識引入普通流水線后,比未使用流水線的IMPBFT共識的吞吐量提高了21.6%;引入“多階段消息統一簽名、有固定周期”流水線的IMPBFT共識,比未使用流水線的IMPBFT共識的吞吐量提高了67.5%;引入“多階段消息統一簽名、無固定周期”流水線的IMPBFT共識,比未使用流水線的IMPBFT共識的吞吐量提高了75.2%。綜上可知,IMPBFT的共識效率優于PBFT、CDBFT;使用流水線后,會使IMPBFT共識效率進一步提高。
共識機制中共識節點增多,會造成通信量相應增多,共識時間增長。如果增長速度太快,則表明共識的擴展性較差。擴展性測試主要是測試共識節點數對共識的影響,為了測試擴展性,進行了多組實驗模擬,這里隨機選取k為4、m為4、共識輪數為100的實驗結果,如圖6所示。

圖6 PBFT、CDBFT與IMPBFT的擴展性對比Fig. 6 Comparison of scalability of PBFT,CDBFT and IMPBFT
從圖6可知,隨著節點數的增加,三種共識的時間都在增長,PBFT、CDBFT的共識時間隨著節點數增加呈現平方級增長,IMBFT的共識時間隨著節點數增加呈現線性級增長。這主要是因為前兩個共識機制的通信復雜度為O(n2),而本文提出的IMBFT機制的通信復雜度為O(n)。在擴展性方面,IMPBFT優于PBFT和CDBFT。
交易時延是指交易請求被發出到交易被確認的這段時間,交易時延越小,反映出共識效率越高。此外,共識中拜占庭節點的數量也會對交易的時延有一定影響。為測試交易延遲,進行了多組實驗,這里隨機選取了k為5、m為3、n為300的實驗結果,如圖7所示。
由圖7可知,IMPBFT的交易時延相較PBFT和CDBFT分別降低了71.4%和11.2%,IMPBFT共識中的交易可以更快地被確認。隨著共識中拜占庭節點數增加,PBFT的交易時延有一定幅度增長,而IMPBFT的交易時延最穩定。IMPBFT時延最低是因為其通信量最低,共識效率最高;而IMPBFT的多主節點設計,使該共識受拜占庭節點的影響降低,所以時延也更加穩定。實驗結果表明,在交易時延性方面,IMPBFT優于PBFT和CDBFT。

圖7 PBFT、CDBFT與IMPBFT的交易時延對比Fig. 7 Comparison of transaction delays of PBFT, CDBFT and IMPBFT
本文所提的有效共識輪數為主節點的選取提供依據,并且利用它可以降低拜占庭節點成為主節點的幾率,所提出的IMPBFT共識比單個主節點的共識更穩定安全,共識效率更高。IMPBFT共識中引入了流水線,在流水線執行過程中,多階段消息統一簽名、不使用固定周期,使得IMPBFT的共識效率進一步提高。實驗結果表明,所提IMPBFT共識在交易吞吐量、擴展性和交易時延等方面都有較好表現。隨著區塊鏈的不斷應用,后續還會對共識機制的實用性、效率和安全性做進一步研究。
[1] 韓璇,袁勇,王飛躍.區塊鏈安全問題:研究現狀與展望[J].自動化學報,2019,45(1):206-225.(HAN X, YUAN Y, WANG F Y. Security problems on blockchain: the state of the art and future trends [J]. Acta Automatica Sinica, 2019, 45(1): 206-225.)
[2] 邵奇峰,金澈清,張召,等.區塊鏈技術:架構及進展[J].計算機學報,2018,41(5):969-988.(SHAO Q F, JIN C Q,ZHANG Z, et al. Blockchain:architecture and research progress [J]. Chinese Journal of Computers, 2018, 41(5): 969-988.)
[3] 唐長兵,楊珍,鄭忠龍,等.PoW共識算法中的博弈困境分析與優化[J].自動化學報,2017,43(9):1520-1531.(TANG C B, YANG Z,ZHENG Z L, et al. Game dilemma analysis and optimization of PoW consensus algorithm [J]. Acta Automatica Sinica, 2017, 43(9): 1520-1531.)
[4] 李芳,李卓然,趙赫.區塊鏈跨鏈技術進展研究[J].軟件學報,2019,30(6):1649-1660.(LI F, LI Z R, ZHAO H. Research on the progress in cross-chain technology of blockchains [J]. Journal of Software, 2019, 30(6): 1649-1660.)
[5] CASTRO M, LISKOV B. Practical Byzantine fault tolerance [C]// Proceedings of the 1999 3rd Symposium on Operating Systems Design and Implementation. Berkeley: USENIX Association, 1999: 173-186.
[6] 張超,李強,陳子豪,等.Medical chain:聯盟式醫療區塊鏈系統[J].自動化學報,2019,45(8):1495-1510.(ZHANG C, LI Q, CHEN Z H, et al. Medical chain:alliance medical blockchain system [J]. Acta Automatica Sinica, 2019, 45(8): 1495-1510.)
[7] AHMAD A, SAAD M, NJILLA L, et al. BlockTrail: a scalable multichain solution for blockchain-based audit trails [C]// Proceedings of the 2019 IEEE International Conference on Communications. Piscataway:IEEE, 2019: 1-6.
[8] JIANG Y J, LIAN Z. Scalable efficient Byzantine fault tolerance [C]// Proceedings of the 2019 IEEE 3rd Advanced Information Management, Communicates, Electronic and Automation Control Conference. Piscataway: IEEE, 2019: 1736-1742.
[9] LI X F, LV F R, XIANG F, et al. Research on key technologies of logistics information traceability model based on consortium chain [J]. IEEE Access, 2020, 8:69754-69762.
[10] 包振山,王凱旋,張文博.基于樹形拓撲網絡的實用拜占庭容錯共識算法[J].應用科學學報,2020,38(1):34-50.(BAO Z S, WANG K X,ZHANG W B. A practical Byzantine fault tolerance consensus algorithm based on tree topological network [J]. Journal of Applied Sciences, 2020, 38(1): 34-50.)
[11] 閔新平,李慶忠,孔蘭菊,等.許可鏈多中心動態共識機制[J].計算機學報,2018,41(5):1005-1020.(MIN X P, LI Q Z,KONG L J, et al. Permissioned blockchain dynamic consensus mechanism based multi-centers [J]. Chinese Journal of Computers, 2018, 41(5): 1005-1020.)
[12] CHEN X L, HU X, LI Y, et al. A blockchain based access authentication scheme of energy internet [C]// Proceedings of the 2018 2nd IEEE Conference on Energy Internet and Energy System Integration. Piscataway: IEEE, 2018: 1-9.
[13] XU H, LONG Y, LIU Z Q, et al. Dynamic practical Byzantine fault tolerance [C]// Proceedings of the 2018 IEEE Conference on Communications and Network Security. Piscataway: IEEE, 2018: 1-8.
[14] GAO S, YU T Y, ZHU J M, et al. T-PBFT: an EigenTrust-based practical Byzantine fault tolerance consensus algorithm [J]. China Communications, 2019, 16(12): 111-123.
[15] 賴英旭,薄尊旭,劉靜.基于改進PBFT算法防御區塊鏈中sybil攻擊的研究[J].通信學報,2020,41(9):104-117.(LAI Y X, BO Z X, LIU J. Research on sybil attack in defense blockchain based on improved PBFT algorithm [J]. Journal on Communications, 2020, 41(9): 104-117.)
[16] 苑超,徐蜜雪,斯雪明.基于聚合簽名的共識算法優化方案[J].計算機科學,2018,45(2):53-56,83.(YUAN C, XU M X, SI X M. Optimization scheme of consensus algorithm based on aggregation signature [J]. Computer Science, 2018, 45(2): 53-56, 83.)
[17] 甘俊,李強,陳子豪,等.區塊鏈實用拜占庭容錯共識算法的改進[J].計算機應用,2019,39(7):2148-2155.(GAN J, LI Q, CHEN Z H, et al. Improvement of blockchain practical Byzantine fault tolerance consensus algorithm [J]. Journal of Computer Applications, 2019, 39(7): 2148-2155.)
[18] 王日宏,張立鋒,徐泉清,等.可應用于聯盟鏈的拜占庭容錯共識算法[J].計算機應用研究,2020,37(11):3382-3386.(WANG R H, ZHANG L F,XU Q Q, et al. Byzantine fault tolerance algorithm for consortium blockchain [J]. Application Research of Computers, 2020, 37(11): 3382-3386.)
[19] 韓鎮陽,宮寧生,任珈民.一種區塊鏈實用拜占庭容錯算法的改進[J].計算機應用與軟件,2020, 37(2):226-233,294.(HAN Z Y, GONG N S, REN J M. An improved blockchain practical Byzantine fault tolerance algorithm [J]. Computer Applications and Software, 2020, 37(2): 226-233, 294.)
[20] 韓嗣誠,朱曉榮,張秀賢.優化可擴展的拜占庭容錯共識算法[J].物聯網學報,2020,4(2):18-25.(HANG S C, ZHU X R,ZHANG X X. Optimized scalable Byzantine fault tolerance algorithm [J]. Chinese Journal on Internet of Things, 2020, 4(2): 18-25.)
[21] 方維維,王子岳,宋慧麗,等.一種面向區塊鏈的優化PBFT共識算法[J].北京交通大學學報,2019,43(5):58-64.(FANG W W,WANG Z Y, SONG H L, et al. An optimized PBFT consensus algorithm for blockchain [J]. Journal of Beijing Jiaotong University,2019, 43(5): 58-64.)
[22] 李青鵬,趙相福,陳中育,等.GVGBC:全視圖情形下基于Gossip協議的拜占庭共識算法[J].浙江師范大學學報(自然科學版),2020,43(1):50-55.(LI Q P, ZHAO X F, CHEN Z Y, et al. GVGBC: a Byzantine consensus algorithm in global view based on Gossip protocol [J]. Journal of Zhejiang Normal University (Natural Sciences), 2020, 43(1): 50-55.)
[23] WANG Y H, CAI S B, LIN C L, et al. Study of blockchains’ consensus mechanism based on credit [J]. IEEE Access, 2019,7: 10224-10231.
Improved multi-primary-node consensus mechanism based on practical Byzantine fault tolerance
REN Xiuli, ZHANG Lei*
(College of Information,Liaoning University,Shenyang Liaoning110036,China)
The high communication complexity of Practical Byzantine Fault Tolerance (PBFT) consensus protocol will lead to low consensus efficiency, the failure or the existing of Byzantine behavior of the single primary node will lead to the stop of consensus process. In order to solve these problems, an Improved Multi-primary-node Practical Byzantine Fault Tolerance (IMPBFT) consensus mechanism was proposed. Firstly,the number of effective consensus rounds of nodes was calculated by the number of consensus rounds of nodes, the number of consensus rounds with Byzantine behavior and the priority values assigned to the nodes, and several primary nodes were selected according to the size of effective consensus rounds. Then, the original consensus mechanism was improved to make all nodes use the improved consensus mechanism for consensus. Finally, pipeline was introduced to implement the concurrent execution of IMPBFT consensus. In the pipeline operation, multi-stage messages of different rounds’ consensus were signed together, and no fixed cycle was used to control the pipeline. Theoretical research and experimental results show that, the multi-primary-node structure of IMPBFT is more secure and stable than the consensus structure of single primary node. Compared with PBFT and Credit-Delegated Byzantine Fault Tolerance (CDBFT) consensus with square level traffic, the proposed IMPBFT reduces the traffic to linear level. The IMPBFT has better performance than PBFT and CDBFT in terms of transaction throughput, scalability and transaction delay. The IMPBFT using the “multi-stage messages signed together with no fixed cycle” pipeline has improved the transaction throughput by 75.2% compared with the IMPBFT without pipeline.
blockchain; consortium chain; consensus mechanism; Practical Byzantine Fault Tolerance (PBFT); pipeline
TP311.5
A
1001-9081(2022)05-1500-08
10.11772/j.issn.1001-9081.2021050772
2021?05?13;
2021?09?09;
2021?09?16。
遼寧省自然科學基金資助項目(201202089)。
任秀麗(1965—),女,吉林四平人,教授,博士,主要研究方向:無線網絡與通信、區塊鏈; 張雷(1996—),男,江蘇徐州人,碩士研究生,CCF會員,主要研究方向:區塊鏈。
This work is partially supported by Natural Science Foundation of Liaoning Province (201202089).
REN Xiuli, born in 1965, Ph. D., professor. Her research interests include wireless network and communication, blockchain.
ZHANG Lei, born in 1996, M. S. candidate. His research interests include blockchain.