一种基于信誉共识机制的安全的数据共享方法转让专利

申请号 : CN202211353865.7

文献号 : CN115412374B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 赵冠军贾立忠刘畅

申请人 : 国网浙江省电力有限公司金华供电公司

摘要 :

本发明涉及配电网信息化技术领域,是一种基于信誉共识机制的安全的数据共享方法;该方法基于信誉改进的POW共识机制,通过信誉值来调整POW算法的难度;其信誉值会根据节点的行为实时变化,正常行为会增加信用价值,异常行为会降低信誉值;POW机制的难度根据每个节点的信誉值自适应调整,信誉值越低,交易达成运行时间越长;该机制可以使诚实节点消耗更少的资源,同时迫使恶意节点增加攻击代价,改进的POW共识机制非常适用于能力受限的物联网设备;本发明依托tangle区块链技术,具有无手续费和低延迟的特点,易于扩展的tangle区块链系统很好的解决了电网公司和分布式能源供应商之间的数据共享的互信问题。

权利要求 :

1.一种基于信誉共识机制的安全的数据共享方法,其特征在于,包括如下步骤:步骤1:初始化物联网中的所有节点,生成全节点账户和轻节点账户;初始化每个节点包括通过管理设备生成一对对应的公私钥对,并分配给对应的节点;其中物联网中的所有节点包括设备节点和网关节点;

步骤2:管理设备会检验每个节点是否产生公私钥;若产生了公私钥,则进入步骤3;否则,降低未生成公私钥的节点的信誉值,再返回步骤1;

步骤3:数据拥有者向数据请求者共享数据来达成交易,并形成交易信息,交易信息包括数据请求者、数据拥有者以及交易的内容;

步骤4:物联网中的管理设备收集交易信息,并采用马尔科夫蒙特卡洛游走算法随机选取一部分交易信息,并从这些交易信息上开始随机游走,直到达到某个边缘交易tip;

步骤5:管理设备统计步骤4中随机游走的每条路径,随机选择出两条路径对应的边缘交易tip,通过网关节点请求获得这两个边缘交易tip的相关信息,得到交易信息;所述边缘交易tip表示没有任何其他交易信息直接或者间接指向的节点;

步骤6:网关节点返回交易信息给物联网中的设备节点,设备节点验证这两笔交易信息中的签名的合法性以及交易信息对应的交易是否有效;若验证通过,则进入下一步骤;若验证不通过,则返回步骤5,重新选择边缘交易tip;

步骤7:物联网中的管理设备运行POW共识算法引用通过验证的两个边缘交易tip,并赋予参与两个边缘交易tip对应的交易信息的设备节点信誉值;其中引用两个边缘交易tip表示对这两笔交易的确认;交易被直接或间接引用越多,表示对应交易的权重越大,则交易信息越难被篡改;

步骤8:设备节点将交易信息发送给网关节点,网关节点接收交易信息,并将其广播到整个tangle网络,并且将交易信息存储在物联网设备中;

步骤9:数据请求者将请求的数据信息和数据信息对应的物联网设备ID号作为交易信息发送给物联网中的智能合约;

步骤10:智能合约接收交易信息,并准确执行交易中的条款,包括数据量和要选定想要获取数据的物联网设备ID;其中,智能合约在接收交易信息后,会验证数据请求者的签名、私钥的信息来确认数据请求者的身份,结束步骤。

2.根据权利要求1所述的一种基于信誉共识机制的安全的数据共享方法,其特征在于,所述初始化物联网中所有节点的过程包括:步骤11:管理设备对物联网中的设备节点生成轻节点账户,每个轻节点账户拥有一对轻节点公私钥对 ;轻节点会通过生成的轻节点公私钥对去寻找开放了RPC端口的最近的网关节点;对物联网中的网关节点生成全节点账户,每个全节点账户拥有一对全节点公私钥对;

步骤12:网关节点产生若干个注册的数据拥有者,数据拥有者具备各自的拥有者公私钥对;

步骤13:数据拥有者通过硬编码将拥有者公钥编入网络,以获得该物联网内的设备节点的访问授权,完成交易初始化。

3.根据权利要求2所述的一种基于信誉共识机制的安全的数据共享方法,其特征在于,所述步骤13中,数据拥有者获得所述访问授权后,能够在该物联网内发布交易TX,交易TX为交易信息中的一部分;通过交易TX来对该物联网内的设备进行授权;每个数据拥有者可以拥有多个物联网终端设备,通过这些终端设备来收集不同物联网的数据,然后通过对应物联网网关节点传输到对应的数据存储服务器,实现链下存储;

