一种共识方法、区块链系统和共识节点技术方案

技术编号:30707067 阅读:73 留言:0更新日期:2021-11-06 09:54
一种共识方法、区块链系统和共识节点,该共识方法包括:第一轮:第一共识节点广播第一消息,第一消息中包括共识提议的交易集合和第一共识节点的签名;第二轮:接收到所述第一消息的共识节点广播第二消息,第二消息中包括对所述交易集合的投票和签名;所述投票包括所述交易集合的摘要值;第三轮:接收到第二消息的共识节点收集到至少Quorum个来自于不同共识节点的一致的投票后,如果自身针对该提议没有广播过不同的投票,则广播第三消息,第三消息包括所述摘要值以及收集到的签名集合;共识节点收集到至少Quorum个来自于不同节点的第三消息后,将所述摘要值对应的交易集合作为共识结果的至少一部分输出。结果的至少一部分输出。结果的至少一部分输出。

【技术实现步骤摘要】
一种共识方法、区块链系统和共识节点


[0001]本说明书实施例属于区块链
,尤其涉及一种共识方法、区块链系统和共识节点。

技术介绍

[0002]区块链(Blockchain)是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链系统中按照时间顺序将数据区块以顺序相连的方式组合成链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。由于区块链具有去中心化、信息不可篡改、自治性等特性,区块链也受到人们越来越多的重视和应用。

技术实现思路

