本篇文章目录导航
题目:物联网与区块链结合环境下对数据确认时间的研究
第一章 物联网与区块链结合的研究绪论
第二章 物联网与区块链结合的国内外研究现状
第三章 物联网技术区块链中数据确认时间
第四章 物联网技术区块链确认时间模型的建立
第五章 物联网与区块链结合仿真实验与结果分析
第六章 物联网与区块链结合总结与展望及致谢、参考文献
第四章 区块链确认时间模型的建立
4.1 区块的最少确认区块数
根据3.2节的分析,求解数据最短确认时间需要先得到包含该数据区块的最少确认区块数。文献[29]分析了GHOST协议下确认区块数个影响因素间的关系,给出了应用可以容忍的数据不可用概率r,区块链网络中攻击节点与诚实节点的比值q以及区块 在诚实者主链上的概率 与最少确认区块数n1的关系,如公式(4-1)所示:
其中,t表示从区块被挖出时到当前位置所经过的时间,λ为以太坊中诚实节点挖出区块的平均速率。此外,式中的 表示攻击节点在t时间内挖出k个区块的概率, 的表达式如公式(4-2)所示:大括号中不等号左端的第一项表示区块在诚实者主链上但仍被攻击链条超越的概率,该项与区块在诚实者主链上的概率之和即代表区块 暂时不可用的概率。虽然上式对GHOST协议下的确认区块数进行了理论上的分析,但仍不能直接将该式作为确认区块的标准直接使用。虽然变量q和r可以根据实际的网络环境和应用需求赋予数值,但却始终是一个关于时间t的变量,受区块的转发机制影响且对于不同平台有着不同的表现形式。文献[29]在理论分析中将其作为一个概念来看待,并未针对某一平台深入地对其进行分析。本文对以太坊环境下的 进行了分析并最终得出该变量与t的关系,而 与区块的传播紧密相关。因此对以太坊区块的传播建立模型来分析 与t的关系,从而得到t与n1的关系。文献[32]根据以太坊客户端 Geth 分析了以太坊转发和接收区块的具体方式和流程。区块在以太坊网络中的传播流程如图 4.1 所示:
图 4.1 中节点集合 A 表示所有已缓存区块的节点集合,节点集合 B 表示 A 的随机 n个对等节点(n 为对等节点的总数),节点集合 C 表示除集合 B 中的节点外的其余 个节点,节点集合 D 表示集合 C 中节点的对等节点。首先,A 中节点向它的所有对等节点发送一个区块的哈希来广播一个新的区块,并将区块发送给集合 B 中的节点,之后 A 中节点不再转发该区块。当集合 C 中的节点接收到区块哈希后,除非 C 同时从另一个对等节点接收到该区块,否则它将在 0.5 秒后向自身的对等节点集合 D 中的随机一个节点请求该块。然后清除该块的所有广播消息。此外,如果 C 中的节点请求过该区块,则该节点不会再次请求该区块。节点请求区块的流程图如图 4.2 所示:
以太坊区块请求消息的时延与区块哈希值传播时延相对于区块传播时延和区块验证时延数值很小,本文将其忽略。因此,可认为以太坊区块呈周期性广播,周期为区块传播时延加上区块验证时延。通过对各传播模型的对比发现,差分形式的阻滞模型相较于其他模型更适用于研究周期性的问题,且差分形式的阻滞模型中节点在接收到信息后不会丢弃,而区块链中区块不会被已接受区块的节点所丢弃。因此,使用差分形式的阻滞模型分析区块的周期性传播更为适合。由于本文不仅仅分析单个集群的增长过程,还需考虑所有每个周期其他集群由于数量增长对该集群的阻滞作用,因此需按照周期逐步分析,不考虑无穷个周期过后集群数量的稳定值。但模型需考虑多个集群在每个周期相互之间的影响,及讨论单个周期内多集群间的的相互影响。
4.2 以太坊区块传播模型
差分形式的阻滞模型是以差分形式描述集合受到环境约束的“阻滞增长”的规律,这种约束随着对象本身数量的增加而增加。人口或其他生物在有限环境资源下的增长、传染病在封闭地区的传播、信息在有限范围内的广播等现象都可以合理、简化地使用该模型来描述。它是logistic增长模型的离散形式,logistic增长模型如公式(4-3)所示:其中,x为研究集群的数量,r是单个研究集群的固有增长频率,N是环境资源允许的最大集群数量。等式左端为研究对象的增长率,若没有阻滞作用,则增长率表现为 t,指所有集群无限制地增长r倍。而阻滞作用在 t的基础上增加了一个比例t。离散化后,差分形式的阻滞模型如公式(4-4)所示:其中, 表示第k个周期过后种群的数量,r是种群固有增长率,N是环境资源允许的最大种群数量。在本文所构建的差分形式的阻滞模型中, 表示接收到区块的节点数量;r表示单个节点对区块的转发频率。等式左边表示第k个周期接收到区块的节点增量,等式右边的(1- /N)表示第k个周期空白节点占所有节点的比例。由于第k个周期已接收到区块的节点会向各自的对等节点发送区块,但由于在此周期内,对等节点可能在之前的某个时刻已经缓存了该区块,相当于区块在这一周期仅能够向尚未缓存该区块的对等节点扩散。因此y的增量需要与一个比例相乘,即k时刻暂未接收到区块的节点占全网节点的比例1- /N,该项与r倍的 之积体现出了区块在网络中传播受到的阻滞作用。由于以太坊节点直接将接收到的区块转发给它的对等节点,因此r可描述为节点的对等节点个数;N为以太坊网络中总的节点数。本文通过对模型中公式的各乘项进行设置,最终构建四种差分形式的阻滞增长模型,分别用来分析区块在网络中的传播、区块哈希值的传播、不同分叉区块在网络中对于节点的影响以及不同分叉区块的哈希值对于节点的影响。为了便于研究,本文设置如图4.3所示的区块链结构:
设本文所研究的高度为h,且高度h-1上的区块在主链上。区块 为高度h上第i个出现的区块,本文以该高度首个区块 为研究对象。该高度上的区块集合为Vh,节点根据集合Vh区块的确认区块数不同来决定高度h上的主链区块。此外,规定重量值m,该值表示集合Vh中某区块的第m个确认区块,区块 所对应的m值的大小代表该区块被挖出时 的确认区块数量。根据4.1节以太坊区块传播流程的介绍,区块的传播有节点的主动转发和仅收到哈希值节点的主动请求两种方式。分析分叉概率的关键是得到空白节点的数量,而分析区块重量增加的概率时的关键是得到以不同区块为主链的节点数量y。以下分析第k+1个周期结束后,以区块为主链的节点占比和产生分叉的概率以及各分叉区块的确认区块产生的概率。情形一为高度h暂时无分叉区块产生的情形,本文为情形一设置符号来构建模型,如表4.1所示:
(1)集合B的增量新区块 产生后传播至其他节点使得 增加, 中的节点以 为主链区块。由于第k+1周期的节点增量 是由第k个周期的节点增量 在第k个周期内的转发产生的,且本周期转发后不再进行转发。如图4.4所示,当集合 非空时,在某个周期内 中的节点转发个区块给对等节点,但由于 非空,这 个节点可能部分是 中的节点, 的增长由于自身节点数量而产生阻滞。因此,每个节点产生的区块的增量为 与集合 占比的乘积。
根据上述的区块转发规律对区块的传播建立差分形式的阻滞模型,集合 在第k+1个周期的增量如公式(4-5)所示:
(2)集合H的增量根据4.1节以太坊区块的传播流程的介绍,H中的节点会在0.5秒之后请求区块并转化为集合B中的节点。与集合B的增量类似,集合H每周期的增量同样会受到自身节点数量和集合B节点数量的阻滞。 在第k+1个周期的节点增量 h 是由第k个周期 的节点增量 转发产生的,各节点转发给n 个对等节点,由于已收到哈希值的节点 及已收到区块的节点非空。第k+1个周期,集合 的节点数量为N- 。综上所述,对区块哈希值的传播建立差分形式的阻滞模型,则第k个周期h的增量如公式(4-6)所示:等式左边表示第k个周期仅接收到区块 哈希值的节点增量,这些节点会在0.5秒后向其对等节点请求区块 。在0.5秒内,接收到区块的节点在一个周期内产生增量后,集合 与集合H间可能存在交集,即集合H中的节点可能收到了区块。则每经过一个周期,集合H中的节点减少量为 。
(3)集合H中节点因请求区块的节点 (4-5)h b n b n (4-6) 设当前周期为第k+1个周期,设0.5秒经过了kx个周期,如图4.5所示。
第k-kx+1个周期集合H的增量为k kt k ktk kt ,这些节点会在当前的第k+1个周期主动请求区块 。由于在时间段[(k-kx)T,kT]内,区块 仍在传播,在此期间区块可能会传播至集合t 中的节点,使得集合t 。中节点数量减少。减少量为集合 在该时间段内的增量与t 的交集,则减少量为t tt。综上分析,第k+1个周期主动请求区块产生的节点增量为t tt。情形二为高度h存在分叉区块的情形,本文在情形一的基础上增加如表4.2所示的符号:表 4.2 情形二的符号设置Table 4.2 Symbol Settings for the second scenario符号 符号含义相对于等重量值区块,经过 k 个周期后先收到区块 的节点集合t 相对于等重量值区块,经过 k 个周期后先收到区块 的节点个数相对于等重量值区块,经过 k 个周期后先收到区块 哈希值的节点集合经过 k 个周期后相对于等重量值区块先收到区块 哈希值的节点个数经过 k 个周期后认为分叉区块 为主链的节点集合经过 k 个周期后以分叉区块 为主链的节点个数
(1)不同分叉区块传播时的相互影响当h高度上出现分叉后,网络中各节点根据自身当前的区块链视角决定h高度的主链区块。当重量值更高的区块出现后,接收到该区块的节点会以该区块为父区块继续挖矿,并在h高度选择该区块的祖先区块作为主链区块。由于GHOST协议高重量值的区块在传播时会替代所有的重量值的区块作为节点当前的父区块。当来自不同祖先分叉区块的多个同重量值的区块同时在网络中传播时,由于节点接收区块存在先后顺序,因此,节点优先收到的区块会使其在该区块之上继续挖矿。本文为等重量值的区块建立差分形式的阻滞模型,此时的区块除了受到自身的阻滞作用之外,还受到其他区块产生的阻滞作用。空白节点占比为 t。以各分叉区块为主链区块的节点在第k+1个周期的增量为公式(4-7)所示:
(2)分叉区块哈希值传播时的相互影响区块哈希值的作用是广播该哈希值所对应的区块。对于某个节点来说,不同区块的哈希值在不同的时刻到来。在接受到区块哈希值后,节点会随机向其对等节点同步该区块。在第k个周期,节点的增量为 ,这 个节点会在第k个周期各自将哈希值转发给自身的 个对等节点对等节点。由于区块头的体积很小,本文忽略它在传输中的时延。区块体的传播时延经过拟合服从对数正态分布,本文将在第五章对以太坊实际环境下的数据用分布函数进行拟合。和区块传播时的阻滞类似,收到不同区块哈希值的节点集合与自身以及接收到其他区块哈希值的节点产生阻滞作用。即哈希值在被节点转发是可能会转发给已经缓存有该哈希值的节点。得到接收到不同分叉区块哈希值在第k+1个周期的增量如公式(4-8)所示:集合 中的节点在0.5秒内会向对等节点请求哈希值对应区块,但0.5秒内集合中的节点可能已经接收到了区块,因此| |会在每个周期成比例减少。每个周期的减少量为 。在同一周期,同重量值m的各分叉区块哈希值被传播给一定数量的节点,本文将优先接收到区块 哈希值的节点优先请求区块 。某节点在同一周期内接收到同重量值但不同区块的哈希值,请求区块时由于随机请求因而存在接收不到区块的概率,这个概率与该节点的对等节点数量以及当前周期集合B的节点数量有关。根据上述分析,在第k+1个周期,集合 中节点总的增量如公式(4-9)所示:t t n t,i=1,2,…, (4-7) n ,i … (4-8)
根据3.1.3节的分析,虽然已经有高度h的区块被挖出,但该区块仍需要一定的时间在区块链网络中传输。因此某时刻存在某些节点的区块链视角在h高度是没有任何区块的,该节点会持续寻找h高度区块的工作量证明,这样该节点产生出的新区块和先前产生的区块都为高度h上的分叉区块。设区块链全网挖出区块的平均时间间隔为Th秒,则每秒挖出区块概率为1/Th,T秒内挖出区块概率为T/Th。则在一个周期内部分节点挖出区块的概率为节点占比与T/Th的乘积,结合本小节的分析,第k+1个周期t 的占比总和为 t ,区块链在第k+1个周期的分叉概率如公式(4-10)所示: t (4-10)
(3)各分叉区块产生新区块的概率分析更高重量值区块的目的是得到每个周期以h高度上不同分叉区块为主链的总节点数。在集合的角度,以区块 为主链的节点集合为 。设分叉区块 产生的第m个确认区块(重量值为m的确认区块)为 ,若集合 中的节点在第k+1周期内挖出了新的确认区块,该区块将会扩散至其它节点,假设其重量值为m,由于该区块的传播,第k+1个周期节点集合 产生增量为 t 。累加各类节点的增量,得到 的总增量 t 。此外,还需考虑其它分叉区块的确认区块传播造成的影响,如图4.6所示重量值为m的区块在传播过程中,集合 中节点产生的新区块以一定概率转发到至集合 中。
综上可得h高度各分叉区块重量增加的概率为 … 。本文将在第五章的实验部分仿真区块在诚实者主链上的概率随时间的变化。
4.3 实际的确认区块数模型
根据 3.2 节对以太坊全网确认区块进行的分析,以太坊新区块的产生是一个泊松过程。本文仅使用泊松过程的期望值,而泊松分布的期望值即事件发生的频率。因此,设 为全网经过 t 时间产生的总区块数,则以太坊网络在各个时刻,函数关系式为 ,其中λ表示新区块产生的频率,由于以太坊将全网产生新区块的周期控制在 15 秒左右,转化为频率即每秒挖出 / 5 个区块。换句话说,全网的总算力每秒挖出区块的概率约为 / 5。本文假设在分叉现象出现的情况下将后续产生的区块平均分配给分叉区块,所研究区块的确认区块 如公式(4-12)所示: n t(4-12)其中,m 为高度 h 上的分叉数量。 可以视为关于时间 t 的线性函数,其斜率为 。本文从 etherscan.io 爬取数据,统计了 2018/12/23 至 2019/1/22 这 31 日的共 175924 个高度的分叉情况,具体统计数据如表 4.3 所示。表 4.3 不同分叉个数出现频率Table 4.3 Frequency of different bifurcation number次数 频率无分叉区块 163253 92.79%一个分叉区块 11885 6.76%两个分叉 786 0.45%总数 175924 100%由表 4.3 可知分叉概率相比不分叉概率数值较低,网络中同一高度至多有两个分叉区块存在,即同一高度至多存在 3 个区块。通过 Matlab 作图, 随时间发生的变化如图 4.7 所示:
图像的横轴代表区块被挖出后经过的时间,纵轴表示区块的确认区块数。时间与确认区块数的关系满足于一种斜率约为 0.0642 的线性关系。
4.4 本章小结
本章对以太坊中区块的转发机制进行了总结与分析,并在此基础上建立差分形式的阻滞模型,通过该模型得到以不同分叉区块为主链的节点占比,最终得到分叉概率以及不同分叉区块确认区块增加的概率。并通过模型得到所研究的区块在主链上的概率随时间的变化关系,之后与最少确认区块数结合得到保证安全下的最少确认区块数。