夏晨益,蔡青松,吳 杰
(北京工商大學(xué) 計算機(jī)與信息工程學(xué)院,北京 100048)
目前傳統(tǒng)能源面臨資源枯竭和環(huán)境污染等問題,新能源的出現(xiàn)為各種能源獲取、環(huán)境惡化提供了解決方案[1].盡管傳統(tǒng)的集中式發(fā)電遠(yuǎn)距離傳輸穩(wěn)定,但也存在諸如傳輸成本高和單一電源形式等問題.因此分布式發(fā)電技術(shù)近來得到了大力的發(fā)展,具有分布式發(fā)電設(shè)備的用戶可以與小范圍內(nèi)的其他普通用電用戶組成一個微電網(wǎng)系統(tǒng),在微電網(wǎng)內(nèi)進(jìn)行電力交易,微電網(wǎng)內(nèi)的本地能源交易可在提高供電可靠性的同時降低用電成本[2],同時促進(jìn)新能源的利用,減少集中式供電電能損耗,提高電網(wǎng)峰谷性能.
在傳統(tǒng)的電力交易模式中,參與電力市場的主體一般是電網(wǎng)企業(yè)、大型能源生產(chǎn)商和電力消費(fèi)者.家庭級別的消費(fèi)者和生產(chǎn)者沒有積極參與電力市場的交易,僅是向電網(wǎng)企業(yè)購買電力.在微電網(wǎng)中,用戶參與到實(shí)時的電力交易當(dāng)中.這種市場設(shè)計要求參與的用戶估算其未來的能源需求或供應(yīng)總量,以便能夠向市場提交未來一段時間內(nèi)的交易量[3].
傳統(tǒng)微電網(wǎng)電力交易通過中心化交易機(jī)構(gòu),這種模式存在一定隱患.例如用戶信息和交易數(shù)據(jù)由交易機(jī)構(gòu)儲存容易被篡改,不能有效地保證信息安全且中心化交易還存在單點(diǎn)故障的風(fēng)險.促進(jìn)微電網(wǎng)的去中心化交易模式,降低微電網(wǎng)市場的運(yùn)營成本,確保微電網(wǎng)電力交易信息的安全性,變得尤為重要.
區(qū)塊鏈?zhǔn)且环N去中心化的解決方案,不需要任何第三方組織.區(qū)塊鏈將密碼學(xué)技術(shù)、共識機(jī)制、智能合約、時間戳等結(jié)合,具有去中心化,防篡改的特點(diǎn)[4].智能合約是可自動運(yùn)行的代碼,電力交易基于智能合約,因此無需第三方干預(yù)即可自動執(zhí)行,實(shí)現(xiàn)去中心化交易.將區(qū)塊鏈與微電網(wǎng)結(jié)合可以降低微電網(wǎng)市場的運(yùn)營成本,可以保證微電網(wǎng)電力交易的安全性,并使微電網(wǎng)市場的交易過程更加透明.
國內(nèi)外已經(jīng)有很多將區(qū)塊鏈與電力交易結(jié)合的相關(guān)研究成果.文獻(xiàn)[5-7]分析了區(qū)塊鏈在電力行業(yè)中的應(yīng)用場景,包括能源認(rèn)證、電力交易、能源金融、數(shù)據(jù)存儲安全、和相關(guān)服務(wù)等.文獻(xiàn)[3]中總結(jié)了3 種分布式電力交易機(jī)制及其發(fā)展現(xiàn)狀,文獻(xiàn)[8,9]總結(jié)了國內(nèi)外140 多個區(qū)塊鏈能源項(xiàng)目,并指出了目前的研究方向與所存在的問題,但沒有給出具體方案.文獻(xiàn)[10]提出了基于區(qū)塊鏈的微電網(wǎng)能源市場的概念,其推出的TransActive Grid 是美國紐約的一個社區(qū)區(qū)塊鏈電力交易項(xiàng)目,但存在交易效率差的問題.文獻(xiàn)[11]提出了一種基于連續(xù)雙向拍賣機(jī)制的交易方法,能根據(jù)市場實(shí)時調(diào)整電力報價,但需要用戶不斷提交報價.文獻(xiàn)[12]對區(qū)塊鏈電力交易的具體流程進(jìn)行了分析,但其使用公有鏈存在效率、計算資源浪費(fèi)的問題.綜合來看,目前的研究許多都集中在增加交易效率和交易機(jī)制上.現(xiàn)有方案存在的問題包括對參與用戶的信息隱私性保護(hù)不夠,交易效率不夠高以及需要用戶每周期不斷進(jìn)行報價,而普通電力消費(fèi)者可能更期望能預(yù)繳一筆電費(fèi),在預(yù)繳電費(fèi)耗盡前可以不再需要反復(fù)提交報價.
本文受以上研究的啟發(fā),設(shè)計了區(qū)塊鏈微電網(wǎng)電力交易模式,基于智能合約自動執(zhí)行電力交易,實(shí)現(xiàn)相互無需信任的用戶可以完成去中心化的電力交易.本文主要工作內(nèi)容如下:
1) 提出了一種微電網(wǎng)無報價交易機(jī)制,使電力交易去中心化,電力消費(fèi)者只需預(yù)存電費(fèi),在電費(fèi)耗盡前無需再次參與電力拍賣,避免了不斷提交報價信息.通過模糊用戶身份信息,增強(qiáng)隱私性.
2) 采用PoA 共識算法構(gòu)建微電網(wǎng)電力交易聯(lián)盟鏈,能減少網(wǎng)絡(luò)擁堵且無需通過算力競爭出塊,更為節(jié)省電力消耗,減少分叉,共識效率更高.
3) 模擬仿真5 個產(chǎn)銷者和5 個消費(fèi)者的微電網(wǎng)電力交易,證明本文交易機(jī)制的可行性.
2008年,化名為“中本聰”的研究者在一篇關(guān)于密碼學(xué)的論文中提出區(qū)塊鏈的概念[13],隨后出現(xiàn)的比特幣數(shù)字加密貨幣就是以區(qū)塊鏈為底層技術(shù).區(qū)塊鏈?zhǔn)且粋€分布式數(shù)據(jù)庫,基本結(jié)構(gòu)如圖1所示,它按時間順序?qū)⒉煌臄?shù)據(jù)塊以鏈的形式儲存,每一個區(qū)塊分為區(qū)塊頭和區(qū)塊體.區(qū)塊體儲存交易信息,區(qū)塊頭中記錄了父區(qū)塊的哈希值和Merkle 根等信息.修改一個區(qū)塊的數(shù)據(jù)將會使得區(qū)塊的哈希值發(fā)生改變,這將會與之前子區(qū)塊頭中的記錄的哈希值不符.將區(qū)塊體內(nèi)所有交易記錄取哈希值,將兩個交易哈希值合并后再算出新哈希.不斷重復(fù)該操作直到只剩一個哈希值,即Merkle根,此過程類似于一個倒二叉樹.若修改區(qū)塊體中數(shù)據(jù)會造成Merkle 的值與父區(qū)塊頭所記錄的Merkle 之不同.父塊哈希值和Merkle 根共同實(shí)現(xiàn)區(qū)塊數(shù)據(jù)的不可篡改性.區(qū)塊鏈的關(guān)鍵技術(shù)涉及數(shù)據(jù)塊,鏈結(jié)構(gòu),P2P網(wǎng)絡(luò),時間戳,Merkle 樹,哈希函數(shù),非對稱加密,共識機(jī)制等[14],區(qū)塊鏈系統(tǒng)通過數(shù)學(xué)方法來建立相互信任,整個系統(tǒng)由所有節(jié)點(diǎn)共同維護(hù),單個節(jié)點(diǎn)故障不會引起整個網(wǎng)絡(luò)故障,網(wǎng)絡(luò)的抗干擾能力強(qiáng).時間戳技術(shù)可實(shí)現(xiàn)區(qū)塊鏈數(shù)據(jù)的可驗(yàn)證性和可追溯性,每個區(qū)塊的區(qū)塊體中的交易數(shù)據(jù)都有時間信息,這使得數(shù)據(jù)難以偽造.區(qū)塊鏈網(wǎng)絡(luò)中所有節(jié)點(diǎn)都保存一份賬本數(shù)據(jù),修改數(shù)據(jù)需要攻擊超過50%的節(jié)點(diǎn).

