李大偉,宋春曉,李斌,顧智敏,王梓瑩
(1.南京工程學(xué)院計(jì)算機(jī)工程學(xué)院,江蘇 南京 211167;2.南京工程學(xué)院能源研究院,江蘇 南京 211167;3.江蘇省電力試驗(yàn)研究院有限公司,江蘇 南京 211103)
2020年3月,國家電網(wǎng)公司提出了建設(shè)“具有中國特色國際領(lǐng)先的能源互聯(lián)網(wǎng)企業(yè)”的最新戰(zhàn)略目標(biāo)。能源是主體,互聯(lián)網(wǎng)是手段,建設(shè)能源互聯(lián)網(wǎng)需要充分借鑒互聯(lián)網(wǎng)在數(shù)據(jù)共享和業(yè)務(wù)互聯(lián)互通中的成功經(jīng)驗(yàn),實(shí)現(xiàn)傳統(tǒng)電網(wǎng)業(yè)務(wù)的數(shù)字化轉(zhuǎn)型。2020年4月20日,國家發(fā)改委首次明確新型基礎(chǔ)設(shè)施的3個(gè)方面,其中信息基礎(chǔ)設(shè)施包括以人工智能、云計(jì)算、區(qū)塊鏈等為代表的新技術(shù)基礎(chǔ)設(shè)施。區(qū)塊鏈技術(shù)契合了能源互聯(lián)網(wǎng)的發(fā)展需要,區(qū)塊鏈與電網(wǎng)業(yè)務(wù)結(jié)合,有利于促進(jìn)電網(wǎng)生產(chǎn)管理和運(yùn)營方式向智能化、網(wǎng)絡(luò)化方向轉(zhuǎn)型,對于電網(wǎng)產(chǎn)業(yè)結(jié)構(gòu)調(diào)整具有積極的作用[1—3]。
互聯(lián)網(wǎng)飛速發(fā)展的推動力之一就是以云計(jì)算、大數(shù)據(jù)中心為代表的互聯(lián)網(wǎng)基礎(chǔ)設(shè)施的演進(jìn)和發(fā)展。2020年6月,國家電網(wǎng)公司發(fā)布“數(shù)字新基建”十大重點(diǎn)建設(shè)任務(wù),聚焦大數(shù)據(jù)中心、工業(yè)互聯(lián)網(wǎng)、5G、人工智能等領(lǐng)域,總體投資約247億元,預(yù)計(jì)可拉動社會投資約1 000億元,內(nèi)容包括以能源區(qū)塊鏈應(yīng)用為代表的10種應(yīng)用。
區(qū)塊鏈?zhǔn)且环N按照時(shí)間順序?qū)?shù)據(jù)區(qū)塊以鏈表的方式組織的分布式總賬,是集成了對等網(wǎng)絡(luò)(peer-to-peer,P2P)技術(shù)、密碼學(xué)、共識機(jī)制以及分布式存儲技術(shù)的可信分布式系統(tǒng)[4],具有去中心化、不可篡改和可審計(jì)等特點(diǎn),目前已經(jīng)在各領(lǐng)域廣泛應(yīng)用[5]。能源互聯(lián)網(wǎng)是連接能源生產(chǎn)和能源消費(fèi)的基礎(chǔ)平臺,基于區(qū)塊鏈的能源互聯(lián)網(wǎng)能夠?qū)崿F(xiàn)各方的身份認(rèn)證和互信,優(yōu)化能源流程[6]。區(qū)塊鏈技術(shù)可支撐能源互聯(lián)網(wǎng)中源、網(wǎng)、荷、儲、人等不同主體在計(jì)量認(rèn)證、市場交易、協(xié)同組織、能源金融等不同環(huán)節(jié)中協(xié)調(diào)互動,實(shí)現(xiàn)互聯(lián)網(wǎng)式的雙向交互、平等共享及服務(wù)增值,目前電力領(lǐng)域已有越來越多的落地項(xiàng)目。
但區(qū)塊鏈技術(shù)具有復(fù)雜性且發(fā)展迅速[7],既包括公有鏈、聯(lián)盟鏈、許可鏈等不同形態(tài)[8],又有以太坊、超級賬本、商用區(qū)塊鏈操作系統(tǒng)(enterprise operation system,EOS)等多種實(shí)現(xiàn)平臺。已有的項(xiàng)目多按照自身需求進(jìn)行定制化開發(fā),自成體系,缺少統(tǒng)一的建設(shè)標(biāo)準(zhǔn)和基礎(chǔ)設(shè)施支持[9],難以支撐能源互聯(lián)網(wǎng)背景下多主體多環(huán)節(jié)數(shù)據(jù)有效協(xié)同共享的需求[10—11]。
文中首先介紹了區(qū)塊鏈技術(shù)的原理及特點(diǎn),分析區(qū)塊鏈如何體現(xiàn)能源互聯(lián)網(wǎng)理念。在此基礎(chǔ)上從建設(shè)需求、高可用計(jì)算資源、分布式存儲、多平面網(wǎng)絡(luò)、數(shù)字資產(chǎn)和業(yè)務(wù)中臺等方面探討了區(qū)塊鏈技術(shù)設(shè)施的建設(shè)原則和規(guī)范。
相較于其他行業(yè),電網(wǎng)覆蓋面廣、終端設(shè)備種類多、數(shù)量大、業(yè)務(wù)場景豐富、實(shí)時(shí)性和安全性要求高[12]。電力區(qū)塊鏈基礎(chǔ)設(shè)施建設(shè)需要結(jié)合電網(wǎng)需求,支撐數(shù)據(jù)安全、智能合約、跨鏈交互等關(guān)鍵技術(shù),快速構(gòu)建能源互聯(lián)網(wǎng)應(yīng)用[13—14]。
區(qū)塊鏈系統(tǒng)架構(gòu)可以分為6層,從底層往上依次是數(shù)據(jù)層、網(wǎng)絡(luò)層、共識層、激勵(lì)層、合約層和應(yīng)用層,每層基礎(chǔ)設(shè)施能力需求和功能如圖1所示。
圖1 區(qū)塊鏈系統(tǒng)技術(shù)架構(gòu)Fig.1 Architecture of blockchain system
其中,數(shù)據(jù)層的功能由底層計(jì)算和存儲基礎(chǔ)設(shè)施支撐,其特征是高速讀寫訪問以及安全性;網(wǎng)絡(luò)層主要實(shí)現(xiàn)P2P網(wǎng)絡(luò)基礎(chǔ)設(shè)施,確保去中心化互聯(lián)互通;共識層封裝各類共識算法,為區(qū)塊鏈應(yīng)用提供基座;激勵(lì)層和合約層為上層業(yè)務(wù)邏輯提供中臺,通過腳本、算法和智能合約為區(qū)塊鏈系統(tǒng)提供可編程特性和自動化智能化支持;應(yīng)用層通過各種接口和軟件開發(fā)套件(software development kit,SDK)為快速構(gòu)建電力業(yè)務(wù)應(yīng)用提供支撐。
電力業(yè)務(wù)可靠性[15]和實(shí)時(shí)性要求電力區(qū)塊鏈基礎(chǔ)設(shè)施應(yīng)具有多中心高速互聯(lián)、高可用并發(fā)處理和高性能分布式存儲,以實(shí)現(xiàn)對上層應(yīng)用場景的支撐[16]。電力區(qū)塊鏈基礎(chǔ)設(shè)施架構(gòu)如圖2所示。
圖2 電力區(qū)塊鏈基礎(chǔ)設(shè)施架構(gòu)Fig.2 Power blockchain infrastructure
硬件基礎(chǔ)設(shè)施層包含分布式存儲資源、高可用計(jì)算資源、多平面組網(wǎng)設(shè)備及配套的安全防護(hù)平臺等系統(tǒng)運(yùn)行必需的基礎(chǔ)設(shè)施。通過可配置的接口和數(shù)據(jù)安全交換中間件實(shí)現(xiàn)區(qū)塊鏈系統(tǒng)和已有業(yè)務(wù)系統(tǒng)的無縫對接和鏈上鏈下互動協(xié)同[17—18]。
平臺層是實(shí)現(xiàn)區(qū)塊鏈功能的核心組成部分。包含服務(wù)化區(qū)塊鏈中臺(blockchain as a service,BaaS)平臺、管控平臺和綜合管理系統(tǒng)。利用區(qū)塊鏈基礎(chǔ)設(shè)施把能源互聯(lián)網(wǎng)業(yè)務(wù)中的各類數(shù)據(jù)進(jìn)行hash索引上鏈,實(shí)現(xiàn)數(shù)據(jù)融合,并保證數(shù)據(jù)、算法、結(jié)果三者的安全性,相比傳統(tǒng)的數(shù)據(jù)匯聚方式,可信區(qū)塊鏈實(shí)現(xiàn)了完全的分布式方式的數(shù)據(jù)生態(tài)。數(shù)據(jù)源不需要把數(shù)據(jù)上鏈或者上云,可以放在自己的機(jī)房,在需求方、算法方、投放方、監(jiān)管方等整個(gè)生態(tài)打通的條件下,能通過安全多方計(jì)算實(shí)現(xiàn)對數(shù)據(jù)源、算法和結(jié)果的有效安全控制。
業(yè)務(wù)支撐層根據(jù)不同的電力業(yè)務(wù)應(yīng)用場景數(shù)據(jù)融合需求,基于平臺層提供的定制化服務(wù),通過區(qū)塊鏈應(yīng)用研發(fā)平臺的軟件可定義能力,迅速實(shí)現(xiàn)能源互聯(lián)網(wǎng)業(yè)務(wù)與區(qū)塊鏈平臺的生成和對接。
電力區(qū)塊鏈系統(tǒng)對于事務(wù)處理和響應(yīng)能力有更高的要求,須采用高可用服務(wù)器集群,通過高并發(fā)處理能力和內(nèi)存計(jì)算,實(shí)現(xiàn)系統(tǒng)資源的共享和彈性調(diào)配。
在具體設(shè)計(jì)時(shí),應(yīng)用輕量級虛擬化和微服務(wù)架構(gòu),獲得系統(tǒng)級容錯(cuò)、應(yīng)用級高可用、虛擬機(jī)在線遷移、資源動態(tài)負(fù)載均衡等能力。將這些功能集成到一個(gè)計(jì)算單元中,形成區(qū)塊鏈一體機(jī)。區(qū)塊鏈一體機(jī)設(shè)計(jì)及其部署如圖3所示。
圖3 區(qū)塊鏈一體機(jī)設(shè)計(jì)與部署Fig.3 Design and deployment of blockchain all in one machine
每個(gè)一體機(jī)由基本系統(tǒng)資源和定制化區(qū)塊鏈操作系統(tǒng)組成,通過配置模塊,區(qū)塊鏈一體機(jī)可配置成為排序節(jié)點(diǎn)、記賬節(jié)點(diǎn)、備份節(jié)點(diǎn)等不同角色,共同完成區(qū)塊鏈應(yīng)用。每個(gè)區(qū)塊鏈一體機(jī)還包括系統(tǒng)管理、配置模塊、區(qū)塊鏈模塊、接口模塊、組網(wǎng)模塊等功能模塊,實(shí)現(xiàn)鄰居發(fā)現(xiàn)、節(jié)點(diǎn)配置、接口管理、安全策略、以及數(shù)據(jù)管理等功能。區(qū)塊鏈一體機(jī)通過感知算法實(shí)現(xiàn)鄰居的動態(tài)發(fā)現(xiàn)、互聯(lián)和賬本同步,可根據(jù)業(yè)務(wù)狀態(tài)進(jìn)行彈性擴(kuò)展。
區(qū)塊鏈一體機(jī)集群形成“松耦合”的電力區(qū)塊鏈應(yīng)用的計(jì)算資源池,為各類上層服務(wù)提供靈活的基礎(chǔ)架構(gòu),通過智能合約滿足電力業(yè)務(wù)場景的定制化需求。計(jì)算資源池通過調(diào)度系統(tǒng)實(shí)現(xiàn)對資源的調(diào)度分配。同時(shí),根據(jù)上層區(qū)塊鏈應(yīng)用系統(tǒng)的并發(fā)需求實(shí)現(xiàn)負(fù)載自動感知均衡和資源按需協(xié)同。在組網(wǎng)方面,對新加入和退出的節(jié)點(diǎn)進(jìn)行鄰居發(fā)現(xiàn),對不同用戶進(jìn)行隔離。運(yùn)維保障方面,通過自動檢測故障和系統(tǒng)熱點(diǎn),保證業(yè)務(wù)穩(wěn)定可靠運(yùn)行。在系統(tǒng)架構(gòu)中設(shè)計(jì)賬本冷備份機(jī)制,通過服務(wù)鏡像創(chuàng)建,故障切換、自動重保護(hù)和計(jì)劃內(nèi)遷移,減少系統(tǒng)不能提供服務(wù)的時(shí)間。
區(qū)塊鏈的計(jì)算性能主要體現(xiàn)在區(qū)塊鏈網(wǎng)絡(luò)的交易吞吐量,一般以每秒并發(fā)事務(wù)數(shù)量(transaction per second,TPS)描述。假設(shè)N(t)為單位時(shí)間t內(nèi)電力業(yè)務(wù)請求的數(shù)量,B(t)為單位時(shí)間t內(nèi)區(qū)塊鏈上記錄的業(yè)務(wù)數(shù)量,隨著電力業(yè)務(wù)的增加,N(t)>B(t)的臨界點(diǎn)記錄的交易數(shù)量代表區(qū)塊鏈系統(tǒng)單位時(shí)間能夠完成交易的最高個(gè)數(shù)。提高系統(tǒng)性能的方法除了提高單節(jié)點(diǎn)運(yùn)算速度外,還可以通過分層網(wǎng)絡(luò)架構(gòu)和區(qū)塊分片發(fā)送的原則降低廣播和處理的數(shù)據(jù)量。
區(qū)塊鏈系統(tǒng)運(yùn)行需要高性能的P2P網(wǎng)絡(luò)支持,多個(gè)節(jié)點(diǎn)之間通過高速冗余的網(wǎng)絡(luò)進(jìn)行互聯(lián)互通。電力區(qū)塊鏈系統(tǒng)搭建一般采用主中心和從節(jié)點(diǎn)的方式部署,即將系統(tǒng)平臺、海量存儲、管控系統(tǒng)、安全監(jiān)控等集中部署[19],成為電力區(qū)塊鏈數(shù)據(jù)中心,從節(jié)點(diǎn)部署于各地的業(yè)務(wù)現(xiàn)場,主中心和從節(jié)點(diǎn)之間采用電力專網(wǎng)互聯(lián)。
區(qū)塊鏈數(shù)據(jù)中心網(wǎng)絡(luò)部署為具有軟件定義網(wǎng)絡(luò)(software defined network,SDN)能力的多平面架構(gòu),實(shí)現(xiàn)專網(wǎng)專用,相互隔離,容災(zāi)備份,分段維護(hù)的目的。具體分為:業(yè)務(wù)平面、存儲平面和管理平面,其架構(gòu)如圖4所示。
圖4 網(wǎng)絡(luò)架構(gòu)Fig.4 Network architecture
區(qū)塊鏈節(jié)點(diǎn)的網(wǎng)絡(luò)為對等網(wǎng)絡(luò),系統(tǒng)運(yùn)行時(shí),每個(gè)節(jié)點(diǎn)都對外提供服務(wù),因此區(qū)塊鏈數(shù)據(jù)中心的網(wǎng)絡(luò)采取高性能、扁平化、多平面、冗余備份、安全隔離的設(shè)計(jì)方法?;诟咝阅芙M網(wǎng)設(shè)備和智能化網(wǎng)絡(luò)運(yùn)維系統(tǒng)的下一代軟件可定義組網(wǎng)架構(gòu),實(shí)現(xiàn)區(qū)塊鏈應(yīng)用場景中數(shù)據(jù)的安全快速交換。其中,業(yè)務(wù)平面是P2P網(wǎng)絡(luò)的核心,連接所有區(qū)塊鏈節(jié)點(diǎn),支撐區(qū)塊鏈系統(tǒng)運(yùn)行。存儲平面連接分布式存儲設(shè)備,實(shí)現(xiàn)區(qū)塊和賬本數(shù)據(jù)的快速存儲和交換,特別是新節(jié)點(diǎn)加入時(shí)的賬本更新,需要通過數(shù)據(jù)平面進(jìn)行底層復(fù)制,以縮短同步時(shí)間??刂破矫婊赟DN技術(shù),實(shí)現(xiàn)對網(wǎng)絡(luò)系統(tǒng)的管理、監(jiān)控、負(fù)載均衡和安全功能。
BaaS是區(qū)塊鏈軟件基礎(chǔ)設(shè)施,作為區(qū)塊鏈系統(tǒng)運(yùn)行的中樞,BaaS系統(tǒng)賦予用戶區(qū)塊鏈管理和平臺管理的功能。其中,區(qū)塊鏈管理功能偏向于研發(fā)相關(guān)的區(qū)塊鏈的搭建和配置,而平臺管理功能則偏向于運(yùn)維相關(guān)的區(qū)塊鏈運(yùn)行狀態(tài)監(jiān)控。根據(jù)區(qū)塊鏈云服務(wù)管理平臺常見模塊的功能,可以將模塊分為3個(gè)層次:資源管理層、區(qū)塊鏈管理層和平臺管理層。如圖5所示。
圖5 BaaS中臺架構(gòu)Fig.5 Baas middle platform architecture
資源管理層中的模塊負(fù)責(zé)和基礎(chǔ)設(shè)施服務(wù)(infrastructure as a service,IaaS)層的云平臺交互,管理虛擬機(jī)和網(wǎng)絡(luò)等相關(guān)資源。區(qū)塊鏈管理層負(fù)責(zé)區(qū)塊鏈的創(chuàng)建、管理和運(yùn)維監(jiān)控,提供聯(lián)盟內(nèi)各成員組織組建區(qū)塊鏈功能,包含節(jié)點(diǎn)管理、合約管理和賬本管理等。
中臺管理層的模塊負(fù)責(zé)區(qū)塊鏈服務(wù)平臺自身的賬戶、計(jì)費(fèi)、日志和統(tǒng)計(jì)報(bào)表等管理功能,面向的是平臺管理員和用戶。平臺管理層提供的相關(guān)功能包括聯(lián)盟管理、成員管理、監(jiān)控管理等。
BaaS中臺可實(shí)現(xiàn)區(qū)塊鏈系統(tǒng)的快速安裝、配置、以及初始化等操作,以便在部署大規(guī)模區(qū)塊鏈網(wǎng)絡(luò)時(shí),可以有效縮短安裝部署時(shí)間。區(qū)塊鏈服務(wù)平臺需要支持用戶可以定制符合業(yè)務(wù)場景的區(qū)塊鏈和計(jì)算資源。例如,配置適當(dāng)?shù)膮^(qū)塊鏈運(yùn)行參數(shù)(出塊時(shí)間,區(qū)塊大小,交易數(shù)量等),選擇適當(dāng)?shù)墓沧R算法,設(shè)置各類節(jié)點(diǎn)的數(shù)量以及各個(gè)節(jié)點(diǎn)的CPU、內(nèi)存、存儲、網(wǎng)絡(luò)帶寬等計(jì)算資源。
分布式記賬是區(qū)塊鏈的重要特征之一,該方式通過數(shù)據(jù)冗余實(shí)現(xiàn)了不同節(jié)點(diǎn)對記賬數(shù)據(jù)一致性的驗(yàn)證。運(yùn)行過程中,區(qū)塊鏈上每個(gè)節(jié)點(diǎn)都實(shí)時(shí)同步完整的賬本數(shù)據(jù),該方式的弊端一是單節(jié)點(diǎn)存儲數(shù)據(jù)量大,存儲開銷大,檢索和同步困難,二是單節(jié)點(diǎn)存儲容量會成為系統(tǒng)存儲的短板。
動態(tài)賬本存儲優(yōu)化機(jī)制結(jié)合賬本分片和鏈下擴(kuò)容技術(shù)。其中,賬本分片的基本思想是:根據(jù)電網(wǎng)業(yè)務(wù),將賬本分為多個(gè)分片進(jìn)行存儲,每個(gè)節(jié)點(diǎn)僅存儲邊緣計(jì)算所屬區(qū)域的賬本數(shù)據(jù),如果需要跨域數(shù)據(jù),須通過區(qū)塊鏈網(wǎng)關(guān)節(jié)點(diǎn)進(jìn)行路由實(shí)現(xiàn)。鏈下擴(kuò)容則依據(jù)電力業(yè)務(wù)對上鏈數(shù)據(jù)進(jìn)行封裝和優(yōu)化,將鏈上交易遷移到鏈下系統(tǒng)和數(shù)據(jù)庫中進(jìn)行存儲,僅把交易狀態(tài)、計(jì)算結(jié)果等關(guān)鍵數(shù)據(jù)上傳到目標(biāo)區(qū)塊鏈,以解決目標(biāo)區(qū)塊鏈存儲、計(jì)算等資源受限的問題。
假設(shè)電力區(qū)塊鏈節(jié)點(diǎn)數(shù)為N,分為節(jié)點(diǎn)數(shù)量相同的m個(gè)分片,則每個(gè)分片的節(jié)點(diǎn)數(shù)C=N/m。若某電力區(qū)塊鏈分片的唯一標(biāo)識分為d,賬本分布式存儲優(yōu)化方法如下:
選取一組hash函數(shù):Hi(x)(i=1,…,n)。設(shè)賬本片段為t,計(jì)算哈希值Hi(d)和Hi(t)。
對于任意i,如果判別因子δ=mind{|Hi(t)-Hi(d)|},則將賬本片段t存儲到分片d中。
電力業(yè)務(wù)數(shù)據(jù)上鏈存儲需要運(yùn)行共識算法,為提系統(tǒng)存儲效率和處理速度,需根據(jù)業(yè)務(wù)需求進(jìn)行數(shù)據(jù)封裝,將原本置于鏈上處理的各類計(jì)算、事務(wù),放到鏈下處理,而鏈上僅作數(shù)據(jù)驗(yàn)證,以此間接提升區(qū)塊鏈處理數(shù)據(jù)的速度。具體算法如圖6所示。
圖6 鏈下擴(kuò)容流程Fig.6 Offline expansion process
電力區(qū)塊鏈系統(tǒng)支撐能源互聯(lián)網(wǎng)中“源、網(wǎng)、荷、儲”多環(huán)節(jié)高互動數(shù)據(jù)處理,系統(tǒng)應(yīng)具備彈性擴(kuò)展能力。參與共識的節(jié)點(diǎn)應(yīng)能實(shí)現(xiàn)鄰居發(fā)現(xiàn)維護(hù),并支持節(jié)點(diǎn)根據(jù)負(fù)載情況靈活加入和退出。
區(qū)塊鏈節(jié)點(diǎn)根據(jù)區(qū)塊鏈性能等標(biāo)準(zhǔn)選擇最佳的鄰居視圖。若將分片內(nèi)g個(gè)已知的共識節(jié)點(diǎn)作為參照系,通過測量節(jié)點(diǎn)在參照系中的相似度指標(biāo),確定節(jié)點(diǎn)鄰居屬性。設(shè)電力區(qū)塊鏈節(jié)點(diǎn)資源評價(jià)指標(biāo)為{Rj|j=1,…,n},例如CPU、內(nèi)存等,節(jié)點(diǎn)x的相似度為式(1),其中rij為相應(yīng)資源的利用率。
(1)
所有相似度在設(shè)定閾值范圍內(nèi)的節(jié)點(diǎn)均可以加入本分片。通過周期性測試每個(gè)節(jié)點(diǎn)的相似度可以及時(shí)刪除無用節(jié)點(diǎn),提高電力區(qū)塊鏈系統(tǒng)的整體性能。
智能合約是電力區(qū)塊鏈中運(yùn)行業(yè)務(wù)邏輯的主要機(jī)制,其安全性和合規(guī)性需要得到充分保證。默認(rèn)情況下,智能合約可以訪問所有的系統(tǒng)資源,而使用沙箱機(jī)制,將處理邏輯在虛擬環(huán)境中進(jìn)行運(yùn)行和驗(yàn)證,可以實(shí)現(xiàn)智能合約功能的離線模擬和測試,不僅可以減小錯(cuò)誤合約上鏈的概率,還能降低調(diào)試合約的成本。
智能合約沙箱功能包括需求分析、合約設(shè)計(jì)、自然語言描述、形式化描述、模型驗(yàn)證、代碼生成、試運(yùn)行和一致性測試等。
將智能合約分解成有限狀態(tài)空間中的指令集合。應(yīng)用狀態(tài)空間搜索的方法檢測有限狀態(tài)系統(tǒng)是否滿足設(shè)計(jì)規(guī)范。智能合約沙箱通過簡單的Promela解釋器(simple promela interpreter,SPIN)建模工具進(jìn)行建模和驗(yàn)證,具體步驟如下。
步驟一:將智能合約中的操作或處理看作一個(gè)有限狀態(tài)自動機(jī),建立Promela語義模型,定義變量、消息、通道、進(jìn)程、遷移等要素;
步驟二:基于從一個(gè)給定的狀態(tài)開始的某條路徑上的事件,建立線性時(shí)序邏輯(linear temporal logic,LTL);
步驟三:由LTL描述的系統(tǒng)性質(zhì)進(jìn)行自動機(jī)異步交錯(cuò)積獲取智能合約系統(tǒng)的行為模型并迭代;
步驟四:計(jì)算LTL對應(yīng)自動機(jī)與全局有限狀態(tài)自動機(jī)的同步積,形成一個(gè)新的自動機(jī),如果自動機(jī)接受為空,表示驗(yàn)證通過。判斷方法是先檢驗(yàn)有沒有一個(gè)從初始狀態(tài)開始可達(dá)的環(huán)路包括至少一個(gè)接受狀態(tài)。
國家電網(wǎng)公司“數(shù)字新基建”十大重點(diǎn)建設(shè)任務(wù)之一是要求建設(shè)能源區(qū)塊鏈公共服務(wù)平臺,推動線上產(chǎn)業(yè)鏈金融等典型應(yīng)用,建成“一主兩側(cè)多側(cè)”的國網(wǎng)鏈,探索12類試點(diǎn)應(yīng)用。隨著區(qū)塊鏈應(yīng)用的增多,電力應(yīng)用中多條同構(gòu)或異構(gòu)區(qū)塊鏈的跨鏈數(shù)據(jù)流通需求相應(yīng)增加。因此,圍繞電力區(qū)塊鏈應(yīng)用需求及模式,建立統(tǒng)一資源描述和格式規(guī)范、設(shè)計(jì)跨鏈架構(gòu)和編程接口,對支持開發(fā)人員快速構(gòu)建跨鏈應(yīng)用具有重要的意義。
電力區(qū)塊鏈跨鏈技術(shù)通過定義數(shù)據(jù)資產(chǎn)和區(qū)塊鏈路由,形成支持條件隱私的電力主從鏈架構(gòu),實(shí)現(xiàn)可信接入的區(qū)塊鏈跨鏈交互與通信優(yōu)化,提供基于電力區(qū)塊鏈的對內(nèi)、對外互信服務(wù)。
目前有3類跨鏈技術(shù),分別是公證人機(jī)制(notary schemes)、側(cè)鏈/中繼(sidechains/relays)、哈希鎖定(Hash-locking)。其中側(cè)鏈/中繼技術(shù)通過智能合約和加密哈希樹等技術(shù)進(jìn)行跨鏈交易驗(yàn)證和狀態(tài)確認(rèn),驗(yàn)證邏輯可運(yùn)行于輕量級智能終端中,適用于電力區(qū)塊鏈應(yīng)用場景。
側(cè)鏈技術(shù)基于簡化的交易驗(yàn)證(simplified payment verification,SPV)驗(yàn)證機(jī)制的雙向錨定實(shí)現(xiàn),具體如下。
步驟一:主鏈鎖定,向從鏈發(fā)起SPV驗(yàn)證,等待對方確認(rèn);
步驟二:從鏈運(yùn)行智能合約,完成數(shù)據(jù)交換處理;
步驟三:從鏈鎖定,發(fā)送SPV驗(yàn)證給主鏈,等待對方確認(rèn);
步驟四:主鏈運(yùn)行智能合約,解除鎖定狀態(tài),雙向錨定結(jié)束。
區(qū)塊鏈的作用之一是多方數(shù)據(jù)可信共享和業(yè)務(wù)協(xié)同。同傳統(tǒng)區(qū)塊鏈系統(tǒng)一樣,電力區(qū)塊鏈中數(shù)據(jù)共享可分為鏈上鏈下數(shù)據(jù)協(xié)同和鏈間數(shù)據(jù)共享2種類型。
2.5.1 鏈上鏈下數(shù)據(jù)協(xié)同
鏈上鏈下數(shù)據(jù)協(xié)同是指區(qū)塊鏈賬本中的數(shù)據(jù)與鏈下信息系統(tǒng)中的數(shù)據(jù)協(xié)同。由于區(qū)塊鏈?zhǔn)窍鄬﹂]環(huán)的體系,因此將鏈下系統(tǒng)數(shù)據(jù)庫中數(shù)據(jù)進(jìn)行提取封裝并上鏈存儲,實(shí)現(xiàn)鏈下物理世界的信息到鏈上信息世界的數(shù)據(jù)映射尤為重要。例如,配電自動化系統(tǒng)中的監(jiān)控?cái)?shù)據(jù)采集、故障處理、數(shù)據(jù)分析應(yīng)用,以及與能量管理系統(tǒng)EMS、生產(chǎn)管理系統(tǒng)PMS、電力GIS、營銷管理系統(tǒng)CIS、95598客戶服務(wù)系統(tǒng)、用電信息采集系統(tǒng),以及調(diào)度管理系統(tǒng)OMS等相關(guān)應(yīng)用系統(tǒng)與區(qū)塊鏈的互聯(lián),需要大量的鏈上鏈下數(shù)據(jù)協(xié)同。
目前常見的數(shù)據(jù)上鏈多采用業(yè)務(wù)平臺對接的方式,難以保證上鏈前數(shù)據(jù)源的可信性和上鏈前后數(shù)據(jù)的一致性。因此電力區(qū)塊鏈系統(tǒng)獲取鏈下信息系統(tǒng)中的數(shù)據(jù)應(yīng)該通過預(yù)言機(jī)實(shí)現(xiàn)。預(yù)言機(jī)是一種可為區(qū)塊鏈提供數(shù)據(jù)源的單向數(shù)字代理,可以查找和驗(yàn)證鏈下信息系統(tǒng)中的數(shù)據(jù),并以加密的方式提供給智能合約處理,從而實(shí)現(xiàn)數(shù)據(jù)上鏈。
2.5.2 鏈間數(shù)據(jù)共享
鏈間數(shù)據(jù)共享是跨鏈技術(shù)解決的問題之一。電力區(qū)塊鏈系統(tǒng)中鏈間數(shù)據(jù)共享的關(guān)鍵點(diǎn)還包括電力數(shù)據(jù)資源的描述規(guī)范和跨鏈?zhǔn)聞?wù)機(jī)制。
電力區(qū)塊鏈數(shù)據(jù)資源雖然具有多維異構(gòu)特性,但其核心功能可歸納為靜態(tài)屬性、動態(tài)屬性和記賬屬性3類,因此可建立統(tǒng)一資源范式,如圖7所示。
圖7 統(tǒng)一資源范式Fig.7 Unified resource paradigm
電力區(qū)塊鏈系統(tǒng)通過事務(wù)機(jī)制保證數(shù)據(jù)資產(chǎn)和交易的真實(shí)性和一致性。特別是在跨鏈環(huán)境下,事務(wù)機(jī)制可以確保一條鏈上的數(shù)據(jù)資產(chǎn)轉(zhuǎn)出和另一條鏈上的資產(chǎn)轉(zhuǎn)入同步完成。
電力區(qū)塊鏈系統(tǒng)事務(wù)機(jī)制可采用哈希時(shí)間鎖定(Hashed time lock contract,HTLC)機(jī)制進(jìn)行原子級的事務(wù)處理。處理過程包括正常事務(wù)處理和錯(cuò)誤回滾操作,事務(wù)中任何步驟未完成將觸發(fā)回滾機(jī)制,確保事務(wù)的同步和數(shù)據(jù)一致性。
安全督查作為國家電網(wǎng)公司在信息安全領(lǐng)域的一項(xiàng)基礎(chǔ)性工作,在隱患消缺、數(shù)據(jù)防泄露、重大事件保障、網(wǎng)絡(luò)安全人才培養(yǎng)等方面發(fā)揮了重要作用[12]。然而,某省級電網(wǎng)公司在安全督查工作執(zhí)行過程中也逐漸暴露出督查臺帳不清晰、工作執(zhí)行效率低等不足?;趨^(qū)塊鏈技術(shù)的某省級電網(wǎng)公司信息資產(chǎn)全生命周期安全督查管理系統(tǒng),具備“資產(chǎn)臺帳可溯、運(yùn)維過程可管、漏洞整改可控、督查效果可視”的能力。
區(qū)塊鏈安全督查系統(tǒng)從資產(chǎn)上線前安全檢測,資產(chǎn)安全運(yùn)行,資產(chǎn)銷毀下線3個(gè)時(shí)間跨度,實(shí)現(xiàn)信息資產(chǎn)的全生命周期管理,其架構(gòu)如圖8所示。
圖8 區(qū)塊鏈安全督查系統(tǒng)架構(gòu)Fig.8 Architecture of blockchain security supervision system
基于上述需求,搭建區(qū)塊鏈基礎(chǔ)設(shè)施如圖9所示。其中,計(jì)算資源由區(qū)塊鏈一體機(jī)組成,分為中心和分布式節(jié)點(diǎn)2種部署方式,共有21個(gè)共識節(jié)點(diǎn)和40個(gè)同步節(jié)點(diǎn);存儲資源為光纖連接的存儲設(shè)備,可用存儲空間為200 TB;網(wǎng)絡(luò)資源中,業(yè)務(wù)平面通過10 Gbps高速交換機(jī)實(shí)現(xiàn)各節(jié)點(diǎn)之間的P2P組網(wǎng),控制平面通過SDN控制器連接所有設(shè)備進(jìn)行一體化管控,數(shù)據(jù)平面通過高速光網(wǎng)絡(luò)實(shí)現(xiàn)數(shù)據(jù)和賬本的訪問。
圖9 基礎(chǔ)設(shè)施部署Fig.9 Infrastructure deployment
原型系統(tǒng)將信息管理大區(qū)的在運(yùn)行設(shè)備、系統(tǒng)和應(yīng)用等納入督查資產(chǎn)生命周期管理體系,從全生命周期的角度對資產(chǎn)的測試報(bào)告、部署區(qū)域、基線現(xiàn)狀、防護(hù)策略、開放端口、操作系統(tǒng)版本、軟件版本、更新記錄、漏洞記錄等信息等進(jìn)行記錄管理,非敏感數(shù)據(jù)使用區(qū)塊鏈記錄。
對系統(tǒng)性能進(jìn)行測試,結(jié)果如表1所示。其中,單節(jié)點(diǎn)CPU為intel i7-8700@3.20 GHz,6核心12線程,單節(jié)點(diǎn)內(nèi)存為4 GB DDR4 2666,操作系統(tǒng)為Ubuntu 18.04。
表1 系統(tǒng)性能統(tǒng)計(jì)表Table 1 Statistical table of system performance
其中,出塊速度為單節(jié)點(diǎn)單通道測得,當(dāng)共識節(jié)點(diǎn)數(shù)量增加時(shí),由于共識需要的通信量增多,出塊時(shí)間會相應(yīng)增加。內(nèi)存和CPU占用率為主進(jìn)程占用的資源量。TPS為模擬場景中安全督察管理系統(tǒng)業(yè)務(wù)并發(fā)量測算得出,該TPS可支撐省級安全督察管理需要。
電力系統(tǒng)是專業(yè)化程度高的信息系統(tǒng),使用現(xiàn)有技術(shù)構(gòu)建可擴(kuò)展的區(qū)塊鏈網(wǎng)絡(luò)的設(shè)置復(fù)雜且難以管理。例如,要?jiǎng)?chuàng)建區(qū)塊鏈網(wǎng)絡(luò),每個(gè)網(wǎng)絡(luò)成員需要手動預(yù)置硬件、安裝軟件、創(chuàng)建和管理用于訪問控制的證書,以及配置網(wǎng)絡(luò)組件。文中在分析區(qū)塊鏈實(shí)現(xiàn)技術(shù)的基礎(chǔ)上,借鑒云計(jì)算基礎(chǔ)設(shè)施設(shè)計(jì)和部署方法,研究了區(qū)塊鏈基礎(chǔ)設(shè)施設(shè)計(jì)和部署的方案,并通過電力安全督查管理應(yīng)用系統(tǒng)驗(yàn)證了該方案的可行性。
本文得到江蘇省高校自然科學(xué)基金資助項(xiàng)目(19KJB520036),南京工程學(xué)院人才引進(jìn)項(xiàng)目(YKJ201721),江蘇省電力試驗(yàn)研究院有限公司科技項(xiàng)目“基于區(qū)塊鏈的網(wǎng)絡(luò)安全督查技術(shù)研究及平臺研制”資助,謹(jǐn)此致謝!