面向6G 的区块链物联网数据共享和存储机制
2020-11-03蒋宇娜葛晓虎杨旸王承祥李颉
蒋宇娜,葛晓虎,杨旸,王承祥,李颉
(1.华中科技大学电子信息与通信学院,湖北 武汉 430074;2.上海科技大学信息科学与技术学院,上海 201210;3.鹏城实验室网络通信研究中心,广东 深圳 518000;4.东南大学移动通信国家重点实验室,江苏 南京 210096;5.紫金山实验室,江苏 南京 211111;6.上海交通大学电子信息与电气工程学院,上海 200240)
1 引言
6G 移动通信将促进物联网时代的全面实现。6G 移动通信网络不仅连接人,还连接计算资源、车辆、设备、传感器和机器人代理等,以满足完全互联、智能数字世界的需求[1-4]。物联网是一种将现实世界中的物体与网络连接起来的网络范式[5]。物联网允许设备在无人干预的情况下进行数据的收集、处理和通信[6-7]。在6G 移动通信系统中,物联网的全面部署使网络接入数快速增长。根据爱立信的预测,到2025 年将会有超过249 亿台设备连接到网络。智能设备量的增长使网络数据量呈现爆炸式增长态势[8-10]。通过对物联网数据的收集和分析,可以进一步挖掘物联网数据的潜在价值[11]。但是因为不同的物联网系统之间存在数据壁垒,使数据的价值被抑制。例如在新冠肺炎疫情暴发阶段,为了尽可能准确地找到潜在的病毒携带者,很多互联网公司推出了确诊患者的全国同乘查询服务,但是这些服务无法覆盖一些公共场所,如商场、广场、公园等,从而无法获得确诊患者的完整轨迹。在万物互联时代,如何集合不同物联网系统采集的数据,例如公共场所的摄像头、不同的应用程序等,实现多个物联网系统之间的数据共享,从而确定确诊患者的完整轨迹是一个难题。
如果将所有的数据都发送到集中式云平台进行处理,会带来巨大的挑战。首先,如果中央服务器出现故障,整个网络服务器都会面临瘫痪风险,例如对集中式服务器进行拒绝服务攻击可能导致单点故障问题。其次,用户对个人数据如何使用以及被谁使用的控制是有限的,存储在集中式服务器中的数据可能会泄露个人隐私。最后,存储在集中式云中的数据缺乏可靠性和可跟踪性。集中式物联网基础设施要求信任第三方进行数据处理,而存储在集中式服务器上的数据有被删除或篡改的风险[12]。区块链技术因分散自治、不可篡改、可溯源等特点在近些年被广泛关注。区块链技术被认为是简化网络管理并提升6G 网络性能的关键去中心化技术[13]。区块链上存储的数据需由全网共同维护,可以在缺乏信任的节点之间有效地传递价值[14]。利用区块链技术,以前只能通过可信第三方平台进行的物联网数据共享现在可以通过去中心化的方式运行[15]。但是,基于区块链技术的物联网数据共享研究仍然面临很多挑战,其中一个关键问题是共享数据的存储问题。
目前,很多基于区块链的数据共享研究都忽略了共享数据的存储问题。文献[16]为了解决无信任环境中医疗数据的共享问题,使用区块链技术为大数据实体间的共享医疗数据提供数据来源、审计和控制。文献[17]针对多云平台中的数据安全共享问题,提出一个基于区块链和智能合约的可靠协作模型,同时分析了参与者之间的拓扑关系,并在收益分配过程中建立了由简单到复杂的Shapley 值模型。文献[18]提出了一种基于区块链的高效数据收集和安全共享方案,结合以太坊区块链和深度强化学习创建一个可靠和安全的环境,其中深度强化学习实现收集数据量的最大化,区块链技术用来保证数据共享的可靠性和安全性。文献[19]将区块链和支持向量机结合,提出一种可以保护物联网数据隐私的数据训练方案。通过区块链技术,可以在多个数据提供商之间构建一个安全可靠的数据共享平台。在文献[16-19]提出的数据共享方案中,数据拥有者将需要共享的数据加密后发送到区块链上进行存储。区块链分布式账本记录在每个全节点中,如果将共享的数据存储在区块链上将会造成存储资源的极大浪费。另外,如果交易包含的数据量过大,对于整个区块链网络的性能也会产生消极影响。除此之外,区块链的透明性很容易泄露共享数据的隐私性。所以,在基于区块链的物联网数据共享中,将共享的数据存储在区块链上并不是一种可行的方案。另外,还有一些数据共享的研究中将星际文件系统(IPFS,inter planetary file system)用于共享数据的存储。文献[20]研究了分布式存储系统的数据存储与共享方案,提出了将IPFS、以太坊和基于属性的加密技术相结合的架构。文献[21]基于区块链技术和IPFS 提出了一个新型电子医疗数据共享框架,并使用智能合约设计了一个可靠的访问控制机制,以实现不同患者和医疗供应商之间安全的电子医疗数据共享。文献[22]为了在IPFS 存储环境下实现电子病历的安全存储和高效共享,构造了一种基于属性的加密方案。通过将加密的电子医疗数据存储在分布式的IPFS 中,保证了存储平台的安全性,避免了单点失效的问题。通过IPFS 将共享的数据转化成哈希值,然后将哈希值存储在区块链上,从而避免了大量共享数据的链上存储。但是IPFS 网络要想稳定运行,需要用户贡献存储空间和网络带宽,如果没有恰当的奖励机制,那么巨大的资源开销很难维持网络的持久运行。由此可见,基于区块链技术的数据共享和存储是一个值得研究的课题。
在物联网中,使用区块链技术实现数据的去中心化共享和存储对物联网本身来说是一个巨大的挑战。因为物联网中的大多数设备为低功耗设备,不具备参与区块链网络分布式共识的能力。在区块链的共识机制中,参与共识过程的节点需要负责共识的形成、交易验证以及区块的验证和打包。区块链网络中设备的能力是设计共识机制时需要考虑的主要因素之一。物联网中资源受限的节点,如传感器,无法承担共识任务。而对于设备能力比较强的节点(如网关等),仍然可以在区块链的共识过程中发挥着重要的作用。除此之外,共识节点的比例会对区块链网络的性能产生影响,如果共识节点的比例过小,则整个区块链网络的分散化程度较小,不利于整个系统的安全;如果共识节点的比例过大,则区块传播时延就会很大,在需要大量数据交互的场景下,不能满足服务需求,例如,在新冠肺炎疫情暴发时,需要不同的物联网系统之间共享大量的确诊患者数据,较大的共识时延会直接导致数据共享效率低下。
基于上述问题,本文提出了一种基于区块链技术的物联网数据共享和存储方案,主要贡献如下。
1) 提出一种基于区块链技术的数据共享和存储框架,实现6G 时代物联网数据的去中心化共享和存储。通过存储证明(PoS,proof of storage)的共识机制,将区块共识和共享数据的分布式存储相结合。
2) 基于Gossip 协议提出区块的分层传播机制。通过对物联网设备能力的分析,推导了区块传播时延模型和区块链网络的去中心化评估模型。
3) 仿真分析表明,本文提出的基于Gossip 协议的分层传输方案相较于传统的Gossip 协议传输在区块传播时延上有大幅降低。区块传播时延、区块链网络去中心化程度随着共识节点的能力最小值增大而减小。当共识节点计算能力阈值为0.535 ×104Hz 或1.015 ×104Hz、共识节点存储能力阈值为106 GB 或315 GB 时,区块链网络去中心化程度与区块传播时延达到均衡。
4) 针对确诊患者轨迹数据共享场景,基于以太坊开发平台进行数据共享智能合约的实现和测试。
2 系统模型
2.1 基于区块链的物联网数据共享和存储框架
基于区块链技术的6G 时代物联网数据共享和存储系统框架如图1 所示。本文根据物联网设备的计算能力和存储能力将设备分为共识节点、验证节点和其他节点。共识节点参与交易的广播、验证,区块的打包和共识中,验证节点负责交易的广播和验证。在共识节点和验证节点上都保存了完整的分布式账本。系统框架主要包括智能合约、区块链网络、分布式账本和物联网设备。
1) 智能合约。智能合约是运行在区块链上模块化、可重用、自动执行的脚本。智能合约允许节点以可验证的方式在区块链网络上执行脚本。由于智能合约保存在区块链上,因此每个节点都可以查看和执行其指令,并查看与智能合约交互的日志[23]。通过智能合约,物联网中的数据拥有者可以将数据存储在去中心化的网络中,数据需求者和数据拥有者可以自动进行数据共享交易。
2) 区块链网络。区块链网络中主要包括共识节点和验证节点。共识节点在去中心化网络中具有重要作用,除了需要验证数据共享交易或者数据存储交易,执行共识算法,还需要为数据拥有者提供存储空间以存储共享数据。验证节点需要验证交易和区块,帮助共识节点执行共识过程。
3) 分布式账本。区块链本质上是一个不可篡改的去中心化数字账本,并且由区块链网络中的共识节点和验证节点共同维护。区块链分布式账本上记录了物联网不同节点间的交互日志。
4) 物联网设备。物联网设备主要包括数据拥有者进行数据收集的设备。6G 时代将会实现空-天-地一体化,从而会有更多的物联网设备接入网络,包括无人机、多样化的智能设备、自动驾驶汽车和深海潜水艇等。数据拥有者可以通过多样化的物联网设备进行数据的采集。当数据需求者在区块链上提交数据需求后,数据拥有者根据数据需求方的数据需求将采集到的数据提供给数据需求者。
图1 系统框架
物联网设备间数据的共享和存储流程如下:当数据需求者需要从其他的设备获得数据时,数据需求者会通过智能合约在区块链上发布数据请求的交易。数据拥有者在区块链网络上监听到数据需求者的交易后,如果有符合要求的数据,则会执行下述操作:1)通过智能合约向共识节点租用存储资源;2) 得到提供存储资源的共识节点的响应后,将加密后的数据、对数据的描述、存储的时间和需要存储的副本数发送给共识节点,共识节点将共享数据的地址以及数据的描述发送到区块链上。通过共享数据存储地址链上存储、数据链下存储的方式,数据拥有者可以根据实际需求决定共享数据存储在共识节点处的时间。数据需求者从数据拥有者那里获取数据密钥后,就可以从相应的数据地址获取需求的数据。数据需求者获取数据后,对数据进行分析使用,从而更好地挖掘数据的潜在价值。
2.2 共识机制
区块链中一个核心概念就是去中心化,区块链网络中没有和传统数据库系统一样的中心数据库。每个节点都是对等的,从而需要共识机制保证所有对等节点之间可以有效地协作[24]。共识机制是区块链事务达成分布式共识的算法。比特币和以太坊都采用对计算强依赖的工作量证明(PoW,proof of work)算法。物联网中存在大量的低功耗设备,计算资源的匮乏使高难度的PoW 算法不再适用于物联网数据共享场景。Hyperledger Fabric 采用传统的拜占庭容错算法,如实用拜占庭容错(PBFT,practical Byzantine fault tolerance)算法。在存有大量节点的物联网场景中,PBFT 的通信复杂度将会大幅增加[25]。
考虑到数据共享中的存储需求,本文采用PoS共识机制[26]。共识节点成功在区块链上添加区块的概率是由当前共识周期内的存储空间占全网存储空间的比值决定的。令Nc为网络中共识节点的数量,为第t个共识周期内共识节点i为网络提供的时空证明容量,则共识节点i在t个共识周期内为网络提供的有效存储空间占比,即存储算力为
2.3 区块传播机制
区块的传播机制如图2 所示。当共识节点i产生一个新的区块blocki时,共识节点i需要将区块blocki传输给其他的共识节点进行验证,同时还需要招募一部分的验证节点进行验证。接收到这个区块的其他共识节点也需要分别招募验证节点进行验证。本文的区块传播采用基于Gossip 协议的分层传播,包括共识节点层和验证节点层,即共识节点之间、共识节点和验证节点之间以及验证节点之间都采用Gossip 协议进行区块传播。Gossip 协议最早在文献[27]中被提出,主要用在分布式数据库系统中各个副本节点之间的数据同步,其基本思想是节点随机地选择一些节点进行信息传递,接收到信息的节点会采用同样的方式把信息传递给其他节点。节点间区块的传播都采用无线多播的方式。区块blocki传播过程如下:1) 共识节点之间:共识节点i将区块blocki传输给其他共识节点;2) 共识节点和验证节点之间:共识节点i将区块blocki传输给其所招募的验证节点;3) 验证节点之间:区块blocki在共识节点i招募的验证节点间进行传输。令共识节点集合为,验证节点的集合为,其中Nv>Nc。假设每个共识节点招募的验证节点的个数相等,且等于αNv(0<α<1),则区块blocki需要被验证的总次数为Nc(αNv+1)− 1。
图2 区块的传播机制
3 区块传播时延
本节结合物联网节点的计算能力和存储能力,分析区块链网络中的区块传播时延。
在基于区块链的物联网数据共享和存储中,区块链的分布式共识由共识节点和验证节点共同完成。本文使用帕累托分布[28]描述物联网设备的计算能力和存储能力。帕累托分布最初用来描述社会的财富状况,现在帕累托分布被拓展到更广泛的范围,可以用来描述使用传输控制协议的网络流量的文件大小分布(即多数较小的文件以及少数较大的文件)、人类居住区的大小(即少数的城市以及多数的小村庄)等。考虑到物联网中存在大量的低功耗设备以及少量能力较强的设备,本文使用帕累托分布来描述物联网设备的能力。令物联网设备计算能力为{X1,X2,…,XN},且Xi服从参数为ζ和σc的帕累托分布,其中σc=min{Xi};令物联网设备的存储能力为 {Y1,Y2,…,YN},且Yi服从参数为ζ和σs的帕累托分布,其中σs=min{Yi};N为物联网设备的总数量(N≫Nc+Nv),则物联网设备计算能力X的生存函数为
物联网设备计算能力X的概率密度函数为
物联网设备存储能力Y的生存函数为
令共识节点计算能力阈值为Xc,共识节点存储能力阈值为Yc。当节点计算能力大于Xc且存储能力大于Yc时,物联网节点可作为共识节点,则物联网节点为共识节点的概率为
其中,参数ζ越大,物联网设备中共识节点的比例就越小。共识节点的数量为
共识节点计算能力的期望为
令验证节点计算能力阈值为Xv,验证节点存储能力阈值为Yv。当节点的计算能力大于阈值Xv且小于阈值Xc、存储能力大于阈值Yv且小于阈值Yc时,物联网节点可作为验证节点,则物联网节点为验证节点的概率为
验证节点计算能力的期望为
X=β1fm为物联网节点的计算能力,其中fm是节点的CPU 频率。Y=β2e为物联网节点的存储能力,其中e是节点的内存大小。验证节点的数量为
在区块传播过程中,节点A 和节点B 之间区块的传输协议采用传统块传播协议[29],实现过程如图3 所示。在发送区块之前,节点A 发送一个Inventory 的信息给节点B,验证节点B 是否已经拥有区块,如果节点B 没有该区块,则区块B 会回复给节点A 一个Getdata 的信息,并等待接收区块block 的信息。通过块传播协议,节点可以减少不必要的信息传输[30]。
图3 区块在节点A 和节点B 之间的传输
区块的传播时延包括3 个部分:区块的传输时延、区块的验证时延以及节点之间交换Inventory 和Getdata 信息的时延。交换Inventory 和Getdata 信息的平均往返时间表示为τRTT[31]。节点之间的区块传输采用Gossip 协议。对于一个N个节点的网络,假设在每个Gossip 周期,接收到区块的节点都能至少再将区块传输给一个节点,那么区块传输到N个节点的周期数为log(N)。当区块大小为s时,区块的传输时延可以表示为[32]
其中,c是各链路的平均有效信道容量。对于区块,单个节点的验证时延为
其中,U表示每比特信息所需要的CPU 周期数。令共识节点的CPU 频率为fm,c,验证节点的CPU频率为fm,v,则区块在全网中传播时的总验证时延为
因此,区块block 的平均传播时延可以表示为
4 区块链网络去中心化程度
去中心化是区块链网络的重要特性之一,即在理想情况下任何一个或者少数实体都不具备操控、颠覆整个区块链网络的权力。现有研究中提出将中本系数作为一种衡量区块链网络去中心化的指标。基于经济学中衡量国民财富分布的基尼系数和洛伦兹曲线,本文首先把区块链系统拆分成多个关键的子系统,然后分别计算出能够操纵每个子系统的最少实体数量,最后把需要实体数量的最小值作为整个系统的去中心化指数。数值越高的系统去中心化程度越高。文献[33]使用信息熵的方法衡量区块链系统的分散化程度,并分别计算了比特币和以太坊系统中挖掘到的区块以及账户余额的熵。计算结果表明,比特币的分散化程度高于以太坊的分散化程度。
在本文基于区块链技术的物联网数据共享和存储中,参与共识过程和验证过程的节点对于区块链网络的去中心化影响要强于其他未参与共识过程和验证过程的节点。共识节点负责将交易进行打包、广播并形成共识,同时需要存储共享的数据,在区块链网络的共识过程担任重要的角色。验证节点需要对共识节点打包的交易进行验证,只有通过一定比例节点验证的区块才会被添加到区块链上。因此,验证节点同样影响着区块链网络的去中心化程度。共识节点存储数据量的差异性也影响着区块链网络的去中心化程度。存储数据量的差异性越大,区块链网络越趋向于集中化,因此,本文主要从共识节点之间数据存储的差异性、共识节点的比例和验证节点的比例这3 个方面进行区块链网络的去中心化建模分析。
共识节点之间数据存储的差异性主要需要考虑共享的数据文件如何在共识节点之间进行存储。假设在一个共识周期内,需要共享的数据文件为。本文假设数据文件的大小相等,使用参数xc,f∈{0,1}表示数据文件f∈F是否会存储在共识节点c∈C上,xc,f=0表示数据文件f没有存储在共识节点c上,xc,f=1表示数据文件f存储在共识节点c。在一个共识周期内,共享数据文件在共识节点上的存储情况表示为
则存储在共识节点ci处的数据文件份数为
为了防止存储的数据文件丢失,数据文件fj可以在多个共识节点上进行存储,则数据文件fj存储的副本数量为
共识节点之间存储数据量的差异性使用共识节点之间存储数据文件数的方差var表示。var越大,表明共识节点之间存储的共享数据文件数差异越大。var 表示为
区块链网络的去中心化程度D为
其中,β3和β4为系统参数,κ2为误差参数。D越大,区块链网络的去中心化程度越大。
为了对去中心化程度D与区块传播时延τ进行均衡化分析,需要对区块传播时延τ和去中心化程度D进行min-max 归一化处理。区块传播时延τ进行归一化处理后为
其中,τmean是区块传播平均时延,τmax是区块传播时延最大值,τmin是区块传播时延最小值。去中心化程度D进行min-max 归一化处理后为
其中,Dmean是D的平均值,Dmax是D的最大值,Dmin是D的最小值。令φ=τ→1−D→1,可以根据系统的具体性能需求对参数φ的数值进行调整。对于时延要求较高的场景,取φ> 0;对于去中心化程度要求较高的场景,取φ< 0。
5 实验结果
本节首先仿真分析了共识节点的能力与区块链网络中的区块传播时延以及网络去中心化程度的关系。然后,针对确诊患者轨迹数据共享场景,基于以太坊开发平台进行数据共享智能合约的实现和测试。
5.1 数值仿真结果
本节首先仿真比较了本文提出的基于Gossip协议与传统Gossip 协议在区块传播时延上的差异,同时分析了在验证节点比例α不同的情况下区块大小s与区块传播时延τ的关系;然后仿真分析了参数ζ和共识节点能力阈值对区块传播时延τ和网络去中心化程度D的影响;最后给出了区块传播时延τ和网络去中心化程度D的均衡化分析。本文的仿真参数设置如表1 所示[34-35]。
表1 仿真参数设置
图4 展示了在共识节点招募的验证节点比例α不同的情况下区块传播时延τ与区块大小s的关系。同时将本文提出的基于Gossip 协议的分层区块传播方案与传统Gossip 协议的区块传播方案进行对比。其中,ζ=2,Xc=10 000 Hz,Xv=8 000 Hz。区块大小s是指每个区块存储的字节数。从图4中可以看出,在区块大小s一定的情况下,相较于传统的区块传播方案,本文提出的方案区块传播时延大幅降低。在本文提出的区块传播方案中,共识节点不仅要负责共识节点层的区块传输,还要负责验证节点层的区块传输,从而使区块传播时延降低。同时,区块的传播时延τ随着α的增大而增大。因为当α增大时,共识节点在验证区块时招募的验证节点数增多,区块被验证的次数增多,从而导致区块的传播时延增大。在α一定的情况下,区块的传播时延τ随着区块大小s的增大而增大。
图4 区块传播时延τ 与区块大小s 的关系
图5 展示了在参数ζ不同的情况下区块传播时延τ与共识节点能力阈值关系,其中验证节点能力阈值与共识节点计算能力阈值同幅增长。从图5(a)中可以看出,在ζ一定的情况下,区块的传播时延τ随着共识节点计算能力阈值Xc的增大而减小。因为当节点计算能力阈值Xc与Xv增大时,网络中共识节点以及验证节点的比例减小,区块的共识需要得到的验证次数减少,从而使区块的总传播时延减小。在Xc一定的情况下,区块的传播时延τ随着ζ的增大而减小。因为当ζ增大时,网络中共识节点和验证节点的比例减小,区块的共识需要得到的验证次数减少,从而使区块的总传播时延减小。从图5(b)中可以看出,在ζ一定的情况下,区块的传播时延τ随着共识节点存储能力阈值Yc的增大而减小。在Yc一定的情况下,区块传播时延τ随着ζ的增大而减小。
图5 区块传播时延τ 与共识节点能力的关系
图6 展示了在参数ζ和方差var 不同的情况下去中心化程度D与共识节点能力的关系,其中验证节点能力阈值与共识节点计算能力阈值同幅增长。从图6(a)中可以看出,在ζ和var 一定的情况下,区块链去中心化程度D随着共识节点计算能力阈值Xc的增大而减小。因为当节点计算能力阈值Xc与Xv增大时,区块链网络中共识节点以及验证节点的比例减小,使网络的去中心化程度D减小。在Xc和var 一定的情况下,区块链网络去中心化程度D随着ζ的增大而减小,因为当ζ增大时,网络中共识节点以及验证节点的比例减小,使网络的去中心化程度D减小。在Xc和ζ一定的情况下,区块链网络去中心化程度D随着var 的增大而减小。从图6(b)中可以看出,在ζ和var 一定的情况下,区块链去中心化程度D随着共识节点存储能力阈值Yc的增大而减小。
图6 去中心化程度D 与共识节点能力的关系
图5 和图6 表明,随着共识节点计算能力阈值和存储能力阈值的增加,物联网中共识节点的比例减小,区块传播时延和去中心化程度也随之减小。
图7 展示了在参数ζ不同的情况下,参数φ与共识节点能力的关系。从图7 中可以看出,ζ对φ的影响较小。在图7(a)中,Yc=100 GB,当共识节点计算能力阈值为0.535 ×104Hz 或1.015 ×104Hz 时,φ≈ 0,即去中心化程度D与区块总的传播时延τ达到均衡。在图7(b)中,Xc=5 000 Hz,当共识节点存储能力阈值为106 GB 或315 GB 时,φ≈ 0,去中心化程度D与区块总的传播时延τ达到均衡。
5.2 数据共享智能合约实现
本节针对新冠肺炎疫情期间确诊患者轨迹数据共享场景,设计数据共享智能合约并进行实现。基于以太坊的Solidity 语言以及truffle 框架实现智能合约的编写和编译,并将智能合约部署到以太坊的Geth 节点集群上,实现对智能合约的测试。同时,借助IPFS 实现本文提出的共享数据地址链上存储而共享数据链下分布式存储的机制,并建立了由3 个Geth 节点组成的节点集群。Geth 节点硬件参数和账户信息如表2 所示。
图7 φ 与共识节点能力的关系
节点1 分别与节点2、节点3 相互连接搭建区块链节点集群,在geth 节点中使用admin.peers()来获取与节点1 相连的节点信息,包括节点2 和节点3 的IP 地址、端口号和支持的协议等。当节点1 需要发布某确诊病患的唯一标识码patientID 和肖像数据patientphoto 时,节点1 通过调用智能合约中发布数据需求的函数进行信息的发布。节点2 和节点3 通过监听函数事件PatientInfocreated,获得该确诊病患的信息。在监听日志中,节点2 和节点3 可以得到节点1 发布的数据,其中patientID 为4131479,patientphoto 为确诊病患肖像的Base64 编码在IPFS上的地址。
节点2 和节点3 收到节点1 发布的确诊患者信息后,开始在自己的摄像头数据采集系统或者云端数据库中查找是否有该确诊病患的数据,包括确诊病患出现的时间和地点等。如果存在关于该确诊病患的数据,则将相关数据通过IPFS 获得哈希值,然后将该数据文件的哈希值上传到区块链上。节点2 将测试文件test1.txt 的哈希值上传到区块链上,节点3 将测试文件test2.txt 的哈希值上传到区块链上,哈希值就是文件在IPFS 网络的地址。节点1 调用智能合约中的函数File_Find(),通过输入确诊病患的唯一识别码获得文件test1.txt 和文件test2.txt 的哈希值。节点1的查询结果如图8 所示,其中,test1.txt 的存储地址为QmYMQDn2UnoZ5vy82EzoxpkrjuBtnGXfNLRvwo YwXrbkGn,test2.txt 的存储地址为 QmcJQCNtn x1vWDvQNkvzKrDbP9Udsv5kZJXyK5jpBnYQjT。
表2 Geth 节点硬件参数和账户信息
图8 数据需求者查询获得需要的数据文件
6 结束语
本文基于区块链技术提出一种面向6G 的物联网数据共享和存储框架,从而实现物联网数据的去中心化共享和存储。根据物联网设备的能力,将物联网中部分节点选为共识节点和验证节点。通过PoS 的共识机制,将区块共识和共享数据的分布式存储相结合。基于Gossip 协议提出针对共识节点层和验证节点层的分层传播机制,同时推导了区块传播时延模型和区块链网络的去中心化评估模型。仿真分析表明,分层的传播方案相较于传统方案在区块传播时延方面有大幅降低,而且随着共识节点和验证节点的能力阈值增加,即共识节点和验证节点的比例减小,区块传播时延和区块链网络去中心化程度随之减小。当共识节点计算能力阈值为0.535 ×104Hz 或1.015 ×104Hz、共识节点存储能力阈值为106 GB 或315 GB 时,去中心化程度与区块的总传播时延达到均衡。最后,以确诊患者轨迹数据共享场景为例,借助以太坊开发平台进行数据共享智能合约的实现和测试。本文设计的数据共享和存储方案实现共享数据链下存储,即共享数据是存储在共识节点组成的分布式存储网络,而不是存储在区块链的分布式账本。数据拥有者可以根据需要控制共享数据存储的时间,从而改善了由于区块链的透明性和不可篡改性带来的数据隐私泄露问题。未来的工作将进一步探讨时变信道对区块传播时延的影响和基于区块链技术的数据共享去中心化问题。