一种基于区块链保护净水设备数据安全的方法及系统转让专利

申请号 : CN202011048854.9

文献号 : CN111901128B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 陈耿杨智程黄鹏王熙付贵曹幼霖

申请人 : 成都清渟科技有限公司湖南清渟科技有限公司

摘要 :

本发明公开了一种基于区块链保护净水设备数据安全的方法及系统,方法包括以下步骤:S1、将净水设备加入区块链网络;S2、获取净水设备的采集数据并计算滤芯寿命;S3、在云端对各个净水设备计算得到的滤芯寿命进行机器学习校准;S4、将其采集数据和校准后的滤芯寿命实时提交到区块链网络;S5、各个净水设备从区块链网络中获取其最新的滤芯寿命数据并作为其真实的滤芯寿命;各个所有者从区块链网络中获取其持有的净水设备最新的滤芯寿命数据和所有采集数据。本发明可以保证物联网生态体系中净水设备的相关数据不被篡改,且可供所有者查看净水设备的历史数据,了解净水设备的使用状态。

权利要求 :

1.一种基于区块链保护净水设备数据安全的方法,其特征在于,包括以下步骤:S1、将净水设备和其所有者进行绑定并加入区块链网络;

S2、获取净水设备的采集数据并计算滤芯寿命,将获取的采集数据、计算得到的滤芯寿命和净水设备的认证数据发送至云端;

S3、通过各个净水设备上传至云端的采集数据和滤芯寿命,在云端对各个净水设备计算得到的滤芯寿命进行机器学习校准,得到校准后的滤芯寿命;

S4、根据净水设备的认证数据将其采集数据和校准后的滤芯寿命通过区块链网络RPC接口以交易的方式实时提交到区块链网络;

S5、各个净水设备从区块链网络中获取其最新的滤芯寿命数据并作为其真实的滤芯寿命;

所述步骤S1的具体方法包括以下子步骤:

S1-1、将净水设备和其所有者进行绑定:绑定所有者的身份信息和净水设备的硬件信息;其中所有者的身份信息包括登录账号和手机号,净水设备的硬件信息包括设备编号和硬件编号;

S1-2、为所有者生成公私秘钥对;其中公钥为所有者在区块链上的地址,私钥用于注册交易的身份认证和签名;

S1-3、将完成的注册交易广播到区块链中,通过节点验证达成共识后将新净水设备加入到区块链网络;

S1-4、持续获取已在区块链中注册的净水设备和/或所有者是否提出访问区块链上的数据的请求,若是则判断其访问的数据是否为属于自己的数据,若是则进入步骤S1-5,否则进入步骤S1-6;其中提出访问请求的净水设备和/或所有者为请求主体;

S1-5、通过区块链验证请求主体的私钥和访问策略,若均通过则接受访问请求并返回对应的数据,否则拒绝访问,结束当前访问请求;

S1-6、请求主体向数据持有者发送目标地址和操作请求,通过数据持有者验证请求主体的公钥获取请求主体的身份,验证通过后根据请求主体的操作请求为其创建对应的访问策略,并将访问策略以锁定脚本的形式封装在交易的输出中,通过交易发送至请求主体的公钥,并将该交易广播到区块链网络中,结束当前请求;

所述步骤S1中的区块链网络为DAG链,DAG链的一端为出度为0的创世区块,创世区块至所有新区块构成有向无环图,哈希指针由新区块指向历史区块;

所述步骤S4的具体方法包括以下子步骤:

S4-1、选取N个权威节点,用于确认主链上交易的有效性和检查全网交易,包括记录交易区块的时间戳、监督每个区块按照权重值的大小排序进行验证;其中云端的服务器为权威节点;

S4-2、当任一终端节点对应的采集数据和校准后的滤芯寿命作为一笔数据交易,从与发起数据交易的节点有直接或间接关系的父区块中找到权重值最高的两个区块;