圖1 區(qū)塊鏈基本結(jié)構(gòu)
區(qū)塊鏈技術(shù)現(xiàn)在主要有3 種模式,分別是公有鏈、私有鏈和聯(lián)盟鏈.公有鏈?zhǔn)且粋€完全公開的區(qū)塊鏈,每個節(jié)點(diǎn)地位平等,記賬共識由所有節(jié)點(diǎn)共同參與;私有鏈?zhǔn)且粋€完全集中的區(qū)塊鏈,更適合用于組織內(nèi)部的數(shù)據(jù)管理.記賬權(quán)由單一機(jī)構(gòu)控制;聯(lián)盟鏈的分散程度介于兩者之間,記賬權(quán)由聯(lián)盟內(nèi)的特定節(jié)點(diǎn).
智能合約使得區(qū)塊鏈有更廣泛的應(yīng)用場景[15],能通過分布式賬本確認(rèn)和轉(zhuǎn)移各種形式的資產(chǎn),而不局限于數(shù)字貨幣.智能合約是一種能根據(jù)預(yù)定義規(guī)則自動執(zhí)行的鏈上代碼,無需第三方機(jī)構(gòu)監(jiān)督.電力交易由智能合約完成,大大減少人力成本,且解決交易者之間的信任問題.
共識機(jī)制指的是沒有中心機(jī)構(gòu)參與時對事務(wù)的合法性如何達(dá)成一致[16].區(qū)塊鏈目前較為常見的共識機(jī)制有工作量證明(Proof of Work,PoW)、實(shí)用拜占庭容錯(Practical Byzantine Fault Tolerance,PBFT)和權(quán)益證明(Proof of Stake,PoS)等.
PoW 共識機(jī)制最先被用于比特幣[17],因此基于區(qū)塊鏈的能源交易研究中早期共識機(jī)制采用PoW.PoW 需要依靠“礦工”挖礦來實(shí)現(xiàn)共識,“礦工”指的是有計算能力的設(shè)備,其通過解決一個困難的數(shù)學(xué)問題,即找到一個隨機(jī)數(shù)以形成滿足條件的哈希值,從而實(shí)現(xiàn)共識證明.但是PoW 存在共識效率差和浪費(fèi)計算資源的缺點(diǎn).
PBFT 是一種可以容忍拜占庭故障[18]的復(fù)制算法,適用于聯(lián)盟鏈或私有鏈.共識過程需要三輪投票并且每輪都廣播,因此每個節(jié)點(diǎn)都需要知道網(wǎng)絡(luò)中其他每個節(jié)點(diǎn)的身份.與PoW 不同,PBFT 出塊不需要計算復(fù)雜的數(shù)學(xué)難題,因此可以節(jié)省大量能耗.當(dāng)惡意節(jié)點(diǎn)的數(shù)量少于節(jié)點(diǎn)總數(shù)的1/3 時,可以達(dá)成正確的共識.
PoS 嘗試解決 PoW 算力資源浪費(fèi)的缺點(diǎn)[19],以節(jié)點(diǎn)賬戶擁有代幣在全網(wǎng)總代幣的比值和持有的時間長短來競爭記賬權(quán).但目前PoS 還未成熟,還存在安全性和代幣分配機(jī)制設(shè)計等問題.
本文微電網(wǎng)交易機(jī)制所采用共識機(jī)制是權(quán)威證明(Proof of Authority,PoA),其通常用于聯(lián)盟鏈中,其優(yōu)點(diǎn)是達(dá)成共識快、耗能低、擴(kuò)展性強(qiáng)等[20].以太坊中的PoA 基于clique 算法,該算法需要預(yù)先確定一組授權(quán)節(jié)點(diǎn)(signers) 負(fù)責(zé)出塊,所有signer 組成委員會,在委員會中通過投票決定是否刪除或新增singer 節(jié)點(diǎn).PoA 生成區(qū)塊無需算力競爭,這大大減少了資源浪費(fèi),增強(qiáng)共識效率.
微電網(wǎng)運(yùn)營商在聯(lián)盟鏈搭建時在創(chuàng)世區(qū)塊中設(shè)置初始 signers.聯(lián)盟區(qū)塊鏈開始運(yùn)行后,委員會的所有signer 排序后輪流取得優(yōu)先記賬權(quán),并在區(qū)塊頭簽名.在每一個區(qū)塊高度對應(yīng)一個 signer 處于IN-TURN 狀態(tài),其余的signer 是OUT-OF-TURN 狀態(tài),IN-TURN狀態(tài)的節(jié)點(diǎn)打包區(qū)塊的權(quán)值為2,其他節(jié)點(diǎn)的權(quán)值為1.在系統(tǒng)中每個節(jié)點(diǎn)都維護(hù)一條權(quán)值總和最高的區(qū)塊鏈,且 IN-TURN 狀態(tài)的節(jié)點(diǎn)能優(yōu)先廣播區(qū)塊,因此其打包的區(qū)塊會被優(yōu)先上鏈.當(dāng)IN-TURN 狀態(tài)節(jié)點(diǎn)出現(xiàn)故障宕機(jī)未能出塊時,其余signer 競爭記賬權(quán),通過GHOST協(xié)議[21]會處理分叉情況.
為保證區(qū)塊鏈中交易的合法性,每個signer 在接收新區(qū)塊后會進(jìn)行驗(yàn)證.評估交易合法性的參數(shù)主要有:
1) 收到新區(qū)塊時,由區(qū)塊頭中的簽名算出其出塊節(jié)點(diǎn)賬戶地址,檢驗(yàn)區(qū)塊是否由singer 廣播,同時根據(jù)signer 是否在IN-TURN 狀態(tài),確定上鏈優(yōu)先級.
2) 校驗(yàn)提交發(fā)電量是否符合物理約束.
3) 校驗(yàn)參與交易用戶是否已在微電網(wǎng)運(yùn)營商注冊,防止出現(xiàn)虛假交易.
4) 驗(yàn)證交易簽名信息.
5) 校驗(yàn)交易時間的合理性,對時間戳進(jìn)行核對,防止多次交易.
分布式發(fā)電設(shè)備的用戶在電力富余時作為生產(chǎn)者出售電力,電力不足時作為消費(fèi)者購買電力,稱之為產(chǎn)消者.在微電網(wǎng)模式下,電力產(chǎn)消者、普通電力消費(fèi)者和微電網(wǎng)運(yùn)營商組成微電網(wǎng).微電網(wǎng)系統(tǒng)與大電網(wǎng)的連接通過微電網(wǎng)運(yùn)營商,微電網(wǎng)運(yùn)營商對整個微電網(wǎng)進(jìn)行控制,保證電力系統(tǒng)的功率平衡、電壓穩(wěn)定.當(dāng)前的電力交易市場一般包括日前市場、日內(nèi)市場和實(shí)時市場3 種,因?yàn)槲㈦娋W(wǎng)電力交易量小,且分布式電源發(fā)電的波動性較大,受天氣、溫度等因素的影響,發(fā)電量在短期內(nèi)預(yù)存更為準(zhǔn)確,所以實(shí)時交易市場是比較適合微電網(wǎng)的.
在基于區(qū)塊鏈的微電網(wǎng)電力交易模式下,用戶間的電力交易通過智能合約自動執(zhí)行,不再通過傳統(tǒng)的交易機(jī)構(gòu)進(jìn)行,微電網(wǎng)運(yùn)營商維護(hù)電網(wǎng)穩(wěn)定運(yùn)行同時對交易收取過網(wǎng)費(fèi).假設(shè)每個用戶均安裝集成了區(qū)塊鏈模塊的雙向智能電表,從而將用戶的出售/購買電量信息上傳至區(qū)塊鏈網(wǎng)絡(luò).微電網(wǎng)運(yùn)營商充當(dāng)一個signer節(jié)點(diǎn),收集實(shí)時用電數(shù)據(jù),維護(hù)微電網(wǎng)運(yùn)行.金融機(jī)構(gòu)也作為一個signer 節(jié)點(diǎn)參與區(qū)塊鏈網(wǎng)絡(luò),每個用戶都可以選擇充當(dāng)一個節(jié)點(diǎn),可由微電網(wǎng)社區(qū)內(nèi)的所有用戶選擇出固定數(shù)目的授權(quán)節(jié)點(diǎn).整個微電網(wǎng)通過微電網(wǎng)運(yùn)營商與外部的大電網(wǎng)相連接,在內(nèi)部電力不足時可向大電網(wǎng)購電,內(nèi)部電力富余時向大電網(wǎng)出售多余電量.基于區(qū)塊鏈的微電網(wǎng)電力交易機(jī)制的系統(tǒng)結(jié)構(gòu)如圖2所示.

