李大偉,宋春曉,李斌,顧智敏,王梓瑩
(1.南京工程學院計算機工程學院,江蘇 南京 211167;2.南京工程學院能源研究院,江蘇 南京 211167;3.江蘇省電力試驗研究院有限公司,江蘇 南京 211103)
2020年3月,國家電網公司提出了建設“具有中國特色國際領先的能源互聯網企業”的最新戰略目標。能源是主體,互聯網是手段,建設能源互聯網需要充分借鑒互聯網在數據共享和業務互聯互通中的成功經驗,實現傳統電網業務的數字化轉型。2020年4月20日,國家發改委首次明確新型基礎設施的3個方面,其中信息基礎設施包括以人工智能、云計算、區塊鏈等為代表的新技術基礎設施。區塊鏈技術契合了能源互聯網的發展需要,區塊鏈與電網業務結合,有利于促進電網生產管理和運營方式向智能化、網絡化方向轉型,對于電網產業結構調整具有積極的作用[1—3]。
互聯網飛速發展的推動力之一就是以云計算、大數據中心為代表的互聯網基礎設施的演進和發展。2020年6月,國家電網公司發布“數字新基建”十大重點建設任務,聚焦大數據中心、工業互聯網、5G、人工智能等領域,總體投資約247億元,預計可拉動社會投資約1 000億元,內容包括以能源區塊鏈應用為代表的10種應用。
區塊鏈是一種按照時間順序將數據區塊以鏈表的方式組織的分布式總賬,是集成了對等網絡(peer-to-peer,P2P)技術、密碼學、共識機制以及分布式存儲技術的可信分布式系統[4],具有去中心化、不可篡改和可審計等特點,目前已經在各領域廣泛應用[5]。能源互聯網是連接能源生產和能源消費的基礎平臺,基于區塊鏈的能源互聯網能夠實現各方的身份認證和互信,優化能源流程[6]。區塊鏈技術可支撐能源互聯網中源、網、荷、儲、人等不同主體在計量認證、市場交易、協同組織、能源金融等不同環節中協調互動,實現互聯網式的雙向交互、平等共享及服務增值,目前電力領域已有越來越多的落地項目。
但區塊鏈技術具有復雜性且發展迅速[7],既包括公有鏈、聯盟鏈、許可鏈等不同形態[8],又有以太坊、超級賬本、商用區塊鏈操作系統(enterprise operation system,EOS)等多種實現平臺。已有的項目多按照自身需求進行定制化開發,自成體系,缺少統一的建設標準和基礎設施支持[9],難以支撐能源互聯網背景下多主體多環節數據有效協同共享的需求[10—11]。
文中首先介紹了區塊鏈技術的原理及特點,分析區塊鏈如何體現能源互聯網理念。在此基礎上從建設需求、高可用計算資源、分布式存儲、多平面網絡、數字資產和業務中臺等方面探討了區塊鏈技術設施的建設原則和規范。
相較于其他行業,電網覆蓋面廣、終端設備種類多、數量大、業務場景豐富、實時性和安全性要求高[12]。電力區塊鏈基礎設施建設需要結合電網需求,支撐數據安全、智能合約、跨鏈交互等關鍵技術,快速構建能源互聯網應用[13—14]。
區塊鏈系統架構可以分為6層,從底層往上依次是數據層、網絡層、共識層、激勵層、合約層和應用層,每層基礎設施能力需求和功能如圖1所示。

圖1 區塊鏈系統技術架構Fig.1 Architecture of blockchain system
其中,數據層的功能由底層計算和存儲基礎設施支撐,其特征是高速讀寫訪問以及安全性;網絡層主要實現P2P網絡基礎設施,確保去中心化互聯互通;共識層封裝各類共識算法,為區塊鏈應用提供基座;激勵層和合約層為上層業務邏輯提供中臺,通過腳本、算法和智能合約為區塊鏈系統提供可編程特性和自動化智能化支持;應用層通過各種接口和軟件開發套件(software development kit,SDK)為快速構建電力業務應用提供支撐。
電力業務可靠性[15]和實時性要求電力區塊鏈基礎設施應具有多中心高速互聯、高可用并發處理和高性能分布式存儲,以實現對上層應用場景的支撐[16]。電力區塊鏈基礎設施架構如圖2所示。

