首页 / 基于区块链分片的区块链节点共识方法及系统

基于区块链分片的区块链节点共识方法及系统公开 发明

具体技术细节

[0003] 为了解决现有技术的不足,本发明提供了基于区块链分片的区块链节点共识方法及系统;为了提高分片重配置的安全性并降低状态数据同步的开销,本发明提供了一种基于默克尔压缩前缀(Merkle Patricia Trie)树的区块链分片异步重配置方法来解决此问题。默克尔压缩前缀(Merkle Patricia Trie)树是以太坊等区块链技术中用于存储状态和交易数据的一种数据结构,具有良好的查找效率和更新速度。本发明通过在MPT树中引入额外的属性,降低了状态数据同步的开销,提高了分片重配置的安全性和效率。
[0004] 一方面,提供了基于区块链分片的区块链节点共识方法,包括:
[0005] 区块链节点根据自身的硬件性能特征,选择加入委员会分片、选择加入全局分片或选择不加入任何一种分片;
[0006] 将加入到委员会分片中的区块链节点称之为委员会节点,委员会节点收集交易数据,对交易数据进行哈希处理,得到哈希值;委员会节点根据哈希值,将自身配置到委员会默克尔树中;所述委员会默克尔树,采用改进的默克尔压缩前缀树结构来实现;同时,将加入到全局分片中的区块链节点称之为全局节点,全局节点接收各个委员会分片的根哈希;根据根哈希,将全局节点配置到全局默克尔树中;所述全局默克尔树,也采用改进的默克尔压缩前缀树结构来实现;
[0007] 对于委员会分片,如果委员会节点的关键阈值小于设定阈值,则将当前委员会节点设置为非活动节点,将非活动节点的哈希值记录到其父节点中,并删除父节点下的所有节点,将父节点的标志位设置为零;对于全局分片,如果全局节点的关键阈值小于设定阈值,则将当前全局节点设置为非活动节点,将非活动节点的父节点的标志位设置为零;
[0008] 对委员会分片的委员会节点完成共识操作;对全局分片的全局节点完成共识操作。
[0009] 另一方面,提供了基于区块链分片的区块链节点共识系统,包括:区块链节点;
[0010] 区块链节点根据自身的硬件性能特征,选择加入委员会分片、选择加入全局分片或选择不加入任何一种分片;
[0011] 将加入到委员会分片中的区块链节点称之为委员会节点,委员会节点收集交易数据,对交易数据进行哈希处理,得到哈希值;委员会节点根据哈希值,将自身配置到委员会默克尔树中;所述委员会默克尔树,采用改进的默克尔压缩前缀树结构来实现;同时,将加入到全局分片中的区块链节点称之为全局节点,全局节点接收各个委员会分片的根哈希;根据根哈希,将全局节点配置到全局默克尔树中;所述全局默克尔树,也采用改进的默克尔压缩前缀树结构来实现;
[0012] 对于委员会分片,如果委员会节点的关键阈值小于设定阈值,则将当前委员会节点设置为非活动节点,将非活动节点的哈希值记录到其父节点中,并删除父节点下的所有节点,将父节点的标志位设置为零;对于全局分片,如果全局节点的关键阈值小于设定阈值,则将当前全局节点设置为非活动节点,将非活动节点的父节点的标志位设置为零;
[0013] 对委员会分片的委员会节点完成共识操作;对全局分片的全局节点完成共识操作。
[0014] 上述技术方案具有如下优点或有益效果:
[0015] 本申请通过引入FlexMPT树,并对FlexMPT树的扩展节点、分支节点和叶节点进行重新设计,以及数据路径优化,使区块链分片重配置过程更高效,能够快速适应网络状态的变化,有效降低了数据访问和处理的延迟。
[0016] 本申请采用委员会分片和VRF技术,确保了区块链全局分片的公正选举,降低了潜在的安全风险,同时能够快速地进行分片重配置,进一步缩短了区块链的交易等待时间;同时结合本申请实施方式中提出的分片异步重配置机制,能够进一步减少了交易验证和共识达成所需的时间,提高系统的实时性与安全性。
[0017] 本申请设计了压缩状态树,并进行了优化,有效减少了区块链数据的传输量和存储需求,进一步提升了区块链交易的处理速率。
[0018] 更为显著的,当系统随着区块链交易数量的不断增加,传统方法所需的共识和重配置的延迟时间将不断增长,造成系统延迟的一大难题。然而,在本申请中,当区块链交易数量不断增加时,其共识与分片重配置的延迟时间几乎保持不变,有效提高了系统的吞吐量,具有非常好的需求兼容性。

