一种基于区块链的用户电力自主交易系统的制作方法

文档序号:15519184发布日期:2018-09-25 19:00阅读:190来源:国知局

本发明涉及电力市场交易领域,特别是一种基于区块链的用户电力自主交易系统。



背景技术:

区块链(blockchain)是比特币的一个重要概念,本质上是一个去中心化的数据库,同时作为比特币的底层技术。区块链是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一次比特币网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。

狭义来讲,区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。广义来讲,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算范式。

所谓区块链技术,也被称之为分布式账本技术,是一种互联网数据库技术,其特点是去中心化、公开透明,让每个人均可参与数据库记录。用通俗的话阐述:如果我们把数据库假设成一本账本,读写数据库就可以看做一种记账的行为,区块链技术的原理就是在一段时间内找出记账最快最好的人,由这个人来记账,然后将账本的这一页信息发给整个系统里的其他所有人。这也就相当于改变数据库所有的记录,发给全网的其他每个节点,所以区块链技术也称为分布式账本(distributedledger)。

现有的传统智能电网运营模式是通过中心化或区域中心化的供电方式,通过发电站发电在输送至电站,由电站统一调度,按需分配给终端用户;但随着分布式发电以及太阳能与风能发电等清洁的发电方式的技术成熟度提高,用于大型社区或区域化乡镇用户可通过安装太阳能光伏面板、风力发电机或者农村沼气发电设施来实行自主发电,对于发出的富裕电量若与电网交易则需要架设成本较高的输电线路以及维护费用,且用户个体发出的电能容量较小,若经过线路传输,其中的电能损耗必然不可忽视,故如何实现大型社区或区域化乡镇用户个体自主发电的就地消纳问题是需要亟待解决的问题。

基于上述问题,若能实现用户与用户之间自主电力交易,并保障交易过程中的可靠性,安全性,经济性等,则可以很好的解决上述问题。



技术实现要素:

针对上述问题,本发明旨在提供一种基于区块链的用户电力自主交易系统,实现发电的个体用户能够对就近用户自主售电,实现电能的就地消纳,且保证购买用户购买电能的交易过程安全、可靠且交易信息不可篡改。

本发明的目的采用以下技术方案来实现:

本发明提供了一种基于区块链的用户电力自主交易系统,包括有:

用户端电力交易模块,用于卖家发布可售电能容量、电能单价以及卖家信息,还用于买家发起购买请求,并通过与卖家进行通信来完成电能交易。

电力交易管理平台,包括系统网络搭建模块、系统数据存储模块以及交易状态更新模块;所述系统网络搭建模块用于将多个卖家与多个买家之间实现通信连接以及电能输送的连接;所述数据存储模块用于将卖家发布的信息进行存入到交易数据库中,且将该数据库共享给用户;所述交易状态更新模块用于更新卖家与买家之间电力交易的状态,并将该状态写入交易数据库。

电力调度模块,用于对更新后的卖家与买家的交易状态进行实时巡查,一旦查询到卖家与买家的电力交易状态更新为已完成交易,则开始将电能从卖家与买家进行电力调度。

优选地,还包括中央储能电站,用于存储卖家多发的电能,并将电能的卖家信息以及存储电能进行就地存储以及更新上传至系统数据存储模块。

优选地,所述用户端电力交易模块包括用户注册/登录单元、电力交易单元以及数据储存单元;所述用户注册/登录单元用于卖家和买家注册/登录用户端电力交易模块;所述电力交易单元,用于买家根据购电请求生成电力交易收据单,并将其广播至电力交易管理平台中,还用于对应卖家接收电力交易收据单,确认交易信息后将交易确认收据单广播给买家;所述数据储存单元用于对用户的身份信息以及历史交易信息进行储存。

优选地,所述电力交易单元包括交易操作接口,交易数据加/解密单元、数据广播单元;所述交易操作接口用于设定卖家要出售的电能数据以及卖家信息,还用于设定买家欲购买电能数据以及对应的卖家信息;所述交易数据加/解密单元用于对设定或接收到的数据进行加密或解密处理;所述数据广播单元用于从电力交易管理平台中接收交易数据,或发送交易数据至电力交易管理平台中。

优选地,所述电力交易管理平台还包括区块打包模块,用于将预定时间内的买家接收到的所述交易确认收据单打包生成区块且将其广播给用户。

优选地,所述对数据进行加密处理得到密文是通过签名算法来实现的,所述签名算法为:

(1)将电子交易收据的数据进行哈希计算,把得到的结果按照规则进行压缩,压缩得到字符串;

(2)将得到的字符串表示为椭圆曲线f上的阶为素数k的一点q(x,y),买家与卖家的私钥为私有不公开,从数据存储模块中获取卖家的公钥lg;