数据拥有者在收集不同物联网数据前,需要先进行验证,验证的过程如下式所示:其中, 表示管理设备的密钥; 表示物联网中的所有设备的公钥,所有设备包括设备节点;Sign表示签名, 为管理设备签名。

4.根据权利要求2所述的一种基于信誉共识机制的安全的数据共享方法,其特征在于,所述步骤3中,数据拥有者向数据请求者共享数据的过程包括:步骤31:数据请求者注册账户并生成一对对称密钥 ;

步骤32:数据拥有者利用物联网中的轻节点公钥 对对称密钥 进行加密传输;

步骤33:数据请求者利用智能合约将步骤32中加密后的对称密钥 发送给物联网中的设备节点;

步骤34:物联网中的设备节点接收加密后的对称密钥 ,并通过设备节点对应的轻节点私钥 进行解密,获得对称密钥 ;

步骤35:物联网中的设备节点通过解密获得的对称密钥 对需要传输的数据进行加密;其中需要传输的数据为数据拥有者的数据。

5.根据权利要求4所述的一种基于信誉共识机制的安全的数据共享方法,其特征在于,所述步骤32中,加密传输的式子为:其中,Enc表示加密, 表示通过轻节点公钥 进行加密;Sign表示签名;TS表示用于防范重放攻击的时间戳; 表示随机数; 为管理者签名。

6.根据权利要求1所述的一种基于信誉共识机制的安全的数据共享方法,其特征在于,所述步骤7中,信誉值会根据设备节点的行为实时变化;每个设备节点i定义了信誉值 ,如下式所示:               (1)

其中,表示信誉值中的积极部分; 表示信誉值中的消极部分;和 分别表示根据惩罚的难度动态调整系数,其中调整的过程根据惩罚的难度自动调节,调节范围为(0,1)。

7.根据权利要求6所述的一种基于信誉共识机制的安全的数据共享方法,其特征在于,所述积极部分 如下式所示:              (2)

其中,表示△T时间段内设备节点i的正常交易次数; 表示第k次交易的权重,R表示设备节点积极参与电网调控指令的程度;

所述消极部分 如下式所示:

          (3)

其中,α(β)表示设备节点的两种恶意行为的设定值,包括双花行为以及重复验证固定交易的行为;设置设备节点的双花行为对应的α(β)值为1,重复验证固定交易的行为对应的α(β)值为0.7;t表示当前时间;表示设备节点i进行第k次恶意行为的时间; 表示单位时间内设备节点i的恶意行为总数;△T表示时间段;

所述信誉值 与设备节点i的POW难度值 的关系如下式所示:

                    (4)

其中,θ表示调整的难度因子,难度因子的取值范围为1 20; 表示设备节点i的POW难度~值;

所述POW公式算法的表达式为:

         (5)

其中, 和 表示tangle网络中先前的两个边缘交易tip对应的交易信息;hash表示哈希值;nonce表示随机数;output表示共识算法的哈希值输出。

说明书 :

一种基于信誉共识机制的安全的数据共享方法

技术领域

[0001] 本发明涉及配电网信息化技术领域,是一种基于信誉共识机制的安全的数据共享方法。

背景技术

[0002] 在现实生活中有这样的实际场景,电网公司想要通过获取分布式能源供应商(用户)的电力数据,通过分析分布式能源供应商共享的数据来辅助调控电力调度,电网公司在必要时可以根据数据切断一些机器设备来控制电荷负载以及命令用户何时发电何时停止发电等操作。但是目前电网公司和分布式能源厂商之间缺乏信任机制。分布式能源发电厂部分设备数据较为敏感,因为担心数据的安全性等原因,例如担心数据在共享过程中被泄露,故厂商不愿意将这些数据共享给电网公司。
[0003] 公布号为CN115190085A的专利文献,公开了一种基于SMB传输的数据共享方法、装置及存储介质,所述方法的步骤包括:每个处理节点均与预设的缓存中心相连接,缓存中心设置有存储片;处理节点接收传递数据,确定处理节点的缓存空间是否能够容纳输入数据,若否,则向缓存中心发送存储请求;该方法并不适用于物联网设备。
[0004] 公布号为CN115185914A的专利文献,公开了一种基于链上链下数据协同的数据共享方法,以IPFS分布式文件系统和HBase分布式数据库共同作为Hyperledger Fabric区块链的存储层来实现数据共享;该方法仅适用于计算设备和涉及的大数据计算。
[0005] 区块链技术是近些年来迅速兴起的一种分布式存储技术,它拥有去中心化、不可篡改、可溯源等优势。然而传统的区块链需要运行大量的加密算法和工作量证明来保证区块链的安全性,并不适用于能力受限的物联网设备。因此需要一种基于信誉共识机制的安全的数据共享方法。

