一种基于区块链的物联网可信分布式数据共享方法与流程

文档序号:18899311发布日期:2019-10-18 21:43阅读:276来源:国知局
一种基于区块链的物联网可信分布式数据共享方法与流程

本发明公开了一种基于区块链的物联网分布式数据共享方法,尤其涉及区块链、密码学、数据权限管理和分布式存储等技术领域。



背景技术:

随着互联网技术的飞速发展,特别是5g时代的来临,万物互联及智能化是未来的发展趋势。物联网规模逐渐扩大,海量的数据由此产生,如何对这些数据进行有效共享,从而挖掘出不同源数据间隐藏的价值,这对物联网的智能化转型有着重大的意义。比如,物联网中的无线传感网络(wsn)会收集其内部各种智能设备产生的数据,人们可以对这些数据作进一步的联合分析,以获得潜在价值。但是,物联网中的数据往往是异构的,实时的,大规模的,且不同的wsn也是孤立的,这给设备间数据信息的共享带来了很大的难度。

对目前的物联网应用来说,其主要关注点是数据的采集、传输以及存储,而对数据的共享研究很少。物联网本地应用基本是闭环模式,所采集的数据只服务于一种单一应用,数据间难以实现共享,从而导致了一个个信息孤岛的形成。云存储的出现一定程度上缓解了这种信息闭环的问题,物联网环境中的所有数据被采集、传输、存储在云中,用户可以随时随地访问云中心的资源,以及与他人共享数据。但是物联网数据来源分散、数据量大、数据的敏感问题以及物联网规模的快速扩展问题等,都对类似于云的中心化共享模型提出了挑战:1)成本问题:由于物联网的规模大、数据来源分散,搭建集中式共享平台需要付出极大的运营和维护成本;2)安全问题:集中式共享模型一般具有单点故障缺陷,同时,传统以云为中心的方法,虽然可以引入可信的第三方审计者,来为用户提供数据的完整性保证,但却无法保证数据的隐私性。3)效率和灵活性问题:在集中式的共享模型中,我们需要频繁的与共享中心进行交互,这会导致效率低下且不具备灵活性;如果该中心是云服务器,还会极大的浪费网络带宽。

从上述观点来看,未来需要一种去中心化的可信分布式方法,为该场景提供数据存储和共享服务。它不需要担心单节点故障问题,也不需要完全依赖云服务提供商传输和存储数据。基于此,本发明提出一种基于区块链的物联网分布式数据共享方法。引入区块链技术,通过p2p的形式将独立的子网连接起来,构建成一种去中心化的分布式结构。设备数据由所属子网络的预选定边缘网关结点(边缘服务器)存储,是一个p2p分布式存储结构,而不是将物联网环境下的所有数据进行集中式存储。这样,在数据共享过程中,就不会产生频繁向某一个中心发送共享请求的问题,不仅提高了系统的效率和灵活性,而且有效解决了单点故障问题;通过区块链技术的智能合约,构建安全的信任机制,解决了物联网各异构对象之间实现可信数据共享的核心问题。同时,智能合约的自动化执行也降低了系统运营成本;利用区块链的分布式账本机制,追溯和审计不同用户的数据访问行为,可以有效提升数据共享的安全性能和效率。



技术实现要素:

本发明的目的在于提供一种基于区块链的物联网可信分布式数据共享方法,从而克服现有技术的不足。

本发明的技术方案在于,自底向上由资源层、网络层、区块链层、应用层四部分结构组成;

自底向上由资源层、网络层、区块链层、应用层四部分结构组成;

所述的资源层由底层设备/用户组成,是数据资源的提供者和使用者,其中一部分底层设备/用户组成子网络,资源层包括至少两个子网络;

所述的网络层由各物联子网彼此组合形成,从而涵盖了资源层中的所有设备;各子网络内部均有一个存储和计算能力较大的预选定代理结点(pspn),该pspn一般是一个边缘网关服务器,它存储来自资源层的数据;各子网内部的预选定结点pspn以p2p的形式相连,从而达到不同子网互通的目的;

所述的区块链层由各子网络内部预选定结点pspn组成,所述的区块链层还包括设备/用户管理模块、数据管理模块、权限管理模块、网络配置模块;其中的设备/用户管理模块、数据管理模块、权限管理模块构成智能合约功能。

