当前位置: 首页 > 专利查询>清华大学专利>正文

一种基于可靠广播的可再投票二元共识方法及装置制造方法及图纸

技术编号:31312210 阅读:14 留言:0更新日期:2021-12-12 21:46
本申请实施例中提供了一种基于可靠广播的可再投票二元共识方法,以及一种拜占庭容错方法,应用于所述N个共识节点中的任一节点,该共识方法包括:针对任一共识节点的待共识提议,确定该待共识提议的初始投票值;在所述初始投票值为其他投票值、且满足预设条件的情况下,重新将所述初始投票值确定为优先投票值;基于可靠广播RBC协议将首轮投票值广播至所述N个共识节点中的其他节点;基于其他共识节点广播的首轮投票值确定所述待共识提议的共识情况。可以使各个共识节点就待共识提议快速达成共识,同时提升了共识过程的安全性,另外,如果采用无条件安全的RBC协议,上述二元共识方法以及拜占庭容错方法也是无条件安全的。法以及拜占庭容错方法也是无条件安全的。法以及拜占庭容错方法也是无条件安全的。

【技术实现步骤摘要】
一种基于可靠广播的可再投票二元共识方法及装置


[0001]本申请涉及计算机
,具体地,涉及一种基于可靠广播的可再投票二元共识方法及装置。

技术介绍

[0002]二元共识是拜占庭容错机制(拜占庭共识,BFT)的主要组成部分,目前已知的异步拜占庭共识协议都直接或者间接依赖二元共识,其可以使分布式系统在异步环境下达成共识。同时,二元共识也可以用于构造状态机复制(state machine replication),进而使用状态机复制为分布式容错系统建立基础,另外,二元共识还可以应用在数据库等
因此,对于二元共识的研究是目前业界重要的研究方向。

技术实现思路

[0003]本申请实施例中提供了一种基于可靠广播的可再投票二元共识方法及装置,用于解决现有技术中共识安全性差的问题。
[0004]根据本申请实施例的第一个方面,提供了一种基于可靠广播的可再投票二元共识方法,其特征在于,应用于分布式系统中的任意一共识节点,所述分布式系统包括N个共识节点,其中N≥3f+1,所述f为大于0的整数,所述方法包括:
[0005]针对任一共识节点的待共识提议,确定该待共识提议的初始投票值;其中,初始投票值为优先投票值或其他投票值;
[0006]在所述初始投票值为其他投票值、且满足预设条件的情况下,重新将所述初始投票值确定为优先投票值;
[0007]基于可靠广播RBC协议将首轮投票值广播至所述N个共识节点中的其他节点;
[0008]基于其他共识节点广播的首轮投票值确定所述待共识提议的共识情况。
[0009]根据本申请实施例的第二个方面,提供了一种拜占庭容错方法,其特征在于,应用于分布式系统中的任意一共识节点,所述分布式系统包括N个共识节点,其中N≥3f+1,所述f为大于0的整数,所述方法包括:
[0010]以预设的方式确定本次待共识提议,利用可靠广播RBC协议将所述待共识提议广播至其他共识节点;
[0011]针对任一共识节点的待共识提议,采用上述基于可靠广播的可再投票二元共识方法确定该待共识提议的共识结果。
[0012]根据本申请实施例的第三个方面,提供了一种基于可靠广播的可再投票二元共识装置,其特征在于,应用于分布式系统中的任意一共识节点,所述分布式系统包括N个共识节点,其中N≥3f+1,所述f为大于0的整数,所述装置包括:
[0013]处理模块,用于针对任一共识节点的待共识提议,确定该待共识提议的初始投票值;其中,初始投票值为优先投票值或其他投票值;在所述初始投票值为其他投票值、且满足预设条件的情况下,重新将所述初始投票值确定为优先投票值;
[0014]通信模块,用于基于可靠广播RBC协议将首轮投票值广播至所述N个共识节点中的其他节点;
[0015]所述处理模块,还用于基于其他共识节点广播的首轮投票值确定所述待共识提议的共识情况。
[0016]根据本申请实施例的第四个方面,提供了一种拜占庭容错装置,其特征在于,应用于分布式系统中的任意一共识节点,所述分布式系统包括N个共识节点,其中N≥3f+1,所述f为大于0的整数,所述装置包括:
[0017]广播模块,用于以预设的方式确定本次共识的待共识提议,利用可靠广播RBC协议将所述待共识提议广播至其他共识节点;
[0018]共识模块,用于针对任一共识节点的待共识提议,采用上述的基于可靠广播的可再投票二元共识方法确定该待共识提议的共识结果。
[0019]采用本申请实施例中提供的基于可靠广播的二元共识方法,各个共识节点利用可靠广播RBC协议广播投票值,可以使各个共识节点就待共识提议快速达成共识,同时提升了共识过程的安全性,进而提高了分布式系统的处理能力。
附图说明
[0020]此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
[0021]图1为本说明书实施例的一种共识节点维护各个RABA实例的示意图;
[0022]图2为本说明书实施例的一种基于可靠广播的可再投票二元共识方法的流量示意图;
[0023]图3为本说明书实施例的一种广播投票的流程示意图;
[0024]图4为本说明书实施例的另一种基于可靠广播的可再投票二元共识方法的流程示意图;
[0025]图5为本说明书实施例的一种共识节点维护各个RBC以及RABA实例的示意图;
[0026]图6为本说明书实施例的一种默克尔树的结构示意图;
[0027]图7为本说明书实施例的一种基于可靠广播的可再投票二元共识装置的结构示意图;
[0028]图8为本说明书实施例的一种拜占庭容错装置的结构示意图;
[0029]图9是用于配置本说明书实施例装置的一种设备的结构示意图。
具体实施方式
[0030]二元共识是拜占庭容错机制BFT的重要组成部分,目前已知的异步拜占庭共识协议都直接或者间接依赖二元共识,其可以使区块链等分布式系统在异步环境下达成共识。同时,二元共识也可以用于构造状态机复制(state machine replication),进而使用状态机复制为分布式容错系统建立基础,另外,二元共识还可以应用在数据库等