圖2 電力區塊鏈基礎設施架構Fig.2 Power blockchain infrastructure
硬件基礎設施層包含分布式存儲資源、高可用計算資源、多平面組網設備及配套的安全防護平臺等系統運行必需的基礎設施。通過可配置的接口和數據安全交換中間件實現區塊鏈系統和已有業務系統的無縫對接和鏈上鏈下互動協同[17—18]。
平臺層是實現區塊鏈功能的核心組成部分。包含服務化區塊鏈中臺(blockchain as a service,BaaS)平臺、管控平臺和綜合管理系統。利用區塊鏈基礎設施把能源互聯網業務中的各類數據進行hash索引上鏈,實現數據融合,并保證數據、算法、結果三者的安全性,相比傳統的數據匯聚方式,可信區塊鏈實現了完全的分布式方式的數據生態。數據源不需要把數據上鏈或者上云,可以放在自己的機房,在需求方、算法方、投放方、監管方等整個生態打通的條件下,能通過安全多方計算實現對數據源、算法和結果的有效安全控制。
業務支撐層根據不同的電力業務應用場景數據融合需求,基于平臺層提供的定制化服務,通過區塊鏈應用研發平臺的軟件可定義能力,迅速實現能源互聯網業務與區塊鏈平臺的生成和對接。
電力區塊鏈系統對于事務處理和響應能力有更高的要求,須采用高可用服務器集群,通過高并發處理能力和內存計算,實現系統資源的共享和彈性調配。
在具體設計時,應用輕量級虛擬化和微服務架構,獲得系統級容錯、應用級高可用、虛擬機在線遷移、資源動態負載均衡等能力。將這些功能集成到一個計算單元中,形成區塊鏈一體機。區塊鏈一體機設計及其部署如圖3所示。

圖3 區塊鏈一體機設計與部署Fig.3 Design and deployment of blockchain all in one machine
每個一體機由基本系統資源和定制化區塊鏈操作系統組成,通過配置模塊,區塊鏈一體機可配置成為排序節點、記賬節點、備份節點等不同角色,共同完成區塊鏈應用。每個區塊鏈一體機還包括系統管理、配置模塊、區塊鏈模塊、接口模塊、組網模塊等功能模塊,實現鄰居發現、節點配置、接口管理、安全策略、以及數據管理等功能。區塊鏈一體機通過感知算法實現鄰居的動態發現、互聯和賬本同步,可根據業務狀態進行彈性擴展。
區塊鏈一體機集群形成“松耦合”的電力區塊鏈應用的計算資源池,為各類上層服務提供靈活的基礎架構,通過智能合約滿足電力業務場景的定制化需求。計算資源池通過調度系統實現對資源的調度分配。同時,根據上層區塊鏈應用系統的并發需求實現負載自動感知均衡和資源按需協同。在組網方面,對新加入和退出的節點進行鄰居發現,對不同用戶進行隔離。運維保障方面,通過自動檢測故障和系統熱點,保證業務穩定可靠運行。在系統架構中設計賬本冷備份機制,通過服務鏡像創建,故障切換、自動重保護和計劃內遷移,減少系統不能提供服務的時間。
區塊鏈的計算性能主要體現在區塊鏈網絡的交易吞吐量,一般以每秒并發事務數量(transaction per second,TPS)描述。假設N(t)為單位時間t內電力業務請求的數量,B(t)為單位時間t內區塊鏈上記錄的業務數量,隨著電力業務的增加,N(t)>B(t)的臨界點記錄的交易數量代表區塊鏈系統單位時間能夠完成交易的最高個數。提高系統性能的方法除了提高單節點運算速度外,還可以通過分層網絡架構和區塊分片發送的原則降低廣播和處理的數據量。
區塊鏈系統運行需要高性能的P2P網絡支持,多個節點之間通過高速冗余的網絡進行互聯互通。電力區塊鏈系統搭建一般采用主中心和從節點的方式部署,即將系統平臺、海量存儲、管控系統、安全監控等集中部署[19],成為電力區塊鏈數據中心,從節點部署于各地的業務現場,主中心和從節點之間采用電力專網互聯。
區塊鏈數據中心網絡部署為具有軟件定義網絡(software defined network,SDN)能力的多平面架構,實現專網專用,相互隔離,容災備份,分段維護的目的。具體分為:業務平面、存儲平面和管理平面,其架構如圖4所示。