圖2 系統(tǒng)結(jié)構(gòu)
當(dāng)前許多交易機(jī)制未考慮到電力消費(fèi)者用戶無法很好地對自身用電情況進(jìn)行預(yù)測,因此無法提供未來一個交易周期內(nèi)正確的購買電量使得當(dāng)前許多已有交易機(jī)制有很大的局限性.本文所采用的交易機(jī)制中消費(fèi)者用戶在交易時不需要提交購買報價和電量,只需要向智能合約轉(zhuǎn)移足夠的能源代幣.智能合約周期性結(jié)算上一用電周期的電力交易費(fèi)用.每個用戶的智能電表周期性將出售/購買電量數(shù)據(jù)上傳至區(qū)塊鏈,通過上傳的數(shù)據(jù)計算的上一周期實(shí)際交易電量.以消費(fèi)者為例,根據(jù)上周期實(shí)際購買電量計算交易費(fèi)用,并從之前轉(zhuǎn)移的能源代幣中扣除相應(yīng)的費(fèi)用,當(dāng)能源代幣不足后可控制智能電表進(jìn)行斷電.對于產(chǎn)消而言需要準(zhǔn)確預(yù)測自身的出售量,智能合約在每個周期將上一周期發(fā)電所得利益以能源代幣形式轉(zhuǎn)移至產(chǎn)消者賬戶地址,同時還進(jìn)行懲罰激勵,對報量與實(shí)際量不一致進(jìn)行懲罰,以促進(jìn)產(chǎn)消者合理報量.每個用戶在交易前都需提前轉(zhuǎn)移一筆安全保證金至交易智能合約.對于消費(fèi)者來說此費(fèi)用是為了避免該用戶在智能合約所剩余的用于交易的能源代幣數(shù)量不足以支付上一周期的實(shí)際用電量.對于生產(chǎn)者來說,獎懲激勵會從保證金中扣除費(fèi)用,保證金的存在能督促其更好預(yù)測出售量,提交合理發(fā)電量.
基于區(qū)塊鏈的微電網(wǎng)電力交易機(jī)制分如下幾個階段:
1) 注冊階段:用戶通過微電網(wǎng)運(yùn)營商注冊,取得區(qū)塊鏈微電網(wǎng)電力交易資格.
2) 繳納保證金階段:用戶向金融機(jī)構(gòu)兌換能源代幣,在繳納一筆保證金后才能開始電力交易.
3) 預(yù)交易階段:電力產(chǎn)消者用戶提交下一周期的預(yù)測出售量;電力消費(fèi)者用戶預(yù)先繳納電費(fèi),在預(yù)付電費(fèi)耗盡前可不用再次提交交易請求.
4) 交易結(jié)算階段:根據(jù)上一交易周期的微電網(wǎng)內(nèi)部實(shí)際交易總電量和大電網(wǎng)上一周期的平均購/售電價格計算出上一周期的微電網(wǎng)內(nèi)部購/售電價格,再根據(jù)各個用戶的實(shí)際交易電量計算各自的收益和支出.
5) 懲罰激勵階段:根據(jù)產(chǎn)消者的預(yù)測出售電量與實(shí)際量的偏差進(jìn)行相應(yīng)的懲罰,以經(jīng)濟(jì)懲罰激勵產(chǎn)消者提高預(yù)報量準(zhǔn)確度.
針對以上交易流程我們設(shè)計了兩個智能合約來實(shí)現(xiàn).一個是用于發(fā)行能源代幣的能源代幣合約,整個交易的資源轉(zhuǎn)移通過能源代幣進(jìn)行,該合約由金融機(jī)構(gòu)發(fā)布.用戶在進(jìn)行電力交易前需要通過金融機(jī)構(gòu)兌換一定數(shù)量的能源代幣,具體的兌換規(guī)則可根據(jù)實(shí)際情況確定,本文未對其進(jìn)行探討.另一個是交易合約,用戶的電力交易都通過此合約自動執(zhí)行.
2.2.1 能源代幣合約
在比特幣和以太坊中,新代幣的來源是通過挖礦產(chǎn)生的鑄幣交易,且代幣的價值是波動的.而在本地微電網(wǎng)電力交易中,交易周期性進(jìn)行,而進(jìn)行結(jié)算的代幣應(yīng)具有穩(wěn)定的價值,價值會變化的代幣不利于與金融機(jī)構(gòu)間的實(shí)時結(jié)算.且在PoA 共識機(jī)制中出塊沒有獎勵,代幣的來源需要有權(quán)威機(jī)構(gòu)來擔(dān)保,因此通過金融機(jī)構(gòu)發(fā)行一種價值穩(wěn)定的能源代幣就變得很有意義,用戶通過金融機(jī)構(gòu)兌換能源代幣進(jìn)行能源交易.本文發(fā)行能源代幣基于ERC223[22],這是一種代幣設(shè)計標(biāo)準(zhǔn).目前普遍采用的標(biāo)準(zhǔn)是ERC20,但它還遠(yuǎn)有一個很大的缺陷使得不適用于本文的微電網(wǎng)電力交易機(jī)制.在本文方案中用戶需要將能源代幣發(fā)送給交易合約,而ERC20 在將代幣發(fā)送到智能合約時,代幣可能丟失,在ERC223 中解決了這一缺陷.設(shè)計能源代幣合約函數(shù)如圖3所示,調(diào)用balanceof 函數(shù)可查詢賬戶能源代幣的數(shù)量,通過transfer 函數(shù)可將能源代幣轉(zhuǎn)移至另一賬戶地址.金融機(jī)構(gòu)發(fā)布能源代幣智能合約,參與用戶按需通過金融機(jī)構(gòu)購買能源代幣參與微電網(wǎng)電力交易.