发明内容

[0006] 本发明的目的是解决现有技术的不足,提供一种基于信誉共识机制的安全的数据共享方法。
[0007] 为了解决上述问题,本发明采用如下技术方案:
[0008] 一种基于信誉共识机制的安全的数据共享方法,包括如下步骤:
[0009] 步骤1:初始化物联网中的所有节点,生成全节点账户和轻节点账户;初始化每个节点通过管理设备生成一对对应的公私钥对来初始化账户,并分配给对应的节点;其中物联网中的所有节点包括设备节点和网关节点
[0010] 步骤2:管理设备会检验每个节点是否产生公私钥;若产生了公私钥,则进入步骤3;否则,降低未生成公私钥的节点的信誉值,再返回步骤1;
[0011] 步骤3:数据拥有者向数据请求者共享数据来达成交易,并形成交易信息,交易信息包括数据请求者、数据拥有者以及交易的内容;
[0012] 步骤4:物联网中的管理设备收集交易信息,并采用马尔科夫蒙特卡洛游走算法随机选取一部分交易信息,并从这些交易信息上开始随机游走,直到达到某个边缘交易tip;
[0013] 步骤5:管理设备统计步骤4中的达到边缘交易的每条路径,随机选择出两条路径对应的边缘交易tip,通过网关节点请求获得这两个边缘交易tip的相关信息,得到交易信息;所述边缘交易tip表示没有任何其他交易信息直接或者间接指向的节点;
[0014] 步骤6:网关节点返回交易信息给物联网中的设备节点,设备节点验证这两笔交易信息中的签名的合法性以及交易信息对应的交易是否有效;若验证通过,则进入下一步骤;若验证不通过,则返回步骤5,重新选择边缘交易tip;
[0015] 步骤7:物联网中的管理设备运行POW共识算法引用通过验证的两个边缘交易tip,并赋予参与两个边缘交易tip对应的交易信息的设备节点信誉值;其中引用两个边缘交易tip表示对这两笔交易的确认;交易被直接或间接引用越多,表示对应交易的权重越大,则交易信息越难被篡改;
[0016] 步骤8:设备节点将交易信息发送给网关节点,网关节点接收交易信息,并将其广播到整个tangle网络,并且将交易信息存储在物联网设备中;物联网设备包括设备节点;
[0017] 步骤9:数据请求者将请求的数据信息和数据信息对应的物联网设备ID号作为交易信息发送给物联网中的智能合约;
[0018] 步骤10:智能合约接收交易信息,并准确执行交易中的条款,包括数据量和要选定想要获取数据的物联网设备ID;其中,智能合约在接收交易信息后,会验证数据请求者的签名、私钥的信息来确认数据请求者的身份,结束步骤。
[0019] 进一步的,所述初始化物联网中所有节点的过程包括:
[0020] 步骤11:管理设备对物联网中的设备节点生成轻节点账户,每个轻节点账户生成一对轻节点公私钥对 ;轻节点会通过生成的轻节点公私钥对去寻找开放了RPC端口的最近的网关节点;对物联网中的网关节点生成全节点账户,每个全节点账户拥有一对全节点公私钥对;
[0021] 步骤12:网关节点产生若干个注册的数据拥有者,数据拥有者具备各自的拥有者公私钥对;
[0022] 步骤13:数据拥有者通过硬编码将拥有者公钥编入网络,以获得该物联网内的设备节点的访问授权,完成交易初始化。
[0023] 进一步的,所述步骤13中,数据拥有者所述访问授权后,能够在该物联网内发布交易TX,交易TX为交易信息中的一部分;通过交易TX来对该物联网内的设备进行授权;每个数据拥有者可以拥有多个物联网终端设备,通过这些终端设备来收集不同物联网的数据,然后通过对应物联网网关节点传输到对应的数据存储服务器,实现链下存储;
[0024] 数据拥有者在收集不同物联网数据前,需要先进行验证,验证的过程如下式所示:
[0025]
[0026] 其中, 表示管理设备的密钥; 表示物联网中的所有设备的公钥,所有设备包括设备节点;Sign表示签名, 为管理设备签名。
[0027] 进一步的,所述步骤3中,数据拥有者向数据请求者共享数据的过程包括:
[0028] 步骤31:数据请求者注册账户并生成一对对称密钥 ;
[0029] 步骤32:数据拥有者利用物联网中的轻节点公钥 对对称密钥 进行加密传输;
[0030] 步骤33:数据请求者利用智能合约将步骤32中加密后的对称密钥 发送给物联网中的设备节点;
[0031] 步骤34:物联网中的设备节点接收加密后的对称密钥 ,并通过设备节点对应的轻节点私钥 进行解密,获得对称密钥 ;
[0032] 步骤35:物联网中的设备节点通过解密获得的对称密钥 对需要传输的数据进行加密;其中需要传输的数据为数据拥有者的数据。
[0033] 进一步的,所述步骤32中,加密传输的式子为:
[0034]
[0035] 其中,Enc表示加密, 表示通过轻节点公钥 进行加密;Sign表示签名;TS表示用于防范重放攻击的时间戳; 表示随机数; 为管理者签名。
[0036] 进一步的,所述步骤7中,信誉值会根据设备节点的行为实时变化;每个设备节点i定义了信誉值 ,如下式所示:
[0037]                (1)
[0038] 其中, 表示信誉值中的积极部分; 表示信誉值中的消极部分; 和 分别表示根据惩罚的难度动态调整系数,其中调整的过程根据惩罚的难度自动调节,调节范围为(0,1)。
[0039] 进一步的,所述积极部分 如下式所示:
[0040]               (2)
[0041] 其中,表示△T时间段内设备节点i的正常交易次数; 表示第k次交易的权重,R表示设备节点积极参与电网调控指令的程度;
[0042] 所述消极部分 如下式所示:
[0043]           (3)
[0044] 其中,α(β)表示设备节点的两种恶意行为的设定值,包括双花行为以及重复验证固定交易的行为;设置设备节点的双花行为对应的α(β)值为1,重复验证固定交易的行为对应的α(β)值为0.7;t表示当前时间;表示设备节点i进行第k次恶意行为的时间; 表示单位时间内设备节点i的恶意行为总数;△T表示时间段;
[0045] 所述信誉值 与设备节点i的POW难度值 的关系如下式所示:
[0046]                     (4)
[0047] 其中,θ表示调整的难度因子,难度因子的取值范围为1 20; 表示设备节点i的~POW难度值;
[0048] 所述POW公式算法的表达式为:
[0049]          (5)
[0050] 其中, 和 表示tangle网络中先前的两个边缘交易tip对应的交易信息;hash表示哈希值;nonce表示随机数;output表示共识算法的哈希值输出。
[0051] 本发明的有益效果为:
[0052] 通过设置信誉值机制,并且节点的信誉值会根据节点的行为实时变化其中信誉值用于调整POW算法的难度,正常行为会增加信用价值,异常行为会降低信誉值;POW机制的难度根据每个节点的信誉值自适应调整,信誉值越低,交易达成运行时间越长;该机制可以使诚实节点消耗更少的资源,同时迫使恶意节点增加攻击代价,信用评分在整个系统周期内动态调整,改进的POW共识机制非常适用于能力受限的物联网设备;本发明依托tangle区块链技术,具有无手续费和低延迟的特点,易于扩展的tangle区块链系统很好的解决了电网公司和分布式能源供应商之间的数据共享的互信问题。

