李孟特,顧春華,溫 蜜
1.上海電力大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,上海 200090
2.上海理工大學(xué) 光電信息與計(jì)算機(jī)工程學(xué)院,上海 200093
據(jù)文獻(xiàn)[1]指出,預(yù)計(jì)到2020年末,中國(guó)國(guó)內(nèi)各類電動(dòng)汽車保有量將達(dá)到500 萬輛以上。隨著電動(dòng)汽車行業(yè)的蓬勃發(fā)展,電動(dòng)汽車將會(huì)變得越來越普遍,與此同時(shí)充電樁也成為了越來越重要的基礎(chǔ)設(shè)施。近年來,作為智能電網(wǎng)的重要入口,我國(guó)政府高度重視和積極引導(dǎo)充電樁建設(shè)。我國(guó)政府在2015—2020年充電基礎(chǔ)設(shè)施建設(shè)規(guī)劃目標(biāo)指出:建成專用充電樁430 萬個(gè),分散式公共充電樁50 萬個(gè)。在政策大力推動(dòng)下,越來越多消費(fèi)者選擇購(gòu)買電動(dòng)汽車并使用充電樁進(jìn)行充電。而作為智能電網(wǎng)的重要組成部分,充電樁業(yè)務(wù)具有巨大的潛在市場(chǎng)價(jià)值。
目前,多家運(yùn)營(yíng)商推出的充電樁共享平臺(tái),均采用中心化運(yùn)營(yíng)模式。當(dāng)車輛連接到充電樁時(shí),充電樁將收集與該車輛及其所有者有關(guān)的數(shù)據(jù),例如位置和相關(guān)支付信息,然后上傳到一個(gè)中心節(jié)點(diǎn)進(jìn)行存儲(chǔ)。但這種模式存在以下弊端[2]:(1)中心節(jié)點(diǎn)易面臨集中式惡意攻擊,從而導(dǎo)致單點(diǎn)失效,造成數(shù)據(jù)丟失;(2)充電樁采集的數(shù)據(jù)可能會(huì)泄露客戶的個(gè)人隱私信息;(3)數(shù)據(jù)中心的存儲(chǔ)數(shù)據(jù)可能會(huì)被惡意篡改釀成嚴(yán)重后果。針對(duì)以上弊端,因此需要設(shè)計(jì)一種安全的去中心化數(shù)據(jù)存儲(chǔ)方案以保證充電平臺(tái)的交易數(shù)據(jù)安全。
區(qū)塊鏈?zhǔn)且环N點(diǎn)對(duì)點(diǎn)的去中心化交易賬本,自2008年由中本聰提出之后[3],因其透明化、去中心化、可追溯性等特點(diǎn)一直備受國(guó)內(nèi)外愛好者與研究者的關(guān)注[4]。區(qū)塊鏈在數(shù)據(jù)存儲(chǔ)中主要有以下優(yōu)勢(shì):(1)去中心化:區(qū)塊鏈去除了中心節(jié)點(diǎn),所有交易數(shù)據(jù)采用去中心化存儲(chǔ),可以有效避免單點(diǎn)失效問題;(2)匿名性:區(qū)塊鏈的用戶都是采用匿名方式參與交易,可有效保護(hù)用戶個(gè)人隱私;(3)安全性:區(qū)塊鏈由于采用安全系數(shù)較高的加密技術(shù),可防止鏈上數(shù)據(jù)被惡意更改,用戶可隨時(shí)對(duì)交易數(shù)據(jù)進(jìn)行驗(yàn)證。區(qū)塊鏈的技術(shù)優(yōu)勢(shì)與充電樁平臺(tái)數(shù)據(jù)存儲(chǔ)的需求具有很好的結(jié)合點(diǎn),可以避免中心化模式帶來的弊端。
近年來,區(qū)塊鏈技術(shù)在數(shù)據(jù)安全存儲(chǔ)以及電動(dòng)汽車充電平臺(tái)等領(lǐng)域的研究已經(jīng)有了初步成果,然而很少有人關(guān)注在電動(dòng)汽車充電平臺(tái)中交易數(shù)據(jù)的安全性問題,因此,本文提出了一個(gè)基于區(qū)塊鏈的電動(dòng)樁數(shù)據(jù)安全存儲(chǔ)平臺(tái)。使得電動(dòng)汽車充電平臺(tái)可以使用區(qū)塊鏈技術(shù)將充電平臺(tái)獲得的交易數(shù)據(jù)去中心化存儲(chǔ)在各充電站內(nèi)的數(shù)據(jù)中心之中,并且用戶可通過授權(quán)機(jī)制決定是否將個(gè)人相關(guān)的交易數(shù)據(jù)分享給他人使用,以此防止個(gè)人隱私數(shù)據(jù)泄露。
隨著現(xiàn)代信息技術(shù)的飛速發(fā)展,電力與信息技術(shù)開始深度融合。齊林海等人[5]提出了基于區(qū)塊鏈生態(tài)系統(tǒng)的充電樁共享經(jīng)濟(jì)模式,文中先指出了當(dāng)前私人充電樁運(yùn)營(yíng)商在中心化運(yùn)營(yíng)模式下存在的不足,然后基于區(qū)塊鏈技術(shù)、閃電網(wǎng)絡(luò)技術(shù)提出了一種全新的充電樁共享模式,但該方案依舊是采用最初的共識(shí)算法,效率上有待提升。Kang 等人[6]提出了一種基于區(qū)塊鏈技術(shù)的智能家居能源交易平臺(tái)。文中先描述了區(qū)塊鏈的屬性特征,然后討論了基于區(qū)塊鏈的智能家居中的能源管理和使用情況測(cè)量,最后使用區(qū)塊鏈技術(shù)在微網(wǎng)中建立一個(gè)安全、自動(dòng)化的去中心化可再生能源交易平臺(tái)。Aitzhan等人[7]通過把區(qū)塊鏈和數(shù)字簽名技術(shù)相結(jié)合,使得電能交易數(shù)據(jù)可被驗(yàn)證已達(dá)到安全存儲(chǔ)的目的。李燕等人[8]闡述了區(qū)塊鏈技術(shù)的發(fā)展現(xiàn)狀和應(yīng)用場(chǎng)景,同時(shí)總結(jié)了當(dāng)前區(qū)塊鏈技術(shù)在安全、效率、隱私保護(hù)等方面所存在的不足,針對(duì)共識(shí)機(jī)制、匿名性和系統(tǒng)吞吐量三個(gè)方面提出了有效的改進(jìn)方法。王浩然等人[9]提出了基于區(qū)塊鏈的充電權(quán)交易機(jī)制與模型。文中引入了充電權(quán)的概念,針對(duì)電動(dòng)汽車的有序充電控制問題,設(shè)計(jì)了可行的以以太坊區(qū)塊鏈為基礎(chǔ)的充電權(quán)多邊交易智能合約技術(shù)。楊德昌等人[10]對(duì)區(qū)塊鏈技術(shù)在能源互聯(lián)網(wǎng)中的應(yīng)用進(jìn)行了分析和展望。文章首先從區(qū)塊鏈特征入手分析了區(qū)塊鏈的技術(shù)架構(gòu)和交易過程,然后基于國(guó)內(nèi)外的區(qū)塊鏈研究熱點(diǎn),結(jié)合新興貨幣、技術(shù)產(chǎn)業(yè)等典型領(lǐng)域,對(duì)區(qū)塊鏈在能源互聯(lián)網(wǎng)中的應(yīng)用進(jìn)行了系統(tǒng)的總結(jié),最后對(duì)區(qū)塊鏈技術(shù)對(duì)我國(guó)的能源互聯(lián)網(wǎng)建設(shè)和電力體制改革中的應(yīng)用前景進(jìn)行展望。Knirsch 等人[11]提出了一種基于區(qū)塊鏈技術(shù)的電動(dòng)汽車充電站隱私保護(hù)協(xié)議,該協(xié)議可以根據(jù)價(jià)格和與電動(dòng)汽車的距離等因素,自動(dòng)尋找最佳充電站。以區(qū)塊鏈技術(shù)來構(gòu)建該協(xié)議,具有較強(qiáng)的可靠性和透明度,同時(shí)保留電動(dòng)車所有者的隱私。王麗麗等人[12]利用Python 工具建立了電動(dòng)汽車行為模型,來分析北京市充電站布局的合理性。文中分析了影響充電站布局的因素,然后建立以總出行時(shí)間最短為目標(biāo)函數(shù)的模型,利用Python 的Agent 仿真,分析不同區(qū)域充電樁的訪問頻率來得出最合理的布局方案。甘俊等人[13]提出了一種改進(jìn)的實(shí)用拜占庭容錯(cuò)(EPBFT)共識(shí)算法。文中指出了現(xiàn)有的PBFT算法中存在的網(wǎng)絡(luò)結(jié)構(gòu)類型靜態(tài)、主節(jié)點(diǎn)選舉方式隨意、主節(jié)點(diǎn)可信度低、網(wǎng)絡(luò)開銷過大、數(shù)據(jù)同步過程不夠完善等方面的不足,并針對(duì)這些問題進(jìn)行了算法上的改進(jìn)。
本文針對(duì)相關(guān)學(xué)者所作的研究工作進(jìn)行深入研究,對(duì)其所提方案中普遍存在共識(shí)時(shí)間過長(zhǎng)、安全性能有所欠缺、用戶無法掌握自身信息使用權(quán)等問題,提出了電動(dòng)樁數(shù)據(jù)安全存儲(chǔ)方案。該方案基于區(qū)塊鏈技術(shù)實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)交易;用戶可通過授權(quán)機(jī)制決定是否將個(gè)人相關(guān)的交易數(shù)據(jù)分享給他人使用,有效保障了用戶的信息安全,以此防止個(gè)人隱私數(shù)據(jù)泄露。
區(qū)塊鏈?zhǔn)且环N可信的、完全去中心化的對(duì)等數(shù)據(jù)存儲(chǔ)技術(shù),一旦數(shù)據(jù)被提交到區(qū)塊鏈中,將無法對(duì)其進(jìn)行隨意篡改。因此,區(qū)塊鏈可以被描述為一個(gè)去中心化的、不變的數(shù)據(jù)庫(kù)。如圖1所示。
圖1 區(qū)塊鏈結(jié)構(gòu)
該數(shù)據(jù)庫(kù)是按照時(shí)間順序?qū)?shù)據(jù)生成區(qū)塊[14]。每個(gè)區(qū)塊記錄了一段時(shí)間內(nèi)的交易信息被打包存儲(chǔ)于區(qū)塊體中,每個(gè)區(qū)塊的頭部塊包含了前一個(gè)區(qū)塊經(jīng)過哈希函數(shù)處理后的哈希值,各區(qū)塊以此哈希值順序相連構(gòu)成區(qū)塊鏈。因此,這些交易將永久鏈接到以前的一系列交易。為了提高區(qū)塊鏈中各節(jié)點(diǎn)驗(yàn)證交易信息的效率,區(qū)塊體內(nèi)交易信息以默克樹形式保存并用其根節(jié)點(diǎn)連接區(qū)塊頭和區(qū)塊體[15]。整個(gè)區(qū)塊鏈信息是對(duì)所有節(jié)點(diǎn)開放的,各節(jié)點(diǎn)可以通過檢查新區(qū)塊的完整性和計(jì)算哈希值來進(jìn)行驗(yàn)證區(qū)塊內(nèi)信息是否正確。區(qū)塊鏈既可以是公開的,其中交易由一些獨(dú)立的節(jié)點(diǎn)組或者礦工進(jìn)行驗(yàn)證記錄;也可以是私有的,其中只有一組授權(quán)的個(gè)人節(jié)點(diǎn)可以驗(yàn)證并記錄新的交易[16]。區(qū)塊鏈網(wǎng)絡(luò)中的各節(jié)點(diǎn)都擁有自身的公私密鑰對(duì),并以此作為賬號(hào)表示自己的身份進(jìn)行匿名交易,因此交易雙方可以有效保護(hù)自身隱私。
根據(jù)當(dāng)前電動(dòng)汽車充電平臺(tái)運(yùn)行模式,設(shè)計(jì)了一種采用P2P架構(gòu)的數(shù)據(jù)存儲(chǔ)方案。在該方案中,電動(dòng)汽車到達(dá)充電站后需要連接充電樁充電,充電樁可提供電能同時(shí)將會(huì)采集該電動(dòng)汽車相關(guān)信息并記錄充電數(shù)據(jù)進(jìn)行身份認(rèn)證和結(jié)算。各充電樁會(huì)將記錄的數(shù)據(jù)整合到充電站節(jié)點(diǎn)內(nèi)的數(shù)據(jù)中心中保存。該數(shù)據(jù)中心會(huì)作為一個(gè)節(jié)點(diǎn)與數(shù)據(jù)存儲(chǔ)系統(tǒng)通過有線網(wǎng)絡(luò)連接通信,將數(shù)據(jù)安全地記錄于區(qū)塊鏈平臺(tái)上。該數(shù)據(jù)存儲(chǔ)平臺(tái)由設(shè)置在各充電站內(nèi)的數(shù)據(jù)中心構(gòu)建,各數(shù)據(jù)中心作為節(jié)點(diǎn)相互連接組成區(qū)塊鏈系統(tǒng)[17]。在數(shù)據(jù)存儲(chǔ)平臺(tái)中,使用一個(gè)共識(shí)過程對(duì)該平臺(tái)的數(shù)據(jù)進(jìn)行審核驗(yàn)證,最后將這些充電樁記錄的包含充電汽車識(shí)別號(hào)、充電時(shí)間、充電地點(diǎn)、使用電能量等信息的交易數(shù)據(jù)記錄于該安全存儲(chǔ)平臺(tái)上。該存儲(chǔ)平臺(tái)結(jié)構(gòu)如圖2所示。
電能交易平臺(tái)運(yùn)行于一個(gè)微電網(wǎng)公有的區(qū)塊鏈服務(wù)器上,其內(nèi)有若干個(gè)區(qū)塊鏈節(jié)點(diǎn),用戶使用儲(chǔ)能裝置連接去中心化應(yīng)用(DApp)接入?yún)^(qū)塊鏈交易平臺(tái)來參與電能交易。
充電站面向廣大電動(dòng)汽車用戶開放,電動(dòng)汽車用戶是交易數(shù)據(jù)生產(chǎn)者。為保護(hù)用戶數(shù)據(jù)隱私,用戶第一次加入充電站平臺(tái)時(shí),需要先在交易平臺(tái)進(jìn)行注冊(cè)。具體注冊(cè)流程如圖3所示。
圖2 交易數(shù)據(jù)安全存儲(chǔ)平臺(tái)
圖3 注冊(cè)過程
希望對(duì)自身的交易數(shù)據(jù)進(jìn)行保護(hù)的用戶首先在該平臺(tái)相關(guān)部門進(jìn)行注冊(cè)申請(qǐng),在對(duì)其信息核實(shí)之后,該平臺(tái)將給予新加入的成員注冊(cè)許可。
在獲得注冊(cè)許可之后,注冊(cè)先設(shè)置其個(gè)人私鑰,也就是通常意義上的密碼,然后采用高效安全的secp256k1橢圓曲線加密算法由該私鑰生成對(duì)應(yīng)的公鑰,并以此獲得一個(gè)該交易系統(tǒng)使用的專屬賬戶配發(fā)相應(yīng)的個(gè)人證書,每個(gè)用戶的公鑰將保存在該區(qū)塊鏈平臺(tái)上。而用戶個(gè)人則保管自己的私鑰,通過非對(duì)稱加密算法可保證惡意用戶無法推算出該用戶的個(gè)人私鑰,從而無法偽造某個(gè)參與用戶竊取其個(gè)人交易數(shù)據(jù)。
用戶每次使用充電樁之后,可使用公鑰對(duì)該次相關(guān)交易數(shù)據(jù)進(jìn)行加密,自主掌控?cái)?shù)據(jù)所有權(quán),然后由充電樁留存在數(shù)據(jù)存儲(chǔ)平臺(tái)上。若后續(xù)需要使用相關(guān)數(shù)據(jù),則需要用戶進(jìn)行授權(quán)之后才可共享相關(guān)數(shù)據(jù)。
本文中所提充電樁類似智能電表功能,除可向電動(dòng)汽車輸送電能之外,還集成了相關(guān)傳感器節(jié)點(diǎn)及通信系統(tǒng)。充電樁可收集電動(dòng)汽車充電時(shí)相關(guān)的交易數(shù)據(jù),車主在充電完成支付電費(fèi)時(shí)可審核該次交易數(shù)據(jù),確認(rèn)無誤后使用生成的個(gè)人公鑰對(duì)該數(shù)據(jù)進(jìn)行加密,確保數(shù)據(jù)安全。
經(jīng)用戶加密的交易數(shù)據(jù)將傳送到該充電站數(shù)據(jù)中心之中進(jìn)行審計(jì),審計(jì)通過之后,全網(wǎng)節(jié)點(diǎn)達(dá)成共識(shí)。之后將數(shù)據(jù)打包成一個(gè)區(qū)塊,并在區(qū)塊頭加入上一個(gè)數(shù)據(jù)區(qū)塊的哈希值與之相連,進(jìn)而去中心化地存儲(chǔ)于數(shù)據(jù)存儲(chǔ)平臺(tái)的各數(shù)據(jù)中心內(nèi)。
充電數(shù)據(jù)存儲(chǔ)平臺(tái)的電動(dòng)汽車充電站內(nèi)設(shè)置的數(shù)據(jù)中心中存儲(chǔ)各用戶所產(chǎn)生的數(shù)據(jù)。該充電數(shù)據(jù)由充電樁收集并上傳到數(shù)據(jù)中心,用戶對(duì)該數(shù)據(jù)審核后進(jìn)行加密,以此保護(hù)數(shù)據(jù)安全。下文詳細(xì)表述以上運(yùn)行過程,其中所使用符號(hào)及其含義見表1。
表1 各符號(hào)對(duì)應(yīng)意義
(1)系統(tǒng)初始化和密鑰分發(fā):系統(tǒng)初始化時(shí),各充電樁被系統(tǒng)管理員設(shè)為區(qū)塊鏈節(jié)點(diǎn),并將各節(jié)點(diǎn)對(duì)應(yīng)的亂序編號(hào)和公私鑰發(fā)放給各充電樁,表示為。
(2)上傳充電數(shù)據(jù):充電樁CS1在采集數(shù)據(jù)被用戶確認(rèn)加密后,將向充電站內(nèi)的數(shù)據(jù)中心DC1請(qǐng)求交易數(shù)據(jù)上傳,該請(qǐng)求消息包含CS1的數(shù)字簽名Sig1,以此證明該交易數(shù)據(jù)有效。DC1在接收到該消息后,進(jìn)行驗(yàn)證核實(shí),確認(rèn)無誤后允許該CS1上傳加密后的充電數(shù)據(jù)。用戶U首先對(duì)CS1的充電數(shù)據(jù)Data進(jìn)行驗(yàn)證后使用其個(gè)人公鑰加密,然后CS1使用當(dāng)前代號(hào)假名的公鑰加密,并使用自身私鑰對(duì)其簽名,最后由DC1的使用自身公鑰PKDC1對(duì)該記錄消息加密得到可被寫入?yún)^(qū)塊鏈的最終數(shù)據(jù)FR_data,以上所述具體過程如下:
其中:
(3)充電站數(shù)據(jù)中心聚集充電樁上傳數(shù)據(jù):DC1對(duì)所有充電樁上傳的FR_data驗(yàn)證之后,如若數(shù)據(jù)Data安全有效,即可儲(chǔ)存到DC1中;如果驗(yàn)證未通過,則直接丟棄該數(shù)據(jù)。
(4)充電站數(shù)據(jù)中心工作流程:經(jīng)過一段時(shí)間后,本地?cái)?shù)據(jù)中心DC1將這段時(shí)間中所有合格的FR_data打包為一個(gè)數(shù)據(jù)集表示為:
(5)充電站內(nèi)數(shù)據(jù)中心之間的區(qū)塊共識(shí)過程:該共識(shí)過程采用EPBFT共識(shí)算法[17],該數(shù)據(jù)存儲(chǔ)平臺(tái)可將任一數(shù)據(jù)中心指定為主節(jié)點(diǎn)(不妨設(shè)為DC1,標(biāo)記為L(zhǎng)eader),其余m個(gè)數(shù)據(jù)中心將成為從節(jié)點(diǎn)。具體共識(shí)過程如圖4所示。
圖4 EPBFT算法流程圖
步驟1某一從節(jié)點(diǎn)數(shù)據(jù)中心向區(qū)塊鏈平臺(tái)中所有節(jié)點(diǎn)廣播發(fā)送一個(gè)Dataset,各共識(shí)節(jié)點(diǎn)(包括主節(jié)點(diǎn))收到交易后驗(yàn)證交易的合法性,若合法,則緩存起來。主節(jié)點(diǎn)待收到足夠的數(shù)據(jù)或者到一段時(shí)間間隔以后,生成一個(gè)區(qū)塊Block。
步驟2DC1為產(chǎn)生的區(qū)塊生成提案消息M,分配一個(gè)編號(hào)n,并附加上DC1的簽名信息SignSKDC1以及該區(qū)塊經(jīng)哈希之后的哈希值HashBlock以用于其他節(jié)點(diǎn)審核驗(yàn)證其內(nèi)容。之后向區(qū)塊鏈中設(shè)置的所有從節(jié)點(diǎn)廣播該消息,該消息的格式為<n,SignSKDC1,HashBlock,Block,timestamp>,其中Block是需要共識(shí)的區(qū)塊。從節(jié)點(diǎn)i∈{0,1,…,m}在接收到提案消息后對(duì)其進(jìn)行檢驗(yàn),如果同意提案消息,則進(jìn)入快確認(rèn)階段。以上所述具體過程如下:
其中:
步驟3快確認(rèn)階段。該數(shù)據(jù)存儲(chǔ)平臺(tái)在進(jìn)入快確認(rèn)階段后,各數(shù)據(jù)中心將把它們的審計(jì)結(jié)果及各自的數(shù)字簽名廣播給其他數(shù)據(jù)中心從節(jié)點(diǎn),以達(dá)到互相監(jiān)督及查驗(yàn)的目的??齑_認(rèn)消息格式為<Fast_Confirm,n,j>,其中j是其他數(shù)據(jù)中心自身編號(hào)??齑_認(rèn)階段完成的標(biāo)志為DC1收到2f+1 個(gè)從其他不同數(shù)據(jù)中心收到的與M一致的快確認(rèn)消息,若到時(shí)間超時(shí)為止未收到足夠快確認(rèn)消息,則將該區(qū)塊丟棄。其具體表述如下:
其中:
步驟4當(dāng)數(shù)據(jù)中心DC1完成快確認(rèn)階段后,將該區(qū)塊連同所有相對(duì)應(yīng)的數(shù)字簽名發(fā)送給區(qū)塊鏈上的從節(jié)點(diǎn)。此后,該數(shù)據(jù)區(qū)塊將以區(qū)塊內(nèi)時(shí)間戳順序被寫入?yún)^(qū)塊鏈平臺(tái)中。以上所述具體過程如下:
其中:
(6)用戶數(shù)據(jù)授權(quán)共享過程
數(shù)據(jù)存儲(chǔ)平臺(tái)上數(shù)據(jù)的真正持有者是運(yùn)營(yíng)平臺(tái)和相關(guān)用戶,各用戶在數(shù)據(jù)產(chǎn)生時(shí)便使用其個(gè)人私鑰已對(duì)其進(jìn)行加密,用戶有權(quán)控制其個(gè)人數(shù)據(jù)是否與他人共享。本文中數(shù)據(jù)共享通過用戶授權(quán)寫入?yún)^(qū)塊鏈保證使用該數(shù)據(jù)的合法性和公平性。
數(shù)據(jù)共享主要包括以下流程:當(dāng)該運(yùn)營(yíng)平臺(tái)向用戶請(qǐng)求使用數(shù)據(jù)并取得用戶同意后,需要用戶接入該數(shù)據(jù)存儲(chǔ)平臺(tái)使用私鑰對(duì)其數(shù)據(jù)揭秘并寫入?yún)^(qū)塊鏈。各數(shù)據(jù)中心首先需要驗(yàn)證用戶身份,達(dá)成共識(shí)后,該用戶將相應(yīng)數(shù)據(jù)解密后,重新使用平臺(tái)數(shù)據(jù)中心的公鑰進(jìn)行加密寫入該存儲(chǔ)平臺(tái)中。具體表述如下:
其中:
本文實(shí)驗(yàn)使用計(jì)算機(jī)配置為Interi7-8550U 1.8 GHz處理器和16 GB 內(nèi)存,Windows10 64 位操作系統(tǒng),采用Java語(yǔ)言編寫程序模擬讀取電動(dòng)車充電數(shù)據(jù),模擬界面如圖5所示。
圖5 模擬充電
圖5 中顯示的是使用Java 語(yǔ)言編程模擬CAN 協(xié)議讀取充電樁充電時(shí)電能數(shù)據(jù)。
本實(shí)驗(yàn)中私有區(qū)塊鏈平臺(tái)采用Pyhthon3.6 編程語(yǔ)言使用Flask網(wǎng)絡(luò)框架搭建,在本地部署區(qū)塊鏈后,采用Git-Bash模擬用戶轉(zhuǎn)賬支付。模擬交易內(nèi)容如圖6所示。
圖6 交易等待確認(rèn)
圖6中,正使用賬戶:1d6f36cc1c9d41 05ac72a0c8f7 b39ede(即圖中代碼sender部分所示)向賬戶:8f7b39ede(即圖中代碼recipient部分所示)支付10單位貨幣(即圖中代碼amount 部分所示)的交易。圖中顯示正在等待取得共識(shí)完成交易,其中Time spent部分顯示的是等待取得共識(shí)的時(shí)間,圖中表示已等待了4 s。當(dāng)取得共識(shí)后,該交易數(shù)據(jù)存儲(chǔ)于區(qū)塊鏈中,如圖7所示。
圖7 區(qū)塊鏈
圖7 所示區(qū)塊鏈內(nèi)記錄了交易的內(nèi)容、時(shí)間戳、節(jié)點(diǎn)簽名等內(nèi)容,并顯示了該條鏈上的區(qū)塊3 以及區(qū)塊4的交易內(nèi)容。Block_number 表示區(qū)塊的序號(hào)、power表示模擬充電的電能、previous_hash 表示前一個(gè)區(qū)塊的hash值、sign表示對(duì)應(yīng)數(shù)據(jù)中心的簽名、transaction則表示發(fā)生交易的具體信息,如圖7 區(qū)塊4 中則顯示了圖6中所使用的賬戶:1d6f36cc1c9d4105ac72a0c8f7b39ede向賬戶:8f7b39ede支付10單位貨幣的交易信。
此外,為檢驗(yàn)該平臺(tái)使用EPBFT 共識(shí)算法的共識(shí)效率,將其與PBFT算法進(jìn)行吞吐量性能比較。將一個(gè)塊中包含的交易數(shù)固定為10 個(gè)。測(cè)試了在4、5、6、7 個(gè)共識(shí)節(jié)點(diǎn)下的三組對(duì)照實(shí)驗(yàn)。多次測(cè)試取平均值,得出統(tǒng)計(jì)結(jié)果如圖8所示。
圖8 吞吐量性能比較
從圖8 可以看出,實(shí)驗(yàn)中隨著節(jié)點(diǎn)數(shù)增加,采取兩種共識(shí)算法的系統(tǒng)吞吐量逐漸減少,但是采用EPBFT算法吞吐量相對(duì)更高,隨著共識(shí)節(jié)點(diǎn)不斷增多,EPBFT吞吐量?jī)?yōu)勢(shì)更加明顯。由此可見,該方案是可行的。
本文所提基于區(qū)塊鏈的充電數(shù)據(jù)存儲(chǔ)平臺(tái)利用成熟的密碼學(xué)技術(shù),對(duì)傳統(tǒng)的安全攻擊具有良好的抵御能力。且與相關(guān)研究所提方案在信息安全保護(hù)特點(diǎn)上有所不同,相關(guān)比較由表2列出,其中部分性能由下文詳細(xì)說明。
表2 安全性能對(duì)比
(1)交易數(shù)據(jù)去中心化存儲(chǔ)。與傳統(tǒng)的數(shù)據(jù)存儲(chǔ)方式不同,本文所設(shè)計(jì)的交易數(shù)據(jù)存儲(chǔ)平臺(tái)采用基于區(qū)塊鏈架構(gòu)的去中心化方式存儲(chǔ)交易數(shù)據(jù),來保證數(shù)據(jù)安全,去除了第三方中心化存儲(chǔ)中心。各數(shù)據(jù)中心之間使用P2P的通信方式,可以有效防止中心化模式下出現(xiàn)的計(jì)算資源不足的問題;而若該區(qū)塊鏈存儲(chǔ)平臺(tái)中部分?jǐn)?shù)據(jù)中心節(jié)點(diǎn)遭遇到DDOS攻擊時(shí),而其他正常的數(shù)據(jù)中心節(jié)點(diǎn)中依舊可以正常工作并保存著所有的充電數(shù)據(jù),可有效避免該存儲(chǔ)平臺(tái)全面崩潰。
(2)用戶身份匿名。本文設(shè)計(jì)的存儲(chǔ)平臺(tái)中用戶以及充電樁均采用匿名方式通信,用戶身份信息只是由一串?dāng)?shù)字表示不記錄真實(shí)身份信息,充電樁由平臺(tái)分發(fā)的代號(hào)表示。僅通過充電數(shù)據(jù)根本無法獲知用戶身份;而且,相關(guān)數(shù)據(jù)在存儲(chǔ)時(shí)使用了用戶和充電平臺(tái)各自的密鑰加密數(shù)據(jù),最大限度地保證了數(shù)據(jù)安全。
(3)用戶掌握充電數(shù)據(jù)使用權(quán)。用戶在平臺(tái)注冊(cè)后會(huì)得到自己的個(gè)人密鑰,每次使用完充電樁后可使用個(gè)人公鑰使用加密技術(shù)對(duì)產(chǎn)生的充電數(shù)據(jù)加密存儲(chǔ)。若無用戶授權(quán)則無法使用該數(shù)據(jù),從而保證數(shù)據(jù)信息安全。
(4)充電交易數(shù)據(jù)防篡改。對(duì)于該充電站內(nèi)的普數(shù)據(jù)中心節(jié)點(diǎn)而言,即便某個(gè)數(shù)據(jù)中心節(jié)點(diǎn)被攻擊者控制來篡改部分?jǐn)?shù)據(jù),但通過共識(shí)機(jī)制,這些被篡改的數(shù)據(jù)也會(huì)被其他數(shù)據(jù)中心節(jié)點(diǎn)驗(yàn)證哈希值時(shí)發(fā)現(xiàn)問題,保證數(shù)據(jù)的合法性與真實(shí)性。
隨著電動(dòng)汽車保有量的快速增長(zhǎng),充電平臺(tái)數(shù)據(jù)量勢(shì)必會(huì)大幅增加。傳統(tǒng)的中心化數(shù)據(jù)存儲(chǔ)方法將越來越難以應(yīng)對(duì)日益增加的海量數(shù)據(jù),數(shù)據(jù)存儲(chǔ)方式將會(huì)向去中心化的模式轉(zhuǎn)變。而區(qū)塊鏈技術(shù)天然具備去中心化的存儲(chǔ)模式,本文所提的充電數(shù)據(jù)存儲(chǔ)平臺(tái)可將充電站數(shù)據(jù)實(shí)現(xiàn)去中心化存儲(chǔ),且具有較小成本,解決了交易數(shù)據(jù)在中心化模式存儲(chǔ)下面臨的安全問題。且由于用戶可使用自己非對(duì)稱公鑰加密交易數(shù)據(jù),通過授權(quán)機(jī)制允許他人使用自己的交易數(shù)據(jù),可有效限制不法分子私自使用該數(shù)據(jù)。通過安全性能分析,表明本文所提設(shè)計(jì)方案安全有效。在未來工作中,可考慮提升底層設(shè)備安全防護(hù)性能、改進(jìn)平臺(tái)共識(shí)機(jī)制提高共識(shí)效率以及探究實(shí)現(xiàn)在線電能交易的方法。