李鵬飛 肖恒輝 易 環(huán) 曾嘉煒
(1.華南理工大學電子與信息學院,廣東 廣州 510000;2.廣東省通信產(chǎn)業(yè)服務(wù)有限公司,廣東 廣州 510000;3.廣東省電信規(guī)劃設(shè)計院有限公司,廣東 廣州 510000)
隨著能源轉(zhuǎn)型的不斷升級,電動汽車(EV)由于其自身低碳節(jié)能的優(yōu)勢,在國內(nèi)外得到了很大發(fā)展,并且為實現(xiàn)國內(nèi)碳達峰、碳中和的目標以及解決汽車尾氣排放、化石能源短缺越來越嚴重等相關(guān)問題。然而,隨著電動汽車的數(shù)量與規(guī)模不斷擴大,大量電動汽車的充電負荷接入到電網(wǎng)后,給電力系統(tǒng)的安全運行帶來了很多新的挑戰(zhàn)[1]。如何完善充電基礎(chǔ)設(shè)施建設(shè)與安全、可靠、高效、便捷的充電服務(wù)就成為電動汽車普及道路上的重點難題,尤其對充電交易的安全性、穩(wěn)定性、快速性提出了相當高的要求[2]。
區(qū)塊鏈是Nakamoto在2008年提出的具有發(fā)展前景的新興技術(shù)[3]。區(qū)塊鏈的最初應(yīng)用是比特幣的基礎(chǔ)技術(shù),比特幣是一種加密貨幣。區(qū)塊鏈具有安全性和防篡改的優(yōu)點,這是基于數(shù)學和密碼學所發(fā)揮的作用[4]。同時,區(qū)塊鏈也是一種共享且受信任的分布式賬本技術(shù),它能夠?qū)崟r確認交易并通過安全加密技術(shù)確保交易的完整性。它可以在點對點網(wǎng)絡(luò)中建立信任鏈接,網(wǎng)絡(luò)中的所有節(jié)點(如公司、客戶等)可以相互信任,加速業(yè)務(wù)流程向前發(fā)展。除在金融領(lǐng)域的應(yīng)用外,區(qū)塊鏈技術(shù)還被廣泛應(yīng)用于智能電網(wǎng)、物聯(lián)網(wǎng)、供應(yīng)鏈管理、數(shù)據(jù)管理等領(lǐng)域。區(qū)塊鏈技術(shù)使信任網(wǎng)絡(luò)消除了中介參與的運營成本,有利于在能源交易市場上實現(xiàn)更快、更安全、更便宜的交易方式[5-6]。
目前,國內(nèi)外眾多學者對區(qū)塊鏈技術(shù)運用到電動汽車充電交易中的模型、機制和方法進行了大量的深入探討與研究。王浩然等(2020)首先提出基于區(qū)塊鏈的充電權(quán)交易機制與模型,利用區(qū)塊鏈的智能合約以公平的方式分配初始充電權(quán)并確保設(shè)備不過載,然后設(shè)計了基于以太坊區(qū)塊鏈的充電權(quán)分配與交易平臺及智能合約,確保配網(wǎng)的安全運行及充電權(quán)交易的公開透明與高效智能[7]。金志剛等(2019)提出基于聯(lián)盟鏈的電動汽車充電交易模型[8]。首先建立多充電運營商、公用供電公司之間互聯(lián)互信的交易網(wǎng)絡(luò)與通道,通過實用拜占庭容錯(PBFT)共識算法給出電動汽車充電交易驗證方式,并使用智能合約完成電動汽車賬戶在交易通道上的轉(zhuǎn)賬、評價和查詢過程。在該模型下,各公司的充電站節(jié)點可直接驗證交易,實現(xiàn)充電服務(wù)的互聯(lián)與充電交易的自主管理,提升了充電服務(wù)的便利性和靈活性。Iqbal等(2021)提出一種安全和分散的基于區(qū)塊鏈的電動汽車能源交易模型[9],使用智能合約實現(xiàn)車輛中電動汽車之間的點對點交易,并且基于區(qū)塊鏈的框架提供了一個安全、高效和透明的交易模型。參與交易的EV和聚合器應(yīng)在受信任的機構(gòu)注冊,注冊成功后,電動汽車和聚合器都以匿名方式相互驗證。只有授權(quán)的電動汽車參與相反的拍賣機制,以根據(jù)其需求進行充電交易。
傳統(tǒng)聯(lián)盟鏈區(qū)塊鏈中,通常采用PBFT或變種的PBFT共識算法實現(xiàn)區(qū)塊鏈上數(shù)據(jù)的一致性存儲。傳統(tǒng)PBFT共識算法共分為5個階段:Request、Pre-prepare、Prepare、Commit、Reply。其工作流程如圖1所示,圖中C為交易上鏈請求客戶端,0為主節(jié)點,1~3為3個副節(jié)點。

