基于区块链技术的配电网电缆状态量的采集和诊断系统

2021-12-29 10:21李程张雅郭磊赵学风李旭廖强强
上海节能 2021年12期
关键词:公钥分布式电缆

李程 张雅 郭磊 赵学风 李旭 廖强强

1.国网汉中供电公司

2.上海电力大学

3.国网陕西省电力有限公司

4.国网陕西省电力公司电力科学研究院

0 引言

电力物联网是一个多学科交叉的网络,涉及计算机、控制技术、控制系统等学科的智能大网络。随着互联网技术和电力系统的发展,越来越多的遥感和通信设备以及分布式能源、分布式储能、电制氢等能源装置涌入电力物联网。电力事业蓬勃发展,电缆是影响电力输送的重要影响因素,但在实际的输电过程中影响电缆输电的因素十分复杂,为确保输电设备能安全、稳定、经济的运行,需提高电缆等输电设备在线监测的实时性与智能性,物联网中的输电设备状态量采集和监测是保证供电的重要环节,多中心化的分布式在线监测方式已经成为电力系统各级网络准确采集的重要支撑[1]。

区块链技术从问世以来受到广泛关注,其拥有分布式、去中心化等特点,利用区块链技术与输电设备的采集系统相融合,可以使数据的真实性和数据传输的安全得到保证,从而提升电缆等输电设备的运行质量,保障配电的稳定传输[2]。

1 技术介绍

1.1 区块链

区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式,它是由多个记录着各种信息的小区块链接起来组成的一个链条,具有去中心化、信息不可窜改、可溯源、开放性等特点。区块链不仅实现了数据的共享,也实现了数据控制权的共享,多个参与节点共同维护一个不可窜改的账本,当其中一个节点信息丢失或者窜改以后对账本没有任何影响,仅需要同步账本即可;当所有节点通过共识机制后,才能实现数据的增加、改动或者新模块的生成[3]。区块链的基本构架体系见表1。

表1 区块链的体系结构

1.1.1 区块链的准入机制

区块链按照准入规则主要分为公有链、联盟链和私有链。公有链公开透明,全网公开,世界上任何个体或者团体都可以在公有链发送信息,每个人都可以竞争记账权;联盟链半公开,是某个机构或组织内部使用的区块链,需要预先指定几个节点为记账人,每个区块的生成由所有预选记账人共同决定,其他节点可以交易,但是没有记账权;私有链则完全封闭,仅采用区块链技术进行记账,记账权并不公开,且只记录内部的交易,由公司或者个人独享[4]。在采集电缆的状态量时本文采用的是联盟链加入规则。

1.1.2 共识机制

在进行信息传输、信息存储时,共识机制解决并保证增加的数据信息在所有记账节点上的一致性和正确性问题,区块链的共识机制使其在不依靠中心化组织的情况下,依然大规模高效协作完成运转,多个参与方对信息上链达成了共识的机制[5]。

1.1.3 智能合约

智能合约为一段写在区块链上的代码,由事件驱动、具有动态状态、获得多方承认,且能够根据预设条件自动处理链上信息。智能合约在区块链上发挥作用如图1所示,一旦某个事件触发合约中的条款,代码会自动执行,智能合约最大的优势是利用程序算法替代人仲裁和执行合同。一旦编写好就可以被用户信赖,合约条款不能被改变,因此合约是不可更改的。程序满足条件即可执行,无法进行人为干扰,保证绝对公正公平[6]。本文将诊断专家库、历史数据库写成不能窜改的智能合约。

图1 智能合约

1.1.4 安全机制

首先利用高冗余的数据库保障信息安全,分布式账本的每个节点都存储着完整的信息数据。其次利用密码学的相关原理进行数据验证,保证不可窜改。如给大到几个G小到几个Byte的数据进行加密的哈希算法,将数据转化成二进制,且算法具有不可逆性,即使知道哈希值,也很难得到原始数据。哈希值相当于数据的身份证,具有唯一性,当数据进行了微小的改变,哈希值也会有很大的变化[7];区块链通过哈希值来判断数据的一致性以保证数据的安全。然后在权限管理方面,运用了多私钥规则进行访问权限控制。区块链的整体示意图见图2。区块头用于区块的连接和安全,区块体用于存储区块内的内容。区块链系统中非堆成加密中节点间验签时少不了公钥和私钥,来保证节点数据的安全传输。本文使用安全性较高的椭圆曲线签名算法对数据进行签名。

