?

基于區塊鏈與數據湖的電力數據存儲與共享方法

2022-05-26 08:58曾飛楊雄蘇偉肖小龍易文飛
電力工程技術 2022年3期
關鍵詞:合約加密分布式

曾飛, 楊雄, 蘇偉, 肖小龍, 易文飛

(國網江蘇省電力有限公司電力科學研究院,江蘇 南京 211103)

0 引言

電力數據的安全高效存儲共享是電網業務穩定可靠服務用戶的重要保障[1—2]。隨著電力物聯網建設的推進,如何進行海量數據存儲和共享越來越受到關注[3—4]。具體而言,云主站平臺中營配調各系統間的數據需要存儲和共享訪問,邊設備和邊設備之間需要進行數據共享訪問,以支持營配調融合的發展趨勢,打造大電網戰略。因此,邊設備和邊設備之間存儲的數據如何進行安全高效共享訪問以及原先營配調各個系統的“數據孤島”如何打通都是亟須解決的難題[5—6]。

相關數據存儲和共享的研究主要分集中式和分布式。文獻[7]基于Hadoop平臺對電網大數據進行了優化存儲,提出了哈希桶存儲方式,實現相關聯數據的集中存儲和多源配用電數據規范化集成,以縮短數據查詢和分析耗時。文獻[8]提出基于Spark平臺的彈性分布數據集概率模型,可有效處理可再生能源的大規模樣本數據。文獻[9]基于動態實時優先級調度算法,提出一種數據處理任務控制調度模型,以優化數據中心的數據處理能力。但是上述方法的數據在傳輸和存儲過程中對集中式存儲中心服務器造成的訪問壓力巨大,吞吐量易受通信瓶頸制約[10]。

分布式存儲技術將數據信息分散存儲在多個獨立設備中,提升了數據存取效率[11]。其中,區塊鏈技術是分布式存儲的重要研究方向,其存儲節點通過維護一個不可篡改的公共賬本以實現數據共享[12—13]。而數據湖以原始數據和可用于分析的形式存儲所有數據,是一種安全的輔助存儲庫。文獻[14]利用區塊鏈技術取代集中式服務器,執行存儲交互驗證并借助無證書密碼學進行審驗,但該做法會導致數據訪問延時過大。文獻[15]提出基于人工智能驅動的網絡框架,建立相互信任的數據共享框架,結合監督學習和基于智能合約的細粒度數據訪問控制,確保數據共享環節中的隱私性,但該方法容易導致數據存儲冗余度增加[16]。文獻[17]提出基于區塊鏈的共享存儲系統模型,在不涉及第三方的情況下為用戶提供隱私保護。文獻[18]以電動汽車和充換電站為分布式存儲單元,在存儲數據的同時實現通用數據與資源的共享,并確保全部數據信息不被篡改。以上方法對區塊鏈在電力系統的應用做了一些嘗試,但未探討數據存儲安全和存取延時方面的平衡。

因此,對于電力物聯網邊設備和邊設備之間、云主站平臺營配調各系統間的數據存儲和共享需求,結合區塊鏈與數據湖技術的良好特性,文中提出了基于區塊鏈與數據湖的電力數據存儲與共享方法。在邊緣側設計分布式電力數據存儲架構,通過環簽名和CryptoNote協議加密邊設備存儲節點間的數據,利用區塊鏈智能合約實現數據共享。構建基于數據湖與智能合約的數據共享和訪問控制模型,解決營配調不同平臺之間數據難共享和難訪問的問題。

1 電力物聯網的數據管理架構

電力物聯網采用云邊端架構,如圖1所示。對于邊緣層設備,利用分布式存儲數據庫與區塊鏈作為底層支撐,實現數據存儲與共享。同時,將邊緣層數據信息匯聚后上傳至云層,云層基于改進數據湖模型進行數據共享與訪問。

圖1 電力物聯網系統架構Fig.1 System architecture of power Internet of Things