[0031]二元共识中,二元是指两个值,通常用0和1表示,分布式系统中各个节点可以就两个值中的某个值达成一致,而该值对于分布式系统来说往往具有重要的实际意义。以二元共识应用在区块链网络为例,区块链网络中各个节点的数据需要保持一致,如果利用二元
共识方法,当各个节点针对某批交易达成共识为1时,则各个节点都存储该数据,当各个节点针对某批交易达成共识为0时,则各个节点都不存储该数据,这样就保证了各个节点存储数据的一致性。可以理解的是,如果二元共识过程的安全性越高,则分布式系统的抗攻击能力也就越强、性能也就越优越,因此如何提高二元共识的安全性是目前业界重要的研究方向之一。
[0032]针对上述问题,本申请实施例中提供了一种基于可靠广播的可再投票二元共识方法,应用于分布式系统中的任一个共识节点,该节点通过可靠广播RBC协议广播投票值,并基于接收到的其他共识节点广播的投票值确定共识结果,从而使系统中各个节点达成共识,同时有效提升了共识过程的安全性。
[0033]本申请实施例中的方案可以采用各种计算机语言实现,例如,面向对象的程序设计语言Java和直译式脚本语言JavaScript等。
[0034]为了使本申请实施例中的技术方案及优点更加清楚明白,以下结合附图对本申请的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本申请的一部分实施例,而不是所有实施例的穷举。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
[0035]为了便于本领域技术人员理解本说明书中的内容,下面对本说明书中涉及到的名词进行说明。
[0036]在本说明书中,待共识提议可以理解为本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于可靠广播的可再投票二元共识方法,其特征在于,应用于分布式系统中的任意一共识节点,所述分布式系统包括N个共识节点,其中N≥3f+1,所述f为大于0的整数,所述方法包括:针对任一共识节点的待共识提议,确定该待共识提议的初始投票值;其中,初始投票值为优先投票值或其他投票值;在所述初始投票值为其他投票值、且满足预设条件的情况下,重新将所述初始投票值确定为优先投票值;基于可靠广播RBC协议将首轮投票值广播至所述N个共识节点中的其他节点;基于其他共识节点广播的首轮投票值确定所述待共识提议的共识情况。2.根据权利要求1所述的方法,其特征在于,还包括:在首轮未就所述优先投票值达成共识的情况下,循环执行其他轮共识步骤,直到达到预设停止条件,其中其他轮共识步骤包括:基于可靠广播RBC协议将本轮投票值广播至所述N个共识节点中的其他节点;基于接收到的其他共识节点广播的本轮投票值确定所述待共识提议的共识情况。3.根据权利要求1所述的方法,其特征在于,所述基于可靠广播RBC协议将首轮投票值广播至所述N个共识节点中的其他节点,包括:将所述初始投票值广播至其他共识节点;基于所述初始投票值以及其他共识节点广播的初始投票值确定首轮主投票值,并将确定的首轮主投票值广播至其他共识节点;基于确定的首轮主投票值以及其他共识节点广播的首轮主投票值确定首轮最终投票值,利用可靠广播RBC协议将确定的最终投票值广播至其他共识节点。4.根据权利要求3所述的方法,其特征在于,所述基于所述初始投票值以及其他共识节点广播的初始投票值确定首轮主投票值前,还包括:若接收到其他共识节点广播的f+1个初始投票值,所述f+1个初始投票值均相同、且与本地本轮广播的初始投票值不同,则将本地初始投票值修改为所述f+1个初始投票值对应的投票值,并再次广播修改后的初始投票值。5.根据权利要求4所述的方法,其特征在于,所述基于所述初始投票值以及其他共识节点广播的初始投票值确定首轮主投票值,包括:若本地初始投票值为优先投票值,则将优先投票值添加到首轮投票集合中,并将优先投票值确定为首轮主投票值;若所述初始投票值为其他投票值,则在接收到其他共识节点广播的2f+1个初始投票值、且所述2f+1个初始投票值均相同的情况下,将所述2f+1个初始投票值对应的值添加到首轮投票集合中;并将最先添加到首轮投票集合中的投票值确定为首轮主投票值。6.根据权利要求5所述的方法,其特征在于,所述基于确定的首轮主投票值以及其他共识节点广播的首轮主投票值确定首轮最终投票值,包括:若本地首轮主投票值为优先投票值,则确定首轮最终投票值为优先投票值;若本地首轮主投票值为其他投票值,则基于所述首轮投票集合对接收到的其他共识节点广播的首轮主投票值进行合法性验证;在接收到N