图2 区块结构示意图

1.2 基于区块链的电缆状态量体系框架

通过区块链和传统电缆设备采集的体系,可以看出电缆的数据采集和监测过于中心化,大量的状态量数据可能导致通信的信道堵塞,而且数据的安全也无法保证,大量数据可溯源性很差,采用区块链的分布式存储方式能避免上述问题。感知层的非法访问、节点欺骗等可以利用区块链的设备身份鉴别、数据源认证来解决;网络层可能存在的网络攻击、信息伪造等问题通过区块链的区块链网关、P2P网络得以解决;共识层的数据处理、隐私保护由区块链的访问授权和点对点访问解决;应用层可能出现的身份冒充、业务滥用、窜改信息等因区块链的信息溯源、密钥管理而解决[8,9]。遵循这个原则和解决方案,本文将区块链与配电网电缆状态量采集相融合,利用区块链的优点实现上述构想。图3展示了配电网电缆状态量采集、传输、储存体系构架,可见配电网电缆状态量体系与区块链体系很好的兼容性。

图3 配电网电缆状态量采集、传输、储存体系构架

配电网电缆状态量体系构架包括:感知层、网络层、共识层和应用层。

1)感知层具备数据采集、本地通信、数据汇集、数据存储等功能,包含电缆温度、电压参数、电流参数状态量。传感器采集的状态量作为数据源传输给局部计算中心,在局部计算中心利用小波奇异熵法将信号数据分解为零序电压,再把其传给数据采集终端节点,以形成多个数据采集终端节点。

2)监督层具备管理电缆上链的功能,状态量数据利用接入网和骨干网对数据进行安全可靠的传输。

3)共识层对数据进行提取与处理,格式整理与融合。利用智能合约,对数据统计与维护,是数据诊断中心,通过基于BP神经网络算法的智能合约来判断故障类型,在由运行人员决策双重保证下对数据进行监测与管理。

4)应用层即对信息进行脱敏处理后,由监管机构进行考核,应用层面向终端客户,确保操作合理并且能使用户和计算机间实现良好交互。

2 分布式电缆状态量采集监测系统

分布式电缆状态量采集监测系统主要由数据采集终端、诊断中心和监管机构构成,由所有的状态量采集终端、诊断中心、监管机构组建成区块网络的节点,节点之间形成端对端的P2P网络互联通信,每个节点会通过P2P通信将数据传输给全网其他节点,从而建立起端对端的分布式存储架构。区块链数据采用分布式分类账结构存储,数据就近上链,可实现电缆状态量的实时采集。分布式输电缆采集系统实现了端端互联后,每个终端都保存着完整的数据备份,不会引起数据信息的丢失,当某个终端因人为破坏或者恶意窜改时,因为数据在每个节点完整备份的同时,数据采用链式结构存储,保证了数据的安全。

图4显示了基于区块链的分布式配电网电缆状态量采集系统,区块链系统中包含一条中心区块链(主链)和若干数据采集终端块链(侧链)。主链依托于数据终端节点及其他与数据终端直接往来的节点(包括各局部计算中心节点、数据传感器),每条侧链则以相对应的一个数据采集终端为据点,向其覆盖的底层设备铺开。

图4 基于区块链的分布式配电网电缆状态量采集系统

2.1 数据采集终端块链(侧链)

在靠近终端处设置局部计算中心,在局部计算中心对传感器或人工录入的在线监测数据、带电检测数据等数据进行预处理(筛查过滤、简单计算),通过雾计算将事先约定的少量必要数据(熟数据)上传,减少传送至主链的数据量,提升主链的处理效率。

局部计算中心还负责通过数据终端从主链上同步诊断指令并传送至侧链,从而传达至在区块链中接入的本地设备,同时通过反馈机制监督本地设备执行。

2.2 中心区块链(主链)

