一种应用于区域能源互联网的区块链共识方法
文献发布时间:2023-06-19 12:07:15
技术领域
本发明属于能源互联网技术领域,涉及一种应用于区域能源互联网的区块链共识方法。
背景技术
能源互联网是一种综合运用先进的电子技术、信息技术和智能管理技术,将大量由分布式能源采集装置、分布式能源存储装置以及各种负载主体构成的各种类型的能源网络的能源节点互联起来,以实现能量双向流动的能量对等交换与共享网络。
随着更多的产消者加入区域能源互联网,造成大量的能源电力交易共识。
目前,针对区域能源互联网场景的共识算法,主要包括PoW、PoS、DPoS和PBFT等几种,以及在原有共识算法的基础上改进的一些共识算法。
针对能源交易的PoW共识算法及其改进算法,保证了各个节点记账的平等性,但是PoW共识过程需要耗费大量的算力,造成不必要的能耗。
能源交易场景中的PoS和DPoS共识算法,在一定程度少减小了PoW共识的算力浪费,但由于“权益”的积累,易造成超级节点,使节点之间权利不对等,进而影响共识结果。
针对微电网能源交易,部分研究选取定量的能源监管主体或数据中心节点,采用PBFT共识算法以及基于其改进的共识算法,然而,该类算法存在如下缺陷:
1.需要预先指定共识节点,不仅牺牲了系统去中心化的特性,还难以保证选举的共识节点长期可信,并且随着共识组节点数量的增多,共识效率会不断下降;2.可扩展性差。
发明内容
本发明的目的之一在于提出一种应用于区域能源互联网微电网内部交易的区块链共识方法,该方法通过动态选取共识组节点,以解决固定共识组节点导致的共识组节点过度中心化的问题;同时,由于本发明方法采用局部定量、高信誉值的共识组节点参与共识,因而避免了PBFT共识算法中共识组节点数量增多,导致共识效率降低的问题。
本发明为了实现上述目的,采用如下技术方案:
一种应用于区域能源互联网微电网内部交易的区块链共识方法,包括如下步骤:
I.1.从微电网内部动态选取n个节点作为共识组节点,选取过程如下:
I.1.1.选取微电网内部,除交易节点之外所有信誉值达标的节点;其中,信誉值达标的节点是指信誉值超过设定的信誉值阈值T0的节点,70≤T0<100;
I.1.2.利用随机算法为选取的每个信誉值达标的节点分配一个随机数值X;
其中,随机数值X的取值范围为:T0≤X≤100;
I.1.3.将选取的每个信誉值达标的节点的信誉值与为该信誉值达标的节点分配的随机数值相加,并按照由大到小的顺序对相加后的结果进行排序;
I.1.4.从相加后的结果中按照由大到小的顺序选取前n个,将与这n个结果一一对应的n个信誉值达标的节点,作为参与本次微电网内部交易共识过程的共识组节点;
I.2.交易发起节点,私钥签名能源交易记录,并将其广播至所有共识组节点;
I.3.所有共识组节点针对能源交易记录进行拜占庭共识验证;
I.4.每个共识组节点分别将经过所述拜占庭共识验证后生成的对应所述能源交易记录的共识结果消息,广播至区域能源互联网中除自身之外的其他节点;
其中,区域能源互联网中除自身之外的其他节点包括交易发起节点、其他共识组节点、除交易发起节点和共识组节点之外的其他微电网内部节点以及微电网外部节点;
I.5.区域能源互联网中所有节点依据收到的所述共识结果消息,进行共识结果判定并存储,同时修改本地信誉值列表中各个所述共识组节点的信誉值。
优选地,信誉值指的是依据节点参与共识的历史数据得出的诚信度;
信誉值的大小依据节点背书结果与共识结果是否相同来修改,正常完成一次能源交易共识背书信誉值+1,背书错误一次,信誉值-10;
其中,信誉值的初始值为100,信誉值达到100之后不再增加。
优选地,区域能源互联网由多个独立的微电网组建而成;
每个微电网内部均包含:
多个能源发、售电接入主体及与各个能源发、售电接入主体一一对应的售电节点,以及多个能源购电接入主体及与各个能源购电接入主体一一对应的购电节点;
步骤I.2中,交易发起节点是指微电网内部的购电节点。
优选地,步骤I.2中,能源交易记录包括交易记录ID、购电用户ID、售电用户ID、购电用户私钥签名、售电用户私钥签名、交易单价、交易量以及交易金额;
步骤I.3中,拜占庭共识验证包括预准备阶段以及准备阶段两个过程;其中:
预准备阶段过程如下:
交易发起节点将能源交易记录发送给共识组节点,共识组节点验证能源交易记录中的私钥签名以及交易金额,验证通过之后,对能源交易记录进行背书;
准备阶段过程如下:
每个共识组节点将背书之后的能源交易记录发送给除自身之外的其他共识组节点;
共识组节点验证收到的已背书的能源交易记录,若收到的记录数量大于2f+1,则生成对应能源交易记录的共识结果消息;
其中,共识结果消息指的是包含能源交易记录的确认消息,3f+1≥n。
优选地,步骤I.5中,共识结果判定并存储是指节点收集到的共识结果消息的数量若大于n/2,则判定为正确消息,并将能源交易记录存储到本地区块链中;
步骤I.5中,信誉值列表是指对应区域能源互联网中所有区块链节点信誉值的列表。
本发明的目的之二在于提出一种应用于区域能源互联网微电网外部交易的区块链共识方法,该方法通过动态选取共识组节点,以解决固定共识组节点导致的共识组节点过度中心化的问题;同时,由于本发明方法采用局部定量、高信誉值共识组节点参与共识,因而避免了PBFT共识算法中共识组节点数量增多,导致共识效率降低的问题。
本发明为了实现上述目的,采用如下技术方案:
一种应用于区域能源互联网微电网外部交易的区块链共识方法,包括如下步骤:
II.1.从参与交易的多个微电网中动态选取n个节点作为共识组节点,选取过程如下:
II.1.1.将n个共识组节点的名额平均、或者相对平均的分配给参与交易的各个微电网,然后从各个微电网中依次选取相应数量的共识组节点;
设定参与交易的微电网数量为m,第i个微电网分配的共识组节点数量为n
则第i个微电网中共识组节点的选取过程如下述步骤II.1.2至步骤II.1.5所示;
II.1.2.选取第i个微电网内部,除交易节点之外所有信誉值达标的节点;其中,信誉值达标的节点是指信誉值超过设定的信誉值阈值T0的节点,70≤T0<100;
II.1.3.利用随机算法为选取的每个信誉值达标的节点分配一个随机数值X;
其中,随机数值X的取值范围为:T0≤X≤100;
II.1.4.将选取的每个信誉值达标的节点的信誉值与为该信誉值达标的节点分配的随机数值相加,并按照由大到小的顺序对相加后的结果进行排序;
II.1.5.从相加后的结果中按照由大到小的顺序选取前n
II.1.6.待各个微电网内部共识组节点选取完成后,将所有参与交易的微电网中选出的共识组节点,共同作为参与本次微电网外部交易共识过程的共识组节点;
II.2.交易发起节点,私钥签名能源交易记录,并将其广播至所有共识组节点;
II.3.所有共识组节点针对能源交易记录进行拜占庭共识验证;
II.4.每个共识组节点分别将经过拜占庭共识验证后生成的对应能源交易记录的共识结果消息,广播至区域能源互联网中除自身之外的其他节点;
区域能源互联网中除自身之外的其他节点包括交易发起节点、其他共识组节点、参与交易的各个微电网中除交易发起节点、共识组节点之外的其他节点以及微电网外部节点;
其中,微电网外部节点是指不参与能源交易的其他微电网中的节点;
II.5.区域能源互联网中所有节点依据收到的共识结果消息,进行共识结果判定并存储,同时修改本地信誉值列表中各个共识组节点的信誉值。
优选地,信誉值指的是依据节点参与共识的历史数据得出的诚信度;
信誉值的大小依据节点背书结果与共识结果是否相同来修改,正常完成一次能源交易共识背书信誉值+1,背书错误一次,信誉值-10;
其中,信誉值的初始值为100,信誉值达到100之后不再增加。
优选地,区域能源互联网由多个独立的微电网组建而成;每个微电网均包含:
多个能源发、售电接入主体及与各个能源发、售电接入主体一一对应的售电节点,以及多个能源购电接入主体及与各个能源购电接入主体一一对应的购电节点;
步骤II.2中,交易发起节点是指参与能源交易的微电网中的购电节点。
优选地,步骤II.2中,能源交易记录包括交易记录ID、购电用户ID、售电用户ID、购电用户私钥签名、售电用户私钥签名、交易单价、交易量以及交易金额;
步骤II.3中,拜占庭共识验证包括预准备阶段以及准备阶段两个过程;其中:
预准备阶段过程如下:
交易发起节点将能源交易记录发送给共识组节点,共识组节点验证能源交易记录中的私钥签名以及交易金额,验证通过之后,对能源交易记录进行背书;
准备阶段过程如下:
每个共识组节点将背书之后的能源交易记录发送给除自身之外的其他共识组节点;
共识组节点验证收到的已背书的能源交易记录,若收到的记录数量大于2f+1,则生成对应能源交易记录的共识结果消息;
其中,共识结果消息指的是包含能源交易记录的确认消息,3f+1≥n。
优选地,步骤II.5中,共识结果判定并存储是指节点收集到的共识结果消息的数量若大于n/2,则判定为正确消息,并将能源交易记录存储到本地区块链中;
步骤II.5中,信誉值列表是指对应区域能源互联网中所有区块链节点信誉值的列表。
本发明具有如下优点:
1.本发明依据节点信誉值和随机数值动态选取共识组节点,既降低了共识组节点出现拜占庭节点的概率,又避免了固定共识组节点导致的共识组节点过度中心化的问题;
2.由于本发明采用的是局部定量、高信誉值节点(共识组节点)参与共识,因而,有效地避免了PBFT共识算法中共识组节点数量增多,导致共识效率降低的问题;
3.由于微电网内部交易自主共识,提高了区域能源互联网场景下微电网的可扩展性。
4.由于本发明动态选取共识组节点,且多组共识组节点能够并发参与共识,有效缓解了采用固定共识组节点时的共识压力,同时大大降低了共识组节点被攻击的可能性。
附图说明
图1为本发明实施例中应用于区域能源互联网的区块链共识方法的流程示意图;
图2为本发明实施例中基于多个微电网组建的区域能源网的场景示意图;
图3为本发明实施例中应用于区域能源互联网微电网内部的区块链共识方法的过程图;
图4为本发明实施例中应用于区域能源互联网微电网外部的区块链共识方法的过程图。
具体实施方式
下面结合附图以及具体实施方式对本发明作进一步详细说明:
实施例
如图1所示,本实施例述及了一种应用于区域能源互联网微电网的区块链共识方法。
在介绍本发明方法之前,先介绍一下本实施例中组建的区域能源互联网结构。如图2所示,本实施例中的区域能源互联网由多个独立的微电网组建而成。
每个微电网内部均包含多个能源发、售电接入主体及与它们一一对应的售电节点,以及多个能源购电接入主体及与它们一一对应的购电节点。
为了方便对本实施例进行说明,假定组建的区域能源互联网是由四个微电网组成,分别是微电网1、微电网2、微电网3以及微电网4,如图2所示。
各个微电网的结构相互独立,以微电网1为例说明各个微电网的组成结构。
在微电网1中,能源发、售电接入主体包括风力发电设备和太阳能光伏发电设备,其中,风力发电设备和太阳能光伏发电设备对应的区块链节点为售电节点;购电接入主体包括办公写字楼、居民别墅,其中,办公写字楼、居民别墅对应的区块链节点则为购电节点。
各个区块链节点地位平等且均可进行可信通信,每个区块链节点具有一个信誉值属性,通过智能合约依据节点参与共识过程的背书结果对信誉值进行调整。
例如,若微电网4为新加入的微电网,微电网4中各个接入主体对应的区块链节点的信誉值均为初始值100,且节点与区域能源互联网中所有节点平等可信通信。
信誉值是指依据节点参与共识的历史数据得出的诚信度。
每次共识结束之后,通过智能合约依据其背书结果,对信誉值的大小进行更新,即若节点背书结果与最终结果一致,则信誉值+1,否则信誉值-10。
每个新加入的区块链节点的信誉值的初始值为100,信誉值达到100之后不再增加。
本实施例中能源交易场景包括微电网内部交易和外部交易场景,微电网内部交易由微电网内部的节点完成共识;微电网外部交易由参与交易的多个微电网内部节点完成共识。
针对能源交易场景的不同,本发明实施例中应用于区域能源互联网微电网的区块链共识方法,包括微电网内部交易共识方法以及微电网外部交易共识方法。
下面对以上两种能源交易场景下的共识方法进行分别说明。
以微电网1为例,若能源交易是单个微电网内部的交易,则其共识过程如图3所示,一种应用于区域能源互联网微电网内部交易的区块链共识方法,包括如下步骤:
I.1.从微电网1内部动态选取n个节点作为共识组节点,其选取过程如下:
I.1.1.选取微电网内部,除交易节点之外所有信誉值达标的节点。其中,信誉值达标的节点是指信誉值超过设定的信誉值阈值T0的节点,70≤T0<100。
在本实施例中,可以将信誉值阈值T0设定为70。
I.1.2.利用随机算法为选取的每个信誉值达标的节点分配一个随机数值X。本实施例中随机算法可采用现有技术中常见的随机算法,此处不做具体限制。
其中,随机数值X的取值范围为:T0≤X≤100。
由随机数值X的取值范围能够看出,本实施例为每个信誉值达标的节点分配的随机数值的取值范围与信誉达标值的节点的信誉值范围相当,其好处在于:
使得随机数值与信誉值数量级相当,使两者对共识组节点选举产生的影响相同。
I.1.3.将选取的每个信誉值达标的节点的信誉值与为该信誉值达标的节点分配的随机数值相加,并按照由大到小的顺序对相加后的结果进行排序。
I.1.4.从相加后的结果中按照由大到小的顺序选取前n个,将与这n个结果一一对应的n个信誉值达标的节点,作为参与本次微电网内部交易共识过程的共识组节点。
本发明基于信誉值和随机数值动态选取共识组节点的好处在于:
平衡共识组节点选举时信誉值与随机数值的比重,保证所有信誉值达标节点均有参选为共识组节点的机会,避免只靠信誉值选举共识组节点而出现超级节点的情况。
经过上述过程,选出的n个共识组节点均为高信誉值节点,其中,n为自然数。
由于本实施例采用局部定量、高信誉值节点,参与微电网内部交易共识,因而,有效地避免了PBET共识算法中因共识组节点数量增多,导致的共识效率降低的问题。
I.2.交易发起节点,私钥签名能源交易记录,并将其广播至所有共识组节点。
其中,交易发起节点,是指发生交易的微电网内部的购电节点,例如,若能源交易是微电网1内部交易,则购电节点为微电网1内部的购电节点。
能源交易记录具体信息如表1所示。
表1能源交易记录
由上述表1可知,能源交易记录包括交易记录ID、购电用户ID、售电用户ID、购电用户私钥签名、售电用户私钥签名、交易单价、交易量以及交易金额。
I.3.所有共识组节点针对能源交易记录进行拜占庭共识验证。
拜占庭共识验证包括预准备阶段以及准备阶段两个过程,如图3所示。
其中,预准备阶段过程如下:
交易发起节点将能源交易记录发送给共识组节点,例如图3中共识组节点1、2、3。共识组节点验证能源交易记录中的私钥签名以及交易金额,验证通过之后对能源交易记录背书。
准备阶段过程如下:
每个共识组节点将背书之后的能源交易记录发送给除自身之外的其他共识组节点。
例如,共识组节点1为能源交易记录背书之后,将其发送给共识组节点2、3;共识组节点2为能源交易记录背书之后,将其发送给共识组节点1、3;
同理,共识组节点3为能源交易记录背书之后,将其发送给共识组节点1、2。
各个共识组节点验证收到的已背书的能源交易记录,若收到的记录数量大于2f+1,则生成对应能源交易记录的共识结果消息。
其中,共识结果消息指的是包含能源交易记录的确认消息,其中,3f+1≥n。
I.4.每个共识组节点分别将经过拜占庭共识验证后生成的对应能源交易记录的共识结果消息,广播至区域能源互联网中除自身之外的其他节点。
区域能源互联网中除自身之外的其他节点包括交易发起节点、其他共识组节点、除交易发起节点和共识组节点之外的其他微电网内部节点以及微电网外部节点。
其中,微电网外部节点,是指除微电网1之外的其他微电网中的所有节点。
I.5.区域能源互联网中所有节点依据收到的共识结果消息,进行共识结果判定并存储,同时修改本地信誉值列表中各个所述共识组节点的信誉值。
其中,共识结果判定并存储是指节点收集到的共识结果消息的数量若大于n/2,则判定为正确消息,并将能源交易记录存储到本地区块链中;
信誉值列表是指对应区域能源互联网中所有区块链节点信誉值的列表。
在区域能源互联网内部交易时,本实施例采用局部定量、高信誉值的节点参与共识,由于少量的节点参与共识过程,利于保证共识效率,同时保证了共识结果的准确性。
在本实施例中,若能源交易是微电网外部交易,例如,微电网1中某个购电节点购买微电网2中某个售电节点的电能,则其共识过程如图4所示。
一种应用于区域能源互联网微电网外部交易的区块链共识方法,包括如下步骤:
II.1.从参与交易的多个微电网中动态选取n个节点作为共识组节点,选取过程如下:
II.1.1.将n个共识组节点的名额平均分配或者相对平均的分配给参与交易的各个微电网,然后从各个微电网中依次选取相应数量的共识组节点。
例如,假定共识组节点n的数量有8个,参与交易的微电网有两个,则每个微电网分配4个共识组节点名额;此时,共识组节点名额为平均分配给两个微电网。
假定共识组节点n的数量有9个,参与交易的微电网有两个,则一个微电网分配4个名额,另一个分配5个名额;此时,共识组节点的名额相对平均的分配给两个微电网。
本实施例通过将n个共识组节点的名额平均分配、或者相对平均的分配给参与交易的各个微电网,利于保证选举过程的公平。
设定参与交易的微电网数量为m,第i个微电网分配的共识组节点数量为n
则第i个微电网中共识组节点的选取过程如下述步骤II.1.2至步骤II.1.5所示。
II.1.2.选取第i个微电网内部,除交易节点之外所有信誉值达标的节点;其中,信誉值达标的节点是指信誉值超过设定的信誉值阈值T0的节点,70≤T0<100。
在本实施例中信誉值阈值T0设定为70。
II.1.3.利用随机算法为选取的每个信誉值达标的节点分配一个随机数值X;本实施例中随机算法可采用现有技术中常见的随机算法,此处不做具体限制。
其中,随机数值X的取值范围为:T0≤X≤100。
由随机数值X的取值范围能够看出,本实施例为每个信誉值达标的节点分配的随机数值的取值范围与信誉达标值的节点的信誉值范围相当,其好处在于:
使得随机值与信誉值数量级相当,使两者对共识组节点选举产生的影响相同。
II.1.4.将选取的每个信誉值达标的节点的信誉值与为该信誉值达标的节点分配的随机数值相加,并按照由大到小的顺序对相加后的结果进行排序。
II.1.5.从相加后的结果中按照由大到小的顺序选取前n
II.1.6.待各个微电网内部共识组节点选取完成后,将所有参与交易的微电网中选出的共识组节点,总共n个,作为参与本次微电网外部交易共识过程的共识组节点。
本发明基于信誉值和随机数值动态选取共识组节点的好处在于:
平衡共识组节点选举时信誉值与随机值的比重,保证所有信誉值达标节点均有参选为共识组节点的机会,避免只靠信誉值选举共识组节点而出现超级节点的情况。
经过上述过程,选出的n个共识组节点均为高信誉值节点。
由于本实施例采用局部定量、高信誉值节点,参与微电网内部交易共识,因而,有效地避免了PBET共识算法中因共识组节点数量增多,导致的共识效率降低的问题。
II.2.交易发起节点,私钥签名能源交易记录,并将其广播至所有共识组节点。
其中,交易发起节点是参与能源交易的微电网内部的购电节点,例如微电网1购买微电网2中某个节点的电能,则交易发起节点为微电网1中的购电节点。
能源交易记录具体信息如表2所示。
表2能源交易记录
由上述过程看出,能源交易记录包括交易记录ID、购电用户ID、售电用户ID、购电用户私钥签名、售电用户私钥签名、交易单价、交易量以及交易金额。
II.3.所有共识组节点针对能源交易记录进行拜占庭共识验证。
拜占庭共识验证包括预准备阶段以及准备阶段两个过程,如图4所示。
其中,预准备阶段过程如下:
交易发起节点将能源交易记录发送给共识组节点,例如图4中共识组节点1、2、3,共识组节点验证能源交易记录中的私钥签名以及交易金额,验证通过之后对能源交易记录背书。
准备阶段过程如下:
每个共识组节点将背书之后的能源交易记录发送给除自身之外的其他共识组节点。
例如,共识组节点1为能源交易记录背书之后,将其发送给共识组节点2、3;共识组节点2为能源交易记录背书之后,将其发送给共识组节点1、3;
同理,共识组节点3为能源交易记录背书之后,将其发送给共识组节点1、2。
共识组节点验证收到的已背书的能源交易记录;若收到的记录数量大于2f+1,则生成对应能源交易记录的共识结果消息;
其中,共识结果消息指的是包含能源交易记录的确认消息,其中,3f+1≥n。
II.4.每个共识组节点分别将经过拜占庭共识验证后生成的对应能源交易记录的共识结果消息,广播至区域能源互联网中除自身之外的其他节点。
区域能源互联网中除自身之外的其他节点包括交易发起节点、其他共识组节点、参与交易的各个微电网中除交易发起节点、共识组节点之外的其他节点以及微电网外部节点。
参与交易的各个微电网中除交易发起节点、共识组节点之外的其他节点,在本实施例中,例如是指微电网1和微电网2中除交易发起节点、共识组节点之外的其他节点。
而微电网外部节点,则是指除微电网1和微电网2之外的其他微电网内部的节点。
II.5.区域能源互联网中所有节点依据收到的共识结果消息,进行共识结果判定并存储,同时修改本地信誉值列表中各个共识组节点的信誉值。
其中,共识结果判定并存储是指节点收集到的共识结果消息的数量若大于n/2,则判定为正确消息,并将能源交易记录存储到本地区块链中;
其中,信誉值列表是指对应区域能源互联网中所有区块链节点信誉值的列表。
在区域能源互联网外部交易时,本实施例也采用局部定量、高信誉值的节点参与共识,由于少量的节点参与共识过程,利于保证共识效率,同时保证了共识结果的准确性。
由于本发明实施例动态选取共识组节点,且多组共识组节点能够并发参与共识,因而,有效缓解了采用固定共识组节点时的共识压力。
其中,上文中述及的多组共识组节点能够并发参与共识,具体是指:同一时刻在整个区域能源互联网中,有多组共识组节点对多个能源交易进行并发共识。
此外,由于每组共识组节点只针对某个具体的能源交易,各组共识组节点的选取具有随机性,并不是一成不变的,因此,极大地降低了共识组节点被攻击的可能性。
本发明在节点数量不断增多的情况下,既保证了去中心化场景下的共识效率,又保证了共识结果的准确性,同时,共识机制的可扩展性也保证了微电网添加与退出的便利性。
当然,以上说明仅仅为本发明的较佳实施例,本发明并不限于列举上述实施例,应当说明的是,任何熟悉本领域的技术人员在本说明书的教导下,所做出的所有等同替代、明显变形形式,均落在本说明书的实质范围之内,理应受到本发明的保护。
- 一种应用于区域能源互联网的区块链共识方法
- 一种应用于基于区块链的人员考核系统的共识方法