(1) 邊緣層。匯聚智能電表、低壓故障指示器、智能單元等終端設備實時采集的電力數據,進行分布式存儲與共享。針對電力物聯網邊緣層中邊設備之間存儲數據無法進行安全高效共享訪問的問題,提出分布式電力數據存儲架構,利用分布式存儲數據庫與區塊鏈作為底層支撐,并且通過環簽名和CryptoNote協議加密邊設備存儲節點間的數據,利用區塊鏈智能合約實現系統節點間的數據共享。

(2) 云層。對于電力物聯網云主站中營配調各系統間存在“數據孤島”的問題,基于數據湖與智能合約的數據共享和訪問控制模型,在數據湖存儲的基礎上優化區塊鏈中的智能合約模塊,實現營配調不同平臺之間數據共享與訪問。

2 邊緣層分布式電力數據存儲共享

2.1 分布式電力數據存儲架構

文中提出的分布式電力數據存儲模型將區塊鏈技術應用到數據存儲的實際場景中,其具體架構如圖2所示。分布式電力數據存儲模型分為2個模塊,分別為分布式存儲數據庫和區塊鏈,其中存儲數據庫支撐區塊鏈的存儲,而區塊鏈支撐存儲數據庫的安全防護。電力用戶通過端設備將存儲請求傳至邊設備,如智能融合終端、物聯代理裝置等,每個邊設備擁有若干個存儲節點,組合成數據聚合器,邊設備收到存儲請求后將需求傳至各自的存儲節點,其過程記錄于區塊鏈中。

圖2 電力數據分布式存儲框架Fig.2 Distributed storage framework for power data

文中采用脫鏈存儲,只在區塊體中存儲用戶名、用戶地址和存儲記錄的信息,而將采集的原始數據存儲在邊設備數據聚合器的存儲節點中,在存儲時進行加密,加密存儲過程如下。

第1步:電力用戶向邊設備提出存儲需求,選擇其中任一節點存儲數據,且一定時間(如1 min)內只能向該節點發送存儲請求。

第2步:存儲節點收到請求后回復存儲響應給發送方,并提供存儲服務次序號,待發送方確認后即可進行數據存儲。

第3步:存儲節點上傳存儲記錄到鏈上的區塊中,每個區塊均由區塊頭和區塊體組成。

第4步:用戶對存儲過程進行信用評價,系統根據結果評估該存儲節點性能。

2.2 節點間身份認證

在分布式電力數據安全存儲系統中,采用Cry ̄ptoNote協議對邊設備存儲節點間的數據交互進行加密,并進行雙方身份認證。CryptoNote提供環簽名和密鑰圖像,如果多次使用同一簽名,則接收者將拒絕該存儲交互[19]。CryptoNote協議的交互過程如下:首先,根據接收者的隨機數據(A,B)與發送者的隨機數據r相關聯得出簽名值P。

P=Hs(rA)G+B

(1)

式中:Hs為加密散列函數;G為基點。然后,接收者的隨機數據由發送者通過安全通道詢問接收者獲得,接收者使用其私鑰(a,b)檢查收到的存儲交互數據,并獲得認證值P′為:

P′=Hs(aR)G+b

(2)

式中:R為認證權重。最后,接收者可以回復對應的一次性密鑰x為:

x=Hs(aR)+b

(3)

由于接收者收到的消息與一次性密鑰關聯,因此此協議的數據存儲交互對于攻擊者而言是不可追蹤的。

CryptoNote協議收發每一方都有唯一的父密鑰,用于提交業務,并為每個業務生成一個隱身地址[20],密鑰從預先生成的門限置換函數獲得。隱身地址的生成過程如圖3所示。

圖3 隱身地址的生成過程Fig.3 Generation process of stealth address

首先,接收者生成父密鑰對,與臨時密鑰組成一次性密鑰并發布,發布的密鑰稱為隱身地址。然后,發送者接收該密鑰,與其生成的臨時密鑰組合成新的一次性添加密鑰,即新的一次性存儲交互地址??梢?,存儲交互地址會隨著存儲交互而進行不斷更新,很難被攻擊者捕捉[21—22]。CryptoNote中使用了隱身地址協議,為區塊鏈網絡中的用戶提供更強的隱私性。同時,存儲系統中的邊設備和用戶采用環簽名對信息進行簽名認證,認證后方可傳輸。簽名協議的過程定義如下[23]:

(1)φSign(m,Ps,P1,P2,…,Pn),簽名由每個消息成員m的公鑰(Ps,P1,P2,…,Pn)組成,并與簽名者的私鑰Ps相關聯以產生簽名φSign。

(2)fVerify(m,φSign),驗證簽名φSign,由所有可能的簽名者的公鑰以及消息m組成,輸出結果是真或假。

簽名者可以直接生成環簽名,而無需組管理器參與。簽名者計算對稱密鑰S作為待簽名消息m的哈希值,即S=h(m),創建環簽名組需要每一方的公鑰,簽名者可以選擇要在存儲交互中使用的簽名數,以提供模糊的簽名者。假設存儲數據由ω=lin+ri組成,該數據的簽名fi(ω)可表示為:

(4)

式中:di為發送者的簽名;qi為發送者產生的隨機數;li為接收者產生的隨機數;n為簽名者數量;ri為校驗碼。

由式(4)可以看出,fi(ω)是{0,1}上的置換函數,這也是一個單向門限函數,可基于成員公鑰的加密構造一組包含n個簽名者的環簽名:

Rs=f1⊕f2⊕…⊕fn

(5)

發送者使用環簽名為存儲交互的消息簽名,而無需組管理器參與,因此攻擊者無法判斷真實發送者對于相應存儲交互的身份。

2.3 節點間數據共享

分布式電力數據安全存儲系統中,節點間的數據共享通過區塊鏈智能合約實現。智能合約的腳本類型包含了鎖定與解鎖2種,鎖定腳本限定了共享數據的輸出約束,而解鎖腳本則限定了其運行標準?;谥悄芎霞s的數據共享流程總結如下。

(1) 共享訪問請求。數據共享的請求R由數據存儲節點Np發出,由存儲節點Nq接收,并且R中需要具備訪問地址、時間與頻次等信息。存儲節點Nq針對Np設置約束條件C0,并將該條件通過私鑰SPID傳至鄰近集合器Bj:

(6)

式中:CNp,CNq分別為數據存儲節點Np,Nq的證書;PNp為公鑰;fPK為實體加密信息;M為存儲的數據;t為時間戳。

(2) 執行智能合約。Bj驗證信息后根據設置的約束條件鎖定腳本,并采用PNp加密環簽名。

(3) 發送共享數據。若Nq與Np處于同一個數據聚合器中,可通過Bj直接獲得共享數據;若Nq與Np不在同一聚合器中,則通過合約方式傳至相鄰的Bj+1獲得共享數據。

(4) 指定訪問數據。Np接收到數據后,經過私鑰解密方可進行數據訪問。

3 云層基于數據湖的共享與訪問模型

隨著電力物聯網建設的推進,營配調融合以及大電網搭建逐步被提上日程,因此,營配調各類業務數據將不單只局限于各自部門內的系統進行共享,還將涉及電力物聯網云層不同平臺之間的數據共享。而數據湖是大數據應用中的一種數據共享方式,特別適用于跨平臺間的數據共享,其本質是一種數據管理的思路,可以存儲不同規模、不同結構、不同類型的數據,包括不同量級的結構化、半結構化和圖片文本等非結構化數據,允許各業務方通過訪問工具和框架來訪問數據而不必遷移,大大節省定義數據結構和轉換的時間,使得跨平臺、跨領域的數據分析能夠低成本、高效率實現。因此,采用數據湖可以打破國網等單位數據中心“數據孤島”的閉塞,在各數據倉庫之間建立連接,允許營配調各類業務訪問數據,解決電網公司傳統數據倉庫的痛點。但是數據湖的數據共享缺乏安全防護,因此,文中提出基于數據湖與智能合約的數據共享和訪問控制模型,只在鏈中存儲數據的哈希值,而將數據存儲在數據湖中,兼顧了營配調不同平臺之間的數據共享和安全性。