S4-3、将找到的权重值最高的两个区块的随机值和发起数据交易的节点的交易内容打包后添加一个随机数,并获取添加随机数后的打包内容的哈希值;

S4-4、判断该哈希值的前N位是否均为0,若是则将该哈希值作为发起数据交易的节点的权重数值并进入步骤S4-5;否则改变随机数值并返回步骤S4-3;

S4-5、将步骤S4-4中得到的权重数值及对应的随机数向全区块链网络广播;

S4-6、通过区块链网络中的其他节点中发起新交易的子区块以与步骤S4-2至步骤S4-5相同的方法对新区块对应的权重数值及随机数进行验证;

S4-7、若新区块对应的权重数值及随机数被一半以上的权威节点所验证通过,则认定该新区块有效,进入步骤S4-8;否则舍弃该新区块,并降低发起数据交易的节点的权重,进入步骤S4-9;

S4-8、判断当前新区块是否与历史区块存在冲突,若是则比较存在冲突的两个区块的主链指数,将主链指数低的区块加入区块链网络,舍弃主链指数高的区块,进入步骤S4-9;

S4-9、判断是否有节点的权重值为0,若是则从区块链网络中抛弃该节点;

区块权重值的获取方法为:

获取该区块被其他节点认证通过的节点数量,将该数量加1作为该区块的权重值;

数值N的获取方法为:

判断区块链网络中节点数是否小于15,若是则将区块链网络中节点数量除以3并向上取整后的数作为N的取值;否则将5作为N的取值。

2.根据权利要求1所述的基于区块链保护净水设备数据安全的方法,其特征在于,所述步骤S2中净水设备的采集数据包括用水数据、TDS数据、漏水数据和微生物含量数据。

3.一种采用权利要求1或2所述的基于区块链保护净水设备数据安全的方法的基于区块链保护净水设备数据安全的系统,其特征在于,包括云端服务器、设置在净水设备处的区块链支撑模块,以及设置在云端服务器中的区块链网络;

所述区块链支撑模块,用于将净水设备和其所有者进行绑定并加入区块链网络;将净水设备的采集数据、计算得到的滤芯寿命和净水设备的认证数据发送至云端;从区块链网络中获取其最新的滤芯寿命数据并作为其真实的滤芯寿命;

所述云端服务器,用于通过各个净水设备上传至云端的采集数据和滤芯寿命,对各个净水设备计算得到的滤芯寿命进行机器学习校准,得到校准后的滤芯寿命;根据净水设备的认证数据将净水设备的采集数据和校准后的滤芯寿命通过区块链网络RPC接口以交易的方式实时提交到区块链网络;

所述区块链网络,用于保存各个净水设备对应的采集数据和滤芯寿命,以及所有净水设备及所有者对某个资源的操作权限和操作记录;用于供各个净水设备更新滤芯寿命;用于供各个所有者获取其持有的净水设备最新的滤芯寿命数据、所有采集数据,以及用于供各个所有者获取所有净水设备及所有者对某个资源的操作权限和操作记录。

说明书 :

一种基于区块链保护净水设备数据安全的方法及系统

技术领域

[0001] 本发明涉及物联网数据安全领域,具体涉及一种基于区块链保护净水设备数据安全的方法及系统。

背景技术

[0002] 当前物联网生态体系依赖的是中心化的代理通信模式,不然就是服务器/用户端模式。所有的设备都是通过云服务器验证连接的,设备间的连接将会仅仅通过互联网实现。在这种分布式网络中,节点可以随意进出,给网络中带来安全隐患,出现仿冒节点的情况。
美国Mirai创造的僵尸物联网(Botnets of things)就曾经感染超过200万台摄像机等IoT设备,这些私人设备惨遭“奴役”。一旦服务器被黑客入侵,核心数据,包括认证信息、预警信息以及滤芯寿命数据均可能被篡改,造成企业和用户的巨大损失。另一方面,中心机构掌握了全局信息,用户隐私难以保障,且信息的不对称也使得损害用户利益的情况时有发生。

发明内容