法律保护范围

涉及权利要求数量10:其中独权2项,从权-2项

1.基于区块链分片的区块链节点共识方法,其特征是,包括:
区块链节点根据自身的硬件性能特征,选择加入委员会分片、选择加入全局分片或选择不加入任何一种分片;
将加入到委员会分片中的区块链节点称之为委员会节点,委员会节点收集交易数据,对交易数据进行哈希处理,得到哈希值;委员会节点根据哈希值,将自身配置到委员会默克尔树中;所述委员会默克尔树,采用改进的默克尔压缩前缀树结构来实现;同时,将加入到全局分片中的区块链节点称之为全局节点,全局节点接收各个委员会分片的根哈希;根据根哈希,将全局节点配置到全局默克尔树中;所述全局默克尔树,也采用改进的默克尔压缩前缀树结构来实现;
对于委员会分片,如果委员会节点的关键阈值小于设定阈值,则将当前委员会节点设置为非活动节点,将非活动节点的哈希值记录到其父节点中,并删除父节点下的所有节点,将父节点的标志位设置为零;对于全局分片,如果全局节点的关键阈值小于设定阈值,则将当前全局节点设置为非活动节点,将非活动节点的父节点的标志位设置为零;
对委员会分片的委员会节点完成共识操作;对全局分片的全局节点完成共识操作。
2.如权利要求1所述的基于区块链分片的区块链节点共识方法,其特征是,所述区块链节点根据自身的硬件性能特征,选择加入委员会分片、选择加入全局分片或选择不加入任何一种分片,之前还包括:
构建区块链;所述区块链,包括一个全局分片和若干个委员会分片;所述全局分片,包括:若干个全局节点;每个委员会分片,包括:若干个委员会节点;所述全局分片,用于负责维护区块链的整体状态;所述委员会分片,用于处理事务并在分片区块链中生成块。
3.如权利要求1所述的基于区块链分片的区块链节点共识方法,其特征是,区块链节点根据自身的硬件性能特征,选择加入委员会分片、选择加入全局分片或选择不加入任何一种分片,包括:
如果区块链节点的处理速度高于设定阈值,则当前区块链节点被允许选择加入委员会分片;
如果区块链节点的存储容量大于设定阈值,则当前区块链节点被允许选择加入全局分片;
如果区块链节点的处理速度高于设定阈值,且存储容量大于设定阈值,则当前区块链节点被允许选择同时加入委员会分片和全局分片。
4.如权利要求1所述的基于区块链分片的区块链节点共识方法,其特征是,改进的默克尔压缩前缀树结构,包括:依次连接的扩展节点、分支节点和叶节点;所述扩展节点连接一个或多个分支节点,所述分支节点连接一个或多个叶节点;扩展节点的属性包括:共有前缀、指针、标志位和关键阈值;分支节点的属性,包括:分支、标志位和关键阈值;叶节点的属性,包括:账户余额信息路径的末端部分、数据值和关键阈值。
5.如权利要求4所述的基于区块链分片的区块链节点共识方法,其特征是,所述共有前缀,是指在一个扩展节点中,所有子节点共享的地址前缀,它是由一系列地址位组成的序列;
所述指针,是指一个参照,指向当前节点的下一个节点,下一个节点可能是扩展节点、分支节点或叶节点;
所述标志位,是指一个二进制标记,用于表示节点在树结构中的状态;
所述关键阈值,是指是一个数值,用来表示节点的活跃度或在树中的重要性。
6.如权利要求1所述的基于区块链分片的区块链节点共识方法,其特征是,委员会节点根据哈希值,将自身配置到委员会默克尔树中,包括:
假设哈希值是一个七位数字ABCDEFG;
首先根据哈希值的前两位数字AB,确认当前委员会节点在委员会默克尔树中所归属的扩展节点;
然后,根据哈希值的第三位数字C,确认当前委员会节点在委员会默克尔树中所归属的分支节点;
然后,根据哈希值的后四个数字DEFG,确认当前委员会节点在委员会默克尔树中所归属的叶节点。
7.如权利要求1所述的基于区块链分片的区块链节点共识方法,其特征是,所述对委员会分片的委员会节点完成共识操作,包括:
生成重配置方案:委员会分片采用可验证随机函数对网络中的所有节点进行随机化洗牌,确保节点分配的公正性和随机性;
广播重配置方案:经过初步的共识确认后,新的重配置方案被广播至整个区块链网络;
压缩状态树:每个委员会分片中的委员会节点将遍历其当前维护的账户状态树,移除不活跃或冗余的节点,获得改进的默克尔压缩前缀树结构FlexMPT树,将FlexMPT树标记为传送状态树:更新后的FlexMPT树被委员会节点发送至下一个周期的相应委员会分片的委员会节点;
合并状态树:委员会节点在接收到更新后的FlexMPT后,将其与之前周期的FlexMPT合并,形成最新的FlexMPT;
状态共识:更新完成后,委员会分片对所有分片的FlexMPT的根哈希进行共识,从而全网确认账户状态。
8.如权利要求7所述的基于区块链分片的区块链节点共识方法,其特征是,合并状态树:委员会节点在接收到更新后的FlexMPT后,将其与之前周期的FlexMPT合并,形成最新的FlexMPT,包括:
当存在新的账户状态更改时,则将所述状态更改集成到现有的FlexMPT中,确保每个账户的状态都是最新和唯一的,通过添加新的叶节点或更新现有叶节点的值来实现;
当新的FlexMPT包含与现有树重复的节点时,则去除重复的节点,只保留最新的状态;
当新的交易数据影响多个节点的结构时,则进行必要的路径调整和节点哈希重新计算;
当完成所有节点的更新和确认后,则进行状态树的优化和压缩,删除不必要的分支和节点。
9.如权利要求7所述的基于区块链分片的区块链节点共识方法,其特征是,FlexMPT树,包括三种类型的节点:扩展节点、分支节点和叶节点:
扩展节点用于简化路径访问,它们包含一个共有前缀shard nibbles、一个指向其他节点的指针next、一个标示特定状态的标志位flag和一个区分节点是否活跃的关键阈值count;扩展节点不存储数据,其作用是减少查找过程中需要访问的节点数,扩展节点的数据结构表示如下,其中‖‖表示连接操作;
Ne={shard nibbles||next||flag||count}
分支节点直接指向多个不同的子节点;每个分支节点包括链接到其他节点的Branches属性、标示特定状态的标志位flags属性和区分节点是否活跃的关键阈值count属性;分支节点管理数据路径的分叉点,允许树结构以非线性方式扩展和索引数据,分支节点的数据结构表示如下,其中‖‖表示连接操作;
Nb={Branches||flags||Count}
(3)叶节点用于存储具体的值,并标志着一个路径的结束;key‑end属性表示区块链账户在达到叶节点后剩余的部分,value属性表示区块链账户的余额,count属性表示节点被访问的频次;叶节点的数据结构表示如下,它直接关联到数据的存储和查询效率,其中||表示连接操作;
Nl={key‑end||value||count}。
10.基于区块链分片的区块链节点共识系统,其特征是,包括:区块链节点;
区块链节点根据自身的硬件性能特征,选择加入委员会分片、选择加入全局分片或选择不加入任何一种分片;
将加入到委员会分片中的区块链节点称之为委员会节点,委员会节点收集交易数据,对交易数据进行哈希处理,得到哈希值;委员会节点根据哈希值,将自身配置到委员会默克尔树中;所述委员会默克尔树,采用改进的默克尔压缩前缀树结构来实现;同时,将加入到全局分片中的区块链节点称之为全局节点,全局节点接收各个委员会分片的根哈希;根据根哈希,将全局节点配置到全局默克尔树中;所述全局默克尔树,也采用改进的默克尔压缩前缀树结构来实现;
对于委员会分片,如果委员会节点的关键阈值小于设定阈值,则将当前委员会节点设置为非活动节点,将非活动节点的哈希值记录到其父节点中,并删除父节点下的所有节点,将父节点的标志位设置为零;对于全局分片,如果全局节点的关键阈值小于设定阈值,则将当前全局节点设置为非活动节点,将非活动节点的父节点的标志位设置为零;
对委员会分片的委员会节点完成共识操作;对全局分片的全局节点完成共识操作。

当前第2页 第1页 第2页 第3页
相关技术
分片区块相关技术
区块分片相关技术
刘祥志发明人的其他相关专利技术