在主链上利用智能合约建立诊断决策的专家库,保证专家库中的规则真实可靠、未被窜改。将采集上链的数据经过专家库的筛查转化为专家经验的诊断决策建议提供给诊断中心,辅助运行人员进行决策。运行人员提交决策指令至主链,由主链将相关指令同步至各数据采集的侧链。

所有诊断指令将在链上完整留存,便于日后追溯。一旦出现因诊断决策错误导致的生产事故,可随时调取诊断指令历史,查看诊断指令申报、审批、执行的全过程记录,辅助定责。监管机构作为主链的节点,同步数据和数据处理指令进行信息脱敏处理后,公开发布数据库,各供电公司、部门可以查阅,实现电缆输电设备状态量的公开、透明。

3 安全机制

本文采用ECDSA非对称椭圆曲线作为加密算法解决了密钥传递的问题,哈希算法解决了完整性验证问题的同时提高了数字效率,监督层作为第三方为公钥的所有者背书,解决公钥的持有者证明问题,形成一个解决信息安全、信息机密性、完整性、抗抵赖的完整解决方案。

椭圆曲线加解密算法原理:

通过基数的阶N、基数坐标G(x,y)等来定义椭圆曲线,从而形成一条光滑的曲线,要求x、y均取实数,椭圆曲线加密算法使用有限域。

节点通过选择k为私钥,p=kG为节点公钥。其中公钥用来加密,私钥用来解密。

公钥加密过程:

1)选择随机数r。

2)将数据等消息M生成密文C,C为一个点对C(a,b)。

式中,p为节点公钥。

私钥解密过程:

式中:k——私钥,p——公钥。

椭圆曲线签名算法原理:

私钥签名:

1)选择随机数r,计算点rG(x,y)。

2)根据随机数r、消息M的哈希h、私钥k,计算

3)将消息M和签名(rG,s)发送给接受方。

公钥验证签名:

1)接受方收到消息M和签名。

2)根据消息M求的哈希值。

3)使用发送方的公钥p计算hG/s+xk/s,与rG比较,相等则验签成功[10-12]。

式中:hash()为哈希算法实现函数。

基于上述区块链的分布采集系统,输变电设备的状态量采集数据要经过:设备接入、数据采集、数据存储过程。

3.1 设备接入

在分布式电缆状态量采集系统中,数据采集终端作为节点,终端采集数据包括测量电压、电流和温度的数据流,终端采集数据下又拥有不同的局部计算中心,对所有终端采集点的接入由监督层进行注册和验证。

图5所示的设备接入步骤如下:

图5 设备接入示意图

1)利用ECDSA非对称椭圆曲线作为加密算法,生成设备的公钥和私钥。

2)将私钥和设备信息(该系统对设备进行分类:电压状态量、电流状态量、温度状态量等)发送给监督层。

3)监督层收到设备信息并检查无误后,监督层私钥根据设备公钥对其进行加密并且签名sign,再把生成的sign返回设备。

4)设备通过公钥和sign进行接入凭证,其他设备可以根据监督层的公钥来验证sign的真实性。接入的设备需要自动向监督层上传信息,并且自动同步监督层的数据信息。

3.2 数据采集

不同状态量由各种不同传感器采集生成状态量数据,并且自动上传至局部计算中心,局部计算中心对数据进行处理分析,针对局部故障就地处理并上传处理信息,针对其他故障对数据进行简单处理后上传至数据采集终端,采集终端采用ECDSA非对称椭圆曲线对数据进行加密,当数据在局部计算中心和采集终端流通时经过公钥和私钥的双重认证才能上链进行交易,通过共识机制写入账本[13]。

3.3 数据存储

数据采集器就近上链,采用分布式数据库保证了数据的安全稳定,数据广播、共识、上链、同步的具体存储过程见图6,

图6 数据存储过程

每隔一段时间监管机构对数据进行共享请求,当请求通过时,分布式存储库对数据自动脱敏处理后同步共享。

4 智能合约

电缆故障按照发生类型可以分为绝缘故障、接地故障、短路故障、开路故障以及闪络性故障等五大类[14]。采集电缆出现故障时所产生的电压行波,然后得出这种波的小波奇异熵值,综合BP神经网络完成对故障类型的判断,将这一方法写入智能合约,能够帮助运行人员对故障判断进行参考,更加高效快速地解决故障问题。本文将故障信号分为如图7所示的类型。

