一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于电网区块链的共识方法与流程

2021-11-09 21:07:00 来源:中国专利 TAG:


1.本发明属于电网区块链技术领域,具体涉及了一种基于电网区块链的共识方法。


背景技术:

2.近年来,我国电力行业有了飞速发展,我国是一个产电用电大国。这些年来,电力企业的交易账单管理也发生了巨大的变化,从最早的手工记账、软件记账,到业务系统管理记账,电力行业记账能力在逐步提高,但是仍然存在着或多或少的问题,例如中心化的管理缺乏灵活性,电力交易账单数据更新不及时,电力交易不透明,交易双方需要建立信任机制,集中的存储架构存在人为修改账单的可能。
3.近年迅速发展的区块链技术为电网管理提供了一种新思路。通常区块链共识过程可分成两步:第1步挑选一个特定的节点用于创建一个区块,保证其准确无误地加入到区块链中;第2步由所有节点对分布式数据记录达成共识,没有分歧,甚至防止恶意入侵。常用的共识机制有:工作量证明pos、权益证明pow、工作量 权益的混合证明(pos pow)、股份授权证明dpos、瑞波共识协议rcp等。
4.工作量证明(pow)即根据节点的算力和工作量的多少来达成共识。pow共识机制中,节点如要获取创建新区块的资格就必须一直不停的耗费自身算力去执行哈希计算,直至随机数符合预期的要求。
5.权益证明(pos)根据节点拥有的一定数量加密货币的所有权来达成共识。pos共识机制中,节点需要存入一定数量的电子货币作为权益才有可能成为验证者,相当于在区块链中保证金。
6.2012年出现的peercoin使用了pow pos的混合机制,其中pow机制负责产生新币,pos机制负责保证全网的安全性。
7.股份授权证明(dpos)机制使用股东(又称代表、证人)来达成共识,由固定的算法来随机挑选股东去创建区块,节点被选中为股东的几率与其账户资产有关。
8.瑞波共识协议(rcp)使用一组特定的节点列表来达成共识,每当加入一个新的节点,就需要特殊节点列表中超过一定数量的成员同意。
9.恒星共识协议(stellar consensus protocol,scp)使用若干节点组成受信任的组(又称仲裁切片),只有这些受信任的节点同意的交易才能被验证。pi币使用恒星共识协议。
10.因此,将区块链用于智能电网是可行的,但是现有区块链的共识机制并不适合电网的交易系统。首先,pow也会造成算力和能源的浪费,节点并非专注于分布式记账。另外,个别矿池的算力过度集中,比如占全部算力的50%或更多,也有可能造成安全隐患。其次,pos中权益的数量与该节点被选为验证者的几率是线性相关的,只有高权益的节点才可创建下一个区块。pow pos混合机制中,任何一个货币拥有者都有可能挖矿成功,更容易形成区块链分叉。再次,dpos交易需要确保每个被签名的区块获得一个受信任节点的签名,随着时间推移,账户资产较多的少数节点就有可能把控创建区块的权利。另外,瑞波共识协议
(rcp)使用一组特定的节点列表来达成共识,随着时间推移,特定的节点列表就有可能把控创建区块的权利。另外,恒星共识协议(scp)需要若干节点组成受信任的组,仍然存在控制区块创建的可能。最后,上述区块链共识机制,无法提供足够的灵活,互不信任的机构所发出的电力难以通过电网实现共享和交易。
11.现在市场上传统的集中式电力行业记账机制无法解决电力交易的去信任问题,而传统的区块链共识方法也无法为电网交易提供安全、可靠的交易机制。至目前为止,市场上尚未有基于电网区块链的共识方法。


技术实现要素:

12.本发明的目的是为了主要解决在去信任的电网系统中安全交易和可靠共识问题,而提出了一种基于电网区块链的共识方法。
13.一种基于电网区块链的共识方法,
14.步骤1,电网节点广播电力交易订单;
15.步骤2,候选区块封装电力交易订单;
16.步骤3,候选区块提交电量证明;
17.步骤4,候选区块电力交易记账;
18.步骤5,电网节点共识验证;
19.步骤6,电网区块链添加电网区块。
20.在步骤1中,电网节点广播电力交易订单;电网用户每产生一笔新的电力交易,则将该笔电力交易订单向电网进行全网广播;
21.在步骤2中,候选区块封装电力交易订单;收到广播的所有电网节点在本节点上建立一个候选区块,并将收到的电力交易订单封装到本地的一个候选区块中;进一步地,本节点将所有其他节点广播的电力交易订单均封装在一起,即在同一个候选区块中;
22.在步骤3中,候选区块提交电量证明;所有电网节点均在自己的候选区块中提交电量证明,以便竞争记账权;
23.在步骤4中,候选区块对电力交易订单记账;当某个电网节点完成了电量证明,便在本节点的候选区块创建电力交易订单的账本,并将本节点的电量证明和电力交易订单的账本封装起来向电网广播,供全网进行共识;
24.在步骤5中,电网节点共识验证;电网节点对电力交易订单进行电量传输和电量使用;电网上其他电网节点验证该电网节点的电量证明和电力交易订单记账,并与各自节点中候选区块的封装信息进行对比;
25.在步骤6中,电网区块链添加电网区块;如果电网上所有电网节点对电量证明和电力交易记账均验证通过,便可将该候选区块添加到电网区块链中;否则,电网节点放弃该笔交易记账和区块创建,未接入电网区块链的电网节点删除本地的候选区块。
26.上述电网,指的电力系统中各种发电单元、变电单元、输配电单元、用电单元组成的电力网;进一步地,电网由不同单元的节点组成,即电网节点;
27.上述电网节点,指电网中各种发电单元、变电单元、输配电单元、用电单元的节点;进一步地,单个电网节点均具有通信功能和记账功能,能够创建候选区块,能够参与共识机制和竞争记账权;
28.上述候选区块,指电网节点中创建的临时性数据区块,具有记账功能,但在未被所有节点共识之前,候选区块只是暂时存在;进一步地,如果某个候选区块被所有电网节点共识,则该节点中的候选区块会被链接入电网区块链,并转为正式的电网区块;进一步地,未被所有电网节点共识的候选区块,则在共识过程结束后会被删除;
29.上述电网区块链,指电网中分布式数据区块组成的链式数据库,由地理上分布的电网区块组成;进一步地,电网区块链记载了所有被共识的交易账本,能够运行智能合约完成电力交易过程;
30.上述电网区块,指电网区块链的基本组成单元,所有区块前后互相连接,共同组成区块链;进一步地,每一个电网区块都是一个交易账本,记载了被共识的电网交易记录;
31.上述电力交易订单,指电网供电和用电双方之间就电力使用达成的交易凭证,电力交易订单记载了电力交易的时间戳,发电单元名称,用电单元名称,发电量的数值或使用电量的数值,电力交易订单编号;进一步地,电力交易订单能够加密方式记录本次订单交易使用的发电单元、变电单元、输配电单元、用电单元;
32.上述电量证明,指电力系统中各种发电单元、变电单元、输配电单元、用电单元对电网的贡献证明;进一步地,发电单元通过向电网发电来提供电量证明,发电量的多少决定了电量证明的数值大小;进一步地,变电单元通过向电网变电来提供电量证明,变电量的多少决定了电量证明的数值大小;进一步地,输配电单元通过向电网输配电来提供电量证明,输配电量的多少决定了电量证明的数值大小;进一步地,用电单元通过电网消耗电量来提供电量证明,使用电量的多少决定了电量证明的数值大小;优选地,电量证明允许电网中所有具有计算功能的设备参与电力交易记账和区块链构建。
33.在步骤1中,参与电力交易的电网节点可以是发电单元,也可以是用电单元,即是产销者;进一步地,电网节点根据电力交易订单预测可售电量为e,其中电网节点的可售电量等于发电量减去用电量,同时电网区块链为电网节点a生成产消者的2个密钥bα和bβ,并将其记录在电网区块链的数据库中。
34.在步骤2中,在封装电力交易订单时,电网节点使用加密的方式进行封装;优选地,两个电网节点a和b使用相应的公钥和私钥创建一对新地址:μaddr1和μaddr2;其中,μaddr1为交易地址,用于两个电网节点a和b执行电力交易;μadr2为匿名通信地址,通过匿名信息流的方式实现匿名通信,并可传输隐私和保密的信息。
35.优选地,在电网节点a生成密钥bα和bβ后,电网节点b使用sha256生成一个静态密钥j
α
和一个临时密钥j
γ

