國網(wǎng)四川信通公司 趙波 馮菁 吳克
現(xiàn)代區(qū)塊鏈技術(shù)起源于密碼學(xué),輝煌于數(shù)字貨幣。區(qū)塊鏈技術(shù)核心在于去中心化、互聯(lián)網(wǎng)技術(shù)及哈希算法等加密算法,隨著互聯(lián)網(wǎng)技術(shù)的迅猛發(fā)展與分布式技術(shù)的成熟得到前所未有的發(fā)展。區(qū)塊鏈技術(shù)包含三個(gè)基本概念:交易、區(qū)塊、鏈。交易在區(qū)塊鏈中代表一次性對賬本的操作,也就是單點(diǎn)數(shù)據(jù)發(fā)生狀態(tài)變化;區(qū)塊在區(qū)塊鏈中代表一個(gè)時(shí)間段內(nèi)網(wǎng)絡(luò)所有交易的狀態(tài)和結(jié)果,對當(dāng)前所有數(shù)據(jù)狀態(tài)的一次共識;鏈在區(qū)塊鏈中代表按照時(shí)間順序?qū)顟B(tài)變化量的一次串聯(lián),相當(dāng)于數(shù)據(jù)變化記錄日志。整個(gè)區(qū)塊鏈?zhǔn)怯煞植际降墓?jié)點(diǎn)構(gòu)成形成分布式數(shù)據(jù),數(shù)據(jù)在存儲、刪除、更改的過程就是區(qū)塊形成的過程,按照一致性規(guī)則在分布式各點(diǎn)位通過計(jì)算達(dá)成共識,并依照時(shí)間順序形成鏈狀數(shù)據(jù)結(jié)構(gòu)。一旦新的區(qū)塊加入鏈狀數(shù)據(jù)串,各節(jié)點(diǎn)達(dá)成共識后無法被篡改。本文主要闡述了利用區(qū)塊鏈技術(shù)電力通信網(wǎng)中對網(wǎng)元網(wǎng)管控制數(shù)據(jù)也存在類似交易、區(qū)塊、鏈操作,實(shí)現(xiàn)了提升數(shù)據(jù)的一致性、不可篡改性、可追溯性等方面的性能,為支撐智能電網(wǎng)建設(shè)做出前沿性的試探和嘗試。
電力通信網(wǎng)網(wǎng)管區(qū)塊鏈技術(shù)的應(yīng)用主要在于利用區(qū)塊鏈技術(shù)中的數(shù)據(jù)一致性和數(shù)據(jù)不可篡改性,在電力通信網(wǎng)絡(luò)控制數(shù)據(jù)的安全性對于電網(wǎng)業(yè)務(wù)通信通道安全運(yùn)行尤為重要,而保證數(shù)據(jù)安全可靠性可以通過建立區(qū)數(shù)據(jù)分布式存儲數(shù)據(jù)結(jié)構(gòu)得以實(shí)現(xiàn)。利用區(qū)塊鏈技術(shù)將網(wǎng)絡(luò)控制數(shù)據(jù)從三個(gè)方面進(jìn)行建立,分別為:“區(qū)塊+鏈”“區(qū)塊+交易”“交易+鏈”。區(qū)塊鏈?zhǔn)且粋€(gè)基于多節(jié)點(diǎn)全分布式數(shù)據(jù)結(jié)構(gòu)的存儲結(jié)構(gòu),在一段時(shí)間內(nèi)形成數(shù)據(jù)共識與一致性計(jì)算,利用哈希算子等密碼學(xué)手段保證Merkle Tree組成的數(shù)據(jù)不可逆和不可偽造的特性。
區(qū)塊相當(dāng)于一個(gè)分布式的數(shù)據(jù)記錄賬本,對于電力通信網(wǎng)每個(gè)網(wǎng)元可以看作一個(gè)區(qū)塊節(jié)點(diǎn),區(qū)塊數(shù)據(jù)包含原數(shù)據(jù)的數(shù)據(jù)頭以及數(shù)據(jù)增量變化的數(shù)據(jù)構(gòu)成區(qū)塊體組成。后繼區(qū)數(shù)據(jù)頭由前置區(qū)塊的哈希值、隨機(jī)數(shù)、時(shí)間戳、難度目標(biāo)及Merkle Tree等關(guān)鍵字組成。后繼區(qū)的數(shù)據(jù)頭都指向前一個(gè)區(qū)塊的鏈接,從時(shí)間區(qū)段開始到時(shí)間區(qū)段結(jié)束,每一個(gè)區(qū)塊代表著一次數(shù)據(jù)增量變化(交易),都會永久的保存在區(qū)塊之中。
在電力通信網(wǎng)中區(qū)塊鏈工作的過程,客戶端發(fā)起一項(xiàng)業(yè)務(wù)指令,廣播到通信網(wǎng)控制網(wǎng)絡(luò)等待節(jié)點(diǎn)確認(rèn)。各網(wǎng)元節(jié)點(diǎn)收到等待確認(rèn)的增量變更數(shù)據(jù)記錄打包在一起組成一個(gè)候選區(qū)塊。每個(gè)區(qū)塊的“前區(qū)哈希值”字段對應(yīng)其一區(qū)塊頭的所有數(shù)據(jù)進(jìn)行SHA256運(yùn)算得到的結(jié)果,該字段使得各網(wǎng)元節(jié)點(diǎn)形成的區(qū)塊鏈接站起來,保證前后區(qū)塊鏈的關(guān)鍵字段。各網(wǎng)元區(qū)塊由前一塊區(qū)塊的隨機(jī)數(shù)、時(shí)間戳、難度目標(biāo)字段與新區(qū)塊形成新區(qū)塊數(shù)據(jù),區(qū)塊數(shù)據(jù)的形成是通過哈希等密碼學(xué)算子由各網(wǎng)元節(jié)點(diǎn)貢獻(xiàn)大量的算力資源計(jì)算而成。電力通信網(wǎng)管區(qū)塊數(shù)據(jù)通過區(qū)塊鏈技術(shù),將所有增量數(shù)據(jù)變化的信息不僅完整記錄于各個(gè)網(wǎng)元節(jié)點(diǎn),還保證了不會因單節(jié)點(diǎn)數(shù)據(jù)丟失而造成的數(shù)據(jù)丟失,還保證了數(shù)據(jù)不可篡改性。
電力通信網(wǎng)管數(shù)據(jù)區(qū)塊鏈技術(shù)應(yīng)用的關(guān)鍵是建立于分布式存儲中保持全局一致性的基礎(chǔ)上的,增量數(shù)據(jù)變化的記錄、域名的管理、數(shù)據(jù)的上載與更改,這些狀態(tài)的改變對全局而言都需要保持一致性,而拜占庭一致性問題解決了在非安全的分布式環(huán)境下的數(shù)據(jù)一致性問題。拜占庭算法最初是由一些指數(shù)級的算法才能解決,接著在這類算法的基礎(chǔ)上演繹簡化成多項(xiàng)式級別的協(xié)議算法,極大降低了一致性比對的消耗的算力資源,利用多項(xiàng)式算法使實(shí)現(xiàn)分布式算法成為可能。
電力通信網(wǎng)管區(qū)塊數(shù)據(jù)一致性比對通過兩種方法實(shí)現(xiàn),分別是單節(jié)點(diǎn)一致性驗(yàn)證和混合節(jié)點(diǎn)一致性驗(yàn)證。單節(jié)點(diǎn)一致性驗(yàn)證算法是通過通信網(wǎng)管網(wǎng)絡(luò)數(shù)據(jù)通過兩階段提交協(xié)議保持區(qū)塊數(shù)據(jù)一致性而設(shè)計(jì)的一種算法。兩個(gè)階段在電力通新網(wǎng)管數(shù)據(jù)一致性比對中分別是將一個(gè)數(shù)據(jù)增量變化的分發(fā)過程分為審核和下發(fā)2個(gè)階段,區(qū)塊鏈服務(wù)器向所有網(wǎng)元節(jié)點(diǎn)廣播審核請求,當(dāng)區(qū)塊鏈服務(wù)器收到了所有參與區(qū)塊變化的網(wǎng)元節(jié)點(diǎn)同意消息;服務(wù)器廣播提交請求,當(dāng)服務(wù)器收到所有網(wǎng)元節(jié)點(diǎn)反饋完成區(qū)塊變化同意消息后,一致性驗(yàn)證結(jié)束?;旌瞎?jié)點(diǎn)一致性驗(yàn)證是通過改進(jìn)版拜占庭容錯(cuò)協(xié)議(Practical Byzantium Fault Tolerance,PBFT),規(guī)定主從模式和參與網(wǎng)元數(shù),規(guī)定人數(shù)為2m+1,其中m為出錯(cuò)網(wǎng)元的數(shù)量,總網(wǎng)元個(gè)數(shù)為3m+1。當(dāng)網(wǎng)關(guān)網(wǎng)元收到網(wǎng)元控制的請求后,向所在區(qū)域受控網(wǎng)元節(jié)點(diǎn)發(fā)送預(yù)準(zhǔn)備信號,并收集區(qū)域內(nèi)其他網(wǎng)元節(jié)點(diǎn)的信號,當(dāng)區(qū)域內(nèi)網(wǎng)元節(jié)點(diǎn)收到預(yù)準(zhǔn)備信號后,如果達(dá)成共識,那么向網(wǎng)絡(luò)中其他網(wǎng)元節(jié)點(diǎn)發(fā)送預(yù)準(zhǔn)備信號,剩余節(jié)點(diǎn)向服務(wù)器反饋同意信號,如果服務(wù)器收到超過2m個(gè)網(wǎng)元節(jié)點(diǎn)發(fā)送的同意信號,則向全網(wǎng)下發(fā)執(zhí)行信息。同樣如果服務(wù)器收到超過2m個(gè)網(wǎng)元節(jié)點(diǎn)發(fā)送的執(zhí)行信號,那么這個(gè)網(wǎng)元開始執(zhí)行數(shù)據(jù)變更。綜上所述,PBFT協(xié)議對于容錯(cuò)網(wǎng)元節(jié)點(diǎn)為1/3的錯(cuò)誤網(wǎng)元,且對于數(shù)據(jù)一致性確認(rèn)需要兩輪的交互。
電力通信網(wǎng)區(qū)塊鏈技術(shù)的實(shí)現(xiàn)是建立于網(wǎng)元分布式存儲、共識機(jī)制、哈希加密算法及點(diǎn)對點(diǎn)傳輸?shù)哪J交A(chǔ)上的,核心在于網(wǎng)元的分布式存儲、傳輸與加密及一致性計(jì)算。在整個(gè)網(wǎng)絡(luò)中對于每個(gè)網(wǎng)元相當(dāng)于彼此對等的計(jì)算機(jī),采用點(diǎn)對點(diǎn)的傳輸網(wǎng)絡(luò)結(jié)構(gòu)具有極高的隱秘性及去中心化程度。對于每個(gè)網(wǎng)元具備傳播、路由、驗(yàn)證、新建節(jié)點(diǎn)信息變更等功能,用以保障區(qū)塊變化后,由網(wǎng)元節(jié)點(diǎn)傳播至整個(gè)網(wǎng)絡(luò)的功能。電力通信網(wǎng)管區(qū)塊鏈系統(tǒng)對于網(wǎng)元信息數(shù)據(jù)傳播協(xié)議結(jié)構(gòu),如圖所示。
電力通信網(wǎng)管區(qū)塊鏈系統(tǒng)的網(wǎng)元數(shù)據(jù)傳播協(xié)議包括以下步驟:
1.網(wǎng)元數(shù)據(jù)變更利用電力通信網(wǎng)絡(luò)以點(diǎn)對點(diǎn)的形式廣播至每個(gè)網(wǎng)元節(jié)點(diǎn)。
2.每個(gè)網(wǎng)元收到廣播數(shù)據(jù)首先進(jìn)行合法性驗(yàn)證,對發(fā)出數(shù)據(jù)的非對稱加密機(jī)制下的網(wǎng)元數(shù)據(jù)變更信息的簽名與數(shù)據(jù)本身進(jìn)行驗(yàn)證。如果合法則保存該數(shù)據(jù)并以Merkle Tree的形式加入?yún)^(qū)塊,同時(shí)將時(shí)間戳與通過哈希加密算法計(jì)算過后的區(qū)塊頭寫入?yún)^(qū)塊并進(jìn)行封裝,若該數(shù)據(jù)不合法則驗(yàn)證無效直接丟棄。
3.每個(gè)網(wǎng)元節(jié)點(diǎn)進(jìn)行哈希計(jì)算后,提供自身為解決本次區(qū)塊哈希算子而使用的計(jì)算資源的工作量證明。
區(qū)塊鏈網(wǎng)元數(shù)據(jù)傳播協(xié)議結(jié)構(gòu)圖
4.在規(guī)定時(shí)間內(nèi)每個(gè)網(wǎng)元節(jié)點(diǎn)完成區(qū)塊計(jì)算,將區(qū)塊數(shù)據(jù)重新封裝打包,通過下一個(gè)網(wǎng)元節(jié)點(diǎn)廣播至整個(gè)網(wǎng)絡(luò)。同樣其他網(wǎng)元節(jié)點(diǎn)進(jìn)行相應(yīng)的合法性驗(yàn)證及工作量證明驗(yàn)證,并計(jì)算每個(gè)區(qū)塊頭的哈希值。
5.整個(gè)網(wǎng)絡(luò)的所有網(wǎng)元在完成區(qū)塊鏈數(shù)據(jù)驗(yàn)證后,利用Merkle Tree進(jìn)行數(shù)據(jù)一致性比對驗(yàn)證數(shù)據(jù)的正確性。對于電力通信網(wǎng)管區(qū)塊鏈數(shù)據(jù)變更,通常利用區(qū)域內(nèi)8個(gè)節(jié)點(diǎn)進(jìn)行區(qū)塊確認(rèn),并能保證50%網(wǎng)元收到攻擊后仍能進(jìn)行區(qū)塊數(shù)據(jù)恢復(fù),同時(shí)增加節(jié)點(diǎn)確認(rèn)數(shù)目,能增加網(wǎng)絡(luò)抵抗力,但是同時(shí)計(jì)算資源的耗費(fèi)也會增加。
6.按照時(shí)間戳先后順序,網(wǎng)元在下一次區(qū)塊計(jì)算時(shí)是以上一次的哈希值為父節(jié)點(diǎn),而下一次區(qū)塊計(jì)算與上一次計(jì)算緊密相關(guān)。
電力通信網(wǎng)管區(qū)塊鏈技術(shù)是基于電力通信網(wǎng)絡(luò)去中心化結(jié)構(gòu),每個(gè)網(wǎng)元數(shù)據(jù)均存在獨(dú)立且對等的存儲結(jié)構(gòu),且網(wǎng)絡(luò)均可實(shí)現(xiàn)點(diǎn)對點(diǎn)的傳輸功能這三點(diǎn)之上,具備實(shí)現(xiàn)區(qū)塊鏈技術(shù)的基本條件。對電力通信網(wǎng)管數(shù)據(jù)管理需要一種更為安全可信且不可篡改的管理技術(shù)對未來智能電網(wǎng)的安全運(yùn)行起到更為有力的支撐。本文基于以上考慮,對區(qū)塊鏈技術(shù)在電力通信網(wǎng)管數(shù)據(jù)方面的數(shù)據(jù)一致性、加密算法做了初步的探索,下一步打算進(jìn)對電力通信網(wǎng)管數(shù)據(jù)去中心化管理作更為深入的研究,進(jìn)一步開拓區(qū)塊鏈技術(shù)在電力通信網(wǎng)管數(shù)據(jù)管理方面的應(yīng)用。