基于改进Raft算法的电力数据共享机制
2021-11-04朱红勤王黎明霍雪松
朱红勤,王黎明,霍雪松,张 明
(1.国网江苏省电力有限公司南京供电分公司电力调度控制中心,江苏 南京 210019;2.国网江苏省电力有限公司 电力调度控制中心,江苏 南京 210000)
随着智能电网的快速建设和应用,变电站智能电表的数量快速增加。变电站智能电表可以自动采集变电站运营的各项关键数据,极大方便了电力公司的运营,提升了电力用户用电的服务质量。由于电力公司需要各个变电站互相协作,才能最大化电力公司的运营收益,所以,各个变电站智能电表数据需要在电力公司内部实现共享。如何实现电力公司内部变电站智能电表之间数据的安全共享,已成为一个重要的研究内容。
由于区块链技术具有去中心化、可靠性高、数据防篡改等优点,已被应用到多个领域[1]。文献[2]将区块链技术应用到物联网体系架构中,有效提升了物联网体系的安全能力。文献[3]将区块链技术应用到大客户电力交易体系中,提升了电力需求方的满意度和电力公司的收益。文献[4]针对区块链架构中存在的密钥容易丢失、协议存在安全漏洞等问题,提出了一种新的基于区块链的能源数据安全防护体系。文献[5]将博弈论理论应用到区块链环境下的电网能源交易市场,提升了电力交易各方的积极性。文献[6]针对智能电表数据汇聚到电力调度中心时容易发送泄露的问题,采用私有链技术、假名策略等技术提升了数据的安全性。文献[7]将智能合约技术与智能电网数据存储业务需求进行关联,优化了区块链中的数据保存机制,提升了智能电网数据的安全性和隐私性。
从已有研究分析可知,区块链技术已被应用到电力系统,并且在电力系统的安全架构方面取得了较多的成果。但是,电力公司内部变电站智能电表之间数据的安全共享问题并没有被很好的解决。为解决此问题,本文采用联盟链技术,提出基于区块链的电力数据共享模型,将Raft算法应用到数据的安全共享机制中,设计了基于改进Raft算法的电力数据上链流程、领导者选择流程、电力数据共享流程,最后通过实验验证了本文算法在数据安全性方面的性能。
1 基于区块链的电力数据共享模型
为实现电力数据在电力公司内部的安全共享,电力公司根据地理位置及环境特点,建设多个电力调度中心。每个电力调度中心对其范围内的电力信息采集数据进行收集和整理。考虑到区块链技术具有数据的不可篡改、分布式安全存储数据的特点,本文采用区块链技术实现数据的安全管理。由于本文主要解决电力公司内部数据的安全共享问题,各个电力调度中心具有内部网络管理的特性,所以,本文采用联盟链技术去解决此问题。基于区块链的电力数据共享模型如图1所示。电力公司的各个电力调度中心构成区块链节点,实现电力数据的安全管理和存储。电力信息采集终端部署数据采集传感器,实现电力数据的采集。
图1 基于区块链的电力数据共享模型Fig.1 Power data sharing model based on blockchain
各个电力调度中心将自己管辖范围内的电力信息采集终端的数据采集之后,可以在自己的电力调度业务中充分利用这些数据。但是,当电力调度中心需要其他电力调度中心的数据时,需要通过安全的数据共享机制,才能保证数据的安全使用。考虑到共识机制是区块链技术中实现数据安全共享的关键机制,本文对共识算法进行详细研究。其中,共识机制是指区块链节点之间共同协商从而实现数据的验证工作。通过共识机制,可以有效解决各个电力调度中心账本数据不一致的问题。
考虑到Raft算法是一种高效的基于状态机理论的分布式数据一致性算法,具有使用方便、容易理解等优[8]。本文采用Raft算法实现各个电力调度中心数据的共识机制。Raft算法包括领导者、候选者、跟随者3种角色。通过领导者、候选者、跟随者3种角色的相互配合,可以实现区块链账本的一致性。但是,由于Raft算法缺少对数据内容的保密性、完整性验证,容易导致数据被篡改的问题。为解决此问题,本文基于电力调度中心之间数据共享的需求,提出基于改进Raft算法的电力数据共享机制。该机制主要包括电力调度中心之间的领导者选择流程、电力数据共享流程2个流程。
基于上述分析,要实现电力调度中心之间数据的安全共享,需要实现电力数据上链流程、领导者选择流程、电力数据共享流程3个基本流程。
2 电力数据的上链流程
基于本文提出的基于区块链的电力数据共享模型,电力数据的上链流程包括电力信息采集终端生成密钥信息、电力信息采集终端向电力调度中心注册、电力调度中心为电力信息采集终端生成标识、电力信息采集终端向电力调度中心提交数据上链申请、电力数据上链5个过程。详细流程如图2所示。
本栏目主要刊载反映临床医学各学科的研究结果、方法技术、新发现、新进展等方面的学术论文,旨在提供临床经验学习与交流的平台。按不同的论文格式和内容分为论著、临床分析、疗效观察、病例报告、误诊误治、实验研究、诊疗体会、综述等子栏目。
图2 电力数据上链流程Fig.2 Power data on-chain process
(1)电力信息采集终端使用密钥生成工具生成私钥、公钥。
(2)电力信息采集终端采用私钥对身份信息进行数字签名后,提交给电力调度中心进行注册。
(3)电力调度中心审核电力信息采集终端的身份后,为其创建身份标识,便于数据的上链存储。
(4)电力信息采集终端将自己的身份信息以及数据的哈希值提交给电力调度中心,并包含详细的数据上链申请的信息。
(5)电力调度中心根据智能合约的规则,自动实现电力信息采集数据的上链操作。
3 领导者选择流程
电力调度中心之间的领导者选择过程中,为提升区块链系统的容错能力,本文将候选者收到的投票数量提升到2/3节点数量,这样可以有效避免网络恶意攻击导致的领导者欺骗攻击。领导者选择流程如图3所示。
图3 领导者选择流程Fig.3 Leader selection process
由图3可知,该流程包括候选者节点发出申请领导者角色请求、身份认证并制定投票决策、收到超过2/3赞成票的候选者提交聚合签名消息、跟随者对聚合签名信息进行确认、最先收集到2/3赞成票的候选者成为领导者5个过程。详细的电力调度中心之间的领导者选择流程如下。
(2)跟随者收到候选者的加密信息后,根据候选者的身份信息查找其公钥,并对申请信息解密,如解密成功,投票对当前的候选者进行支持。否则,放弃投票或投拒绝票。
(3)当候选者收到超过2/3赞成票后,使用聚合签名算法将赞成票进行聚合签名,从而生成聚合签名消息。为防止聚合签名消息被篡改或窃取,发送前使用自己的私钥对消息进行签名。
(4)跟随者收到候选者的聚合签名信息后,按照收集到的消息顺序,逐个进行身份认证。身份认证的过程中,使用候选者的公钥信息进行解密,如解密成功,向候选者返回认证通过,并反馈同意其成为领导者的回复。
(5)候选者集合中的所有候选者对其接收到的候选者确认信息进行汇总,当收集到超过2/3的其他节点赞成其为领导者的投票后,触发智能合约的领导者选择规则,立刻成为本次竞争中的领导者。
4 电力数据共享流程
电力数据共享中存在的数据安全风险包括领导者篡改或窃取其他电力调度中心的数据、数据共享参与方篡改或窃取其他电力调度中心的数据2种。对于领导者篡改或窃取其他电力调度中心的数据的风险,预防措施为数据共享各方之间采用数据签名技术和数据哈希值技术,实现数据的真实性认证。如发现数据被领导者篡改,采取罢免领导者措施,重新选择新的领导者。对于数据共享参与方篡改或窃取其他电力调度中心数据的风险,预防措施同样为数据共享各方之间采用数据签名技术和数据哈希值技术,实现数据的真实性认证。如发现数据共享参与方篡改或窃取其他电力调度中心的数据,采取踢出区块链节点的措施,将其从区块链中删除。
基于上述分析,本文提出的电力数据安全共享流程包括数据请求方向领导者提出数据使用请求、领导者对数据请求方的身份和数据是否可用进行验证、领导者向数据提供方提出数据使用请求、数据提供方对领导者身份进行验证并回复数据是否可用、领导者转发数据提供方属性信息给数据请求方、数据请求方与数据提供方协商通信模式并建立连接6个过程(图4)。详细的电力数据安全共享流程如下。
图4 电力数据安全共享流程Fig.4 Electricity data security sharing process
(1)数据请求方向领导者发送自己的身份信息、请求数据的标识信息、使用时长和用途信息。
(2)领导者基于数据请求方提供的信息,验证数据请求方的身份信息,以及该身份对数据是否具有访问权限。如数据请求者对数据具有访问权限,领导者进一步查找数据提供方信息。
(3)领导者将数据请求信息发送给数据提供方,并等待数据提供方的回复信息。
(4)数据提供方基于领导者的公钥信息,对领导者的身份信息进行验证。验证通过后通过分析数据提供方的身份信息和数据使用方法,给领导者回复数据是否可用。如回复数据可用,领导者将数据提供方的身份属性发送给领导者。
(5)领导者收到数据提供方的身份属性信息后,将其转发给数据请求方。
(6)数据请求方基于数据提供方基本信息,在区块链中查找数据提供方并取得连接权限。数据请求方与数据提供方协商通信模式包括加密方式、通信策略、数据格式等内容。协商成功后,建立的连接可实现数据的安全共享。
5 性能
为验证本文算法对数据共享性能的影响,使用虚拟化技术部署了6个虚拟机集群。每个虚拟机模拟一个电力调度中心。在算法比较方面,将本文的基于改进Raft算法的电力数据共享机制(power data sharing mechanism based on improved Raft algorithm,PDSMoIRA)与基于Raft的电力数据共享机制(Raft-based power data sharing mechanism,RPDSM)进行比较。算法指标方面,从数据存储时延、数据读取时延两个方面对算法性能进行评价。
数据存储时延比较结果如图5所示,X轴表示不同电力终端数据采集设备数量,从50个增加到500个,Y轴表示这些数据采集设备的数据从采集结束到存储在区块链中的时间开销。从图5可知,随着电力终端数据采集设备数量的增加,两个算法下数据存储时延都在快速增加。两个算法的性能比较方面,本文算法下数据存储的时延都高于比较算法。但是,随时数据采集设备数量的增加,两个算法的数据存储时延区别较小,说明本文算法的性能与比较算法性能类似。实验结果表明,在保证数据安全共享的前提下,本文算法的数据存储时延较小。
图5 数据存储时延比较Fig.5 Data storage latency comparison
数据读取的时延比较结果如图6所示。
X轴表示不同电力终端数据采集设备数量,从50个增加到500个,Y轴表示电力调度中心提出数据请求到获得数据的时间开销。从图6可知,随时电力终端数据采集设备数量的增加,2个算法下数据读取的时延增加较快。2个算法的性能分析方面,本文算法的数据读取的时延都高于比较算法,这是因为本文算法相对于比较算法需要较多的时长用于数据防篡改处理。
从上述实验结果分析可知,本文算法PDSMoIRA比算法RPDSM在数据存储和数据读取方面都消耗了较多的时间。但是,增加的时长在可控的范围内。随着服务器性能的提升和虚拟化技术的成熟应用,可通过提升电力调度中心服务器性能等措施来提升算法性能。
6 结语
为提升电力公司内部变电站数据的安全共享能力,本文采用联盟链技术去解决此问题,提出了基于区块链的电力数据共享模型,基于改进的Raft算法,设计了电力数据的上链流程、领导者选择流程、电力数据共享流程。通过实验,验证了本文算法在保证数据安全共享的前提下,较小的增加了数据读取和存储的时延,较好的解决了数据安全共享问题。为进一步降低数据存储和读取的时间开销,下一步工作中,通过采用提升运行环境性能、优化数据共享模型等措施,降低数据存储和数据读取的时间消耗。