圖4 網絡架構Fig.4 Network architecture
區塊鏈節點的網絡為對等網絡,系統運行時,每個節點都對外提供服務,因此區塊鏈數據中心的網絡采取高性能、扁平化、多平面、冗余備份、安全隔離的設計方法。基于高性能組網設備和智能化網絡運維系統的下一代軟件可定義組網架構,實現區塊鏈應用場景中數據的安全快速交換。其中,業務平面是P2P網絡的核心,連接所有區塊鏈節點,支撐區塊鏈系統運行。存儲平面連接分布式存儲設備,實現區塊和賬本數據的快速存儲和交換,特別是新節點加入時的賬本更新,需要通過數據平面進行底層復制,以縮短同步時間。控制平面基于SDN技術,實現對網絡系統的管理、監控、負載均衡和安全功能。
BaaS是區塊鏈軟件基礎設施,作為區塊鏈系統運行的中樞,BaaS系統賦予用戶區塊鏈管理和平臺管理的功能。其中,區塊鏈管理功能偏向于研發相關的區塊鏈的搭建和配置,而平臺管理功能則偏向于運維相關的區塊鏈運行狀態監控。根據區塊鏈云服務管理平臺常見模塊的功能,可以將模塊分為3個層次:資源管理層、區塊鏈管理層和平臺管理層。如圖5所示。

圖5 BaaS中臺架構Fig.5 Baas middle platform architecture
資源管理層中的模塊負責和基礎設施服務(infrastructure as a service,IaaS)層的云平臺交互,管理虛擬機和網絡等相關資源。區塊鏈管理層負責區塊鏈的創建、管理和運維監控,提供聯盟內各成員組織組建區塊鏈功能,包含節點管理、合約管理和賬本管理等。
中臺管理層的模塊負責區塊鏈服務平臺自身的賬戶、計費、日志和統計報表等管理功能,面向的是平臺管理員和用戶。平臺管理層提供的相關功能包括聯盟管理、成員管理、監控管理等。
BaaS中臺可實現區塊鏈系統的快速安裝、配置、以及初始化等操作,以便在部署大規模區塊鏈網絡時,可以有效縮短安裝部署時間。區塊鏈服務平臺需要支持用戶可以定制符合業務場景的區塊鏈和計算資源。例如,配置適當的區塊鏈運行參數(出塊時間,區塊大小,交易數量等),選擇適當的共識算法,設置各類節點的數量以及各個節點的CPU、內存、存儲、網絡帶寬等計算資源。
分布式記賬是區塊鏈的重要特征之一,該方式通過數據冗余實現了不同節點對記賬數據一致性的驗證。運行過程中,區塊鏈上每個節點都實時同步完整的賬本數據,該方式的弊端一是單節點存儲數據量大,存儲開銷大,檢索和同步困難,二是單節點存儲容量會成為系統存儲的短板。
動態賬本存儲優化機制結合賬本分片和鏈下擴容技術。其中,賬本分片的基本思想是:根據電網業務,將賬本分為多個分片進行存儲,每個節點僅存儲邊緣計算所屬區域的賬本數據,如果需要跨域數據,須通過區塊鏈網關節點進行路由實現。鏈下擴容則依據電力業務對上鏈數據進行封裝和優化,將鏈上交易遷移到鏈下系統和數據庫中進行存儲,僅把交易狀態、計算結果等關鍵數據上傳到目標區塊鏈,以解決目標區塊鏈存儲、計算等資源受限的問題。
假設電力區塊鏈節點數為N,分為節點數量相同的m個分片,則每個分片的節點數C=N/m。若某電力區塊鏈分片的唯一標識分為d,賬本分布式存儲優化方法如下:
選取一組hash函數:Hi(x)(i=1,…,n)。設賬本片段為t,計算哈希值Hi(d)和Hi(t)。
對于任意i,如果判別因子δ=mind{|Hi(t)-Hi(d)|},則將賬本片段t存儲到分片d中。
電力業務數據上鏈存儲需要運行共識算法,為提系統存儲效率和處理速度,需根據業務需求進行數據封裝,將原本置于鏈上處理的各類計算、事務,放到鏈下處理,而鏈上僅作數據驗證,以此間接提升區塊鏈處理數據的速度。具體算法如圖6所示。

