一种基于改进型拜占庭共识算法的电网数据存储方法与流程

文档序号:25780656发布日期:2021-07-09 09:23阅读:82来源:国知局
一种基于改进型拜占庭共识算法的电网数据存储方法与流程

1.本发明涉及一种基于改进型拜占庭共识算法的电网数据存储方法,属于电网数据区块链技术领域。


背景技术:

2.电力系统向社会提供电力,与社会发展进步与人民幸福生活有着密切联系。电力系统经过不断发展,规模越来越大,复杂度也显著提高,一些小的扰动经过不断发展后甚至能引起整个电网的崩溃。为了确保电网的稳定运行,需要实时监控电力系统的状态,并据此分析制定合适的调控策略。目前传统电网已经向集传统网络和通讯技术于一体的智能电网转变,智能电网通常通过无线传感节点实时监控电网设备运行,并通过通信基站定期的将数据上传到一个可信的数据中心进行存储。这种中心化的数据存储方式面临集中式恶意攻击、中心节点失效、数据中心数据被恶意篡改等信息安全问题。电网系统需要一种更加安全可靠的去中心化的数据存储方法,防止数据丢失、泄露、被篡改的情况发生。
3.目前,一些研究将联盟区块链技术应用到电网中,用来解决数据存储安全问题,但是现在广泛使用的联盟区块链使用的共识算法为拜占庭共识算法,这种算法可以容许一定的虚假恶意节点,但是当节点数增多时,拜占庭共识算法会产生大量的通信、计算和网络传输开销,而导致系统奔溃,因此现有的拜占庭共识算法无法满足电网系统的需求。


技术实现要素:

4.为了解决现有技术中区块链共识算法无法满足电网数据存储安全需求的问题,本发明提出了一种基于改进型拜占庭共识算法的电网数据存储方法,可以减少节点间的通信、计算和网络传输成本,提高了电网数据存储的安全性。
5.为解决上述技术问题,本发明采用了如下技术手段:
6.本发明提出了一种基于改进型拜占庭共识算法的电网数据存储方法,包括如下步骤:
7.根据选举机制从电网数据存储节点中选取一个领导节点,并基于领导节点利用广播生成树算法生成通信树;
8.基于通信树,利用改进型拜占庭共识算法处理领导节点身份信息和电网区块数据,实现通信树的电网数据存储节点共识,并生成多重签名;
9.利用通信树中的每个电网数据存储节点进行多重签名验证;
10.根据签名验证结果和电网数据存储节点共识结果进行电网区块数据存储。
11.进一步的,所述通信树包括电网系统中的所有电网数据存储节点以及节点之间的通信链接,所述电网区块数据为电网系统中的待存储数据。
12.进一步的,利用改进型拜占庭共识算法实现电网数据存储节点共识并生成多重签名的方法包括如下步骤:
13.利用通信树传输领导节点身份信息和电网区块数据,并在通信树的每个电网数据
存储节点处对领导节点身份信息和电网区块数据进行内容验证,生成验证信息列表;
14.利用领导节点对验证信息列表中的验证信息进行聚合,生成聚合哈希值;
15.基于聚合哈希值和验证信息列表生成电网数据存储节点的节点响应,并进行节点诚实性判断,实现电网数据存储节点共识;
16.基于电网数据存储节点的节点响应计算聚合响应,并生成多重签名。
17.进一步的,生成验证信息列表的方法包括如下步骤:
18.利用领导节点的私钥对领导节点身份信息和电网区块数据进行加密,并利用通信树将加密后的领导节点身份信息和电网区块数据传输到其他电网数据存储节点;
19.在电网数据存储节点i处利用领导节点的公钥对加密后的领导节点身份信息和电网区块数据进行解密,并验证领导节点身份信息和电网区块数据的内容的正确性,i=1,2,