36.j
α
=sha256(pubkeyzb||e||pubkeyppb||timestamp)
37.j
γ
=sha256(hα||ramdomnumber)
38.其中,sha256(
·
)为哈希函数;pubkeyb为电网节点b的公钥信息;timestamp为时间戳;pubkeyppb为电网节点b对应的发电设备的公钥;randomnumber为随机数;j
α
是静态密钥,用于验证电网节点b对可售电量e的所有权;j
γ
是临时密钥,又称动态密钥,用于锁定以防止双重支付电量e;电网区块链向电网节点b的地址μaddr2发送消息j
α
和j
γ
,然后电网节点b使用μaddr2向全网广播电力交易信息,电网节点b的广播函数为i1(e,p,μaddr1b,μaddr2b),包含电网节点a可售电量e、保留价格p、交易地址μaddr1b以及匿名消息流地址μaddr2b。
39.在步骤3中,所有候选区块均可提交电量证明竞争记账权;进一步地,所有电网节点,包括各种发电单元、变电单元、输配电单元、用电单元的节点,均具有同等的记账权;进一步地,发电单元的发电量,变电单元的变电量,输配电单元的输配电量,用电单元的使用电量,均具有同等的电量证明,能够有效防止记账权过度集中在某个或某些电网节点上,也可有效防止攻击;优选地,电量证明的计算过程,需要考虑每个电网节点在电网中的工作时间长短,不同时段的电量大小,以及在不同的电力交易订单中服务质量的好坏;进一步地,在电网中工作时间越长,电量证明数值越大,电力交易订单服务质量越好的节点,越容易竞争到记账权;优选地,电量证明可以根据实际需要选择是否考虑不同时段、不同地域、不同发电单元的阶梯电价;优选地,电量证明中增加一个随机变量,防止攻击者利用计算电量证明的方式预测记账节点并攻击记账节点;
40.在步骤4中,当某个电网节点b完成了电量证明和候选区块创建后,使用μaddr2b加密电力交易订单的账本,并向电网上其他电网节点全网广播,每个电网节点都会收到该电网节点b的广播信息;如果电网节点a根据需要参与电网节点b的电量交易,则电网节点a使用匿名地址μaddr2向电网区块链发送消息,要求验证电网节点b对电量e的所有权证明,电网区块链验证数据库记录并回复真假;验证成功后,电网节点b会向电网节点a所售电量进行交易,电网节点a使用匿名地址μaddr2向电网中广播匿名竞价信息,其竞价函数为η(μaddr2a,μaddr2b,e1,p1),其中e1为电网节点b想要交易的电量,p1为电网节点a交易该电量的出价;
41.进一步地,电网根据收到的出售信息和竞价信息进行订单匹配;进一步地,电网完成电力交易订单匹配,进行电力交易订单账本的全网广播,广播函数为i1(μaddr2a,μaddr2b,e

,p1)。为了防止双重支付电量e

