亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于聯(lián)盟鏈微電網(wǎng)交易的改進Raft共識算法

        2024-10-14 00:00:00張銘泉曹新宇
        計算機應(yīng)用研究 2024年10期

        摘 要:針對聯(lián)盟鏈微電網(wǎng)交易場景的高吞吐量與抵御拜占庭節(jié)點攻擊的需求,提出了一種基于Raft的多領(lǐng)導(dǎo)者拜占庭容錯共識算法MLB-Raft(multi-leader Byzantine fault tolerance-Raft)。首先使用可驗證隨機函數(shù)VRF選舉領(lǐng)導(dǎo)者節(jié)點群,通過多領(lǐng)導(dǎo)者并行提交區(qū)塊的方式提高算法的吞吐量;接著引入了協(xié)調(diào)者角色,負責(zé)領(lǐng)導(dǎo)者的選舉、管理與系統(tǒng)共識;在領(lǐng)導(dǎo)者與跟隨者進行區(qū)塊復(fù)制的過程中,結(jié)合并簡化了PBFT算法的共識流程,實現(xiàn)本算法的抗拜占庭特性。實驗結(jié)果表明,在大規(guī)模網(wǎng)絡(luò)節(jié)點環(huán)境下,相較于Raft算法,該算法提高了吞吐量與共識效率,但付出了部分通信開銷代價;相較于PBFT算法,該算法提高了拜占庭容錯能力,降低了通信開銷。綜上,該算法能有效保障聯(lián)盟鏈微電網(wǎng)交易的時效性與安全性。

        關(guān)鍵詞:聯(lián)盟鏈;微電網(wǎng);共識算法;Raft算法;PBFT算法;可驗證隨機函數(shù)

        中圖分類號:TP301 文獻標志碼:A 文章編號:1001-3695(2024)10-005-2911-07

        doi:10.19734/j.issn.1001-3695.2024.01.0010

        Improvement of Raft consensus algorithm based on alliance chain microgrid trading

        Zhang Mingquan, Cao Xinyu

        (School of Control & Computer Engineering, North China Electric Power University, Baoding Hebei 071003, China)

        Abstract:To address the high throughput and resistance to Byzantine node attacks in the microgrid trading scenario of consortium chains, this paper proposed a multi-leader Byzantine fault tolerance consensus algorithm based on Raft, named MLB-Raft. The algorithm first utilized the VRF to select a group of leader nodes, increasing throughput by allowing multiple leaders to submit blocks in parallel. A coordinator role was then introduced, responsible for the election and management of leaders and system consensus. During the block replication process between leaders and followers, the consensus process of the practical Byzantine fault tolerance (PBFT) algorithm was integrated and simplified to achieve the Byzantine resilience of this algorithm. Experimental results show that, under a large-scale network node environment, compared to the Raft algorithm, this algorithm improves throughput and consensus efficiency at the cost of some communication overhead. Compared to the PBFT algorithm, this algorithm enhances Byzantine fault tolerance and reduces communication overhead. In summary, this algorithm can effectively ensure the timeliness and security of alliance chain microgrid transactions.

        Key words:alliance chain; microgrids; consensus algorithm; Raft algorithm; PBFT algorithm; verifiable random function(VRF)

        0 引言

        2022年8月1日,工業(yè)和信息化部、國家發(fā)展改革委、生態(tài)環(huán)境部發(fā)布《工業(yè)領(lǐng)域碳達峰實施方案》[1],明確提出要加快工業(yè)綠色微電網(wǎng)建設(shè),促進就近大規(guī)模、高比例消納可再生能源。微電網(wǎng)[2]是指由分布式電源、儲能裝置、能量轉(zhuǎn)換裝置、相關(guān)負荷和監(jiān)控、保護裝置匯集而成的小型發(fā)配電系統(tǒng),是一個能夠?qū)崿F(xiàn)自我控制、保護和管理的自治系統(tǒng)。微電網(wǎng)通過點對點電力交易形成微電網(wǎng)電力交易市場,可有效解決當(dāng)前可再生能源的就近消納問題。但傳統(tǒng)的集中式電力交易模式很難適應(yīng)分布式電源分散性的特點,因其存在交易數(shù)據(jù)不透明、無法追溯、數(shù)據(jù)易被竄改等問題,無法有效實現(xiàn)交易雙方點對點的電力交易。

        區(qū)塊鏈技術(shù)于2008年在Satoshi Nakamoto發(fā)表的《Bitcoin: a peer-to-peer electronic cash system》[3]中被首次提出,它集成了分布式存儲、共識算法、數(shù)字簽名、點對點傳輸與智能合約等技術(shù),通過網(wǎng)絡(luò)中所有的節(jié)點共同管理、監(jiān)督所有鏈上數(shù)據(jù),擺脫了網(wǎng)絡(luò)中單一節(jié)點或集群的中心化管理,是一個去中心化、無須信任的、不可竄改的分布式賬本。區(qū)塊鏈技術(shù)的特點與微電網(wǎng)電力交易的需求高度契合,當(dāng)前已有許多研究將區(qū)塊鏈技術(shù)與微電網(wǎng)電力交易相結(jié)合。文獻[4]提出了一種基于區(qū)塊鏈的微電網(wǎng)群分布式電能交易模型,用于解決傳統(tǒng)集中交易模式在處理高頻、小量的微電網(wǎng)群電能交易時存在的運行成本高、信息不安全等弊端。文獻[5]將區(qū)塊鏈技術(shù)與微電網(wǎng)交易相結(jié)合,基于連續(xù)雙向拍賣模式提出了基于區(qū)塊鏈技術(shù)的微電網(wǎng)交易機制。

        區(qū)塊鏈根據(jù)其去中心化程度分為公有鏈、私有鏈和聯(lián)盟鏈。公有鏈是完全公開透明的,不受任何組織控制,所有人都能參與;私有鏈的寫入權(quán)限僅屬于個人或某一組織,中心化程度高;聯(lián)盟鏈則介于兩者之間,只對特定的團體組織開放,參與者可以進行交易或信息查閱,但僅有聯(lián)盟中的節(jié)點有權(quán)進行交易驗證、發(fā)布合約等功能。文獻[6]指出了聯(lián)盟鏈比公有鏈和私有鏈更適用于能源交易場景,建立了基于聯(lián)盟鏈的去中心化能源交易系統(tǒng)。文獻[7]針對微電網(wǎng)電力交易存在著身份認證協(xié)議不安全、交易中心化、數(shù)據(jù)無法追蹤溯源、節(jié)點之間缺乏共識等問題,提出了基于聯(lián)盟鏈的微電網(wǎng)身份認證協(xié)議。聯(lián)盟鏈的部分去中心化特性、節(jié)點準入機制等特點,方便監(jiān)管機構(gòu)對交易進行監(jiān)督與管理,因此適用于微電網(wǎng)電力交易。

        共識機制是區(qū)塊鏈的重要組成部分,是區(qū)塊鏈網(wǎng)絡(luò)中節(jié)點間達成一致的重要技術(shù),保證了區(qū)塊鏈網(wǎng)絡(luò)中的數(shù)據(jù)一致性和安全性。文獻[8]為解決電力系統(tǒng)不同主體之間的信任問題,提出了一種基于區(qū)塊鏈的分布式能源交易市場信用風(fēng)險管理方法,其使用PoO(proof of optimization)算法進行共識,但是該算法存在大量算力浪費的問題。文獻[9]針對能源場景選擇了PoS共識算法進行改進,設(shè)計了適用于能源互聯(lián)網(wǎng)的發(fā)用電量權(quán)益共識機制(proof of electrical output & load,PoEOL),但該算法沒有解決PoS類共識算法可能出現(xiàn)的單個節(jié)點權(quán)力過大導(dǎo)致系統(tǒng)中心化的問題。文獻[10]針對可再生能源生產(chǎn)領(lǐng)域,提出了一種能源效率幣(energy efficiency coin,EEcoin),使可再生能源的建設(shè)能夠被有效追蹤。并基于股份委托證明機制(delegated proof of stake,DPoS)作出了算法改進,降低了共識過程造成的能源消耗。文獻[11]結(jié)合聯(lián)盟鏈應(yīng)用場景,提出了一種KRaft算法(Kademlia Raft),對Raft算法的領(lǐng)導(dǎo)者選舉流程與日志復(fù)制過程進行了優(yōu)化,提高了算法的吞吐量與可擴展性,但該算法無法實現(xiàn)拜占庭容錯。從上述文獻可以看出,當(dāng)前已有研究大多都是針對適用于公有鏈的PoS類共識算法進行改進,缺乏應(yīng)用于聯(lián)盟鏈能源交易的共識算法改進。由于微電網(wǎng)電力交易存在頻繁且單筆量小的特性[4],產(chǎn)消者與消費者之間的訂單數(shù)量多且雜亂[12],所以對交易中的系統(tǒng)吞吐量有著較高的要求,過低的交易吞吐量會對電力交易的及時性造成影響;且微電網(wǎng)電力市場的準入門檻低,分布式電力產(chǎn)消者的個體趨利性較強[13],可能會出現(xiàn)竄改交易信息等惡意行為,不利于微電網(wǎng)交易安全高效地進行,所以為微電網(wǎng)電力交易設(shè)計適合的共識機制就顯得尤為重要。

        本文設(shè)計了適用于基于聯(lián)盟鏈微電網(wǎng)交易的共識機制。首先分析在聯(lián)盟鏈場景中常用的實用拜占庭容錯PBFT[14]共識算法與分布式共識算法Raft[15]的優(yōu)缺點以及選擇Raft算法進行改進的原因。接著提出一種基于Raft改進的多領(lǐng)導(dǎo)者拜占庭容錯Raft共識算法MLB-Raft。為適應(yīng)聯(lián)盟鏈微電網(wǎng)交易高吞吐量的需求,該算法將原Raft的單一領(lǐng)導(dǎo)者機制修改為多領(lǐng)導(dǎo)者機制,并引入?yún)f(xié)調(diào)者作為中介,由領(lǐng)導(dǎo)者們并行提交不同的區(qū)塊,協(xié)調(diào)者進行輪次切換工作;為提高聯(lián)盟鏈微電網(wǎng)交易系統(tǒng)的靈活性,再對原領(lǐng)導(dǎo)者選舉流程進行改進,引入可驗證隨機函數(shù)VRF實現(xiàn)領(lǐng)導(dǎo)者小組的選舉,當(dāng)領(lǐng)導(dǎo)者數(shù)量低于一定水平時便會觸發(fā)選舉,使領(lǐng)導(dǎo)者能在必要時讓位給其他節(jié)點;最后為保證聯(lián)盟鏈微電網(wǎng)交易系統(tǒng)的數(shù)據(jù)安全性與穩(wěn)定性,將PBFT算法引入到算法共識過程中,判斷日志信息是否遭受到拜占庭節(jié)點的竄改,并將拜占庭領(lǐng)導(dǎo)者進行標記,由協(xié)調(diào)者進行輪次切換時剔除該節(jié)點。

        1 共識機制

        1.1 PBFT共識算法

        PBFT算法由Castro和Liskov于1999年提出[14],用于解決分布式系統(tǒng)的拜占庭容錯問題,能夠保證節(jié)點總數(shù)1/3的拜占庭容錯率,其通信復(fù)雜度為O(n2),經(jīng)常被用作聯(lián)盟鏈的共識算法。

        PBFT算法的具體流程包含請求(request)、預(yù)準備(pre-prepare)、準備(prepare)、提交(commit)和回復(fù)(reply)五個階段。客戶端首先向主節(jié)點發(fā)送請求消息,主節(jié)點收到消息后便生成預(yù)準備消息并廣播給所有的從節(jié)點。從節(jié)點接收到主節(jié)點發(fā)出的預(yù)準備消息后進行驗證,驗證通過則向所有節(jié)點發(fā)送準備消息。當(dāng)從節(jié)點接收到除自己以外的2f個不同節(jié)點的有效準備消息時,向其他節(jié)點廣播確認消息并收集其他節(jié)點傳來的確認消息,當(dāng)收到2f+1條來自不同節(jié)點的確認消息后,將該請求消息提交,并向客戶端發(fā)送回復(fù)消息??蛻舳耸盏絝+1條來自不同節(jié)點傳來的有效回復(fù)消息后,便認為本次共識成功。PBFT算法的具體共識流程如圖1所示。

        若從節(jié)點確認主節(jié)點失效或成為拜占庭節(jié)點后,便會觸發(fā)視圖切換協(xié)議(view change)重新選取新的主節(jié)點,該協(xié)議可確保當(dāng)主節(jié)點成為拜占庭節(jié)點時,系統(tǒng)仍然可以正常的運行,保證了系統(tǒng)的穩(wěn)定性。

        但是PBFT算法也存在一定的問題,雖然該算法不需要消耗大量的算力,但由于其O(n2)的通信復(fù)雜度,通信開銷會隨著節(jié)點數(shù)量的增加而平方級增長,降低共識效率,影響系統(tǒng)的性能。另外PBFT算法的網(wǎng)絡(luò)結(jié)構(gòu)屬于靜態(tài)結(jié)構(gòu),若要動態(tài)添加節(jié)點,必須要重啟整個系統(tǒng),使系統(tǒng)的可用性難以保障[16]。因此單一的PBFT算法不能滿足基于聯(lián)盟鏈的微電網(wǎng)電力交易需求。

        1.2 Raft共識算法

        Raft算法由Ongaro等人[15]于2014年提出,該算法對比Paxos算法[17]更加易于理解和實現(xiàn),核心內(nèi)容由領(lǐng)導(dǎo)者選舉與日志復(fù)制兩部分組成。算法中的節(jié)點有領(lǐng)導(dǎo)者(leader)、候選者(candidate)與跟隨者(follower)三種角色,節(jié)點狀態(tài)會根據(jù)不同的條件進行轉(zhuǎn)換。正常情況下,系統(tǒng)中僅有單個領(lǐng)導(dǎo)者節(jié)點,其他節(jié)點均為跟隨者,領(lǐng)導(dǎo)者通過周期性的心跳維持與跟隨者的正常通信。當(dāng)跟隨者在超時狀態(tài)下仍未收到領(lǐng)導(dǎo)者的心跳消息時,其狀態(tài)轉(zhuǎn)變?yōu)楹蜻x者,并向其他節(jié)點發(fā)送請求投票信息,申請成為下一任領(lǐng)導(dǎo)者,若該節(jié)點在規(guī)定時間內(nèi)收到了半數(shù)以上節(jié)點的投票,其狀態(tài)轉(zhuǎn)變?yōu)轭I(lǐng)導(dǎo)者。Raft算法節(jié)點狀態(tài)轉(zhuǎn)變過程如圖2所示。

        在日志復(fù)制階段,領(lǐng)導(dǎo)者負責(zé)將所有的交易信息打包生成區(qū)塊,并向所有的跟隨者廣播,當(dāng)其收到半數(shù)以上的跟隨者回復(fù)后,領(lǐng)導(dǎo)者將確認信息發(fā)送給所有節(jié)點,該區(qū)塊便成功上鏈。

        Raft算法的通信復(fù)雜度為O(n),其共識效率較高,算法擴展性較好,當(dāng)系統(tǒng)內(nèi)宕機節(jié)點不超過一半時仍然可以正常工作,但是Raft算法不支持拜占庭容錯,不能保證微電網(wǎng)電力交易的系統(tǒng)安全性。

        1.3 微電網(wǎng)交易與算法關(guān)聯(lián)分析

        由于微電網(wǎng)電力交易存在訂單數(shù)量多、交易頻率高等特點,對交易吞吐量性能有較高的要求;此外在交易過程中惡意用戶還可能出現(xiàn)竄改交易信息的行為,破壞交易的安全性,因此所使用的共識算法應(yīng)滿足高吞吐量、交易時延低及支持拜占庭容錯等需求。當(dāng)前應(yīng)用于聯(lián)盟鏈中的主流共識算法有兩類:a)拜占庭容錯共識算法,代表性的是PBFT算法;b)非拜占庭容錯共識算法,代表性的是Paxos與Raft算法。PBFT算法雖支持拜占庭容錯,但其屬于靜態(tài)網(wǎng)絡(luò)結(jié)構(gòu),且通信開銷大,不能很好地滿足微電網(wǎng)電力交易的需求。Paxos算法結(jié)構(gòu)復(fù)雜,實現(xiàn)難度大,而Raft算法較其更加易于理解和實現(xiàn),且共識效率較高,算法擴展性較好,僅存在不支持拜占庭容錯的問題。因此若能解決Raft算法的拜占庭容錯性問題,并對Raft算法性能做進一步優(yōu)化,就能更好地適用于基于聯(lián)盟鏈的微電網(wǎng)電力交易。

        2 MLB-Raft共識算法

        本文針對聯(lián)盟鏈微電網(wǎng)交易中高吞吐量、低交易時延與拜占庭容錯等需求,結(jié)合PBFT算法的拜占庭容錯與Raft算法的高效性與可擴展性,提出了一種多領(lǐng)導(dǎo)者拜占庭容錯Raft共識算法MLB-Raft。對Raft算法的領(lǐng)導(dǎo)者機制進行改進,系統(tǒng)中選舉多領(lǐng)導(dǎo)者,通過并行狀態(tài)機的思想,使多領(lǐng)導(dǎo)者并行提交區(qū)塊以提高系統(tǒng)的吞吐量,將PBFT算法的共識流程進行簡化并應(yīng)用于系統(tǒng)的區(qū)塊復(fù)制過程中,避免日志信息遭到拜占庭節(jié)點竄改。另外引入?yún)f(xié)調(diào)者節(jié)點用于管理領(lǐng)導(dǎo)者與算法的共識流程。

        2.1 系統(tǒng)框架

        MLB-Raft算法的系統(tǒng)框架如圖3所示,包含聯(lián)盟鏈電力交易監(jiān)管中心、客戶端、協(xié)調(diào)者、領(lǐng)導(dǎo)者、候選者、跟隨者和拜占庭節(jié)點七個實體。

        a)聯(lián)盟鏈電力交易監(jiān)管中心。該實體為國家電力職能部門,負責(zé)電力交易的監(jiān)督與管理,以及系統(tǒng)中協(xié)調(diào)者的指派。

        b)客戶端。該實體為參與電力交易的用戶,其作用是將其買賣電力的交易信息提交至交易系統(tǒng)中,以滿足自身的需求。

        c)協(xié)調(diào)者。該實體由聯(lián)盟鏈電力交易監(jiān)管中心指派,負責(zé)維護系統(tǒng)中共識算法的平穩(wěn)運行,如領(lǐng)導(dǎo)者選舉、協(xié)助共識、任期輪次切換、移除拜占庭節(jié)點等任務(wù)。

        d)領(lǐng)導(dǎo)者。該實體由協(xié)調(diào)者在候選者中進行選舉產(chǎn)生,通常系統(tǒng)中同時存在多名領(lǐng)導(dǎo)者,共同負責(zé)在每輪任期提交區(qū)塊、完成共識流程與區(qū)塊復(fù)制。

        e)候選者。該實體為跟隨者至領(lǐng)導(dǎo)者的過渡角色,在領(lǐng)導(dǎo)者選舉過程中產(chǎn)生,若選舉成功則成為領(lǐng)導(dǎo)者節(jié)點,選舉失敗則成為跟隨者節(jié)點。

        f)跟隨者。該實體占系統(tǒng)中節(jié)點數(shù)量的大多數(shù),未成功競選領(lǐng)導(dǎo)者的節(jié)點均為跟隨者節(jié)點,負責(zé)參與系統(tǒng)共識過程,接收領(lǐng)導(dǎo)者的信息并將區(qū)塊復(fù)制到自身日志中。

        g)拜占庭節(jié)點。該實體為系統(tǒng)中作出惡意行為的節(jié)點,通過竄改信息的方式對系統(tǒng)進行破壞,其身份可能是領(lǐng)導(dǎo)者,也可能是跟隨者。當(dāng)拜占庭節(jié)點被系統(tǒng)中其他節(jié)點發(fā)現(xiàn)后,對其進行標記,由協(xié)調(diào)者在輪次切換時將其剔出系統(tǒng)。

        2.2 改進的領(lǐng)導(dǎo)者選舉

        2.2.1 領(lǐng)導(dǎo)者節(jié)點群選舉方法

        為實現(xiàn)多領(lǐng)導(dǎo)者的選舉,本文在領(lǐng)導(dǎo)者選舉流程中引入了可驗證隨機函數(shù)VRF[18],它是Silvio等人在1999年提出的一種具有非交互零知識證明特點的偽隨機數(shù)生成函數(shù)。在領(lǐng)導(dǎo)者選舉過程中,使用VRF函數(shù)實現(xiàn)加密抽簽選取領(lǐng)導(dǎo)者節(jié)點群,具體的選取流程如圖4所示。

        選舉開始后所有節(jié)點均成為候選者,由系統(tǒng)設(shè)定范圍值range,如設(shè)置range的值為0.2,那么僅有使用VRF函數(shù)計算出隨機數(shù)在[0,0.2]的節(jié)點才能加入領(lǐng)導(dǎo)者節(jié)點群,由于VRF輸出的隨機變量來自均勻分布,所以預(yù)期成功率幾乎與范圍值相同,成為領(lǐng)導(dǎo)者節(jié)點群的節(jié)點數(shù)占總節(jié)點的20%,其余節(jié)點成為跟隨者。生成密鑰的加密算法選擇Ed25519簽名算法,節(jié)點i計算隨機數(shù)的過程如下:

        a)節(jié)點i通過Ed25519簽名算法生成公鑰pki與私鑰ski。

        b)節(jié)點i輸入hash與自己的私鑰ski,使用VRF()函數(shù)生成隨機數(shù)ni與身份證明pi。其中hash為對上一個區(qū)塊的區(qū)塊號和任期term進行哈希得到的hash值,VRF()函數(shù)如式(1)所示。

        VRF(hash,sk)=(n,p)(1)

        c)其他節(jié)點使用VRF_proof()函數(shù)對節(jié)點i生成的隨機數(shù)ni進行驗證,輸入節(jié)點i的公鑰pki、哈希值hash、隨機數(shù)ni與身份證明pi。VRF_proof()函數(shù)如式(2)所示。

        VRF_proof(pk,hash,n,p)=true∨false(2)

        所有節(jié)點完成VRF選舉提交后,會繼續(xù)在candidate候選階段等待能否成為領(lǐng)導(dǎo)者的判定,協(xié)調(diào)者對各節(jié)點通過VRF函數(shù)計算出的隨機數(shù)進行收集,完成收集后向它們返回結(jié)果result。如果協(xié)調(diào)者統(tǒng)計的節(jié)點中有隨機數(shù)符合范圍條件且數(shù)值相同的多個節(jié)點,則根據(jù)先來先得的原則成為領(lǐng)導(dǎo)者。result值為1代表該節(jié)點成為領(lǐng)導(dǎo)者;result值為2表示該節(jié)點當(dāng)前不在領(lǐng)導(dǎo)者節(jié)點選擇范圍,不具備成為領(lǐng)導(dǎo)者節(jié)點的資格,如節(jié)點任期數(shù)低于當(dāng)前任期等情況;result值為3表示該節(jié)點未能成為領(lǐng)導(dǎo)者節(jié)點。未成為領(lǐng)導(dǎo)者節(jié)點的其余節(jié)點從candidate候選狀態(tài)變?yōu)閒ollower狀態(tài),成為跟隨者節(jié)點。

        當(dāng)VRF選舉完成后,協(xié)調(diào)者會向所有節(jié)點發(fā)送領(lǐng)導(dǎo)者節(jié)點群信息,廣播changeleader請求給所有節(jié)點,并更新目前的任期以及領(lǐng)導(dǎo)者節(jié)點群的全部ID信息。若VRF選舉超時沒有選舉決議,則增加任期term的期限,開始新的VRF選舉。

        2.2.2 重新觸發(fā)選舉條件

        Raft算法中,當(dāng)跟隨者節(jié)點未在限定時間內(nèi)接收到來自領(lǐng)導(dǎo)者的心跳信息,即可判定領(lǐng)導(dǎo)者下線,重新選舉領(lǐng)導(dǎo)者。但在多領(lǐng)導(dǎo)者方案中,沿用Raft重新選舉領(lǐng)導(dǎo)者節(jié)點的方法不可行。假設(shè)個別領(lǐng)導(dǎo)者因為不同原因退出領(lǐng)導(dǎo)者集群,但系統(tǒng)中依然存在領(lǐng)導(dǎo)者節(jié)點,無法觸發(fā)重新選舉領(lǐng)導(dǎo)者節(jié)點的行為。并且隨著領(lǐng)導(dǎo)者節(jié)點總數(shù)的降低,系統(tǒng)的吞吐量會隨之下降,從而影響系統(tǒng)性能。為解決該問題,本算法作出如下改進:

        由協(xié)調(diào)者設(shè)置心跳信息限定時間(heart time,Ht)和領(lǐng)導(dǎo)者心跳正??倲?shù)(heart number,Hn)及其警戒值(heart warning,Hw),各領(lǐng)導(dǎo)者節(jié)點需在每次Ht結(jié)束前向協(xié)調(diào)者發(fā)送自己的心跳信息,證明自己的狀態(tài)正常。若協(xié)調(diào)者在Ht時間內(nèi)未接收到某個領(lǐng)導(dǎo)者的心跳信息,則認定該節(jié)點發(fā)生故障,更新Hn的值,并在進行下一次輪次切換時刪除領(lǐng)導(dǎo)者名單中該領(lǐng)導(dǎo)者節(jié)點的信息。當(dāng)Hn的值低于Hw時,代表系統(tǒng)中領(lǐng)導(dǎo)者的數(shù)量過低,重新啟動領(lǐng)導(dǎo)者選舉,以保證算法的正常運行。

        2.2.3 節(jié)點可信性分析

        沿用Raft算法的思想,系統(tǒng)完成領(lǐng)導(dǎo)者選舉后,由領(lǐng)導(dǎo)者節(jié)點群負責(zé)處理客戶端的請求,各跟隨者節(jié)點會完全相信領(lǐng)導(dǎo)者,并直接響應(yīng)來自領(lǐng)導(dǎo)者的消息,完成MLB-Raft算法共識流程。由于跟隨者節(jié)點對領(lǐng)導(dǎo)者節(jié)點是完全信任的,所以當(dāng)出現(xiàn)拜占庭節(jié)點惡意竄改信息時,由算法的共識流程來保證區(qū)塊信息的正確傳遞與提交,保證系統(tǒng)的共識效率與安全性。

        2.3 MLB-Raft算法流程

        2.3.1 并行提交區(qū)塊

        為更好地利用多領(lǐng)導(dǎo)者的并行性,MLB-Raft算法對領(lǐng)導(dǎo)者提交區(qū)塊的流程作出了改進,引入了并行狀態(tài)機的思想,它由一個主狀態(tài)機和多個子狀態(tài)機組成,每個子狀態(tài)機可以獨立地運行,也可以同時執(zhí)行。當(dāng)一個子狀態(tài)機完成其任務(wù)時,它會通知主狀態(tài)機,主狀態(tài)機會根據(jù)需要切換到下一個狀態(tài),該機制可以提高系統(tǒng)的并發(fā)性和效率。在MLB-Raft算法中,由協(xié)調(diào)者擔(dān)任主狀態(tài)機的角色,負責(zé)領(lǐng)導(dǎo)者批次劃分、區(qū)塊序號分配與輪次切換工作;各領(lǐng)導(dǎo)者擔(dān)任子狀態(tài)機的角色,負責(zé)區(qū)塊提交與共識工作。

        如圖5所示,各領(lǐng)導(dǎo)者依據(jù)協(xié)調(diào)者劃分的批次順序,按照協(xié)調(diào)者分配的區(qū)塊序號進行并行提交,每一輪次中每個領(lǐng)導(dǎo)者只提交一個區(qū)塊,每個區(qū)塊中都包含該領(lǐng)導(dǎo)者的簽名和該區(qū)塊的序號Si。其中簽名用于確保消息的完整性和標記區(qū)塊來源,序號Si是本區(qū)塊的目標狀態(tài)機標識符(state machine identifier),其作用是確保各個子狀態(tài)機(領(lǐng)導(dǎo)者)的執(zhí)行不會相互干擾。當(dāng)該輪次中的所有區(qū)塊都達成共識后,各領(lǐng)導(dǎo)者便向協(xié)調(diào)者發(fā)送成功同步消息successsync,協(xié)調(diào)者在接收到足夠的successsync消息后,將本輪交易中的各區(qū)塊打包成區(qū)塊集合并提交,區(qū)塊集合的結(jié)構(gòu)由區(qū)塊號、時間戳、上一輪區(qū)塊哈希、本輪區(qū)塊哈希、打包的交易及輪次、序列號等組成。接著協(xié)調(diào)者廣播任期切換消息TC,系統(tǒng)進入下一輪次區(qū)塊提交中。

        2.3.2 共識與區(qū)塊復(fù)制

        為實現(xiàn)系統(tǒng)的抗拜占庭節(jié)點的特性,MLB-Raft將PBFT的共識流程進行簡化并應(yīng)用到系統(tǒng)的區(qū)塊復(fù)制過程中,防止拜占庭節(jié)點作出惡意行為,保障系統(tǒng)的穩(wěn)定性。另外,PBFT現(xiàn)存的問題也不會對系統(tǒng)性能造成影響,一是通信開銷會隨著節(jié)點數(shù)量的增加而增長,本文算法針對一致性協(xié)議進行簡化,因此算法的通信開銷對比PBFT會顯著降低;二是PBFT無法動態(tài)添加節(jié)點,本文算法所提出的多領(lǐng)導(dǎo)者機制不存在動態(tài)添加領(lǐng)導(dǎo)者的過程,僅有對整個領(lǐng)導(dǎo)者節(jié)點群進行重新選舉的操作,避免了該問題。MLB-Raft的區(qū)塊復(fù)制共識過程分為多個階段,包括request、preprepare、prepare、commit、commitreply、successsync和termchange&reply,具體流程如圖6所示。

        a)request(請求)。本階段是客戶端向系統(tǒng)提交請求的起點,客戶端將其請求信息發(fā)送至系統(tǒng)中的領(lǐng)導(dǎo)者消息池,由協(xié)調(diào)者進行領(lǐng)導(dǎo)者節(jié)點群的交易區(qū)塊分配。

        b)preprepare(預(yù)準備)。當(dāng)每個領(lǐng)導(dǎo)者接收到客戶端請求后,它將會創(chuàng)建一個新的區(qū)塊條目,并將自己分配到的內(nèi)容附加到整個新的區(qū)塊條目中,設(shè)置該區(qū)塊條目的狀態(tài)為preprepare。下一步領(lǐng)導(dǎo)者采用BLS簽名方案對消息簽名,以確保消息的完整性和來源。完成以上操作后,將此preprepare消息廣播給其他節(jié)點,通知它們新請求的到來。

        BLS簽名(Boneh-Lynn-Shacham) [19]是一種基于橢圓曲線密碼學(xué)的數(shù)字簽名方案。此處采用BLS簽名的原因是其具有聚合性和高效性的優(yōu)點,這些優(yōu)點使其成為PBFT中一個有力的工具,有助于提高系統(tǒng)性能、可靠性和安全性。這種簽名機制減少了通信和計算開銷,有助于確保在拜占庭故障情況下的可靠性。

        c)prepare(準備)。其他節(jié)點收到領(lǐng)導(dǎo)者的preprepare消息后,先驗證簽名,確認消息的來源和完整性。然后它們將preprepare消息添加到自身的本地日志中,并將其狀態(tài)從preprepare更改為prepare。接著各節(jié)點將prepare消息廣播給各領(lǐng)導(dǎo)者節(jié)點,這是為了向各領(lǐng)導(dǎo)者節(jié)點表明它們已經(jīng)達成了對該請求的初始共識。

        d)commit(提交)。當(dāng)一個領(lǐng)導(dǎo)者節(jié)點收到來自多數(shù)派節(jié)點的prepare消息后,它將再次驗證消息的完整性與BLS簽名,并將prepare消息添加到它的本地日志中,將狀態(tài)從prepare更改為commit。然后該節(jié)點把commit消息廣播給其他節(jié)點,表明它已經(jīng)對該請求達成了共識。若節(jié)點接收到來自多數(shù)派節(jié)點的commit消息后,便可確認該請求已經(jīng)被多數(shù)派節(jié)點所接受。

        e)commitreply(提交回復(fù))。當(dāng)其他節(jié)點收到來自主節(jié)點的commit消息后,它將最后的消息添加到它們的本地日志中,表明該區(qū)塊可以同步。當(dāng)主節(jié)點收到來自多數(shù)派節(jié)點的commitresponse消息后,它可以確認該請求已經(jīng)被多數(shù)派節(jié)點接受。

        f)successsync(成功同步)。本階段是由領(lǐng)導(dǎo)者節(jié)點對協(xié)調(diào)者節(jié)點發(fā)送,對于領(lǐng)導(dǎo)者節(jié)點,一旦節(jié)點確認請求已被多數(shù)派節(jié)點接受,領(lǐng)導(dǎo)者將向協(xié)調(diào)者發(fā)送successsync的消息,等待協(xié)調(diào)者確認,并向協(xié)調(diào)者說明是否作為之后的領(lǐng)導(dǎo)者繼續(xù)完成任務(wù)。

        g)termchange & reply(任期切換與響應(yīng))。當(dāng)本任期的領(lǐng)導(dǎo)者節(jié)點的所有跟隨者節(jié)點都正常地被prepare、commit等流程填充,且滿足系統(tǒng)中最小共識節(jié)點數(shù)k的范圍,將向協(xié)調(diào)者發(fā)送一個成功同步消息successsync,協(xié)調(diào)者希望收到所有領(lǐng)導(dǎo)者節(jié)點的successsync消息,以證明所有的區(qū)塊都在多數(shù)派節(jié)點上達成了共識。接著協(xié)調(diào)者會驗證每個領(lǐng)導(dǎo)者節(jié)點的successsync消息中所有節(jié)點對其的簽名,驗證成功則證明所有的領(lǐng)導(dǎo)者節(jié)點均為誠實節(jié)點。一旦協(xié)調(diào)者收到足夠的信息,它向全網(wǎng)廣播一個任期切換消息(term change, TC),其中包括下一個任期(t+1)的任期號、t+1輪的新領(lǐng)導(dǎo)者以及t+1輪為這些領(lǐng)導(dǎo)者分配的新的序列號。當(dāng)數(shù)據(jù)全部上鏈處理成功之后,協(xié)調(diào)者向客戶端發(fā)送一個響應(yīng),告知客戶端請求已成功處理,客戶端接收到響應(yīng)后,將知道其請求已經(jīng)在系統(tǒng)中達成了共識,至此一輪共識結(jié)束。

        2.3.3 安全性分析

        2.3.2節(jié)步驟d)中的多數(shù)派節(jié)點是指系統(tǒng)中的誠實節(jié)點,其概念如下:在PBFT中,共識的核心思想是通過節(jié)點之間的互相通信來達成一致,在一個由3f+1個節(jié)點構(gòu)成的系統(tǒng)中,只要有不少于2f+1個非惡意節(jié)點正常工作,該系統(tǒng)就能達成一致性。而在本文的并行多領(lǐng)導(dǎo)者的場景下,要確保整個系統(tǒng)在最后對于跟隨者節(jié)點可以有2f+1的節(jié)點數(shù)目在每個主節(jié)點上都達成共識,就需要考慮拜占庭節(jié)點的數(shù)量,以及對于每個領(lǐng)導(dǎo)者節(jié)點而言的最小共識節(jié)點數(shù)。為更好地介紹概念,本文設(shè)定以下參數(shù):n代表總節(jié)點數(shù),包括領(lǐng)導(dǎo)者節(jié)點和跟隨者節(jié)點;fe0c2b4d6b605e5314483ccdc6c8998f5代表最大拜占庭節(jié)點數(shù)量;m代表領(lǐng)導(dǎo)者節(jié)點數(shù)量;k代表每個領(lǐng)導(dǎo)者節(jié)點需要的最小共識節(jié)點數(shù)。

        系統(tǒng)要確保在每個領(lǐng)導(dǎo)者節(jié)點的共識結(jié)果中,對于所有n個總節(jié)點來說,至少有2f+1的節(jié)點是共識的。所以需要找到一個合適的k,這樣即使在最壞的情況下,即有f個拜占庭節(jié)點存在時,系統(tǒng)也能保證正確的共識。

        由于各領(lǐng)導(dǎo)者的跟隨者節(jié)點是共享的,所以在這種情況下,就需要確保系統(tǒng)能夠容忍f個拜占庭節(jié)點,并且在每個領(lǐng)導(dǎo)者節(jié)點上都能達成共識。這意味著每個領(lǐng)導(dǎo)者節(jié)點都需要至少2f+1個節(jié)點的支持來達成共識,以確保即使在f個節(jié)點作惡的情況下,仍有f+1個誠實節(jié)點支持正確的決策。在這里本文假設(shè)惡意節(jié)點發(fā)生作惡行為時,是對每個領(lǐng)導(dǎo)者節(jié)點都會做惡。因6ceea9a1fef5ed8941d1a3bc1ccf90c7此對于每個領(lǐng)導(dǎo)者節(jié)點而言的最小共識節(jié)點數(shù)k的范圍如式(3)所示。

        k≥2f+1(3)

        該條件確保了每個領(lǐng)導(dǎo)者節(jié)點都能與足夠多的誠實節(jié)點達成共識,從而使整個系統(tǒng)的共識是有效的。同時,由于跟隨者節(jié)點是共享的,不需要為每個領(lǐng)導(dǎo)者節(jié)點分別計算2f+1個誠實節(jié)點,整個系統(tǒng)只需要確保有足夠的誠實節(jié)點來支持所有的領(lǐng)導(dǎo)者節(jié)點即可。

        為了整個系統(tǒng)達成共識,需要的總誠實節(jié)點數(shù)應(yīng)至少是2f+1,這是因為本文中假設(shè)拜占庭節(jié)點最多有f個,而共識至少需要f+1個誠實節(jié)點來克服這些拜占庭節(jié)點。然而由于領(lǐng)導(dǎo)者節(jié)點也可能是拜占庭節(jié)點,需要確保即使所有的領(lǐng)導(dǎo)者節(jié)點都是惡意的,共識過程也能正常進行。這意味著需要至少m+f個誠實節(jié)點來保證至少有一個領(lǐng)導(dǎo)者節(jié)點可以達成正確的共識。因此,總節(jié)點數(shù)n的范圍如式(4)所示。

        n≥m+f+(2f+1)(4)

        這樣即使所有的領(lǐng)導(dǎo)者節(jié)點都是拜占庭節(jié)點,系統(tǒng)中仍然有足夠數(shù)量的誠實跟隨者節(jié)點來達成共識,這為系統(tǒng)提供了一個安全的下界。

        2.3.4 拜占庭領(lǐng)導(dǎo)者處理

        在2.3.2節(jié)的步驟f)任期切換與響應(yīng)中,若協(xié)調(diào)者在規(guī)定時間內(nèi)未收到所有領(lǐng)導(dǎo)者節(jié)點的successsync消息,或是有惡意的successsync簽名,則可認定對應(yīng)的領(lǐng)導(dǎo)者節(jié)點為拜占庭領(lǐng)導(dǎo)者(Byzantine leader),需要采取措施對其進行處理。

        在這種情況下系統(tǒng)會啟動復(fù)雜輪次切換,首先將拜占庭領(lǐng)導(dǎo)者被分配的序列號的位置提交一個特殊的空塊,對該節(jié)點進行標記。然后系統(tǒng)觸發(fā)視圖切換,視圖切換流程圖7所示,切換至view_new=view+1的新視圖,并相互廣播viewchange包。協(xié)調(diào)者收集滿在視圖view_new上的2f+1個viewchange包后,將自己的view切換為view_new,將view_new對跟隨者節(jié)點總數(shù)進行取模運算,得到新的領(lǐng)導(dǎo)者節(jié)點繼續(xù)對拜占庭領(lǐng)導(dǎo)者的區(qū)塊進行提交。

        完成本輪的工作后,協(xié)調(diào)者廣播一個任期切換消息TC,其中包括下一個任期(t+1)的任期號、t+1輪的領(lǐng)導(dǎo)者集合,以及為每個領(lǐng)導(dǎo)者分配的新的序列號,同時將上一輪的拜占庭領(lǐng)導(dǎo)者剔除,剔除節(jié)點全網(wǎng)廣播。這種機制確保了MLB-Raft共識算法在輪次切換時能夠處理不同情況,包括正常情況和拜占庭情況,以維護系統(tǒng)的穩(wěn)定性和一致性。

        3 基于MLB-Raft算法的微電網(wǎng)電力交易流程

        應(yīng)用本文MLB-Raft進行微電網(wǎng)電力交易,分為身份認證階段、領(lǐng)導(dǎo)者選舉階段和交易執(zhí)行階段三個階段。

        a)身份認證階段。本階段將進行交易前的身份注冊工作,由聯(lián)盟鏈電力交易監(jiān)管中心指派微電網(wǎng)所在地的管理部門擔(dān)任協(xié)調(diào)者,負責(zé)處理交易過程中的系統(tǒng)共識、領(lǐng)導(dǎo)者選舉及拜占庭節(jié)點移除等工作。新用戶加入微電網(wǎng)交易平臺進行電力交易,須在聯(lián)盟鏈中進行身份注冊,將各自的身份信息提交至聯(lián)盟鏈電力交易監(jiān)管中心進行審核,審核通過后完成注冊。

        b)領(lǐng)導(dǎo)者選舉階段。本階段將使用VRF函數(shù)進行微電網(wǎng)電力交易的領(lǐng)導(dǎo)者選舉,所有微電網(wǎng)電力交易用戶節(jié)點均成為候選者,通過Ed25519簽名算法生成公鑰pk與私鑰sk,接著使用VRF()函數(shù)輸入私鑰sk生成隨機數(shù)n與身份證明p,其他節(jié)點使用VRF_proof()函數(shù)對某節(jié)點生成的隨機數(shù)n進行驗證,協(xié)調(diào)者對各節(jié)點的隨機數(shù)n進行收集,并根據(jù)系統(tǒng)設(shè)置的范圍值range與節(jié)點情況返回選舉結(jié)果,更新目前的任期以及領(lǐng)導(dǎo)者節(jié)點群的全部ID信息。成為領(lǐng)導(dǎo)者的用戶節(jié)點身份更新為領(lǐng)導(dǎo)者,其他選舉失敗的用戶節(jié)點身份更新為跟隨者。

        c)交易執(zhí)行階段。本階段由微電網(wǎng)電力交易用戶提交電力交易至領(lǐng)導(dǎo)者消息池,協(xié)調(diào)者為各領(lǐng)導(dǎo)者節(jié)點分配交易區(qū)塊,領(lǐng)導(dǎo)者節(jié)點群并行提交區(qū)塊;完成提交后系統(tǒng)進行區(qū)塊共識與復(fù)制流程,待協(xié)調(diào)者接收并驗證各領(lǐng)導(dǎo)者的successsync消息;當(dāng)數(shù)據(jù)全部上鏈處理成功之后,協(xié)調(diào)者向全網(wǎng)廣播任期切換消息TC,剔除共識過程中出現(xiàn)的拜占庭節(jié)點,并向微電網(wǎng)電力交易用戶發(fā)送一個響應(yīng),告知其交易請求已成功處理,至此完成一次微電網(wǎng)電力交易。

        4 仿真實驗

        本文通過Go語言實現(xiàn)MLB-Raft、PBFT、Raft、KRaft[11]及rbRaft[20],使用線程監(jiān)聽不同的端口代替節(jié)點,并開啟多個線程模擬共識節(jié)點的通信過程。通過實驗分析算法的吞吐量、共識時延、通信開銷與拜占庭容錯能力四個方面,并將MLB-Raft與其他算法的數(shù)據(jù)進行對比分析以驗證本文算法的有效性。實驗的軟硬件配置如表1所示。

        4.1 吞吐量

        吞吐量是指在單位時間內(nèi)系統(tǒng)能夠處理的事務(wù)數(shù)量,通常用每秒完成的交易數(shù)量(transaction per second,TPS)來表示。在區(qū)塊鏈系統(tǒng)中,TPS的值為交易數(shù)量STransaction與處理交易的時間t的比值,其計算公式如式(5)所示。

        TPS=STransaction/t(5)

        為驗證MLB-Raft在吞吐量上的優(yōu)勢,本節(jié)在不同節(jié)點個數(shù)的區(qū)塊鏈網(wǎng)絡(luò)中,計算Raft、KRaft、rbRaft及MLB-Raft算法的吞吐量并取平均值進行對比分析。

        如圖8所示,隨著系統(tǒng)中節(jié)點個數(shù)的增加,四種算法的吞吐量均有不同程度的下降。其中在10~30節(jié)點個數(shù)時,MLB-Raft的吞吐量遠高于其他三種算法,節(jié)點個數(shù)超過40個后,MLB-Raft的吞吐量依然優(yōu)于其他三種算法,這是由于MLB-Raft通過多領(lǐng)導(dǎo)者并行提交區(qū)塊的方法,達到了提高吞吐量的效果,能夠適應(yīng)高吞吐量需求的聯(lián)盟鏈微電網(wǎng)電力交易環(huán)境。

        4.2 共識時延

        共識時延是指從客戶端向區(qū)塊鏈發(fā)起請求到該請求被確認上鏈的時間,是衡量共識算法性能的重要指標。為驗證MLB-Raft在共識時延上的優(yōu)勢,本節(jié)實驗計算了不同節(jié)點個數(shù)情況下Raft、KRaft、rbRaft及MLB-Raft算法的共識時延并取平均值進行對比分析。

        如圖9所示,隨著系統(tǒng)中節(jié)點個數(shù)的增加,四種算法的共識時延均有不同程度的上升,都呈近似線性的增加趨勢,且MLB-Raft的共識時延始終低于其他三種算法的共識時延。另外隨著節(jié)點個數(shù)的增加,可以明顯觀察到MLB-Raft的共識時延始終在Raft的50%以下,且MLB-Raft在節(jié)點數(shù)為60時的共識時延與其他三種算法節(jié)點數(shù)為10時的數(shù)值相近。通過實驗可以得出MLB-Raft的共識效率高,能夠保證大規(guī)模節(jié)點網(wǎng)絡(luò)環(huán)境下的高效共識,保障聯(lián)盟鏈環(huán)境下微電網(wǎng)電力交易的及時性。

        4.3 通信開銷

        通信開銷是指在區(qū)塊鏈系統(tǒng)中,節(jié)點達成全網(wǎng)的單次共識所需要的通信次數(shù)。為便于計算,本節(jié)實驗假設(shè)系統(tǒng)中節(jié)點總數(shù)為N,MLB-Raft使用VRF選舉領(lǐng)導(dǎo)者節(jié)點總數(shù)為N/5。

        a)PBFT通信開銷。節(jié)點完成一次PBFT共識的過程中,pre-prepare階段進行(N-1)次通信;prepare階段進行(N-1)×(N-1)次通信;commit階段進行N×(N-1)次通信;reply階段進行N次通信。因此PBFT算法中節(jié)點單次共識的通信開銷如式(6)所示。

        N1=(N-1)+(N-1)×(N-1)+N×(N-1)+N=2N2-N(6)

        b)Raft通信開銷。節(jié)點完成一次Raft共識的過程中,領(lǐng)導(dǎo)者向所有跟隨者發(fā)送一條日志信息,進行N-1次通信;跟隨者收到領(lǐng)導(dǎo)者的日志信息后進行回復(fù),進行N-1次通信;領(lǐng)導(dǎo)者接收到半數(shù)以上跟隨者的回復(fù)信息后,向客戶端發(fā)送回復(fù)消息,并向所有跟隨者發(fā)送確認信息,進行N次通信。因此Raft中節(jié)點單次共識的通信開銷如式(7)所示。

        N2=(N-1)+(N-1)+N=3N-2(7)

        c)rbRaft通信開銷。節(jié)點完成一次rbRaft共識的過程中,在復(fù)制階段領(lǐng)導(dǎo)者將區(qū)塊信息發(fā)送給跟隨者,進行N-1次通信;在驗證階段領(lǐng)導(dǎo)者發(fā)送包含簽名的驗證信息,進行N-1次通信。因此rbRaft中節(jié)點單次共識的通信開銷如式(8)所示。

        N3=(N-1)+(N-1)=2N-2(8)

        d)MLB-Raft通信開銷。節(jié)點完成一次MLB-Raft共識的過程中,request階段進行N/5次通信;preprepare階段進行N/5×(N-1)次通信;prepare階段進行N/5×(N-1)次通信;commit階段進行N/5×(N-1)次通信;commitreply階段進行N/5×(N-1)次通信;successsyrc階段進行N/5次通信;termchange&reply階段進行N次通信。因此MLB-Raft中節(jié)點單次共識的通信開銷如式(9)所示。

        N4=N5+4×N5×(N-1)+N5+N=45N2+35N(9)

        根據(jù)式(6)~(9)對四種共識算法的通信開銷進行了計算,并依據(jù)計算結(jié)果繪制出各算法的通信開銷變化趨勢。

        如圖10所示,在系統(tǒng)節(jié)點個數(shù)相同時,MLB-Raft的通信開銷低于PBFT,但高于Raft與rbRaft。當(dāng)系統(tǒng)中節(jié)點數(shù)量為60個時,PBFT的通信開銷為7 140,MLB-Raft將通信開銷降低了5915%,其值為2 916。MLB-Raft因使用多領(lǐng)導(dǎo)者并行提交區(qū)塊的方法提高了系統(tǒng)吞吐量,但支持系統(tǒng)拜占庭容錯的特性犧牲了算法的通信開銷性能,因此通信開銷高于Raft與rbRaft。

        4.4 拜占庭容錯能力

        當(dāng)系統(tǒng)中存在拜占庭節(jié)點時,共識算法應(yīng)當(dāng)保證系統(tǒng)中各節(jié)點接受到的都是正確信息,并及時將拜占庭節(jié)點去除,保障系統(tǒng)的共識效率與安全性。本節(jié)設(shè)置了兩個實驗以驗證MLB-Raft在面對拜占庭節(jié)點攻擊時的效率與安全性。實驗1設(shè)置系統(tǒng)總節(jié)點個數(shù)為60個,其中拜占庭節(jié)點個數(shù)為10個,每輪共識有2個拜占庭節(jié)點作出惡意行為?;谝陨蠑?shù)據(jù),對MLB-Raft、PBFT及rbRaft的拜占庭節(jié)點去除效率進行對比分析。

        如圖11所示,PBFT的拜占庭節(jié)點率一直沒有降低,這是由于PBFT沒有剔除拜占庭節(jié)點的機制,即使某節(jié)點被認定為拜占庭節(jié)點,該節(jié)點也能繼續(xù)存在于系統(tǒng)中;rbRaft與MLB-Raft的拜占庭節(jié)點率都在持續(xù)下降,其中rbRaft在進行10輪共識后基本去除了系統(tǒng)中所有的拜占庭節(jié)點,而MLB-Raft的去除效率明顯高于rbRaft,并在完成第六輪共識時便將系統(tǒng)中所有的拜占庭節(jié)點去除,更好地保障了系統(tǒng)的安全性。

        當(dāng)區(qū)塊鏈系統(tǒng)遭受拜占庭節(jié)點的惡意攻擊后,將其完全去除所需要的共識輪數(shù)代表了該共識算法針對拜占庭容錯的有效性。本節(jié)設(shè)置了實驗2以驗證系統(tǒng)中出現(xiàn)不同數(shù)量的拜占庭節(jié)點同時作惡時,MLB-Raft剔除拜占庭節(jié)點的能力。實驗2設(shè)置系統(tǒng)總節(jié)點個數(shù)為60個,拜占庭節(jié)點數(shù)分別設(shè)置為2、4、6、8、10個,對5種情況下系統(tǒng)剔除拜占庭節(jié)點的共識輪數(shù)進行對比分析。

        如圖12所示,5種情況下系統(tǒng)中的拜占庭節(jié)點都是經(jīng)過一輪共識就被剔除出系統(tǒng)。這是由于共識過程中拜占庭節(jié)點作出惡意行為后,被其他的正常節(jié)點標記并通知協(xié)調(diào)者,協(xié)調(diào)者完成拜占庭節(jié)點認定后便啟動復(fù)雜輪次切換以保證系統(tǒng)共識的正常進行,并在輪次切換的過程中移除所有的拜占庭節(jié)點,因此能及時地剔除系統(tǒng)中的拜占庭節(jié)點,保障微電網(wǎng)電力交易的系統(tǒng)數(shù)據(jù)安全。

        4.5 算法性能對比

        本節(jié)對PBFT、Raft、rbRaft、KRaft、MLB-Raft算法的部分性能進行匯總對比,采用系統(tǒng)總節(jié)點個數(shù)為60的實驗數(shù)據(jù),對比結(jié)果如表2所示。

        從表2可以看出,對比其他四種共識算法,MLB-Raft的拜占庭容錯能力是最好的,PBFT僅能檢測出拜占庭節(jié)點,無法去除;Raft與KRaft無拜占庭容錯能力;rbRaft去除拜占庭節(jié)點的性能弱于本文算法。吞吐量與共識時延方面,MLB-Raft均優(yōu)于Raft、rbRaft、KRaft三種算法。而通信開銷方面,MLB-Raft開銷對比Raft與rbRaft較高,僅優(yōu)于PBFT。但對比吞吐量、共識時延和拜占庭容錯性帶來的性能收益,MLB-Raft增加的通信開銷是可以接受的。

        5 結(jié)束語

        本文針對聯(lián)盟鏈微電網(wǎng)交易場景高吞吐量與抗拜占庭節(jié)點等需求,結(jié)合PBFT與Raft提出了一種基于Raft的多領(lǐng)導(dǎo)者拜占庭容錯的改進共識算法MLB-Raft。該算法將Raft的單一領(lǐng)導(dǎo)者機制修改為了多領(lǐng)導(dǎo)者機制,使用可驗證隨機函數(shù)VRF選舉多領(lǐng)導(dǎo)者,并通過多領(lǐng)導(dǎo)者并行提交區(qū)塊的方式提高共識算法的吞吐量;引入新的角色協(xié)調(diào)者負責(zé)領(lǐng)導(dǎo)者節(jié)點群的選舉、管理與系統(tǒng)共識的推進;簡化PBFT的共識流程并將其結(jié)合到本文領(lǐng)導(dǎo)者與跟隨者的區(qū)塊復(fù)制流程中,實現(xiàn)算法的抗拜占庭特性。通過實驗證明,相較于Raft,MLB-Raft的吞吐量與共識時延性能均優(yōu)于Raft;雖然犧牲了部分通信開銷性能,使其通信開銷高于Raft,但實現(xiàn)了算法的抗拜占庭節(jié)點的特性,且相較于PBFT,MLB-Raft的通信開銷低,去除拜占庭節(jié)點的效率高。綜上所述,MLB-Raft能有效保障聯(lián)盟鏈環(huán)境下微電網(wǎng)電力交易的交易時效性與安全性。但本文算法仍有不足之處,未來可以針對其共識過程做進一步優(yōu)化,通過降低算法的通信開銷,更好地提升算法的性能。

        參考文獻:

        [1]工業(yè)和信息化部, 發(fā)展改革委, 生態(tài)環(huán)境部. 關(guān)于印發(fā)工業(yè)領(lǐng)域碳達峰實施方案的通知[EB/OL]. (2022-07-07). https://www.gov.cn/zhengce/zhengceku/2022-08/01/content_5703910.htm. (Notice of the Ministry of Industry and Information Technology, Development and Reform Commission, Ministry of Ecology. Environment on issuing the implementation plan for carbon peak in the industrial sector[EB/OL]. (2022-07-07). https://www.gov.cn/zhengce/zhengceku/2022-08/01/content_5703910.htm.)

        [2]王成山, 李鵬. 分布式發(fā)電、微網(wǎng)與智能配電網(wǎng)的發(fā)展與挑戰(zhàn)[J]. 電力系統(tǒng)自動化, 2010, 34(2): 10-14, 23. (Wang Chengshan, Li Peng. Development and challenges of distributed generation, the micro-grid and smart distribution system[J]. Automation of Electric Power Systems, 2010, 34(2): 10-14, 23.)

        [3]Nakamoto S. Bitcoin: a peer-to-peer electronic cash system[EB/OL]. (2008). https://bitcoin.org/en/bitcoin-paper.

        [4]朱廷虎, 劉洋, 許立雄, 等. 基于區(qū)塊鏈技術(shù)的微電網(wǎng)群分布式電能交易模式[J]. 電力建設(shè), 2022, 43(6): 12-23. (Zhu Tinghu, Liu Yang, Xyu Lixiong,et al. Research on distributed electricity transaction mode of microgrid cluster applying blockchain technology[J]. Electric Power Construction, 2022, 43(6): 12-23.)

        [5]張志龍, 劉忠途. 基于區(qū)塊鏈技術(shù)的微電網(wǎng)交易機制[J]. 信息技術(shù)與信息化, 2023 (2): 136-139. (Zhang Zhilong, Liu Zhongtu. Microgrid transaction mechanism based on blockchain technology [J]. Information Technology and Informatization, 2023 (2): 136-139.)

        [6]周鑫, 鄧莉榮, 王彬, 等. 基于聯(lián)盟鏈的去中心化能源交易系統(tǒng)[J]. 全球能源互聯(lián)網(wǎng), 2019, 2(6): 556-565. (Zhou Xin, Deng Lirong, Wang Bin,et al. Decentralized energy trading system based on consortium blockchain[J]. Journal of Global Energy Interconnection, 2019, 2(6): 556-565.)

        [7]張利華, 胡方舟, 黃陽, 等. 基于聯(lián)盟鏈的微電網(wǎng)身份認證協(xié)議[J]. 應(yīng)用科學(xué)學(xué)報, 2020, 38(1): 173-183. (Zhang Lihua, Hu Fangzhou, Huang Yang,et al. ldentity authentication protocol of micro-grid power based on consortium blockchain[J]. Journal of Applied Sciences, 2020, 38(1): 173-183.)

        [8]平健, 陳思捷, 嚴正. 適用于電力系統(tǒng)凸優(yōu)化場景的能源區(qū)塊鏈底層技術(shù)[J]. 中國電機工程學(xué)報, 2020, 40(1): 108-116, 378. (Ping Jian, Chen Sijie, Yan Zheng. A novel energy blockchain technology for convex optimization scenarios in power system[J]. Proceedings of the CSEE, 2020, 40(1): 108-116, 378.)

        [9]劉明川. 基于能源區(qū)塊鏈的分布式電能交易系統(tǒng)設(shè)計[D]. 北京: 華北電力大學(xué)(北京), 2019. (Liu Mingchuan. Energy-blockchain-based design of distributed electricity transaction system[D]. Beijing: North China Electric Power University(Beijing), 2019.)

        [10]Dispenza J, Garcia C, Molecke R. Energy efficiency coin (EECoin) a blockchain asset class pegged to renewable energy markets[EB/OL]. (2019-11-17). https://wenku.baidu.com/view/0ee7b5bdfd4-ffe4733687e21af45b307e971f97f.html.

        [11]王日宏, 周航, 徐泉清, 等. 用于聯(lián)盟鏈的非拜占庭容錯共識算法[J]. 計算機科學(xué), 2021, 48(9): 317-323. (Wang Rihong, Zhou Hang, Xyu Quanqing,et al. Non-Byzantine fault tolerance consensus algorithm for consortium blockchain[J]. Computer Science, 2021, 48(9): 317-323.)

        [12]王嘉瑤, 宋翔宇, 朱俊武. 基于精確分類和最優(yōu)匹配機制微電網(wǎng)交易決策方法[J]. 計算機應(yīng)用研究, 2024, 41(2): 348-355. (Wang Jiayao, Song Xiangyu, Zhu Junwu. Microgrid transaction decision making method based on precise classification and optimal matching mechanism[J]. Application Research of Computers, 2024, 41(2): 348-355.)

        [13]平健, 嚴正, 陳思捷, 等. 基于區(qū)塊鏈的分布式能源交易市場信用風(fēng)險管理方法[J]. 中國電機工程學(xué)報, 2019, 39(24): 7137-7145, 7487. (Ping Jian, Yan Zheng, Chen Sijie,et al. Credit risk management in distributed energy resource transactions based on blockchain[J]. Proceedings of the CSEE, 2019, 39(24): 7137-7145, 7487.)

        [14]Castro M, Liskov B. Practical Byzantine fault tolerance[C]// Proc of the 3rd Symposium on Operating Systems Design and Implementation. Berkeley: USENIX Association, 1999: 173-186.

        [15]Ongaro D, Ousterhout J. In search of an understandable consensus algorithm[C]// Proc of USENIX Annual Technical Conference. Berkeley: USENIX Association, 2014: 305-319.

        [16]甘俊, 李強, 陳子豪, 等. 區(qū)塊鏈實用拜占庭容錯共識算法的改進[J]. 計算機應(yīng)用, 2019, 39(7): 2148-2155. (Gan Jun, Li Qiang, Chen Zihao,et al. Improvement of blockchain practical Byzantine fault tolerance consensus algorithm[J]. Journal of Computer Applications, 2019, 39(7): 2148-2155.)

        [17]Lamport L. The part-time parliament[J]. ACM Trans on Compu-ter Systems, 1998, 16(2): 133-169.

        [18]Micali S, Rabin M, Vadhan S. Verifiable random functions[C]// Proc of the 40th Annual Symposium on Foundations of Computer Science. Piscataway, NJ: IEEE Press, 1999: 120-130.

        [19]Boneh D, Lynn B, Shacham H. Short signatures from the Weil pairing[C]// Proc of International Conference on the Theory and Application of Cryptology and Information Security. Berlin: Springer, 2001: 514-532.

        [20]吳雪琛. 基于信譽機制的聯(lián)盟鏈共識算法研究[D]. 重慶: 西南大學(xué), 2023. (Wu Xuechen. Research on consensus algorithm of consortium blockchain based on reputation mechanism[D]. Chongqing: Southwest University, 2023.)

        在线观看麻豆精品视频| 亚洲熟妇网| 亚洲精品乱码久久久久久按摩高清| 日韩国产一区二区三区在线观看| 午夜免费福利在线观看| 日韩精品一区二区三区中文9| 精品高清一区二区三区人妖| 美女网站免费观看视频| 三级在线看中文字幕完整版| 久久亚洲高清观看| 人妖与人妖免费黄色片| 国产麻花豆剧传媒精品mv在线| 亚洲av蜜桃永久无码精品| 综合网在线视频| 国产精品一级黄色大片| 亚洲一区二区三区乱码在线中国| 超清精品丝袜国产自在线拍| 日中文字幕在线| av天堂一区二区三区| 高清中文字幕一区二区| 亚洲av永久精品爱情岛论坛| 成人动漫久久| 经典亚洲一区二区三区| 超碰国产精品久久国产精品99| 精品少妇人妻av一区二区| 337p日本欧洲亚洲大胆色噜噜| 久久夜色精品国产三级| 一边捏奶头一边高潮视频| 精品亚洲欧美无人区乱码| 国产v视频| 久久夜色精品国产亚洲噜噜| 国产白浆一区二区三区佳柔| 亚洲av综合一区二区在线观看| 精品福利视频一区二区三区| 亚洲国产字幕| 国产女优一区在线观看| 欧洲美女黑人粗性暴交| 天天综合久久| 日产精品毛片av一区二区三区| 国产高清在线精品一区app| 久久99精品国产99久久6男男|