玄佳興,柳旭,李國(guó)民,孫旭陽(yáng)
(1.國(guó)網(wǎng)電子商務(wù)有限公司,北京市 100053;2.國(guó)網(wǎng)雄安金融科技集團(tuán)有限公司,河北省雄安新區(qū) 071700;3.國(guó)網(wǎng)區(qū)塊鏈科技(北京)有限公司,北京市 100053;4.北京郵電大學(xué),北京市 100876)
傳統(tǒng)市場(chǎng)主體電力交易多以集中式交易為主,是由于發(fā)電商多以單一的集中式電源發(fā)電,而常規(guī)的集中式能源發(fā)電方式,將造成不可再生能源的急劇消耗,及碳排放增多、空氣污染等環(huán)境問題。太陽(yáng)能、風(fēng)能等分布式可再生能源的發(fā)展[1-2],大大緩解了能源資源不足、環(huán)境污染與經(jīng)濟(jì)社會(huì)發(fā)展之間的矛盾。
傳統(tǒng)能源交易雙方固定且類型單一,即交易中心運(yùn)行決策成本低,采用集中式交易較為方便。然而由于分布式能源交易模式多元化、交易數(shù)量多且單筆交易小的特點(diǎn),如按照傳統(tǒng)集中式交易模式,將發(fā)電商與用戶數(shù)據(jù)上傳,中央服務(wù)器通過特定的算法匹配發(fā)電和用電雙方,最后調(diào)度中心實(shí)施資源調(diào)度交易,將會(huì)使交易中心負(fù)荷過重,運(yùn)行成本以及所耗費(fèi)的時(shí)間都會(huì)限制分布式能源交易的發(fā)展,且交易中心承擔(dān)著用戶主體的隱私安全問題,如交易中心受到攻擊將會(huì)導(dǎo)致服務(wù)不可用或者數(shù)據(jù)泄露,而普通的分布式系統(tǒng)由于算力分散,在核驗(yàn)身份方面有所缺失且更易受到外部攻擊,因此亟需一種既能快速核驗(yàn)身份且交易過程完全是安全的易動(dòng)態(tài)擴(kuò)展的分布式系統(tǒng)。
區(qū)塊鏈,作為一種去中心化的分布式記賬系統(tǒng),運(yùn)用了密碼學(xué)原理以及共識(shí)機(jī)制解決了各方的信任問題,同時(shí)區(qū)塊鏈的去中心化、開放、交易透明、公平互信、交易不可篡改[3]和可追溯的特點(diǎn),與分布式能源交易所需要的主體對(duì)等、智能互信、交易透明、信息共享等模式具有很強(qiáng)的相似性。因此,區(qū)塊鏈在分布式能源交易方面可以有廣泛的應(yīng)用,在消納可再生能源,促進(jìn)分布式交易模式等方面大有可為。然而區(qū)塊鏈其本身有著交易吞吐量低,工作量證明(proof of work,PoW)共識(shí)機(jī)制耗能大的缺點(diǎn),作為能源交易系統(tǒng),存在龐大的能源消耗問題是絕對(duì)不能忍受的。
區(qū)塊鏈技術(shù)在能源領(lǐng)域的應(yīng)用主要用于可再生能源交易[4],國(guó)外已有代表性案例:如美國(guó)布魯克林TransActive Grid微電網(wǎng)項(xiàng)目,居民可以自發(fā)地用自己屋頂太陽(yáng)能設(shè)備產(chǎn)生的電能進(jìn)行交易,而不需要國(guó)家電力公司參與[5-6],奧地利Grid Singularity公司太陽(yáng)能交易項(xiàng)目[7]等。
蔡金棋[8]等人論述了傳統(tǒng)能源交易與新型基于區(qū)塊鏈的能源交易的特點(diǎn),設(shè)計(jì)了基于區(qū)塊鏈的能源交易架構(gòu),然而并未給出交易雙方博弈的過程。李彬[9]等人提出基于區(qū)塊鏈的分布式能源交易方案,采用聯(lián)盟鏈的方式,各主體平等分散決策, 降低了交易成本,增強(qiáng)了數(shù)據(jù)之間的安全性,然而該方案并沒有解決交易系統(tǒng)的性能問題。王蓓蓓[10]介紹了區(qū)塊鏈技術(shù)在提高交易處理效率方面的新發(fā)展,分析了國(guó)內(nèi)外在區(qū)塊鏈交易方面的研究現(xiàn)狀,給出了未來區(qū)塊鏈參與消納分布式能源方面的建議,如交易瓶頸和交易的安全性。文獻(xiàn)[11]提出了一種通過控制不同能源基于能源路由器實(shí)現(xiàn)就近消納的能源交易模式。其采用中心式存儲(chǔ)調(diào)度,易產(chǎn)生安全性問題。文獻(xiàn)[12]提出了一種基于聯(lián)盟鏈的分布式交易模型,采用權(quán)益證明機(jī)制(proof of stake,PoS)[13],優(yōu)點(diǎn)是采用了分布式管理且解決了PoW耗能高問題,缺點(diǎn)是聯(lián)盟鏈犧牲了區(qū)塊鏈去中心化的特性,被擁有大量代幣的節(jié)點(diǎn)把控交易,普通節(jié)點(diǎn)很難擁有記賬權(quán),且聯(lián)盟鏈采用準(zhǔn)入機(jī)制,仍然需要聯(lián)盟中的公司或組織信用做背書,并不是真正的交易通明、去中心化。
文獻(xiàn)[14]提出了許可鏈多中心動(dòng)態(tài)共識(shí)機(jī)制,設(shè)計(jì)了兩層區(qū)塊鏈結(jié)構(gòu),構(gòu)建主從多鏈,通過全局區(qū)塊鏈鏈接多個(gè)主體區(qū)塊鏈,保證數(shù)字化資產(chǎn)的全局一致性,提高區(qū)塊鏈性能,通過引入全局區(qū)塊與主體區(qū)塊實(shí)現(xiàn)交易分流,提高交易吞吐量。文獻(xiàn)[15]針對(duì)現(xiàn)有單鏈?zhǔn)絽^(qū)塊鏈在聯(lián)盟鏈環(huán)境中存在共識(shí)算法數(shù)據(jù)吞吐量較低及資源開銷較大,同時(shí)單鏈結(jié)構(gòu)難以支持多樣化數(shù)字資產(chǎn)的并發(fā)處理,容易造成隱私數(shù)據(jù)泄露等問題,基于主動(dòng)動(dòng)態(tài)授權(quán)拜占庭容錯(cuò)算法的多鏈結(jié)構(gòu),設(shè)置了相互獨(dú)立的用戶區(qū)塊鏈與數(shù)據(jù)區(qū)塊鏈,將區(qū)塊鏈應(yīng)用功能與隱私數(shù)據(jù)隔離,增強(qiáng)了安全性。以上方法雖然增強(qiáng)了數(shù)據(jù)吞吐量,卻在去中心化以及交易延遲方面有所欠缺。文獻(xiàn)[16]同樣認(rèn)為采用點(diǎn)對(duì)區(qū)塊鏈、點(diǎn)對(duì)點(diǎn)交易的方式來解決分布式能源交易是一種非常好的方式,但同時(shí)認(rèn)為區(qū)塊鏈的交易速度瓶頸將會(huì)制約其發(fā)展。
本文提出基于主從分片區(qū)塊鏈的分布式能源交易模型,從鏈采用有用工作量證明(proof of useful work,PoUW)共識(shí)機(jī)制[17]。該模型針對(duì)不同地區(qū)劃分不同的片,每個(gè)片內(nèi)維護(hù)獨(dú)立的一條從鏈,每個(gè)計(jì)算節(jié)點(diǎn)自身決定去加入不同的分片,在同一分片節(jié)點(diǎn)之間的交易只在該從鏈上記錄,眾多從鏈可并行進(jìn)行提高交易吞吐量。且從鏈具有地域性質(zhì)可以提高共識(shí)速度減少延時(shí),同時(shí)采用有用工作量機(jī)制也可解決公有鏈工作量證明機(jī)制算力問題。
區(qū)塊鏈源自于比特幣(Bitcoin)的底層技術(shù),2008年,化名為“中本聰”的學(xué)者在文獻(xiàn)[18]提出了一種被稱為比特幣的數(shù)字貨幣,在沒有任何權(quán)威中介機(jī)構(gòu)統(tǒng)籌的情況下,互不信任的人可以直接用比特幣進(jìn)行支付,區(qū)塊鏈?zhǔn)且环N去中心化、不可篡改、可追溯、多方共同維護(hù)的分布式數(shù)據(jù)庫(kù),能夠?qū)鹘y(tǒng)單方維護(hù)的僅涉及自己業(yè)務(wù)的多個(gè)孤立數(shù)據(jù)庫(kù)整合在一起,分布式地存儲(chǔ)在多方共同維護(hù)的多個(gè)節(jié)點(diǎn)上,任何一方都無法完全控制這些數(shù)據(jù),只能按照嚴(yán)格的規(guī)則和共識(shí)進(jìn)行更新,從而實(shí)現(xiàn)了可信的多方間的信息共享和監(jiān)督,避免了繁瑣的人工對(duì)賬,提高了業(yè)務(wù)處理效率降低了交易成本。區(qū)塊鏈通過集成P2P協(xié)議、非對(duì)稱加密、共識(shí)機(jī)制、塊鏈結(jié)構(gòu)等多種技術(shù),解決了數(shù)據(jù)的可信問題,通過應(yīng)用區(qū)塊鏈技術(shù),無須借助任何第三方可信機(jī)構(gòu),互不了解、互不信任的多方可實(shí)現(xiàn)可信、對(duì)等的價(jià)值傳輸。
本文設(shè)計(jì)了基于主從分片多鏈區(qū)塊鏈的分布式能源交易系統(tǒng),區(qū)塊鏈系統(tǒng)由聯(lián)盟鏈、公有鏈構(gòu)成,對(duì)應(yīng)構(gòu)建者為電網(wǎng)企業(yè)與自由節(jié)點(diǎn),其中基于聯(lián)盟鏈的區(qū)塊鏈系統(tǒng)主要負(fù)責(zé)智能合約的制定,全局計(jì)量交易信息的維護(hù),阻塞管理和動(dòng)態(tài)控制各從鏈交易速度。基于分片的從鏈系統(tǒng)采用公有鏈的方式,節(jié)點(diǎn)可自由加入退出從鏈網(wǎng)絡(luò)且不持有全局信息,從鏈網(wǎng)絡(luò)采用有用工作量證明機(jī)制,工作量由聯(lián)盟鏈系統(tǒng)智能合約制定,但聯(lián)盟鏈只負(fù)責(zé)對(duì)規(guī)則的維護(hù)以及記錄跨鏈交易信息,并不參與從鏈記賬權(quán)的確認(rèn),避免了內(nèi)部腐敗行為,增強(qiáng)了交易的透明性與公平性。
本節(jié)介紹交易系統(tǒng)底層的區(qū)塊鏈架構(gòu),以及建立在區(qū)塊鏈系統(tǒng)之上的交易模型。在第3節(jié)詳細(xì)介紹在交易中使用的多鏈協(xié)同方法以及有用工作量機(jī)制。
本系統(tǒng)在底層區(qū)塊鏈部分采用分片主從哈希錨定模型,傳統(tǒng)如比特幣采用以區(qū)塊為單位的單層鏈?zhǔn)浇Y(jié)構(gòu),該模式使用PoW共識(shí)機(jī)制,存在嚴(yán)重浪費(fèi)電力資源,較低的系統(tǒng)吞吐量難以滿足大量快速交易系統(tǒng)的問題,而采用聯(lián)盟鏈的方式,記賬權(quán)被預(yù)選節(jié)點(diǎn)壟斷,去中心化程度低。因此本系統(tǒng)綜合聯(lián)盟鏈與私有鏈的優(yōu)勢(shì)采用主從多鏈分片的方式來提高交易率,同時(shí)保證記賬權(quán)的公開與透明。主鏈構(gòu)建采用聯(lián)盟鏈的方式,區(qū)塊中不記錄分片后的各片內(nèi)本地交易信息,僅記錄從鏈區(qū)塊的交易信息的哈希值以及跨鏈交易信息,共識(shí)算法為DPoS。從鏈采用公有鏈的方式,共識(shí)算法為PoUW。
本交易系統(tǒng)區(qū)塊鏈架構(gòu)按層如表1所示主要分為網(wǎng)絡(luò)層、共識(shí)層、數(shù)據(jù)層、激勵(lì)層、智能合約層以及應(yīng)用層6層架構(gòu)。
表1 交易系統(tǒng)區(qū)塊鏈架構(gòu)Table 1 Blockchain architecture of trading system
交易模型是建立在區(qū)塊鏈系統(tǒng)之上的可信交易,交易系統(tǒng)結(jié)構(gòu)如圖1所示,參與方為電網(wǎng)企業(yè)、分布式能源業(yè)主和電力消費(fèi)者,其中電網(wǎng)企業(yè)維持全局信息以及制定交易用戶的準(zhǔn)入機(jī)制,分布式能源業(yè)主與電力消費(fèi)者可維持公有鏈網(wǎng)絡(luò)節(jié)點(diǎn)以獲得過網(wǎng)費(fèi)的獎(jiǎng)勵(lì),同樣也可只作為交易方發(fā)布信息,待計(jì)算節(jié)點(diǎn)給出局部匹配計(jì)算結(jié)果或自身指定交易對(duì)象方進(jìn)行簽約交易。
2.2.1 交易流程
本系統(tǒng)交易主要流程有用戶注冊(cè)、電力價(jià)格報(bào)價(jià)、系統(tǒng)匹配交易、安全校驗(yàn),合同簽訂等,如圖2所示。
圖2 分布式能源交易流程Fig.2 Flow chart of distributed energy transactions
1)用戶注冊(cè)。分布式能源發(fā)電者與購(gòu)電者分別注冊(cè)交易賬戶信息,進(jìn)行交易資質(zhì)認(rèn)證,將區(qū)塊鏈錢包地址與智能電表地址綁定。
2)電力價(jià)格報(bào)價(jià)。分布式能源發(fā)電業(yè)主與電力消費(fèi)者進(jìn)行電力報(bào)價(jià)并由所在片區(qū)從鏈網(wǎng)絡(luò)廣播,每一片區(qū)從鏈節(jié)點(diǎn)只包含本片區(qū)用戶報(bào)價(jià)。主鏈存儲(chǔ)所有用戶報(bào)價(jià)信息。
3)系統(tǒng)匹配交易。系統(tǒng)根據(jù)用戶發(fā)出報(bào)價(jià)信息數(shù)據(jù)包的IP所在分區(qū)為其分配到不同從鏈,匹配交易在從鏈內(nèi)部進(jìn)行,其計(jì)算任務(wù)分配至從鏈各個(gè)節(jié)點(diǎn),根據(jù)匹配算法先行計(jì)算出符合規(guī)則的匹配矩陣節(jié)點(diǎn)獲得記賬權(quán)并給予減免過網(wǎng)費(fèi)獎(jiǎng)勵(lì)。交易方選擇自行交易時(shí)需在系統(tǒng)匹配交易截止時(shí)期前一個(gè)交易周期τ進(jìn)行確認(rèn),確保自行交易信息不對(duì)既有匹配結(jié)果產(chǎn)生影響。
4)安全校驗(yàn)。系統(tǒng)進(jìn)行匹配任務(wù)計(jì)算時(shí)已進(jìn)行過安全性校驗(yàn),自行指定交易方用戶需單獨(dú)進(jìn)行安全性校驗(yàn),即進(jìn)行潮流計(jì)算,若該交易中有線路潮流超過允許最大潮流,則該交易不滿足安全校驗(yàn)。需重新進(jìn)行系統(tǒng)匹配交易對(duì)象,以及增加指定交易對(duì)象的過網(wǎng)費(fèi)用來緩解潮流越限線路的壓力。
5)合同簽訂。用戶確定交易對(duì)象后進(jìn)入簽訂合同流程,用戶簽約合同將約定交易期限、電量、電價(jià)以及違約責(zé)任等,智能電表上傳數(shù)據(jù)跟進(jìn)交易執(zhí)行狀況。
2.2.2 交易模式
考慮到交易情景的復(fù)雜性,如分布式能源發(fā)電功率不穩(wěn)定,作為工業(yè)化用電來源不適用的問題,或產(chǎn)生階段性分布式能源產(chǎn)量大于本地消納水準(zhǔn)的問題,電網(wǎng)公司可以作為分布式交易兜底交易對(duì)象,為參與分布式能源交易者排除穩(wěn)定性風(fēng)險(xiǎn)。因此共可分為兩大種交易模式,如下所述。
1)分布式能源發(fā)電者與購(gòu)電者進(jìn)行交易。
(1)交易雙方直接指定交易對(duì)象。該交易模式可以跨鏈交易,通過主動(dòng)獲取全局交易信息,指定交易對(duì)象來進(jìn)行交易。
(2)交易雙方通過算法匹配進(jìn)行交易。該種交易模式適用于想要獲得最大利潤(rùn)者進(jìn)行交易,算法模型的優(yōu)化目標(biāo)將會(huì)是發(fā)電購(gòu)電利潤(rùn)最大化,屆時(shí)按照算法結(jié)果發(fā)電者進(jìn)行發(fā)電電量與發(fā)電價(jià)格制定,對(duì)購(gòu)電者進(jìn)行購(gòu)電價(jià)格制定,不僅省去自身摸索定價(jià)導(dǎo)致?lián)p失的問題,且能保證較高的交易率。
2)分布式能源發(fā)電或購(gòu)電者與電網(wǎng)交易。
(1)分布式能源發(fā)電者與電網(wǎng)交易。分布式能源發(fā)電者電量受自然因素影響較大,極可能產(chǎn)生發(fā)電誤差。則多余電力需電網(wǎng)公司負(fù)責(zé)消納,電網(wǎng)公司為調(diào)動(dòng)產(chǎn)業(yè)積極性對(duì)此將不做收費(fèi)處理。發(fā)電不足時(shí)發(fā)電者可就違約后果自行選擇購(gòu)買電網(wǎng)電量補(bǔ)足交易所需電量,或主動(dòng)違約支付違約金。
(2)購(gòu)電者與電網(wǎng)交易。購(gòu)電者電量不足可按正常模式向電網(wǎng)購(gòu)電,如購(gòu)電者無法消納電量可選擇支付違約金額或者由電網(wǎng)公司代為消納,此時(shí)收取一定的消納費(fèi)用。
針對(duì)第2節(jié)采用的主從多鏈協(xié)同交易模型以及有用工作量證明機(jī)制,本節(jié)重點(diǎn)介紹了基于哈希錨定的主從多鏈同步方法,以及在將交易算法應(yīng)用到共識(shí)機(jī)制過程中的交易矩陣匹配策略。
針對(duì)傳統(tǒng)區(qū)塊鏈交易的交易速度瓶頸問題,本節(jié)提出的主從多鏈分片區(qū)塊鏈交易幾乎可以無限制地提升交易速度。
傳統(tǒng)交易模型采用PoW認(rèn)證機(jī)制有著浪費(fèi)能源,且系統(tǒng)吞吐量較低的缺點(diǎn),如比特幣系統(tǒng),每10 min產(chǎn)生一個(gè)1 MB的區(qū)塊,約每秒7筆交易,這在需要大量交易的分布式能源交易系統(tǒng)是不適用的,傳統(tǒng)解決該問題往往采用聯(lián)盟鏈的方式,通過準(zhǔn)入機(jī)制,控制驗(yàn)證節(jié)點(diǎn)的數(shù)量提高吞吐率,實(shí)質(zhì)上仍然是一定程度的中心化交易方式,節(jié)點(diǎn)數(shù)量少易受外部攻擊且發(fā)展受制于參與聯(lián)盟鏈的企業(yè)信用。本系統(tǒng)提出了基于分片處理交易的區(qū)塊鏈的交易模型,節(jié)點(diǎn)不必認(rèn)證和存儲(chǔ)整個(gè)網(wǎng)絡(luò)的交易,只處理所在片的交易,分片處理交易在空間上劃分片區(qū)降低了認(rèn)證的復(fù)雜度,在時(shí)間維度上交易可以并行使得交易速度理論上不存在上限,同時(shí)維護(hù)一條主鏈用于各鏈的跨鏈交易,且維持著全局的鏈路信息,如鏈路最大功率,方便做跨鏈交易時(shí)的安全性校驗(yàn)。
分片劃分從鏈區(qū)塊鏈的方法雖有交易速度快的特點(diǎn),卻存在從鏈難以跨鏈交易以及片內(nèi)誠(chéng)實(shí)計(jì)算節(jié)點(diǎn)數(shù)量少,易被惡意節(jié)點(diǎn)攻擊回滾操作,針對(duì)上述缺點(diǎn)本系統(tǒng)提出了以下解決方案。
3.1.1 基于哈希錨定的主從多鏈同步方法
針對(duì)從鏈計(jì)算節(jié)點(diǎn)較少、易被篡改的特性,本系統(tǒng)增加從鏈和主鏈的哈希錨定[19],其簡(jiǎn)單示意圖如圖3所示,主鏈區(qū)塊按照從鏈區(qū)塊交易打包的時(shí)間將從鏈區(qū)塊的交易哈希存儲(chǔ)在主鏈區(qū)塊中,主鏈節(jié)點(diǎn)只負(fù)責(zé)存儲(chǔ)在從鏈中已完成的交易,并不參與交易的構(gòu)建,該方法將全局節(jié)點(diǎn)信息保存在主鏈中,針對(duì)交易驗(yàn)證可從從鏈主鏈兩處著手進(jìn)行驗(yàn)證,確保了交易的不可篡改性,攻擊者假設(shè)突破聯(lián)盟鏈的準(zhǔn)入機(jī)制且積攢幣齡獲取到記賬權(quán),也無法針對(duì)主鏈的全局信息進(jìn)行回滾,主鏈包括了各從鏈交易信息記錄,需同時(shí)回滾所有從鏈交易,這顯然是難以辦到的,針對(duì)單條從鏈進(jìn)行回滾,則有主鏈在維護(hù)全局信息,可通過主鏈驗(yàn)證交易發(fā)現(xiàn)交易歷史被篡改,即全局具備了不可篡改性。
圖3 主從多鏈模型示意圖Fig.3 Schematic diagram of the master-slave multi-chain model
3.1.2 主從鏈數(shù)據(jù)結(jié)構(gòu)描述
主從區(qū)塊的區(qū)塊頭部數(shù)據(jù)結(jié)構(gòu)與傳統(tǒng)區(qū)塊鏈基本相同,有前一區(qū)塊的哈希值、交易信息哈希值所構(gòu)成的MerklerRoot,以及當(dāng)前時(shí)間戳TimeStamp,和目標(biāo)閾值Target,Target代表著本區(qū)塊進(jìn)行計(jì)算任務(wù)時(shí)結(jié)果閾值,在下一節(jié)會(huì)詳細(xì)給出定義。其他數(shù)據(jù)字段意義這里不再贅述。
存儲(chǔ)在從鏈中成功交易的數(shù)據(jù)結(jié)構(gòu)如表2所示,如該交易為跨鏈交易,則發(fā)電方與購(gòu)電方所在從鏈皆記錄交易信息,其標(biāo)識(shí)與錢包地址指向存儲(chǔ)跨鏈交易的主鏈地址塊,通過主鏈地址塊交易信息可以查找到存儲(chǔ)在另一條從鏈的交易方信息。通過交易ID來與主鏈做同步信息。
表2 從鏈區(qū)塊交易結(jié)構(gòu)Table 2 Sub-chain block transaction structure
主鏈存儲(chǔ)結(jié)構(gòu)如表3和4所示,針對(duì)跨鏈交易和從鏈交易哈希設(shè)置了不同的數(shù)據(jù)結(jié)構(gòu)。表3結(jié)構(gòu)存儲(chǔ)跨鏈交易信息,通過交易ID與不同從鏈就同一交易進(jìn)行信息同步。表4結(jié)構(gòu)記錄交易信息如交易哈希值集合、時(shí)間戳、區(qū)塊簽名和從鏈名稱等供交易查詢使用。
表3 主鏈區(qū)塊跨鏈交易結(jié)構(gòu)Table 3 Cross-chain transaction structure of main chain blocks
表4 主鏈區(qū)塊存儲(chǔ)從鏈交易結(jié)構(gòu)Table 4 Main-chain block storage and sub-chain transaction structure
該交易機(jī)制以及數(shù)據(jù)結(jié)構(gòu)具有交易并行處理和各鏈交易信息哈希錨定的特點(diǎn)。其優(yōu)點(diǎn)在于既可以保證交易速度的提升同時(shí)也確保交易的不可篡改性。
本文針對(duì)區(qū)塊鏈中有用工作量證明機(jī)制浪費(fèi)算力的問題,提出了基于交易矩陣的有用工作量證明機(jī)制,該機(jī)制將共識(shí)算法中工作量證明部分替換為交易矩陣匹配策略,實(shí)現(xiàn)了算力的有效利用。在私有鏈上進(jìn)行交易,也使分布式能源交易具有去中心化的特性。
互聯(lián)共識(shí)機(jī)制是區(qū)塊鏈技術(shù)為何有良好的去中心化特性的核心所在。目前研究?jī)?nèi)容中,提出的共識(shí)算法主要有工作量證明、股權(quán)證明(proof of stake,PoS)、委任權(quán)益證明(delegated proof of stake,DPoS)[20]、實(shí)用拜占庭算法(practical Byzantine fault tolerance , PBFT)[21]、授權(quán)拜占庭容錯(cuò)算法(delegated Byzantine fault tolerance,DBFT)、高性能共識(shí)算法(robust Byzantine fault tolerance,RBFT)、所用時(shí)間證明(proof of elapsed time,PoET),練習(xí)證明(proof of exercise,PoX),權(quán)威證明共識(shí)(proof of authority,PoA)。目前較成功的區(qū)塊鏈案例都與貨幣有關(guān),由于貨幣交易所需匿名性安全性,交易市場(chǎng)多以搭建公有鏈和運(yùn)用PoW工作量證明共識(shí)機(jī)制的區(qū)塊鏈為主。在基于PoW的公有鏈中,區(qū)塊鏈已被證明了算力不足50%時(shí),其上的交易信息不可偽造和修改[22]。貨幣交易只需消耗能源小于收益,便可以將這條公鏈維持下去,分布式能源交易有著交易頻率高交易電能少的特點(diǎn),如采用PoW共識(shí)機(jī)制將會(huì)造成巨大的能源浪費(fèi),直至耗電超過記錄交易所產(chǎn)生的收益,自由節(jié)點(diǎn)會(huì)退出維護(hù)公鏈網(wǎng)絡(luò),50%算力閾值將很快被惡意節(jié)點(diǎn)所打破造成嚴(yán)重的用戶財(cái)產(chǎn)損失。
PBFT算法同樣是常用的一種共識(shí)算法,在保證可用性和安全性的前提下能容忍最多(n-1)/3的容錯(cuò)性,因此為了保證PBFT算法的運(yùn)算結(jié)果正確,總結(jié)點(diǎn)數(shù)n與惡意節(jié)點(diǎn)數(shù)目f的關(guān)系應(yīng)為n> 3f,其有通信復(fù)雜度過高拓展性較低的特點(diǎn),該共識(shí)算法并不適配于公有鏈節(jié)點(diǎn)多的特性,多用于聯(lián)盟鏈和私有鏈共識(shí)算法使用。
PoET算法即每個(gè)節(jié)點(diǎn)都要從一個(gè)enclave中隨機(jī)獲取等待時(shí)間,其中enclave通過新型安全CPU指令來實(shí)現(xiàn),驗(yàn)證其節(jié)點(diǎn)確實(shí)使用了該等待時(shí)間且等待了規(guī)定時(shí)間后,等待時(shí)間最短的最先發(fā)布?jí)K,其雖然可以然而必須使用特定的硬件,不利于大規(guī)模采用。
PoX中采用了矩陣運(yùn)算來代替PoW中找隨機(jī)數(shù)來獲得工作量證明,其優(yōu)點(diǎn)是不再進(jìn)行無意義運(yùn)算,缺點(diǎn)仍是吞吐量小,以及其運(yùn)算可解決特定的科學(xué)問題,但難以和現(xiàn)實(shí)之間的任務(wù)結(jié)合。
PoA是一種基于聲譽(yù)的共識(shí)算法,其交易速度快,交易成本低,被選為區(qū)塊鏈的驗(yàn)證者是基于個(gè)人的聲譽(yù),其缺點(diǎn)在于鏈上必須實(shí)名驗(yàn)證身份簽署法律文件,權(quán)威節(jié)點(diǎn)資格只能是美國(guó)人。DPoS機(jī)制里通過選舉產(chǎn)生有投票權(quán)代表節(jié)點(diǎn),類似于“董事會(huì)”,通過少量的代表結(jié)點(diǎn)對(duì)新產(chǎn)生區(qū)塊做共識(shí)驗(yàn)證,可縮短節(jié)點(diǎn)之間達(dá)到共識(shí)時(shí)間,提高交易吞吐量。本系統(tǒng)主鏈基于共識(shí)機(jī)制為DPoS的聯(lián)盟鏈,可快速同步各從鏈上的交易信息哈希值,解決從鏈的安全性問題。
3.2.1 PoUW算法
本系統(tǒng)根據(jù)分布式能源交易特點(diǎn)專為從鏈設(shè)計(jì)出一種PoUW共識(shí)算法。表5是PoUW共識(shí)算法與常見的幾種共識(shí)算法性能對(duì)比。
表5 PoUW與常見的共識(shí)算法性能對(duì)比Table 5 Performance comparison between PoUW and common consensus algorithms
表中的PoUW相對(duì)于常見的共識(shí)算法在延時(shí)和吞吐量上有所欠缺,因此本文采用主從多鏈的交易方式彌補(bǔ)該缺點(diǎn),增大吞吐量,而從鏈根據(jù)地域IP地址劃分,可縮小共識(shí)范圍,即減小了各個(gè)節(jié)點(diǎn)到達(dá)共識(shí)的延時(shí)。同時(shí)PoUW算法有著良好的擴(kuò)展性以及更好的去中心化。
PoUW共識(shí)算法即為從鏈每個(gè)節(jié)點(diǎn)分配計(jì)算任務(wù),計(jì)算該片區(qū)從鏈上交易各方拍賣博弈結(jié)果,優(yōu)化目標(biāo)為雙方利潤(rùn)最大值以及交易率,約束為線路最大承載功率。智能合約通過動(dòng)態(tài)調(diào)整優(yōu)化目標(biāo)值可以控制產(chǎn)出塊的速度,避免頻繁出現(xiàn)分叉問題,在初次匹配成功后對(duì)所有線路進(jìn)行安全性校驗(yàn),使用阻塞價(jià)格調(diào)整法進(jìn)行阻塞管理[23],將對(duì)阻塞線路中有貢獻(xiàn)的交易方改變其交易價(jià)格,重新匹配。將阻塞價(jià)格的初始值設(shè)置為0。
更新阻塞價(jià)格算法為:
(1)
式中:vij為阻塞價(jià)格,初始值設(shè)置為0;L為阻塞線路集合;Plmax是線路l所能承擔(dān)功率值的上限;Pl則為實(shí)際計(jì)算后的線路實(shí)際功率,即在阻塞情況下Pl>Plmax;α為阻塞價(jià)格更新參數(shù),根據(jù)實(shí)際需要?jiǎng)討B(tài)調(diào)整。
發(fā)電者和購(gòu)電者雙方博弈的目標(biāo)皆為追求自身經(jīng)濟(jì)利益最大化,假設(shè)電網(wǎng)需要搶占交易市場(chǎng),則電網(wǎng)博弈目標(biāo)應(yīng)為交易率,可設(shè)置為用戶交易率或電量交易率,在此設(shè)置為電量交易率。在實(shí)際應(yīng)用中發(fā)電者購(gòu)電者可能同時(shí)考慮其他外部性因素,如電壓穩(wěn)定性等,本匹配算法暫不考慮。
發(fā)電利潤(rùn)為:
(2)
式中:pi為發(fā)電者報(bào)價(jià);ai、bi為系數(shù);tij為發(fā)電者i與購(gòu)電者j之間的交易量;ωij為交易tij需分擔(dān)的網(wǎng)損;λij為交易需支付的輸電費(fèi)用;vij為交易阻塞價(jià)格。
發(fā)電者售出價(jià)格調(diào)整方法為:
pj(k+1)=pj(k)+βj(Dj/Gj-1)
(3)
式中:βj為每個(gè)發(fā)電者的電價(jià)更新系數(shù);Dj為市場(chǎng)需求電量;Gj為實(shí)際發(fā)電量。
發(fā)電者實(shí)際發(fā)電量的調(diào)整方法為:
(4)
式中:cj為系數(shù);χi(k)為上周期單位電量增加所帶來的發(fā)電者的損耗,可理解為上一時(shí)刻發(fā)電者本身發(fā)電所耗單位電量成本。
購(gòu)電者的利潤(rùn)為:
(5)
式中:dj為購(gòu)電者收益相關(guān)系數(shù)。
電網(wǎng)所求交易率為:
(6)
式中:Gi是節(jié)點(diǎn)實(shí)際發(fā)電量;Dj是節(jié)點(diǎn)實(shí)際用電量。
計(jì)算任務(wù)即為在迭代求各方利潤(rùn)最大值交易矩陣收斂后,保證η>p,p為智能合約設(shè)置的交易率閾值,存儲(chǔ)在區(qū)塊頭字段target中,通過控制其大小改變產(chǎn)出塊的速度。該迭代算法運(yùn)行在各個(gè)從鏈節(jié)點(diǎn)中,將交易時(shí)間片τ設(shè)置為10 min,即每次匹配只考慮10 min以內(nèi)的所有交易信息,同時(shí)匹配結(jié)果將在真實(shí)交易發(fā)生前兩個(gè)時(shí)間片決定。其完整流程如圖4所示。
圖4 計(jì)算任務(wù)流程Fig.4 Flow chart of calculation task
該算法具有動(dòng)態(tài)更新任務(wù)復(fù)雜度以及最優(yōu)化交易匹配的特點(diǎn)。其優(yōu)點(diǎn)在于可以自適應(yīng)調(diào)整發(fā)電者的定價(jià)以及所發(fā)的電量使得利潤(rùn)最大化,同時(shí)對(duì)潮流越限問題使用阻塞價(jià)格來使得匹配算法智能調(diào)整交易矩陣,完成交易。同時(shí)在自定義匹配交易率等方面有所創(chuàng)新。
3.2.2 算例分析
5節(jié)點(diǎn)系統(tǒng)網(wǎng)絡(luò)連接如圖5所示。該算例包括3個(gè)發(fā)電機(jī)即生產(chǎn)者,兩個(gè)購(gòu)電者即消費(fèi)者,生產(chǎn)者節(jié)點(diǎn)為1、2、3,消費(fèi)者節(jié)點(diǎn)為4、5,將阻塞價(jià)格設(shè)為0,其與系數(shù)皆為默認(rèn)值,假設(shè)一個(gè)交易τ內(nèi)發(fā)電量頂格為40 kW·h。
圖5 5節(jié)點(diǎn)系統(tǒng)網(wǎng)絡(luò)連接圖Fig.5 Diagram of 5-node power system
運(yùn)行在聯(lián)盟鏈節(jié)點(diǎn)的智能合約收到分片交易信息之后,將交易信息發(fā)送至該片區(qū)每一個(gè)計(jì)算節(jié)點(diǎn),節(jié)點(diǎn)在收到交易信息后開始進(jìn)行交易任務(wù)的計(jì)算。
片區(qū)內(nèi)的計(jì)算節(jié)點(diǎn)按如上公式不斷迭代,最終達(dá)成如下交易量矩陣:
(7)
此時(shí)針對(duì)鏈路進(jìn)行安全性校驗(yàn),將計(jì)算結(jié)果發(fā)至主鏈節(jié)點(diǎn)。全局交易線路功率為表6所示。
表6 線路功率Table 6 Power of lines
經(jīng)過實(shí)際線路功率驗(yàn)證,發(fā)現(xiàn)不符合安全性校驗(yàn),根據(jù)阻塞價(jià)格公式,調(diào)整各線路阻塞價(jià)格,將新的阻塞價(jià)格分發(fā)至所有節(jié)點(diǎn),所有節(jié)點(diǎn)重新計(jì)算交易矩陣,最終生成交易矩陣為:
(8)
最先生成交易矩陣的節(jié)點(diǎn)獲得從鏈中本次交易的打包權(quán),交易計(jì)算結(jié)果矩陣由其發(fā)至主鏈節(jié)點(diǎn),主鏈節(jié)點(diǎn)中智能合約驗(yàn)證本次交易矩陣是否符合安全校驗(yàn),主鏈節(jié)點(diǎn)僅對(duì)交易矩陣安全校驗(yàn),不對(duì)交易率進(jìn)行任何計(jì)算。對(duì)不符合校驗(yàn)的結(jié)果矩陣有否決權(quán),在收到主鏈節(jié)點(diǎn)校驗(yàn)正確的信息之后,從鏈中獲得打包權(quán)的節(jié)點(diǎn)將會(huì)把主鏈的同意信息以及該區(qū)塊交易信息進(jìn)行廣播,其余從鏈中的節(jié)點(diǎn)驗(yàn)證交易率大于設(shè)置的交易率后一起將該交易在從鏈各個(gè)節(jié)點(diǎn)中達(dá)到共識(shí),則該交易達(dá)成,交易信息寫入各個(gè)從鏈節(jié)點(diǎn)區(qū)塊中,同時(shí)記錄交易信息塊的哈希寫入主鏈節(jié)點(diǎn)。從鏈記賬節(jié)點(diǎn)本質(zhì)上滿足了交易矩陣在主鏈上的安全性校驗(yàn)以及從鏈節(jié)點(diǎn)的交易率驗(yàn)證兩個(gè)約束。
同時(shí)主鏈節(jié)點(diǎn)將會(huì)采用DPoS機(jī)制選取出記賬節(jié)點(diǎn),即根據(jù)網(wǎng)絡(luò)規(guī)模從主鏈節(jié)點(diǎn)投票選取出10~100個(gè)記賬節(jié)點(diǎn),這些節(jié)點(diǎn)負(fù)責(zé)出塊來記錄各個(gè)從鏈的交易哈希,用作從鏈交易驗(yàn)證。記賬節(jié)點(diǎn)的電力交易則會(huì)獲取一定的過網(wǎng)費(fèi)減免,同時(shí)投記賬節(jié)點(diǎn)票的主鏈節(jié)點(diǎn)會(huì)獲取一定比例的過網(wǎng)費(fèi)減免。
如從鏈中有用戶指定跨鏈交易,在符合安全性校驗(yàn)后,由購(gòu)電者指定目的錢包地址,從鏈中購(gòu)電者用戶首先和主鏈進(jìn)行“交易”,之后主鏈再和目的錢包進(jìn)行”交易”,此時(shí)將一筆交易信息同時(shí)寫入主鏈和從鏈,即完成了一筆跨鏈交易。
部署一套同樣的節(jié)點(diǎn),記為分片2。實(shí)驗(yàn)一為兩個(gè)網(wǎng)絡(luò)分片1和分片2同時(shí)交易,實(shí)驗(yàn)二為分片1與分片2 合并成一個(gè)交易網(wǎng)絡(luò)進(jìn)行交易,結(jié)果明顯實(shí)驗(yàn)一的收斂時(shí)間小于實(shí)驗(yàn)二,最終交易率都滿足設(shè)定交易率。
可見分片交易可以提升交易速度,同時(shí)通過主鏈系統(tǒng)上運(yùn)行的智能合約調(diào)整阻塞價(jià)格,系統(tǒng)可動(dòng)態(tài)改變匹配關(guān)系,進(jìn)行自適應(yīng)調(diào)整交易線路。此時(shí)主鏈中并不掌握全局用戶交易實(shí)時(shí)信息,而是通過感知全局鏈路實(shí)際功率調(diào)整阻塞價(jià)格,更加地去中心化,可獲得用戶的信任。
在分布式能源交易需求不斷增加的大環(huán)境下,本文提出的基于主從分片區(qū)塊鏈的分布式能源交易系統(tǒng)和方法,交易系統(tǒng)采用去中心化結(jié)構(gòu),利用區(qū)塊鏈的不可篡改性以及智能合約技術(shù),融入智能電表進(jìn)行電量管理,實(shí)現(xiàn)了全網(wǎng)節(jié)點(diǎn)自動(dòng)對(duì)交易信息進(jìn)行維護(hù)以及資金的自動(dòng)轉(zhuǎn)移,在已有工作的基礎(chǔ)上實(shí)現(xiàn)了交易速度和去中心化的完美結(jié)合,同時(shí)考慮了激勵(lì)政策,充分調(diào)動(dòng)自由節(jié)點(diǎn)的積極性,在實(shí)際應(yīng)用中有更強(qiáng)的可行性。本文針對(duì)從鏈采用的有用工作量機(jī)制,同樣可以擴(kuò)展至物流以及其他需要計(jì)算力去規(guī)劃的行業(yè),同樣針對(duì)分布式能源交易地理位置臨近收益更高提出了劃片交易,提高了交易效率,契合了市場(chǎng)需要。
本文仍有后續(xù)問題需要探索,如針對(duì)交易的隱私問題處理[24],能源交易不同于比特幣交易,天然擁有很強(qiáng)的匿名性,能源交易計(jì)算匹配過程中須計(jì)算過網(wǎng)費(fèi)以及避免阻塞管理,節(jié)點(diǎn)中保存的交易信息為公開的易被泄露從而推算出用戶地理位置以及生活狀態(tài)。如何使用戶在分布式能源中的交易既透明、公平、可信,同時(shí)擁有很強(qiáng)的匿名性,在全面加強(qiáng)個(gè)人隱私保護(hù)的今天是非常值得探究的問題。