(3)先通过买家的私钥z与卖家的公钥lg进行协商生成共享的密钥m,采用共享密钥以及签名算法计算上述字符串对应点的签名;

(4)通过签名对电力交易收据进行加密后即可形成密文。

优选地,所述签名的计算方法为:

(1)通过随机算法随机得到一个整数n,n属于[1,k-1];

(2)将整数n进行二进制分解为n=(nl-1,···n0)2,l为二进制分解的项数,然后将整数n与点q进行计算处理得到签名因子,具体为:

1)通过点q再生成子点q1(x1,y1)以及q2(x2,y2),设定初始值x1=c×x;y1=1;x2=x2+1;y2=y2+d;c,d为人为设定的较小的变化因子。

2)按照更新次数i依次增加的顺序以及相应ni的值对q1和q2的点坐标进行不断的更新;其中,ni∈[nl-1,···n0],i∈[0,···,l-1],i表示更新次数,ni表示第i次更新的二进制位值;具体更新公式为:

当进行第i次迭代,若ni=0时,对q2点进行更新,若ni=1时,则对q1点进行更新,更新公式为:

式中,u等于1或2,用于选择对q1点或q2点进行更新;(xui,yui)表示经过第i次迭代后的点坐标值;(x1i-1,y1i-1)表示经过第i-1次迭代后的q1点坐标值;(x2i-1,y2i-1)表示经过第i-1次迭代后的q2点坐标值;

3)当迭代l次,即i=l-1时,迭代完成,得到最终更新后的q1和q2的点坐标;依据它们计算签名因子:

式中,s为签名因子;(x1′,y1′)为最终更新后的q1点坐标;(x2′,y2′)为最终更新后的q2点坐标;

(3)计算签名因子对素数k求余,得到的余数为第一签名标记w0;若w0等于0,则重新选择n,进行重新计算签名因子;

(4)将字符串对应的明文v通过与曲线上点对应的散列函数处理得到标记h;依据签名因子s、共享密钥m、标记h以及整数n可计算得到第二签名标记w1;

(5)若w1等于0,则重新选择n来进行计算,否则,生成签名(w0,w1)。

本发明的有益效果为:本发明通过设计了一种基于区块链的用户电力自主交易系统,实现了区域性电力发电户与电力用电户之间点对点的交易以及传输,解决了区域电力发电的消纳问题,避免了架设输电线路,节约了巨大的经济成本,且采用区块链技术保证了交易过程的自主性、安全性以及可靠性,将交易记录写入到区块链中,解决了电力交易的透明化问题以及保证了交易数据不可篡改。

附图说明

利用附图对本发明作进一步说明,但附图中的实施例不构成对本发明的任何限制,对于本领域的普通技术人员,在不付出创造性劳动的前提下,还可以根据以下附图获得其它的附图。

图1为本发明的用户电力自主交易系统的组成框架图;

具体实施方式

结合以下应用场景对本发明作进一步描述。

参见图1,本实施例中,提出了一种基于区块链的用户电力自主交易系统,包括有:

用户端电力交易模块,用于卖家发布可售电能容量、电能单价以及卖家信息,还用于买家发起购买请求,并通过与卖家进行通信来完成电能交易。

电力交易管理平台,包括系统网络搭建模块、系统数据存储模块以及交易状态更新模块;所述系统网络搭建模块用于将多个卖家与多个买家之间实现通信连接以及电能输送的连接;所述数据存储模块用于将卖家发布的信息以及参与交易买家与卖家的公钥进行存入到交易数据库中,且将该数据库共享给用户;所述交易状态更新模块用于更新卖家与买家之间电力交易的状态,并将该状态写入交易数据库。

电力调度模块,用于对更新后的卖家与买家的交易状态进行实时巡查,一旦查询到卖家与买家的电力交易状态更新为已完成交易,则开始将电能从卖家与买家进行电力调度。

优选地,还包括中央储能电站,用于存储卖家多发的电能,并将电能的卖家信息以及存储电能进行就地存储以及更新上传至系统数据存储模块。

优选地,所述用户端电力交易模块包括用户注册/登录单元、电力交易单元以及数据储存单元;所述用户注册/登录单元用于卖家和买家注册/登录用户端电力交易模块;所述电力交易单元,用于买家根据购电请求生成电力交易收据单,并将其广播至电力交易管理平台中,还用于对应卖家接收电力交易收据单,确认交易信息后将交易确认收据单广播给买家;所述数据储存单元用于对用户的身份信息以及历史交易信息进行储存。

优选地,所述电力交易单元包括交易操作接口,交易数据加/解密单元、数据广播单元;所述交易操作接口用于设定卖家要出售的电能数据以及卖家信息,还用于设定买家欲购买电能数据以及对应的卖家信息;所述交易数据加/解密单元用于对设定或接收到的数据进行加密或解密处理;所述数据广播单元用于从电力交易管理平台中接收交易数据,或发送交易数据至电力交易管理平台中。

