基于区块链的电能交易系统的制作方法

文档序号:26142164发布日期:2021-08-03 14:26阅读:122来源:国知局
基于区块链的电能交易系统的制作方法

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



背景技术:

传统的能源交易采用集中式监管和第三方介入的方式,通过管理者和监管方在交易过程中履行一定的职责,实现能源出售方和购买方之间的交易,其中,有代表性的为电能交易。

然而,随着全球经济发展放缓、对环境可持续发展的要求更加严格,能源企业的传统业务模式和盈利模式逐渐不能满足数字化、低碳化的新经济格局需求,以能源用户为主导的能源变革逐渐兴起,交易请求的种类日益复杂、数量逐渐增多,仍然采用传统的集中式监管和第三方介入方式进行能源交易,将难以满足用户在交易过程中对高效率和低成本的追求。

因此,目前的电能交易技术存在难以满足高效率要求的问题。



技术实现要素:

基于此,有必要针对上述技术问题,提供一种高效率的电能交易系统、方法、计算机设备和存储介质。

一种基于区块链的电能交易系统,所述系统包括区块链基础设施和智能用电存储器;

所述区块链基础设施,用于将获取到的购电消息存储于第一数组,将获取到的售电消息存储于第二数组,当检测到所述第一数组和所述第二数组均不为空时,发送所述购电消息和所述售电消息至所述智能用电存储器;所述购电消息包括购电价格和购电量,所述售电消息包括售电价格和售电量;

所述智能用电存储器,用于根据接收到的所述购电价格和所述售电价格确定电能成交价,根据接收到的所述购电量和所述售电量确定电能成交量;

所述智能用电存储器,还用于根据所述电能成交价减少购电方账户金额,根据所述电能成交量增加购电方账户电量,以供购电方在购买电能后根据所述购电方账户金额和所述购电方账户电量进行结算;

所述智能用电存储器,还用于根据所述电能成交价增加售电方账户金额,根据所述电能成交量减少售电方账户电量,以供售电方在出售电能后根据所述售电方账户金额和所述售电方账户电量进行结算。

在其中一个实施例中,所述系统还包括智能电表,所述智能电表,用于获取智能电表标识和用户的假名,并发送所述智能电表标识和所述假名之间的映射关系至所述智能用电存储器;所述用户包括所述购电方和所述售电方;

所述智能用电存储器,还用于获取智能电表标识,根据所述映射关系查找所述智能电表标识对应的假名,将所述假名对应的用户确定为目标用户,并更新所述目标用户的账户金额和账户电量。

在其中一个实施例中,所述智能电表包括购电方智能电表和售电方智能电表;所述区块链基础设施,还用于发送通知至所述购电方智能电表和所述售电方智能电表;

所述购电方智能电表,还用于当接收到所述通知时,发送购电验证消息至所述智能用电存储器;

所述售电方智能电表,还用于当接收到所述通知时,发送售电验证消息至所述智能用电存储器;

所述智能用电存储器,还用于当检测到所述购电验证消息与所述购电消息相匹配、且所述售电验证消息与所述售电消息相匹配时,判定验证通过,并根据所述购电价格和所述售电价格的平均值得到所述电能成交价,根据所述购电量和所述售电量的最小值得到所述电能成交量。

在其中一个实施例中,所述智能用电存储器,还用于发送所述购电验证消息至所述售电方智能电表,以及发送所述售电方验证消息至所述购电方智能电表;

所述购电方智能电表,还用于对接收到的所述售电方验证消息进行验证,若验证通过,则返回购电方确认消息至所述智能用电存储器;

所述售电方智能电表,还用于对接收到的所述购电方验证消息进行验证,若验证通过,则返回售电方确认消息至所述智能用电存储器;

所述智能用电存储器,还用于当接收到所述购电方确认消息和所述售电方确认消息时,根据所述电能成交价减少购电方账户金额和增加售电方账户金额,根据所述电能成交量增加购电方账户电量和减少售电方账户电量。

在其中一个实施例中,所述系统还包括密钥生成中心;所述密钥生成中心,用于生成公共参数,并发送所述公共参数至所述区块链基础设施;

所述区块链基础设施,还用于根据接收到的所述公共参数,生成智能合约。

在其中一个实施例中,所述密钥生成中心,还用于当接收到用户的初始化请求时,根据所述公共参数生成所述用户的私钥,并发送所述私钥至所述用户的智能电表,以供所述智能电表根据所述私钥对所述购电消息和所述售电消息进行加密。

在其中一个实施例中,所述智能电表,还用于获取电价,根据所述电价生成电价向量ul和ur,根据所述私钥对所述电价向量ul和ur进行内积函数加密,得到所述电价的加密数据(el(ul),er(ur)),并发送所述加密数据(el(ul),er(ur))至所述区块链基础设施;所述电价包括所述购电价格和所述售电价格。

在其中一个实施例中,所述第一数组包括大根堆数组,所述第二数组包括小根堆数组,所述大根堆数组中的根节点为电价最高的购电消息,所述小根堆数组中的根节点为电价最低的售电消息;所述区块链基础设施,还用于对接收到的所述加密数据(el(ul),er(ur))进行解密,得到所述电价,若所述电价为所述购电价格,则根据所述电价的高低将所述购电消息存储于所述大根堆数组,若所述电价为所述售电价格,则根据所述电价的高低将所述售电消息存储于所述小根堆数组。

在其中一个实施例中,所述区块链基础设施,还用于获取第一电价m1的电价向量和第二电价m2的电价向量计算的内积则判定m1≤m2,若则判定m1>m2。

