一种基于群组树架构的区块链共识方法技术

技术编号:34802773 阅读:21 留言:0更新日期:2022-09-03 20:09
本发明专利技术涉及一种基于群组树架构的区块链共识方法,参与共识的节点以树形拓扑进行通讯,区块链节点群组树将区块链节点划分到多个不同群组,每个群组内部单独进行共识和广播,实现了区块链系统的一致性共识,使得算法具有较高的性能与可扩展性,避免了节点之间的n

【技术实现步骤摘要】
一种基于群组树架构的区块链共识方法


[0001]本专利技术涉及一种基于群组树架构的区块链共识方法。

技术介绍

[0002]区块链是分布式数据存储、点对点传输、共识算法、加密算法等计算机技术的新型应用模式。区块链由单一的区块的形式构成,每一个区块记录了数据库在当前时刻的状态变更,所有的区块可以组合成完整的历史数据,并且为了防止区块链状态的割裂或伪造,使用hash值将区块进行链接,区块之间形成的线性顺序是不可更改的。正是这种特殊的区块结构和运行机制使得区块链技术具备去中心化、匿名性、不可篡改、安全稳定的特性。区块链解决了开放网络环境中的信任问题,区块链可以在需要构建广泛可信关系的业务领域中作为重要支撑技术,可与支付结算、数据共享、电子存证、溯源、食品、等行业结合展开应用。
[0003]共识算法是指在多方协同环境下使所有参与方对任务执行结果达成一致的算法,共识算法多应用于确保分布式系统数据一致性,是区块链技术的基础和核心。区块要想加入到区块链系统,需要经过区块链各个节点的共识,同时区块链的不可篡改性也是由区块链的共识算法来保证的。区块链作为一个去中心化的分布式系统,其决策权分散在各个节点中,并且节点之间无需信任,因此,为了达到共同记账的目的,需要使用共识算法使各个节点对区块数据的有效性达成一致。共识算法作为区块链中的关键技术,直接影响着区块链的交易处理能力、可扩展性和安全性,因此成为区块链技术研究的热点。
[0004]实用拜占庭容错算法(Practical Byzantine Fault Tolerance,PBFT)的提出是为了解决拜占庭一致性问题,虽然还有诸如HQ、Zyzzyva等其他常用的解决拜占庭一致性问题的算法,但区块链技术主要使用实用拜占庭容错算法来解决区块链中数据一致性的问题。
[0005]实用拜占庭容错算法在保证算法的活性(liveness)和安全性(safety)的前提下,允许f=(n

1)/3个节点出现错误,其中f为错误节点数,n为节点总数量。安全性是指副本复制服务满足线性一致性,分布式系统就像中心化系统一样原子化执行操作,活性即只要失效副本的数量不超过(n

1)/3,并且延迟delay(t)不会无限增长,所有客户端最终都会收到针对他们请求的回复。算法中将节点区分为主节点和副本节点,并且只有当进行视图变更才会改变主从节点的关系,因此节点之间会产生不对等的情况。
[0006]实用拜占庭容错算法除去请求和应答两个阶段,主要有三个阶段:预准备阶段、准备阶段和确认阶段。在算法中,客户机仅会将请求信息发送给主节点,而副本节点是无法接收到相应信息的,因此在整个的一致性过程中,都会依赖于主节点的忠诚度。而在应答阶段,主节点和副本节点都会进行应答,并且客户机会选择多数的应答结果来决定请求的最终结果。预准备阶段是主节点将从客户机接收到的请求进行编号,并将计算好的数据广播给各个副本节点;而副本节点根据主节点发送的信息进行判断,判断消息签名、摘要、视图编号等信息,最后将节点的判断结果广播给其他所有节点。此阶段由于是主节点发起的一致性过程,因此,主节点不会发送关于这个阶段的决策信息,只有副本节点会将决策信息进
行广播。准备阶段是所有的节点在接受了预准备消息之后,首先会广播节点的准备消息,然后节点在接收到准备消息之后会对准备消息的签名进行验证,并且验证视图编号是否有效。在接收到2f个从不同节点发送出的相同的预准备消息和准备消息之后,准备阶段完成。确认阶段是在完成了准备阶段之后,首先会对接收到的信息进行验证,若通过,则会将确认信息广播给其他节点,然后进入确认阶段。节点在进入确认阶段之后,当接收到其他节点发送过来的确认消息,会对消息签名进行判断,并对消息所属视图的有效性验证,在接收到2f+1个确认消息之后,确认阶段结束,将确认消息反馈给客户机,从而整个算法过程结束。
[0007]PBFT共识算法的消息通讯复杂度为O(n2),节点之间需要通过n

n交互来推进共识步骤,随着节点数量的增加,吞吐量呈现快速下降的趋势。
[0008]分片技术,也就是将网络进行分割成各个不同的小组,通过一定的分配手段确保每个小组处理的是不同的交易,最终达到共同计算机同时解决高数量级交易的结果。可拓展性是区块链的一个重要性能指标,是指随着区块链网络中节点数目增加,系统对交易的处理性能也随之增长。分片技术是分布式数据库中常用来提升性能的技术方案,例如Google的Spanner。
[0009]在区块链领域,分片只是引自分布式系统领域的一种思想,在具体的实践过程中有三种分片的方式:网络分片、交易分片和状态分片。这三种分片的实现难度与对区块链系统架构的切分程度渐次递增。前两种分片被最早提出与实现,是分片方案的基本实现规格,被称为部分分片方案,因为其只把共识过程中的要素——节点与交易分片,实现了共识过程的并行化,但依然要求全网节点共享同一份完整的全局账本。而状态分片把账本的存储状态也分片,也被称为全分片方案,其全局账本被切分到各个分片中,每个分片只维护部分与自身用户相关的账本数据。
[0010]网络分片是通过利用算法把网络中的节点分配到不同的分片中,不同分片之间保存的数据是一致的。单纯使用随机算法将节点分配给不同分片是不够的,我们还必须要确保网络的一个分片不同成员意见的一致性。交易分片是通过根据交易类型的不同,将交易分配给不同的分片去处理,比如根据交易的Hash、类型、特征等对交易进行分类划分,不同分片之间仍需要保持数据的一致性。状态分片将整个存储区分开,让不同的碎片存储不同的部分,因此,每个节点只负责托管自己的分片数据,而不是存储完整的区块链状态。
[0011]在现有的大多数区块链共识算法中,产生新的区块时参与共识的节点需要与其他所有节点通讯,节点之间需要通过n

