【技术实现步骤摘要】
异步双输出多元共识方法及装置
[0001]本专利技术涉及区块链
,尤其涉及一种异步双输出多元共识方法及装置。
技术介绍
[0002]本部分旨在为权利要求书中陈述的本专利技术实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
[0003]拜占庭共识协议是区块链的基础,是保障区块链安全的核心技术。拜占庭共识协议在传统的分布式系统中,可以通过不同的系统组件来构造。其中比较经典的两种叫做多元拜占庭共识。顾名思义,多元共识(MBA)中,每个节点可以提出任意一个值(确定性的数值),能够保障所有的正确节点最终对一样的数值达成共识。
[0004]基于网络假设不同,拜占庭协议可以被分为同步协议、异步协议、半同步协议。本专利技术针对的所有协议都是异步的协议,是鲁棒性最强的协议类型。目前的异步共识都是针对一个值达成共识,目前缺乏一种针对两个值达到多元共识的方案。
技术实现思路
[0005]本专利技术实施例提供一种异步双输出多元共识方法,用以实现针对两个值的异步多元共识,并提供了一种异步双 ...
【技术保护点】
【技术特征摘要】
1.一种异步双输出多元共识方法,其特征在于,包括:每个节点有一个输入,将该节点的第一本地变量设置成该输入,并发送针对该输入的分散消息给全部节点;该节点在首次收到来自其他节点的消息后,将第二本地变量设置为加1;在该节点若收到n
‑
2f条一致的分散消息,且接收的分散消息中的输入不等于该节点自己提议的值时,发送针对该节点的输入的回声消息给全部节点;在该节点在首次收到来自其他节点的回声消息后,将第二本地变量设置为加1;针对该节点接收的分散消息和回收消息、第一本地变量、第二本地变量,开启可再投票二元共识,并进行投票,确定可再投票二元共识的输出和第三本地变量;根据可再投票二元共识的输出、第三本地变量,获得异步双输出多元数组,并确定对异步双输出多元数组达成异步双输出多元共识;其中,异步双输出多元共识协议中,节点总数为n,错误节点个数为f,n≥3f+1。2.如权利要求1所述的方法,其特征在于,针对该节点接收的分散消息和回收消息、第一本地变量、第二本地变量,开启可再投票二元共识,并进行投票,确定可再投票二元共识的输出和第三本地变量,包括:针对该节点接收的分散消息和回收消息、第一本地变量、第二本地变量,开启可再投票二元共识,并进行投票为0;针对该节点接收的分散消息和回收消息,开启可再投票二元共识,并进行投票为1;根据可再投票二元共识的投票,确定可再投票二元共识的输出。3.如权利要求2所述的方法,其特征在于,针对该节点接收的分散消息和回收消息、第一本地变量、第二本地变量,开启可再投票二元共识,并进行投票为0,包括:若该节点收到了f+1条来自不同其他节点的分散消息或回声消息,其中,不同其他节点的分散消息中包含的输入与该节点的第一本地变量不同,或不同其他节点的回声消息中包含的输入与该节点的第一本地变量不同,开启可再投票二元共识,投票为0;该节点判断自己收到票数最多的值,若对任意与票数最多的值不同的输入,第二本地变量的总数不小于f+1,开启可再投票二元共识,投票为0。4.如权利要求2所述的方法,其特征在于,针对该节点接收的分散消息和回收消息,开启可再投票二元共识,并进行投票为1,包括:若该节点收到了n
‑
f条一样的分散消息及回声消息,且第二本地变量大于等于n
‑
f,此时,对回声消息中的输入进行门限签名,形成门限签名分片,并发送向前消息给全部节点,所述向前消息是根据所述输入和所述门限签名分片形成的;若该节点收到了n
‑
f条向前消息,该节点聚合所述向前消息中的门限签名分片为门限签名,并将第三本地变量设置为向前消息中的输入;若此时可再投票二元共识未开启,投票为1,若此...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。