• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

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

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

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

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

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

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

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

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

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

    1 共識(shí)機(jī)制

    1.1 PBFT共識(shí)算法

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

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

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

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

    1.2 Raft共識(shí)算法

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

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

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

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

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

    2 MLB-Raft共識(shí)算法

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

    2.1 系統(tǒng)框架

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    2.3 MLB-Raft算法流程

    2.3.1 并行提交區(qū)塊

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

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

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

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

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

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

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

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

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

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

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

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

    2.3.3 安全性分析

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

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

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

    k≥2f+1(3)

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

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

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

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

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

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

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

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

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

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

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

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

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

    4 仿真實(shí)驗(yàn)

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

    4.1 吞吐量

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

    TPS=STransaction/t(5)

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

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

    4.2 共識(shí)時(shí)延

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

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

    4.3 通信開(kāi)銷

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

    a)PBFT通信開(kāi)銷。節(jié)點(diǎn)完成一次PBFT共識(shí)的過(guò)程中,pre-prepare階段進(jìn)行(N-1)次通信;prepare階段進(jìn)行(N-1)×(N-1)次通信;commit階段進(jìn)行N×(N-1)次通信;reply階段進(jìn)行N次通信。因此PBFT算法中節(jié)點(diǎn)單次共識(shí)的通信開(kāi)銷如式(6)所示。

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

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

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

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

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

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

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

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

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

    4.4 拜占庭容錯(cuò)能力

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

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

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

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

    4.5 算法性能對(duì)比

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

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

    5 結(jié)束語(yǔ)

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

    參考文獻(xiàn):

    [1]工業(yè)和信息化部, 發(fā)展改革委, 生態(tài)環(huán)境部. 關(guān)于印發(fā)工業(yè)領(lǐng)域碳達(dá)峰實(shí)施方案的通知[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)自動(dò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ī)制[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]周鑫, 鄧?yán)驑s, 王彬, 等. 基于聯(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]張利華, 胡方舟, 黃陽(yáng), 等. 基于聯(lián)盟鏈的微電網(wǎng)身份認(rèn)證協(xié)議[J]. 應(yīng)用科學(xué)學(xué)報(bào), 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]平健, 陳思捷, 嚴(yán)正. 適用于電力系統(tǒng)凸優(yōu)化場(chǎng)景的能源區(qū)塊鏈底層技術(shù)[J]. 中國(guó)電機(jī)工程學(xué)報(bào), 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è)計(jì)[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)盟鏈的非拜占庭容錯(cuò)共識(shí)算法[J]. 計(jì)算機(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)匹配機(jī)制微電網(wǎng)交易決策方法[J]. 計(jì)算機(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]平健, 嚴(yán)正, 陳思捷, 等. 基于區(qū)塊鏈的分布式能源交易市場(chǎng)信用風(fēng)險(xiǎn)管理方法[J]. 中國(guó)電機(jī)工程學(xué)報(bào), 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]甘俊, 李強(qiáng), 陳子豪, 等. 區(qū)塊鏈實(shí)用拜占庭容錯(cuò)共識(shí)算法的改進(jìn)[J]. 計(jì)算機(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]吳雪琛. 基于信譽(yù)機(jī)制的聯(lián)盟鏈共識(shí)算法研究[D]. 重慶: 西南大學(xué), 2023. (Wu Xuechen. Research on consensus algorithm of consortium blockchain based on reputation mechanism[D]. Chongqing: Southwest University, 2023.)

    国产精品1区2区在线观看.| 亚洲av电影不卡..在线观看| 很黄的视频免费| 成人亚洲精品av一区二区| 91大片在线观看| 亚洲第一电影网av| 97人妻天天添夜夜摸| 精品久久久久久,| 露出奶头的视频| 中文字幕人妻熟女乱码| 久久人人爽av亚洲精品天堂| av免费在线观看网站| 女人高潮潮喷娇喘18禁视频| 午夜亚洲福利在线播放| av福利片在线| 色综合婷婷激情| 纯流量卡能插随身wifi吗| 男女床上黄色一级片免费看| 久久香蕉激情| 色综合婷婷激情| 久久人人97超碰香蕉20202| 丰满的人妻完整版| 亚洲国产欧美一区二区综合| 亚洲欧美精品综合久久99| 国产成人免费无遮挡视频| 亚洲中文字幕一区二区三区有码在线看 | 国产av在哪里看| 亚洲精品美女久久av网站| 18禁裸乳无遮挡免费网站照片 | 精品国产乱子伦一区二区三区| 亚洲五月色婷婷综合| 亚洲片人在线观看| 嫁个100分男人电影在线观看| www.熟女人妻精品国产| 午夜激情av网站| 日韩 欧美 亚洲 中文字幕| 91av网站免费观看| 亚洲成国产人片在线观看| 久久久久久久久中文| 国产精品综合久久久久久久免费 | www.熟女人妻精品国产| 欧美日韩黄片免| 宅男免费午夜| 中文字幕人妻熟女乱码| 香蕉久久夜色| 亚洲国产看品久久| 18美女黄网站色大片免费观看| 国产亚洲欧美精品永久| 日韩大尺度精品在线看网址 | 黄色女人牲交| 嫩草影院精品99| 好男人电影高清在线观看| 国产成人系列免费观看| 日韩 欧美 亚洲 中文字幕| 一区二区日韩欧美中文字幕| 久久久久久国产a免费观看| 亚洲欧美一区二区三区黑人| 欧美乱妇无乱码| av片东京热男人的天堂| 99香蕉大伊视频| 最新在线观看一区二区三区| 国产日韩一区二区三区精品不卡| 99久久99久久久精品蜜桃| 亚洲精品一卡2卡三卡4卡5卡| 亚洲成人免费电影在线观看| 满18在线观看网站| 亚洲九九香蕉| 国产精品久久久久久人妻精品电影| 18美女黄网站色大片免费观看| 精品欧美国产一区二区三| 免费高清视频大片| 搡老妇女老女人老熟妇| 两个人视频免费观看高清| 母亲3免费完整高清在线观看| 麻豆国产av国片精品| 大码成人一级视频| 免费久久久久久久精品成人欧美视频| 欧美另类亚洲清纯唯美| 啦啦啦观看免费观看视频高清 | 国产一区二区激情短视频| 99国产精品一区二区蜜桃av| 别揉我奶头~嗯~啊~动态视频| 成人三级做爰电影| 99国产精品99久久久久| 精品少妇一区二区三区视频日本电影| 久久欧美精品欧美久久欧美| 国产91精品成人一区二区三区| 免费观看人在逋| 好男人在线观看高清免费视频 | 久久国产精品人妻蜜桃| 欧美国产精品va在线观看不卡| 亚洲全国av大片| 精品乱码久久久久久99久播| 日韩大码丰满熟妇| 色尼玛亚洲综合影院| 免费无遮挡裸体视频| 国产xxxxx性猛交| 性色av乱码一区二区三区2| 十分钟在线观看高清视频www| 久久青草综合色| 精品不卡国产一区二区三区| 日本免费一区二区三区高清不卡 | 成人亚洲精品av一区二区| 亚洲情色 制服丝袜| 欧美性长视频在线观看| 不卡一级毛片| 一a级毛片在线观看| 嫩草影院精品99| 国产av又大| 亚洲avbb在线观看| 精品久久久久久久人妻蜜臀av | 国产精品免费一区二区三区在线| 少妇裸体淫交视频免费看高清 | 身体一侧抽搐| 国产蜜桃级精品一区二区三区| 免费观看人在逋| 久久久久久久久久久久大奶| 女人爽到高潮嗷嗷叫在线视频| 一二三四在线观看免费中文在| 久久人人精品亚洲av| 黄色视频不卡| 又大又爽又粗| 精品日产1卡2卡| 男男h啪啪无遮挡| 999久久久精品免费观看国产| 国产91精品成人一区二区三区| 一二三四社区在线视频社区8| 久久人妻福利社区极品人妻图片| 亚洲成av人片免费观看| 精品欧美一区二区三区在线| 成人欧美大片| 午夜影院日韩av| 亚洲aⅴ乱码一区二区在线播放 | 两性夫妻黄色片| 久久 成人 亚洲| 国产野战对白在线观看| 一个人观看的视频www高清免费观看 | 国产午夜福利久久久久久| 女生性感内裤真人,穿戴方法视频| 老司机午夜十八禁免费视频| 国产精品98久久久久久宅男小说| 亚洲精品美女久久av网站| 日本撒尿小便嘘嘘汇集6| 女性被躁到高潮视频| 国产私拍福利视频在线观看| 免费不卡黄色视频| 夜夜看夜夜爽夜夜摸| 女生性感内裤真人,穿戴方法视频| 久久久久久亚洲精品国产蜜桃av| 777久久人妻少妇嫩草av网站| 99热只有精品国产| 性欧美人与动物交配| 国产精品1区2区在线观看.| 国产精品二区激情视频| 精品久久蜜臀av无| 丁香六月欧美| 欧美在线黄色| 青草久久国产| 两性午夜刺激爽爽歪歪视频在线观看 | 亚洲最大成人中文| АⅤ资源中文在线天堂| 亚洲第一欧美日韩一区二区三区| 激情视频va一区二区三区| 欧美日韩中文字幕国产精品一区二区三区 | 欧美日本视频| 久久精品国产清高在天天线| 69精品国产乱码久久久| 亚洲av五月六月丁香网| 啦啦啦 在线观看视频| 国产精品亚洲av一区麻豆| 精品不卡国产一区二区三区| 久久精品人人爽人人爽视色| 伦理电影免费视频| 嫩草影视91久久| 久久精品国产亚洲av高清一级| 亚洲天堂国产精品一区在线| 无遮挡黄片免费观看| www.www免费av| 丁香六月欧美| 午夜免费观看网址| 狂野欧美激情性xxxx| 国产亚洲av高清不卡| 亚洲无线在线观看| 午夜久久久久精精品| 成人国产一区最新在线观看| 久久精品成人免费网站| 亚洲自偷自拍图片 自拍| 国产一卡二卡三卡精品| 欧美中文日本在线观看视频| 午夜福利高清视频| 18禁裸乳无遮挡免费网站照片 | 成年版毛片免费区| 亚洲精品美女久久av网站| 欧美一级毛片孕妇| 自线自在国产av| 久久久久久久精品吃奶| 一级毛片女人18水好多| 亚洲国产看品久久| 99精品久久久久人妻精品| 欧美 亚洲 国产 日韩一| 国产一卡二卡三卡精品| 国产成人欧美在线观看| 纯流量卡能插随身wifi吗| 亚洲av熟女| 夜夜躁狠狠躁天天躁| 亚洲欧美日韩无卡精品| 黄色片一级片一级黄色片| 午夜激情av网站| 欧美日韩中文字幕国产精品一区二区三区 | 亚洲国产精品合色在线| 国产一区二区三区在线臀色熟女| 多毛熟女@视频| 精品电影一区二区在线| 在线观看午夜福利视频| 岛国在线观看网站| 嫩草影院精品99| 久久午夜综合久久蜜桃| av欧美777| 国产极品粉嫩免费观看在线| 成人特级黄色片久久久久久久| 欧美日韩亚洲综合一区二区三区_| 国产片内射在线| 好男人电影高清在线观看| 最近最新免费中文字幕在线| 国产免费男女视频| 久久久久久大精品| 国产av一区在线观看免费| 乱人伦中国视频| 18禁裸乳无遮挡免费网站照片 | 亚洲熟女毛片儿| av在线天堂中文字幕| 九色国产91popny在线| 在线视频色国产色| 别揉我奶头~嗯~啊~动态视频| 欧美不卡视频在线免费观看 | 亚洲精品美女久久久久99蜜臀| 久久草成人影院| 在线观看免费视频日本深夜| 午夜福利一区二区在线看| 日韩欧美免费精品| 久久精品国产99精品国产亚洲性色 | 国产欧美日韩一区二区三| 亚洲人成伊人成综合网2020| 久久香蕉精品热| 免费女性裸体啪啪无遮挡网站| 午夜免费鲁丝| 欧美激情 高清一区二区三区| 欧美黄色淫秽网站| 纯流量卡能插随身wifi吗| 色精品久久人妻99蜜桃| 欧美乱码精品一区二区三区| 男女床上黄色一级片免费看| 一卡2卡三卡四卡精品乱码亚洲| ponron亚洲| 久久精品成人免费网站| 老司机在亚洲福利影院| 欧美日韩乱码在线| 99精品在免费线老司机午夜| 国产91精品成人一区二区三区| 成年女人毛片免费观看观看9| ponron亚洲| 欧美成人性av电影在线观看| 法律面前人人平等表现在哪些方面| 国产精品电影一区二区三区| 99精品久久久久人妻精品| www日本在线高清视频| 精品人妻在线不人妻| 午夜福利视频1000在线观看 | 欧美日本亚洲视频在线播放| 日本 欧美在线| 久久国产精品人妻蜜桃| 亚洲中文字幕一区二区三区有码在线看 | 亚洲欧美日韩无卡精品| 国产高清有码在线观看视频 | 999精品在线视频| 久久久国产精品麻豆| 十分钟在线观看高清视频www| 美女国产高潮福利片在线看| av视频免费观看在线观看| 在线观看免费日韩欧美大片| 亚洲精品av麻豆狂野| 欧美日本亚洲视频在线播放| 男女下面插进去视频免费观看| 午夜久久久久精精品| 老司机靠b影院| 亚洲无线在线观看| 自拍欧美九色日韩亚洲蝌蚪91| 国产精品99久久99久久久不卡| 一二三四社区在线视频社区8| 欧美中文日本在线观看视频| 亚洲国产精品合色在线| 午夜影院日韩av| 纯流量卡能插随身wifi吗| 成年版毛片免费区| 欧美黑人精品巨大| 欧美成人性av电影在线观看| 黄色毛片三级朝国网站| av在线播放免费不卡| 久久久国产成人免费| 欧美 亚洲 国产 日韩一| 国产成年人精品一区二区| 夜夜夜夜夜久久久久| 国产精品国产高清国产av| 国产欧美日韩精品亚洲av| 极品人妻少妇av视频| 亚洲自偷自拍图片 自拍| 18禁国产床啪视频网站| 成年人黄色毛片网站| 日韩国内少妇激情av| 精品国产美女av久久久久小说| 两人在一起打扑克的视频| 国语自产精品视频在线第100页| av视频免费观看在线观看| 给我免费播放毛片高清在线观看| 亚洲中文日韩欧美视频| 美女免费视频网站| 大型av网站在线播放| 九色国产91popny在线| 精品人妻1区二区| 国产精品久久视频播放| 麻豆一二三区av精品| 国产不卡一卡二| 两性夫妻黄色片| 香蕉久久夜色| 午夜免费观看网址| 国产精品秋霞免费鲁丝片| 美女国产高潮福利片在线看| 99在线人妻在线中文字幕| 人妻久久中文字幕网| 午夜视频精品福利| cao死你这个sao货| 啦啦啦观看免费观看视频高清 | 99久久国产精品久久久| 大型黄色视频在线免费观看| 国产极品粉嫩免费观看在线| 嫩草影视91久久| 日韩有码中文字幕| 999久久久国产精品视频| 午夜精品在线福利| 亚洲成人久久性| 亚洲色图 男人天堂 中文字幕| 精品不卡国产一区二区三区| 亚洲五月婷婷丁香| 亚洲中文字幕一区二区三区有码在线看 | 久久久久久久久中文| 久久精品影院6| 午夜免费鲁丝| 中文字幕人妻丝袜一区二区| 亚洲 欧美一区二区三区| 一二三四社区在线视频社区8| 黄片播放在线免费| 亚洲av成人av| 亚洲 欧美一区二区三区| 一二三四社区在线视频社区8| 国产在线精品亚洲第一网站| 日本精品一区二区三区蜜桃| 免费观看精品视频网站| 琪琪午夜伦伦电影理论片6080| 中文字幕av电影在线播放| 日韩三级视频一区二区三区| 看免费av毛片| 久久久久久大精品| 中文字幕av电影在线播放| av视频免费观看在线观看| av片东京热男人的天堂| 亚洲精品中文字幕在线视频| 久久久久久久精品吃奶| 大码成人一级视频| 亚洲 欧美 日韩 在线 免费| 久久久精品欧美日韩精品| 久久久久精品国产欧美久久久| 好男人电影高清在线观看| 久久天躁狠狠躁夜夜2o2o| 韩国av一区二区三区四区| 亚洲第一青青草原| www国产在线视频色| 亚洲成人久久性| 一个人观看的视频www高清免费观看 | 亚洲成国产人片在线观看| 亚洲 欧美 日韩 在线 免费| а√天堂www在线а√下载| 日日爽夜夜爽网站| 国产av一区二区精品久久| 十分钟在线观看高清视频www| 12—13女人毛片做爰片一| 视频在线观看一区二区三区| 中文字幕精品免费在线观看视频| 成人三级黄色视频| 成年版毛片免费区| 丝袜美腿诱惑在线| 久久青草综合色| 国产精品影院久久| 亚洲一码二码三码区别大吗| 色播在线永久视频| 婷婷六月久久综合丁香| 性欧美人与动物交配| 动漫黄色视频在线观看| 性色av乱码一区二区三区2| 丁香六月欧美| 欧美激情 高清一区二区三区| 日韩欧美在线二视频| 女人高潮潮喷娇喘18禁视频| 亚洲av电影在线进入| 国产在线精品亚洲第一网站| 欧美一区二区精品小视频在线| 国产成人精品无人区| 日本在线视频免费播放| 久热这里只有精品99| 自拍欧美九色日韩亚洲蝌蚪91| 亚洲国产高清在线一区二区三 | 老汉色∧v一级毛片| 精品国产乱码久久久久久男人| xxx96com| 日本欧美视频一区| bbb黄色大片| 亚洲成人免费电影在线观看| 免费搜索国产男女视频| 久久精品亚洲精品国产色婷小说| 女生性感内裤真人,穿戴方法视频| 久久影院123| 亚洲国产精品sss在线观看| 在线观看日韩欧美| 又黄又爽又免费观看的视频| 国产精品九九99| 日韩欧美国产在线观看| 免费少妇av软件| 国产成人一区二区三区免费视频网站| 欧美亚洲日本最大视频资源| 电影成人av| 亚洲自偷自拍图片 自拍| 亚洲av日韩精品久久久久久密| 久久影院123| 男女下面进入的视频免费午夜 | 亚洲黑人精品在线| 在线国产一区二区在线| 深夜精品福利| 亚洲国产精品久久男人天堂| 亚洲五月天丁香| 中文字幕色久视频| 日本免费一区二区三区高清不卡 | 变态另类成人亚洲欧美熟女 | 少妇熟女aⅴ在线视频| 一个人免费在线观看的高清视频| 国产高清videossex| 国产精品香港三级国产av潘金莲| 精品午夜福利视频在线观看一区| 亚洲av成人不卡在线观看播放网| 给我免费播放毛片高清在线观看| 国语自产精品视频在线第100页| 一夜夜www| 成人永久免费在线观看视频| 亚洲性夜色夜夜综合| 日日摸夜夜添夜夜添小说| 国产午夜精品久久久久久| 欧美久久黑人一区二区| 久久狼人影院| 午夜福利成人在线免费观看| 涩涩av久久男人的天堂| 亚洲人成电影免费在线| 欧美成人午夜精品| 亚洲国产精品成人综合色| 国产亚洲精品一区二区www| 欧美老熟妇乱子伦牲交| www.精华液| 一级a爱片免费观看的视频| 国产麻豆69| 丝袜在线中文字幕| 欧美成人一区二区免费高清观看 | 午夜福利欧美成人| 久久久精品国产亚洲av高清涩受| 国产一区二区三区视频了| 色播亚洲综合网| 老司机深夜福利视频在线观看| 亚洲人成77777在线视频| 中文字幕av电影在线播放| 男女床上黄色一级片免费看| 成人亚洲精品av一区二区| 日韩成人在线观看一区二区三区| 欧美色欧美亚洲另类二区 | 亚洲人成电影免费在线| 12—13女人毛片做爰片一| 69精品国产乱码久久久| 久久婷婷成人综合色麻豆| 国产成人影院久久av| 欧美乱色亚洲激情| 国产精品自产拍在线观看55亚洲| 淫妇啪啪啪对白视频| 亚洲成人国产一区在线观看| 成人国语在线视频| 99国产极品粉嫩在线观看| 一区在线观看完整版| 亚洲 欧美 日韩 在线 免费| 日本 欧美在线| 色老头精品视频在线观看| 男女之事视频高清在线观看| 看黄色毛片网站| 91精品三级在线观看| 久久久久精品国产欧美久久久| 在线观看一区二区三区| 中文字幕色久视频| 国产野战对白在线观看| 一进一出抽搐动态| 老熟妇仑乱视频hdxx| 国产精品久久久久久人妻精品电影| 少妇熟女aⅴ在线视频| 狠狠狠狠99中文字幕| 亚洲精品一卡2卡三卡4卡5卡| 欧美日韩一级在线毛片| 搡老岳熟女国产| 91老司机精品| 香蕉丝袜av| 黄网站色视频无遮挡免费观看| 久久这里只有精品19| 久久狼人影院| 一级毛片精品| 母亲3免费完整高清在线观看| 久久婷婷成人综合色麻豆| 久久精品国产99精品国产亚洲性色 | 国产精品久久久久久人妻精品电影| 亚洲精品国产区一区二| 久久久久国产一级毛片高清牌| 99热只有精品国产| 又黄又粗又硬又大视频| 两性夫妻黄色片| 亚洲成人精品中文字幕电影| 国产精品一区二区免费欧美| 欧美日韩乱码在线| 亚洲精品中文字幕在线视频| 精品午夜福利视频在线观看一区| 99在线人妻在线中文字幕| 在线十欧美十亚洲十日本专区| 精品欧美国产一区二区三| 久久久国产欧美日韩av| 亚洲在线自拍视频| 一夜夜www| 麻豆久久精品国产亚洲av| 久久草成人影院| 亚洲精品美女久久久久99蜜臀| 日韩国内少妇激情av| 亚洲色图 男人天堂 中文字幕| 亚洲国产精品999在线| 欧美一级a爱片免费观看看 | 日韩视频一区二区在线观看| 国产亚洲精品久久久久久毛片| 精品一区二区三区四区五区乱码| 久久精品国产清高在天天线| netflix在线观看网站| a在线观看视频网站| 久久人人精品亚洲av| 成人18禁高潮啪啪吃奶动态图| 久久人妻福利社区极品人妻图片| 日本黄色视频三级网站网址| 可以免费在线观看a视频的电影网站| 国产精品一区二区三区四区久久 | 久久久久久免费高清国产稀缺| 中文字幕色久视频| 在线天堂中文资源库| 亚洲午夜精品一区,二区,三区| 欧美日韩福利视频一区二区| 黄色女人牲交| 女人爽到高潮嗷嗷叫在线视频| 91国产中文字幕| 亚洲国产精品sss在线观看| 一级毛片女人18水好多| 免费搜索国产男女视频| 波多野结衣高清无吗| 91大片在线观看| 免费女性裸体啪啪无遮挡网站| 999精品在线视频| 亚洲精品国产一区二区精华液| 成人免费观看视频高清| 亚洲欧美日韩另类电影网站| 国产精品亚洲av一区麻豆| 长腿黑丝高跟| 国产精品98久久久久久宅男小说| 免费在线观看亚洲国产| 亚洲,欧美精品.| 亚洲最大成人中文| 久久性视频一级片| 成人国产一区最新在线观看| 中出人妻视频一区二区| 日韩欧美一区二区三区在线观看| 久久人人爽av亚洲精品天堂| 久久精品人人爽人人爽视色| 美国免费a级毛片| 亚洲一码二码三码区别大吗| 国产亚洲av高清不卡| 久久久国产成人免费| 国产三级在线视频| 亚洲精品国产色婷婷电影| 变态另类丝袜制服| 亚洲自偷自拍图片 自拍| 日韩精品青青久久久久久| 国产亚洲精品久久久久5区| 欧美成人午夜精品| 国内精品久久久久久久电影| 午夜a级毛片| 欧美最黄视频在线播放免费| 免费观看人在逋| 亚洲国产高清在线一区二区三 | 亚洲av美国av| 国产成人免费无遮挡视频| 欧美激情高清一区二区三区| 97人妻天天添夜夜摸| 欧美成狂野欧美在线观看| 神马国产精品三级电影在线观看 | 美女高潮到喷水免费观看| 香蕉久久夜色| 午夜福利在线观看吧| 每晚都被弄得嗷嗷叫到高潮| 操美女的视频在线观看| avwww免费| 国内精品久久久久精免费| 亚洲九九香蕉| 女同久久另类99精品国产91|