圖6 鏈下擴容流程Fig.6 Offline expansion process
電力區塊鏈系統支撐能源互聯網中“源、網、荷、儲”多環節高互動數據處理,系統應具備彈性擴展能力。參與共識的節點應能實現鄰居發現維護,并支持節點根據負載情況靈活加入和退出。
區塊鏈節點根據區塊鏈性能等標準選擇最佳的鄰居視圖。若將分片內g個已知的共識節點作為參照系,通過測量節點在參照系中的相似度指標,確定節點鄰居屬性。設電力區塊鏈節點資源評價指標為{Rj|j=1,…,n},例如CPU、內存等,節點x的相似度為式(1),其中rij為相應資源的利用率。
(1)
所有相似度在設定閾值范圍內的節點均可以加入本分片。通過周期性測試每個節點的相似度可以及時刪除無用節點,提高電力區塊鏈系統的整體性能。
智能合約是電力區塊鏈中運行業務邏輯的主要機制,其安全性和合規性需要得到充分保證。默認情況下,智能合約可以訪問所有的系統資源,而使用沙箱機制,將處理邏輯在虛擬環境中進行運行和驗證,可以實現智能合約功能的離線模擬和測試,不僅可以減小錯誤合約上鏈的概率,還能降低調試合約的成本。
智能合約沙箱功能包括需求分析、合約設計、自然語言描述、形式化描述、模型驗證、代碼生成、試運行和一致性測試等。
將智能合約分解成有限狀態空間中的指令集合。應用狀態空間搜索的方法檢測有限狀態系統是否滿足設計規范。智能合約沙箱通過簡單的Promela解釋器(simple promela interpreter,SPIN)建模工具進行建模和驗證,具體步驟如下。
步驟一:將智能合約中的操作或處理看作一個有限狀態自動機,建立Promela語義模型,定義變量、消息、通道、進程、遷移等要素;
步驟二:基于從一個給定的狀態開始的某條路徑上的事件,建立線性時序邏輯(linear temporal logic,LTL);
步驟三:由LTL描述的系統性質進行自動機異步交錯積獲取智能合約系統的行為模型并迭代;
步驟四:計算LTL對應自動機與全局有限狀態自動機的同步積,形成一個新的自動機,如果自動機接受為空,表示驗證通過。判斷方法是先檢驗有沒有一個從初始狀態開始可達的環路包括至少一個接受狀態。
國家電網公司“數字新基建”十大重點建設任務之一是要求建設能源區塊鏈公共服務平臺,推動線上產業鏈金融等典型應用,建成“一主兩側多側”的國網鏈,探索12類試點應用。隨著區塊鏈應用的增多,電力應用中多條同構或異構區塊鏈的跨鏈數據流通需求相應增加。因此,圍繞電力區塊鏈應用需求及模式,建立統一資源描述和格式規范、設計跨鏈架構和編程接口,對支持開發人員快速構建跨鏈應用具有重要的意義。
電力區塊鏈跨鏈技術通過定義數據資產和區塊鏈路由,形成支持條件隱私的電力主從鏈架構,實現可信接入的區塊鏈跨鏈交互與通信優化,提供基于電力區塊鏈的對內、對外互信服務。
目前有3類跨鏈技術,分別是公證人機制(notary schemes)、側鏈/中繼(sidechains/relays)、哈希鎖定(Hash-locking)。其中側鏈/中繼技術通過智能合約和加密哈希樹等技術進行跨鏈交易驗證和狀態確認,驗證邏輯可運行于輕量級智能終端中,適用于電力區塊鏈應用場景。
側鏈技術基于簡化的交易驗證(simplified payment verification,SPV)驗證機制的雙向錨定實現,具體如下。
步驟一:主鏈鎖定,向從鏈發起SPV驗證,等待對方確認;
步驟二:從鏈運行智能合約,完成數據交換處理;
步驟三:從鏈鎖定,發送SPV驗證給主鏈,等待對方確認;
步驟四:主鏈運行智能合約,解除鎖定狀態,雙向錨定結束。
區塊鏈的作用之一是多方數據可信共享和業務協同。同傳統區塊鏈系統一樣,電力區塊鏈中數據共享可分為鏈上鏈下數據協同和鏈間數據共享2種類型。
2.5.1 鏈上鏈下數據協同
鏈上鏈下數據協同是指區塊鏈賬本中的數據與鏈下信息系統中的數據協同。由于區塊鏈是相對閉環的體系,因此將鏈下系統數據庫中數據進行提取封裝并上鏈存儲,實現鏈下物理世界的信息到鏈上信息世界的數據映射尤為重要。例如,配電自動化系統中的監控數據采集、故障處理、數據分析應用,以及與能量管理系統EMS、生產管理系統PMS、電力GIS、營銷管理系統CIS、95598客戶服務系統、用電信息采集系統,以及調度管理系統OMS等相關應用系統與區塊鏈的互聯,需要大量的鏈上鏈下數據協同。
目前常見的數據上鏈多采用業務平臺對接的方式,難以保證上鏈前數據源的可信性和上鏈前后數據的一致性。因此電力區塊鏈系統獲取鏈下信息系統中的數據應該通過預言機實現。預言機是一種可為區塊鏈提供數據源的單向數字代理,可以查找和驗證鏈下信息系統中的數據,并以加密的方式提供給智能合約處理,從而實現數據上鏈。
2.5.2 鏈間數據共享
鏈間數據共享是跨鏈技術解決的問題之一。電力區塊鏈系統中鏈間數據共享的關鍵點還包括電力數據資源的描述規范和跨鏈事務機制。
電力區塊鏈數據資源雖然具有多維異構特性,但其核心功能可歸納為靜態屬性、動態屬性和記賬屬性3類,因此可建立統一資源范式,如圖7所示。

