基于区块链的物联网数据存储系统及方法
文献发布时间:2024-04-18 19:58:21
技术领域
本发明涉及物联网技术领域,特别是涉及基于区块链的物联网数据存储系统及方法。
背景技术
本部分的陈述仅仅是提到了与本发明相关的背景技术,并不必然构成现有技术。
物联网把新一代IT技术充分运用在各行各业之中,具体地说,就是把感应器嵌入和装备到电网、铁路、桥梁、隧道、公路、建筑、供水系统、大坝、油气管道等各种物体中,然后将“物联网”与现有的互联网整合起来,实现人类社会与物理系统的整合,在这个整合的网络当中,存在能力超级强大的中心计算机群,能够对整合网络内的人员、机器、设备和基础设施实施实时的管理和控制,在此基础上,人类可以以更加精细和动态的方式管理生产和生活,达到“智慧”状态,提高资源利用率和生产力水平,改善人与自然间的关系。
毫无疑问,如果“物联网”时代来临,人们的日常生活将发生翻天覆地的变化。然而,由于互联网的开放性,对于物联网数据中敏感数据的保护和访问控制的要求也随之而来。
一方面,现有物联网技术,收集了大量关于用户、环境和设备的数据,这些数据可能包含重要的敏感信息,但是对这些重要数据并无强有力的保护措施。另一方面,现有物联网技术,通常采用用户名和密码的传统方式进行身份验证。但是由于弱密码等安全问题,用户的密码容易被破解,从而导致重要数据被窃取。
因此,如何将各种各样的物联网设备接入网络,并且对物联网设备产生的敏感信息进行保护和访问控制,是现有技术中亟待解决的核心问题。
发明内容
为了解决现有技术的不足,本发明提供了基于区块链的物联网数据存储系统、方法、电子设备和计算机可读存储介质,将物联网技术和区块链技术有机结合,通过对原始数据进行脱敏、提取摘要处理,实现对非敏感数据的高效上链,并直接在链上进行公开展示,从而平衡数据的开放性和安全性。
第一方面,本发明提供了基于区块链的物联网数据存储系统;
基于区块链的物联网数据存储系统,包括:
驱动层,用于获取不同物联网设备采集的信息,并转换为统一的数据结构,得到原始物联网数据;其中,所述驱动层部署于驱动节点,所述驱动节点为分布式设置;
物联网云平台,用于获取原始物联网数据并传输;
数据库,用于接收原始物联网数据并存储;
区块链节点,用于接收原始物联网数据,并对原始物联网数据进行加密处理,获取脱敏后的物联网数据并提取摘要信息,并通过智能合约服务将摘要信息存储于区块链节点。
进一步的,所述驱动层还用于获取所述物联网云平台下发的指令,并将指令转换为物联网设备的可识别数据。
进一步的,采用椭圆曲线加密算法对原始物联网数据进行加密处理,将加密后的原始物联网数据通过哈希算法生成摘要信息。
进一步的,所述智能合约服务还包括摘要模块和授权模块,所述摘要模块用于存储摘要信息,所述授权模块用于数据共享的授权管理。
第二方面,本发明提供了基于区块链的物联网数据存储方法;
基于区块链的物联网数据存储方法,包括:
获取原始物联网数据,使用私钥生成签名请求,并和原始物联网数据同时发送至数据库,以使数据库对签名进行一致性校验且在一致性校验通过后将原始物联网数据写入数据库;
采用椭圆曲线加密算法对原始互联网数据进行加密校验,根据加密后的原始互联网数据,基于哈希算法,生成摘要信息,并通过智能合约服务上链存储。
进一步的,还包括:
获取数据访问者的数据查询请求,判断是否授权,若是,使用授权私钥生成签名请求并发送至物联网云平台,以使物联网平台对签名请求进行校验,校验通过后验证授权;
验证授权通过后,获取数据库中的原始物联网数据并使用授权公钥加密后,传输至区块链sdk,使用授权私钥将数据解密后传输至数据访问者。
优选的,若无授权,数据访问者向授权模块申请授权。
进一步的,在获取原始物联网数据之前,通过驱动层将不同物联网设备采集的信息转换为统一的数据结构,作为原始物联网数据。
第三方面,本发明提供了一种电子设备;
一种电子设备,包括存储器和处理器以及存储在存储器上并在处理器上运行的计算机指令,所述计算机指令被处理器运行时,完成上述基于区块链的物联网数据存储方法的步骤。
第四方面,本发明提供了一种计算机可读存储介质;
一种计算机可读存储介质,用于存储计算机指令,所述计算机指令被处理器执行时,完成上述基于区块链的物联网数据存储方法的步骤。
与现有技术相比,本发明的有益效果是:
1、物联网设备的类型多种多样,其数据格式、通讯协议等各不相同,由于设备的多样性和无统一的实现标准,使得设备的联网方式和数据的表示方式千差万别,为设备的使用和管理增加了复杂性。因此,本发明提供的技术方案,将设备交互抽象为驱动层,为物联网云平台提供统一数据格式的物联网设备采集的信息,并将物联网云平台下发的指令转换为物联网设备可识别的数据并发送给物联网设备。从而实现,各种不同的设备接入到物联网平台,以人类熟悉的方式展示和管理设备。
2、本发明提供的技术方案,将物联网技术和区块链技术有机结合,且清晰地对系统的职能层进行了详细划分,便于进行数据的展示和管理;对原始物联网数据进行依次、提取摘要处理,实现对非敏感数据的高效上链,并直接在链上进行公开展示,从而平衡数据的开放性和安全性。由于使用了区块链去中心化的身份鉴权功能,从而实现了无密码非中心化的存储。
附图说明
构成本发明的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。
图1为本发明实施例提供的基于区块链的物联网数据存储系统的框架示意图;
图2为本发明实施例提供的物联网数据共享写入流程示意图;
图3为本发明实施例提供的物联网数据共享查询流程示意图;
图4为本发明实施例提供的基于区块链的物联网数据存储系统的组成模块示意图。
具体实施方式
应该指出,以下详细说明都是示例性的,旨在对本发明提供进一步的说明。除非另有指明,本发明使用的所有技术和科学术语具有与本发明所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本发明的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
实施例一
现有技术中,物联网设备多种多样且无统一的实现标准,使得其数据表示方式千差万别,难以实现敏感数据的保护和访问控制;因此,本发明提供了一种基于区块链的物联网数据存储系统,将物联网技术和区块链技术有机结合。
区块链是一种在对等网络环境下,通过透明和可信规则,(按照时间戳顺序)构建不可伪造、不可篡改和可追溯的块链式数据结构,实现和管理事务(交易)处理的模式。是一种分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式,具有分布式对等、数据块链式、不可伪造和防篡改、透明可信、高可靠性等关键特征。
接下来,结合图1、图4对本实施例公开的基于区块链的物联网数据存储系统进行详细说明,该基于区块链的物联网数据存储系统包括驱动层、物联网云平台、数据库和区块链节点。
驱动层用于获取不同物联网设备采集的信息,并转换为统一的数据结构,得到原始物联网数据;以及获取物联网云平台下发的指令,并将指令转换为物联网设备的可识别数据传输至物联网设备;其中,驱动层部署于驱动节点,驱动节点为分布式设置。
物联网云平台用于获取原始物联网数据并传输,数据库用于接收原始物联网数据并存储,区块链节点用于接收原始物联网数据,并对原始物联网数据进行加密处理,获取脱敏后的物联网数据并提取摘要信息,并通过智能合约服务将摘要信息存储于区块链节点。智能合约服务还包括摘要模块和授权模块,摘要模块用于存储摘要信息,授权模块用于数据共享的授权管理。
具体的,采用椭圆曲线加密算法对原始物联网数据进行加密处理,将加密后的原始物联网数据通过哈希算法生成摘要信息。
示例性的,物联网设备表示各种各样的末端设备和设施,包括具备“内在智能”的传感器、移动终端、工业系统、数控系统、家庭智能设施、视频监控系统等,以及“外在使能”的,如贴上RFID的各种资产、携带无线终端的个人与车辆等等智能化物件、动物、超微型传感器。
进一步的,物联网云平台还包括控制层、数据层和应用层。
控制层用于对数据进行处理,包括规则匹配,如对设备上传的消息中的数据项进行比较,例如:预设规则,当温度计上传温度超过36度时,向系统管理员报警;驱动管理,负责对驱动层的各个驱动进行诸如,参数配置、功能开关等控制操作。
数据层包括数据库,数据库可以稳定的存储全量数据,但是在高频读写时会出现性能瓶颈,从而导致系统性能低下,甚至崩溃,此时,数据层通过缓存软件来缓解数据库的读取压力;通过消息队列,在设备上传数据过快的时候,形成一个数据缓冲区,然后将缓冲区的数据交给数据库慢慢存储,缓解数据库的写入压力。
应用层是指,通过调用下层的数据和接口,实现具体的、完整的、相互独立的业务需求。比如,预警系统、家居系统、监控系统等等,它们虽然都使用了下层提供的公共数据,但是侧重方向不同,面向的服务群体也各不相同。
进一步的,驱动层为设备交互制定了统一的数据结构,负责与设备交互和原始数据与统一数据结构的相互转换,从而实现各种不同的设备接入到物联网平台,以人类熟悉的方式展示和管理设备。
示例性的,通过设备的驱动程序构建驱动层,在获取到由设备发出的原始数据后,根据设备厂商提供的数据解码文档中,指定的解码规则,将原始数据进行解码。解码后的数据即人类可理解的数据元素。然后,将解码后的数据元素,按照驱动预设的数据元素与各数据项的对应关系,放置到对应的数据结构中的每个数据项中。
在驱动层中,设置统一驱动接口,制定了两种数据结构。设备向平台传输的数据结构命名为“报告”,在报告数据结构中,包含了由驱动解析之后的,人类可理解的数据元素。平台向设备传输的数据结构命名为“下发”,在下发数据结构中,也包含了人类可理解的数据元素,但是该数据元素,会被驱动编码成设备可解码数据,并发送给设备。
其中,驱动的数据结构,其包含的信息有:
①驱动标识,字段名称driver_id。用于定义某一驱动的唯一标识,不可重复。
②驱动名称,字段名称name。用于定义某一驱动的名称。
③驱动描述,字段名称description。用于定义某一驱动的功能和说明等简单阐述。
④驱动配置元素结构,字段名称configs。由于某些驱动在启动的时候,需要对其进行参数配置,该字段定义了该驱动所需要的配置参数。
⑤驱动所属驱动节点标识,字段名称node_id。由于驱动被设计为分布式模式,所以与驱动交互时需要区分该驱动运行在哪台服务器上。
⑥驱动上传到平台的信息的结构,字段名称reports。由于设备的千差万别,导致信息的表示方式也各不相同。为了上层方便使用数据,需要将不同的信息表示方式进行统一。该字段描述了驱动所有上传信息的名称、类型等信息。
⑦驱动添加对应设备的配置元素结构,字段名称payloads。
⑧驱动添加对应设备的子设备的配置元素结构,字段名称sub_payloads。
⑨驱动支持的功能的描述,字段名称abis。
驱动配置元素结构的数据结构,其包含的信息有:
①驱动配置项标识,字段名称config_id。用于定义配置项的唯一标识,不可重复。
②驱动配置项名称,字段名称name。用于定义配置项的名称。
③驱动配置项描述,字段名称desc。用于定义配置项的功能和说明等简单阐述。
④驱动配置项默认值,字段名称def。
⑤驱动配置项类型,字段名称type。支持的类型有字符串、整数、浮点数、布尔、多项选择、单项选择。
驱动上传到平台的信息的结构的数据结构(即转换为的统一的数据结构),其包含的信息有:
①驱动信息项标识,字段名称report_id,用于定义信息项的唯一标识,不可重复。
②驱动信息项名称,字段名称name,用于定义信息项的名称。
③驱动信息项描述,字段名称desc,用于定义信息项的简单阐述。
④驱动信息项类型,字段名称type,支持的类型有字符串、整数、浮点数、布尔。
⑤驱动信息项单位符号,字段名称symbol,例如:kg,km,L。
驱动添加对应设备的配置元素结构的数据结构,其包含的信息有:
①驱动添加设备配置项标识,字段名称payload_id,用于定义添加设备配置项的唯一标识,不可重复。
②驱动添加设备配置项名称,字段名称name,用于定义添加设备配置项的名称。
③驱动添加设备配置项描述,字段名称desc,用于定义添加设备配置项的功能和说明等简单阐述。
④驱动添加设备配置项是否必填,字段名称must。
⑤驱动添加设备配置项可选择项列表,字段名称options。
物联网云平台是本系统的中心部分,以人类理解的方式展示设备数据和执行需要。
区块链网络由一个共享的,容错的分布式数据库和多节点网络组成。在区块链数据库中,数据仅可通过共识算法以块的形式增加,不可修改或删除,以防止篡改;每个区块至少会包含一个块生成时间和出块签名;所有的交易数据都会被双方签名,以防止抵赖;传统区块链中,新增区块中储存上一个区块的hash,并通过此hash与上一个区块相连在区块链多节点网络中,所有节点都有浏览区块的权限,但是并不能完全控制区块所有节点都有验证区块,参与共识,并通过共识增加数据的权利通过区块链可以实现不依赖授信第三方的数据记录和链上数据溯源通过peer-to-peer网络的数据通信和可信价值交换对所有面向系统中心控制者的攻击都有非常强的抵抗能力。
区块链的网络结构采用了分布式(P2P)的网络架构,其中的一个“P”称之为链中的一个节点,通常情况下认为是一台具有自主处理能力的主机。每台主机都安装并运行了区块链协议节点软件,其中的节点可以分布在全球任何一个位置,通过internet把他们连接在了一起。网络当中的每个节点都被认为是相等的,一个完整的节点都会同步并存储节点上的全部数据复本。
智能合约是一个运行在区块链上的一个程序,它是位于区块链上一个特定地址的一系列代码(函数)和数据(状态)。它们无法被人操控,它们是被部署在S3上作为程序运行着。用户可以通过提交交易执行智能合约的某一个函数来与智能合约进行交互。智能合约能像常规合约一样定义规则,并通过代码自动强制执行。默认情况下,任何人无法删除智能合约,与它们的交互是不可逆的。
本系统的智能合约包含摘要模块和授权模块(权限层)两个部分,该模块保存设备上传的脱敏信息,这部分数据是公开在网络上的数据,任何人和组织都可以通过区块链网络查询到。授权模块用于授权管理,如果需要获得完整的设备上传数据,需要向该模块请求授权,获得授权之后,携带授权向区块链网络发起请求,区块链网络收到请求之后,会验证授权,验证通过之后,才会返回数据。
数据查询者想要查询摘要信息时,可以直接向区块链上的摘要模块发起请求,因为摘要模块中存储的数据是公开数据,所以,任何人和组织都可以获取到设备的摘要信息。
当数据查询者想要查询完整的设备数据时,需要先向授权模块请求授权,授权通过后,携带授权请请求物联网平台返回完整的设备数据。
实施例二
结合图2、图3,本实施例公开了基于区块链的物联网数据存储方法,包括:
S1、获取原始物联网数据,通过区块链SDK判断是否含有主体密钥对,若无,根据注册主体信息,通过智能合约创建整体密钥对;若有,使用私钥生成签名请求,并和原始物联网数据同时发送至数据库,以使数据库对签名进行一致性校验且在一致性校验通过后将原始物联网数据写入数据库。
S2、采用椭圆曲线加密算法对原始互联网数据进行加密校验,根据加密后的原始互联网数据,基于哈希算法,生成摘要信息,并通过智能合约服务上链存储并保存归属关系。
S3、获取数据访问者的数据查询请求,通过区块链sdk判断是否授权,若是,使用授权私钥生成签名请求并发送至物联网云平台,以使物联网平台对签名请求进行校验,校验通过后,获取智能合约,验证授权;若无授权,则向授权模块申请授权。
S4、验证授权通过后,获取数据库中的原始物联网数据并使用授权公钥加密后,传输至区块链sdk,使用授权私钥将数据解密后传输至数据访问者。
本实施例中,S1、S2、S3和S4中的加密校验中均使用的是椭圆曲线加密算法。
椭圆曲线加密算法(ECC),加密算法原理如下:
描述一条Fp上的椭圆曲线,常用到六个参量:T=(p,a,b,n,x,y)。(p、a、b)用来确定一条椭圆曲线,p为素数域内点的个数,a和b是其内的两个大数;x,y为G基点的坐标,也是两个大数;n为点G基点的阶;以上六个量就可以描述一条椭圆曲线,有时还会用到h(椭圆曲线上所有点的个数p与n相除的整数部分)。
接下来,描述一个利用椭圆曲线加密算法进行加密通信的过程:
(1)选定一条椭圆曲线Ep(a,b)并取椭圆曲线上一点,作为基点P。
(2)选择一个大数k作为私钥,并生成公钥Q=kP。
(3)将Ep(a,b)和点Q、P传给用户。
(4)用户接到信息后,将待传输的明文编码到Ep(a,b)上的一点M,并产生一个随机整数r。
(5)公钥加密(密文C是一个点对):C={rP,M+rQ}
(6)私钥解密(M+rQ-k(rP),解密结果就是点M),公式为:M+rQ-k(rP)=M+r(kP)-k(rP)=M
(7)对点M进行解码就可以得到明文假设在加密过程中,有一个第三者H,H只能知道椭圆曲线Ep(a,b)、公钥Q、基点P、密文点C,而通过公钥Q、基点P求私钥k或者通过密文点C、基点P求随机数r都是非常困难的,因此得以保证数据传输的安全。
实施例三
本发明实施例三提供一种电子设备,包括存储器和处理器以及存储在存储器上并在处理器上运行的计算机指令,计算机指令被处理器运行时,完成上述基于区块链的物联网数据存储方法的步骤。
实施例四
本发明实施例四提供一种计算机可读存储介质,用于存储计算机指令,所述计算机指令被处理器执行时,完成上述基于区块链的物联网数据存储方法的步骤。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
上述实施例中对各个实施例的描述各有侧重,某个实施例中没有详述的部分可以参见其他实施例的相关描述。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
- 一种基于区块链的乘客出行数据采集存储系统及方法
- 基于物联网和区块链技术的数据存储系统及方法
- 一种基于区块链的数据存储系统及数据存储方法