区块链共识算法的鲁棒性分析方法及区块链系统与流程

文档序号:20838490发布日期:2020-05-22 17:10阅读:1304来源:国知局
区块链共识算法的鲁棒性分析方法及区块链系统与流程

本发明涉及一种区块链共识算法的鲁棒性分析方法及区块链系统,属于区块链技术领域。



背景技术:

区块链技术正推动新一代信息技术产业的发展,而共识机制可以说是区块链的核心,它以去中心化的思想解决了节点间互相信任的问题。这种共识算法帮助区块链降低了信任的建立成本,实现了价值互联网。共识算法中最为广泛使用的是pow(proofofwork,工作量证明)共识机制。pow共识机制应用于比特币和以太坊,目标是一致性和有效性,即所有诚实节点所保存的交易历史完全相同,由诚实节点发布的消息终将被所有其他诚实节点记录到自己的区块链中。

由于分布式系统本身存在的异构性、网络时延等特征,区块链共识算法的鲁棒性分析也一直是一个关键问题。鲁棒性即稳健性,指系统在一定(结构和大小)的参数摄动下,维持其它某些性能的特性。在区块链系统中,鲁棒性的分析具体表现为对总时延、吞吐量、分叉高度差的分析。为了实现共识往往需要验证算法的可用性、活跃性、容错性等特点,合理考虑容错性、分叉高度、总算力、出块时间、出块大小、吞吐量、时延、网络平均时延等影响算力的因素。

有鉴于此,确有必要提出一种区块链共识算法的鲁棒性分析方法及区块链系统,以解决上述问题。



技术实现要素:

本发明的目的在于提供一种区块链共识算法的鲁棒性分析方法及区块链系统,通过节点、区块状态和区块链性能方面的区块链参数,分析共识算法的鲁棒性。

为实现上述目的,本发明提供了一种区块链共识算法的鲁棒性分析方法,包括以下步骤:

步骤1、将区块链系统的节点作为点,区块状态作为线,区块链性能作为面;

步骤2、定义区块链中共识算法的鲁棒性参数;

步骤3、分类并分析区块链中共识算法的鲁棒性参数;

步骤4、建立鲁棒性分析模型。

可选的,步骤1中,通过sha256哈希算法对区块中的数据和随机数进行运算,并通过默克尔树进行快速定位修改。

可选的,所述鲁棒性参数包括容错性、分叉高度差、总算力、出块时间、区块大小、吞吐量、时延和网络平均时延。

可选的,所述鲁棒性参数通过节点、区块状态和区块链性能方面进行分类分析。

可选的,从节点方面分析容错性和分叉高度差。

可选的,从区块状态方面分析总算力、出块时间和区块大小。

可选的,从区块链性能方面分析吞吐量、时延和网络平均时延,以衡量分布式账本技术可延伸性及性能。

可选的,所述步骤4具体为:针对所述节点、区块状态和区块链性能验证鲁棒性,测出总时延、吞吐量和分叉高度差,确定鲁棒性的数值最大时鲁棒性最好。

可选的,所述鲁棒性公式为y=1/t+tps+h,

其中,总时延t=t1+t2,t1为时延,t2为网络平均时延,tps为吞吐量,h为分叉高度差。

为实现上述目的,本发明还提供了一种区块链系统,所述区块链系统使用了上述的区块链共识算法的鲁棒性分析方法。

本发明的有益效果是:本发明通过节点、区块状态和区块链性能方面的区块链参数,分析共识算法的鲁棒性,可以更广泛地应用于区块链项目,评估出实现共识的最优方法,验证算法的可用性、活跃性、容错性等特点。

附图说明

图1为本发明区块链共识算法的鲁棒性分析方法的流程图。

图2为本发明共识机制的示意图。

图3为本发明鲁棒性分析模型。

具体实施方式

为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。

如图1所示,本发明揭示了一种区块链共识算法的鲁棒性分析方法,包括以下步骤:

步骤1、将区块链系统的节点作为点,区块状态作为线,区块链性能作为面;

步骤2、定义区块链中共识算法的鲁棒性参数;

步骤3、分类并分析区块链中共识算法的鲁棒性参数;

步骤4、建立鲁棒性分析模型。

以下将对步骤1-步骤4进行详细说明。