在其中一个实施例中,所述区块链基础设施,还用于当检测到所述大根堆数组和所述小根堆数组均不为空时,获取所述大根堆数组的根元素值vbh和所述小根堆数组的根元素值vsh,若vbh≥vsh,则判定vbh对应的购电方与vsh对应的售电方进行电能交易。

一种基于区块链的电能交易方法,所述方法包括:

将获取到的购电消息存储于第一数组,以及,将获取到的售电消息存储于第二数组;所述购电消息包括购电价格和购电量,所述售电消息包括售电价格和售电量;

当检测到所述第一数组和所述第二数组均不为空时,发送所述购电消息和所述售电消息至智能用电存储器,以供所述智能用电存储器根据接收到的所述购电价格和所述售电价格确定电能成交价,根据接收到的所述购电量和所述售电量确定电能成交量,并根据所述电能成交价减少购电方账户金额和增加售电方账户金额,根据所述电能成交量增加购电方账户电量和减少售电方账户电量。

一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:

将获取到的购电消息存储于第一数组,以及,将获取到的售电消息存储于第二数组;所述购电消息包括购电价格和购电量,所述售电消息包括售电价格和售电量;

当检测到所述第一数组和所述第二数组均不为空时,发送所述购电消息和所述售电消息至智能用电存储器,以供所述智能用电存储器根据接收到的所述购电价格和所述售电价格确定电能成交价,根据接收到的所述购电量和所述售电量确定电能成交量,并根据所述电能成交价减少购电方账户金额和增加售电方账户金额,根据所述电能成交量增加购电方账户电量和减少售电方账户电量。

一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:

将获取到的购电消息存储于第一数组,以及,将获取到的售电消息存储于第二数组;所述购电消息包括购电价格和购电量,所述售电消息包括售电价格和售电量;

当检测到所述第一数组和所述第二数组均不为空时,发送所述购电消息和所述售电消息至智能用电存储器,以供所述智能用电存储器根据接收到的所述购电价格和所述售电价格确定电能成交价,根据接收到的所述购电量和所述售电量确定电能成交量,并根据所述电能成交价减少购电方账户金额和增加售电方账户金额,根据所述电能成交量增加购电方账户电量和减少售电方账户电量。

上述基于区块链的电能交易系统、方法、计算机设备和存储介质,通过区块链基础设施将获取到的购电消息存储于第一数组,将获取到的售电消息存储于第二数组,当检测到第一数组和第二数组均不为空时发送购电消息和售电消息至智能用电存储器,智能用电存储器根据接收到的购电价格和售电价格确定电能成交价,根据接收到的购电量和售电量确定电能成交量,并根据电能成交价减少购电方账户金额和增加售电方账户金额,根据电能成交量增加购电方账户电量和减少售电方账户电量,可以在电能交易过程中,将购电方和售电方作为对等节点直接相交互,无需第三方管理者和监管方的介入,使电能交易具备高效性。

而且,通过区块链基础设施对购电消息和售电消息进行存储,可以确保购电消息和售电消息不被篡改,提升电能交易的安全性。

附图说明

图1为一个实施例中基于区块链的电能交易系统的结构框图;

图2为另一个实施例中基于区块链的电能交易系统的结构框图;

图3为一个实施例中电能交易系统初始化步骤的流程示意图;

图4为一个实施例中电能交易系统交易申请步骤的流程示意图;

图5为一个实施例中电能交易系统交易撮合步骤的流程示意图;

图6为一个实施例中电能交易系统交易结算步骤的流程示意图;

图7为一个实施例中基于区块链的电能交易方法的流程示意图;

图8为一个实施例中计算机设备的内部结构图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

在一个实施例中,如图1所示,提供了一种基于区块链的电能交易系统100,该电能交易系统可以包括区块链基础设施110和智能用电存储器120。

其中,区块链基础设施110可以为能够实现区块链存储和计算功能的设备,可以用独立的服务器或者是多个服务器组成的服务器集群来实现。

其中,智能用电存储器120可以为对用户用电进行调配的设备,可以为配备有能源池的存储器。

区块链基础设施110,用于将获取到的购电消息存储于第一数组,将获取到的售电消息存储于第二数组,当检测到第一数组和第二数组均不为空时,发送购电消息和售电消息至智能用电存储器120;购电消息包括购电价格和购电量,售电消息包括售电价格和售电量;

智能用电存储器120,用于根据接收到的购电价格和售电价格确定电能成交价,根据接收到的购电量和售电量确定电能成交量;

智能用电存储器120,还用于根据电能成交价减少购电方账户金额,根据电能成交量增加购电方账户电量,以供购电方在购买电能后根据购电方账户金额和购电方账户电量进行结算;

智能用电存储器120,还用于根据电能成交价增加售电方账户金额,根据电能成交量减少售电方账户电量,以供售电方在出售电能后根据售电方账户金额和售电方账户电量进行结算。

其中,第一数组可以为大根堆数组,大根堆数组中的根节点为电价最高的购电消息。第二数组可以为小根堆数组,小根堆数组中的根节点为电价最低的售电消息。

其中,购电量可以为购电方购买的电量(购买用电量)。售电量可以为售电方出售的电量(出售用电量)。

具体实现中,通过基于区块链的电能交易系统进行电能交易,可以包含四个阶段,即初始化阶段、交易申请阶段、交易撮合阶段和交易结算阶段。

