一种面向复杂网络环境的高性能区块链共识方法技术

技术编号:38825023 阅读:17 留言:0更新日期:2023-09-15 20:04
本发明专利技术公开了一种面向复杂网络环境的高性能区块链共识方法,属于区块链技术领域;本发明专利技术提出了一种能满足在大规模复杂广域网条件下的高性能低延迟的共识方法,通过对区块结构进行了重新设计,满足了异步区块传输、流式区块执行的需求;同时设计了异步区块传输协议,避免了节点带宽不同,网络波动所带来的性能影响;更进一步地,设计了区块流式区块执行协议,在保证执行结果正确的前提下,加速了大部分区块交易的确认延时。部分区块交易的确认延时。部分区块交易的确认延时。

【技术实现步骤摘要】
一种面向复杂网络环境的高性能区块链共识方法


[0001]本专利技术涉及区块链
,具体为一种面向复杂网络环境的高性能区块链共识方法。

技术介绍

[0002]区块链技术正逐步应用于各个领域,不仅限于部署在数据中心的节点中,区块链技术正在应用于大规模的广域网环境,同时在移动设备和边缘设备上运行区块链正在成为主流的趋势。因此,区块链系统的网络条件处于一个复杂的、动态的网络场景中,节点之间的带宽差异可能会非常大。尽管在节点之间带宽差异比较大的场景下,共识算法仍然可以正常工作,但是其性能将非常低,影响用户体验。区块链共识协议通过操作“时代”来工作,每个时代由两个不同的阶段组成:(1)广播阶段,在该阶段,一个节点向其他节点广播一个区块(2)协议阶段,在该阶段,节点投票选举要追加到日志中的块,以达成可验证的共识。从通信的角度来看,广播阶段是带宽密集型的,而协议阶段通常包括多轮短消息,这些消息不需要太多带宽,但对延迟非常敏感。节点之间的带宽差异会对协议的性能造成影响,因为它可能导致某些节点速度变慢。为此,本专利技术研究了区块链系统在复杂网络环境下的高效共识算法,通过异步区块传输协议以及流式区块执行协议保证了复杂网络环境下,共识算法的高吞吐量和低延迟。
[0003]区块链是由许多区块组成的链条,每个区块保存着特定的信息,这些区块按照它们产生的时间顺序依次连接成为一条链。整个链条的副本被分布式地存储在众多服务器中,只要其中的一个服务器可以工作,整个区块链就可以保证安全性。在区块链系统中,这些服务器被称为节点,它们为整个系统提供存储空间和算力支持。如果要篡改区块链中的信息,必须征得半数以上的节点同意并修改所有节点中的信息。由于这些节点通常分布在不同的主体手中,所以篡改区块链中的信息是非常困难的。相比于传统的网络,区块链具有两大核心特点:数据难以篡改和去中心化。正是这两个特点使得区块链记录的信息更加真实可靠,并且能够帮助解决人们互不信任的问题。
[0004]随着区块链在越来越多的场景中应用,会面临越来越复杂的网络环境,基于上述内容,本专利技术提出一种面向复杂网络环境的高性能区块链共识方法以解决上述问题。

技术实现思路