,系统会对电量e1进行上锁,锁定请求消息由电网节点b发送到电网中,其中包含证明电网节点b所有权的密钥j
γ
。锁定请求直到电量交易成功,当更换电量的所有权时取消锁定;锁定电量e1后,电网节点b和电网节点a将同时确认电力交易订单的交易细节并写入智能合约中;优选地,电网节点a和b共同支付一定的手续费。
42.在步骤5中,所有电网节点参与该笔电力交易订单账本的共识验证,共识过程由智能合约自动执行;电网节点b需向智能合约写入函数为ψ(μaddr1b,j
γ
,pubkeyppb),电网节点a需向智能合约写入函数定义为ψ(μaddr1a,p1);当交易双方中的任何一方没有向智能合约发送相应的信息时,智能合约生成失败,该笔电力交易订单交易不成功;进一步地,智能合约生成后,智能合约会将电量所有权证明密钥j
γ
、pubkeyppb发送给电网节点a的匿名消息地址μaddr2a;电网节点a用匿名消息地址μaddr2a向电网区块链发送共识请求a(j
γ
,pubkeyppb,unlock,update),电网区块链接收到信息并验证j
γ
,解锁请求并生成一对新的密钥t
α
和t
γ
分别替换j
α
和j
γ
,其中,t
α
和t
γ
分别如下式所示:
43.t
α
=sha256(pubkeya||e1||pubkeyppb||timestamp);
44.t
γ
=sha256(t
α
||randomnumber);
45.此时,电网节点b的使用电量所有权属于电网节点a,电网节点b可以使用t
α
和t
γ
来消耗电量e
11
;其中可能会出现特殊的情况,电网节点a所售电量可以同时满足2个电网节点b和c,甚至更多电网节点,即,两个以上的电网节点b、c和电网节点a,以及本次电力交易订单使用的变电单元的电网节点,输配电单元的电网节点,均具有同等的电量证明,均可竞争本次交易的记账权;进一步地,经过智能合约匹配后,电网节点a所售电量e可以同时满足电网
节点b和c的需求,电网节点a的可售电量e并将其分成e
11
和e
12
两部分;进一步地,电网区块链可以为2个电网节点b和c创建2个j
α
密钥,按照下式所示等式生成每一个新密钥;
46.j
α 1
=sha256(j
γ
||e1/e);
47.进一步地,新密钥生成后,进入电量物理传输阶段,在该阶段内电网节点b使用新密钥t
α
和t
γ
来消耗电网节点a所产生的电量;所有节点进行解密,按照智能合约继续进行共识;进一步地,电力供应更多电网节点的情形可以类推;电网上所有电网节点接到广播消息,均参与验证该电网节点的电量证明和电力交易订单记账,并与本节点中候选区块的封装信息进行对比。
48.在步骤6中,所有电网节点对比后确认该广播消息与本地的封装信息是否一致,如是则返回消息1,如否则返回消息0;如果所有电网节点均返回消息1,本次电量证明和电力交易订单记账的共识才算成功;进一步地,本次电力交易订单规定的电量传输时间截止后,智能合约向双方的智能电表查询电量传输信息,智能合约根据智能电表所发送的电量传输信息进行电量结算,并核对是否完全履行本次电力交易订单的情况和服务质量进行计算;当电网节点a所产生或传输的电量小于电力交易订单约定的电量时,智能合约会减少电网节点a的服务质量值,并对电网节点a的服务质量值进行更新;当电网节点b使用电量大于智能合约约定的电量时,智能合约会将重新将电力交易订单发送给电网节点a,并重新评估服务质量;进一步地,在电网中工作时间较长,电量证明数值较大,电力交易订单服务质量越高,随机值越大的电网节点可竞争到记账权,将该电网节点对本次电力交易订单进行记账的候选区块连接到电网区块链;进一步地,其他电网节点失去本次记账权,删除本地节点上的候选区块。
49.电网由多个电网节点互相连接组成,电网节点通过电力交易订单进行交易,电网节点可以创建候选区块进行临时记账,电网节点通过电量证明竞争记账权,最终的电力交易记账经过共识后保存在电网区块中,多个电网区块互相连接组成电网区块链。
50.与现有技术相比,本发明具有如下技术效果:
51.1)本发明能够实现安全的电力交易而无需预先建立信任机制。本发明所述电网区块链具有自信任特性,分布于区块链中的所有用户均无须信任交易的任一方,也无须使用一个受信任的中心化机构,只需要信任区块链共识协议下的硬件系统和软件系统即可实现双方或更多方的电力交易。
52.2)本发明是去中心化的。本发明所述电网区块链无需中心化机构,所有节点具有各自独立的利益并互相竞争,所有互不信任的节点进行合谋欺骗是几乎不可能的。当所有节点在网络中拥有公共信誉时,便可在电网区块链节点之间建立信任网络,仅仅通过技术背书便可构建全新的信用体系,不再要求中心化的信用机构。
53.3)本发明具有更好的安全性。本发明的记账权依赖于电力的生产和电量消费,可以有效防止二次支付、自私挖矿等攻击,具有良好的容错能力。以电力交易为驱动的电网区块链在实现一致性共识的过程中,最主要的风险就是二次支付行为和自私挖矿行为(即通过采用适当的策略发布自己产生的区块,获得更高的相对收益,也会威胁电网区块链安全性和公平性)。此外,本发明记账权分布于各种发电单元、变电单元、输配电单元、用电单元的节点,还能够阻止eclipse攻击(即将目标对象的网络通信形成网络分区,阻隔交易传播)和sybil攻击(即生产大量无意义的节点来破坏系统安全性)。
54.4)本发明具有更好的扩展性。本技术方案支持网络节点扩展,便于电网区块链的推广应用。扩展性通常分为系统成员数量的增加和交易订单数量的增加两大类,本技术方案使用各种发电单元、变电单元、输配电单元、用电单元的节点竞争记账权,在两类扩展性上均有优势。对于电网区块链,当系统成员数量、待确认交易数量增加时,本技术方案带来的系统负载和网络通信量的变化更小,具有较低的网络吞吐量。
55.5)本发明具有更好的性能效率。对于电网区块链,从交易达成共识被记录在区块链中至被最终确认的时间延迟,决定了系统每秒可处理的交易数量多少。与传统第三方支持的交易平台不同,本发明所述的电网区块链通过基于电量交易的共识机制达成一致,有助于提高其性能效率。而传统的共识机制远远无法支持电网交易的业务量,例如比特币系统每秒最多处理7笔交易,大量的算力浪费在争夺记账权上。
56.6)本发明具有更低的资源消耗。本技术方案在达成共识的过程中,系统所要耗费的计算资源不高,包括cpu、内存、网络等。本技术方案可以使用各种发电单元、变电单元、输配电单元、用电单元的节点进行记账,而且本技术方案所的述的电网区块链共识机制并非借助计算量或计算资源达成共识,无需配置计算能力强大的计算节点,资源消耗远远低于传统的共识机制。例如比特币系统,基于工作量证明pow的共识机制需要消耗大量计算资源进行挖矿,才可完成共识。
附图说明
57.下面结合附图和实施例对本发明作进一步说明:
58.图1为本发明的结构示意图;
59.图2为本发明的工作方法流程图。
具体实施方式
60.图1为本发明的结构示意图;包括电网100,电网节点101,候选区块102,电网区块链200,电网区块201,电力交易订单300,电量证明301;
61.所述电网100,优选地,使用现有电力系统中各种发电单元、变电单元、输配电单元、用电单元组成的电力网;所述发电单元,包括火电,核电,水电,风电,太阳能,潮汐能等,能够提供电力供应的各类发电厂,以及配套的计算机、存储器、智能电表、仪器和仪表;所述变电单元,包括各类高低压变压器,电路切换回路,变电站,变电所,以及配套的计算机、存储器、智能电表、仪器和仪表;所述输配电单元,包括各类高低压输电线路,配电柜,配电站,以及配套的计算机、存储器、智能电表、仪器和仪表;所述用电单元,包括厂矿,企业,社区,以及配套的计算机、存储器、智能电表、仪器和仪表;
62.所述电网节点101,优选地,使用现有电网100中各种发电单元、变电单元、输配电单元、用电单元的节点;进一步地,单个电网节点101可使用具有通信功能和记账功能的计算机、存储器、智能电表、仪器和仪表;
63.所述候选区块102,优选地,在电网节点101中计算机、存储器、智能电表、仪器和仪表中存储区域创建的临时性数据区块;进一步地,电网节点101取得记账权后,候选区块102便转化为永久区块,接入电网区块链200中;进一步地,未转化为永久区块的候选区块102在共识结束后被删除;
64.所述电网区块链200,优选地,使用电网100中计算机、存储器、智能电表、仪器和仪表中存储区域建立分布式数据区块,并前后互相连接组成链式数据库;优选地,电网区块链200使用mysql建立分布式数据库;
65.所述电网区块201,优选地,在电网节点101中计算机、存储器、智能电表、仪器和仪表中存储区域创建的永久性数据区块;进一步地,只有电网节点101取得记账权后,该节点中的候选区块102才可转化为永久性的电网区块201,接入电网区块链200中;
66.所述电力交易订单300,优选地,在电网节点101中计算机、存储器、智能电表、仪器和仪表中存储区域创建的临时性交易凭证,记载了电力交易的时间戳,发电单元名称,用电单元名称,发电量的数值或使用电量的数值,电力交易订单编号;进一步地,电力交易订单300能够加密方式记录本次订单交易使用的发电单元、变电单元、输配电单元、用电单元,以便提供电量证明竞争记账权;进一步地,经过共识的电力交易订单300可以永久形式保存在电网区块链200的电网区块201上。
67.所述电量证明301,优选地,在电网节点101中计算机、存储器、智能电表、仪器和仪表中存储区域创建的临时性电量凭证,进一步地,经过共识的电量证明301可以永久形式保存在电网区块链200的电网区块201上。
68.图2为本发明的工作方法流程图。对于本发明的一个实施例,假设e
a
为电网节点101a出售的电量,e
b
为产消者b购买的电量。在所述方法中,消费者与发电单元使用区块链信息系统进行匿名通信以及电量的售出和交易,利用智能合约进行电量所有权密钥与代币的交换。所述方法包括6个步骤,主要步骤如下:
69.步骤1,电网节点101广播电力交易订单300;可按下式构建电力交易订单300的数据结构:
70.电力交易订单300m={电力交易订单编号,时间戳,发电单元名称,用电单元名称,发电量的数值或使用电量的数值}
71.进一步地,为了给各节点提供电量证明,可以加密函数ek加密本次订单交易使用的发电单元、变电单元、输配电单元、用电单元;
72.电力交易订单300m={电力交易订单编号,时间戳,ek(发电单元编号),ek(变电单元编号),ek(输配电单元编号),ek(用电单元编号),发电量的数值或使用电量的数值}
73.步骤2,候选区块102封装电力交易订单300;
74.候选区块102i封装电力交易订单300={节点1电力交易订单300,节点2电力交易订单300,节点3电力交易订单300,

}
75.步骤3,候选区块102提交电量证明301;
76.候选区块102i的电量证明301={发电/变电/输配电/用电电量数值,电量持续时间,服务质量}
77.记账权的节点=max{电网节点101的电量证明}
78.记账权的候选区块=记账权节点的候选区块102;
79.步骤4,候选区块102对电力交易订单300记账;优选地,使用sha256进行加密,再进行广播;
80.sha256{候选区块账本}=sha256{电力交易订单编号,时间戳,发电单元名称,用电单元名称,实际完成的发电量数值或使用电量数值}
81.对于加密函数ek加密本次订单交易使用的发电单元、变电单元、输配电单元、用电单元的使用电量,可用下式:
82.sha256{候选区块账本}=sha256{电力交易订单编号,时间戳,ek(发电单元编号),ek(变电单元编号),ek(输配电单元编号),ek(用电单元编号),实际完成的发电量数值或使用电量数值}
83.步骤5,电网节点101共识验证;优选地,使用sha256
‑1进行解密;
84.sha256
‑1{候选区块账本}=sha256
‑1{电力交易订单编号,时间戳,发电单元名称,用电单元名称,实际完成的发电量数值或使用电量数值}
85.对于加密函数ek加密本次订单交易使用的发电单元、变电单元、输配电单元、用电单元的使用电量,可用下式进行解密:
86.sha256
‑1{候选区块账本}=sha256
‑1{电力交易订单编号,时间戳,ek(发电单元编号),ek(变电单元编号),ek(输配电单元编号),ek(用电单元编号),实际完成的发电量数值或使用电量数值}
87.解密结束后,各节点对候选区块账本进行核对;
88.if广播的账本=本地候选区块账本,then共识结果=1;else共识结果=0;
89.if所有节点的共识结果=1,then共识成功;else共识失败;
90.步骤6,电网区块链200添加电网区块201;
91.if共识成功,then区块链队尾=记账权候选区块,删除其他候选区块。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献