3.1 數據湖數據共享

數據湖中數據傳送方和接收方兩者的共享準則自主實行,并不存在統一的信任規則。利用智能合約能夠讓營配調用戶具備數據訪問與運用模式的控制權,同時采用分開的虛擬機執行相應的智能合約,用戶不能隨意篡改最終的結果。而數據湖能夠保質保量存儲所有類型的數據,并且分析處理數據的成本更低且速度快,這得益于其共享機制,如圖4所示。

圖4 數據湖中數據共享機制Fig.4 Data sharing mechanism in data lake

提出的數據共享與訪問模型只在區塊鏈中存儲數據的哈希值,將加密后的數據存于數據湖對,營配調用戶通過智能合約進行數據訪問。

3.2 數據湖訪問控制

營配調不同用戶在采用智能合約對數據湖進行訪問時,其訪問控制和數據使用具有平等地位?;谥悄芎霞s的數據湖訪問管理模型如圖5所示。

圖5 數據湖中訪問控制模型Fig.5 Access control model in data lake

該模型包含端設備和邊設備、區塊鏈中的智能合約及數據湖中的營配調數據三部分?,F有電力系統中通常廣泛采用縱向加密設備,在接入網交換機和數據網路由器之間增加縱向加密設備,并在設備中添加隧道和訪問控制策略,所有與訪問請求都將經由縱向加密設備放行方能進入調度數據中心。每個端設備和邊設備均加設加密芯片,入湖的數據均須通過加密芯片進行加密,同時也解密收到數據信息;電網公司營配調用戶通過區塊鏈智能合約和遠程服務認證進行數據訪問;數據湖之前加設加密網關,對入湖、出湖的數據進行加解密,從而確保數據湖數據訪問的安全性。其中智能合約模塊將數據的哈希值存放在區塊鏈中,但加密的原數據存放在數據湖中。具體而言,在設備進行數據存放時,須提供設備的合約地址、唯一識別號以及要寫入的數據,并將其組合成哈希映射列表,列表中存儲與該設備對應的所有數據信息,數據寫入時必須驗證對應的合約地址和唯一識別號,以確保只有合約設備才能進行數據存放操作。而在數據讀取時,要求訪問設備發送數據讀取請求,其中包含用戶設備合約地址和唯一識別號組成的哈希映射,數據湖檢查該哈希映射,只有已注冊的用戶設備才能獲得訪問權限。

4 實驗結果與分析

實驗主要采用延遲時間、吞吐量和安全性作為性能指標來評估所提方法。使用35臺主機構建所提的存儲體系,系統內所有主機硬件設置為64 GB內存和英特爾i7處理器。邊設備使用筆記本電腦進行模擬,并且利用分布式框架相互連接形成區塊鏈中數據存儲節點,便攜式電腦硬件設置為32 GB閃存和英特爾i5處理器。

4.1 存儲延遲分析

影響數據存儲的參數之一是塊大小,每個區塊都有自身的大小,具體取決于業務類型。設置塊大小的目的在于防止攻擊,例如拒絕服務攻擊。同時,塊大小也會影響確認的時間長度,通常來說,塊越大,確認所需的時間就越長。因此,塊的大小與延遲時間之間存在相關性。塊大小對存儲時間的影響如圖6所示,其中,業務的塊大小在0~350 KB范圍內變化,以便確定接收該塊所需的時間。

圖6 塊大小與存儲延遲時間之間的關聯Fig.6 Correlation between block size and storage delay time

圖6中,10%,25%,50%,80%代表業務的占比,數值越高,代表數據塊越大。從圖6中的變化趨勢可以看出,數據塊越大,延遲時間越長。

延遲時間作為評價存儲方法的重要指標之一,有必要對所提方法在這一方面的性能進行驗證,其與文獻[9]、文獻[14]和文獻[18]中方法的延遲時間對比結果如圖7所示。

圖7 不同存儲方法的延遲對比Fig.7 Delay comparison of different storage methods