[0003] 针对现有技术中的上述不足,本发明提供的一种基于区块链保护净水设备数据安全的方法及系统可以保证物联网生态体系中净水设备的相关数据不被篡改。
[0004] 为了达到上述发明目的,本发明采用的技术方案为:
[0005] 提供一种基于区块链保护净水设备数据安全的方法,其包括以下步骤:
[0006] S1、将净水设备和其所有者进行绑定并加入区块链网络;
[0007] S2、获取净水设备的采集数据并计算滤芯寿命,将获取的采集数据、计算得到的滤芯寿命和净水设备的认证数据发送至云端;
[0008] S3、通过各个净水设备上传至云端的采集数据和滤芯寿命,在云端对各个净水设备计算得到的滤芯寿命进行机器学习校准,得到校准后的滤芯寿命;
[0009] S4、根据净水设备的认证数据将其采集数据和校准后的滤芯寿命通过区块链网络RPC接口以交易的方式实时提交到区块链网络;
[0010] S5、各个净水设备从区块链网络中获取其最新的滤芯寿命数据并作为其真实的滤芯寿命。
[0011] 进一步地,步骤S1的具体方法包括以下子步骤:
[0012] S1-1、将净水设备和其所有者进行绑定:绑定所有者的身份信息和净水设备的硬件信息;其中所有者的身份信息包括登录账号和手机号,净水设备的硬件信息包括设备编号和硬件编号;
[0013] S1-2、为所有者生成公私秘钥对;其中公钥为所有者在区块链上的地址,私钥用于注册交易的身份认证和签名;
[0014] S1-3、将完成的注册交易广播到区块链中,通过节点验证达成共识后将新净水设备加入到区块链网络;
[0015] S1-4、持续获取已在区块链中注册的净水设备和/或所有者是否提出访问区块链上的数据的请求,若是则判断其访问的数据是否为属于自己的数据,若是则进入步骤S1-5,否则进入步骤S1-6;其中提出访问请求的净水设备和/或所有者为请求主体;
[0016] S1-5、通过区块链验证请求主体的私钥和访问策略,若均通过则接受访问请求并返回对应的数据,否则拒绝访问,结束当前访问请求;
[0017] S1-6、请求主体向数据持有者发送目标地址和操作请求,通过数据持有者验证请求主体的公钥获取请求主体的身份,验证通过后根据请求主体的操作请求为其创建对应的访问策略,并将访问策略以锁定脚本的形式封装在交易的输出中,通过交易发送至请求主体的公钥,并将该交易广播到区块链网络中,结束当前请求。
[0018] 进一步地,步骤S2中净水设备的采集数据包括用水数据、TDS数据、漏水数据和微生物含量数据。
[0019] 进一步地,步骤S1中的区块链网络为DAG链,DAG链的一端为出度为0的创世区块,创世区块至所有新区块构成有向无环图,哈希指针由新区块指向历史区块。
[0020] 进一步地,步骤S4的具体方法包括以下子步骤:
[0021] S4-1、选取N个权威节点,用于确认主链上交易的有效性和检查全网交易,包括记录交易区块的时间戳、监督每个区块按照权重值的大小排序进行验证;其中云端的服务器为权威节点;
[0022] S4-2、当任一终端节点对应的采集数据和校准后的滤芯寿命作为一笔数据交易,从与发起数据交易的节点有直接或间接关系的父区块中找到权重值最高的两个区块;
[0023] S4-3、将找到的权重值最高的两个区块的随机值和发起数据交易的节点的交易内容打包后添加一个随机数,并获取添加随机数后的打包内容的哈希值;
[0024] S4-4、判断该哈希值的前N位是否均为0,若是则将该哈希值作为发起数据交易的节点的权重数值并进入步骤S4-5;否则改变随机数值并返回步骤S4-3;
[0025] S4-5、将步骤S4-4中得到的权重数值及对应的随机数向全区块链网络广播;
[0026] S4-6、通过区块链网络中的其他节点中发起新交易的子区块以与步骤S4-2至步骤S4-5相同的方法对新区块对应的权重数值及随机数进行验证;
[0027] S4-7、若新区块对应的权重数值及随机数被一半以上的权威节点所验证通过,则认定该新区块有效,进入步骤S4-8;否则舍弃该新区块,并降低发起数据交易的节点的权重,进入步骤S4-9;
[0028] S4-8、判断当前新区块是否与历史区块存在冲突,若是则比较存在冲突的两个区块的主链指数,将主链指数低的区块加入区块链网络,舍弃主链指数高的区块,进入步骤S4-9;
[0029] S4-9、判断是否有节点的权重值为0,若是则从区块链网络中抛弃该节点。
[0030] 进一步地,区块权重值的获取方法为:
[0031] 获取该区块被其他节点认证通过的节点数量,将该数量加1作为该区块的权重值。
[0032] 进一步地,数值N的获取方法为:
[0033] 判断区块链网络中节点数是否小于15,若是则将区块链网络中节点数量除以3并向上取整后的数作为N的取值;否则将5作为N的取值。
[0034] 提供一种基于区块链保护净水设备数据安全的系统,其包括云端服务器、设置在净水设备处的区块链支撑模块,以及设置在云端服务器中的区块链网络;
[0035] 区块链支撑模块,用于将净水设备和其所有者进行绑定并加入区块链网络;将净水设备的采集数据、计算得到的滤芯寿命和净水设备的认证数据发送至云端;从区块链网络中获取其最新的滤芯寿命数据并作为其真实的滤芯寿命;
[0036] 云端服务器,用于通过各个净水设备上传至云端的采集数据和滤芯寿命,对各个净水设备计算得到的滤芯寿命进行机器学习校准,得到校准后的滤芯寿命;根据净水设备的认证数据将净水设备的采集数据和校准后的滤芯寿命通过区块链网络RPC接口以交易的方式实时提交到区块链网络;
[0037] 区块链网络,用于保存各个净水设备对应的采集数据和滤芯寿命,以及所有净水设备及所有者对某个资源的操作权限和操作记录;用于供各个净水设备更新滤芯寿命;用于供各个所有者获取其持有的净水设备最新的滤芯寿命数据、所有采集数据,以及用于供各个所有者获取所有净水设备及所有者对某个资源的操作权限和操作记录。
[0038] 本发明的有益效果为:
[0039] 1、本发明将每个净水设备变成可以自我维护调节的独立网络节点,这些节点可在事先规定或植入的规则基础上执行与其他节点交换信息或核实身份等功能。无论设备生命周期多长,是否需要更新或更换,新的设备加入链后获取的区块信息也是绝对安全和可追溯的,因此本发明可以保证物联网生态体系中净水设备的相关数据不被篡改,且可供所有者查看净水设备的历史数据,了解净水设备的使用状态。
[0040] 2、本发明通过对各个净水设备计算得到的滤芯寿命进行机器学习校准,当出现单个净水设备被入侵从而上传被篡改的数据时,其可以纠正被篡改的数据,同时也可以通过机器学习提高滤芯寿命的估计准确率,为用户提供更为可靠的数据。
[0041] 3、净水设备从区块链网络中直接更新滤芯寿命,可以避免云服务器被入侵导致本地滤芯寿命数据被篡改的问题。
[0042] 4、本发明可以对区块链网络中的主体进行为监控,对于存在可疑行为的主体,可进行公开审查,便于及时发现非法节点,保证区块链网络数据安全。

