一种基于区块链的智能电网的交易方法及系统与流程

文档序号:15493679发布日期:2018-09-21 21:10阅读:132来源:国知局

本发明涉及的是一种智能电网的技术领域,特别涉及一种基于区块链的智能电网的交易方法及系统。



背景技术:

智能电网是目前物联网的一个关键应用。智能电网在自发电情况下,通常希望能够与周围邻居节点及时进行电力交易,避免电力的重复传输,提高电力传输效率。传统的智能电网场景里,数据采集基站将无线传感节点采集的电网数据发送给可信中心节点进行存储和共享。一旦可信中心节点发生ddos攻击、单点失效、数据恶意篡改等安全问题,则电网交易信息均被破坏。如何在去中心的情况下进行安全的交易,形成一致共识的交易账本,是一个需要解决的问题,同时,如何有效保护智能电网交易信息不可篡改且可追溯,也是一个需求。



技术实现要素:

针对传统电网输电可信中心节点容易发生ddos攻击、单点失效、数据恶意篡改等安全问题的缺点,本发明提供了一种基于区块链的智能电网的交易方法及系统,用于解决该技术问题。

为了实现上述目的,本发明提供了一种基于区块链的智能电网的交易方法及系统,所述方法包括如下步骤:

s1、传感节点sp根据用户节点up需求自动产生电力价格price;

s2、用户节点up自动向传感节点sp创建交易,将交易信息data和签名signup发送至各代表节点p’;

所述交易信息data包括:本次创建的交易的输入地址ip、本次交易的输出地址op、本次交易的电量e、本次交易的金额s及本次交易的地址hash值;

所述signup包括:用户私钥对交易信息的签名;

所述代表节点p’包括:在传感节点sp和用户节点up中随机挑选数目为m个节点,记为代表节点p’;

s3、各代表节点p’收到交易信息data和签名signup后,先对交易信息data和签名signup进行验证,当验证通过时,代表节点p’将交易信息data和签名signup放进同一区块block;

s4、各代表节点p’挑选某节点作为主节点mp,则其余代表节点作为次节点op;主节点mp将区块block和主节点签名signmp发送给各个次节点op,次节点op收到后进行审计和验证,将验证结果resultop发送至其余各个次节点op,各个次节点op将收到的所有验证结果resultop进行对比,将对比结果comparop发送给主节点op,主节点mp汇总所有对比结果comparop后执行上链规则;

所述验证结果resultop包括:审计结果resop,次节点op的数字签名signop;

所述对比结果comparop包括:该次节点的审计结果resop,其余各次节点的审计结果resop’,所有验证结果的对比comop,该次节点对所有结果的数字签名。

本发明的一种基于区块链的智能电网的交易方法中,所述步骤s1中的自动产生电力价格price包括:当用户节点up在一般需求下进行电力交易,电力价格price由瞬时产电量spe和瞬时耗电量sce决定;当用户节点up在紧急需求下进行电力交易,电力价格price在一般需求下的电力价格上随时间t进行上浮。

本发明的一种基于区块链的智能电网的交易方法中,所述步骤s2中自动向传感节点sp创建交易包括:当用户节点up在一般需求下进行电力交易,用户节点up自动选择区域内价格最优的传感节点sp获取电力,创建与该节点sp之间的交易;当用户节点up在紧急需求下进行电力交易,用户节点up自动选择区域内距离最近的传感节点sp获取电力,创建与该节点sp之间的交易。

本发明的一种基于区块链的智能电网的交易方法中,所述步骤s3中代表节点p’将交易信息data和签名signup放进区块block的过程包括:代表节点p’将交易信息data作为元数据bi1,将签名signup作为数据签名bi2,将元数据bi1和数据签名bi2的哈希值作为数据地址bi3,bi1、bi2和bi3构成区块block的区块主体b的一条数据bi。

本发明的一种基于区块链的智能电网的交易方法中,步骤s4中所述上链规则包括:主节点mp根据所有次节点op的对比结果comparop,若所有次节点op都同意上链,则区块block上链;若多数次节点op都同意上链,则主节点mp删除恶意节点的代表权并将区块block上链;若多数次节点op都不同意上链,则重新执行步骤s4,上链后,主节点mp获得交易费和挖矿奖励金,其中,交易费由区块自动计算得出,挖矿奖励金由比特币版本决定。