n广播进行消息通讯,随着节点数量的增多,节点之间消息通讯的数量呈现指数级上升,消息的通讯复杂度较高。此外,区块链主节点往往需要搜集所有参与共识的节点的消息,并且将所有节点中的交易信息打包到新的区块中,主节点承担的网络通讯与计算量较大,成为区块链系统性能与可扩展性的瓶颈。

技术实现思路

[0012]为了解决上述技术问题,本专利技术提供一种基于群组树架构的区块链共识方法。
[0013]本专利技术采用以下技术方案:
[0014]一种基于群组树架构的区块链共识方法,所述群组树架构包括三级节点,分别为根节点、孩子节点和叶节点,所述孩子节点是所述根节点的下一级节点,所述叶节点是所述孩子节点的下一级节点,所述区块链共识方法包括:
[0015]准备阶段:叶节点根据接收到的来自用户发送的命令,生成并向对应的孩子节点发送第一准备消息,所述第一准备消息包括请求生成区块的相关数据;孩子节点将接收到的来自不同叶节点的第一准备消息进行处理,生成并向根节点发送第二准备消息;
[0016]提议阶段:根节点遍历自身群组树,向所有孩子节点发送第一区块提议消息;孩子节点接收到来自根节点本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于群组树架构的区块链共识方法,所述群组树架构包括三级节点,分别为根节点、孩子节点和叶节点,所述孩子节点是所述根节点的下一级节点,所述叶节点是所述孩子节点的下一级节点,其特征在于,所述区块链共识方法包括:准备阶段:叶节点根据接收到的来自用户发送的命令,生成并向对应的孩子节点发送第一准备消息,所述第一准备消息包括请求生成区块的相关数据;孩子节点将接收到的来自不同叶节点的第一准备消息进行处理,生成并向根节点发送第二准备消息;提议阶段:根节点遍历自身群组树,向所有孩子节点发送第一区块提议消息;孩子节点接收到来自根节点的第一区块提议消息后进行相关验证,若验证通过,则向对应的叶节点发送第二区块提议消息;确认阶段:叶节点根据第二区块提议消息进行区块提议的有效性验证,若验证通过,则叶节点向对应的孩子节点发送第一确认消息;孩子节点搜集对应的各叶节点的第一确认消息,若接收到对应的所有叶节点的第一确认消息,则孩子节点生成并向根节点发送第二确认消息;决定阶段;根节点根据第二确认消息进行有效性验证,若验证通过,则生成并向孩子节点发送第一区块提议决定消息;孩子节点接收到第一区块提议决定消息后进行有效性验证,若验证通过,则生成并向叶节点发送第二区块提议决定消息;叶节点对第二区块提议决定消息进行有效性验证,若验证通过,则执行对应的命令。2.根据权利要求1中的基于群组树架构的区块链共识方法,其特征在于,所述第一准备消息包括叶节点从命令缓冲池中按时间顺序取的命令列表、叶节点对应的发送交易的时间戳、叶节点请求生成区块的视图、叶节点请求生成区块的高度和叶节点对应的哈希值,所述叶节点对应的哈希值由叶节点对应的发送交易的时间戳、叶节点请求生成区块的视图、叶节点请求生成区块的高度和叶节点从命令缓冲池中按时间顺序取的命令列表计算得到;所述孩子节点将接收到的来自不同叶节点的第一准备消息进行处理,生成并向根节点发送第二准备消息,包括:所述第二准备消息包括孩子节点对应的命令列表、孩子节点对应的发送交易的时间戳、孩子节点请求生成区块的视图、孩子节点请求生成区块的高度和孩子节点对应的哈希值;所述孩子节点对应的命令列表为与孩子节点对应的所有的叶节点从命令缓冲池中按时间顺序取的命令列表的叠加;所述孩子节点对应的哈希值由孩子节点对应的发送交易的时间戳、孩子节点请求生成区块的视图、孩子节点请求生成区块的高度和孩子节点对应的命令列表计算得到。3.根据权利要求1中的基于群组树架构的区块链共识方法,其特征在于,所述第一区块提议消息包括根节点提议的区块、根节点提议的视图、根节点提议的区块高度和根节点对应的签名;所述根节点对应的签名根据根节点提议的区块、根节点提议的视图和根节点提议的区块高度获取得到;所述第二区块提议消息包括所述第一区块提议消息和孩子节点对应的签名,所述孩子节点对应的签名根据根节点提议的区块、孩子节点提议的视图和孩子节点提议的区块高度获取得到。4.根据权利要求3中的基于群组树架构的区块链共识方法,其特征在于...

【专利技术属性】
技术研发人员:胡凯万季任旖航
申请(专利权)人:北京航空航天大学
类型:发明
国别省市:

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

1