图7 电缆故障类型识别结构图

在局部计算中心阶段将采集的电缆故障信号利用小波奇异熵法分解为零序电压信号,从而提取故障特征分量,是故障初步分类的基础。在智能合约中,BP神经网络已经过大量的故障数据进行训练,在判断故障时三相电压小波奇异熵值作为BP神经网的输入,故障预测结果为BP神经网络的输出,即可判断为两相短路或者接地故障,为运行决策人员提供参考。

本文在BP神经网络的训练中,采用单个隐藏层的神经网络结构,其中单层结构中存在15个神经元,大量电缆故障数据中70%用于训练、15%用于验证训练结果、15%用于预测,使用优化效率提高的LM(Levenberg-Marquardt)算法训练的神经网络成为智能合约里的固定代码[15-17]。图8为BP神经网络故障分析结构图、图9为测试数据的分析拟合结果。

图8 BP神经网络故障分析结构图

图9 BP神经网络训练拟合情况

5 系统运行机制

本节对电缆状态量采集系统进行说明,所有的数据采集终端作为节点共同构成了区块链网络,每个节点都配有进入区块链主链的缓冲区和分布式存储库,缓冲区用于缓冲没有进入主链的经过局部计算中心处理的数据。

如图10系统运行机制所示,进入主链的数据通过记账点将数据写入新区块,记账点在本文中即为运行人员决策点,同时智能合约建立诊断决策库对数据进行分析整理,辅助决策点的决策。新区块写入主链后进行全网传播,写入分布数据库中进入侧链,数据采集终端、局部计算中心以及设备之间都是双向通信信道,电缆等输电设备的故障动作来保证电力系统的安全运行。

图10 系统运行机制

6 区块链仿真

利用Python对区块链系统进行仿真,首先用区块分批保存交易,为区块加入防窜改代码,将区块相连形成区块链并且实现工作量证明的算法,进一步形成区块加入区块链代码,最后实现共识机制以及智能合约等,其中,使用Python内置的hashlib模块计算MD5哈希函数计算区块的哈希代码实现:

1.import hashlib

2.md5=hashlib.md5()

3.data=""

4.md5.update(data.encode('utf-8'))

5.print(md5.hexdigest)

通过Python仿真区块链实现工作量证明:

1.class Blockchain

2.difficulty of PoW algorithm

3.def proof_of_work(self,block):

4.Function that tries different values of nonce to get a hash that satisfies our difficulty criteria.

5.block.nonce=0

6.computed_hash=block.compute_hash()

7.return computed_hash

通过对比区块链的共识机制,对POW(工作量证明)、POS(权益证明)进行对比,发现POS随着节点个数的增多,传播时间大于POW,因此,本文采用POW共识机制[16]。区块传播时间与节点个数的关系见图11。

图11 区块传播时间与节点个数的关系

7 结论

本文将区块链技术应用于配电网电缆状态采集和故障诊断,从区块链的共识机制、智能合约设计、安全机制等角度,对电缆状态量采集系统进行了整体的设计,对电缆故障识别进行了智能合约的编写。设计的基于区块链技术的电缆状态采集和故障诊断系统可以实现其数据及时、安全采集和传输的功能。从设备接入、数据采集、数据存储三方面进行了具体阐释。区块链对于电缆状态量的采集和故障诊断的提升是全方位、多维度的,构成基于区块链的输电设备状态量的系统涉及的多种关键技术,能够自底向上发挥其作用,有望从根本上解决状态量采集和故障处理面临的种种挑战。不过,目前电力系统区块链仍然有很长一段路要走,除了从技术理论方面展开更加深入的研究,还需要在行业中进行更加广泛的应用实践。

猜你喜欢
公钥分布式电缆
核电厂电缆桥架超容问题的分析与处理
新一代分布式母线保护装置
海中“透视眼”快速定位海底电缆故障
山西公布首批屋顶分布式光伏整县推进试点
分布式空战仿真系统设计
基于Paxos的分布式一致性算法的实现与优化
神奇的公钥密码
国密SM2密码算法的C语言实现
小猫被困电缆井阿姨喂它一年多
西安问题电缆有太多“?”要回答