圖3 能源代幣合約函數(shù)
2.2.2 交易合約
交易合約由微電網(wǎng)運(yùn)營商發(fā)布,微電網(wǎng)內(nèi)的電力交易都通過該合約實(shí)現(xiàn).主要包含用戶注冊函數(shù)、保證金函數(shù)、出售報量函數(shù)、預(yù)付電費(fèi)函數(shù)、實(shí)際交易電量函數(shù)、交易結(jié)算函數(shù)和懲罰激勵函數(shù)7 個核心函數(shù),具體的功能與相關(guān)設(shè)計在本文后面的2.4 節(jié)詳細(xì)介紹.交易智能合約各函數(shù)互相協(xié)助完成電力交易的邏輯如圖4所示.

圖4 交易智能合約函數(shù)邏輯
假設(shè)微電網(wǎng)有m個擁有分布式發(fā)電設(shè)備的產(chǎn)消者,n個消費(fèi)者和1 個微電網(wǎng)運(yùn)營商.產(chǎn)消者i∈{1,2,···,m},產(chǎn)消者在發(fā)電量不滿足自身用電需求時將變?yōu)橄M(fèi)者,因此消費(fèi)者數(shù)量最多可能為m+n,消費(fèi)者j∈{1,2,···,m+n}.用戶一個交易周期內(nèi)實(shí)際出售電量為,實(shí)際購買電量為.一個周期內(nèi)的總實(shí)際出售電量為EG,實(shí)際總購買電量為EU.微電網(wǎng)電力富余時向大電網(wǎng)出售電力,微電網(wǎng)電力不足時向大電網(wǎng)購買電量,設(shè)該周期大電網(wǎng)的平均收購價為,平均售電價位.則微電網(wǎng)內(nèi)的該時段產(chǎn)消者的電力出售價格pS和消費(fèi)者電力價格購買pB應(yīng)處于區(qū)間考慮兩種情況計算微電網(wǎng)內(nèi)部電價pS和pB.
1) 當(dāng)EG≥EU時,微電網(wǎng)內(nèi)部電力富余,向大電網(wǎng)出售電力總金額與消費(fèi)者購電總金額之和應(yīng)等于產(chǎn)消者的總收益.