优选的,本发明还提供一种基于区块链的智能电网的交易系统,包含以下子模块:

电力价格自动产生模块,用于使传感节点sp根据用户节点up需求自动产生电力价格price;

创建交易模块,用于使用户节点up自动向传感节点sp创建交易,将交易信息data和签名signup发送至各代表节点p’;

所述交易信息data包括:本次创建的交易的输入地址ip、本次交易的输出地址op、本次交易的电量e、本次交易的金额s及本次交易的地址hash值;

所述signup包括:用户私钥对交易信息的签名;

所述代表节点p’包括:在传感节点sp和用户节点up中随机挑选数目为m个节点,记为代表节点p’;

验证并放入区块block模块,用于使各代表节点p’收到交易信息data和签名signup后,先对交易信息data和签名signup进行验证,当验证通过时,代表节点p’将交易信息data和签名signup放进同一区块block;

获得交易费和挖矿奖励金模块,用于使得各代表节点p’挑选某节点作为主节点mp,则其余代表节点作为次节点op;主节点mp将区块block和主节点签名signmp发送给各个次节点op,次节点op收到后进行审计和验证,将验证结果resultop发送至其余各个次节点op,各个次节点op将收到的所有验证结果resultop进行对比,将对比结果comparop发送给主节点op,主节点mp汇总所有对比结果comparop后执行上链规则,获得交易费和挖矿奖励金;

所述验证结果resultop包括:审计结果resop,次节点op的数字签名signop;

所述对比结果comparop包括:该次节点的审计结果resop,其余各次节点的审计结果resop’,所有验证结果的对比comop,该次节点对所有结果的数字签名。

本发明的一种基于区块链的智能电网的交易系统中,所述电力价格自动产生模块中包括:当用户节点up在一般需求下进行电力交易,电力价格price由瞬时产电量spe和瞬时耗电量sce决定;当用户节点up在紧急需求下进行电力交易,电力价格price在一般需求下的电力价格上随时间t进行上浮。

本发明的一种基于区块链的智能电网的交易系统中,所述创建交易模块中包括:当用户节点up在一般需求下进行电力交易,用户节点up自动选择区域内价格最优的传感节点sp获取电力,创建与该节点sp之间的交易;当用户节点up在紧急需求下进行电力交易,用户节点up自动选择区域内距离最近的传感节点sp获取电力,创建与该节点sp之间的交易。

本发明的一种基于区块链的智能电网的交易系统中,所述验证并放入区块block模块中将代表节点p’将交易信息data和签名signup放进区块block的过程包括:代表节点p’将交易信息data作为元数据bi1,将签名signup作为数据签名bi2,将元数据bi1和数据签名bi2的哈希值作为数据地址bi3,bi1、bi2和bi3构成区块block的区块主体b的一条数据bi。

本发明的一种基于区块链的智能电网的交易系统中,获得交易费和挖矿奖励金模块中还包含上链规则模块,用于使主节点mp根据所有次节点op的对比结果comparop,若所有次节点op都同意上链,则区块block上链;若多数次节点op都同意上链,则主节点mp删除恶意节点的代表权并将区块block上链;若多数次节点op都不同意上链,则重新执行获得交易费和挖矿奖励金模块,上链后,主节点mp获得交易费和挖矿奖励金,其中,交易费由区块自动计算得出,挖矿奖励金由比特币版本决定。

本发明采用了一种基于区块链的智能电网的交易方法及系统,解决了智能输电的同时能够保护智能电网交易信息,利用区块链技术,提出节点共识算法并设计分布式数据存储方法,可以防范交易信息被篡改,激励电网节点参与上链,保证上链行为的公开公平性。

附图说明

下面将结合附图及实施例对本发明作进一步说明,附图中:

图1为本发明实施例执行流程图;

图2为区块链数据结构图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实例,对本发明进行进一步详细说明。

本发明实施例执行流程见图1,具体为:

(1)用户节点up1在一般情况下需求电力,用户节点up2在紧急情况下m小时内需求电力。

根据瞬时产点量和瞬时耗电量,传感节点sp1,sp2,sp3对up1自动产生电力价格price11,price12,price13。在此基础上根据up2对时间的紧急需求m小时将价格上浮(24-m)*price,传感节点sp1,sp2,sp3对up2自动产生电力价格price21,price22,price23。