,n,n为电网系统中电网数据存储节点的总数;
20.内容验证成功后,利用电网数据存储节点i生成一个随机数v
i
,并将电网数据存储节点i的加密随机数及其内容验证结果写入验证信息列表,其中,g表示椭圆加密算法的加密函数;
21.内容验证失败后,将电网数据存储节点i的内容验证结果写入验证信息列表。
22.进一步的,其特征在于,聚合哈希值的计算公式如下:
[0023][0024]
其中,表示聚合哈希值,h(||)表示取哈希值运算,表示聚合随机数,a表示内容验证成功的电网数据存储节点的集合,d表示电网区块数据。
[0025]
进一步的,生成节点响应并进行节点诚实性判断的方法为:
[0026]
利用通信树将聚合哈希值和验证信息列表传输到每个电网数据存储节点;
[0027]
根据聚合哈希值和电网数据存储节点i的随机数v
i
生成电网数据存储节点i的响应r
i

[0028][0029]
其中,表示聚合哈希值,x
i
表示电网数据存储节点i的私钥,i=1,2,

,n,n为电网系统中电网数据存储节点的总数;
[0030]
设电网数据存储节点j为电网数据存储节点i的子节点,j=1,2,

,n且j≠i,根据验证信息列表生成每个电网数据存储节点的哈希值:
[0031][0032]
其中,表示电网数据存储节点i的哈希值,表示电网数据存储节点i及其所有子节点的加密随机数的乘积,v
i
表示电网数据存储节点i的加密随机数;
[0033]
判断是否等于其中,其中,表示电网数据存储节点i及其所有子节点的响应的和,g表示椭圆加密算法的加密函数;
[0034]
当时,认为电网数据存储节点i诚实,将电网数据存储节点i的响应r
i
通过通信树传输到领导节点,完成节点共识,否则,认为电网数据存储节点i不诚实,重新选择领导节点并重新进行电网数据存储节点共识。
[0035]
进一步的,生成聚合响应和多重签名的方法为:
[0036]
利用每个电网数据存储节点的响应生成聚合响应其中,a表示内容验证成功的电网数据存储节点的集合;
[0037]
利用聚合哈希值和聚合响应组成多重签名
[0038]
进一步的,多重签名验证的步骤如下:
[0039]
利用通信树将多重签名传输到每个电网数据存储节点;
[0040]
在电网数据存储节点i处判断是否等于其中,其中,
[0041]
当时,签名验证成功,否则,重新选择领导节点并重新进行电网数据存储节点共识。
[0042]
进一步的,根据签名验证结果和电网数据存储节点共识结果进行电网区块数据存储的方法为:
[0043]
当签名验证成功时,根据验证信息列表计算内容验证成功的电网数据存储节点占所有电网数据存储节点的比例p;
[0044]
当比例p大于预设的比例阈值时,将电网区块数据存储到电网区块链中,否则,重新选择领导节点并重新进行电网数据存储节点共识。
[0045]
进一步的,所述预设的比例阈值的取值范围为60%~70%。
[0046]
采用以上技术手段后可以获得以下优势:
[0047]
本发明提出了一种基于改进型拜占庭共识算法的电网数据存储方法,利用广播通信树技术帮助电力系统建立电网数据存储节点之间的通信树,可以通过较少的通信资源实现多节点系统中数据的快速传输,减少了网络通信阻塞;本发明对传统拜占庭共识算法进行改进,通过节点共识生成多重签名,每个电网数据存储节点只需要验证一个公共的多重签名即可准确判断出共识过程中电网数据是否遭到篡改,极大地减少了签名计算成本,提高了电网数据存储的安全性;本发明在节点共识过程中采用了双重验证,先验证领导节点身份信息和电网区块数据,再验证节点诚实性,通过椭圆加密算法对每个节点产生的随机数进行加密,可以有效的保护节点隐私信息,利用每个通信树中的每个父节点验证其子节点的诚实性,可以及时地发现虚假节点,进一步提高电网数据存储的安全性。本发明方法可以减少节点间的通信、计算和网络传输成本,提高联盟链节点的可扩展性,能够有效防止电网数据丢失、泄露或被篡改,为电力系统提供了安全可靠的、去中心化的数据存储方法。
附图说明
[0048]
图1为本发明一种基于改进型拜占庭共识算法的电网数据存储方法的步骤流程图。
具体实施方式
[0049]
下面结合附图对本发明的技术方案作进一步说明:
[0050]
本发明提出了一种基于改进型拜占庭共识算法的电网数据存储方法,如图1所示,主要包括如下步骤:
[0051]
步骤1、根据选举机制从电网数据存储节点中选取一个领导节点,并基于领导节点利用广播生成树算法生成通信树;
[0052]
步骤2、基于通信树,利用改进型拜占庭共识算法处理领导节点身份信息和电网区块数据,实现通信树的电网数据存储节点共识,并生成多重签名;
[0053]
步骤3、利用通信树中的每个电网数据存储节点进行多重签名验证;
[0054]
步骤4、根据签名验证结果和电网数据存储节点共识结果进行电网区块数据存储。
[0055]
在步骤1中,本发明实施例在开始电网区块数据的提交共识过程时,通过前一个区块哈希对系统节点数取余等操作从电网数据存储节点中选取一个节点作为领导节点,领导节点负责主持节点共识过程。本发明将广播生成树算法运用到电力系统中,根据电网系统中其他电网数据存储节点与领导节点的连接关系生成通信树,通信树为树状图结构,通信树的顶点是领导节点,通信树包括电网系统中的所有电网数据存储节点以及节点之间的通信链接。
[0056]
通信树中的每个电网数据存储节点均拥有一对秘钥,其中,私钥x保存在电网数据存储节点中,公钥通过椭圆函数进行映射得到,公钥x=g
x
对所有节点公开,g表示椭圆加密算法的加密函数。通过椭圆函数映射可以使得根据公钥无法预测其私钥,实现了隐私信息的保护,并且如果数据传输过程中被黑客窃取而篡改,将无法验证成功。
[0057]
在本发明实施例中,步骤2的具体操作如下:
[0058]
步骤201、利用通信树传输领导节点身份信息和电网区块数据,并在通信树的每个电网数据存储节点处对领导节点身份信息和电网区块数据进行内容验证,生成验证信息列表。
[0059]
领导节点身份信息包括领导节点的网络信息和身份证书等,电网区块数据为电网系统中的待存储数据,其中包括电网用户的具体用电信息。
[0060]
201