[0005]1、本专利技术要解决的技术问题
[0006]本专利技术的目的在于提出一种面向复杂网络环境的高性能区块链共识方法以解决
技术介绍
中所提出的问题,使得区块链系统在节点带宽相差很大,网络存在波动的大规模广域网(WAN)中仍具备更高效的共识能力,能够满足更多的应用需求。
[0007]2、技术方案
[0008]为实现上述目的,本专利技术提供如下技术方案:
[0009]一种面向复杂网络环境的高性能区块链共识方法,通过对区块链系统进行重新设
计以实现在复杂网络条件下进行高性能共识,具体实现方法如下:
[0010]①
区块结构设计:
[0011]1)改变原本区块链系统中的交易数据格式,转变为按照账户组织的每个账户的一系列转账操作信息;
[0012]2)将原本区块链系统中的区块,按照账户不同,切分成若干小块,每个小块包含若干账户的操作记录;
[0013]3)在原本区块链的区块头中,增加一个小块的默克尔树,以及小块接受位图,用于节点接受小块时,对小块的完整性进行验证,以及记录小块的接受情况;
[0014]②
异步区块传输协议设计:
[0015]1)块头传输设计:传输数据规模较小的区块头以及小块默克尔树,使用原子广播协议以保证区块链系统内所有的诚实节点都可以接受到相同的区块头以及小块默克尔树;
[0016]2)异步区块传输设计:根据节点之间的带宽情况,计算出每个节点应该负责承担的小块传输比例,节点接收到小块时,使用小块默克尔树进行验证;每个节点将验证通过的小块,记录进位图,并且原子广播给其他节点;由于拥有节点提前拥有了小块的默克尔树以及正确的区块头,所以可以保证接收到的小块的正确性。通过异步的区块传输协议,可以避免低带宽节点阻塞共识的进程,将共识协议中,消息广播的速度提升到最大;
[0017]③
流式区块执行协议设计:
[0018]节点接收到小块并且验证通过后,进行本地的执行操作,具体方法为:执行对应小块中关于账户的操作信息,如果相关操作因为某些前置操作没有执行,则阻塞相关操作,等到接收到相关前置操作的小块时,继续执行阻塞的小块。由于按照账户组织的小块具有每个账户全部的操作依赖关系,因此保证了接受到任意小块便执行的结果与接受到所有的小块才执行的结果保持一致。因为流式区块执行协议,无需等待全部区块传输完毕,就可以对区块中的数据进行确认,因此可以有效减少交易的确认时延。
[0019]优选地,所述异步区块传输协议具体执行方法为:
[0020]A1、领导节点组装区块,并且对区块按照账户划分成若干小块,同时计算区块的凭证以及小块默克尔树;
[0021]A2、领导节点向其他节点广播凭证以及小块默克尔树,并且收集2f+1个节点的认可信息,同时将认可信息聚合签名;广播聚合签名,节点接受聚合签名以后,验证其他节点是否对同一条消息进行签名,验证通过后,则将通过消息发送给领导节点;领导节点收集到2f+1个通过消息后,将通过消息发送给其他节点,凭证原子广播结束;
[0022]A3、领导节点获取当前各个节点的带宽状态,根据带宽不同,计算每个节点应该负责传输的小块比例;
[0023]A4、领导节点异步的将对应比例的小块传输给其他节点;
[0024]A5、其他节点接受小块后,使用小块默克尔树进行验证,验证通过将对应小块记录到小块位图中,然后将小块以及位图转发给除领导节点之外的其余节点;
[0025]A6、每个节点接收到来自其他节点的2f+1个小块后,依据位图,向其他节点请求缺失的小块。
[0026]优选地,所述流式区块执行协议具体执行方法为:
[0027]B1、领导节点组装区块后,解析区块中的交易数据,按照账户划分交易数据,将每
一个账户的相关余额操作命令按照顺序记录到一个小块中;
[0028]B2、节点接收到小块后,对小块使用小块默克尔树进行验证,如果验证通过,则直接执行小块对应的账户余额命令顺序;
[0029]B3、节点采用尽力而为策略来执行小块中的命令序列,如果因为余额不足或者缺少相关资源时,则阻塞命令,等待相关资源;
[0030]B4、节点执行小块中的操作时,同时唤醒因为等待这一操作的其他小块中的账户操作命令;
[0031]B5、直到接受完所有的小块,并且对所有小块内容进行执行后,执行协议结束。
[0032]3、有益效果
[0033]本专利技术分析当前区块链的应用场景,结合实际需求,提出了一种能满足在大规模复杂广域网条件下的高性能低延迟的共识方法,具体有益效果如下:
[0034](1)本专利技术对区块结构进行了重新设计,满足了异步区块传输、流式区块执行的需求;
[0035](2)本专利技术设计了异步区块传输协议,避免本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种面向复杂网络环境的高性能区块链共识方法,其特征在于,通过对区块链系统进行重新设计以实现在复杂网络条件下进行高性能共识,具体实现方法如下:

区块结构设计:1)改变原本区块链系统中的交易数据格式,转变为按照账户组织的每个账户的一系列转账操作信息;2)将原本区块链系统中的区块,按照账户不同,切分成若干小块,每个小块包含若干账户的操作记录;3)在原本区块链的区块头中,增加一个小块的默克尔树,以及小块接受位图,用于节点接受小块时,对小块的完整性进行验证,以及记录小块的接受情况;

异步区块传输协议设计:1)块头传输设计:传输数据规模较小的区块头以及小块默克尔树,使用原子广播协议以保证区块链系统内所有的诚实节点都可以接受到相同的区块头以及小块默克尔树;2)异步区块传输设计:根据节点之间的带宽情况,计算出每个节点应该负责承担的小块传输比例,节点接收到小块时,使用小块默克尔树进行验证;每个节点将验证通过的小块,记录进位图,并且原子广播给其他节点;

流式区块执行协议设计:节点接收到小块并且验证通过后,进行本地的执行操作,具体方法为:执行对应小块中关于账户的操作信息,如果相关操作因为某些前置操作没有执行,则阻塞相关操作,等到接收到相关前置操作的小块时,继续执行阻塞的小块。2.根据权利要求1所述的一种面向复杂网络环境的高性能区块链共识方法,其特征在于,所述异步区块传输协议具体执行方法为:A1、领导节点组装区块,并且对区块按照账户划分成若干小块,同时计算区...

【专利技术属性】
技术研发人员:刘昕鑫周晓波刘秀龙王建荣李克秋赵菲菲曲宝玉
申请(专利权)人:北京中科闻歌科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1