由圖7可以看出,隨著邊設備和服務數目的增加,存儲延遲時間也在不斷增加,但是相比于其他對比方法,所提方法的延遲時間最短。這是由于所提方法采用分布式存儲,避免了集中存儲的擁塞,并且使用區塊鏈和改進智能合約去中心化,進一步縮短了存儲延遲時間。文獻[9]中采用集中處理的存儲方式,延遲時間最長;文獻[14]采用基于區塊鏈的數據存儲方式,文獻[18]采用三層分布式存儲架構,均能夠在一定程度上縮短延遲時間。

4.2 吞吐量分析

吞吐量是衡量存儲系統性能的重要標準之一,其定義為單位時間內存入或讀取的信息量。以電力數據作為存儲服務,將所提方法與文獻[9]、文獻[14]及文獻[18]進行對比,吞吐量對比結果見圖8。

圖8 不同存儲方法的吞吐量對比Fig.8 Throughput comparison of different storage methods

由圖8可以看出,所提方法的吞吐量高于其他對比方法,超過了1 800 Mbit/s。這是由于所提方法采用區塊鏈分布式存儲架構,并采用環簽名組,用戶或者邊設備可以根據自身需求尋找合適的存儲節點,進一步避免數據擁塞,提高了吞吐量。所提方法可視為文獻[14]和文獻[18]方法的結合并進行優化,因此性能優于兩者。文獻[9]采用集中存儲,大量的電力數據對中心存儲器的要求太高,無法滿足存儲容量需求,因此吞吐量較小。

4.3 安全性分析

所提方法采用環簽名、CryptoNote協議等一系列加密手段,同時使用數據湖提高數據共享的安全性,因此安全性是電力數據存儲性能的一個重要評價指標。將抵御外界攻擊等非正常數據存儲行為占比作為安全性的分析標準,具體指標為成功防止非正常數據存儲次數與所有非正常數據存儲次數的比值。所提方法與文獻[9]、文獻[14]、文獻[18]的安全性對比如圖9所示。

圖9 不同方法的存儲安全性對比Fig.9 Comparison of storage security of different methods

由圖9可以看出,相比于其他方法,所提方法的安全性最高,能夠抵御最多的外界網絡威脅,即使文件大小達到1 024 KB,其安全性也不低于80%。文件大小的增加意味著所需存儲的數據更多,也伴隨著更高的安全風險,因此,電力大數據對存儲系統的安全性提出了更高的要求。文獻[9]采用集中存儲方式,一旦中心處理器遭到攻擊者篡改就會嚴重威脅其數據隱私性,因此安全性能不高,并且隨著文件的增大,安全性能快速下降。文獻[14]采用區塊鏈存儲方式,文獻[18]采用分布式存儲方式,均在一定程度上保證了存儲的安全性能,但是缺乏相應的加密算法,因此安全性能還有很大的提升空間。

5 結語

隨著電力物聯網電力數據的迅猛增長,集中式存儲方式已無法滿足時延、安全性等要求,為此,提出一種基于區塊鏈與數據湖的電力數據存儲與共享方法。實驗結果表明,相比于其他對比方法,所提方法的存儲延遲時間更短,吞吐量更高,且安全性能更佳,能夠滿足電力數據存儲對安全性與高效性的要求。

下一步研究將考慮共享存儲的模式容量,同時還要考慮區塊鏈的可擴展性,以應對快速增長的電力數據。電力物聯網的快速發展必將導致電力數據飛速增長,存儲系統須具備很好的擴展性。

本文得到江蘇省電力試驗研究院有限公司科技項目“基于區塊鏈的安全可信新一代配電自動化體系研究”資助,謹此致謝!

猜你喜歡
合約加密分布式
一種新型離散憶阻混沌系統及其圖像加密應用
一種基于熵的混沌加密小波變換水印算法
分布式光伏熱錢洶涌
分布式光伏:爆發還是徘徊
加密與解密
認證加密的研究進展
基于DDS的分布式三維協同仿真研究
西門子 分布式I/O Simatic ET 200AL
合約必守,誰能例外!——對“情勢變更”制度不可寄于過高期望
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合