f个合法首轮主投票值的情况下,基于所述N

f个合法首轮主投票值确定最
终投票值。7.根据权利要求6所述的方法,其特征在于,所述基于所述N

f个合法首轮主投票值确定最终投票值,包括:若所述N

f个合法首轮主投票值均相同,则确定所述N

f个主投票值对应的值为最终投票值;若所述N

f个合法首轮主投票值不完全相同,则确定最终投票值为不同于优先投票值与其他投票值的预定义值。8.根据权利要求7所述的方法,其特征在于,所述基于其他共识节点广播的首轮投票值确实所述待共识提议的共识情况,包括:基于所述本轮投票集合对接收到的本轮最终投票值进行合法性验证;在接收到n

f个合法首轮最终投票值的情况下,若所述N

f个首轮最终投票值均相同、为优先投票值或其他投票值,则将所述N

f个首轮最终投票值对应的投票值确定为所述待共识提议的共识结果,并将该N

f个首轮最终投票值对应的投票值确定为下轮共识的预投票的值;若所述N

f个合法首轮最终投票值不完全相同,且其中存在f+1个首轮最终投票值相同、为优先投票值或其他投票值,则将所述f+1个首轮最终投票值对应的投票值确定为下轮共识的预投票值;若所述N

f个首轮最终投票值中不存在f+1个相同的投票值,则将优先投票值确定为下轮共识的预投票值。9.根据权利要求2所述的方法,其特征在于,所述基于可靠广播RBC协议将本轮投票值广播至所述N个共识节点中的其他节点,包括:将本轮预投票值广播至其他共识节点;基于其他共识节点广播的本轮预投票值确定本轮主投票值,并将确定的主投票值广播至其他共识节点;基于其他共识节点广播的本轮主投票值确定本轮最终投票值,利用可靠广播RBC协议将确定的最终投票值广播至其他共识节点。10.根据权利要求9所述的方法,其特征在于,在所述基于其他共识节点广播的本轮预投票值确定本轮主投票值前,还包括:若接收到其他共识节点广播的f+1个本轮预投票值,所述f+1个本轮...

【专利技术属性】
技术研发人员:张海滨段斯斯
申请(专利权)人:清华大学
类型:发明
国别省市:

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

1