所述的网络层和区块链层还依赖一个公共的密钥管理服务模块,所述的密钥管理服务模块为在子网中注册的设备/用户和区块链成员结点pspn颁发公私钥,实现公钥加密,私钥签名。

本发明包括以下保护方法:

由资源层的底层设备组成至少两个子网,各子网彼此组合形成网络层,各子网内部均设置一个存储和计算能力较大的预选定边缘网关结点pspn,各预选定结点pspn组成区块链层;区块链层具有智能合约功能,智能合约的功能包括有:设备/用户注册、设备/用户登陆、设备/用户管理;请求授权、发布授权、验证授权、更改授权;区块链层各预选定边缘网关结点pspn内部的分布式缓存数据库构成数据记录池,数据记录池用来存储设备/用户信息,授权信息,以及基于属性的权限访问规则表;访问控制行为(比如某个设备在某个时间访问了某个子网络的数据)被区块链层以区块的形式(若干个访问控制行为信息组合成一个块)记录下来进行本地永久化保存,多个块链接起来形成一个链状的分布式账本,该账本存在于所有的pspn中,账本的更新需要得到所有pspn的共识以保证每个pspn内部的账本是一致的;应用层包含一个web服务应用,以上所有对应的模块功能都可以通过该web应用来进行可视化操作。

本发明各模块包括以下具体操作方法:

part1)设备/用户管理模块:其对应功能为设备/用户注册,登陆以及设备/用户信息管理,这些功能都可以通过应用模块的web界面来操作。首先设备/用户根据其自身产生的数据属性选择相应的子网进行注册,对应子网的管理者审核注册信息,确认是否允许该设备/用户注册,一旦设备/用户注册成功,则该设备/用户就属于该子网的合法成员,登录后可进行数据访问请求。设备/用户的信息(比如,设备/用户id、通信ip、属性、注册时间、注册网络、公钥等)均会存储到区块链网络中的分布式记录池中,意味着所有区块链网络成员的记录池中都存储有该设备/用户的信息。当然只有该设备/用户所在的子网管理者才可决定是否移除该注册的设备/用户。

part2)密钥管理模块:区块链网络刚启动过程中,密钥管理模块会为每个网络结点分发公私钥对,同时设备/用户在注册时也会获得一对公私钥。所有的结点或者设备/用户的公钥都和他们的信息一起存储在分布式记录池中,也就是公钥是公开的,而私钥由结点或设备/用户自身保留,可导出到本地。

part3)网络配置模块:子网络内部包含已注册的设备/用户,它们是数据的生产者同时也是使用者,设备产生的数据存储在子网内部的pspn上,同时pspn又是区块链网络的成员结点。所有子网络之间形成了逻辑意义上的覆盖网络,可以涵盖资源层的所有设备/用户。设备/用户可以直接向预选定结点发送请求,直接访问本子网内部数据,同时也可通过预选定结点访问其他子网的数据,整个访问控制过程由区块链网络的智能合约定义,可自动化执行。

part4)数据管理模块:存储由两部分组成,一个是分布式记录池还有一个是本地数据存储。分布式记录池属于链上存储,本地数据存储是链下存储,即设备生产的数据存储在对应子网预选定结点的数据库中。这种链上链下的结合存储方式有助于解决区块链无法存储大量数据的问题,可以极大提高系统性能。最后,当有设备/用户访问链下或链上数据的时候,数据管理模块均能对其作出响应。

part5)权限管理模块:该模块主要是进行数据访问请求控制。当设备/用户访问网络数据时,权限管理模块会通过查找分布式记录池中,设备/用户在注册阶段添加的设备/用户信息并找到其属性,同时与访问数据所在的目的网络的属性进行校验。若本身属性与目的网络属性一致,则表明访问的是本网络数据,可直接访问,否则为跨网络访问。该模块会去查找记录池中的授权信息,若没有则通知该设备/用户需要向目的网络发起授权信息请求。目的网络管理员通过授权管理模块,可为其添加授权信息,同时也可以关闭、删除授权信息。

part6)应用模块:以上所有功能均通过应用模块的web界面来进行可视化操作。