在初始化阶段,可以由密钥生成中心生成公共参数pk,发送给区块链基础设施,以及基于公共参数pk生成私钥sk,发送给用户关联的智能电表。

在交易申请阶段,当用户有意向购买或出售用电时,智能电表可以利用私钥sk对电价信息(购电价格pp或售电价格sp)进行加密,并将电量信息(购买用电量pa或出售用电量sa)和加密后的电价信息发送至区块链基础设施进行存储。区块链基础设施可以将购电消息按电价高低存储在大根堆数组bh中,将售电消息按电价高低存储在小根堆数组sh中。

在交易撮合阶段,可以周期性进行交易撮合,当检测到大根堆数组bh与小根堆数组sh皆不为空时,判定交易撮合成功,区块链基础设施可以将大根堆数组bh根元素中购电消息对应的购电方、小根堆数组sh根元素中售电消息对应的售电方作为交易对象,分别向购电方发送购电消息和向售电方发送售电消息,区块链基础设施还可以将购电消息和售电消息发送给智能用电存储器。

在交易结算阶段,智能用电存储器可以对购电方和售电方进行验证,若验证通过,则可以根据电价信息的平均值得到电能成交价up=average(sp,pp),根据电量信息的较小值得到电能成交量ua=min(sa,pa)。购电方和售电方还可以互相验证,若验证通过则发送确认消息给智能用电存储器,智能用电存储器可以将购电方账户的总电量更新为actp=actp+ua,总金额更新为cetp=cetp-up,同时,将售电方账户的总电量更新为acts=acts-ua,总金额更新为cets=cets+up。智能用电存储器可以将更新后的总电量和总金额发送至相关智能电表更新读数,以供购电方和售电方根据更新后的读数进行交易结算,此时,购电方可以通过电能传输设施来使用智能用电存储器中的电能。

图2提供了一个基于区块链的电能交易系统的结构框图,根据图2,基于区块链的电能交易系统可以由用户、智能电表、区块链基础设施、智能用电存储器、电能传输设施和密钥生成中心等实体构成。

其中,用户可以为系统中拥有智能电表的客体,可以主动通过智能电表发起能源交易。若发起的交易为购电交易,则被视为购电方。若发起的交易为售电交易,则被视为售电方。

其中,智能电表可以为密封防篡改设备,可视其总是诚实执行任务。另外,智能电表不仅记录电量,同时可作为区块链的客户端节点,拥有一定的计算能力,负责替用户发起交易。

其中,智能用电存储器可以为配备双向通信流的能源池,连接着区域内的所有智能电表。智能用电存储器同时连接着电能传输设施来传输用电。与智能电表一致,智能用电存储器加入区块链网络,接收匹配的交易信息,并根据交易通过电能传输设施在用户间调配用电。

其中,电能传输设施可以等待智能用电存储器调配,负责在智能用电存储器与用户端间传递电力资源。

其中,密钥生成中心可以负责向交易双方的智能电表分发密钥,为能源交易系统提供数据加密基础服务。

其中,区块链基础设施可以提供点对点交易服务支撑。通过买卖双方与智能合约的交互,在不泄漏用户真实身份与保护交易数据隐私的情况下,自动化完成关于加密数据的交易匹配过程。

图3提供了一个电能交易系统初始化步骤的流程示意图,根据图3,系统初始化时,密钥生成中心运行内积函数加密方案初始化算法,生成公共参数pk并发送至区块链基础设施,此公共参数为完全公开性质,任何人可随时获取此信息。区块链基础设施根据pk创建智能合约,为后续智能合约利用公共参数pk在加密数据上操作做准备。同时,密钥生成中心等待用户初始化请求,为用户生成基于公共参数pk的私钥sk,并发送私钥sk至用户关联的智能电表。智能电表可根据私钥sk对交易信息进行加密,上传智能合约,并上链存储至区块链基础设施,以供进行交易撮合。

其中,函数加密机制支持面向密文的操作。内积函数加密算法允许通过操作密文来计算明文的内积。例如:假定存在两个向量表示加密后的密文。则解密操作表示以密文为输入,输出向量的内积,记为该解密操作可由任何第三方在不泄漏明文的情况下执行得到内积结果。

依据双线性对性质,假定一个群元素q0∈g,与行向量表示群向量则可表示如下双线性对,其中

具体算法可以包括:

(1)setup(1λ)→(pk,sk):算法以安全参数λ为输入,首先选取两个阶为素数p的乘法循环群g与gt,并定义双线性变换e,然后,随机选取生成元g0,g1∈g。接下来,算法随机选取矩阵b,b为元素皆为zp的n阶方阵,同时设置矩阵b的伴随矩阵b*=det(b)·(b-1)t,其中det(b)表示矩阵b的行列式,(b-1)t表示逆矩阵b-1的转置。最后,算法输出公共参数pk=(g,gt,p,e),输出私钥sk=(g0,g1,b,b*);

(2)算法以私钥sk以及行向量为输入,选取随机元素α∈zp,输出关于的左密文如下:

(3)算法以私钥sk以及行向量为输入,选取随机元素β∈zp,输出关于的右密文如下:

(4)算法以公共参数pk,关于的左密文以及关于的右密文为输入,输出解密结果如下:

d1=e(l1,r1),

d2=e(l2,r2),

若存在元素z,满足(d1)z=d2,则该元素z=<x,y>。

其中,双线性对定义可以为,假设有两个阶为素数p的乘法循环群g与gt,并令g为g的一个生成元。如果某变换满足以下性质,则称该变换e:g×g→gt为双线性变换。