圖1 傳統(tǒng)PBFT共識算法工作原理圖
傳統(tǒng)PBFT共識算法的具體工作原理如下:
(1)Request:客戶端向主節(jié)點發(fā)送交易上鏈請求,請求包含交易內(nèi)容、交易摘要和消息簽名。
(2)Pre-prepare:主節(jié)點收到客戶端的交易上鏈請求,主節(jié)點校驗客戶端請求消息的簽名是否正確;校驗無問題則向其他共識節(jié)點廣播Pre-prepare消息。
(3)Prepare:副節(jié)點收到主節(jié)點的Pre-prepare消息,對主節(jié)點的Pre-prepare消息簽名是否正確、計算交易內(nèi)容的摘要與交易摘要是否一致進行校驗;校驗無問題則向其他共識節(jié)點廣播Prepare消息。
(4)Commit:主節(jié)點和副節(jié)點收到Prepare消息,對Prepare消息簽名是否正確、Prepare消息中的交易摘要和Pre-prepare消息中的交易摘要是否一致進行校驗;如果某共識節(jié)點收到且校驗成功2f+1個Prepare消息,則向其他共識節(jié)點廣播Commit消息。
(5)Reply:主節(jié)點和副節(jié)點收到Commit消息,對Commit消息簽名是否正確進行校驗;如果某共識節(jié)點收到且校驗成功2f+1個Commit消息,則運行客戶端的請求操作,并返回Reply消息給客戶端。
電動汽車的充電交易體系架構(gòu)從技術(shù)角度可以分為數(shù)據(jù)層、網(wǎng)絡(luò)層、區(qū)塊鏈層、應(yīng)用層。區(qū)塊鏈技術(shù)是連接充電站運營商、公共供電企業(yè)、政府監(jiān)管部門和電動汽車用戶的技術(shù)紐帶,每個參與方的相關(guān)交易信息都需要區(qū)塊鏈技術(shù)來確保交易各環(huán)節(jié)的安全可靠。圖2為電動汽車充電交易的架構(gòu)模型,包含了各個參與相關(guān)方的節(jié)點。每個充電運營商或公用供電公司作為交易網(wǎng)絡(luò)結(jié)構(gòu)中的一個組織,每個組織擁有多個充電站節(jié)點。智能合約可以對客戶端提出的充電交易提案進行簽名背書,并反饋結(jié)果。交易模型根據(jù)節(jié)點的背書次數(shù)計算背書經(jīng)驗值M,并在服務(wù)評價時參考這一指標,從而激勵各充電站節(jié)點擔任背書節(jié)點,維護區(qū)塊鏈平臺穩(wěn)定運行。背書經(jīng)驗值M計算表達式如下式(1)。

圖2 電動汽車的充電交易架構(gòu)模型

