999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于聯盟鏈微電網交易的改進Raft共識算法

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

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

關鍵詞:聯盟鏈;微電網;共識算法;Raft算法;PBFT算法;可驗證隨機函數

中圖分類號: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日,工業和信息化部、國家發展改革委、生態環境部發布《工業領域碳達峰實施方案》[1],明確提出要加快工業綠色微電網建設,促進就近大規模、高比例消納可再生能源。微電網[2]是指由分布式電源、儲能裝置、能量轉換裝置、相關負荷和監控、保護裝置匯集而成的小型發配電系統,是一個能夠實現自我控制、保護和管理的自治系統。微電網通過點對點電力交易形成微電網電力交易市場,可有效解決當前可再生能源的就近消納問題。但傳統的集中式電力交易模式很難適應分布式電源分散性的特點,因其存在交易數據不透明、無法追溯、數據易被竄改等問題,無法有效實現交易雙方點對點的電力交易。

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

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

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

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

1 共識機制

1.1 PBFT共識算法

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

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

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

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

1.2 Raft共識算法

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

在日志復制階段,領導者負責將所有的交易信息打包生成區塊,并向所有的跟隨者廣播,當其收到半數以上的跟隨者回復后,領導者將確認信息發送給所有節點,該區塊便成功上鏈。

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

1.3 微電網交易與算法關聯分析

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

2 MLB-Raft共識算法

本文針對聯盟鏈微電網交易中高吞吐量、低交易時延與拜占庭容錯等需求,結合PBFT算法的拜占庭容錯與Raft算法的高效性與可擴展性,提出了一種多領導者拜占庭容錯Raft共識算法MLB-Raft。對Raft算法的領導者機制進行改進,系統中選舉多領導者,通過并行狀態機的思想,使多領導者并行提交區塊以提高系統的吞吐量,將PBFT算法的共識流程進行簡化并應用于系統的區塊復制過程中,避免日志信息遭到拜占庭節點竄改。另外引入協調者節點用于管理領導者與算法的共識流程。

2.1 系統框架

MLB-Raft算法的系統框架如圖3所示,包含聯盟鏈電力交易監管中心、客戶端、協調者、領導者、候選者、跟隨者和拜占庭節點七個實體。

a)聯盟鏈電力交易監管中心。該實體為國家電力職能部門,負責電力交易的監督與管理,以及系統中協調者的指派。

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

c)協調者。該實體由聯盟鏈電力交易監管中心指派,負責維護系統中共識算法的平穩運行,如領導者選舉、協助共識、任期輪次切換、移除拜占庭節點等任務。

d)領導者。該實體由協調者在候選者中進行選舉產生,通常系統中同時存在多名領導者,共同負責在每輪任期提交區塊、完成共識流程與區塊復制。

e)候選者。該實體為跟隨者至領導者的過渡角色,在領導者選舉過程中產生,若選舉成功則成為領導者節點,選舉失敗則成為跟隨者節點。

f)跟隨者。該實體占系統中節點數量的大多數,未成功競選領導者的節點均為跟隨者節點,負責參與系統共識過程,接收領導者的信息并將區塊復制到自身日志中。

g)拜占庭節點。該實體為系統中作出惡意行為的節點,通過竄改信息的方式對系統進行破壞,其身份可能是領導者,也可能是跟隨者。當拜占庭節點被系統中其他節點發現后,對其進行標記,由協調者在輪次切換時將其剔出系統。

2.2 改進的領導者選舉

2.2.1 領導者節點群選舉方法

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

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

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

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

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

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

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

所有節點完成VRF選舉提交后,會繼續在candidate候選階段等待能否成為領導者的判定,協調者對各節點通過VRF函數計算出的隨機數進行收集,完成收集后向它們返回結果result。如果協調者統計的節點中有隨機數符合范圍條件且數值相同的多個節點,則根據先來先得的原則成為領導者。result值為1代表該節點成為領導者;result值為2表示該節點當前不在領導者節點選擇范圍,不具備成為領導者節點的資格,如節點任期數低于當前任期等情況;result值為3表示該節點未能成為領導者節點。未成為領導者節點的其余節點從candidate候選狀態變為follower狀態,成為跟隨者節點。