(2)随机从所有节点up1、up2、sp1、sp2、sp3中挑选3个节点up2、sp1、sp3作为代表节点,分别记为p1’、p2’、p3’。

用户节点up1自动判断出price1<price2<price3并自动向传感节点sp1创建交易,将交易信息data1(如:本次交易的输入地址ip1(即用户上一个交易的地址)、本次交易的输出地址op1(即传感节点的公钥)、本次交易的电量e1、本次交易的金额s1、本次交易的地址hash1(即本次交易的哈希值hash(ip1||op1||e1||s1)))和签名signup1(data1)发送给代表节点p1’、p2’、p3’。

用户节点up2自动判断出sp2距离<sp1距离<sp3距离,并自动向传感节点sp2创建交易,将交易信息data2(如:本次交易的输入地址ip2(即用户上一个交易的地址)、本次交易的输出地址op2(即传感节点的公钥)、本次交易的电量e2、本次交易的金额s2、本次交易的地址hash2(即本次交易的哈希值hash(ip2||op2||e2||s2)))和签名signup2(data2)发送给代表节点p1’、p2’、p3’。

(3)各代表节点pi’(i=1,2,3)收到交易信息dataj(j=1,2)和签名signupj(dataj)后,先对代表节点p1’、p2’、p3’进行验证。

下面以代表节点p1’对交易信息data1和签名signup1(data1)为例,进行验证并放进区块block1:

代表节点p1’重新计算交易信息的哈希值hash(ip1||op1||e1||s1),发现hash1=hash(ip1||op1||e1||s1),则交易信息未发生改变;代表节点p1’使用up1的公钥去验证签名signup1(data1),发现验证成功,则签名没有发生伪造。因此,p1’对交易信息data1和签名signup1(data1)验证成功。

当验证通过时,代表节点p1’将交易信息data1和签名signup1(data1)作为区块block1内的区块主体b上的一条数据b1。其中,元数据b11=data1,数据签名b12=signup1(data1),数据地址b13=hash(b11||b12)。

同理,当验证通过时,代表节点p2’也将交易信息data2和签名signup2(data2)作为区块block1内的区块主体b上的一条数据b2。

下面以区块block内区块主体b为b1和b2,共识链上上一块区块的hash值为hash为例,创建区块block1:

区块头a为神奇数a1、区块大小a2、区块头信息a3。其中,a3包括:区块版本号信息a31、上一块区块数据的哈希值a32=hash、该区块中区块主体b的哈希值a33=hash(b13||b23)、该区块生成的时间戳a34。

区块主体b为b1和b2,区块链数据结构件见图2。

(4)各代表节点pi’(i=1,2,3)根据pow加入随机数nouce进行计算,最终挑选出节点p1’作为主节点mp,则其余代表节点p2’、p3’作为次节点op。

主节点p1’将区块blockp1’和签名signp1’(blockp1’)发送给p2’和p3’。

次节点p2’和p3’收到后对区块blockp1’进行审计和验证,发现区块的哈希值和签名均可以验证通过,分别得到验证结果resultp2’=(resp2’||signp2’(resp2’))和resultp3’=(resp3’||signp3’(resp3’)),其中resp2’为审计结果。因此p2’将验证结果resultp2’发送至p3’,p3’将验证结果resultp3’发送至p2’。

p2’收到验证结果resultp3’后,先验证p3’签名的有效性,验证成功后,将审计结果resp3’和自身的审计结果resp2’进行对比得到comp2’,将对比结果comparp2’=signp2’(resp2’||resop3’||comp2’)发送给主节点p1’。p3’收到验证结果resultp2’后,先验证p2’签名的有效性,验证成功后,将审计结果resp2’和自身的审计结果resp3’进行对比得到comp3’,将对比结果comparp3’=signp3’(resp2’||resop3’||comp3’)发送给主节点p1’。主节点mp汇总所有对比结果后执行上链规则。

p1’发现p2’和p3’同意上链,则将block1放上共识链。上链后,p1’获得交易费和挖矿奖励金,其中,交易费由区块自动计算得出,挖矿奖励金由比特币版本决定。

上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出若干改进和变形,这些均属于本发明的保护之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1