如图2所示,在步骤1中,根据区块链系统的点、线、面的特点演示共识算法,即将节点作为点,区块状态作为线,区块链性能作为面。将诚实节点和恶意节点纳入区块,恶意节点的攻击会造成分叉链,通过sha256哈希算法对区块中的数据和随机数进行运算,并通过默克尔树进行快速定位修改。运算完成并通过验证后,在当前区块上生成时间戳以确定区块间的时间间隔,继续挖矿以产生下一个区块。

步骤2中,共识算法在计算的过程中会生成一些参数,这就要求对这些参数分析区块链共识算法的鲁棒性。以下将对区块链中共识算法的鲁棒性参数进行说明。

容错性s:恶意节点占总算力的比值,即系统正常时运行节点的安全阈值。

分叉高度差h:主链与分叉链之间的高度差,即恶意节点攻击后使区块分叉后的链差距。

总算力:指计算机对交易执行哈希运算,求得正确的数值解以生成区块的能力,即挖矿能力。

出块时间t0:在每笔交易时产生区块后标有时间戳,根据时间戳确定的前一个区块和后一个区块的间隔时间。

区块大小gaslimit:限定在在每个区块存储的字节数,即每个区块容纳的交易数量,其中单笔交易消耗为gas。

吞吐量tps:交易数据处理的速度,即每秒可以处理多少个交易。

时延t1:在发送一笔交易信息时,信息发送到确认的时间,包括发送和接收产生的时延。

网络平均时延t2:带宽一定时,网络拥堵等网络故障的平均时间。

步骤3中,对区块链系统中算力共识机制过程的鲁棒性参数进行分类分析,考查这些参数的相互关系。即针对这些参数进行分类并详细分析。

从节点方面分析,可以考查容错性s和分叉高度差h。对于容错性,从内因的角度分析,系统正常运行时可以通过在系统中设置一个阈值来控制工作节点的比例;从外因的角度分析,在系统中,恶意节点发动连续攻击,使网络的分叉持续下去,否则系统将通过最长链同步算法迅速消除分叉,分叉之间的差距不会超过1个区块高度。因此,需要验证系统拥有节点数的安全阈值s以及导致的分叉高度差h。当不诚实算力具一定规模,在超过51%甚至超过50%的时候,比特币的共识算法并不能保证鲁棒性。

从区块状态方面分析,考虑总算力、出块时间和区块大小等因素。总算力是矿工通过大量的随机数并对区块数据和随机数进行sha256哈希运算,最终得出区块大小,验证有效后进行挖下一个区块,所产生的出块时间t0与区块大小gaslimit共同影响共识算法的鲁棒性。

从区块链性能方面分析,吞吐量、时延及网络平均时延是分布式账本技术可延伸性及性能的一般衡量标准。大多数分布式账本技术对数据量或场的个数不实施限制,然而有些实施受到有效载荷或元数据大小的限制。随着更多的节点被添加进网络,很多分布式账本技术的性能(主要是时延及吞吐量)因规模越来越大而受到负面影响。因此,需要验证基于算力证明的共识算法所能承受的数据吞吐量tps。系统应该能容忍正常节点出错,这些错误主要是指服务器宕机、硬件错误、网络拥塞等,而带宽有一定的限制,这就导致了一定的网络平均时延t2。这就要求通过吞吐量tps、时延t1和网络平均时延t2对区块链的性能进行鲁棒性分析。

步骤4中,针对所述节点、区块状态和区块链性能验证鲁棒性,测出总时延、吞吐量和分叉高度差,确定鲁棒性的数值最大时鲁棒性最好。

如图3所示,根据上述参数的分析建立鲁棒性分析模型,假设节点数为n,其中恶意节点为n1,得到容错性s=n1/n;总时延t=t1+t2,网络分叉的主链、分叉链分别为l、l0,分叉高度差h=l-l0,进行哈希运算得到区块大小gaslimit,吞吐量tps=(gaslimit/gas)/t0,最后可以得到鲁棒性y=1/t+tps+h。显然,当总时延t最小,吞吐量tps最大,分叉高度差h最大时,鲁棒性最好。

在另一个实施例中,本发明还提供了一种使用区块链共识算法的鲁棒性分析方法的区块链系统。

综上所述,本发明通过节点、区块状态和区块链性能方面的区块链参数,分析共识算法的鲁棒性,可以更广泛地应用于区块链项目,评估出实现共识的最优方法,验证算法的可用性、活跃性、容错性等特点。

以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围。

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