附图说明

[0053] 图1为本发明实施例一的Tangle模型图;
[0054] 图2为本发明实施例一的数据共享模型架构图;
[0055] 图3为本发明实施例二的数据传输连接框架图。

具体实施方式

[0056] 以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
[0057] 需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
[0058] 实施例一:
[0059] 如图2所示,图2为本例的数据共享模型架构图,一种基于信誉共识机制的安全的数据共享方法,包括如下步骤:
[0060] 步骤1:初始化物联网中的所有节点,生成全节点账户和轻节点账户;初始化每个节点通过管理设备生成一对对应的公私钥对来初始化账户,并分配给对应的节点。
[0061] 所述步骤1中的物联网中的所有节点包括设备节点和网关节点,其中设备节点包括传感器设备以及服务器等;管理设备为该物联网中的管理者,管理设备可以为物联网中的网关节点或者其他指定节点,在本例中管理设备为网关节点;全节点表示本模型的网络覆盖区域中的某个物联网整体,在本例中将网关节点设置为全节点,需要说明的是,在本模型中,可以存在若干个全节点;轻节点表示存储能力有限,不能用于存储区块信息,只能用于验证交易的设备,在本例中将传感器设备、服务器等设备节点设置为轻节点。
[0062] 所述初始化物联网中全部节点的过程包括:
[0063] 步骤11:管理设备对物联网中的设备节点生成轻节点账户,每个轻节点生成一对轻节点公私钥对 ;轻节点会通过生成的轻节点公私钥对去寻找开放了RPC端口的最近的网关节点;对物联网中的网关节点生成全节点账户,每个全节点账户拥有一对密钥,包括一个全节点公钥和一个全节点私钥;
[0064] 步骤12:网关节点产生若干个注册的数据拥有者,数据拥有者具备各自的拥有者公私钥对;
[0065] 步骤13:数据拥有者通过硬编码将拥有者公钥编入网络,以获得该物联网内的设备的访问授权,完成交易初始化。
[0066] 所述步骤13中,数据拥有者获得物联网内的访问授权后,能够在该物联网内发布交易TX,通过交易TX来对该物联网内的设备节点进行授权;需要说明的是,每个数据拥有者可以拥有多个物联网的终端设备,通过这些终端设备来收集不同物联网的数据,然后通过对应物联网的网关节点传输到对应的数据存储服务器,实现链下存储。
[0067] 数据拥有者的收集不同物联网数据前,需要先进行验证,收集验证的过程如下式所示:
[0068] 其中, 表示管理设备的私钥,在本例中为网关节点的私钥;表示物联网中的所有设备的公钥,包括设备节点;Sign表示签名,所以 为管理设备签名。在交易过程中,每笔交易都需要管理设备的私钥进行签名,保证网关节点从区块链网络中发现被授权的设备节点。
[0069] 步骤2:管理设备会检验每个节点是否产生公私钥;若产生了公私钥,则进入步骤3;否则,降低未生成公私钥的节点的信誉值,再返回步骤1,重新通过管理设备生成公私钥,分配给对应的设备节点。
[0070] 步骤3:数据拥有者向数据请求者共享数据来达成交易;在本例中,数据请求者为电网公司。
[0071] 所述步骤3中,数据拥有者向数据请求者共享数据的过程包括:
[0072] 步骤31:数据请求者注册账户并生成一对对称密钥 ;
[0073] 步骤32:数据拥有者利用物联网中的轻节点公钥 对对称密钥 进行加密传输;
[0074] 步骤33:数据请求者利用智能合约将加密后的密钥发送给物联网中的设备节点;
[0075] 步骤34:物联网中的设备节点接收加密内容,并通过对应的轻节点私钥 进行解密,获得对称密钥 ;
[0076] 步骤35:物联网中的设备节点通过解密获得的对称密钥 对需要传输的数据进行加密;其中需要传输的数据为数据拥有者的数据。
[0077] 所述步骤32中,加密传输的式子为:
[0078]
[0079] 其中,Enc表示加密, 表示通过轻节点公钥 进行加密;Sign表示签名;TS表示用于防范重放攻击的时间戳; 表示随机数。
[0080] 步骤4:物联网中的管理设备收集交易信息,并采用马尔科夫蒙特卡洛游走算法(MCMC)随机选取一部分交易,并从这些交易上开始随机游走,直到达到某个边缘交易tip。
[0081] 在本例中,tangle网络不生成区块,而是由site节点来表示,每个site节点表示一个交易,site节点之间由单向的边连接,site节点中的交易包括交易TX,如图1所示,图1为tangle网络模型图;没有任何其他交易直接或者间接指向的site节点,被称为边缘交易tip。其中tangle网络为一种分布式账本数据库,用于记录分布式交易数据。
[0082] 步骤5:管理设备统计步骤4中达到边缘交易的每条路径,随机选择出两条路径对应的边缘交易tip,通过网关节点请求获得这两个边缘交易tip的相关信息,得到交易信息。
[0083] 步骤6:网关节点返回交易信息给物联网中的设备节点,设备节点验证这两笔交易信息中的签名的合法性以及交易是否有效;若验证通过,则进入下一步骤;若验证不通过,则返回步骤5,重新选择边缘交易tip。
[0084] 步骤7:物联网中的管理设备运行POW共识算法引用通过验证的两个边缘交易tip,并赋予参与两个边缘交易tip对应的交易信息的设备节点信誉值;其中一个边缘交易tip对应一个交易,一个交易至少存在交易的双方,其中一方是数据提供者,在本例中数据提供者为传感器节点,传感器节点被包含在设备节点中;引用两个边缘交易tip表示对这两笔交易的确认。需要说明的是交易被直接或间接引用越多,表示对应交易的权重越大,则赋予的信誉值越多,交易值就越难被篡改;通过信誉值来调整POW共识算法的难度,其信誉值会根据设备节点的行为实时变化。
[0085] 所述步骤7中,POW全称为“Proof‑of‑Work”,表示工作量证明,POW是区块链中的现有方法;其中,赋予参与交易的节点信誉值的过程如下:
[0086] 每个设备节点i定义了信誉值 ,如下式所示:
[0087]                  (1)
[0088] 其中, 表示信誉值中的积极部分; 表示信誉值中的消极部分; 和 分别表示根据惩罚的难度动态调整系数,其中调整的过程根据惩罚的难度自动调节,调节范围为(0,1),在本例中设置 为1,设置 为0.8。
[0089] 所述积极部分 如下式所示:
[0090]               (2)
[0091] 其中,表示△T时间段内设备节点i的正常交易次数; 表示第k次交易的权重,R表示设备节点积极参与电网调控指令的程度;在本例中,设置R为1,△T为30s。
[0092] 所述消极部分 如下式所示:
[0093]           (3)
[0094] 其中,α(β)表示设备节点的两种恶意行为的设定值,包括双花行为以及重复验证固定交易的行为;在本例中设备节点的双花行为对应的α(β)值为1,重复验证固定交易的行为对应的α(β)值为0.7;t表示当前时间;表示设备节点i进行第k次恶意行为的时间; 表示单位时间内设备节点i的恶意行为总数;△T表示时间段。
[0095] 所述设备节点i的信誉值 与设备节点i的POW共识算法的难度值 的关系如下式所示:
[0096]                     (4)
[0097] 其中,θ表示调整的难度因子,在本例中难度因子的取值范围为1 20; 表示设备~节点i的POW共识算法的难度值。由式(4)可知,在设定难度因子的前提下,信誉值 越大,则对设备节点i的POW难度值越小,越容易被共识验证。
[0098] 所述POW公式算法的表达式为:
[0099]          (5)
[0100] 其中, 和 表示tangle网络中先前的两笔数据采集交易;hash表示哈希值;nonce表示随机数,寻找随机数的过程表示POW共识算法的工作量证明,信誉值越高,POW共识算法的工作过程难度就越小,寻找随机数nonce就越容易;output表示共识算法的哈希值输出。实施过程中,根据表达式通过改变随机数nonce的值来做运算,使得输出的哈希值output满足设定的前缀为零的最低长度。公式(1)代表节点的信誉值计算方式,信誉值影响POW共识算法的计算难度,信誉值与POW共识算法的难度成反比。式(5)是通过不断改变随机数nonce来计算哈希,这个过程代表着节点的工作量证明。
[0101] 步骤8:设备节点将交易信息发送给网关节点,网关节点接收交易信息,并将其广播到整个tangle网络,并且将交易信息存储在物联网设备中。物联网设备包括设备节点。
[0102] 步骤9:数据请求者将请求的数据信息和数据信息对应的物联网设备ID号作为交易发送给物联网中的智能合约。
[0103] 步骤10:智能合约接收交易信息,并准确执行交易中的条款,包括数据量和要选定想要获取数据的物联网设备ID;需要说明的是,智能合约在接收交易信息后,会验证数据请求者的签名、私钥等信息来确认请求者的身份,结束步骤。
[0104] 需要说明的是,物联网中的网关节点会实时监听来自智能合约的数据请求事件;在监听过程中,若物联网中收到来自智能合约的请求,则网关节点将根据数据类型、数据量和设备节点ID从链下存储中提取使用数据请求者账户的公钥加密这些数据,然后通过数据请求者提供的数据请求API发送给数据请求者,并且网关节点将在智能合约上确认数据已发送。
[0105] 所述物联网设备节点中的传感器设备用于获取电力数据,在本例中传感器设备间隔30s采集一次数据,传感器设备每完成一次数据采集,就更新一次设备节点的信誉值,系统根据信誉值更新调整每个节点POW共识算法的计算难度。
[0106] 在实施过程中,通过信誉值来调整POW共识算法的计算难度,正常行为会增加信用价值,异常行为会降低信誉值;POW共识算法的计算难度根据每个节点的信誉值自适应调整,信誉值越低,交易达成运行时间越长;该机制可以使诚实节点消耗更少的资源,同时迫使恶意节点增加攻击代价,信用评分在整个系统周期内动态调整,改进的POW共识算法非常适用于能力受限的物联网设备;在本例中依托tangle区块链技术,具有无手续费和低延迟的特点,易于扩展的tangle区块链系统很好的解决了电网公司和分布式能源供应商之间的数据共享的互信问题。
[0107] 实施例二:
[0108] 本实施例根据实施例一改进获得,在实施例一的基础上增加了网关节点管理的智能电表采集设备(SM),如图3所示,图3为本例中数据传输连接框架图,其中,一种基于信誉共识机制的安全的数据共享方法,包括如下步骤:
[0109] 步骤S1:物联网系统初始化以及生成密钥;
[0110] 步骤S2:智能电表采集设备利用网关节点的对称密钥,对数据Data进行加密,并附上数字签名,然后上传至tangle分布式账本;智能网关通过对称密钥对数据Data进行解密,并将解密后的数据进行链下存储;
[0111] 步骤S3:数据请求者发送数据交易请求信息到tangle网络;
[0112] 步骤S4:tangle网络获取数据请求信息,tangle网络中的节点如果有交易意愿,则会返回包含交易意愿的交易信息给数据请求者,达成一个智能合约;否则拒绝数据交易请求,结束步骤;
[0113] 步骤S5:智能合约首先验证数据请求者的身份是否合法;在验证通过后,用数据请求者的公钥PKq对数据进行加密后,分享给数据请求者;数据请求者在获得加密数据后,利用对应的私钥对加密数据进行解密,同时,对参与交易的设备节点运行POW共识算法,验证设备节点的信誉值,并且会赋予参与交易的节点信誉值。
[0114] 所述步骤S1中,物联网系统中包括设备节点和网关节点,其中设备节点包括传感器设备、服务器以及智能电表采集设备;其中智能电表采集设备生成三元组,表示为(IDs,(PKs,SKs)),(PKs,SKs)为智能电表采集设备的公私钥对,SKs采用对称密钥,并将生成的公私钥对上传至tangle网络;IDs为智能电表采集设备的唯一标识,智能电表采集设备的公钥上传至物联网中,完成注册后,就会成为物联网中的合法节点。网关节点生成三元组,表示为(IDw,(PKw,SKw));其中(PKw,SKw)为网关节点的公私密钥对,SKw采用对称密钥;IDw为网关节点的唯一标识;网关节点中的公钥PKw上传至tangle网络。数据请求者生成公私钥对(PKq,SKq),并上传公钥PKq至tangle网络。
[0115] 所述步骤S2中的数据Data加密、解密和存储的过程包括:
[0116] 步骤S2.1:网关节点通过智能电表采集设备的公钥PKs,对网关节点的对称密钥SKw加密;并将其传输至智能电表采集设备;
[0117] 加密过程表示为:
[0118] M1 = EncPKs{SignSKs,(SKw)}
[0119] 其中,M1表示对称密钥的的加密密文;SignSKs表示用智能电表采集设备的私钥SKs进行签名;Enc表示加密;
[0120] 步骤S2.2:智能电表采集设备通过自身的私钥PKs,对网关节点的加密内容进行解密;表示为:
[0121] M2= Dec{M1}
[0122] 其中,Dec表示解密过程;通过对M1的解密可以得到网关节点的对称密钥SKw;
[0123] 步骤S2.3:智能电表采集设备获得网关节点的对称密钥SKw后,利用网关节点的对称密钥SKw对电表数据加密并上传,电表数据表示智能电表采集设备采集的数据;上传的过程表示为:
[0124] Cdata = EncSKw{data||SignSKs}
[0125] 其中,Cdate表示利用网关节点的对称密钥SKw对电表数据进行加密后的数据;date表示采集的电表数据;SignSKs 表示用智能电表采集设备的私钥SKs进行签名;
[0126] 步骤S2.4:智能合约利用密钥对数据进行解密后将其进行链下存储到数据库中。
[0127] 所述步骤S5中,信誉值会根据设备节点的行为实时变化,通过设备节点的信誉值来调整其参与交易的POW共识算法的计算难度;其中设备节点的正常行为会增加信用价值,异常行为会降低信誉值。验证信誉值的方法为:
[0128] 每个设备节点i定义了信誉值Ci,如下式所示:
[0129]                (6)
[0130] 其中, 表示信誉值中的积极部分; 表示信誉值中的消极部分; 和 分别表示根据惩罚的难度动态调整系数,其中调整的过程根据惩罚的难度自动调节,调节范围为(0,1),在本例中设置 为1,设置 为0.8。
[0131] 所述积极部分 如下式所示:
[0132]               (7)
[0133] 其中,ni表示△T单位时间内设备节点i的正常交易次数;Wk表示第k次交易的权重,R表示设备节点积极参与电网调控指令的程度;在本例中,设置R为1,△T为30s。
[0134] 所述消极部分 如下式所示:
[0135]           (8)
[0136] 其中,α(β)表示设备节点的两种恶意行为,包括双花行为以及重复验证固定交易的行为;在本例中设备节点的双花行为对应的α(β)值为1,重复验证固定交易的行为对应的α(β)值为0.7;t表示当前时间;tk表示节点i进行第k次恶意行为的时间;mi表示单位时间内设备节点i的恶意行为总数。
[0137] 所述Ci如下式所示:
[0138]                     (9)
[0139] 其中,θ表示调整的难度因子,在本例中难度因子的取值范围为1 20;Di表示设备~节点i的POW共识算法的计算难度值。
[0140] 所述POW共识算法的表达式为:
[0141]          (10)
[0142] 其中,TX1和TX2表示tangle网络中先前的两个边缘交易tip对应的交易信息;hash表示哈希值;nonce表示随机数,寻找随机数的过程表示POW共识算法的工作量证明,信誉值越高,POW共识算法的计算过程难度就越小,寻找随机数nonce就越容易;output表示POW共识算法的哈希值输出。实施过程中,根据表达式通过改变随机数nonce的值来做运算,使得输出的哈希值output满足设定的前缀为零的最低长度。公式(1)代表节点的信誉值计算方式,信誉值影响POW共识算法的计算难度,信誉值与POW共识算法的计算难度成反比。式(5)是通过不断改变随机数nonce来计算哈希,这个过程代表着POW共识算法的工作量证明。
[0143] 如以下实例所示:
[0144] 实体包含有电网公司,能源用户,智能电表SM1,智能电表SM2,智能网关设备。智能电表是安装在能源用户的,其中智能电表SM1是被网关授权的设备,智能电表SM2是没有被授权的设备,能源用户通过智能网关对智能电表SM1进行管理。具体包括如下步骤:
[0145] 1. 初始化,智能电表SM1将公钥和智能电表SM1的ID上传到tangle网络中,智能合约会对其合法性进行检查,并对合法的智能电表设备进行授权。
[0146] 2. 密钥分发,智能网关利用智能电表SM1的公钥对智能网关的对称密钥进行加密,将加密信息发送给合法智能电表设备,例如智能电表SM1,因为此加密是用智能电表SM1的私钥进行加密的,因此智能电表SM1用自己的私钥将发来的信息进行解密,解密后得到网关的密钥。
[0147] 3. 智能电表SM1用网关的密钥对智能电表SM1采集的数据功率,用电量信息进行加密处理,智能电表SM1每隔30s上传一次采集的数据,智能网关对数据进行解密并将进行链下存储。
[0148] 4. 电网公司想要知道智能电表SM1在某一时刻功率信息,电网公司上传一个数据请求到智能合约,智能合约实时监听请求,当监听到电网公司发来的数据交易请求后,并对电网公司的身份信息进行验证,验证通过之后智能合约利用电网公司的公钥对采集的电力数据进行加密处理,通过调用API将用电网公司公钥加过密的数据发送给电网公司,电网公司得到加密后的数据,然后利用自己的私钥对数据进行解密得到想要的电力数据信息。
[0149] 在本例中,POW共识算法的计算难度根据每个节点的信誉值自适应调整,信誉值越低,交易达成运行时间越长;该机制可以使诚实节点消耗更少的资源,同时迫使恶意节点增加攻击代价,信用评分在整个系统周期内动态调整,改进的POW共识算法非常适用于能力受限的物联网设备。
[0150] 以上描述仅是本发明的具体实例,不构成对本发明的任何限制。显然对于本领域的专业人员来说,在了解了本发明内容和原理后,都可能在不背离本发明原理、结构的情况下,进行形式和细节上的各种修改和改变,但是这些基于本发明思想的修正和改变仍在本发明的权利要求保护范围之内。