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

技术编号:30772494 阅读:26 留言:0更新日期:2021-11-10 12:45
一种共识方法、区块链系统和共识节点,该共识方法包括:第一共识节点将共识提议的交易集合采用纠删码生成多个数据块;第一共识节点发送第一消息至其它共识节点;接收到第一消息的共识节点广播第二消息,第二消息中包括接收到的数据块,并包括对交易集合的投票和签名;投票包括交易集合的摘要值;接收到第二消息的共识节点收集到至少Quorum个来自于不同共识节点的一致的投票后,广播第三消息,第三消息包括摘要值以及收集到的签名集合;共识节点在第二轮或第三轮的末尾基于接收到的数据块采用纠删码恢复出交易集合,并在收集到至少Quorum个来自于不同节点的第三消息后,将摘要值对应的交易集合作为共识结果的至少一部分输出。输出。输出。

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


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

技术介绍

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

技术实现思路

[0003]本专利技术的目的在于提供一种共识方法、区块链系统和共识节点,包括:一种区块链系统中的共识方法,包括:第一轮:第一共识节点将共识提议的交易集合采用纠删码生成多个数据块;第一共识节点保留一份数据块,并发送第一消息至其它共识节点,发送至不同共识节点的第一消息中包括不同的所述数据块以及第一共识节点的签名;第二轮:接收到所述第一消息的共识节点广播第二消息,第二消息中包括对所述交易集合的投票和签名;所述投票包括所述交易集合的摘要值;第三轮:接收到第二消息的共识节点收集到至少Quorum个来自于不同共识节点的一致的投票后,广播第三消息,第三消息包括数据块、所述摘要值以及收集到的签名集合;其中第一共识节点广播的数据块包括所述保留的数据块,其余共识节点广播第一轮中收到的数据块;所述其余共识节点在第三轮的末尾基于接收到的数据块采用所述纠删码恢复出所述交易集合,并在收集到至少Quorum个来自于不同节点的第三消息后,将所述摘要值对应的交易集合作为共识结果的至少一部分输出。
[0004]一种区块链系统,包括共识节点,其中:第一共识节点将共识提议的交易集合采用纠删码生成多个数据块;第一共识节点保留一份数据块,并发送第一消息至其它共识节点,发送至不同共识节点的第一消息中包括不同的所述数据块以及第一共识节点的签名;接收到所述第一消息的共识节点广播第二消息,第二消息中包括对所述交易集合的投票和签名;所述投票包括所述交易集合的摘要值;接收到第二消息的共识节点收集到至少Quorum个来自于不同共识节点的一致的投票后,广播第三消息,第三消息包括数据块、所述摘要值以及收集到的签名集合;其中第一共识节点广播的数据块包括所述保留的数据块,其余共识节点广播第一轮中收到的数据块;所述共识节点在第三轮的末尾基于接收到的数据块采用所述纠删码恢复出所述
交易集合,并在收集到至少Quorum个来自于不同节点的第三消息后,将所述摘要值对应的交易集合作为共识结果的至少一部分输出。
[0005]一种区块链系统中的共识节点,包括:数据块生成单元,用于将共识提议的交易集合采用纠删码生成多个数据块,并保留一份数据块;第一消息广播单元,用于广播第一消息至其它共识节点,发送至不同共识节点的第一消息中包括不同的所述数据块以及第一共识节点的签名;第二消息接收单元,用于接收第二消息,第二消息中包括对所述交易集合的投票和签名;所述投票包括所述交易集合的摘要值;第三消息广播单元,当第二消息接收单元收集到至少Quorum个来自于不同共识节点的一致的投票后广播第三消息,第三消息包括所述保留的数据块,所述摘要值以及收集到的签名集合;第三消息收集单元,用于收集来自于不同共识节点的第三消息;输出单元,在第三消息收集单元收集到至少Quorum个来自于不同节点的第三消息后,将所述摘要值对应的交易集合作为共识结果的至少一部分输出。
[0006]一种区块链系统中的共识节点,包括:第一消息接收单元,用于接收第一共识节点广播的第一消息,第一消息中包括提议的交易集合的一个数据块和第一共识节点的签名;第二消息广播单元,用于当第一消息接收单元接收到所述第一消息后广播第二消息,第二消息中包括对所述交易集合的投票和签名;所述投票包括所述交易集合的摘要值;第二消息接收单元,用于接收第二消息,第二消息中包括对所述交易集合的投票和签名;所述投票包括所述交易集合的摘要值;第三消息广播单元,当第二消息接收单元收集到至少Quorum个来自于不同共识节点的一致的投票,则广播第三消息,第三消息包括所述摘要值以及收集到的签名集合;第三消息收集单元,收集来自于不同共识节点的第三消息;恢复单元,基于第三消息收集单元接收到的数据块采用所述纠删码恢复出所述交易集合;输出单元,当第三消息收集单元收集到至少Quorum个来自于不同节点的第三消息后,将所述摘要值对应的交易集合作为共识结果的至少一部分输出。
[0007]上述实施例中,在一定前提下缩短至3个轮次完成一次共识的基础上,采用纠删码对共识提议的交易生成若干个数据块,提议的共识节点不必传输较大的数据包至其余的每一共识节点,而是将数据包的不同数据块传输至不同的共识节点,从而可以降低网络传输的数据量。在第二轮中转发提议的共识节点发来的数据块,可以充分利用网络中节点之间的带宽资源,从而整体上提升共识协议的性能。
附图说明
[0008]为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附
图获得其他的附图。
[0009]图1是一实施例中实用拜占庭容错算法常规阶段的示意图;图2是一实施例中实用拜占庭容错算法视图切换阶段的示意图;图3是一实施例中蜜獾拜占庭容错算法的示意图;图4是本说明书一实施例中共识算法的流程图;图5是本说明书一实施例中共识算法的示意图;图6是本说明书一实施例中共识算法的示意图;图7是本说明书一实施例中共识算法的示意图;图8是本说明书一实施例中共识算法的示意图;图9是本说明书一实施例中共识算法的示意图;图10是本说明书一实施例中共识节点的架构图;图11是本说明书一实施例中共识节点的架构图;图12是本说明书一实施例中纠删码的原理图;图13是本说明书一实施例中Merkle Tree的原理图;图14是本说明书一实施例中Merkle Tree的原理图。
具体实施方式
[0010]为了使本
的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
[0011]区块链系统中,不同参与方通过部署的节点(Node)可以建立一个分布式的区块链网络。利用链式区块结构构造的去中心化(或称为多中心化)的分布式账本,保存于分布式的区块链网络中的每个节点(或大多节点上,如共识节点)上。这样的区块链系统需要解决去中心化(或多中心化)的多个节点上各自的账本数据的一致性和正确性的问题。每个节点上都运行着区块链程序,在一定容错需求的设计下,通过共识(consensus)机制保证所有忠诚节点具有相同的交易,从而保证所有忠诚节点对相同交易的执行结果本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种区块链系统中的共识方法,包括:第一轮:第一共识节点将共识提议的交易集合采用纠删码生成多个数据块;第一共识节点保留一份数据块,并发送第一消息至其它共识节点,发送至不同共识节点的第一消息中包括不同的所述数据块以及第一共识节点的签名;第二轮:接收到所述第一消息的共识节点广播第二消息,第二消息中包括对所述交易集合的投票和签名;所述投票包括所述交易集合的摘要值;第三轮:接收到第二消息的共识节点收集到至少Quorum个来自于不同共识节点的一致的投票后,广播第三消息,第三消息包括数据块、所述摘要值以及收集到的签名集合;其中第一共识节点广播的数据块包括所述保留的数据块,其余共识节点广播第一轮中收到的数据块;所述其余共识节点在第三轮的末尾基于接收到的数据块采用所述纠删码恢复出所述交易集合,并在收集到至少Quorum个来自于不同节点的第三消息后,将所述摘要值对应的交易集合作为共识结果的至少一部分输出。2.如权利要求1所述的方法,第一共识节点将共识提议的交易集合采用纠删码生成n个数据块,所述n等于共识节点的总数。3.如权利要求1所述的方法,第一轮中第一共识节点针对每个数据块生成对应的默克尔证明,所述发送的第一消息中还包括所述默克尔证明;相应的,在第一轮的末尾接收到所述第一消息的共识节点还对所述接收到的数据块和默尔克证明进行验证;验证通过后进入第二轮。4.如权利要求3所述的方法,广播的第二消息或第三消息中还包括广播的数据块对应的默克尔证明。5.如权利要求4所述的方法,在第三轮的末尾,接收到第三消息的共识节点还对所述接收到的数据块和对应的默克尔证明进行验证;验证通过后进入采用纠删码恢复交易集合的处理。6.如权利要求1所述的方法,在第三轮的末尾还验证第三消息的正确性,包括验证第三消息的签名集合中包括至少Quorum个签名。7.如权利要求1所述的方法,广播第三消息的共识节点不再更改针对同一提议的交易集合的投票观点。8.如权利要求1

7中任一项所述的方法,所述签名集合用聚合签名或门限签名替代。9.如权利要求1所述的方法,在同一次共识过程中,所述区块链系统中的至少Quorum数量的共识节点中的每一个作为第一共识节点执行权利要求1的方法。10.一种区块链系统,包括共识节点,其中:第一共识节点将共识提议的交易集合采用纠删码生成多个数据块;第一共识节点保留一份数据块,并发送第一消息至其它共识节点,发送至不同共识节点的第一消息中包括不同的所述数据块以及第一共识节点的签名;接收到所述第一消息的共识节点广播第二消息,第二消息中包括对所述交易集合的投票和签名;所述投票包括所述交易集合的摘要值;接收到第二消息的共识节点收集到至少Quorum个来自于不同共识节点的一致的投票后,广播第三消息,第三消息包括数据块、所述摘要值以及收集到的签名集合;其中第一共
识节点广播的数据块包括所述保留的数据块,其余共识节点广播第一轮中收到的数据块;所述共识节点在第三轮的末尾基于接收到的数据块采用所述纠删码恢复出所述交易集合,并在收集到至少Quorum个来...

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

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

1