[0003]本专利技术的目的在于提供一种共识方法、区块链系统和共识节点,包括:一种区块链系统中的共识方法,包括:第一轮:第一共识节点广播第一消息,第一消息中包括共识提议的交易集合、时间戳和第一共识节点的签名;第二轮:接收到所述第一消息的共识节点广播第二消息,第二消息中包括对所述交易集合的投票和签名;所述投票包括所述交易集合的摘要值;第三轮:接收到第二消息的共识节点收集到至少Quorum个来自于不同共识节点的一致的投票后,如果自身针对该提议没有广播过不同的投票,则广播第三消息,第三消息包括所述摘要值以及收集到的签名集合;共识节点收集到至少Quorum个来自于不同节点的第三消息后,将所述摘要值对应的交易集合作为按照所述时间戳排序的共识结果输出。
[0004]一种区块链系统,包括共识节点,其中:第一共识节点广播第一消息,第一消息中包括共识提议的交易集合、时间戳和第一共识节点的签名;接收到所述第一消息的共识节点广播第二消息,第二消息中包括对所述交易集合的投票和签名;所述投票包括所述交易集合的摘要值;接收到第二消息的共识节点收集到至少Quorum个来自于不同共识节点的一致的投票后,如果自身针对该提议没有广播过不同的投票,则广播第三消息,第三消息包括所述摘要值以及收集到的签名集合;共识节点收集到至少Quorum个来自于不同节点的第三消息后,将所述摘要值对应的交易集合作为按照所述时间戳排序的共识结果输出。
[0005]一种区块链系统中的共识节点,包括:第一消息接收单元,用于接收第一共识节点广播的第一消息,第一消息中包括共识提议的交易集合、时间戳和第一共识节点的签名;第二消息广播单元,用于当第一消息接收单元接收到所述第一消息后广播第二消
息,第二消息中包括对所述交易集合的投票和签名;所述投票包括所述交易集合的摘要值;投票收集单元,用于收集来自于共识节点的投票;第三消息广播单元,当投票收集单元收集到至少Quorum个来自于不同共识节点的一致的投票,如果自身针对该提议没有广播过不同的投票,则广播第三消息,第三消息包括所述摘要值以及收集到的签名集合;第三消息收集单元,收集来自于共识节点的第三消息;输出单元,当第三消息收集单元收集到至少Quorum个来自于不同节点的第三消息后,将所述摘要值对应的交易集合作为按照所述时间戳排序的共识结果输出。
[0006]上述实施例中,在共识提议被提出时即确定对应的区块在区块链上的相对位置。而且,对于一个最终生成的区块来说,其包含一个共识提议,即对应一个共识结果的产生过程,则该共识结果不需要等待其它共识提议的结果,能够快速输出共识结果。这也就省去了在一个共识结果的生成过程中需要等待、配合其它共识提议的共识完成。对于没有提议的共识节点,也不必提出内容实际为空的共识提议,降低了网络带宽的消耗。对于无法提出共识提议的失效节点,上述实施例中只要正常工作的节点达到Quorum数量,则生成共识结果的过程并不需要HBBFT中那样超时赋值为0后再进入ABA过程,而是可以跳过该失效节点,从而可以大大降低共识的时延。
附图说明
[0007]为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0008]图1是一实施例中实用拜占庭容错算法常规阶段的示意图;图2是一实施例中实用拜占庭容错算法视图切换阶段的示意图;图3是一实施例中蜜獾拜占庭容错算法的示意图;图4是本说明书一实施例中共识算法的流程图;图5是本说明书一实施例中共识算法的示意图;图6是本说明书一实施例中共识算法的示意图;图7是本说明书一实施例中共识算法的示意图;图8是本说明书一实施例中共识算法的示意图;图9是本说明书一实施例中共识算法的示意图;图10是本说明书一实施例中共识算法的示意图;图11是本说明书一实施例中共识节点分布图;图12是本说明书一实施例中共识节点架构图。
具体实施方式
[0009]为了使本
的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,
本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
[0010]区块链系统中,不同参与方通过部署的节点(Node)可以建立一个分布式的区块链网络。利用链式区块结构构造的去中心化(或称为多中心化)的分布式账本,保存于分布式的区块链网络中的每个节点(或大多节点上,如共识节点)上。这样的区块链系统需要解决去中心化(或多中心化)的多个节点上各自的账本数据的一致性和正确性的问题。每个节点上都运行着区块链程序,在一定容错需求的设计下,通过共识(consensus)机制保证所有忠诚节点具有相同的交易,从而保证所有忠诚节点对相同交易的执行结果一致,并将交易及执行结果打包生成区块。当前主流的共识机制包括:工作量证明(Proof of Work,POW)、股权证明(Proof of Stake,POS)、委任权益证明(Delegated Proof of Stake,DPOS)、实用拜占庭容错(Practical Byzantine Fault Tolerance,PBFT)算法,蜜獾拜占庭容错(HoneyBadgerBFT)算法等。
[0011]以PBFT为例,该算法是Miguel Castro (卡斯特罗)和Barbara Liskov(利斯科夫)在1999年提出来的,解决了原始拜占庭容错算法效率不高的问题,将算法复杂度由指数级降低到多项式级,使得拜占庭容错算法在实际系统应用中变得可行。该论文发表在1999年的操作系统设计与实现国际会议上(OSDI99)。PBFT算法中,所有的副本(replica)在一个被称为视图(View)的轮换过程(succession of configuration)中运行。在某个视图中,一个副本作为主节点(primary),其他的副本作为备份节点(backups)。视图是连续编号的整数。主节点由公式p = v mod |R|计算得到,这里v是视图编号,p是副本编号,|R|是副本集合的个数。该算法中假设,当最多存在f个副本(即节点)失效时,如果存在总数为至本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种区块链系统中的共识方法,包括:第一轮:第一共识节点广播第一消息,第一消息中包括共识提议的交易集合、时间戳和第一共识节点的签名;第二轮:接收到所述第一消息的共识节点广播第二消息,第二消息中包括对所述交易集合的投票和签名;所述投票包括所述交易集合的摘要值;第三轮:接收到第二消息的共识节点收集到至少Quorum个来自于不同共识节点的一致的投票后,如果自身针对该提议没有广播过不同的投票,则广播第三消息,第三消息包括所述摘要值以及收集到的签名集合;共识节点收集到至少Quorum个来自于不同节点的第三消息后,将所述摘要值对应的交易集合作为按照所述时间戳排序的共识结果输出。2.如权利要求1所述的方法,所述第二消息、第三消息中还包括所述时间戳。3.如权利要求1或2所述的方法,所述时间戳基于第一共识节点广播第一消息时或之前的物理时间以及网络传输时延确定。4.如权利要求3所述的方法,所述网络传输时延包括第一共识节点与其它共识节点的网络传输时延的平均值或最大值。5.如权利要求1所述的方法,在同一次共识过程中,所述区块链系统中的至少Quorum数量的共识节点参与共识,且其中至少一个共识节点作为第一共识节点执行权利要求1的方法。6.如权利要求1所述的方法,至少一个共识节点作为第一共识节点执行权利要求1的方法所产生的至少两个共识结果,按照所述时间戳顺序生成区块。7.如权利要求1所述的方法,至少两个共识节点分别作为第一共识节点执行权利要求1的方法所产生的至少两个共识结果,按照所述时间戳顺序生成区块。8.一种区块链系统,包括共识节点,其中:第一共识节点广播第一消息,第一消息中包括共识提议的交易集合、时间戳和第一共识节点的签名;接收到所述第一消息的共识节点广播第二消息,第二消息中包括对所述交易集合的投票和签名;所述投票包括所述交易集合的摘要值;接收到第二消息的共识节点收集到至少Quorum个来自于不同共识节点的一致的投票后,如果自身针对该提议没有广播过不同的投票,则广播第三消息,第三消息包括所述摘要值以及收集到的签名集合;共识节点收集到至少Quorum个来自于不同节点的第三消息后,将所述摘要值对应的交易集合作为按照所述时间戳排序的共识结果输出。9.如权利要求8所述的系统,所述第二消息、第三消息中还包括所述时间戳,相应地,第二消息、第三消息中的所述签名包括对所述时间戳在内的数据的签名。10.如权利要求8或9所述的系统,所述时间戳基于第一共识节点广播第一消...

【专利技术属性】
技术研发人员:刘盛云邓福喜闫莺徐文博
申请(专利权)人:支付宝杭州信息技术有限公司
类型:发明
国别省市:

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

1