式中:lcs,n為截至此次交易時充電站節(jié)點擔任背書節(jié)點的賬本更新次數(shù),Ln為賬本更新總次數(shù),β為調(diào)節(jié)背書經(jīng)驗值的權(quán)值。所有充電站節(jié)點通過聯(lián)盟鏈的數(shù)字證書認證中心模塊實現(xiàn)了公鑰基礎(chǔ)設(shè)施服務(wù),并設(shè)置成員資格服務(wù)提供者組件,抽象化各參與主體之間的控制結(jié)構(gòu)關(guān)系,進行身份認證和權(quán)限控制。
傳統(tǒng)方式的PBFT共識算法的Pre-prepare和Prepare階段一般會占用一次共識操作的超過50%的時間。在區(qū)塊鏈網(wǎng)絡(luò)中的共識節(jié)點數(shù)量越大,該階段耗費的計算機算力和網(wǎng)絡(luò)資源開銷就越大,且該階段的效率受到區(qū)塊鏈網(wǎng)絡(luò)中算力最低的一臺或幾臺服務(wù)器制約,所有共識節(jié)點需要等候收到區(qū)塊鏈網(wǎng)絡(luò)中算力最低的一臺或幾臺服務(wù)器的Prepare消息才會進行下一階段操作。因此,傳統(tǒng)PBFT共識算法的Prepare階段大幅度制約了聯(lián)盟鏈區(qū)塊鏈的性能即TPS(每秒交易數(shù))的增長,隨著聯(lián)盟鏈區(qū)塊鏈中共識節(jié)點數(shù)量的增長,區(qū)塊鏈性能將變得越來越差,且性能改善變得越來越難。本文所提出的方法對PBFT共識算法的Prepare階段進行了重構(gòu),具體過程如下。
客戶端向主節(jié)點發(fā)送上鏈交易請求,完整交易包含交易的內(nèi)容m、交易的摘要D(m)和消息簽名。
主節(jié)點收到客戶端的交易上鏈請求,主節(jié)點校驗客戶端請求消息的簽名是否正確。
(1)對每條上鏈交易進行編號,記為Seq,每條交易均有唯一編號。客戶端上傳的第一條交 易編號為Seq=1,此后客戶端每.上傳一條交易,則Seq自增1,該編號不清零重置。
(2)副節(jié)點總數(shù)記為N-1。該編號只有在視圖轉(zhuǎn)換,即主節(jié)點切換時更新。
(3)為每個副節(jié)點編號,記為ni=1,2,3,…,(N-1)。如1號副節(jié)點記為n1=1,i號副節(jié)點記為ni=i。該編號只有在視圖轉(zhuǎn)換,即主節(jié)點切換時更新。
(4)i號副節(jié)點的校驗任務(wù)隊列長度記為qi。該數(shù)據(jù)實時更新,實時上報給主節(jié)點。
(5)i號副節(jié)點的計算機參考算力記為hi。該數(shù)據(jù)只有在對應(yīng)共識節(jié)點加入?yún)^(qū)塊鏈時進行更新。
(6)主節(jié)點輪詢操作計數(shù)器記為j。主節(jié)點每執(zhí)行一次輪詢操作該數(shù)據(jù)自增1,更換主節(jié)點后,該數(shù)值清零重置。
(7)區(qū)塊鏈的最大TPS記為Tmax。該數(shù)據(jù)需要在區(qū)塊鏈設(shè)置中進行配置。
3.3.1 算法流程
輪詢與校驗流程架構(gòu)如圖3所示,步驟如下:

圖3 改進的Prepare階段算法的輪詢與校驗流程圖
(1)主節(jié)點把待校驗交易放人本機內(nèi)存的“緩存池”,“緩存池”中的所有交易按Seq編號進行排序,只有主節(jié)點有權(quán)限執(zhí)行寫人和刪除“緩存池”中的交易。
(2)主節(jié)點確認N、ni、hi、Tmax值有無更新,有則更新,無則進行下一步。
(3)主節(jié)點根據(jù)實時消息更新qi、j。
(4)主節(jié)點計算i=j MOD (N-1)。

