基于区块链与数据湖的电力数据存储与共享方法

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种,锁定脚本限定了共享数据的输出约束,而解锁脚本则限定了其运行标准。基于智能合约的数据共享流程总结如下。

(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 数据湖访问控制

营配调不同用户在采用智能合约对数据湖进行访问时,其访问控制和数据使用具有平等地位。基于智能合约的数据湖访问管理模型如图5所示。

图5 数据湖中访问控制模型Fig.5 Access control model in data lake

该模型包含端设备和边设备、区块链中的智能合约及数据湖中的营配调数据三部分。现有电力系统中通常广泛采用纵向加密设备,在接入网交换机和数据网路由器之间增加纵向加密设备,并在设备中添加隧道和访问控制策略,所有与访问请求都将经由纵向加密设备放行方能进入调度数据中心。每个端设备和边设备均加设加密芯片,入湖的数据均须通过加密芯片进行加密,同时也解密收到数据信息;电网公司营配调用户通过区块链智能合约和远程服务认证进行数据访问;数据湖之前加设加密网关,对入湖、出湖的数据进行加解密,从而确保数据湖数据访问的安全性。其中智能合约模块将数据的哈希值存放在区块链中,但加密的原数据存放在数据湖中。具体而言,在设备进行数据存放时,须提供设备的合约地址、唯一识别号以及要写入的数据,并将其组合成哈希映射列表,列表中存储与该设备对应的所有数据信息,数据写入时必须验证对应的合约地址和唯一识别号,以确保只有合约设备才能进行数据存放操作。而在数据读取时,要求访问设备发送数据读取请求,其中包含用户设备合约地址和唯一识别号组成的哈希映射,数据湖检查该哈希映射,只有已注册的用户设备才能获得访问权限。

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
合约必守,谁能例外!——对“情势变更”制度不可寄于过高期望