摘 要:為有效提升業(yè)務(wù)數(shù)據(jù)跨級(jí)可信協(xié)作服務(wù)的可擴(kuò)展性、高魯棒性、高并發(fā)能力與處理效能,提出一種面向多層級(jí)大規(guī)模節(jié)點(diǎn)組網(wǎng)場(chǎng)景的高效共識(shí)算法———高效拜占庭容錯(cuò)(Efficient Byzantine Fault Tolerance,EBFT)。在現(xiàn)有共識(shí)算法的基礎(chǔ)上,把輪換主節(jié)點(diǎn)作為常規(guī)共識(shí)流程的一部分,實(shí)現(xiàn)所有節(jié)點(diǎn)輪流擔(dān)任主節(jié)點(diǎn)進(jìn)行提案,以減輕單一主節(jié)點(diǎn)帶來的壓力并保證節(jié)點(diǎn)間的公平性。通過合并視圖切換流程和正常流程實(shí)現(xiàn)了快速共識(shí),進(jìn)一步提升算法靈活性、可靠性和數(shù)字簽名性能。仿真實(shí)驗(yàn)表明,所提算法滿足了跨級(jí)大規(guī)模業(yè)務(wù)數(shù)據(jù)流轉(zhuǎn)對(duì)業(yè)務(wù)系統(tǒng)處理能力和響應(yīng)速度的實(shí)際需求。
關(guān)鍵詞:跨級(jí)可信協(xié)作;共識(shí)算法;主節(jié)點(diǎn)切換;門限簽名;活性機(jī)制
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)志碼:A 開放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(OSID):
文章編號(hào):1003-3109(2024)04-0817-09
0 引言
各類業(yè)務(wù)數(shù)據(jù)的流轉(zhuǎn)涵蓋采集、匯聚、治理、分析、共享、應(yīng)用和反饋等多流程多環(huán)節(jié),涉及總部、區(qū)域等不同層級(jí)部門用戶,以及數(shù)據(jù)綜合治理、數(shù)據(jù)共享應(yīng)用和數(shù)據(jù)服務(wù)支撐等業(yè)務(wù)信息系統(tǒng),是一個(gè)生產(chǎn)、應(yīng)用多環(huán)節(jié)鉸鏈的跨級(jí)協(xié)作數(shù)據(jù)體系。作為后臺(tái)支撐的業(yè)務(wù)數(shù)據(jù)直接關(guān)系到前臺(tái)業(yè)務(wù)應(yīng)用和各級(jí)用戶的需求能否及時(shí)滿足,效能能否有效發(fā)揮,因此需要在業(yè)務(wù)龐雜、網(wǎng)絡(luò)規(guī)模大、數(shù)據(jù)量大、數(shù)據(jù)積累快等現(xiàn)狀下,進(jìn)行高并發(fā)、高可靠的數(shù)據(jù)可信協(xié)作應(yīng)用。
區(qū)塊鏈?zhǔn)沁\(yùn)用計(jì)算機(jī)網(wǎng)絡(luò)、密碼學(xué)等技術(shù)創(chuàng)造的一種新的多方驗(yàn)證機(jī)制和分布式共享數(shù)據(jù)庫結(jié)構(gòu),集成非對(duì)稱加密、數(shù)據(jù)摘要和數(shù)字簽名等密碼技術(shù),以及時(shí)間戳、分布式共識(shí),智能合約和對(duì)等網(wǎng)絡(luò)等多項(xiàng)關(guān)鍵技術(shù),有分布式架構(gòu)、信息多方共識(shí)、數(shù)據(jù)難篡改及溯源追蹤等特性,能夠聚合多行為主體,在節(jié)點(diǎn)無需互相信任的分布式系統(tǒng)中實(shí)現(xiàn)基于弱中心化信用的點(diǎn)對(duì)點(diǎn)交易、協(xié)調(diào)與協(xié)作,可成為支撐業(yè)務(wù)數(shù)據(jù)跨級(jí)可信協(xié)作服務(wù)的重要技術(shù)手段[1-2]。
共識(shí)算法作為區(qū)塊鏈系統(tǒng)中的關(guān)鍵支撐技術(shù),對(duì)數(shù)據(jù)處理的量級(jí)、數(shù)據(jù)處理的可靠性與穩(wěn)定性以及數(shù)據(jù)處理的性能具有重大影響。當(dāng)前,共識(shí)節(jié)點(diǎn)(Validation Peer,VP )、非共識(shí)節(jié)點(diǎn)(NonValidationPeer,NVP)、錨節(jié)點(diǎn)和輕客戶端等跨層級(jí)多類型業(yè)務(wù)節(jié)點(diǎn)應(yīng)用區(qū)塊鏈共識(shí)技術(shù),采用錨定節(jié)點(diǎn)機(jī)制進(jìn)行大規(guī)模組網(wǎng),建立分域VP 進(jìn)行跨級(jí)可信協(xié)作?,F(xiàn)有共識(shí)算法難以同時(shí)滿足業(yè)務(wù)應(yīng)用復(fù)雜場(chǎng)景對(duì)數(shù)據(jù)量級(jí)、可靠性、穩(wěn)定性以及處理性能的需求[3-5],存在以下制約性難題。
① 節(jié)點(diǎn)數(shù)量增加,所需要交換的信息量也呈指數(shù)級(jí)增長(zhǎng),這會(huì)導(dǎo)致系統(tǒng)負(fù)載增加及網(wǎng)絡(luò)通信量增大,性能下降會(huì)很明顯。在分布式系統(tǒng)的研究中,拜占庭容錯(cuò)(Byzantine Fault Tolerance,BFT)類共識(shí)往往伴隨著較高通信復(fù)雜度,對(duì)網(wǎng)絡(luò)造成的消耗極大,系統(tǒng)規(guī)模不易擴(kuò)大。
② 廣播處理復(fù)雜度高,延長(zhǎng)了響應(yīng)時(shí)間。共識(shí)機(jī)制因需要通過多個(gè)環(huán)節(jié)對(duì)交易進(jìn)行確認(rèn),其中打包驗(yàn)證交易和驗(yàn)證交易分別是主節(jié)點(diǎn)和其他節(jié)點(diǎn)對(duì)交易進(jìn)行確認(rèn)的操作,整個(gè)過程中最耗時(shí)的環(huán)節(jié)(即多輪廣播),現(xiàn)存共識(shí)均將打包驗(yàn)證交易和驗(yàn)證交易進(jìn)行串行執(zhí)行,導(dǎo)致整個(gè)共識(shí)的耗時(shí)較長(zhǎng)。
③ 網(wǎng)絡(luò)環(huán)境不穩(wěn)定,少數(shù)節(jié)點(diǎn)在線時(shí)難以確保共識(shí)的安全性。節(jié)點(diǎn)數(shù)量是時(shí)序區(qū)塊鏈系統(tǒng)去中心化程度的直接指標(biāo)。節(jié)點(diǎn)數(shù)量與賬本安全成正相關(guān),與共識(shí)難度成反相關(guān)。更多的節(jié)點(diǎn)意味著更多的賬本備份,使攻擊者更難修改賬本,數(shù)據(jù)更安全。
因此,亟需研發(fā)一種可面向跨級(jí)可信協(xié)作的大規(guī)模節(jié)點(diǎn)組網(wǎng)共識(shí)算法,提高共識(shí)算法的處理性能與可靠性,保障業(yè)務(wù)數(shù)據(jù)服務(wù)應(yīng)用高質(zhì)量完成。
本文在現(xiàn)有研究的基礎(chǔ)上,提出一種基于區(qū)塊鏈的面向跨級(jí)可信協(xié)作服務(wù)的大規(guī)模節(jié)點(diǎn)組網(wǎng)共識(shí)算法。首先,引入門限簽名、采用鏈?zhǔn)酱_認(rèn)、獨(dú)立設(shè)計(jì)安全性、活性和優(yōu)化活性機(jī)制,提升大規(guī)模網(wǎng)絡(luò)節(jié)點(diǎn)下異步模型下共識(shí)的準(zhǔn)確性、容錯(cuò)性及響應(yīng)能力;其次,設(shè)計(jì)輪換主節(jié)點(diǎn)機(jī)制,將所有節(jié)點(diǎn)輪換擔(dān)任主節(jié)點(diǎn),通過合并視圖切換流程和正常流程實(shí)現(xiàn)快速共識(shí),在保證公平性的同時(shí)緩解單一主節(jié)點(diǎn)的壓力,進(jìn)一步提升算法效率;最后,通過仿真模擬實(shí)驗(yàn),開展了存證壓力測(cè)試和查詢性能測(cè)試,得出本算法在大規(guī)模組網(wǎng)共識(shí)的存證應(yīng)用中,能夠滿足系統(tǒng)處理能力和響應(yīng)速度的實(shí)際需求。
1 節(jié)點(diǎn)共識(shí)技術(shù)
共識(shí)機(jī)制是保證區(qū)塊鏈中所有VP 按照相同順序執(zhí)行事務(wù)、寫入?yún)^(qū)塊的基礎(chǔ),而NVP 只需要從其所連接的VP 中同步區(qū)塊信息,因此無需參與共識(shí)。共識(shí)算法是用于保證分布式系統(tǒng)一致性的機(jī)制,這里的一致性可以是事務(wù)順序的一致性、區(qū)塊數(shù)據(jù)一致性、節(jié)點(diǎn)狀態(tài)的一致性等[6-8]。當(dāng)分布在不同地域的節(jié)點(diǎn)都按照這套規(guī)則進(jìn)行協(xié)商交互之后,最終總能就某個(gè)/ 某些問題得到一致的決策,從而實(shí)現(xiàn)分布式系統(tǒng)中不同節(jié)點(diǎn)的一致性。根據(jù)容錯(cuò)類型,可將共識(shí)算法分為BFT 共識(shí)算法與非拜占庭容錯(cuò)(Crash Fault Tolerance,CFT)共識(shí)算法。
BFT 強(qiáng)調(diào)的是能夠容忍部分區(qū)塊鏈節(jié)點(diǎn)由于硬件錯(cuò)誤、網(wǎng)絡(luò)擁塞或斷開以及遭到惡意攻擊等情況出現(xiàn)的不可預(yù)料的行為[9-10]。BFT 系列算法是典型的BFT 算法,比如實(shí)用拜占庭容錯(cuò)(PracticalByzantine Fault Tolerance,PBFT)算法[11-12]、可擴(kuò)展拜占庭容錯(cuò)(Scalable Byzantine Fault Tolerance,SBFT)算法[13]等。CFT 通常指能夠容忍部分區(qū)塊鏈節(jié)點(diǎn)出現(xiàn)宕機(jī)錯(cuò)誤,但不容忍出現(xiàn)由不可預(yù)料的惡意行為導(dǎo)致的系統(tǒng)故障。常見的CFT 共識(shí)算法有Paxos[14]、分布式一致性議(RAFT)[15-16]等共識(shí)算法。
結(jié)合跨級(jí)可信協(xié)作服務(wù)中不同層級(jí)業(yè)務(wù)節(jié)點(diǎn)動(dòng)態(tài)聯(lián)合又相對(duì)獨(dú)立的業(yè)務(wù)協(xié)同需求,區(qū)塊鏈共識(shí)算法更適合采用RAFT 類或PBFT 類共識(shí)算法。
1. 1 RAFT 算法
2014 年,斯坦福大學(xué)的Ongaro 等[15]提出分布式一致性協(xié)議RAFT 共識(shí)算法。RAFT 算法在具備強(qiáng)大容錯(cuò)性能的Paxos 算法基礎(chǔ)上,對(duì)其復(fù)雜的實(shí)現(xiàn)過程進(jìn)行簡(jiǎn)化,將系統(tǒng)中的角色分為領(lǐng)導(dǎo)者、跟從者和候選者,根據(jù)角色賦予不同的權(quán)限與職能。RAFT 算法主要用于管理日志的一致性,為了達(dá)到易懂易用的目的,此算法將復(fù)雜的分布式共識(shí)問題拆分為領(lǐng)導(dǎo)選舉、日志復(fù)制和安全性3 個(gè)子問題。在容錯(cuò)方面,RAFT 算法允許具有N 個(gè)節(jié)點(diǎn)的區(qū)塊鏈系統(tǒng)中有(N-1)/ 2 個(gè)節(jié)點(diǎn)同時(shí)出現(xiàn)故障。
1. 2 PBFT 算法
由于原始BFT 算法[17]效率不高且實(shí)際可操作性低等缺點(diǎn),1999 年Castro 等[12]提出PBFT 算法。
PBFT 算法可以理解為狀態(tài)機(jī)副本復(fù)制算法,節(jié)點(diǎn)角色被分為客戶端、主節(jié)點(diǎn)和從節(jié)點(diǎn)(備份節(jié)點(diǎn))。在運(yùn)行時(shí),算法會(huì)任取區(qū)塊鏈系統(tǒng)中的節(jié)點(diǎn)作為主節(jié)點(diǎn),其他節(jié)點(diǎn)被稱為從節(jié)點(diǎn)(備份節(jié)點(diǎn))。當(dāng)客戶端向主節(jié)點(diǎn)發(fā)送請(qǐng)求時(shí),主節(jié)點(diǎn)會(huì)通過廣播的形式將客戶端的請(qǐng)求轉(zhuǎn)發(fā)給其他副本節(jié)點(diǎn),所有副本節(jié)點(diǎn)執(zhí)行請(qǐng)求,并將執(zhí)行結(jié)果反饋到客戶端,客戶端收到來自不同副本節(jié)點(diǎn)的反饋,但需要接收到F+1 個(gè)不同副本節(jié)點(diǎn)反饋的相同結(jié)果,才能將反饋的結(jié)果作為整個(gè)操作的最終結(jié)果。PBFT 算法降低了原始BFT 算法的復(fù)雜度,提高其實(shí)際應(yīng)用性。
文獻(xiàn)[18]針對(duì)PBFT 算法存在的通信復(fù)雜度高、算法本身無法避免拜占庭節(jié)點(diǎn)擔(dān)任主節(jié)點(diǎn)等問題,引入節(jié)點(diǎn)信任度評(píng)價(jià)模型對(duì)PBFT 算法進(jìn)行改進(jìn),實(shí)現(xiàn)了監(jiān)理數(shù)據(jù)的分布式安全存儲(chǔ),并通過智能合約保障數(shù)據(jù)上鏈、查詢過程的高效性、透明性。
1. 3 Hotstuff 算法
HotStuff 算法[19]與其他的BFT 類算法最大的區(qū)別就是將兩階段確認(rèn)變?yōu)槿A段確認(rèn),降低了視圖切換時(shí)的通信復(fù)雜度。HotStuff 算法每完成一次共識(shí),更換一個(gè)主節(jié)點(diǎn)。其達(dá)成共識(shí)需要準(zhǔn)備、預(yù)提交、提交和決定4 個(gè)階段。
Hotstuff 的公開實(shí)現(xiàn)通常使用secp256k1 或ED25519 簽名算法[20]來實(shí)現(xiàn)數(shù)字簽名,secp256k1算法是ECDSA 的一種,因此其在實(shí)現(xiàn)聚合簽名和門限簽名方面,效率較低;Hotstuff 中主節(jié)點(diǎn)需要完成接受請(qǐng)求、發(fā)送消息、收集簽名、聚合簽名和驗(yàn)證簽名等任務(wù),而其他副本節(jié)點(diǎn)僅需要驗(yàn)證消息和對(duì)消息進(jìn)行簽名,工作量分配不均衡。
2 模型架構(gòu)設(shè)計(jì)
在跨級(jí)可信協(xié)作服務(wù)應(yīng)用場(chǎng)景下,需要對(duì)上千節(jié)點(diǎn)進(jìn)行大規(guī)模組網(wǎng)部署,形成跨多個(gè)層級(jí)的網(wǎng)絡(luò)架構(gòu)。在這種大規(guī)模分層組網(wǎng)中,若區(qū)塊鏈網(wǎng)絡(luò)中都為VP,一方面,網(wǎng)絡(luò)復(fù)雜度的增加對(duì)網(wǎng)絡(luò)連通性和穩(wěn)定性提出了更高的要求,但在真實(shí)落地場(chǎng)景中,出于網(wǎng)絡(luò)安全和建設(shè)成本的考慮,理想化的網(wǎng)絡(luò)環(huán)境往往很難實(shí)現(xiàn);另一方面,VP 數(shù)量的增加會(huì)導(dǎo)致共識(shí)效率的降低,從而拖慢系統(tǒng)的整體性能。考慮到這些問題,本文提出了面向跨級(jí)可信協(xié)作服務(wù)的大規(guī)模節(jié)點(diǎn)組網(wǎng)分層架構(gòu),通過NVP 和分層架構(gòu)設(shè)計(jì),有效對(duì)整體網(wǎng)絡(luò)節(jié)點(diǎn)水平進(jìn)行擴(kuò)展,實(shí)現(xiàn)不同類型網(wǎng)絡(luò)節(jié)點(diǎn)的大規(guī)模部署。面向跨級(jí)可信協(xié)作服務(wù)的大規(guī)模節(jié)點(diǎn)組網(wǎng)層級(jí)結(jié)構(gòu)由VP 層、NVP 層、輕節(jié)點(diǎn)層和終端設(shè)備層組成,如圖1 所示。
VP 層由VP 組成,該層級(jí)節(jié)點(diǎn)全部參與共識(shí),負(fù)責(zé)區(qū)塊鏈網(wǎng)絡(luò)的共識(shí)驗(yàn)證與區(qū)塊一致性保證。
NVP 層由NVP 組成,同步VP 區(qū)塊數(shù)據(jù),不參與共識(shí),并通過網(wǎng)絡(luò)自發(fā)現(xiàn)轉(zhuǎn)發(fā)模型實(shí)現(xiàn)大規(guī)模NVP 組網(wǎng),實(shí)現(xiàn)區(qū)塊鏈數(shù)據(jù)網(wǎng)絡(luò)水平擴(kuò)展。
輕節(jié)點(diǎn)層包含微數(shù)據(jù)中心、物聯(lián)網(wǎng)網(wǎng)關(guān)等,靠近邊緣設(shè)備終端,提供輕量級(jí)的計(jì)算功能,具備數(shù)據(jù)緩存以及本地計(jì)算的能力,將各種邊緣設(shè)備與區(qū)塊鏈網(wǎng)絡(luò)橋接起來,賦予邊緣計(jì)算能力,提高數(shù)據(jù)的處理效率,降低整體響應(yīng)延遲。主要存儲(chǔ)區(qū)塊頭數(shù)據(jù),用于事務(wù)的證明驗(yàn)證,為終端設(shè)備層提供服務(wù)。
終端設(shè)備層包括感知器、通信模組和攝像頭等各類物聯(lián)網(wǎng)設(shè)備,負(fù)責(zé)數(shù)據(jù)采集與轉(zhuǎn)發(fā)上鏈,解決數(shù)據(jù)真實(shí)性的“第一公里”問題。
NVP 定位于輕量級(jí)服務(wù)節(jié)點(diǎn),不參與共識(shí),僅通過信任的VP 來同步區(qū)塊數(shù)據(jù),并對(duì)外提供事務(wù)轉(zhuǎn)發(fā)、查詢等服務(wù)。NVP 擁有完善的數(shù)據(jù)恢復(fù)機(jī)制,當(dāng)由于網(wǎng)絡(luò)異常等原因?qū)е鹿?jié)點(diǎn)落后時(shí),能及時(shí)同步數(shù)據(jù),恢復(fù)到最新的區(qū)塊狀態(tài),提高了節(jié)點(diǎn)的可用性。此外,NVP 提供的區(qū)塊鏈服務(wù)獨(dú)立于VP,除了事務(wù)上鏈、查詢和驗(yàn)證等基礎(chǔ)功能外,還支持?jǐn)?shù)據(jù)索引、數(shù)據(jù)歸檔、可信文件存儲(chǔ)和接口權(quán)限管理等功能,適應(yīng)更加多樣化的應(yīng)用場(chǎng)景。
在跨級(jí)協(xié)作大規(guī)模組網(wǎng)應(yīng)用場(chǎng)景中,普遍面臨網(wǎng)絡(luò)環(huán)境復(fù)雜、帶寬有限和低時(shí)延等問題。共識(shí)算法是限制區(qū)塊鏈性能的重要瓶頸,而目前主流聯(lián)盟鏈所采用的共識(shí)算法無法滿足上述數(shù)據(jù)業(yè)務(wù)應(yīng)用要求。本文在現(xiàn)有RAFT 算法、BFT 類共識(shí)算法基礎(chǔ)上,提出支持大規(guī)模分層分區(qū)共識(shí)技術(shù)的高效拜占庭容錯(cuò)(Efficient Byzantine Fault Tolerance,EBFT)模型,通過門限簽名、鏈?zhǔn)酱_認(rèn)、安全性與活性解耦、活性機(jī)制優(yōu)化、交易緩存池、快速恢復(fù)機(jī)制等六方面進(jìn)行技術(shù)優(yōu)化,保證區(qū)塊鏈網(wǎng)絡(luò)異步狀態(tài)下的共識(shí)一致性,提高復(fù)雜網(wǎng)絡(luò)環(huán)境下共識(shí)活性表現(xiàn)及響應(yīng)能力,大幅降低共識(shí)算法網(wǎng)絡(luò)復(fù)雜度,適應(yīng)網(wǎng)絡(luò)情況復(fù)雜、網(wǎng)絡(luò)帶寬有限等客觀條件。
(1)引入門限簽名
將其他共識(shí)算法中的節(jié)點(diǎn)相互廣播消息,改由各個(gè)節(jié)點(diǎn)發(fā)送給領(lǐng)導(dǎo)者(Leader)節(jié)點(diǎn),由Leader 利用門限簽名將這些消息簽名聚合后再?gòu)V播給其他節(jié)點(diǎn),極大地減少了系統(tǒng)中的消息量,從O(n2 )減到了O(n)。相比于PBFT 的2 輪投票,新型共識(shí)算法采用3 輪投票,多了一輪投票,各個(gè)節(jié)點(diǎn)集齊投票就可以進(jìn)入下一個(gè)共識(shí),而不需要等待固定的時(shí)間。
(2)采用鏈?zhǔn)酱_認(rèn)
認(rèn)可一個(gè)區(qū)塊實(shí)際上也是對(duì)于該區(qū)塊父區(qū)塊的認(rèn)可。在鏈?zhǔn)降男滦凸沧R(shí)算法中,可以將區(qū)塊的確認(rèn)放在下一個(gè)區(qū)塊中,只要一個(gè)區(qū)塊后面產(chǎn)生了3 個(gè)連續(xù)區(qū)塊,就說明該區(qū)塊經(jīng)過了3 輪投票確認(rèn),可以最終確定。
(3)安全性和活性解耦
將安全性和活性分開獨(dú)立設(shè)計(jì),共識(shí)算法的安全性經(jīng)過嚴(yán)格的數(shù)學(xué)證明,同時(shí)其活性可以更加靈活定制,例如領(lǐng)導(dǎo)者如何切換、超時(shí)時(shí)間如何定義等可以靈活地留給使用者定義。
(4)優(yōu)化活性機(jī)制
活性機(jī)制是保證共識(shí)能夠持續(xù)推進(jìn)的關(guān)鍵所在。將設(shè)計(jì)一個(gè)更加靈活的超時(shí)機(jī)制來應(yīng)對(duì)實(shí)際互聯(lián)網(wǎng)環(huán)境中不穩(wěn)定的延遲與斷網(wǎng)情況。如果節(jié)點(diǎn)因?yàn)橄到y(tǒng)網(wǎng)絡(luò)不穩(wěn)定導(dǎo)致進(jìn)入多輪超時(shí)的話,不會(huì)頻繁地進(jìn)行輪次切換,而是以一個(gè)逐漸放緩的速率進(jìn)行輪次切換,大大減少了輪次切換的次數(shù)。
(5)實(shí)現(xiàn)交易緩存池
為避免交易丟失專門設(shè)計(jì)交易緩存池,不僅能用于交易緩存,還可進(jìn)行交易去重。通過設(shè)置交易緩存池,共識(shí)階段就可以發(fā)現(xiàn)重復(fù)交易,不會(huì)將重復(fù)交易作為提案消息通過網(wǎng)絡(luò)發(fā)送給其他節(jié)點(diǎn),從源頭上杜絕重復(fù)交易的發(fā)生。
(6)快速恢復(fù)機(jī)制
網(wǎng)絡(luò)波動(dòng)可能導(dǎo)致VP 丟失部分共識(shí)消息,從而落后于其他VP。通過提供狀態(tài)同步功能來拉取最新的區(qū)塊、賬本信息等,落后節(jié)點(diǎn)將分兩階段來進(jìn)行同步:當(dāng)節(jié)點(diǎn)落后足夠多時(shí),通過直接拉取區(qū)塊執(zhí)行的方式恢復(fù)到一個(gè)最新的穩(wěn)定檢查點(diǎn)高度;當(dāng)節(jié)點(diǎn)落后足夠少時(shí),通過直接向其他節(jié)點(diǎn)索要仲裁證書(Quorum Certificate,QC)的方式來快速恢復(fù)共識(shí)進(jìn)度。為提高同步的效率,采用并行向不同源節(jié)點(diǎn)拉取區(qū)塊的機(jī)制能夠以最快的速度拉取所有丟失的交易等待執(zhí)行,減少了整個(gè)等待執(zhí)行的時(shí)間。
EBFT 集群由VP 層的全部節(jié)點(diǎn)組成,算法基于BFT 模型,即錯(cuò)誤節(jié)點(diǎn)在算法執(zhí)行過程中可以表現(xiàn)出任意行為,但其計(jì)算能力是有限,無法進(jìn)行偽造簽名等打破密碼學(xué)假設(shè)的行為。EBFT 集群節(jié)點(diǎn)間的通信是可靠且可驗(yàn)證的,集群網(wǎng)絡(luò)采用弱同步網(wǎng)絡(luò)假設(shè),即系統(tǒng)能夠在未知但有界的時(shí)間內(nèi)進(jìn)入同步狀態(tài),使得節(jié)點(diǎn)間消息傳輸能夠在已知時(shí)間內(nèi)完成。
在實(shí)際應(yīng)用場(chǎng)景中進(jìn)行部署時(shí),系統(tǒng)VP 總數(shù)由配置參數(shù)指定,并與對(duì)應(yīng)的詳細(xì)節(jié)點(diǎn)配置互相驗(yàn)證。系統(tǒng)法定個(gè)數(shù)表示系統(tǒng)中正確節(jié)點(diǎn)的最少數(shù)量,當(dāng)系統(tǒng)中正確節(jié)點(diǎn)數(shù)不少于法定個(gè)數(shù)時(shí),集群的安全性和活性能夠得到保證;法定個(gè)數(shù)應(yīng)不少于VP總數(shù)的2 / 3。
3 算法實(shí)現(xiàn)設(shè)計(jì)
EBFT 算法模型通過優(yōu)化算法活性、可靠性和數(shù)字簽名性能,以解決大規(guī)模節(jié)點(diǎn)組網(wǎng)場(chǎng)景下共識(shí)效率低下、可擴(kuò)展性不強(qiáng)的問題。
3. 1 EBFT 算法流程
EBFT 算法把輪換主節(jié)點(diǎn)作為常規(guī)共識(shí)流程的一部分,所有節(jié)點(diǎn)都能輪流作為主節(jié)點(diǎn)進(jìn)行提案,這樣不僅緩解了單一主節(jié)點(diǎn)帶來的壓力,也極大地保證了節(jié)點(diǎn)之間的公平性。算法基本流程如圖2所示。
節(jié)點(diǎn)在收到交易后會(huì)進(jìn)行全網(wǎng)廣播,選擇當(dāng)前主節(jié)點(diǎn)進(jìn)行打包。其余節(jié)點(diǎn)判斷共識(shí)是否超時(shí),如果超時(shí),就通過傳遞QC 來保證輪換主節(jié)點(diǎn)后,系統(tǒng)仍然能夠正常提供共識(shí)服務(wù)。如果沒有超時(shí),循環(huán)至客戶端停止發(fā)送請(qǐng)求。
此外,合并視圖切換流程和正常流程,即無需單獨(dú)的視圖切換流程。切換視圖時(shí),節(jié)點(diǎn)直接切換到新視圖并通知新的主節(jié)點(diǎn),無需確認(rèn)其他節(jié)點(diǎn)希望切換視圖,從而降低了視圖切換的復(fù)雜度,實(shí)現(xiàn)快速共識(shí)。
(1)共識(shí)算法主流程
在大規(guī)模節(jié)點(diǎn)中,共識(shí)推進(jìn)的流程主要是提案(Proposal)階段與投票(Vote)階段的循環(huán)。共識(shí)算法主流程如圖3 所示。
步驟1:交易和廣播。節(jié)點(diǎn)收到交易之后,剔除重復(fù)交易后將其存入到本地內(nèi)存池中,隨后將其廣播給其他所有節(jié)點(diǎn),收到廣播的節(jié)點(diǎn)會(huì)進(jìn)行同樣的去重存儲(chǔ)操作。需要注意的是,現(xiàn)在交易的接收與廣播流程由內(nèi)存池負(fù)責(zé),不在共識(shí)主流程中。
步驟2:提案。當(dāng)前輪次的主節(jié)點(diǎn)負(fù)責(zé)進(jìn)行打包,從內(nèi)存池中取出若干筆符合要求的交易打包,并附帶上一輪的QC 封裝成一個(gè)提案,廣播給其他節(jié)點(diǎn)。
步驟3:投票。所有的節(jié)點(diǎn)(包括主節(jié)點(diǎn))在監(jiān)聽到提案消息后,都會(huì)驗(yàn)證提案l 的合法性,驗(yàn)證通過后,首先檢查該提案中的QC 是否能夠提交前序的區(qū)塊,如果達(dá)到了三鏈安全性提交規(guī)則,則直接提交區(qū)塊,等待區(qū)塊執(zhí)行完成之后將其中的交易從內(nèi)存池中移除。最后,節(jié)點(diǎn)會(huì)將投票信息發(fā)送至下一輪的主節(jié)點(diǎn)(下一輪的主節(jié)點(diǎn)選擇策略定義在活性規(guī)則中)。需要注意的是,每個(gè)節(jié)點(diǎn)的投票中都會(huì)附帶節(jié)點(diǎn)簽名。
步驟4:提案階段。下一輪的主節(jié)點(diǎn)收到法定個(gè)數(shù)投票后,聚合成一個(gè)QC,并開始下一輪打包,并重復(fù)步驟2 與步驟3,一直到出現(xiàn)超時(shí)的情況。
(2)超時(shí)輪換主節(jié)點(diǎn)流程
當(dāng)主節(jié)點(diǎn)由于網(wǎng)絡(luò)原因或者其他因素導(dǎo)致從節(jié)點(diǎn)無法按期收到提案進(jìn)行投票時(shí),通過構(gòu)造超時(shí)證書(Timeout Cert,TC)觸發(fā)超時(shí)機(jī)制,通過集群資源管理器活性模塊讓全網(wǎng)快速地進(jìn)入到下一個(gè)輪次(round)繼續(xù)共識(shí)。超時(shí)輪換主節(jié)點(diǎn)流程如圖4所示。
步驟1:交易和廣播。所有VP 接收交易并且廣播交易,當(dāng)前的主節(jié)點(diǎn)正常的進(jìn)行打包并廣播提案。
步驟2:輪次超時(shí)(Round Timeout)。由于網(wǎng)絡(luò)原因,導(dǎo)致主節(jié)點(diǎn)提案并沒有及時(shí)地發(fā)送到從節(jié)點(diǎn),因此從節(jié)點(diǎn)不會(huì)對(duì)本輪次進(jìn)行投票。
步驟3:廣播超時(shí)信息。所有節(jié)點(diǎn)都無法按期收到本輪的提案,導(dǎo)致超時(shí),全網(wǎng)廣播超時(shí)投票消息,其中會(huì)附帶本節(jié)點(diǎn)當(dāng)前所處的輪次號(hào)以及節(jié)點(diǎn)的簽名。
步驟4:提案。下一輪的主節(jié)點(diǎn)在一定時(shí)間內(nèi)收到共識(shí)算法達(dá)成共識(shí)所需要的投票節(jié)點(diǎn)個(gè)數(shù)個(gè)超時(shí)投票消息后,即構(gòu)造成TC,TC 從內(nèi)存池中取出若干筆合法交易打包,即可將TC 與其封裝成一個(gè)新的提案進(jìn)行廣播,進(jìn)入下一輪次共識(shí),保障共識(shí)服務(wù)順利進(jìn)行。
3. 2 節(jié)點(diǎn)共識(shí)功能設(shè)計(jì)
共識(shí)算法模塊作為區(qū)塊鏈支撐平臺(tái)重要組成部分,通過平臺(tái)共識(shí)引擎運(yùn)行。其主要功能結(jié)構(gòu)包括五部分,分別是交易池、安全規(guī)則管理、活性管理、區(qū)塊存儲(chǔ)和加密,如圖5 所示。
(1)交易池模塊
交易池(Mempool)是交易緩沖池,同時(shí)具備交易去重的功能。當(dāng)節(jié)點(diǎn)收到客戶端發(fā)來的交易,會(huì)首先將交易放到Mempool 中。Mempool 會(huì)檢查交易是否已經(jīng)過時(shí),是否已經(jīng)存在同樣的交易。
Mempool 從功能上可以分成兩部分:一部分是與本地的共識(shí)模塊進(jìn)行交互的接口;一部分是與其他VP 的Mempool 對(duì)交易進(jìn)行同步的接口。當(dāng)共識(shí)模塊需要生成提案時(shí),將會(huì)從Mempool 中取出交易。當(dāng)提案完成共識(shí),共識(shí)模塊會(huì)通知Mempool 將共識(shí)的交易從內(nèi)存中刪除。同時(shí),Mempool 每隔一段時(shí)間,會(huì)向其他VP 節(jié)點(diǎn)廣播自己最新獲知的可以作為提案的交易。
(2)安全規(guī)則管理器模塊
安全規(guī)則是保證系統(tǒng)安全性和正確性的重要支撐。在安全規(guī)則設(shè)計(jì)中,視圖以單調(diào)遞增的方式不斷切換。在每個(gè)視圖內(nèi),都有一個(gè)唯一的Leader 節(jié)點(diǎn),負(fù)責(zé)收集和轉(zhuǎn)發(fā)共識(shí)消息,并生成QC 證書等等。每個(gè)VP 都在本地存儲(chǔ)了一顆狀態(tài)樹,樹上的每個(gè)節(jié)點(diǎn)(node)存儲(chǔ)了若干條待執(zhí)行的命令(即來自客戶端的請(qǐng)求)、協(xié)議相關(guān)的元數(shù)據(jù)和一個(gè)指向父節(jié)點(diǎn)的鏈接。一個(gè)給定節(jié)點(diǎn)的所在分支是該節(jié)點(diǎn)到達(dá)樹根的路徑。隨著視圖的增長(zhǎng),樹上的某分支會(huì)被投票并達(dá)到已提交的狀態(tài),這些已提交狀態(tài)的葉子節(jié)點(diǎn)將被最終執(zhí)行。
安全性主要包括對(duì)投票規(guī)則和提交規(guī)則的約束和定義。安全節(jié)點(diǎn)的判斷有2 個(gè)指標(biāo):提案消息中的節(jié)點(diǎn)是本地已鎖定證書節(jié)點(diǎn)(lockedQC)所在分支的擴(kuò)展;提案消息中的QC 的視圖值大于本地lockedQC 的視圖值。一個(gè)VP 只會(huì)對(duì)滿足安全條件的提案進(jìn)行投票,其中lockedQC 在提交階段決定。
(3)活性管理器模塊
活性管理器(Pacemaker)組件[19]用來保證系統(tǒng)的活性。活性是保證系統(tǒng)在給定的全局延遲時(shí)間內(nèi)能夠一直向前運(yùn)轉(zhuǎn)的關(guān)鍵所在,也是所有共識(shí)算法在設(shè)計(jì)之初都必須考慮在內(nèi)的關(guān)鍵因素。Pacemaker 主要有以下2 個(gè)功能:在一個(gè)足夠長(zhǎng)的時(shí)間內(nèi),把所有節(jié)點(diǎn)的狀態(tài)樹更新到一致的高度;幫助主節(jié)點(diǎn)提議出讓正確的副本節(jié)點(diǎn)能夠接受的區(qū)塊。
起搏器會(huì)實(shí)時(shí)維護(hù)當(dāng)前所處的round,收到的最新QC 的round,以及最近一次提交區(qū)塊的round。每當(dāng)節(jié)點(diǎn)進(jìn)入到一個(gè)新的round 時(shí),Pacemaker 都會(huì)啟動(dòng)一個(gè)超時(shí)器,如果在規(guī)定時(shí)間內(nèi)不能收到一條合法的提案消息,就會(huì)觸發(fā)超時(shí)事件,節(jié)點(diǎn)會(huì)向全網(wǎng)發(fā)送一個(gè)超時(shí)信息,當(dāng)節(jié)點(diǎn)收到超過法定個(gè)數(shù)節(jié)點(diǎn)發(fā)送的超時(shí)信息時(shí),說明此時(shí)有超過法定個(gè)數(shù)節(jié)點(diǎn)認(rèn)為當(dāng)前的主節(jié)點(diǎn)失效了,Pacemaker 會(huì)主動(dòng)更新當(dāng)前的round 進(jìn)入到下一個(gè)round,并再次啟動(dòng)超時(shí)器,直到某個(gè)round 下,能夠收到一條合法的提案消息,才開始正常處理交易。
(4)區(qū)塊存儲(chǔ)模塊
區(qū)塊存儲(chǔ)是節(jié)點(diǎn)在內(nèi)存中維護(hù)的最近使用的區(qū)塊緩存。在共識(shí)過程中,節(jié)點(diǎn)本身會(huì)根據(jù)本地Mempool 中的交易生成新的區(qū)塊,也會(huì)收到其他節(jié)點(diǎn)的提案,從中獲取區(qū)塊信息。區(qū)塊存儲(chǔ)記錄了這些區(qū)塊之間的關(guān)聯(lián),給其他模塊提供獲取區(qū)塊信息的接口。
(5)加密模塊
加密模塊主要負(fù)責(zé)消息的簽名和驗(yàn)簽,保證了節(jié)點(diǎn)無法對(duì)消息進(jìn)行偽造和篡改。當(dāng)某一節(jié)點(diǎn)收到來自其他節(jié)點(diǎn)的消息時(shí),該節(jié)點(diǎn)的首要任務(wù)是確認(rèn)消息的真實(shí)性,因?yàn)樵诎菡纪サ膱?chǎng)景下,惡意節(jié)點(diǎn)可以發(fā)送虛假的消息以誤導(dǎo)正常的節(jié)點(diǎn)。
采用ED25519 作為簽名以及驗(yàn)簽的算法,該算法的速度比常用的ECDSA 算法更快,因此在大規(guī)模組網(wǎng)共識(shí)的場(chǎng)景中具有顯著的優(yōu)勢(shì)。
由于網(wǎng)絡(luò)存在丟包、延遲和斷網(wǎng)的可能,節(jié)點(diǎn)并不能總是按序收到所有提案,當(dāng)節(jié)點(diǎn)因?yàn)榫W(wǎng)絡(luò)原因丟失了幾條提案后再收到一條包含更大round 的提案時(shí),節(jié)點(diǎn)需要進(jìn)行快速同步,這里包含如下2 種情況:節(jié)點(diǎn)落后超過3 個(gè)round,此時(shí)需要先快速同步所有落后的區(qū)塊,之后再同步近3 個(gè)QC 以及區(qū)塊;節(jié)點(diǎn)落后小于3 個(gè)round,則只需要同步最新的若干個(gè)round 及QC 即可。
通過批量驗(yàn)簽算法,一次驗(yàn)簽就可以判斷QC的真實(shí)性這樣當(dāng)某節(jié)點(diǎn)收到QC 之后,就不再需要對(duì)QC 中的投票信息進(jìn)行逐一驗(yàn)簽。如此設(shè)計(jì)可緩解QC 校驗(yàn)的壓力,對(duì)于提高共識(shí)算法的性能具有重要的意義。
4 仿真模擬實(shí)驗(yàn)
為了評(píng)估本算法在實(shí)際存證場(chǎng)景下的真實(shí)表現(xiàn),對(duì)其存證交易的具體場(chǎng)景進(jìn)行模擬。仿真模擬實(shí)驗(yàn)硬件環(huán)境如表1 所示,軟件環(huán)境如表2 所示。
4. 1 實(shí)驗(yàn)設(shè)置
(1)存證壓力測(cè)試
為了驗(yàn)證產(chǎn)品存證交易的壓力測(cè)試場(chǎng)景下的表現(xiàn),采用4 個(gè)VP 進(jìn)行模擬,節(jié)點(diǎn)間采用P2P 網(wǎng)絡(luò),確保節(jié)點(diǎn)之間的通信正常。VP 仿真實(shí)驗(yàn)設(shè)置示意如圖6 所示。
假設(shè)存證數(shù)據(jù)大小固定為200 Byte,持續(xù)10 min 向單個(gè)節(jié)點(diǎn)發(fā)送存證交易,使壓力維持在一個(gè)較高的水平,根據(jù)需要調(diào)整存證交易的發(fā)送頻率,并檢測(cè)VP 的處理能力和性能指標(biāo),從而評(píng)估本算法在高負(fù)載情況下的性能表現(xiàn)。
根據(jù)EBFT 算法,若主節(jié)點(diǎn)超時(shí)無響應(yīng)會(huì)進(jìn)行主節(jié)點(diǎn)切換,確保共識(shí)正常運(yùn)行。設(shè)置主節(jié)點(diǎn)切換的條件為輪次切換周期不超過1 s。監(jiān)測(cè)主節(jié)點(diǎn)切換的時(shí)間和過程,評(píng)估主節(jié)點(diǎn)切換對(duì)系統(tǒng)的影響以及系統(tǒng)的容錯(cuò)性。
(2)查詢性能測(cè)試
在區(qū)塊鏈網(wǎng)絡(luò)正常運(yùn)行的前提條件下,確保查詢節(jié)點(diǎn)的緩存內(nèi)容已被清除,以獲得準(zhǔn)確的查詢性能數(shù)據(jù)。持續(xù)5 min 向單個(gè)節(jié)點(diǎn)發(fā)送查詢請(qǐng)求,根據(jù)需要調(diào)整查詢請(qǐng)求的發(fā)送頻率。監(jiān)測(cè)單節(jié)點(diǎn)的查詢響應(yīng)時(shí)間、吞吐量和延遲等指標(biāo),以評(píng)估系統(tǒng)在大量查詢處理下的性能表現(xiàn)。
4. 2 實(shí)驗(yàn)結(jié)果
存證壓力測(cè)試結(jié)果如圖7 所示。在10 月15 日15:04:14—15:15:13 這段時(shí)間內(nèi),存證壓力場(chǎng)景下的事務(wù)數(shù)/ 秒(Transactions Per Second,TPS)均值為50 977. 8,每秒上鏈交易數(shù)(CTPS )均值為50 196. 285 156,交易成功率為98. 556 6% 。
由圖7 可以看出,在高壓力的存證場(chǎng)景下,系統(tǒng)能夠以每秒超過5 萬個(gè)交易的速度、低于5% 的錯(cuò)誤率處理大批量存證交易請(qǐng)求,并具有較高的交易成功率,進(jìn)一步證實(shí)了算法在高負(fù)載條件下的性能能夠滿足需求。
查詢性能測(cè)試結(jié)果如圖8 所示,在10 月16 日11:42:22—11:49:19 這段時(shí)間內(nèi),在單節(jié)點(diǎn)大量查詢處理場(chǎng)景下的每秒查詢率(Queries Per Second,QPS)均值為61 039,且抽樣查詢結(jié)果全部正確。
由圖8 可以看出,在正常運(yùn)行的區(qū)塊鏈網(wǎng)絡(luò)中,系統(tǒng)能夠以每秒超過6 萬個(gè)查詢的速度處理查詢請(qǐng)求,并且在大批量查詢時(shí)保持良好的準(zhǔn)確性。所有抽樣查詢的結(jié)果都是正確的,進(jìn)一步證明了系統(tǒng)在面對(duì)大量查詢時(shí)能夠正常運(yùn)行。
仿真實(shí)驗(yàn)結(jié)果表明,本文提出的共識(shí)算法在存證壓力場(chǎng)景下能夠處理高負(fù)載的批量交易,并且在單節(jié)點(diǎn)大量查詢處理場(chǎng)景下能夠以高吞吐量和準(zhǔn)確度運(yùn)行,滿足大規(guī)模組網(wǎng)共識(shí)的存證場(chǎng)景中對(duì)系統(tǒng)處理能力和響應(yīng)速度的實(shí)際需求。
5 結(jié)束語
本文提出了一種高效的共識(shí)算法—EBFT,以滿足跨級(jí)協(xié)作數(shù)據(jù)服務(wù)場(chǎng)景對(duì)數(shù)據(jù)規(guī)模、可靠性、穩(wěn)定性和處理性能的要求,解決了在大規(guī)模節(jié)點(diǎn)網(wǎng)絡(luò)場(chǎng)景中低共識(shí)效率和有限可擴(kuò)展性的局限性。仿真實(shí)驗(yàn)表明,EBFT 可以在存在證明的場(chǎng)景下處理高負(fù)載批處理事務(wù),在單個(gè)節(jié)點(diǎn)上涉及大量查詢的場(chǎng)景下實(shí)現(xiàn)高吞吐量和準(zhǔn)確性。該算法有效滿足了數(shù)據(jù)服務(wù)應(yīng)用中大規(guī)模節(jié)點(diǎn)網(wǎng)絡(luò)對(duì)系統(tǒng)處理能力和響應(yīng)速度的實(shí)際要求。
在后續(xù)工作中,將進(jìn)一步探索降低共識(shí)算法的復(fù)雜性,適應(yīng)不同的網(wǎng)絡(luò)復(fù)雜性和有限的資源,使其適用于可信協(xié)作數(shù)據(jù)服務(wù)等領(lǐng)域的應(yīng)用。
參考文獻(xiàn)
[1] 蔡曉晴,鄧堯,張亮,等. 區(qū)塊鏈原理及其核心技術(shù)[J]. 計(jì)算機(jī)學(xué)報(bào),2021,44(1):84-131.
[2] 田志宏,趙金東. 面向物聯(lián)網(wǎng)的區(qū)塊鏈共識(shí)機(jī)制綜述[J]. 計(jì)算機(jī)應(yīng)用,2021,41(4):917-929.
[3] 劉煒,阮敏捷,佘維,等. 面向物聯(lián)網(wǎng)的PBFT 優(yōu)化共識(shí)算法[J]. 計(jì)算機(jī)科學(xué),2021,48(11):151-158.
[4] 黃鄭正,張曉蝶,趙金輝,等. 基于區(qū)塊鏈的知識(shí)共享機(jī)制的設(shè)計(jì)[J]. 重慶理工大學(xué)學(xué)報(bào)(自然科學(xué)),2021,35(9):143-151.
[5] 陶永才,李哲,石磊,等. 一種可信的車聯(lián)網(wǎng)區(qū)塊鏈數(shù)據(jù)共享模型[J]. 小型微型計(jì)算機(jī)系統(tǒng),2021,42(10):2131-2139.
[6] 譚朋柳,王潤(rùn)庶,曾文豪,等. 區(qū)塊鏈共識(shí)算法綜述[J]. 計(jì)算機(jī)科學(xué),2023,50(增刊1):691-702.
[7] 張彭奕,宋杰. 區(qū)塊鏈共識(shí)算法效能優(yōu)化研究進(jìn)展[J]. 計(jì)算機(jī)科學(xué),2020,47(12):296-303.
[8] 翁越男,魏小平,劉洋,等. 一種基于區(qū)塊鏈的無人機(jī)集群協(xié)作監(jiān)測(cè)框架設(shè)計(jì)[J]. 無線電工程,2022,52(7):1250-1259.
[9] 冷基棟,呂學(xué)強(qiáng),姜陽,等. 聯(lián)盟鏈共識(shí)機(jī)制研究綜述[J]. 數(shù)據(jù)分析與知識(shí)發(fā)現(xiàn),2021,5(1):56-65.
[10] 任暢,趙洪,蔣華. 一種量子安全拜占庭容錯(cuò)共識(shí)機(jī)制[J]. 計(jì)算機(jī)科學(xué),2022,49(5):333-340.
[11] 鄭敏,王虹,劉洪,等. 區(qū)塊鏈共識(shí)算法研究綜述[J].信息網(wǎng)絡(luò)安全,2019(7):8-24.
[12] CASTRO M,LISKOV B. Practical Byzantine Fault Tolerance[C]∥Proceedings of the Third Symposium on Operating Systems Design and Implementation. [S. l. ]:ACM,1999:173-186.
[13] GUETA G G,ABRAHAM I,GROSSMAN S,et al. SBFT:A Scalable and Decentralized Trust Infrastructure[C]∥2019 49th Annual IEEE / IFIP International Conference onDependable Systems and Networks. Portland:IEEE,2019:568-580.
[14] LAMPORT L. Paxos Made Simple[EB / OL]. (2001-11-01)[2023-11 -20]. http:∥lamport. azurewebsites. net /pubs / paxos-simple. pdf.
[15] ONGARO D,OUSTERHOUT J. In Search of an Understandable Consensus Algorithm[C]∥ Proceedings of the2014 USENIX Conference on USENIX Annual TechnicalConference. [S. l. ]:ACM,2014:305-320.
[16] 吳奕,仲盛. 區(qū)塊鏈共識(shí)算法Raft 研究[J]. 信息網(wǎng)絡(luò)安全,2021,21(6):36-44.
[17] LAMPORT L,SHOSTAK R,PEASE M. The ByzantineGenerals Problem[J]. ACM Transactions on ProgrammingLanguages and Systems,1982,4(3):382-401.
[18] 黃子鑫,黨建武,王陽萍,等. 基于改進(jìn)PBFT 的區(qū)塊鏈工程監(jiān)理數(shù)據(jù)共享模型[J]. 無線電工程,2023,53(2):298-307.
[19] YIN M F,MALKHI D,REITER M K,et al. HotStuff:BFTConsensus with Linearity and Responsiveness[C]∥ Proceedings of the 2019 ACM Symposium on Principles ofDistributed Computing. New York:ACM,2019:347-356.
[20] BAUDET M,CHING A,CHURSIN A,et al. State MachineReplication in the Libra Blockchain [EB / OL]. [2023 -12-10]. https:∥sonnino. com / papers / librabft. pdf.
作者簡(jiǎn)介
張岐坦 男,(1986—),博士,高級(jí)工程師。
卜毅明 男,(1986—),博士,高級(jí)工程師。
沈宇婷 女,(1990—),博士,高級(jí)工程師。
基金項(xiàng)目:河北省智能化信息感知與處理重點(diǎn)實(shí)驗(yàn)室發(fā)展基金項(xiàng)目(SXX22138X002)