本实施例中,所述卖家和买家注册/登录用户端电力交易模块,以此实现对参与电力交易的用户的准入过程进行监管,以此来实现对区块链的所有用户群体进行监管。

所述卖家和买家注册/登录用户端电力交易模块是基于人脸识别来实现的,若用户人脸识别合格则允许买家或卖家进入用户端电力交易模块进行交易。

本实施例中,通过买家张三与卖家李四进行一次电力交易直至交易完成的过程来阐明所述电力交易单元的具体实现:

(1)买家张三通过用户注册/登陆单元登录用户端电力交易模块,张三在交易操作接口选择卖家李四,且在该接口处选择设定购买的电量,生成一份包括交易内容,卖家身份信息,购买电量、交易金额以及交易发起时间戳的电子交易收据;

(2)张三将电子交易收据送入交易数据加/解密单元进行加密处理,并将收据加密后得到的买家密文通过数据广播单元进行广播发送至李四,其中,对电子交易收据进行加密处理是通过签名算法得到实现的,所述的签名算法为:

s1:将电子交易收据的数据进行哈希计算,把得到的结果按照规则进行压缩,压缩得到字符串;

s2:将得到的字符串表示为椭圆曲线f上的阶为素数k的一点q(x,y),买家张三与卖家李四的私钥为私有不公开;从数据存储模块中获取李四的公钥lg;

s3:先通过张三的私钥z与李四的公钥lg进行协商生成共享的密钥m,采用共享密钥以及签名算法计算上述字符串对应点的签名,具体方法为:

(1)通过随机算法随机得到一个整数n,n属于[1,k-1];

(2)将整数n进行二进制分解为n=(nl-1,···n0)2,l为二进制分解的项数,然后将整数n与点q进行计算处理得到签名因子,具体为:

1)通过点q再生成子点q1(x1,y1)以及q2(x2,y2),设定初始值x1=c×x;y1=1;x2=x2+1;y2=y2+d;c,d为人为设定的较小的变化因子。

2)按照更新次数i依次增加的顺序以及相应ni的值对q1和q2的点坐标进行不断的更新;其中,ni∈[nl-1,···n0],i∈[0,···,l-1],i表示更新次数,ni表示第i次更新的二进制位值;具体更新公式为:

当进行第i次迭代,若ni=0时,对q2点进行更新,若ni=1时,则对q1点进行更新,更新公式为:

式中,u等于1或2,用于选择对q1点或q2点进行更新;(xui,yui)表示经过第i次迭代后的点坐标值;(x1i-1,y1i-1)表示经过第i-1次迭代后的q1点坐标值;(x2i-1,y2i-1)表示经过第i-1次迭代后的q2点坐标值;

3)当迭代l次,即i=l-1时,迭代完成,得到最终更新后的q1和q2的点坐标;依据它们计算签名因子:

式中,s为签名因子;(x1′,y1′)为最终更新后的q1点坐标;(x2′,y2′)为最终更新后的q2点坐标;

(3)计算签名因子对素数k求余,得到的余数为第一签名标记w0;若w0等于0,则重新选择n,进行重新计算签名因子;

(4)将字符串对应的明文v通过与曲线上点对应的散列函数处理得到h;依据签名因子s、共享密钥m、h以及整数n可计算得到第二签名标记w1,具体有:

(5)若w1等于0,则重新选择n来进行计算,否则,生成签名(w0,w1)。

s4:通过签名对电力交易收据进行加密后形成买家密文。

(3)卖家李四登录用户端电力交易模块,通过数据广播单元对买家密文进行接收,然后将接收到的买家密文送入交易数据加/解密单元中,采用验证算法对买家密文进行解密得到电子交易收据,李四对交易收据进行核对,若没有问题则在电子交易收据上加入其私有信任标记以生成一份确认交易收据;所述私有信任标记可为数字证书;然后交易数据加/解密单元对确认交易收据进行加密处理生成卖方密文,卖方密文通过数据广播单元发送给买家张三;

(4)买家张三通过数据广播单元接收到卖家密文后,将接收到的卖方密文送入买家用户端的交易数据加/解密单元进行解密处理,对解密得到的确认交易收据进行查看是否有卖家的私有信任标记,若确认交易无误,则将该确认交易收据广播给电力交易管理平台。

本优选实施例中,对签名算法进行了设计,通过用户对自己私钥的保密,就部分保证了交易的安全性,且通过上述签名算法对交易产生的数据进行进一步的加密,采用基于椭圆曲线加密算法的改进算法,通过设定变化因子c、d,显著地提升了电力数据在交易过程中的安全可靠性以及防篡改性。