(1)双线性:对于任意的a,b∈zp,有e(ga,gb)=e(g,g)ab

(2)非退化性:e(g,g)≠1;

(3)可计算性:对于任意的q0,q1∈gt,存在有效的算法来计算e(q0,q1)。

图4提供了一个电能交易系统交易申请步骤的流程示意图,根据图4,当用户有意向购买或出售用电时,首先通过智能电表随机生成一个临时假名,记为sid,并将sid与智能电表真实id组成映射关系发送至智能用电存储器注册假名,供本次会话使用。因用户在交易过程中仅展示临时假名身份sid,除了智能用电存储器外,不向其他用户泄漏身份信息,可以最大限度保护用户身份隐私。注册临时假名后,智能电表将电价信息(购电价格pp或售电价格sp)调用加密算法加密数据。最后,用户将sid、电价信息的加密数据、电量信息(购买用电量pa或出售用电量sa)以及哈希值c打包发送至初始化阶段生成的智能合约。其中哈希值c为对sid、电价信息、电量信息进行哈希计算得到的值。调用的智能合约将打包消息(sid、电价信息的加密数据、电量信息和哈希值c)存储至数组中等待匹配,若打包消息为购电消息,则将该消息按电价高低存储于大根堆数组bh中。若打包消息为售电消息,则将该消息按电价高低存储于小根堆数组sh中。

其中,智能电表对电价信息进行加密的过程可以为:首先,假定系统中存在一个升序数组p,该数组可由密钥分发中心于初始化阶段发送至智能电表。为了方便起见,可暂时设置数组p={1,...,10},同时支持以数组下标形式(从1开始计算)表示数值如:p[1]=1,p[9]=9,以index(x)的形式表示数值下标索引如:index(3)=3,index(10)=10。接着,智能电表从数组p中选定一个值z作为电价,并根据该电价生成向量ul,ur。其中ul中数组下标小于index(z)的位都记为0,剩余位记为1。ur中数组下标为index(z)的位记为1,剩余位记为0。例如:电价为6时,ul=(0,0,0,0,0,1,1,1,1,1),ur=(0,0,0,0,0,1,0,0,0,0)。最后,智能电表以初始化生成的sk执行leftencrypt(sk,ul)→el(ul)与rightencrypt(sk,ur)→er(ur)内积函数加密算法得到最终加密数据(el(ul),er(ur))。

其中,在将打包消息按电价高低进行存储过程中,可以调用插入算法来判断电价高低。首先,算法根据类别将打包消息分类为购电消息和售电消息。若消息为购电消息,则将该消息插入按电价排序的大根堆数组bh中,此数组中的根节点即为电价最高的购电消息。由于打包消息中的电价信息已加密为加密数据,需通过加密数据(el(ul),er(ur))执行解密算法来比较两条打包消息的电价高低,从而重排序大根堆数组bh。例如:假定两条电价分别为6和8的购电消息,分别记为m1,m2。此时,m1的电价向量表示为m2的电价向量表示为因此,可以通过计算内积来比较电价。若计算结果为1,表示m1≤m2。若结果为0,则表示m1>m2。而基于内积函数加密特性,等价于基于加密数据的解密算法的输出值。另外,其解密算法并不会将加密数据恢复为电价数据,而仅仅输出电价间的内积值,保护了电价数据的隐私性。同理,若为售电消息,则将该消息插入按电价排序的小根堆数组sh中,此数组中的根节点即为电价最低的售电消息。与购电消息存储类似,售电消息同样通过加密数据(el(ul),er(ur))执行解密算法来比较两条打包消息的电价高低,从而重新排序小根堆数组sh。

图5提供了一个电能交易系统交易撮合步骤的流程示意图,根据图5,区块链网络周期性地进行交易撮合。当大根堆数组bh与小根堆数组sh皆不为空时,交易撮合成功。接下来,区块链节点将两数组中根元素的打包消息取出并发送至消息来源智能电表。智能电表同时通知其用户已被选中为交易对象。另外,智能用电存储器也将收到买卖双方用户的交易打包消息。

其中,智能合约可以执行匹配算法,选出合适的购电方和售电方,达成交易。具体实现中,匹配算法检查大根堆数组bh与小根堆数组sh,若任一数组为空时,算法中止执行。否则,算法分别从bh与sh数组中取出根元素值vbh,vsh并执行解密算法,比较两个值的大小。如果vbh<vsh,表示目前系统中的所有购电电价低于最小售电电价,因此交易匹配失败,算法中止执行。否则,算法将vbh与vsh设定为本次交易对象,并将vbh与vsh从各自数组中剔除,数组重新排序。交易匹配成功,算法输出vbh与vsh相关打包消息。

图6提供了一个电能交易系统交易结算步骤的流程示意图,根据图6,在用户接收到被选中通知后,用户(购电方与售电方)发送sid、电价信息(购电价格pp或售电价格sp)、电量信息(购买用电量pa或出售用电量sa)等验证消息至智能用电存储器。智能用电存储器可以哈希购电方验证消息,得到c′,并对比打包消息中的c是否与c′相等,来验证购电方,同样地,智能用电存储器还可以哈希售电方验证消息,并对比打包消息,来验证售电方。若购电与售电双方都相等,则验证通过,并以电价信息的平均值作为最终成交价up=average(sp,pp),以电量信息的较小值作为最终成交量ua=min(sa,pa)。

