廖會敏,張 敏,陳 煜,張 程,王建文
(1.國網電子商務有限公司,北京 100053;2.國家電網有限公司電力金融與電子商務實驗室,北京 100053;3.國網山東省電力公司,山東 濟南 250001)
傳統(tǒng)的微電網電力交易體系往往采用中心化交易模式的資源集中配置方式,具有交易成本高、用戶隱私難以保障等缺點,且中心化交易模式導致微電網電力交易需要大量的第三方管理機構來集中構建和維護交易信用,產生了高昂運維成本,難以快速有效推廣[1-3]。為了避免這種問題,目前的微電網電力交易都會建設一個控制管理中心來統(tǒng)一對交易進行決策,雖然該方式可以有效地處理現(xiàn)階段實際應用中的交易需求,但人力物力的成本較高,對數據的隱私保護性較差,而且容易存在單個節(jié)點故障問題。
針對這些問題,探索一種去中心化的微電網電力交易方式與模型顯得尤為重要,區(qū)塊鏈具有去中心化的特性,可以提高微電網電力交易過程中的可靠性、管理性和安全性[4-8]。在微電網電力交易中,交易主體的數量較為龐大,如果采用傳統(tǒng)的公有鏈方式,必然會導致交易速度慢、效率低,并且節(jié)點需要存儲海量的交易數據,這對節(jié)點的存儲能力也是一個巨大的考驗。所以,采用聯(lián)盟鏈[9]方式成為最優(yōu)選擇,電力聯(lián)盟區(qū)塊鏈的中心思想在于將節(jié)點分為全節(jié)點和輕節(jié)點,全節(jié)點存儲全部信息,輕節(jié)點只存儲自身相關信息,可以通過相關協(xié)議完成數據的交互。
區(qū)塊鏈的去中心化、開放透明等特點與分布式新能源交易的需求高度吻合[10-12],但區(qū)塊鏈在微電網電力交易中存在數據安全問題,賬本的完全公開導致任何一個非法入侵者都可以很容易地獲取賬本資源,從而得到交易信息。例如,攻擊者通過大數據技術處理收集到的交易信息,從而可以分析出交易者的關系[13-14]。目前,已存在一些區(qū)塊鏈交易中數據保護的方法能夠對部分公開數據進行隱藏,增加攻擊者獲取數據的難度。文獻[15]借助區(qū)塊鏈的分布式存儲方式,降低隱私保護過程中的通信量;文獻[16]提出了基于拉格朗日乘法的能源區(qū)塊鏈交易數據保護;文獻[17]提出了基于訪問控制的能源數據保護方案。上述方法可以在某種程度上對數據的隱私進行保護,但其對交易的效率有較大的影響。
提出一種聯(lián)盟區(qū)塊鏈的微電網電力交易模型,設計了基于區(qū)塊鏈的安全高效的微電網電力交易方案,通過分布式一對多的方式,選用不活躍用戶進行微電網電力交易,有效地防護賬戶數據被惡意竊取,采用區(qū)塊鏈共識機制使得節(jié)點聚合商之間進行共識,極大地提高了微電網電力交易中數據交互的效率。
區(qū)塊鏈是分布式數據存儲,點對點傳輸,共識機制,加密算法等計算機技術在互聯(lián)網時代的創(chuàng)新應用模式。區(qū)塊鏈使用分布式核算和存儲,不存在中心化的硬件或管理機構,任意節(jié)點的權利和義務都是均等的,系統(tǒng)中的數據塊由整個系統(tǒng)中具有維護功能的節(jié)點來共同維護,具有去中心化的特點;區(qū)塊鏈上的數據經過密碼算法、鏈式結構的保護,使得對數據的改動可以通過數學算法迅速甄別,能有效防止對數據信息的篡改,同時分布式存儲和共識算法保證對單點的修改無效。區(qū)塊鏈智能合約是在區(qū)塊鏈數據庫上運行的計算機程序,可以在滿足其源代碼中寫入的條件時自行執(zhí)行。
根據分類原則的不同,區(qū)塊鏈分為公有鏈、私有鏈和聯(lián)盟鏈。公有鏈中的所有節(jié)點權限和等級平等,任何人或團體都可以參與該鏈進行交易,系統(tǒng)全面開發(fā),完全去中心化,不受機構控制;私有鏈強調私密,也就是寫入權限在一個組織機構和單位手中,主要用于大型機構的內部,由機構進行中心化的控制,但不同分布和分支機構之間是去中心化、協(xié)同協(xié)作的;聯(lián)盟鏈是介于公有鏈和私有鏈之間的一種系統(tǒng)形態(tài),它往往由多個中心控制,聯(lián)盟鏈中的成員各自運行著一個或多個節(jié)點,節(jié)點之間的數據指允許系統(tǒng)內不同的機構進行讀取和交易,并且共同記錄交易數據。
微電網電力交易系統(tǒng)采用聯(lián)盟鏈方式,其交易模型主要包括交易中心、節(jié)點聚合商[18]、交易者三個部分,模型如圖1所示。
圖1 交易網絡模型
在實施微電網電力交易時,交易者可以根據自己的實際需求確定自己的狀態(tài),如買入能源或賣出能源[19]。節(jié)點聚合商作為一種中間媒介而存在,它可以存儲完整的交易數據,并且為其包含的節(jié)點提供網絡通信和電力的支持。在交易過程中,任何一個需要買入或賣出的交易者都需要向其對應的節(jié)點發(fā)出能源買入或賣出請求,而節(jié)點聚合商會對這些請求進行驗證,驗證完成后向網絡內的所有節(jié)點聚合商廣播交易數據,以便在全網內進行交易需求的匹配。交易中心則是對買入和賣出的主體進行授權,以及對買入賣出的全過程進行監(jiān)督。
在交易過程中,所有的交易數據都具有節(jié)點聚合商的數字簽名[20]。如果有非法入侵者對這些數據進行惡意修改,交易中心可以發(fā)現(xiàn)并精確定位,同時該次交易會被整個網絡認定為非法交易,從而有效地保證交易數據的安全性。
一個完整的交易可以分為如下過程。
1)用戶注冊。以聯(lián)盟區(qū)塊鏈為基礎的交易系統(tǒng),節(jié)點聚合商主要由交易服務器組成,所有的交易進行之前,交易者都需要在交易中心進行注冊,只有注冊完成后,交易者才能在節(jié)點聚合商中進行交易。
2)用戶交易。交易者根據自身的情況來選擇是賣出能源還是買入能源,節(jié)點聚合商根據交易者的買賣需求,在全網范圍內根據智能合約進行智能匹配。
3)交易驗證。交易驗證也可以被認為是一個“共識”的實現(xiàn)過程。即每筆交易都需要在全網內的所有節(jié)點聚合商中進行廣播。
將節(jié)點聚合商分為兩個部分,即交易服務器和存儲服務器。交易服務器主要用于交易用戶的匹配、交易的進行和完成,并且其還需要支持代幣業(yè)務(類似于比特幣)和代幣兌換業(yè)務,存儲服務器用來記錄每一筆交易的完整信息,詳細的交易過程如圖2所示。
圖2 交易過程
基于區(qū)塊鏈的安全高效微電網電力交易體系可以分為用戶注冊、數據隱私保護設計和共識機制設計三個部分。
用戶注冊時,用戶需要向監(jiān)管中心提供自己的身份信息,監(jiān)管中心根據用戶的信息生成公鑰和私鑰,用戶在監(jiān)管中心注冊完成以后,該用戶就是網絡中的一個合法用戶。合法用戶交易之前,還需要將自己的賬戶上傳到節(jié)點聚合商中,并且從節(jié)點聚合商中下載最新的用戶以及數據,由于節(jié)點聚合商已經保存了網絡中所有的區(qū)塊信息,所以在微電網電力交易時,只需要驗證區(qū)塊的頭部數據,便可以完成交易,這大大減少了用戶需要存儲的信息,節(jié)約了大量的存儲資源,提高了數據存儲的效率。
通過一對多的方式來對微電網電力交易數據進行隱私保護。具體過程如圖3所示。
圖3 賬戶的一對多
通過賬戶一對多的方式,可以在每一次交易時創(chuàng)建新的賬戶,以此來保護能源買家和能源賣家的信息。用一個動態(tài)隨機數B來確定是否需要重新建立用戶,當賣家所需的代幣數量小于B時,則不需要創(chuàng)建新賬戶,反之則需要。如果采用傳統(tǒng)的單一隨機數控制模式,雖然可以在一定程度上對攻擊進行防御,但對數據挖掘算法的攻擊卻無能為力,攻擊者可以根據售電量、交易量等信息,推測出賬戶與隨機數的關系,從而竊取數據,所以采用函數T進行預測,公式為
式中:vi為賣家si的第i筆交易的交易量;e1為交易vi的交易量所占的比重;e2為前i-1 筆交易的交易量所占的比重。
可以定義兩種模式,即新建賬戶交易模式(Mt)和原賬戶交易模式(Mf),用函數f(si,vi,Mt)來表示賣家si的第i筆微電網電力交易選取的交易模式為Mt。在Mt模式選取時,攻擊者可以根據用戶所持賬戶的關系圖譜,來竊取賬戶信息,但是如果可以根據賬戶的活躍優(yōu)先級來確定交易賬戶,就可以避免這個問題。
在微電網電力交易前,節(jié)點聚合商的交易服務器會為賣家選定交易賬戶和錢包,然后向全網廣播交易信息,以尋求能源買家。待交易的能源買家和能源賣家匹配完成后,節(jié)點聚合商出具合約,能源買家向錢包支付代幣,并將交易信息發(fā)送給能源賣家,賣方驗證完成后上傳交易信息至節(jié)點聚合商存儲。
一個交易信息的共識機制可以分為三部分。
1)節(jié)點聚合商對微電網電力交易信息進行加密,然后創(chuàng)建一個新的區(qū)塊,并將微電網電力交易信息記錄在該區(qū)塊中,該區(qū)塊的哈希值由隨機數、時間戳、交易信息、前一區(qū)塊哈希值共同確定。
2)記賬節(jié)點將區(qū)塊數據、隨機數、時間戳、打包后在全網內進行廣播,其他節(jié)點聚合商在收到交易信息后進行驗證。
3)記賬節(jié)點對反饋的數據進行統(tǒng)計確認,并將統(tǒng)計確認結果下發(fā)給各個節(jié)點聚合商。
以上過程完成了一個微電網電力交易信息的共識機制,這種方式只需要在節(jié)點聚合商之間進行共識,極大地提高了微電網電力交易中數據交互的效率。
采用智能電表和光伏發(fā)電機的數據作為樣本數據來源,采用Fabric超級賬本來建立仿真平臺。
在一個模型仿真中,在買方和賣方選取50 組相鄰用戶,為賣家創(chuàng)建14個賬戶,其中10個為新賬戶,4個為老賬戶,如圖4所示。
在另一個模型仿真中,在買方和賣方選取100組相鄰用戶,為賣家創(chuàng)建45 個賬戶,其中38 個為新賬戶,7個為老賬戶,如圖5所示。
根據上述分析可以看出,使用新賬戶進行交易,可以有效地對相鄰的賬戶分布進行隱藏,并且某一些新創(chuàng)建的賬戶交易量為0,這也為非法入侵者的數據竊取設置了障礙,總的來說,該種方式可以對賬戶的分布信息進行隱藏,有效地提高了數據的安全性。
圖4 50組相鄰用戶的買賣分布
圖5 100組相鄰用戶的買賣分布
以比特幣的交易為例,其完成一次交易的時間約為60 min。在一個模型仿真中,設定每小時的交易次數分別為1、2、3、4、5 次,選取40 個節(jié)點聚合商,統(tǒng)計4 h 內交易所花費時間的情況,結果如圖6所示。
與比特幣交易相比,所提出模型的交易時間明顯縮短,交易效率大大提高,這是由于共識過程均由節(jié)點聚合商完成。
圖6 交易效率統(tǒng)計
區(qū)塊鏈作為一種新興的技術方案,已經被應用到了很多的場景當中。其被應用在微電網電力交易中,雖然可以實時獲得交易數據,但是其交易數據的安全性以及交易效率還有很高的提高空間。提出了一種安全高效的能源區(qū)塊鏈交易模型,通過試驗分析,與傳統(tǒng)的交易方式相比,該模型具有較好的數據隱私保護性和較高的交易效率。