1、利用领导节点的私钥对领导节点身份信息和电网区块数据进行加密,并利用通信树将加密后的领导节点身份信息和电网区块数据传输到其他电网数据存储节点。
[0061]
201

2、电网数据存储节点i接收到加密后的领导节点身份信息和电网区块数据,一方面将数据继续沿着通信树转发给自己的子节点,另一方面利用领导节点的公钥对加密后的领导节点身份信息和电网区块数据进行解密,并验证领导节点身份信息和电网区块数据的内容的正确性,i=1,2,

,n,n为电网系统中电网数据存储节点的总数。
[0062]
在本发明中,内容验证一般是验证数据的格式、取值范围等是否正确,如果内容验证成功,说明电网数据存储节点i赞成电网区块数据,利用电网数据存储节点i生成一个随机数v
i
,并利用椭圆加密算法对随机数v
i
进行加密,将电网数据存储节点i的加密随机数及其内容验证结果(内容验证成功)写入验证信息列表;如果内容验证失败,电网数据存储节点i不生成随机数,只需要将电网数据存储节点i的内容验证结果(内容验证失败)写入验证信息列表,并等待电网数据存储节点i的子节点上传信息。
[0063]
通信树中的每个电网数据存储节点在完成内容验证后会将验证信息列表上传到
其父节点,父节点再将自己的内容验证结果写入验证信息列表,最终通过通信树可以返回含有所有电网数据存储节点的内容验证结果和加密随机数的验证信息列表。
[0064]
步骤202、利用领导节点对验证信息列表中的验证信息进行聚合,生成聚合哈希值。
[0065]
领导节点从验证信息列表中获取每个内容验证成功的节点的加密随机数,通过聚合操作得到聚合随机数:
[0066][0067]
其中,表示聚合随机数,a表示内容验证成功的电网数据存储节点的集合。
[0068]
根据聚合随机数计算聚合哈希值,计算公式如下:
[0069][0070]
其中,表示聚合哈希值,h(||)表示取哈希值运算,d表示电网区块数据。
[0071]
步骤203、基于聚合哈希值和验证信息列表生成电网数据存储节点的节点响应,并进行节点诚实性判断,实现电网数据存储节点共识;具体操作如下:
[0072]
203