接下来,智能用电存储器交换买卖双方用户验证信息供对方验证结果,验证方式同智能用电存储器一致。若验证成功,用户发送确认消息至智能用电存储器。当智能用电存储器接收到双方用户的确认消息后,智能用电存储器、购电方与售电方此时协商达成一致。智能用电存储器随即通过交易申请阶段的用户身份注册的映射关系,定位sid用户的真实身份,并将购电方账户的总电量更新为actp=actp+ua,总金额更新为cetp=cetp-up。同时,将售电方账户的总电量更新为acts=acts-ua,总金额更新为cets=cets+up。最后,智能用电存储器将更新消息发送至相关智能电表更新读数,此时,购电方可通过电能传输设施来使用智能用电存储器中的电能。

上述基于区块链的电能交易系统,通过区块链基础设施将获取到的购电消息存储于第一数组,将获取到的售电消息存储于第二数组,当检测到第一数组和第二数组均不为空时发送购电消息和售电消息至智能用电存储器,智能用电存储器根据接收到的购电价格和售电价格确定电能成交价,根据接收到的购电量和售电量确定电能成交量,并根据电能成交价减少购电方账户金额和增加售电方账户金额,根据电能成交量增加购电方账户电量和减少售电方账户电量,可以在电能交易过程中,将购电方和售电方作为对等节点直接相交互,无需第三方管理者和监管方的介入,使电能交易具备高效性。

而且,通过区块链基础设施对购电消息和售电消息进行存储,可以确保购电消息和售电消息不被篡改,提升电能交易的安全性。

进一步地,由于区块链是一个开放、分布式的数据库,可以在匿名的参与者间进行交易,而无需集中式监管方的介入。区块链将信任信息嵌入每一笔交易来源中,从而大大提升了交易的安全性和成本效率。区块链的特性和优势可以帮助能源企业在可信的基础上创新性地解决能源交易问题并促进能源价值链重塑。

更进一步地,通过在购电方和售电方之间构建完全面向交易的对等网络,并基于区块链构建对等网络能源交易框架,利用智能合约实施自动化交易匹配,用户可以作为对等节点可直接与智能合约交互,减少管理者与监管方在交易过程中的干预作用,实现交易用户间的点对点连接,既加强了交易的公平性,又可以进一步提高交易效率。同时,通过构造基于内积函数加密的隐私保护算法,提供保护用户身份隐私及交易数据安全的措施,可以切实保证用户利益不被侵害。

其中,对等网络可以为由处于对等地位的多台计算机所组成的网络。在对等网络环境中,彼此连接的多台计算机之间都处于对等的地位,各台计算机有相同的功能,无主从之分,一台计算机既可作为服务器,设定共享资源供网络中其他计算机所使用,又可以作为工作站。整个网络一般来说不依赖专用的集中服务器,也没有专用的工作站。网络中的每一台计算机既能充当网络服务的请求者,又对其它计算机的请求做出响应,提供资源、服务和内容。

在一个实施例中,基于区块链的电能交易系统还包括智能电表,智能电表,用于获取智能电表标识和用户的假名,并发送智能电表标识和假名之间的映射关系至智能用电存储器;用户包括购电方和售电方;上述智能用电存储器,还用于获取智能电表标识,根据映射关系查找智能电表标识对应的假名,将假名对应的用户确定为目标用户,并更新目标用户的账户金额和账户电量。

具体实现中,当用户意向购买或出售用电时,首先通过智能电表随机生成一个临时假名,记为sid,并将sid与智能电表真实id组成映射关系发送至智能用电存储器注册假名,供本次会话使用。因用户在交易过程中仅展示临时假名身份sid,除了智能用电存储器外,不向其他用户泄漏身份信息,最大限度保护了用户身份隐私。注册临时假名后,智能电表将电价信息(购电价格pp或售电价格sp)调用加密算法加密数据。最后,用户将sid、加密数据、电量信息(购买用电量pa或出售用电量sa)以及哈希值c打包发送至初始化阶段生成的智能合约。其中哈希值c为对sid、电价信息、电量信息进行哈希计算得到的值。

在交易结算阶段,当智能用电存储器接收到双方用户的确认消息后,可以获取购电方和售电方的智能电表id,根据映射关系查找智能电表id对应的假名,并根据假名定位购电方和售电方的真实身份,之后可以将购电方账户的总电量更新为actp=actp+ua,总金额更新为cetp=cetp-up,将售电方账户的总电量更新为acts=acts-ua,总金额更新为cets=cets+up。

本实施例中,通过智能电表获取智能电表标识和用户的假名,并发送智能电表标识和假名之间的映射关系至智能用电存储器,智能用电存储器获取智能电表标识,根据映射关系查找智能电表标识对应的假名,将假名对应的用户确定为目标用户,并更新目标用户的账户金额和账户电量,可以使用户利用假名参与交易过程,实现用户身份隐私保护,满足对能源供应安全的要求,解决目前区块链能源交易过程中存在的将明文数据上链,侵犯用户隐私的问题。

在一个实施例中,上述智能电表包括购电方智能电表和售电方智能电表;上述区块链基础设施,还用于发送通知至购电方智能电表和售电方智能电表;购电方智能电表,还用于当接收到通知时,发送购电验证消息至智能用电存储器;售电方智能电表,还用于当接收到通知时,发送售电验证消息至智能用电存储器;上述智能用电存储器,还用于当检测到购电验证消息与购电消息相匹配、且售电验证消息与售电消息相匹配时,判定验证通过,并根据购电价格和售电价格的平均值得到电能成交价,根据购电量和售电量的最小值得到电能成交量。

