本篇文章目录导航:
题目:物联网与区块链结合环境下对数据确认时间的研究
第一章 物联网与区块链结合的研究绪论
第二章 物联网与区块链结合的国内外研究现状
第三章 物联网技术区块链中数据确认时间
第四章 物联网技术区块链确认时间模型的建立
第五章 物联网与区块链结合仿真实验与结果分析
第六章 物联网与区块链结合总结与展望及致谢、参考文献
第一章 绪论
1.1 研究背景及意义
传统意义上,人们使用账本来系统地维护数据,特别是使用账本来维护各自的含有余额帐户类型的财务交易记录。这些账本由作为受信任方的银行或政府授权方集中保管。随着数字技术浪潮地兴起,这些实物账本正逐渐转变为数字账本,但仍由授权方集中维护。从数字货币的诞生与发展来看,虽然目前已经做到了让货币以数字化的形式高效流通,但这种数字化的货币形式目前仍处于初级阶段,不得不依赖大量的第三方中介机构才能保证数字货币的流通。而这种形式,不仅引入了中心化的风险,也提升了传输的成本。这些集中式系统由于其单点失效的特性,常常成为攻击者们的目标,传统的安全保护方式可能会泄漏隐私信息或丢失重要数据。因此,一种新的技术——区块链,逐渐进入研究者的视野以防止这类安全漏洞。区块链最初的平台——比特币[1]自 2008 年底创立以来,其价值和交易数量即迅速增长。它的成功主要归功于开创性地使用对等网络来实现用户间货币的转移,并在此基础上保证了安全性。这是与以往研究致力于创建依赖于集中管理者的系统的区别。
随着物联网的普及,物联网设备与应用类型层出不穷,攻击者可以利用数以千计的物联网设备,包括网络摄像头、婴儿监视器、家庭路由器和数字录像机发起攻击。被感染后的物联网设备被恶意软件控制后,攻击者可以利用它们发起分布式拒绝服务(Distributed Denial ofService, DDoS)攻击。这一过程包括对电子邮件进行网络钓鱼从而感染计算机或家庭网络,接着恶意软件扩展到其他设备,如录像机、打印机、路由器甚至商店和企业使用的与互联网连接的摄像头[2]。从安全的角度来看,物联网应用程序和平台存在的主要缺点是它们对集中式数据中心的依赖。而分布式的、基于区块链的方法可以克服与集中式数据中心方法相关的这些问题[3]。由于区块链具有去中心化、全节点共识以及非对称的加密特性,因此增加了网络的可扩展性和容错性。但是,物联网设备数量庞大,且往往爆发式地在网络中传输数据,若使用比特币平台与物联网结合,比特币平台的高时延会使得物联网应用的开发受到极大的限制。2014 年以太坊的出现打破了这种限制[4],它选择 GHOST[5](最重贪婪观察子树,Greedy Heaviest ObservedSubtree)协议替代比特币的最长链原则作为主链选择协议,在保证区块安全的前提下极大提升了区块链的出块速率。
通过文献[6][7]对物联网结合区块链普遍架构的分析可知用户使用区块链网络传接收数据的普遍流程如图1.1所示:
图中各部分含义如下:① 用户A对数据签名后发送至区块链网络中的某个节点。② 区块链节点验证数据签名后将其转发至其它区块链节点并将该数据打包至区块内,当区块容量达到规定限制后,各节点随即开始寻找该区块的工作量证明。③ 包含该数据的区块被区块链节点挖出并广播。④ 其余节点验证该区块中内容及工作量证明的有效性,若通过检验则将其加入本地缓存。⑤ 用户B等待一定的确认时间使得区块之后连接若干新的区块,直到认为区块安全后才使用区块中的数据。其中,步骤①至步骤④是由区块链网络内部运作机制产生的时延,而步骤⑤是用户方为了防止已确认的数据在一段时间后失效,从而等待确认区块所产生的时延。因此,整个流程所消耗的时间分为两部分,即等待新区块产生的时间和出块后的数据确认时间。文献[8]给出了区块中交易确认的定义:如果使用者确定交易或数据将永久地出现在区块链中,则称为交易已确认。等待一定的交易确认时间可以增加区块的安全性。而分叉现象是造成区块链安全问题的根本原因。
同一高度出现多个区块的现象被称为区块链分叉现象。分叉现象如图1.2所示:
假设区块链网络中存在节点 A 和节点 B,两节点几乎同时挖出了新区块,即找到了自己打包的区块的工作量证明,分别为区块 A 和区块 B。随后它们都会把自己挖到的区块链接到自己本地的区块链上,这就造成了区块链分叉。同时,这两个节点会将区块及该区块的工作量证明同步至区块链网络中的其他节点,以便与其他节点同步完最新的数据后在最新的区块链上继续挖矿。此时,离节点 A 较近的点,可能先同步到区块 A,并在区块 A 的基础上继续挖矿,链条会持续增长。离节点 B 较近的点,可能先同步到区块 B,并在区块 B 的基础上继续挖矿,链条也会持续增长。由于区块链最终只选择一条链作为主链,因此,当主链被选定后,另一条链上的数据会被回滚或清除,造成数据丢失和算力浪费。若用户不等待一定的确认区块数,则有可能使用已回滚的无效数据。51 攻击[9]正是凭借区块链的这种特点发起攻击,该攻击是指攻击者节点从某一高度开始创造一条新的区块链从而替代原先的主链造成原先主链数据失效的一种攻击行为。而用户或应用在区块被挖出后等待一定的确认区块可以缓解这种攻击。正常情况下,当用户或应用在区块链中提交一个交易,这个交易最终会被区块链中的矿工节点封装在某个区块中,此时这笔交易暂时获得了 0 个确认。当有另外一个区块链接到这笔交易所在区块之后,也就是其他区块把这笔交易所在区块当作父区块时,代表该笔交易获得了 1 个确认。以此类推,一笔交易获得了多少个确认,就相当于这笔交易所在区块之后又连接了多少个区块。攻击者攻击某区块时必须使得攻击链在该区块之后制造的分叉长度大于该区块已有的确认区块数量,因此确认区块的数量越多区块越安全。以太坊使用GHOST主链选择协议选择主链,GHOST协议选择子区块即确认区块数量最多的区块作为主链。当出块速率高与比特币时,使用GHOST协议可以将51攻击的成功率控制在和比特币相当的程度,从而在提高出块速率的同时仍保持和比特币相同的安全性。
图1.3为GHOST协议选择主链的示意图,通过各个高度子区块数量的对比,可知高度从高到低依次选择的主链区块为0→1B→2C→3D→4B。物联网中如实时 IOT[10]、数据交互、智能家居、报警系统等物联网应用对于数据传接收的效率要求较高,虽然区块后链接的确认区块数越多该区块的安全性越高,但为了满足应用对时效性的要求,对于上述应用应该得到一个可以保证其安全性要求的最短的确认时间。比特币设置的六个确认区块数是其创立者主观确定的,由于平台被广泛使用后难以更改因而沿用至今,因此比特币的确认时间约为 60 分钟。而以太坊平台并没有为确认区块的数量及确认时间规定具体的数值。决定至少应该满足的确认区块数的可变因素之一是网络中存在的攻击节点算力。除攻击节点算力之外,由于物联网中涉及的应用覆盖面广,不同类型的应用对数据失效的容忍度不同,如报警系统中应用接收到报警消息后并不关心随后该消息是否存在于区块链上,那么该类应用发布的数据就可以在短时间内被提取并使用。但对于含有日志记录的访问控制系统来说,假设某时刻包含一个访问请求的区块被区块链网络挖出,若该消息被应用立即确认即代表其承认了访问者此次的访问,从而可能会向访问者提供密钥。但若包含访问请求的区块被攻击成功,则区块中的内容失效,区块链网络不会承认该请求。访问者虽然已经访问成功但其访问痕迹随着区块的失效而被区块链网络抹去。网络中除攻击节点以外的正常运作的区块链节点称为诚实者,而仅由诚实者创造的链条也会产生分叉,将诚实者所产生链条的主链称为诚实者主链。区块在被挖出后的某一时刻是否在诚实主链上决定着该区块能否被确认。若某时刻区块不在诚实者主链上,则该时刻区块一定不能被确认。
若该时刻区块在诚实链条主链上,但由于网络中有攻击者节点存在,因此区块仍存在被攻击成功的概率。而针对该问题需要根据以不同分叉区块为主链区块的算力来分析不同分叉区块的确认区块增长规律。由于以不同分叉区块为主链区块的算力会随着区块在区块链网络中的扩散而增加,因此,为了得到合理的确认时间,需要建立区块的传播模型逐步进行分析。
1.2 本文的工作和贡献
在本文中,针对物联网与区块链结合环境下的不同应用对于区块的确认时间的问题以及以太坊平台使用 GHOST 选择主链的特点,以某高度上的区块以及该高度上的分叉区块为研究对象,建立以太坊中区块传播的数学模型以分析包含用户数据的区块至少应满足的确认区块数。使用至少应满足的确认区块数与实际产生的确认区块数对比的方式,得到包含应用数据的区块被区块链节点挖出后应等待的最短确认时间。本文的主要思想如下:为了得到最短的确认时间,本文使用某时刻至少应满足的确认区块数与区块实际的确认区块数相结合的方式。首先对至少应满足的确认区块数进行分析;其次建立差分形式的阻滞模型分析区块的传播,从而建立起时间与至少应满足的确认区块的关系;最终结合区块实际连接的确认区块数得到不同的网络攻击节点与应用的安全需求下的最短确认时间。
1.3 论文的组织结构
本文组织结构如下:第一章,绪论。本章简要阐述了区块链的产生背景及其发展现状,并分析了将区块链技术应用在物联网领域中的优势,同时说明了将区块链技术应用在物联网中仍然存在的时延问题以及以太坊中合理的数据确认时间的问题,然后介绍了本文的工作与贡献,最后是论文的结构安排。第二章,国内外的研究现状。本章首先介绍了区块链网络特点及主流平台,之后介绍了物联网与区块链技术相结合的研究现状、区块链时延的产生因素,同时也讨论了本文针对的以太坊中确认时间的问题。第三章,以太坊区块确认时间。本章主要讨论了在以太坊环境下决定确认时间的因素,分析了以太坊中区块的转发方式。逐一分析了最少确认区块的影响因素,且对影响因素之一的区块在诚实者主链上的概率进行深入分析。此外,分析了实际的确认区块数的增长规律,明确了得到最短确认时间的方法。第四章,区块链确认时间的模型建立。本章讲述了使用差分形式的阻滞模型分析以太坊的传播并通过该模型得到至少应满足的确认区块数与时间的关系,并在分析实际的确认区块数与时间的关系之后综合两者得到最短确认时间。第五章,仿真实现与性能分析。该部分介绍了仿真实验的对比实验以及仿真场景的参数设置,给出了其实验结果,最终得到最短确认时间的变化趋势以及具体的参考数值。第六章,总结和展望。本章主要总结本文的研究内容,阐述本文的不足之处,展望未来工作的方向。