[发明专利]一种基于可靠广播的二元共识方法及装置有效
申请号: | 202110984390.0 | 申请日: | 2021-08-25 |
公开(公告)号: | CN113794694B | 公开(公告)日: | 2022-08-26 |
发明(设计)人: | 段斯斯;张海滨 | 申请(专利权)人: | 清华大学;山东区块链研究院 |
主分类号: | H04L9/40 | 分类号: | H04L9/40;H04L67/1097 |
代理公司: | 北京新知远方知识产权代理事务所(普通合伙) 11397 | 代理人: | 马军芳;张艳 |
地址: | 100089*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 可靠 广播 二元 共识 方法 装置 | ||
1.一种基于可靠广播的二元共识方法,其特征在于,应用于分布式系统中的任一共识节点,所述分布式系统至少包括N个共识节点,其中N≥3f+1,所述f为大于0的整数,所述方法包括:
针对任一共识节点的待共识提议,确定对应于该待共识提议的初始投票值;其中,所述待共识提议为所述共识节点提出并期望其他共识节点进行共识的数据;投票值用于表示各共识节点对待共识提议的共识意见;初始投票值为第一投票值或第二投票值;
循环执行以下每轮共识步骤,直到达到预设停止条件,其中每轮共识步骤包括:
将本轮预投票值广播至其他共识节点;若接收到其他共识节点广播的f+1个本轮预投票值,所述f+1个本轮预投票值均相同、且与本地本轮广播的预投票值不同,则将本地预投票值修改为所述f+1个本轮预投票值对应的投票值,并再次广播修改后的预投票值;
基于其他共识节点广播的本轮预投票值确定本轮主投票值,并将确定的主投票值广播至其他共识节点;
基于其他共识节点广播的本轮主投票值确定本轮最终投票值,利用可靠广播RBC协议将确定的最终投票值广播至其他共识节点;
基于接收到的其他共识节点利用可靠广播RBC协议广播的本轮最终投票值确定所述待共识提议的共识情况。
2.根据权利要求1所述的方法,其特征在于,所述可靠广播RBC协议为无条件安全的可靠广播RBC协议。
3.根据权利要求1所述的方法,其特征在于,所述基于其他共识节点广播的本轮预投票值确定本轮主投票值,包括:
在接收到其他共识节点广播的2f+1个本轮预投票值,且所述2f+1个本轮预投票值均相同的情况下,将所述2f+1个本轮预投票值对应的投票值添加到本轮投票集合中;
将最先添加到本轮投票集合中的值确定为本轮主投票值。
4.根据权利要求3所述的方法,其特征在于,所述基于其他共识节点广播的本轮主投票值确定本轮最终投票值,包括:
基于所述本轮投票集合对接收到的本轮主投票值进行合法性验证;
在接收到N-f个合法本轮主投票值的情况下,基于所述N-f个合法本轮主投票值确定最终投票值。
5.根据权利要求4所述的方法,其特征在于,所述基于所述N-f个合法本轮主投票值确定最终投票值,包括:
若所述N-f个合法本轮主投票值均相同,则将所述N-f个合法本轮主投票值对应的投票值确定为最终投票值;
若所述N-f个合法本轮主投票值不完全相同,则确定最终投票值为不同于第一投票值与第二投票值的预定义值。
6.根据权利要求5所述的方法,其特征在于,所述基于接收到的其他共识节点利用可靠广播RBC协议广播的本轮最终投票值,确定所述待共识提议的共识情况,包括:
基于所述本轮投票集合对接收到的本轮最终投票值进行合法性验证;
在接收到N-f个合法本轮最终投票值的情况下,若所述N-f个本轮最终投票值均相同、为第一投票值或第二投票值,则将所述N-f个本轮最终投票值对应的投票值确定为所述待共识提议的共识结果,并将该N-f个本轮最终投票值对应的投票值确定为下轮共识的预投票值。
7.根据权利要求6所述的方法,其特征在于,还包括:
若所述N-f个合法本轮最终投票值不完全相同,且其中存在f+1个本轮最终投票值相同、为第一投票值或第二投票值,则将所述f+1个本轮最终投票值对应的投票值确定为下轮共识的预投票值;
若所述N-f个合法本轮最终投票值中不存在f+1个相同的投票值,则随机确定本地抛币值,所述本地抛币值为第一投票值或第二投票值,将所述本地抛币值确定为下轮共识的预投票值。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于清华大学;山东区块链研究院,未经清华大学;山东区块链研究院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110984390.0/1.html,转载请声明来源钻瓜专利网。