具体实现中,在完成交易撮合,确定购电方和售电方后,区块链基础设施可以发送通知给购电方智能电表和售电方智能电表,购电方智能电表在接收到通知后,可以发送sid、购电价格、购电量的验证消息(购电验证消息)至智能用电存储器,智能用电存储器哈希购电验证消息得到c1′,将c1′与sid、购电价格、购电量的打包消息c1相比较,若c1′与c1相等,则判定购电验证消息与购电消息相匹配,同样地,售电方智能电表在接收到通知后,可以发送sid、售电价格、售电量的验证消息(售电验证消息)至智能用电存储器,智能用电存储器哈希售电验证消息得到c2′,将c2′与sid、售电价格、售电量的打包消息c2相比较,若c2′与c2相等,则判定售电验证消息与售电消息相匹配,当购电验证消息与购电消息相匹配、且售电验证消息与售电消息相匹配时,判定验证通过,此时可以以电价信息的平均值作为最终成交价up=average(sp,pp),以电量信息的较小值作为最终成交量ua=min(sa,pa)。

本实施例中,通过区块链基础设施发送通知至购电方智能电表和售电方智能电表,购电方智能电表和售电方智能电表当接收到通知时,分别发送购电验证消息和售电验证消息至智能用电存储器,智能用电存储器当检测到购电验证消息与购电消息相匹配、且售电验证消息与售电消息相匹配时,判定验证通过,并根据购电价格和售电价格的平均值得到电能成交价,根据购电量和售电量的最小值得到电能成交量,可以在电能交易结算前对交易双方进行验证,在自动化交易匹配、保证电能交易高效性的同时,保证交易的安全性。

在一个实施例中,上述智能用电存储器,还用于发送购电验证消息至售电方智能电表,以及发送售电方验证消息至购电方智能电表;上述购电方智能电表,还用于对接收到的售电方验证消息进行验证,若验证通过,则返回购电方确认消息至智能用电存储器;上述售电方智能电表,还用于对接收到的购电方验证消息进行验证,若验证通过,则返回售电方确认消息至智能用电存储器;上述智能用电存储器,还用于当接收到购电方确认消息和售电方确认消息时,根据电能成交价减少购电方账户金额和增加售电方账户金额,根据电能成交量增加购电方账户电量和减少售电方账户电量。

具体实现中,智能用电存储器还可以交换买卖双方用户验证信息供对方验证结果,包括发送购电验证消息至售电方智能电表,以及发送售电方验证消息至购电方智能电表。售电方智能电表和购电方智能电表分别对接收到的消息进行验证,若验证成功,则发送确认消息至智能用电存储器。当智能用电存储器接收到双方用户的确认消息后,智能用电存储器、购电方与售电方此时协商达成一致。智能用电存储器随即通过交易申请阶段的用户身份注册的映射关系,定位sid用户的真实身份,并将购电方账户的总电量更新为actp=actp+ua,总金额更新为cetp=cetp-up。同时,将售电方账户的总电量更新为acts=acts-ua,总金额更新为cets=cets+up。最后,智能用电存储器将更新消息发送至相关智能电表更新读数,此时,购电方可通过电能传输设施来使用智能用电存储器中的电能。

本实施例中,通过智能用电存储器发送购电验证消息至售电方智能电表,以及发送售电方验证消息至购电方智能电表,购电方智能电表对接收到的售电方验证消息进行验证,若验证通过,则返回购电方确认消息至智能用电存储器,售电方智能电表对接收到的购电方验证消息进行验证,若验证通过,则返回售电方确认消息至智能用电存储器,智能用电存储器当接收到购电方确认消息和售电方确认消息时,根据电能成交价减少购电方账户金额和增加售电方账户金额,根据电能成交量增加购电方账户电量和减少售电方账户电量,可以在智能用电存储器对交易双方进行验证后,由购电方和售电方分别对对方进行验证,加强交易的公平性,使电能交易满足对等网络对交易公平性的要求。

在一个实施例中,基于区块链的电能交易系统还包括密钥生成中心;密钥生成中心,用于生成公共参数,并发送公共参数至区块链基础设施;上述区块链基础设施,还用于根据接收到的公共参数,生成智能合约。

具体实现中,系统初始化时,密钥生成中心运行内积函数加密方案初始化算法,生成公共参数pk并发送至区块链基础设施,此公共参数为完全公开性质,任何人可随时获取此信息。区块链基础设施根据pk创建智能合约,为后续智能合约利用公共参数pk在加密数据上操作做准备。

本实施例中,通过密钥生成中心生成公共参数,并发送公共参数至区块链基础设施,区块链基础设施根据接收到的公共参数生成智能合约,可以为后续基于公共参数实现内积函数加密做准备,不同于同态加密的方法,内积函数加密可以在实现面向加密数据的交易撮合操作时,提供更轻量级的加解密算法,进一步提高电能交易的效率。

在一个实施例中,上述密钥生成中心,还用于当接收到用户的初始化请求时,根据公共参数生成用户的私钥,并发送私钥至用户的智能电表,以供智能电表根据私钥对购电消息和售电消息进行加密。

具体实现中,密钥生成中心等待用户的初始化请求,当接收到用户的初始化请求时,为用户生成基于公共参数pk的私钥sk,并发送私钥sk至用户关联的智能电表。智能电表可以使用私钥sk对购电价格或售电价格进行内积函数加密,生成加密数据上传智能合约,并在区块链基础设施上进行上链存储。