附图说明

[0043] 图1为本方法的流程示意图;
[0044] 图2为本申请中DAG链的示意图;
[0045] 图3为实施例中寻找权重值最高的两个历史节点的示意图。

具体实施方式

[0046] 下面对本发明的具体实施方式进行描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
[0047] 如图1所示,该基于区块链保护净水设备数据安全的方法包括以下步骤:
[0048] S1、将净水设备和其所有者进行绑定并加入区块链网络;
[0049] S2、获取净水设备的采集数据并计算滤芯寿命,将获取的采集数据、计算得到的滤芯寿命和净水设备的认证数据发送至云端;
[0050] S3、通过各个净水设备上传至云端的采集数据和滤芯寿命,在云端对各个净水设备计算得到的滤芯寿命进行机器学习校准,得到校准后的滤芯寿命;
[0051] S4、根据净水设备的认证数据通过将其采集数据和校准后的滤芯寿命通过区块链网络RPC接口以交易的方式实时提交到区块链网络;
[0052] S5、各个净水设备从区块链网络中获取其最新的滤芯寿命数据并作为其真实的滤芯寿命。
[0053] 步骤S1的具体方法包括以下子步骤:
[0054] S1-1、将净水设备和其所有者进行绑定:绑定所有者的身份信息和净水设备的硬件信息;其中所有者的身份信息包括登录账号和手机号,净水设备的硬件信息包括设备编号和硬件编号;
[0055] S1-2、为所有者生成公私秘钥对;其中公钥为所有者在区块链上的地址,私钥用于注册交易的身份认证和签名;
[0056] S1-3、将完成的注册交易广播到区块链中,通过节点验证达成共识后将新净水设备加入到区块链网络;
[0057] S1-4、持续获取已在区块链中注册的净水设备和/或所有者是否提出访问区块链上的数据的请求,若是则判断其访问的数据是否为属于自己的数据,若是则进入步骤S1-5,否则进入步骤S1-6;其中提出访问请求的净水设备和/或所有者为请求主体;
[0058] S1-5、通过区块链验证请求主体的私钥和访问策略,若均通过则接受访问请求并返回对应的数据,否则拒绝访问,结束当前访问请求;
[0059] S1-6、请求主体向数据持有者发送目标地址和操作请求,通过数据持有者验证请求主体的公钥获取请求主体的身份,验证通过后根据请求主体的操作请求为其创建对应的访问策略,并将访问策略以锁定脚本的形式封装在交易的输出中,通过交易发送至请求主体的公钥,并将该交易广播到区块链网络中,结束当前请求。
[0060] 步骤S2中净水设备的采集数据包括用水数据、TDS数据、漏水数据和微生物含量数据。
[0061] 如图2所示,为了让净水系统更灵活、快速、易扩展,本发明采用网状的DAG链拓扑结构替代传统的单链存储结构,在区块打包时间不变的情况下,并行对多个区块做验证,多个终端节点就可以按照不同的节奏共识确认交易,实现平行验证与高并发写入,以此提高链上的运行效率。其中DAG链的一端为出度为0的创世区块,创世区块至所有新区块构成有向无环图,哈希指针由新区块指向历史区块。除创世区块外,其他区块都可以有多个入度和多个出度,新区块暂时没有入度。它的运作原理为:每当有新的交易产生时,都向前验证N个交易区块的有效性。随着交易被越来越多的直接或者间接的交易所验证,这个交易的可信度就越来越高,直到最终被系统接受,形成新的区块。在这种结构下,同一时刻各节点的账本有可能不完全一致,但最终会是一致的。
[0062] 步骤S4的具体方法包括以下子步骤:
[0063] S4-1、选取N个权威节点,用于确认主链上交易的有效性和检查全网交易,包括记录交易区块的时间戳、监督每个区块按照权重值的大小排序进行验证;其中云端的服务器为权威节点;
[0064] S4-2、当任一终端节点对应的采集数据和校准后的滤芯寿命作为一笔数据交易,从与发起数据交易的节点有直接或间接关系的父区块中找到权重值最高的两个区块;
[0065] S4-3、将找到的权重值最高的两个区块的随机值和发起数据交易的节点的交易内容打包后添加一个随机数,并获取添加随机数后的打包内容的哈希值;
[0066] S4-4、判断该哈希值的前N位是否均为0,若是则将该哈希值作为发起数据交易的节点的权重数值并进入步骤S4-5;否则改变随机数值并返回步骤S4-3;
[0067] S4-5、将步骤S4-4中得到的权重数值及对应的随机数向全区块链网络广播;
[0068] S4-6、通过区块链网络中的其他节点中发起新交易的子区块以与步骤S4-2至步骤S4-5相同的方法对新区块对应的权重数值及随机数进行验证;
[0069] S4-7、若新区块对应的权重数值及随机数被一半以上的权威节点所验证通过,则认定该新区块有效,进入步骤S4-8;否则舍弃该新区块,并降低发起数据交易的节点的权重,进入步骤S4-9;
[0070] S4-8、判断当前新区块是否与历史区块存在冲突,若是则比较存在冲突的两个区块的主链指数,将主链指数低的区块加入区块链网络,舍弃主链指数高的区块,进入步骤S4-9;在权威节点见证的主链中,所有区块要么位于主链中,要么向前跳跃少数几个父区块就可以到达主链,跳跃的次数被称为主链指数;本步骤可以解决双花问题;
[0071] S4-9、判断是否有节点的权重值为0,若是则从区块链网络中抛弃该节点。
[0072] 区块权重值的获取方法为:获取该区块被其他节点认证通过的节点数量,将该数量加1作为该区块的权重值。例如图3中的节点C被节点A和节点B所验证,则节点C的权重为3。
[0073] 数值N的获取方法为:判断区块链网络中节点数是否小于15,若是则将区块链网络中节点数量除以3并向上取整后的数作为N的取值;否则将5作为N的取值。
[0074] 该基于区块链保护净水设备数据安全的系统包括云端服务器、设置在净水设备处的区块链支撑模块,以及设置在云端服务器中的区块链网络;
[0075] 区块链支撑模块,用于将净水设备和其所有者进行绑定并加入区块链网络;将净水设备的采集数据、计算得到的滤芯寿命和净水设备的认证数据发送至云端;从区块链网络中获取其最新的滤芯寿命数据并作为其真实的滤芯寿命;
[0076] 云端服务器,用于通过各个净水设备上传至云端的采集数据和滤芯寿命,对各个净水设备计算得到的滤芯寿命进行机器学习校准,得到校准后的滤芯寿命;根据净水设备的认证数据将净水设备的采集数据和校准后的滤芯寿命通过区块链网络RPC接口以交易的方式实时提交到区块链网络;
[0077] 区块链网络,用于保存各个净水设备对应的采集数据和滤芯寿命,以及所有净水设备及所有者对某个资源的操作权限和操作记录;用于供各个净水设备更新滤芯寿命;用于供各个所有者获取其持有的净水设备最新的滤芯寿命数据、所有采集数据,以及用于供各个所有者获取所有净水设备及所有者对某个资源的操作权限和操作记录。
[0078] 在本发明的一个实施例中,如图3所示,节点A在B、C、D、F、E这五个与A有直接或间接关系的父区块中找到权重值最高的B区块和B区块的权重值最高的直接父区块E区块来验证,其中B区块属于与节点A有直接关系的父区块,E区块属于与节点A有间接关系的父区块。
[0079] 在具体实施过程中,由于区块链上记录了所有主体对某个资源的操作权限,所有主体都可以查看。如果某个数据/资源的所有者恶意拒绝了满足条件的访问请求,将有可能被公开审查。各个所有者可以从区块链网络中获取其持有的净水设备最新的滤芯寿命数据和所有采集数据,以了解净水设备的历史运行情况。
[0080] 综上所述,本发明将每个净水设备变成可以自我维护调节的独立网络节点,这些节点可在事先规定或植入的规则基础上执行与其他节点交换信息或核实身份等功能。无论设备生命周期多长,是否需要更新或更换,新的设备加入链后获取的区块信息也是绝对安全和可追溯的,因此本发明可以保证物联网生态体系中净水设备的相关数据不被篡改,且可供所有者查看净水设备的历史数据,了解净水设备的使用状态。