(9)以上第(1)~ (8)步稱為一次輪詢操作,完成上述(1)~ (8)步后,主節(jié)點輪詢計數(shù)器j=ji+1。主節(jié)點隨機生成驗證字符串char,并將驗證字符串char放入“緩存池”編號為Seq的交易頭中。
(10)主節(jié)點將待校驗交易編號Seq和驗證字符串char封裝進訪問令牌Tseq中,再把訪問令牌Tseq發(fā)送給ni副節(jié)點。
(11)副節(jié)點ni發(fā)送訪問令牌Tseq。中的待校驗交易編號Seq去主節(jié)點的“緩存池”中查找交易。若查找到交易存在,副節(jié)點ni發(fā)送訪問令牌Tseq中的驗證字符串char給主節(jié)點,主節(jié)點對比訪問令牌Tseq中的驗證字符串char與“緩存池”中交易頭存儲的驗證字符串char是否一致。若一致則將完整交易Seq發(fā)送給副節(jié)點ni。
(12)副節(jié)點ni接收到交易后,回復(fù)主節(jié)點“ACK”消息,主節(jié)點接收到“ACK”消息后,將“緩存池”內(nèi)的編號為Seq的交易清除。
(13)副節(jié)點ni執(zhí)行校驗:計算編號為Seq的交易內(nèi)容m的摘要D'(m),對比D(m)與完整交易中的交易摘要D(m),若兩者一致則記為校驗通過。校驗通過后,副節(jié)點將校驗通過結(jié)果封裝進Prepare消息,并廣播消息給區(qū)塊鏈網(wǎng)絡(luò)中的所有共識節(jié)點。
3.3.2 “緩存池”操作流程
“緩存池”架構(gòu)及流程圖如圖4所示,步驟如下:

圖4 改進的Prepare階段涉及的“緩存池”架構(gòu)及流程
(1)客戶端將交易上鏈申請?zhí)峤唤o主節(jié)點,主節(jié)點對該筆交易進行編號:客戶端上傳的第一條交易編為Seq=1,此后客戶端每上傳一條交易,則Seq自增1,該編號不清零重置。
(2)主節(jié)點將該筆交易放人本機內(nèi)存的“緩存池”,對應(yīng)算法流程第(1)步。
(3)主節(jié)點完成輪詢操作,生成驗證字符串char,將驗證字符串char放入“緩存池”,封裝進訪問令牌,發(fā)放訪問令牌給副節(jié)點,對應(yīng)算法流程第(9)~ (10)步。
(4)副節(jié)點憑令牌從主節(jié)點獲取該條交易,對應(yīng)算法流程第(11)~ (12) 步。
(5)副節(jié)點對編號為Seq的交易進行校驗,對應(yīng)算法流程第(13)步。
Commit階段與Reply階段與傳統(tǒng)PBFT共識算法沒有差異。
在電動汽車數(shù)量大規(guī)模增長與對充電交易的安全性和高效性的要求越來越高的全球環(huán)境下,本文提出對PBFT共識算法中最復(fù)雜、計算機資源開銷最大的階段進行改進,即對PBFT共識算法的Prepare階段進行了重構(gòu)。不再要求區(qū)塊鏈網(wǎng)絡(luò)中的所有共識節(jié)點進行交易摘要計算、交易摘要比對、比對結(jié)果廣播,改為由主節(jié)點根據(jù)副節(jié)點當前的工作負載、算力資源信息,輪詢副節(jié)點,派發(fā)交易摘要計算、比對、結(jié)果廣播工作到最優(yōu)副節(jié)點,由單個最優(yōu)副節(jié)點完成交易摘要計算、交易摘要比對、比對結(jié)果廣播工作。從而可以降低該階段的耗時,并提升交易網(wǎng)絡(luò)的共識性能,提升電動汽車充電交易的并發(fā)交易數(shù)。隨著電動汽車充電交易的區(qū)塊鏈網(wǎng)絡(luò)中共識節(jié)點的增多,該改進的算法對比傳統(tǒng)PBFT共識算法的性能優(yōu)勢也會越明顯,交易的安全性和高效性也會越來越顯著。