本实施例中,通过密钥生成中心当接收到用户的初始化请求时,根据公共参数生成用户的私钥,并发送私钥至用户的智能电表,可以使智能电表对购电信息和售电信息进行加密,保证交易数据安全。

在一个实施例中,上述智能电表,还用于获取电价,根据电价生成电价向量ul和ur,根据私钥对电价向量ul和ur进行内积函数加密,得到电价的加密数据(el(ul),er(ur)),并发送加密数据(el(ul),er(ur))至区块链基础设施;电价包括购电价格和售电价格。

具体实现中,加密算法由智能电表执行,输入电价信息(购电价格pp或售电价格sp),输出加密数据。算法细节阐述如下:首先,假定系统中存在一个升序数组p,该数组可由密钥分发中心于初始化阶段发送至智能电表。为了方便起见,可暂时设置数组p={1,...,10},同时支持以数组下标形式(从1开始计算)表示数值如:p[1]=1,p[9]=9,以index(x)的形式表示数值下标索引如:index(3)=3,index(10)=10。接着,智能电表从数组p中选定一个值z作为电价,并根据该电价生成向量ul,ur。其中ul中数组下标小于index(z)的位都记为0,剩余位记为1。ur中数组下标为index(z)的位记为1,剩余位记为0。例如:电价为6时,ul=(0,0,0,0,0,1,1,1,1,1),ur=(0,0,0,0,0,1,0,0,0,0)。最后,智能电表以初始化生成的私钥sk执行leftencrypt(sk,ul)→el(ul)与rightencrypt(sk,ur)→er(ur)内积函数加密算法,得到最终加密数据(el(ul),er(ur))。智能电表将(el(ul),er(ur))发送至区块链基础设施。

本实施例中,通过智能电表获取电价,根据电价生成电价向量ul和ur,根据私钥对电价向量ul和ur进行内积函数加密,得到电价的加密数据(el(ul),el(ur)),并发送加密数据(el(ul),er(ur))至区块链基础设施,可以对智能电表发送给区块链基础设施的电价进行加密,保证交易数据的安全性。

在一个实施例中,第一数组包括大根堆数组,第二数组包括小根堆数组,大根堆数组中的根节点为电价最高的购电消息,小根堆数组中的根节点为电价最低的售电消息;上述区块链基础设施,还用于对接收到的加密数据(el(ul),er(ur))进行解密,得到电价,若电价为购电价格,则根据电价的高低将购电消息存储于大根堆数组,若电价为售电价格,则根据电价的高低将售电消息存储于小根堆数组。

其中,大根堆和小根堆可以为数组对象,大根堆每个节点的值最多和父节点的值一样大,这样堆中的最大值就在根节点中,小根堆每个节点的值最多和父节点的值一样小,这样堆中的最小值就在根节点中。

具体实现中,当智能电表上传打包消息至智能合约后,智能合约调用插入算法,将消息按要求存储。首先,算法根据类别将打包消息分类为购电消息和售电消息。若消息为购电消息,则将该消息插入按电价排序的大根堆数组bh中,此数组中的根节点即为电价最高的购电消息。由于打包消息中的电价信息已加密为加密数据,需通过加密数据(el(ul),er(ur))执行解密算法来比较两条打包消息的电价高低,从而重排序大根堆数组bh。同理,若消息为售电消息,则将该消息插入按电价排序的小根堆数组sh中,此数组中的根节点即为电价最低的售电消息。与购电消息存储类似,售电消息同样通过加密数据(el(ul),er(ur))执行解密算法来比较两条打包消息的电价高低,从而重新排序小根堆数组sh。

本实施例中,通过区块链基础设施对接收到的加密数据(el(ul),er(ur))进行解密得到电价,若电价为购电价格,则根据电价的高低将购电消息存储于大根堆数组,若电价为售电价格,则根据电价的高低将售电消息存储于小根堆数组,可以便于后续根据大根堆数组和小根堆数组进行交易撮合,提高电能交易的效率。

在一个实施例中,上述区块链基础设施,还用于获取第一电价m1的电价向量和第二电价m2的电价向量计算的内积则判定m1≤m2,若则判定m1>m2。

具体实现中,由于打包消息中的电价信息已加密为加密数据,需通过加密数据(el(ul),er(ur))执行解密算法来比较两条打包消息的电价高低,从而重排序大根堆数组bh或小根堆数组sh。例如:假定两条电价分别为6和8的购电消息,分别记为m1,m2。此时,m1的电价向量表示为m2的电价向量表示为因此,可以通过计算内积来比较电价。若计算结果为1,表示m1≤m2。若结果为0,则表示m1>m2。而基于内积函数加密特性,等价于基于加密数据的解密算法的输出值。另外,其解密算法并不会将加密数据恢复为电价数据,而仅仅输出电价间的内积值,保护了电价数据的隐私性。

本实施例中,通过获取第一电价m1的电价向量和第二电价m2的电价向量计算的内积则判定m1≤m2,若则判定m1>m2,可以通过计算内积来比较电价大小,提高大根堆数组和小根堆数组重排序的效率。而且,由于不会将加密数据恢复为电价数据,而仅仅输出电价间的内积值,可以保护电价数据的隐私性。

在一个实施例中,上述区块链基础设施,还用于当检测到大根堆数组和小根堆数组均不为空时,获取大根堆数组的根元素值vbh和小根堆数组的根元素值vsh,若vbh≥vsh,则判定vbh对应的购电方与vsh对应的售电方进行电能交易。