本发明的有益效果在于,解决了工业物联网环境中多个孤立子网络间的有效联通问题,以及物联网内部对象间难以信任的关键问题;设置了一种新的分布式共享访问管理方法,该方法可以解决物联网集中式共享模式下的低效率问题;提出的分布式存储共享架构解决了单点故障问题以及第三方可信问题;同时通过部署区块链的智能合约,使得访问控制过程自动化执行,降低了系统运营成本;最后分布式账本记录了系统中所有的交互操作且不可更改,可以随时查询操作记录,进一步保障了系统和原始数据的安全。

附图说明

图1为系统架构图。

图2为系统核心结构图。

图3为网络层中预选定的代理结点pspn的内部组成图。

图4为系统的执行活动图。

具体实施方式

为了使本发明的目的、发明内容及优点更加清楚明白,以下对本发明做进一步的详细说明。

本发明的实施例如图1所示,自底向上由资源层、网络层、区块链层、应用层四部分结构组成;

所述的资源层由底层设备/用户组成,是数据资源的提供者和使用者,其中一部分底层设备/用户组成子网络,资源层包括至少两个子网络;

所述的网络层由各物联子网彼此组合形成,从而涵盖了资源层中的所有设备;如图2所示,资源层的各子网络内部均有一个存储和计算能力较大的预选定代理结点(pspn),该pspn一般是一个边缘网关服务器,它存储来自资源层的数据;各子网内部的预选定结点pspn以p2p的形式相连,从而达到不同子网互通的目的;

所述的区块链层由各子网络内部预选定结点pspn组成,所述的区块链层还包括设备/用户管理模块、数据管理模块、权限管理模块、网络配置模块;其中的设备/用户管理模块、数据管理模块、权限管理模块构成智能合约功能。

所述的网络层和区块链层还依赖一个公共的密钥管理服务模块,所述的密钥管理服务模块为在子网中注册的设备/用户和区块链成员结点pspn颁发公私钥,实现公钥加密,私钥签名。

本发明包括以下保护方法:

由资源层的底层设备组成至少两个子网,各子网彼此组合形成网络层,各子网内部均设置一个存储和计算能力较大的预选定边缘网关结点pspn,各预选定结点pspn组成区块链层;区块链层具有智能合约功能,智能合约的功能包括有:设备/用户注册、设备/用户登陆、设备/用户管理;请求授权、发布授权、验证授权、更改授权;区块链层各预选定边缘网关结点pspn内部的分布式缓存数据库构成数据记录池,数据记录池用来存储设备/用户信息,授权信息,以及基于属性的权限访问规则表;访问控制行为(比如某个设备在某个时间访问了某个子网络的数据)被区块链层以区块的形式(若干个访问控制行为信息组合成一个块)记录下来进行本地永久化保存,多个块链接起来形成一个链状的分布式账本,该账本存在于所有的pspn中,账本的更新需要得到所有pspn的共识以保证每个pspn内部的账本是一致的;应用层包含一个web服务应用,以上所有对应的模块功能都可以通过该web应用来进行可视化操作。

本发明各模块包括以下具体操作方法:

第一部分设备/用户管理模块:其对应功能为设备/用户注册,登陆以及设备/用户信息管理,这些功能都可以通过应用模块的web界面来操作。首先设备/用户根据其自身产生的数据属性选择相应的子网进行注册,对应子网的管理者审核注册信息,确认是否允许该设备/用户注册,一旦设备/用户注册成功,则该设备/用户就属于该子网的合法成员,登录后可进行数据访问请求,该部分见图4的注册阶段。另外设备/用户的信息(比如,设备/用户id、通信ip、属性、注册时间、注册网络、公钥等)均会存储到区块链网络中的分布式记录池中,意味着所有区块链网络成员的记录池中都存储有该设备/用户的信息,可以保证注册过程是公开的。当然只有该设备/用户所在的子网管理者才可决定是否移除该注册的设备/用户。

第二部分密钥管理模块:区块链网络刚启动过程中,密钥管理模块会为每个网络结点分发公私钥对,同时设备/用户在注册时也会获得一对公私钥。所有的结点或者设备/用户的公钥都和他们的信息一起存储在分布式记录池中,也就是公钥是公开的,而私钥由结点或设备/用户自身保留,可导出到本地。