优选地,所述电力交易管理平台还包括区块打包模块,用于将预定时间内的买家接收到的所述确认交易收据打包生成区块且将其广播给评估系数高的用户端交易模块。

本实施例中,所述用户端电力交易模块还包括区块入链单元,用于对区块进行入链操作得到伸长更新后的区块链,且将该区块链广播至电力交易管理平台进行储存,电力交易管理平台并依此更新交易状态。

本实施例中,所述评估系数高的用户端交易模块是通过用户端的计算能力、储存空间、交易信任度以及运行可靠性计算得到的评估系数来确定的;评估系数高的用户端获得对区块处理的挖矿权,将区块写入区块链的末尾使得区块链伸长成为更新后的区块链。

电力交易管理平台接收到更新后的区块链后将其共享至全系统中的用户端电力交易模块,以保证历史电力交易数据的透明化。

实施例二:在该实施例中,仍然采用上述实施例中的电力自主交易系统的构成以及原理;

本实施例中,设计了高效率的人脸识别算法,具体为:

(1)电力用户注册时,用户端电力交易模块接受用户上传属于自身的标准人脸图像集,并对图像集中的每张标准人脸图像进行脸轮廓、瞳距、鼻梁局部灰度以及全局灰度等不同维度的特征提取;

(2)用户端电力交易模块将所述标准人脸图像集的各维度特征按特征类别进行求和平均,得到该用户人脸各个维度特征的标准值,并将其人脸数据保存在数据储存单元;

(3)用户在进行登录时采取刷脸验证,即用户端电力交易模块获取用户人脸图像,并对该用户人脸图像进行上述维度的特征提取,将提取到的特征与用户人脸各维度特征的标准值比较得到差异度量值;

其中,所述差异度量值的计算公式为:

式中,d′为从用户人脸图像提取到的人脸轮廓特征;n′为用户刷脸时人脸图像中的瞳距特征;f′为用户刷脸时提取到的全局灰度梯度特征;c′为用户人脸图像中的嘴形局部灰度差异特征;ρ为设定的人脸轮廓曲率缩放因子;γ为影响人脸灰度特征的光照因子;为该用户人脸的轮廓特征标准值;为该用户人脸的瞳距特征的标准值;为该用户人脸的全局灰度梯度特征标准值,为该用户人脸的鼻梁局部灰度差异特征的标准值;

(4)确定可信任阀值,该值用来判断用户在进行身份识别时是否可信的特征差异设定值;该阀值的计算方式为:输入a张同一用户人脸图像给与用户对应的用户端电力交易模块,依上述步骤计算出k值,记为ka;然后输入b张与所述用户端电力交易模块不对应的用户人脸图像,也依上述步骤计算出k值,记为kb;根据a,ka,b,kn即可计算得到可信任阀值k0;

(5)将计算得到的差异度量值与可信任阀值进行比较,如果|k-k0|<α,则认定该用户人脸计算得到的差异度量值可信任,身份验证合格,其中α为设定的偏离因子;否则,就禁止登录用户端电力交易模块。

本优选实施例中,通过该用户注册/登录单元使得交易用户身份信息实名化,且采用计算量小,识别率高的人脸识别算法,对用户进行登录监管,极大的降低了用户在进行登录时被木马攻击的可能性,且提升了交易的快捷与安全性。

本实施例中,设计了评估系数的计算公式:

式中,f为评估系数,l为交易系统中用户节点的最大数据处理能力;v为交易用户节点数据处理能力的进化因子;c为交易用户节点的数据储存空间,为用户节点储存空间的衰退速率子;y为用户节点的电力交易可靠度;g为用户节点对应用户的数字资产量;ω为用户节点交易的信任因子。

本优选实施例中,通过设计该评估系数,对系统中参与交易用户的用户端级别以及历史交易信誉进行考虑,以此得到的评价结果使得优质用户可以通过获取区块的挖矿权对区块链进行更新进而得到电力交易管理平台的奖励,如此设计,可保证伸长更新区块链时能够具有高效率与高可靠性。

本实施例中,通过设计了一种基于区块链的用户电力自主交易系统,实现了区域性电力发电户与电力用电户之间点对点的交易以及传输,解决了区域电力发电的消纳问题,避免了架设输电线路,节约了巨大的经济成本,且采用区块链技术保证了交易过程的自主性、安全性以及可靠性,将交易记录写入到区块链中,解决了电力交易的透明化问题以及保证了交易数据不可篡改。

最后应当说明的是,以上实施例仅用以说明本发明的技术方案,而非对本发明保护范围的限制,尽管参照较佳实施例对本发明作了详细地说明,本领域的普通技术人员应当分析,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的实质和范围。

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