具体实现中,可以通过智能合约执行匹配算法,目的为选出合适的购电方与售电方,达成交易。算法细节如下:首先,检查大根堆数组bh与小根堆数组sh,若任一数组为空时,算法中止执行。否则,算法分别从bh与sh数组中取出根元素值vbh和vsh并执行解密算法比较两个值的大小。如果vbh<vsh,表示目前系统中的所有购电电价低于最小售电电价,因此交易匹配失败,算法中止执行。否则,如果vbh≥vsh,算法将vbh与vsh设定为本次交易对象,并将vbh与vsh从各自数组中剔除,数组重新排序。交易匹配成功,算法输出vbh与vsh相关打包消息。

本实施例中,通过区块链基础设施当检测到大根堆数组和小根堆数组均不为空时,获取大根堆数组的根元素值vbh和小根堆数组的根元素值vsh,若vbh≥vsh,则判定vbh对应的购电方与vsh对应的售电方进行电能交易,可以根据大根堆数组和小根堆数组进行交易撮合,提高电能交易的效率。

在一个实施例中,如图7所示,提供了一种基于区块链的电能交易方法,以该方法应用于图1中的区块链基础设施为例进行说明,包括以下步骤:

步骤s710,将获取到的购电消息存储于第一数组,以及,将获取到的售电消息存储于第二数组;所述购电消息包括购电价格和购电量,所述售电消息包括售电价格和售电量;

步骤s720,当检测到所述第一数组和所述第二数组均不为空时,发送所述购电消息和所述售电消息至智能用电存储器,以供所述智能用电存储器根据接收到的所述购电价格和所述售电价格确定电能成交价,根据接收到的所述购电量和所述售电量确定电能成交量,并根据所述电能成交价减少购电方账户金额和增加售电方账户金额,根据所述电能成交量增加购电方账户电量和减少售电方账户电量。

具体实现中,基于区块链的电能交易方法可以包含四个阶段,即初始化阶段、交易申请阶段、交易撮合阶段和交易结算阶段。

在初始化阶段,可以由密钥生成中心生成公共参数pk,发送给区块链基础设施,以及基于公共参数pk生成私钥sk,发送给用户关联的智能电表。

在交易申请阶段,当用户有意向购买或出售用电时,智能电表可以利用私钥sk对电价信息(购电价格pp或售电价格sp)进行加密,并将电量信息(购买用电量pa或出售用电量sa)和加密后的电价信息发送至区块链基础设施进行存储。区块链基础设施可以将购电消息按电价高低存储在大根堆数组bh中,将售电消息按电价高低存储在小根堆数组sh中。

在交易撮合阶段,可以周期性进行交易撮合,当检测到大根堆数组bh与小根堆数组sh皆不为空时,判定交易撮合成功,区块链基础设施可以将大根堆数组bh根元素中购电消息对应的购电方、小根堆数组sh根元素中售电消息对应的售电方作为交易对象,分别向购电方发送购电消息和向售电方发送售电消息,区块链基础设施还可以将购电消息和售电消息发送给智能用电存储器。

在交易结算阶段,智能用电存储器可以对购电方和售电方进行验证,若验证通过,则可以根据电价信息的平均值得到电能成交价up=average(sp,pp),根据电量信息的较小值得到电能成交量ua=min(sa,pa)。购电方和售电方还可以互相验证,若验证通过则发送确认消息给智能用电存储器,智能用电存储器可以将购电方账户的总电量更新为actp=actp+ua,总金额更新为cetp=cetp-up,同时,将售电方账户的总电量更新为acts=acts-ua,总金额更新为cets=cets+up。智能用电存储器可以将更新后的总电量和总金额发送至相关智能电表更新读数,以供购电方和售电方根据更新后的读数进行交易结算,此时,购电方可以通过电能传输设施来使用智能用电存储器中的电能。

由于区块链基础设施的处理过程在前述实施例中已有详细说明,在此不再赘述。

上述基于区块链的电能交易方法,通过区块链基础设施将获取到的购电消息存储于第一数组,将获取到的售电消息存储于第二数组,当检测到第一数组和第二数组均不为空时发送购电消息和售电消息至智能用电存储器,智能用电存储器根据接收到的购电价格和售电价格确定电能成交价,根据接收到的购电量和售电量确定电能成交量,并根据电能成交价减少购电方账户金额和增加售电方账户金额,根据电能成交量增加购电方账户电量和减少售电方账户电量,可以在电能交易过程中,将购电方和售电方作为对等节点直接相交互,无需第三方管理者和监管方的介入,使电能交易具备高效性。

而且,通过区块链基础设施对购电消息和售电消息进行存储,可以确保购电消息和售电消息不被篡改,提升电能交易的安全性。

应该理解的是,虽然图3-7的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图3-7中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图8所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储电能交易数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于区块链的电能交易方法。

本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述一种基于区块链的电能交易方法的步骤。此处一种基于区块链的电能交易方法的步骤可以是上述各个实施例的一种基于区块链的电能交易方法中的步骤。

在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述一种基于区块链的电能交易方法的步骤。此处一种基于区块链的电能交易方法的步骤可以是上述各个实施例的一种基于区块链的电能交易方法中的步骤。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-onlymemory,rom)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(randomaccessmemory,ram)或外部高速缓冲存储器。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(staticrandomaccessmemory,sram)或动态随机存取存储器(dynamicrandomaccessmemory,dram)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

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