圖7 統一資源范式Fig.7 Unified resource paradigm
電力區塊鏈系統通過事務機制保證數據資產和交易的真實性和一致性。特別是在跨鏈環境下,事務機制可以確保一條鏈上的數據資產轉出和另一條鏈上的資產轉入同步完成。
電力區塊鏈系統事務機制可采用哈希時間鎖定(Hashed time lock contract,HTLC)機制進行原子級的事務處理。處理過程包括正常事務處理和錯誤回滾操作,事務中任何步驟未完成將觸發回滾機制,確保事務的同步和數據一致性。
安全督查作為國家電網公司在信息安全領域的一項基礎性工作,在隱患消缺、數據防泄露、重大事件保障、網絡安全人才培養等方面發揮了重要作用[12]。然而,某省級電網公司在安全督查工作執行過程中也逐漸暴露出督查臺帳不清晰、工作執行效率低等不足。基于區塊鏈技術的某省級電網公司信息資產全生命周期安全督查管理系統,具備“資產臺帳可溯、運維過程可管、漏洞整改可控、督查效果可視”的能力。
區塊鏈安全督查系統從資產上線前安全檢測,資產安全運行,資產銷毀下線3個時間跨度,實現信息資產的全生命周期管理,其架構如圖8所示。

圖8 區塊鏈安全督查系統架構Fig.8 Architecture of blockchain security supervision system
基于上述需求,搭建區塊鏈基礎設施如圖9所示。其中,計算資源由區塊鏈一體機組成,分為中心和分布式節點2種部署方式,共有21個共識節點和40個同步節點;存儲資源為光纖連接的存儲設備,可用存儲空間為200 TB;網絡資源中,業務平面通過10 Gbps高速交換機實現各節點之間的P2P組網,控制平面通過SDN控制器連接所有設備進行一體化管控,數據平面通過高速光網絡實現數據和賬本的訪問。

圖9 基礎設施部署Fig.9 Infrastructure deployment
原型系統將信息管理大區的在運行設備、系統和應用等納入督查資產生命周期管理體系,從全生命周期的角度對資產的測試報告、部署區域、基線現狀、防護策略、開放端口、操作系統版本、軟件版本、更新記錄、漏洞記錄等信息等進行記錄管理,非敏感數據使用區塊鏈記錄。
對系統性能進行測試,結果如表1所示。其中,單節點CPU為intel i7-8700@3.20 GHz,6核心12線程,單節點內存為4 GB DDR4 2666,操作系統為Ubuntu 18.04。

表1 系統性能統計表Table 1 Statistical table of system performance
其中,出塊速度為單節點單通道測得,當共識節點數量增加時,由于共識需要的通信量增多,出塊時間會相應增加。內存和CPU占用率為主進程占用的資源量。TPS為模擬場景中安全督察管理系統業務并發量測算得出,該TPS可支撐省級安全督察管理需要。
電力系統是專業化程度高的信息系統,使用現有技術構建可擴展的區塊鏈網絡的設置復雜且難以管理。例如,要創建區塊鏈網絡,每個網絡成員需要手動預置硬件、安裝軟件、創建和管理用于訪問控制的證書,以及配置網絡組件。文中在分析區塊鏈實現技術的基礎上,借鑒云計算基礎設施設計和部署方法,研究了區塊鏈基礎設施設計和部署的方案,并通過電力安全督查管理應用系統驗證了該方案的可行性。
本文得到江蘇省高校自然科學基金資助項目(19KJB520036),南京工程學院人才引進項目(YKJ201721),江蘇省電力試驗研究院有限公司科技項目“基于區塊鏈的網絡安全督查技術研究及平臺研制”資助,謹此致謝!