王 晨,李雪晶,聞英友,孫錦山
1(東北大學(xué) 東軟研究院,沈陽 110004)
2(東軟集團(tuán)股份有限公司 研究院,沈陽 110179)
E-mail:wangchen-neu@neusoft.com
隨著新能源汽車的快速普及,充電樁已經(jīng)成為重要的新型基礎(chǔ)設(shè)施,其建設(shè)和發(fā)展對我國新能源汽車產(chǎn)業(yè)的發(fā)展具有重要意義.充電樁主要實現(xiàn)車用電池包的充電及用戶計費.目前,在充電樁運營平臺中,充電樁主要通過有線方式(以太網(wǎng)、CAN總線等)和無線方式(CDMA等)實現(xiàn)通信,通過APP完成用戶的認(rèn)證,通過置入智能電表和刷卡器進(jìn)行電量計費以及繳費,通過運營管理平臺進(jìn)行業(yè)務(wù)管理和技術(shù)支持.然而,隨著新能源汽車數(shù)量的快速增加和用戶數(shù)量的迅速擴(kuò)大,目前的充電樁功能、應(yīng)用及運營模式面臨著極大的挑戰(zhàn).通過APP實現(xiàn)用戶的認(rèn)證,需要依賴于可信第三方,這種中心化認(rèn)證方式存在著易遭受內(nèi)外攻擊而引發(fā)單點故障或數(shù)據(jù)被篡改等安全問題;計費方面,同樣也存在數(shù)據(jù)不安全問題.在運營方面,存在多個平臺管理分散,效率低下以及重復(fù)建設(shè)的弊端.上述問題都嚴(yán)重制約了我國充電樁基礎(chǔ)設(shè)施的建設(shè)和發(fā)展,限制了新能源汽車的快速普及.如何實現(xiàn)簡單、高效、安全的充電樁應(yīng)用和運營模式已經(jīng)成為研究的重要方向.
區(qū)塊鏈的普及和應(yīng)用,為充電運營管理提供了新的思路.周致成等提出了基于區(qū)塊鏈技術(shù)的高效跨域認(rèn)證方案[1],提出基于區(qū)塊鏈技術(shù)的高效跨域認(rèn)證方案,設(shè)計了區(qū)塊鏈證書授權(quán)中心(BCCA)的信任模型和系統(tǒng)架構(gòu),給出了區(qū)塊鏈證書格式,描述了用戶跨域認(rèn)證協(xié)議,并進(jìn)行了安全性和效率分析.吉斌等提出了基于區(qū)塊鏈技術(shù)的電力交易流程建模研究[2],主要針對電力交易流程的建模問題,實現(xiàn)了基于區(qū)塊鏈的典型交易流程.李剛等提出建立基于雷電網(wǎng)絡(luò)的電動汽車充電交易管理體系[3].借助智能合約與中介轉(zhuǎn)賬機(jī)制,建立了基于雷電網(wǎng)絡(luò)的鏈下交易管理通道,并給出了電動汽車用戶與充電樁進(jìn)行鏈下交易的流程框架.齊林海等提出了基于區(qū)塊鏈生態(tài)系統(tǒng)的充電樁共享經(jīng)濟(jì)模式[4],主要針對中心化共享平臺在信用體系、信息安全、收益分配以及數(shù)據(jù)共享等方面的弊端,提出基于區(qū)塊鏈、閃電網(wǎng)絡(luò)和智能合約技術(shù)構(gòu)建區(qū)塊鏈生態(tài)系統(tǒng),實現(xiàn)了去中心化、安全、高效的充電樁共享.歐陽麗煒等提出了智能合約的基礎(chǔ)架構(gòu)模型并以此為研究框架闡述了智能合約的運行機(jī)制與基礎(chǔ)架構(gòu)[5].劉維揚等提出區(qū)塊鏈下電動汽車充電樁共享創(chuàng)新服務(wù)平臺,以支持智能合約的以太坊平臺作為基礎(chǔ)框架,研究去中心化的電動汽車充電樁共享服務(wù)機(jī)制與技術(shù)平臺架構(gòu)[6].
上述研究針對區(qū)塊鏈與充電樁結(jié)合應(yīng)用方面,做了探索和嘗試,但未能綜合考慮安全、計費、運營及建設(shè)等方面的需要.鑒于此,本文提出了一種基于區(qū)塊鏈的充電樁并表計費系統(tǒng),能夠?qū)崿F(xiàn)基于區(qū)塊鏈的車-樁安全認(rèn)證,支持充電交易的智能合約,提供汽車充電與用戶家用智能電表綁定機(jī)制進(jìn)而實現(xiàn)并表計費,全面支持安全交易、即插即用的充電樁使用及運營.
本文首先介紹相關(guān)技術(shù),然后分別針對系統(tǒng)總體架構(gòu)、安全認(rèn)證流程、基于智能合約的并表計費等幾個方面進(jìn)行闡述,并從安全性和效率性能等角度對系統(tǒng)進(jìn)行測試分析.最后對文章進(jìn)行了總結(jié),并對今后的研究方向進(jìn)行了展望.
區(qū)塊鏈技術(shù)是指多個參與方之間基于現(xiàn)代密碼學(xué)、分布式一致性協(xié)議、P2P網(wǎng)絡(luò)通信技術(shù)和智能合約編程等形成的數(shù)據(jù)處理、交互以及數(shù)據(jù)存儲的組合.在區(qū)塊鏈技術(shù)中,存儲數(shù)據(jù)通過鏈?zhǔn)綌?shù)據(jù)結(jié)構(gòu),生成和更新數(shù)據(jù)通過分布式節(jié)點共識算法,數(shù)據(jù)傳輸和數(shù)據(jù)安全通過密碼學(xué)方式來保障,而操作數(shù)據(jù)則通過智能合約編程實現(xiàn).區(qū)塊鏈技術(shù)去中心化的分布式結(jié)構(gòu)可節(jié)省大量的數(shù)據(jù)互聯(lián)中介成本,同時解決中心化管理帶來的安全隱患和單點失效問題;安全的信任機(jī)制可解決數(shù)據(jù)交換的信任難題;海量數(shù)據(jù)的分布式存儲,具有良好的擴(kuò)展性;基于區(qū)塊鏈的智能合約可以規(guī)范數(shù)據(jù)交換和共享規(guī)則;可追溯特性使得數(shù)據(jù)的整個全生命周期都可以保存在區(qū)塊鏈上,其中全生命周期,包括數(shù)據(jù)采集、交易數(shù)據(jù)和計算分析的所有記錄[7-11].
區(qū)塊鏈技術(shù)改變了傳統(tǒng)的互聯(lián)網(wǎng)模式與格局,以保障信任為重心,推動數(shù)據(jù)交易、安全認(rèn)證等的高效運行.區(qū)塊鏈去中心化、協(xié)同自治、無需第三方信任機(jī)制以及智能合約各方面的技術(shù)特點可以促進(jìn)各參與主體的協(xié)同,使信息與物理系統(tǒng)進(jìn)一步融合,實現(xiàn)交易的多元化和低成本化.本文利用區(qū)塊鏈的特點,將其應(yīng)用到充電樁這一領(lǐng)域中,將電動車充電數(shù)據(jù)與家庭用電統(tǒng)一管理,實現(xiàn)安全、高效的計費.
智能合約是一段自動化腳本代碼,并部署在區(qū)塊鏈環(huán)境中,它包含數(shù)據(jù)和代碼.當(dāng)交易事件被觸發(fā),智能合約立即執(zhí)行,并在所有相關(guān)節(jié)點上運行.在節(jié)點產(chǎn)生共識結(jié)果后,將狀態(tài)變化等信息記錄在區(qū)塊鏈上[12].智能合約不需要在任何第三方機(jī)構(gòu)的控制即可根據(jù)約定的觸發(fā)條件及運行機(jī)制來管理和控制智能資產(chǎn),具有高度自治化特性,能夠讓復(fù)雜的且附有觸發(fā)條件的承諾按照設(shè)定者和參與者的意志被正確執(zhí)行[13-15].
基于區(qū)塊鏈應(yīng)用的智能合約構(gòu)建及執(zhí)行可以分為如下步驟:
1)簽訂智能合約:參與者通過協(xié)商約定或已有智能合約模板簽訂智能合約;
2)被確認(rèn)后的智能合約,通過P2P網(wǎng)絡(luò)傳播,并將作為一份擁有地址的信息存儲到區(qū)塊中;
3)當(dāng)條件被觸發(fā)后,智能合約自動執(zhí)行,并完成合約規(guī)定的相關(guān)內(nèi)容.
本文的研究通過一系列智能合約來保證車樁充電交易的自動執(zhí)行,實現(xiàn)系統(tǒng)各項功能.
基于區(qū)塊鏈的充電樁并表計費系統(tǒng)核心設(shè)計思想有兩點:一是將電動汽車識別信息與家庭電表設(shè)備ID綁定,從而實現(xiàn)電動汽車在任一充電樁上充電的費用直接計入家庭電費賬單,避免了多運營平臺、多支付渠道以及多主體結(jié)算的弊端,簡化了充電基礎(chǔ)設(shè)施建設(shè)和運營.二是利用區(qū)塊鏈,完成充電樁對接入電動汽車的快速身份自動識別以及充電費用賬單的自動記賬,從而實現(xiàn)即插即充,充完即走,極大地提高了充電設(shè)施使用效率和車主體驗.
圍繞上述核心設(shè)計思想,本文提出的基于區(qū)塊鏈的充電樁并表計費系統(tǒng)整體架構(gòu)主要劃分為充電樁側(cè)和平臺側(cè)兩個部分(如圖1所示).充電樁側(cè)主要涉及充電用戶(即汽車)和充電樁兩種角色;平臺側(cè)主要涉及區(qū)塊鏈和運營計費兩類平臺.
圖1 基于區(qū)塊鏈的充電樁并表計費系統(tǒng)架構(gòu)Fig.1 Architecture of charging system based on blockchain
充電樁側(cè)主要完成區(qū)塊鏈平臺接入、電動汽車身份認(rèn)證、汽車充電、電量計量以及狀態(tài)監(jiān)控等功能.
通信模塊同時不屬于充電樁側(cè)和平臺側(cè),共同完成常規(guī)的車樁通信,并為上層區(qū)塊鏈平臺運行提供底層通信保障,完成充電樁與區(qū)塊鏈平臺信息的接收與傳遞;電動汽車通過充電樁的通信模塊與平臺連接,完成車樁安全認(rèn)證.平臺側(cè)通信模塊支撐上層應(yīng)用實現(xiàn)用戶信息采集與展示、實時數(shù)據(jù)采集與展示、充電流程控制、計量計費等功能.本系統(tǒng)底層通信可支持5G、電力線通信等多種技術(shù)實現(xiàn).
區(qū)塊鏈平臺主要完成用戶電動汽車與家用電表ID的綁定注冊,充電汽車身份的識別認(rèn)證、交易執(zhí)行、數(shù)據(jù)存儲、數(shù)據(jù)安全等功能.
運營平臺主要完成電費賬單生成、查詢、費用核算以及形成月度清單等功能.
區(qū)塊鏈在安全認(rèn)證方面的能力能夠有效解決目前充電樁的設(shè)備認(rèn)證問題,為充電樁實現(xiàn)簡單高效的快捷接入和安全的運營管理提供了解決思路.針對電動汽車的接入身份認(rèn)證問題,本文提出了一種基于區(qū)塊鏈的充電樁和新能源汽車認(rèn)證方案,主要包括3個階段:注冊、認(rèn)證和狀態(tài)監(jiān)控.
電動汽車用戶在接入充電服務(wù)前,首先需要在系統(tǒng)完成相關(guān)信息注冊.注冊過程涉及用戶電動汽車識別信息、用戶家庭電表ID及用戶本人信息,通過上述信息的綁定和交換,完成與電網(wǎng)公司的簽約.上述綁定信息將存儲到區(qū)塊中,實現(xiàn)用戶所屬電動汽車在任一充電樁上充電所產(chǎn)生的費用與用戶家庭電表ID自動關(guān)聯(lián),從而實現(xiàn)電動汽車與家庭用電的并表計費,簡化用戶充電的認(rèn)證和支付流程,減少中間運營環(huán)節(jié),實現(xiàn)即插即充,充完即走.通過并表計費可以將電動汽車的充電過程簡化為日常手機(jī)等電子設(shè)備的充電過程,即把用戶的電動汽車轉(zhuǎn)換成家庭用電設(shè)備,通過統(tǒng)一的電表實現(xiàn)費用核算.
認(rèn)證主要包括3個過程:車樁通信、樁鏈通信以及認(rèn)證信息存儲.本文系統(tǒng)采用基于區(qū)塊鏈技術(shù)的智能合約實現(xiàn)認(rèn)證.合約由電網(wǎng)運營商與電動汽車車主雙方確定,合約中規(guī)定了認(rèn)證過程中所需的電動汽車指紋等內(nèi)容.最后通過交易雙方簽字生效,上傳到區(qū)塊鏈上.合約的執(zhí)行過程、結(jié)果以及合約中的代碼對鏈上用戶公開.當(dāng)認(rèn)證事件發(fā)生時,智能合約自動執(zhí)行,進(jìn)行相應(yīng)的認(rèn)證操作,完成此次認(rèn)證[16-19].認(rèn)證流程如圖2所示.
1)車樁通信
當(dāng)電動汽車接入充電樁時,首先通過CAN總線與充電樁建立通信.充電樁檢測到電動汽車連接,向電動汽車發(fā)送指紋請求,其中,指紋請求包括電動汽車ID,電池組ID等設(shè)備硬件標(biāo)識信息.電動汽車接收到請求后,返回其指紋信息.
2)樁鏈通信
充電樁收到電動汽車指紋信息后,根據(jù)共識機(jī)制選取負(fù)責(zé)此次認(rèn)證的一個區(qū)塊鏈節(jié)點并向該區(qū)塊鏈節(jié)點發(fā)送安全認(rèn)證請求.該節(jié)點接收到請求后,向充電樁返回認(rèn)證所需的信息.充電樁接收到消息后,將電動汽車的指紋信息發(fā)送到區(qū)塊鏈中,此時合約條件被觸發(fā),智能合約自動執(zhí)行.智能合約向區(qū)塊鏈節(jié)點返回認(rèn)證結(jié)果.最后,區(qū)塊鏈節(jié)點將認(rèn)證結(jié)果返回給充電樁,從而完成整個電動汽車認(rèn)證過程.
圖2 系統(tǒng)認(rèn)證過程Fig.2 Certification process
3)認(rèn)證信息存儲
認(rèn)證完成后,將采用加密算法對認(rèn)證數(shù)據(jù)進(jìn)行加密,加密后的認(rèn)證數(shù)據(jù)被寫入智能合約并存儲到區(qū)塊節(jié)中(見圖3).
圖3 認(rèn)證信息存儲Fig.3 Authentication information storage
充電樁具備實時狀態(tài)監(jiān)控功能,以便及時檢測充電事件并執(zhí)行相應(yīng)處理.充電樁中的控制模塊,實時監(jiān)控接入汽車的充電狀態(tài).若設(shè)備斷開,則執(zhí)行充電結(jié)束處理,形成此次充電電量記錄并開始計費流程.
基于區(qū)塊鏈的并表計費主要實現(xiàn)用戶電動汽車充電費用與家庭電表捆綁,實現(xiàn)電動車用戶像使用家用電器一樣使用電動車.整個并表計費平臺采用智能合約機(jī)制觸發(fā)月結(jié)電費賬單生成及支付交易(見圖4).
圖4 并表計費平臺Fig.4 Billing platform architecture
基于區(qū)塊鏈的并表計費流程如圖5所示.當(dāng)充電樁檢測到充電槍設(shè)備連接后,經(jīng)前述的電動汽車身份認(rèn)證過程并成功過后,電動汽車開始充放電.
圖5 并表計費流程Fig.5 Billing process
充電樁的控制模塊,檢測到充電完成后,形成此次充電賬單并存儲到系統(tǒng)的區(qū)塊中.當(dāng)共識時間到達(dá)時,觸發(fā)區(qū)塊鏈上的智能合約.智能合約按照事前用戶與電網(wǎng)公司約定,分別計算一個月內(nèi),該電動汽車用戶充電數(shù)據(jù)以及與之綁定的家用電表用電數(shù)據(jù),形成該用戶月度總用電清單.根據(jù)月度總用電清單,結(jié)合充電電量、家用電量與計費信息的映射關(guān)系,采用分級收費等計費策略,確定總月度費用.同時建立電動車主、充電樁以及電網(wǎng)運營商之間的支付通道,按照計算出來的月度總費用,完成此次交易,并將交易記錄儲存在區(qū)塊中.
充電樁的控制模塊檢測到充電完成后,負(fù)責(zé)生成單次充電賬單.賬單內(nèi)容可描述為編號001的電動汽車,于2020年9月23日8:00:00到2020年9月23日9:00:00,在編號為000011的充電樁上完成充電,充電電量為:30kWh.充電賬單數(shù)據(jù)結(jié)構(gòu)如圖6所示.
圖6 賬單數(shù)據(jù)結(jié)構(gòu)Fig.6 Billing data structure
其中,traceID為賬單的id號;status為充電狀態(tài)(00:未充電,01:正在充電,10:故障,11:充電完成);batteryPackId為電池組id(電動汽車id);chargingPileId為充電樁ID;startTime為充電開始時間;endTime為充電結(jié)束時間;elecEuantity為充電電量.
1)區(qū)塊生成
區(qū)塊鏈技術(shù)的基本處理單元是數(shù)據(jù)塊,它存儲一定時間內(nèi)的所有交易數(shù)據(jù)和相關(guān)的驗證信息.區(qū)塊鏈數(shù)據(jù)按照時間順序以鏈的形式組織成特定的數(shù)據(jù)結(jié)構(gòu).
本項目系統(tǒng)區(qū)塊頭包括了版本號、前個區(qū)塊哈希值、默克爾根、時間戳、難度值和隨機(jī)數(shù).其中,版本號記錄存儲區(qū)塊鏈系統(tǒng)和協(xié)議的相關(guān)版本號;前個區(qū)塊哈希值:記錄前一個區(qū)塊的哈希值.根據(jù)父區(qū)塊哈希值,所有的區(qū)塊可以連接在一起形成區(qū)塊鏈;區(qū)塊鏈中默克爾樹根的哈希值能夠用于快速檢查當(dāng)前區(qū)塊中所有存儲事務(wù)的正確性;時間戳則是以年月日小時和秒記錄區(qū)塊生產(chǎn)時間;難度值為工作量證明算法要解決的目標(biāo)難度值;隨機(jī)數(shù)記錄當(dāng)前的工作量證明算法的解決方案.
區(qū)塊體中主要存儲當(dāng)前區(qū)塊中的所有充電計費交易信息.該數(shù)據(jù)庫是按照時間順序?qū)⒊潆娪涗洈?shù)據(jù)生成區(qū)塊.每個區(qū)塊記錄了一段時間內(nèi)的交易信息并被打包存儲于區(qū)塊體中,每個區(qū)塊的頭部塊包含了前一個區(qū)塊經(jīng)過哈希函數(shù)處理后的哈希值,各區(qū)塊以此哈希值順序相連構(gòu)成區(qū)塊鏈.因此,這些交易將永久鏈接到以前的一系列交易.為了提高區(qū)塊鏈中各節(jié)點驗證交易信息的效率,區(qū)塊體內(nèi)的充電交易信息以默克樹形式保存并用其根節(jié)點連接區(qū)塊頭和區(qū)塊體.整個區(qū)塊鏈信息是對所有節(jié)點開放,各節(jié)點可以通過檢查新區(qū)塊的完整性和計算哈希值來進(jìn)行驗證區(qū)塊內(nèi)充電交易信息是否正確.
2)交易廣播
交易廣播機(jī)制負(fù)責(zé)向向全網(wǎng)廣播充電樁與電動汽車之間的一次充電交易信息,各個節(jié)點更新區(qū)塊鏈信息,并標(biāo)記同步完成狀態(tài).
3)區(qū)塊更新
充電樁交易服務(wù)網(wǎng)關(guān)定期更新區(qū)塊鏈信息,保持完成的區(qū)塊鏈信息,同時解析區(qū)塊信息,形成結(jié)構(gòu)化信息,存入數(shù)據(jù)庫,如圖7所示.
圖7 并表計費流程Fig.7 Billing data structure
智能合約擴(kuò)展了區(qū)塊鏈的功能,能夠?qū)崿F(xiàn)復(fù)雜的業(yè)務(wù)邏輯.從狹義上講,智能合約就是涉及相關(guān)商業(yè)邏輯和算法的程序代碼.本系統(tǒng)針對充電便利性需求,結(jié)合智能合約,在以太坊區(qū)塊鏈平臺中實現(xiàn)充電樁的并表計費,從而確保結(jié)算過程的簡單化和結(jié)構(gòu)化,并具備透明度和可審計性.
根據(jù)合約的安全性和腳本語言的局限性,本系統(tǒng)所設(shè)計的智能合約滿足以下原則:
1)合約的簡易性;
2)避免嵌套調(diào)用;
3)數(shù)據(jù)與邏輯分離.
根據(jù)系統(tǒng)業(yè)務(wù)流程和智能合約設(shè)計原則,本系統(tǒng)將智能合約分為3類:系統(tǒng)合約、庫合約和業(yè)務(wù)合約[20].
本系統(tǒng)包括普通用戶、管理員、充電樁本體、充電樁公司、電網(wǎng)公司等交易主體.系統(tǒng)在私有鏈中運行,后期隨著多個市場主體的加入,將會擴(kuò)展到聯(lián)盟鏈,這也決定了節(jié)點的加入和退出都需要權(quán)限認(rèn)證.并且,由于各市場主體間既要相互交易,又要保護(hù)隱私與機(jī)密,所以在合約發(fā)生前,首先需要識別交易雙方的市場身份,并匹配對應(yīng)的智能合約,同時保證未授權(quán)的第三方不能獲悉有關(guān)身份、交易模式、交易內(nèi)容等機(jī)密信息.
在充電樁并表計費系統(tǒng)的智能合約中,包含了角色管理和權(quán)限控制的服務(wù),并將該服務(wù)設(shè)計為控制合約.合約設(shè)計的主要內(nèi)容包括:1)管理員按照系統(tǒng)的需求,定義用戶角色,同時為各節(jié)點分配權(quán)限;2)節(jié)點的準(zhǔn)入準(zhǔn)出需要管理員審批,當(dāng)節(jié)點請求接入鏈時,管理員發(fā)起交易,交易達(dá)成共識后,節(jié)點可接入.同理,節(jié)點申請接出時,管理員發(fā)起交易,交易達(dá)成共識后,節(jié)點可接出,鏈接斷開;3)普通用戶調(diào)用智能合約時,若用戶具有調(diào)用智能合約的權(quán)限,則允許調(diào)用;反之,拒絕調(diào)用.
庫合約是智能合約中的一種特殊形式,引入模塊化方法,通過EVM調(diào)用方式完成代碼復(fù)用.本文所提出的并表計費系統(tǒng)庫合約主要定義了表示數(shù)據(jù)的結(jié)構(gòu)體,如用戶信息的數(shù)據(jù)結(jié)構(gòu)、電費信息的數(shù)據(jù)結(jié)構(gòu)等,如下所示.
//數(shù)據(jù)合約
contract Data Contract{
//定義一個Charger結(jié)構(gòu)體
struct Charger{
string sm_start T; //開始服務(wù)時間
string sm_end T; //結(jié)束服務(wù)時間
string C_number; //充電樁編號
unit m_price; //單位電價
uint m_lock; //鎖定金額數(shù)
unit m_electricity; //充電量
}
…
}
業(yè)務(wù)合約主要是實現(xiàn)各種功能,分為管理員業(yè)務(wù)和普通用戶業(yè)務(wù).管理員是具有最高權(quán)限的用戶,擁有自己的界面,能夠添加普通用戶、確認(rèn)交易、設(shè)置規(guī)則等.普通用戶依據(jù)自己的角色也擁有相應(yīng)的界面,合約功能包括參數(shù)設(shè)置、計量計費、支付、數(shù)據(jù)采集、數(shù)據(jù)傳送、各種信息的查詢、顯示、存儲等.
區(qū)塊鏈以分布式點對點的方式將新能源汽車,充電樁及用戶等各交易主體連接起來,各主體之間可以根據(jù)業(yè)務(wù)需要自由地定制交易智能合約,在合約中寫入執(zhí)行規(guī)則,并用數(shù)字化編碼存入?yún)^(qū)塊鏈中,合約中約定的條件事項的發(fā)生將自動觸發(fā)合約的執(zhí)行,如圖8所示.
圖8 電力計費交易聯(lián)盟鏈Fig.8 Power billing transaction alliance chain
具體設(shè)計過程為:參與方共同協(xié)商,明確各自權(quán)利與義務(wù),進(jìn)而確定標(biāo)準(zhǔn)合約文本,將程序化后的文本驗證完成后,獲得標(biāo)準(zhǔn)合約代碼.合約規(guī)范需要由具備相關(guān)領(lǐng)域?qū)I(yè)知識的專家和合約方進(jìn)行協(xié)商制定.例如:在家庭用電側(cè),電力公司與用戶在區(qū)塊鏈上簽署智能合約,明確電量、協(xié)議電價、違約責(zé)任等要素.建立在區(qū)塊鏈基礎(chǔ)上的智能電表直接把電量記錄在分布式賬本上,自動抄表、自動計量、自動計費,自動履行智能合約.
本系統(tǒng)規(guī)定,每月1號為并表計費賬單日,當(dāng)交易時間到達(dá)時,部署在區(qū)塊鏈上的計費智能合約代碼將被自動執(zhí)行,計算該電動車用戶用電總費用.此時雖然形成了成交信息,但資金未完成轉(zhuǎn)移,成交信息需轉(zhuǎn)移至交易管理系統(tǒng)中,由管理員用戶進(jìn)行確認(rèn).管理員確認(rèn)算法流程如下所示.
輸入:合同 Id
輸出:交易請求處理是否成功
Begin:
1. for each i in confirm_list_req
2. if(contractId==i.id)
3. continue;
4. else
5. const user=new User(contractId);
6. user.confirmList();
7. let userInformation=getDetail(contractId);
8. if(userInformation==user.confirmList)
9. open Paypage;
10. transfer Fund;
11. end if
12. end if
13. end for
14. return success;
End
上述智能合約的設(shè)計,能夠幫助交易各方自動、快速、可信地完成交易,降低市場交易的信任成本,避免人為操作的錯誤,提高清結(jié)算效率,同時推動電力交易市場的智能化.編寫的智能合約經(jīng)編譯后部署到區(qū)塊鏈上,外部應(yīng)用(本文為前端用戶界面)通過JSON-RPC方式來進(jìn)行調(diào)用.節(jié)點本地的以太坊虛擬機(jī)通過ABI訪問智能合約代碼,并根據(jù)預(yù)置響應(yīng)規(guī)則自動執(zhí)行,合約執(zhí)行的結(jié)果輸出給用戶,合約值和狀態(tài)的改變會記錄到區(qū)塊鏈上.
傳統(tǒng)的基于區(qū)塊鏈的充電樁計費平臺中,會有多個運營商收取交易金,存在二次收費問題,增加了電動車主的使用成本.
本平臺設(shè)計的基于區(qū)塊鏈的并表計費,電動車主與電網(wǎng)運營商直接進(jìn)行交易,不需要其他運營商參與,支付通道如圖9所示.
圖9 支付通道Fig.9 Payment channel
根據(jù)電動汽車用戶和電網(wǎng)運營商間的高頻低額的交易特點,通過智能合約,打開交易通道,在鏈下完成交易.完成交易后,將交易數(shù)據(jù)上傳到區(qū)塊鏈中.其過程如下:
1)給電動車主A,電網(wǎng)運營商保留哈希密鑰R;
2)建立充電樁A和電網(wǎng)運營商之間的基于HTLC的支付通道.
3)當(dāng)充電完成后,電網(wǎng)運營商向電動車主A提交密鑰R,電動車主A利用哈希值H(R)驗證密鑰R,驗證成功后,根據(jù)智能合約,電網(wǎng)運營商自動獲得交易金,即完成了此次交易.
本系統(tǒng)的實現(xiàn)使用以太坊為開發(fā)環(huán)境,用Solidity作為智能合約的開發(fā)語言,總體可分為數(shù)據(jù)層、網(wǎng)絡(luò)層、智能合約層、接口層和應(yīng)用層.其中,數(shù)據(jù)層采用改進(jìn)的以太坊區(qū)塊鏈系統(tǒng)完成區(qū)塊數(shù)據(jù)存儲以及優(yōu)化設(shè)計.系統(tǒng)的網(wǎng)絡(luò)層主要包括P2P網(wǎng)絡(luò)、共識算法以及驗證機(jī)制.該層包含了區(qū)塊鏈的主要邏輯,如安全模塊、獎勵機(jī)制模塊、共識模塊、數(shù)據(jù)處理模塊以及交易處理模塊等.服務(wù)層基于EVM模塊運行智能合約交互處理區(qū)塊鏈與共識的相關(guān)事務(wù),通過Solidity語言,設(shè)計并實現(xiàn)區(qū)塊鏈中的多種業(yè)務(wù)邏輯,包括賬戶注冊以及管理、數(shù)據(jù)管理、權(quán)限控制和數(shù)據(jù)溯源邏輯、交易計費等.接口層采用Node.JS框架,以Json RPC API的形式為應(yīng)用層提供與區(qū)塊鏈的交互服務(wù).應(yīng)用層主要負(fù)責(zé)用戶交互,完成Web3.js接口庫與智能合約層的數(shù)據(jù)信息交換.
本文所開發(fā)的系統(tǒng)依托商業(yè)化電動汽車智能充電系統(tǒng)進(jìn)行測試.該智能充電系統(tǒng)的V2G網(wǎng)絡(luò)采用先進(jìn)的電力線載波技術(shù),通過充電電纜線完成車與樁的信息交互,實現(xiàn)車輛接入認(rèn)證、充電啟??刂埔约皠討B(tài)功率調(diào)整等智能特性.充電樁網(wǎng)絡(luò)是由接入互聯(lián)網(wǎng)的充電樁構(gòu)成,采用自主設(shè)計研發(fā)的開放通信協(xié)議完成充電樁與云端的通信,實時采集充電全過程數(shù)據(jù),然后將相關(guān)數(shù)據(jù)存儲到區(qū)塊鏈中.
在整個大系統(tǒng)的運行過程中,系統(tǒng)的并表計費功能,以及用戶管理、數(shù)據(jù)查詢與溯源等功能都得到了充分驗證.雖然區(qū)塊鏈的計算能力及響應(yīng)速度存在瓶頸,但由于系統(tǒng)是按月生成一次賬單,所以影響不大.
信息與物理系統(tǒng)融合是物聯(lián)網(wǎng)的重要特征之一,信息系統(tǒng)被攻擊有可能給實際物理系統(tǒng)帶來巨大損失.本系統(tǒng)基于區(qū)塊鏈技術(shù)進(jìn)行設(shè)計和開發(fā),采用加密技術(shù)進(jìn)行身份認(rèn)證和數(shù)據(jù)傳輸,在抗攻擊性、保密性以及生存能力方面都有很大優(yōu)勢.
由于區(qū)塊鏈的去中心化特點,數(shù)據(jù)在所有節(jié)點都有備份,避免了因核心節(jié)點遭受攻擊而導(dǎo)致系統(tǒng)崩潰.同時,在必須控制51%的數(shù)據(jù)節(jié)點才能實現(xiàn)數(shù)據(jù)篡改的情況下,數(shù)據(jù)可靠性大大增強(qiáng).系統(tǒng)中采用了非對稱加密技術(shù),結(jié)合時間戳、隨機(jī)數(shù),能夠提高數(shù)據(jù)保密性,防止重放攻擊、口令猜測攻擊,可以有效保護(hù)用戶的個人隱私.
智能合約出現(xiàn)漏洞或者錯誤,將給系統(tǒng)和用戶帶來不可估量的損失.因此,在智能合約部署到區(qū)塊鏈之前,必須驗證合約代碼的邏輯安全性,確保沒有時間戳順序依賴、可重入攻擊、交易順序依賴、誤操作等常見的安全漏洞.
本文通過智能合約驗證工具Oyente對合約代碼進(jìn)行了安全漏洞檢測,發(fā)現(xiàn)業(yè)務(wù)合約中存在有幾處潛在的導(dǎo)致可重入攻擊漏洞.該漏洞產(chǎn)生的主要原因是智能合約的嵌套調(diào)用,嵌套調(diào)用不僅會導(dǎo)致運行效率低,而且等待狀態(tài)時較容易受到攻擊.如用戶合約中的總費用函數(shù) totalElectricCharge,當(dāng)用戶進(jìn)行并表計費操作調(diào)用用戶合約時,用戶合約調(diào)用計費控制合約,此時用戶合約等待執(zhí)行,直到計費控制合約執(zhí)行完成,如果這時計費控制合約使用用戶合約的當(dāng)前狀態(tài),就可能導(dǎo)致可重入攻擊漏洞.
在分析了漏洞出現(xiàn)的原因后,我們對合約進(jìn)行了改進(jìn)優(yōu)化.為了控制漏洞的出現(xiàn),設(shè)計合約時應(yīng)盡量避免合約進(jìn)行外部調(diào)用和多層嵌套調(diào)用,而且要先判斷條件,再執(zhí)行動作.
本文所提出的基于區(qū)塊鏈的充電樁并表計費系統(tǒng)有效地激活了現(xiàn)有家庭電表的記賬和交易結(jié)算能力,利用區(qū)塊鏈對交易信息的可追溯能力以及安全認(rèn)證能力,實現(xiàn)了電動汽車充電過程的即插即充,充完即走,使用戶對電動汽車的充電管理如同手機(jī)等家庭電子設(shè)備類似的體驗,徹底改變了現(xiàn)有充電樁運營管理模式,極大地發(fā)揮了現(xiàn)有電網(wǎng)基礎(chǔ)網(wǎng)絡(luò)和設(shè)施對于新能源汽車的支撐能力.
1)靈活性.本文提出的基于區(qū)塊鏈的充電樁并表計費系統(tǒng)通過用戶與電網(wǎng)公司的簽約,將家庭電表ID作為統(tǒng)一的記賬識別ID,使得新能源汽車的充電計費策略調(diào)整如同家庭用電策略調(diào)整一樣具有高度的靈活性.同時,充電樁管理平臺無需單獨建設(shè),可以充分利用電網(wǎng)公司現(xiàn)有計費系統(tǒng)合并管理,極大地提高了充電服務(wù)的快速部署能力.
2)高效性.利用區(qū)塊鏈平臺提供的安全認(rèn)證及智能合約等能力,充電樁并表計費系統(tǒng)實現(xiàn)了新能源汽車充電管理的高效運行,直接由電網(wǎng)公司面向新能源汽車用戶提供充電服務(wù),改變了傳統(tǒng)第三方平臺運營所涉及的用戶注冊、支付、結(jié)算等復(fù)雜流程,能夠滿足未來新能源汽車數(shù)量快速增長的服務(wù)要求,避免了多運營平臺、多支付渠道以及多主體結(jié)算的弊端.同時,系統(tǒng)能夠支持充電樁的快速設(shè)備接入認(rèn)證和充電,即插即充,避免充電樁設(shè)備無效占用,提高設(shè)備使用效率和頻率.
3)更好的用戶體驗.對于新能源汽車用戶來說,本系統(tǒng)能夠支持新能源汽車充電過程的即插即充,充完即走,無需各種第三方應(yīng)用程序和支付平臺,使得用戶像管理手機(jī)充電一樣管理自己的新能源汽車,節(jié)省了大量時間,極大地提高用戶體驗.
4)低運維成本.基于區(qū)塊鏈的充電樁并表計費管理和服務(wù)為電網(wǎng)公司提供了面向新能源汽車的充電樁基礎(chǔ)設(shè)施建設(shè)管理和運營的新模式,充分利用和激活了電網(wǎng)公司現(xiàn)有的智能電表等終端的網(wǎng)絡(luò)覆蓋能力和服務(wù)能力,可以實現(xiàn)新能源汽車充電管理平臺的低成本運營.充電樁網(wǎng)絡(luò)建設(shè)不必依賴于第三方平臺的介入和其他結(jié)算支付公司的配合,可以更快地完成建設(shè)部署和運營.
區(qū)塊鏈技術(shù)作為一種新的思想和技術(shù),在物聯(lián)網(wǎng)、工業(yè)互聯(lián)網(wǎng)中有廣泛的應(yīng)用潛力.本文通過以太坊平臺,利用智能合約技術(shù),通過編寫智能合約實現(xiàn)充電樁充電與家庭用電的并表計費,為區(qū)塊鏈在車聯(lián)網(wǎng)中的應(yīng)用提供了重要參考.結(jié)果表明,系統(tǒng)能夠在保證充電和交易安全的同時,實現(xiàn)電動車即插即充,充完即走,按月與家庭用電統(tǒng)一收費,極大方便了車主以及充電樁的運營和管理.目前系統(tǒng)的智能合約正在不斷完善中,避免出現(xiàn)漏洞造成不必要的損失.后續(xù)將建立具體的區(qū)塊鏈充電樁設(shè)施,探討衍生的商業(yè)運營生態(tài)系統(tǒng),還將利用區(qū)塊鏈虛擬貨幣對車主設(shè)計激勵與獎勵措施.