在本文模式下消費(fèi)者和產(chǎn)消者與直接向大電網(wǎng)交易所獲得的額外收益應(yīng)相等,即:

根據(jù)式(1)和式(2)可計算出:

2) 當(dāng)EG 根據(jù)式(2)和式(5)可計算出: 2.4.1 用戶注冊 在本文的交易模型中,與傳統(tǒng)比特幣、以太坊中僅僅只轉(zhuǎn)移資金的模式不同,還涉及到電力資源的轉(zhuǎn)移,為確保交易者的身份真實(shí)有效,用戶在初次使用時需要提前進(jìn)行向微電網(wǎng)運(yùn)營商注冊.用戶的相關(guān)信息應(yīng)不被區(qū)塊鏈網(wǎng)絡(luò)中的其他用戶所知,為確保隱私性使用SHA256 算法[23]對用戶相關(guān)信息進(jìn)行加密處理,將所得的哈希值ID作為用戶的唯一標(biāo)識,推斷用戶的相關(guān)信息將變得十分困難,這在一定上保護(hù)了用戶的隱私信息.加密公式如式(8)所示. 圖5 用戶注冊過程 2.4.2 保證金與預(yù)交易 用戶繳納保證金實(shí)質(zhì)是轉(zhuǎn)移一定數(shù)額的能源代幣至交易智能合約賬戶.產(chǎn)消者的保證金用來支付后面的懲罰階段的懲罰金,消費(fèi)者的保證金是為了防止交易結(jié)算階段出現(xiàn)剩余預(yù)付電費(fèi)不足以支付上一周期實(shí)際用電電費(fèi).成功繳納保證金后智能合約將為其創(chuàng)建保證金結(jié)構(gòu)體,結(jié)構(gòu)體的形式如下: Struct Deposit{ UserIn fo中的信息包括用戶的姓名、性別、現(xiàn)實(shí)世界中的地址、智能電表的編號、用戶以太坊賬戶地址等.由于signer 的信息公開,因此充當(dāng)signer 的用戶的signer 賬戶地址與用戶的注冊以太坊地址不相同.避免根據(jù)相同賬戶地址推斷出更多個人信息.在驗(yàn)證用戶提交的相關(guān)信息真實(shí)后,微電網(wǎng)運(yùn)營商將調(diào)用交易智能合約中的用戶注冊函數(shù),為用戶創(chuàng)建用戶信息結(jié)構(gòu)體,該函數(shù)只能由微電網(wǎng)運(yùn)營商的賬戶地址觸發(fā),其他用戶無權(quán)寫入用戶信息,結(jié)構(gòu)體形式如下: Struct User{ String ID;//用戶相關(guān)身份信息唯一標(biāo)識 address Address;//用戶以太坊賬戶地址 } 用戶注冊過程如圖5所示.因用戶身份信息模糊化的加密操作只在注冊階段進(jìn)行一次,在其后的階段用戶使用哈希值ID作為身份標(biāo)識,區(qū)塊鏈節(jié)點(diǎn)僅需驗(yàn)證ID與結(jié)構(gòu)體中的Address 是否相對應(yīng),所以對性能的影響極小. address Address;//用戶以太坊賬戶地址 uint256 DepositNum;//用戶保證金數(shù)目 } 用戶的保證金數(shù)額需達(dá)到相應(yīng)的數(shù)額才可進(jìn)行入預(yù)交易階段. 在預(yù)交易階段,電力產(chǎn)消者通過發(fā)電報量函數(shù)提交下一周期的預(yù)測發(fā)電量,電力消費(fèi)者用戶通過預(yù)付電費(fèi)函數(shù)預(yù)先繳納電費(fèi),只要預(yù)付電費(fèi)沒有耗盡,用戶可以一直用電. 2.4.3 交易結(jié)算 用戶智能電表的實(shí)時出售/購買電量數(shù)據(jù)通過實(shí)際發(fā)用電量函數(shù)上傳至區(qū)塊鏈網(wǎng)絡(luò),發(fā)送的數(shù)據(jù)包括實(shí)時出售/購買電量、用戶以太坊賬戶地址和用戶私鑰生成的數(shù)字簽名.通過驗(yàn)證數(shù)字簽名確認(rèn)此信息不是其他用戶所發(fā)出[24]. 每個周期結(jié)算上一周期的實(shí)際電力交易,根據(jù)實(shí)際發(fā)用電量函數(shù)收集的用戶實(shí)際出售/購買電量數(shù)據(jù),結(jié)算上周期產(chǎn)消者的收益和消費(fèi)者的支出,具體的流程如算法1. 算法1.電力交易結(jié)算算法eGi eUj pSo pBo 1) 輸入:,,,;2) 輸出:產(chǎn)消者的收益,消費(fèi)者 的支付電費(fèi);EG=0 EU=0 3) 初始化,.EG=m∑i=1 iCijS j 4)eGi 5)EU=m+n∑j=1 eUj EG≥EU 6) if pB pS 7) 根據(jù)式(3)和式(4)計算 和8) else pB pS 9) 根據(jù)式(6)和式(7)計算 和10) end if i=1i≤mi++11) for;;do Ci=pB×eGi 12)13) end for j=1 j≤m+n j++14) for;;do S j=pS×eUj 15)16) end for 2.4.4 懲罰激勵 智能合約根據(jù)產(chǎn)消者的預(yù)測出售電量與實(shí)際出售電量的偏差進(jìn)行相應(yīng)的懲罰激勵,產(chǎn)消者為了獲得更大的經(jīng)濟(jì)利益會努力提高預(yù)測的準(zhǔn)確度.由于本文直接根據(jù)上一周期實(shí)際交易量進(jìn)行結(jié)算,預(yù)測偏差不會對實(shí)際交易產(chǎn)生影響,因此提高準(zhǔn)確度主要是為了微電網(wǎng)運(yùn)營商能更準(zhǔn)確獲取實(shí)時的微電網(wǎng)內(nèi)產(chǎn)消者的預(yù)售電信息,本文進(jìn)行簡單設(shè)計. 產(chǎn)消者i的預(yù)測出售電量為e,則產(chǎn)消者i的偏差量為所有產(chǎn)消者的總偏差量ED如式(9)所示.產(chǎn)消者i的懲罰激勵值Ri如式(10),懲罰值與該交易周期外部電網(wǎng)的平均出售售電價相關(guān),D為懲罰系數(shù),由微電網(wǎng)運(yùn)營商根據(jù)實(shí)際情況調(diào)整. 我們將事務(wù)在被節(jié)點(diǎn)打包到區(qū)塊廣播至區(qū)塊鏈網(wǎng)絡(luò),被全網(wǎng)其他節(jié)點(diǎn)接收并驗(yàn)證合法性而達(dá)成共識的時間長短來作為效率的評估指標(biāo).PoW 的效率最低,因?yàn)樵趶V播區(qū)塊前,需要花費(fèi)大量時間來計算一個復(fù)雜的數(shù)學(xué)難題.與PBFT 相比,在PoA 中signer 節(jié)點(diǎn)在廣播區(qū)塊時只需一次通信,而在PBFT 中需要3 次通信,如圖6所示.假設(shè)節(jié)點(diǎn)數(shù)量為N,則PoA 的通信規(guī)模為N,而PBFT 的通信規(guī)模為N3,因此在N的數(shù)量大于16 個時,PBFT 的效率會大大降低[25]. 圖6 微電網(wǎng)內(nèi)每0.5 h 總出售/購買電量 (1) 身份隱私 用戶的真實(shí)身份信息僅有微電網(wǎng)運(yùn)營商所知,在區(qū)塊鏈網(wǎng)絡(luò)中以用戶經(jīng)過加密處理的的哈希值ID 作為唯一標(biāo)識,推斷用戶的相關(guān)信息將變得十分困難,這在一定上保護(hù)了用戶的身份隱私. (2) 數(shù)據(jù)安全 電力數(shù)據(jù)分布式存儲,非對稱加密技術(shù)以及數(shù)字簽名技術(shù)的結(jié)合使得保證惡意節(jié)點(diǎn)惡意節(jié)點(diǎn)無法偽造交易數(shù)據(jù),去中心化的方式還能避免單點(diǎn)故障且交易過程也更加透明化. (3) 惡意節(jié)點(diǎn) 聯(lián)盟鏈的準(zhǔn)入機(jī)制以及signer 節(jié)點(diǎn)是由大家選舉出來的有公信力的用戶,使得其作惡可能性大大降低.即使存在惡意signer,PoA 的機(jī)制也能保證區(qū)塊鏈的安全.其最多只能攻擊((signer 總數(shù)量/2)+1)個連續(xù)塊中的1 個,期間可以由其他signer 投票踢出該惡意signer. 本文與其它4 種現(xiàn)有方案進(jìn)行對比分析,結(jié)果如表1所示.本文考慮了用戶身份隱私性,用戶真實(shí)信息僅有微電網(wǎng)運(yùn)營商所知,在交易過程中用戶僅以哈希ID 作為身份標(biāo)識,相比于文獻(xiàn)[11]的方案隱私性有所增強(qiáng).在共識效率方面,在4.1 小節(jié)中已進(jìn)行了相關(guān)分析,本文采取PoA 共識機(jī)制與其它4 種方案的PoW和PBFT 相比都具有優(yōu)勢.表1中前兩種方案的PoW機(jī)制需要較多的節(jié)點(diǎn)來防止少數(shù)節(jié)點(diǎn)作惡,本文采用的聯(lián)盟鏈和表1中的第4 和第5 兩種方案都可使用較少的節(jié)點(diǎn).因此可看出,本文方案適合解決微電網(wǎng)電力交易問題. 表1 本文與其他方案對比 在實(shí)驗(yàn)過程中,用 5 臺機(jī)器作為聯(lián)盟鏈中節(jié)點(diǎn)的載體,將金融機(jī)構(gòu)和微電網(wǎng)運(yùn)營商設(shè)為初始授權(quán)節(jié)點(diǎn),負(fù)責(zé)打包生成新區(qū)塊,其余節(jié)點(diǎn)為普通節(jié)點(diǎn).使用Solidity在Remix 上編寫智能合約,編譯和調(diào)試后再部署在PoA 聯(lián)盟鏈上,實(shí)驗(yàn)環(huán)境如表2所示.本文的電力交易數(shù)據(jù)是文獻(xiàn)[26]中所提供的電力數(shù)據(jù)集,該數(shù)據(jù)集是Discovergy GmbH 公司收集的100 個純能源消費(fèi)者和100 個能源產(chǎn)消者的智能電表的電表讀數(shù)信息.本文模擬了5 個消費(fèi)者和5 個產(chǎn)消者在1 天中的電力交易情況,設(shè)置一個交易周期為30 分鐘,結(jié)合用電峰谷情況設(shè)置外部大電網(wǎng)每一周期平均電價[27]. 表2 實(shí)驗(yàn)環(huán)境 各交易周期整個微電網(wǎng)內(nèi)部電力總出售量和總購買量的變化情況如圖6所示.可以看出出售量在白天多而晚上低,這是因?yàn)楣夥l(fā)電設(shè)備的發(fā)電量受光照強(qiáng)度的影響,在缺乏充足光照條件時因此發(fā)電量主要來源于其他發(fā)電設(shè)備,如風(fēng)力發(fā)電機(jī).圖7為各交易周期間的向外部電網(wǎng)平均出售電價,向外部電網(wǎng)平均購電價格,微電網(wǎng)內(nèi)部產(chǎn)消者售電價格pS和微電網(wǎng)內(nèi)部消費(fèi)者購電價格pB的變化情況.可以看出內(nèi)部電價始終處于區(qū)間內(nèi),與直接向外部電網(wǎng)交易相比,產(chǎn)消者與消費(fèi)者都比獲得更多經(jīng)濟(jì)利益.在0:00~8:00 是用電低谷期間,相應(yīng)的收/售電價都較低;下午14:00~17:00 和晚上19:00~22:00 為用電高峰,平均收/售電價都最高;其余時間為正常用電時期,電價均衡. 圖7 電價對比 圖8為本文模式與傳統(tǒng)電力交易模式下一天內(nèi)的總售電收益和總購電費(fèi)用對比.CNew和CTra分別表示所有產(chǎn)消者一天內(nèi)在本文模式和傳統(tǒng)模式下的總收益,SNew和STra分別表示所有消費(fèi)者一天內(nèi)在本文模式和傳統(tǒng)模式下的總電費(fèi).可以看出在本文機(jī)制下,在一天的時間內(nèi),產(chǎn)消者增加了大約7.19 元售電收益,消費(fèi)者減少了大約7.30 元購電費(fèi)用,證明了本文模式的可行性. 圖8 總收益和費(fèi)用對比 本文針對當(dāng)前電力交易所存在的需要不斷報價、效率不足和用戶身份隱私的問題,提出一個基于PoA 聯(lián)盟鏈的微電網(wǎng)無報價交易機(jī)制.本文的交易機(jī)制對電力消費(fèi)者用戶更加友好,用戶只需預(yù)繳一筆電費(fèi)即可通過智能合約自動完成每周期交易,而無需不斷進(jìn)行電力拍賣報價.與現(xiàn)有的幾個方案做對比,本文方案在共識效率、用戶身份隱私性、節(jié)點(diǎn)需求方面都具有一定優(yōu)勢.最后仿真模擬了一天內(nèi)的5 個產(chǎn)消者和5 個消費(fèi)者的電力交易,實(shí)驗(yàn)表明本文模式與傳統(tǒng)交易模式相比具有明顯優(yōu)勢,證明了本文方案的可行性.

2.4 交易機(jī)制




3 分析與仿真實(shí)驗(yàn)
3.1 效率分析

3.2 安全性分析
3.3 對比分析

3.4 微電網(wǎng)電力交易仿真實(shí)驗(yàn)



4 總結(jié)