1、利用私钥对聚合哈希值和验证信息列表进行加密,纺织传输过程中信息被窃取篡改,利用通信树将加密后的聚合哈希值和验证信息列表传输到每个电网数据存储节点。
[0073]
203

2、当电网数据存储节点i获得加密后的聚合哈希值和验证信息列表后,电网数据存储节点i通过公钥解密聚合哈希值和验证信息列表,将验证信息列表保存到电网数据存储节点i的本地,以便后续验证使用。
[0074]
针对验证信息列表中内容验证成功的电网数据存储节点,根据聚合哈希值和电网数据存储节点i的随机数v
i
生成电网数据存储节点i的响应r
i

[0075][0076]
其中,表示聚合哈希值,x
i
表示电网数据存储节点i的私钥。
[0077]
通信树中的每个电网数据存储节点在生成响应后,会将自己的响应上传到其父节点,最终通过通信树将所有电网数据存储节点的响应传输给领导节点。如果某个节点内容验证失败,则该节点不生成相应的响应。
[0078]
203

3、设电网数据存储节点j为电网数据存储节点i的子节点,j=1,2,

,n且j≠i,根据验证信息列表生成每个电网数据存储节点的哈希值:
[0079][0080]
其中,表示电网数据存储节点i的哈希值,表示电网数据存储节点i及其所有子节点的加密随机数的乘积,
[0081]
203

4、进行节点诚实性判断:判断是否等于其中:
[0082][0083]
[0084][0085]
其中,表示电网数据存储节点i及其所有子节点的响应的和,x
i
表示电网数据存储节点i的公钥。
[0086]
当某个电网数据存储节点被攻击时,因为椭圆函数映射的不可预测性,被攻击的虚假节点在不知道随机数v
i
的情况下,无法正确的伪造该节点的响应和x
i
,因此会导致节点诚实性判断失败。当时,认为电网数据存储节点i诚实,将电网数据存储节点i的响应r
i
通过通信树传输到领导节点,完成节点共识,否则,认为电网数据存储节点i不诚实,重新选择领导节点并重新进行电网数据存储节点共识,即在新的领导节点的基础上重复步骤1、2。
[0087]
步骤204、基于电网数据存储节点的节点响应计算聚合响应,并生成多重签名。领导节点利用每个电网数据存储节点的响应生成聚合响应并利用聚合哈希值和聚合响应组成多重签名
[0088]
在本发明实施例中,步骤3的具体操作如下:
[0089]
步骤301、利用通信树将多重签名传输到每个电网数据存储节点。
[0090]
步骤302、电网数据存储节点i处收到多重签名后,判断是否等于其中,
[0091]
当时,签名验证成功,否则,表示共识过程中数据遭到篡改,需要重新选择领导节点并重新进行电网数据存储节点共识,此外,本发明还会记录下当前领导节点的虚假行为,当某个节点的虚假行为达到预设值时发送信息给管理人员,告知该节点可能遭到网络攻击。
[0092]
在本发明实施例中,步骤4的具体操作为:
[0093]
当签名验证成功时,根据验证信息列表计算内容验证成功的电网数据存储节点占所有电网数据存储节点的比例p;当比例p大于预设的比例阈值时,将电网区块数据存储到电网区块链中,否则,重新选择领导节点并重新进行电网数据存储节点共识。预设的比例阈值的取值范围为60%~70%。
[0094]
本发明方法可以可以通过较少的通信资源实现多节点系统中数据的快速传输,减少节点间的通信、计算和网络传输成本,提高联盟链节点的可扩展性,多重签名可以有效的保护节点隐私信息,能够有效防止电网数据丢失、泄露或被篡改,为电力系统提供了安全可靠的、去中心化的数据存储方法。
[0095]
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1