第三部分网络配置模块:子网络内部包含已注册的设备/用户,它们是数据的生产者同时也是使用者,设备产生的数据存储在子网内部的pspn上,同时pspn又是区块链网络的成员结点。所有子网络之间形成了逻辑意义上的覆盖网络,可以涵盖资源层的所有设备/用户。设备/用户可以直接向预选定结点发送请求,直接访问本子网内部数据,同时也可通过预选定结点访问其他子网的数据,整个访问控制过程由区块链网络的智能合约定义,可自动化执行,该部分见图4的网络内数据访问阶段和跨网络数据访问阶段。

第四部分数据管理模块:存储由两部分组成,一个是分布式记录池还有一个是本地数据存储。分布式记录池属于链上存储,本地数据存储是链下存储,即设备生产的数据存储在对应子网预选定结点的数据库中。这种链上链下的结合存储方式有助于解决区块链无法存储大量数据的问题,可以极大提高系统性能。最后,当有设备/用户访问链下或链上数据的时候,数据管理模块均能对其作出响应。

第五部分权限管理模块:该模块主要是进行数据访问请求控制。当设备/用户访问网络数据时,权限管理模块会通过查找分布式记录池中,设备/用户在注册阶段添加的设备/用户信息并找到其属性,同时与访问数据所在的目的网络的属性进行校验。若本身属性与目的网络属性一致,则表明访问的是本网络数据,可直接访问,否则为跨网络访问。该模块会去查找记录池中的授权信息,若没有则通知该设备/用户需要向目的网络发起授权信息请求。目的网络管理员通过授权管理模块,可为其添加授权信息,同时也可以关闭、删除授权信息。

第六部分应用模块:以上所有功能均通过应用模块的web界面来进行可视化操作。

结合图4,本发明具体步骤如下:

步骤01:搭建好底层分布式网络,将不同子网的预选定边缘网关结点pspn添加进区块链层中,pspn的操作用户可视为各独立子网络的管理者,其信息会在网络启动后添加进分布式记录池中。同时资源层中所有设备/用户集设置为空,也就是各个子网络中目前只有pspn,资源层还没有任何设备/用户结点的加入。

步骤02:开启应用层的web应用,打开浏览器访问网页版系统;首先我们可以为资源层添加设备,设备管理员们可以将不同的设备注册进不同的子网络中,以便将设备产生的数据存储在不同的pspn中。然后就是用户注册,假设用户1注册进子网络1,以便获取各种设备数据;设备注册与用户注册流程是一样的,以下步骤以用户为例。

步骤03:子网络1的管理者登陆系统后通过设备/用户管理模块,审核注册信息,一旦用户1的注册请求被审核通过,则用户1的基本信息将会被存储在区块链层中的分布式记录池中,同时该注册过程的基本操作信息被分布式账本以区块的形式记录。

步骤04:用户1登陆,登陆成功后跳转到主页面;在主页面用户1可导出自己的私钥,其公钥作为用户信息被自动存储在分布式记录池中,所述的公私钥对,由密钥管理模块在设备的注册阶段自动分发。

步骤05:登陆成功的用户1通过所在子网的预选定结点pspn,向区块链层发送请求,可以随时查看分布式记录池中的公开数据信息,比如各个pspn的公钥信息。

步骤06:同时用户1可以查询自己的数据访问权限,此时用户1可直接访问子网络1中的设备数据。根据规则,用户向某一个子网请求注册被审核通过后,应该具有跟该子网一样的属性,因为在注册阶段审核者会验证属性,若属性不一致是注册不成功的;例如,假设子网络1的属性为prodepartment,则用户1的属性也为prodepartment。

步骤07:用户1向子网络2发送跨子网数据请求。当跨子网请求时,由于属性验证无法通过,即用户1和子网络2的属性不一致,不满足分布式记录池中的属性权限规则表,从而无法直接访问。此时权限管理模块会进行授权信息验证,需要用户1输入授权信息验证码,若没有对应授权信息验证码则该模块会提醒用户1向子网络2的管理者发起授权请求。

步骤08:步骤07中子网络2的管理者登陆系统后,看到用户1发送的授权请求信息,该授权请求信息内包含用户1的公钥。此时该管理者可以对该授权请求作出应答,接受或者拒绝授权;一旦管理者接受该请求,分布式记录池中就会添加一条授权信息,同时系统会自动生成一个六位数验证码。此时,权限管理模块会自动将该验证码用用户1的公钥进行加密以得到加密信息,同时利用子网络2的管理者的私钥加密该加密信息得到签名信息。