當VRF選舉完成后,協調者會向所有節點發送領導者節點群信息,廣播changeleader請求給所有節點,并更新目前的任期以及領導者節點群的全部ID信息。若VRF選舉超時沒有選舉決議,則增加任期term的期限,開始新的VRF選舉。

2.2.2 重新觸發選舉條件

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

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

2.2.3 節點可信性分析

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

2.3 MLB-Raft算法流程

2.3.1 并行提交區塊

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

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

2.3.2 共識與區塊復制

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

a)request(請求)。本階段是客戶端向系統提交請求的起點,客戶端將其請求信息發送至系統中的領導者消息池,由協調者進行領導者節點群的交易區塊分配。

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

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

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

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

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

f)successsync(成功同步)。本階段是由領導者節點對協調者節點發送,對于領導者節點,一旦節點確認請求已被多數派節點接受,領導者將向協調者發送successsync的消息,等待協調者確認,并向協調者說明是否作為之后的領導者繼續完成任務。

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

2.3.3 安全性分析

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

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

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

k≥2f+1(3)

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

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

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

這樣即使所有的領導者節點都是拜占庭節點,系統中仍然有足夠數量的誠實跟隨者節點來達成共識,這為系統提供了一個安全的下界。

2.3.4 拜占庭領導者處理

在2.3.2節的步驟f)任期切換與響應中,若協調者在規定時間內未收到所有領導者節點的successsync消息,或是有惡意的successsync簽名,則可認定對應的領導者節點為拜占庭領導者(Byzantine leader),需要采取措施對其進行處理。

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

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

3 基于MLB-Raft算法的微電網電力交易流程

應用本文MLB-Raft進行微電網電力交易,分為身份認證階段、領導者選舉階段和交易執行階段三個階段。

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

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

c)交易執行階段。本階段由微電網電力交易用戶提交電力交易至領導者消息池,協調者為各領導者節點分配交易區塊,領導者節點群并行提交區塊;完成提交后系統進行區塊共識與復制流程,待協調者接收并驗證各領導者的successsync消息;當數據全部上鏈處理成功之后,協調者向全網廣播任期切換消息TC,剔除共識過程中出現的拜占庭節點,并向微電網電力交易用戶發送一個響應,告知其交易請求已成功處理,至此完成一次微電網電力交易。

4 仿真實驗

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

4.1 吞吐量

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

TPS=STransaction/t(5)

為驗證MLB-Raft在吞吐量上的優勢,本節在不同節點個數的區塊鏈網絡中,計算Raft、KRaft、rbRaft及MLB-Raft算法的吞吐量并取平均值進行對比分析。

如圖8所示,隨著系統中節點個數的增加,四種算法的吞吐量均有不同程度的下降。其中在10~30節點個數時,MLB-Raft的吞吐量遠高于其他三種算法,節點個數超過40個后,MLB-Raft的吞吐量依然優于其他三種算法,這是由于MLB-Raft通過多領導者并行提交區塊的方法,達到了提高吞吐量的效果,能夠適應高吞吐量需求的聯盟鏈微電網電力交易環境。

4.2 共識時延

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

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

4.3 通信開銷

通信開銷是指在區塊鏈系統中,節點達成全網的單次共識所需要的通信次數。為便于計算,本節實驗假設系統中節點總數為N,MLB-Raft使用VRF選舉領導者節點總數為N/5。

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

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

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

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

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

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

d)MLB-Raft通信開銷。節點完成一次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中節點單次共識的通信開銷如式(9)所示。

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

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

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

4.4 拜占庭容錯能力

當系統中存在拜占庭節點時,共識算法應當保證系統中各節點接受到的都是正確信息,并及時將拜占庭節點去除,保障系統的共識效率與安全性。本節設置了兩個實驗以驗證MLB-Raft在面對拜占庭節點攻擊時的效率與安全性。實驗1設置系統總節點個數為60個,其中拜占庭節點個數為10個,每輪共識有2個拜占庭節點作出惡意行為。基于以上數據,對MLB-Raft、PBFT及rbRaft的拜占庭節點去除效率進行對比分析。

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

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

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

4.5 算法性能對比

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

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

5 結束語

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

參考文獻:

[1]工業和信息化部, 發展改革委, 生態環境部. 關于印發工業領域碳達峰實施方案的通知[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]王成山, 李鵬. 分布式發電、微網與智能配電網的發展與挑戰[J]. 電力系統自動化, 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]朱廷虎, 劉洋, 許立雄, 等. 基于區塊鏈技術的微電網群分布式電能交易模式[J]. 電力建設, 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]張志龍, 劉忠途. 基于區塊鏈技術的微電網交易機制[J]. 信息技術與信息化, 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]周鑫, 鄧莉榮, 王彬, 等. 基于聯盟鏈的去中心化能源交易系統[J]. 全球能源互聯網, 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]張利華, 胡方舟, 黃陽, 等. 基于聯盟鏈的微電網身份認證協議[J]. 應用科學學報, 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]平健, 陳思捷, 嚴正. 適用于電力系統凸優化場景的能源區塊鏈底層技術[J]. 中國電機工程學報, 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]劉明川. 基于能源區塊鏈的分布式電能交易系統設計[D]. 北京: 華北電力大學(北京), 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]王日宏, 周航, 徐泉清, 等. 用于聯盟鏈的非拜占庭容錯共識算法[J]. 計算機科學, 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]王嘉瑤, 宋翔宇, 朱俊武. 基于精確分類和最優匹配機制微電網交易決策方法[J]. 計算機應用研究, 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]平健, 嚴正, 陳思捷, 等. 基于區塊鏈的分布式能源交易市場信用風險管理方法[J]. 中國電機工程學報, 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]甘俊, 李強, 陳子豪, 等. 區塊鏈實用拜占庭容錯共識算法的改進[J]. 計算機應用, 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]吳雪琛. 基于信譽機制的聯盟鏈共識算法研究[D]. 重慶: 西南大學, 2023. (Wu Xuechen. Research on consensus algorithm of consortium blockchain based on reputation mechanism[D]. Chongqing: Southwest University, 2023.)

主站蜘蛛池模板: 久久久久久久久久国产精品| 亚洲一区二区成人| 成人毛片免费在线观看| 国产成人做受免费视频| 国产免费自拍视频| 国产一区在线观看无码| 亚洲国产精品一区二区第一页免| 久久精品人人做人人爽97| 日本国产一区在线观看| 国产女人水多毛片18| 一本一道波多野结衣一区二区| 午夜精品福利影院| 国产成人免费手机在线观看视频 | 亚洲中文字幕97久久精品少妇| 欧美国产在线一区| 色婷婷视频在线| 国产h视频免费观看| 国产精品护士| 91久久夜色精品| 国产成人免费| 成人欧美在线观看| 国产情侣一区| 欧美在线免费| 欧美午夜在线视频| 美女无遮挡免费网站| 99视频免费观看| 久久青草精品一区二区三区| 91小视频在线| 99久久亚洲精品影院| 国产成人91精品免费网址在线 | a色毛片免费视频| 亚洲国产一区在线观看| 国产福利小视频高清在线观看| 香蕉精品在线| 欲色天天综合网| 色老头综合网| av在线5g无码天天| 国产精品一老牛影视频| 成人国产精品网站在线看 | 91破解版在线亚洲| 高清无码手机在线观看| 思思热精品在线8| 一级看片免费视频| 色综合综合网| 午夜福利亚洲精品| 一级毛片无毒不卡直接观看| 日韩av手机在线| 国产极品美女在线| 精品剧情v国产在线观看| 成人无码一区二区三区视频在线观看 | 五月激情综合网| a色毛片免费视频| 欧美乱妇高清无乱码免费| 亚洲色大成网站www国产| 在线国产综合一区二区三区| 91精品aⅴ无码中文字字幕蜜桃| 91网在线| 国产免费久久精品99re丫丫一| 国产精品香蕉在线观看不卡| 国产v欧美v日韩v综合精品| 国产97区一区二区三区无码| 不卡无码网| 777国产精品永久免费观看| 狠狠色综合网| 国产午夜不卡| 风韵丰满熟妇啪啪区老熟熟女| 亚洲色欲色欲www网| 欧美日韩在线观看一区二区三区| 国产精品99r8在线观看| 国产精欧美一区二区三区| 免费在线成人网| www.99在线观看| 国产女人在线视频| 成人午夜亚洲影视在线观看| 国产aⅴ无码专区亚洲av综合网| 亚洲天堂2014| 亚洲黄网在线| 天天爽免费视频| 欧美啪啪网| 精品三级网站| 久久久久人妻一区精品| 国产成人亚洲精品色欲AV|