步骤09:用户1登陆系统后会收到步骤07中子网络2的管理者授权成功的通知,同时也会收到系统发送过来的加密信息和签名信息,利用分布式记录池中的公钥自动校验签名信息,保证该信息是由子网络2管理者发来的。同时用户1导入自己的私钥来解密该加密信息,最后得到一个六位数的验证码。

步骤10:当用户1拿到步骤09发过来的验证码后,输入该验证码来匹配分布式记录池中的授权信息。若授权信息匹配成功,则会获得访问子网络2数据中心url的权限,从而来达到跨网络访问的目的。

步骤11:当用户1通过验证码授权信息验证后,数据管理模块立即响应请求,并生成一个子网络2数据中心的url地址,用户1进入该地址可对子网络2内部的设备数据进行转存或下载。

步骤12:子网管理者可以删除在自己网络内部已注册的设备/用户,或者删除给非本网络用户添加的授权信息。

步骤13:系统运行过程中,用户1的注册,以及用户1的授权等操作信息都会被区块链层以区块的形式记录下来,形成一个分布式账本,该账本存在于所有的子网内部,保证了操作记录的透明性,从而保证了访问过程中子网内部设备数据的安全。

步骤14:查询区块链网络的分布式账本,也就是区块信息。这里的账本是由区块通过哈希值链接在一起的,而区块又由系统的操作信息组成。区块中任何操作信息的更改都会导致哈希值的变化,同时该账本存在于所有的pspn中,若更改则需要全网结点的共识,所以该账本几乎无法被篡改。我们通过web应用,可对账本进行查询,所有的系统操作记录都是可追溯的,且不可更改。

为了更详细的说明本发明提出的基于区块链的物联网分布式数据共享和保护方法,下面给出两个具体的实施案例:

实例一

本实例应用背景为物联网,该背景下有四个独立的子网络,每个子网络的管理者结点组成一个区块链网络,首先子网1内部的用户1需要向子网1申请注册,子网1的管理者审核通过后,用户1可登陆且直接访问子网1的数据资源;然后用户1可继续通过子网1的pspn向子网2发送访问请求,但是需要权限验证,此时用户1向子网2发送授权请求,子网2的管理者审核授权请求后,用户1会得到一个授权信息验证码,通过该验证码可访问子网2的数据资源。

实例二:

在某公司的四个部门之间,四个部门的管理者加入区块链层,部门1的员工1需要先向部门1的管理者请求注册,注册成功后可直接访问本部门文件,如果部门1的员工1需要访问部门2的文件,则需要部门2的管理者通过区块链网络的智能合约授权。

本发明具有以下增益效果:

①可信问题:现有的数据共享模式基本都依赖于可信第三方,且这种第三方可信模式固化不易更改。本发明的这种分布式共享方法杜绝了第三方可信问题,且数据由本地网络所拥有,使生产者的数据得到完全意义上的保障。

②存储问题:工业物联网的智能设备是资源受限的,其存储空间和计算能力有限,并不能完全自己存储、管理自己的数据。子网中采用预选定结点pspn的模式,我们完全可以让边缘网关服务器充当pspn,将数据进行边缘分布式存储,而不需要借助第三方云存储中心集中化存储,同时区块链网络的数据访问控制也保证了数据边缘存储的安全性。

③安全隐私问题:区块链技术和密码学技术保证了数据的安全性。以上两个技术分别包含在网络配置模块和密钥管理模块中。同时区块链技术所生产的分布式账本,通过该账本可以对网络中的所有操作进行回溯,比如设备/用户注册、用户登陆、设备/用户管理、数据访问请求、请求授权、发布授权、更改授权等。这些操作都以区块的形式被记录下来了,存储在区块链网络的所有成员中,也就是所有子网的预选定结点pspn内部。可以随时查找执行这些操作的对象,以及时间戳等具体信息,进一步保障数据的完整性和安全性。

④联网传输及信任问题:物联网中实体往往是闭环的,彼此间很难实时联通,同时各个实体间很难彼此信任。网络配置模块通过将异构子网以p2p的形式连接起来,通过智能合约定义实体间的访问机制,很好地解决了物联网环境中的联网传输以及信任问题。

⑤用户体验问题:本发明方法完全模块化,通过脚本一键部署,通过浏览器的web应用来操作对应的所有功能,用户使用起来非常便捷,准入门槛低。

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