基于异步网络去中心化的区块链共识方法及系统与流程
未命名
07-22
阅读:96
评论:0
1.本发明涉及区块链的技术领域,特别是涉及一种基于异步网络去中心化的区块链共识方法及系统。
背景技术:
2.现有的共识方案大多基于pbft(拜占庭容错共识)协议进行改进,来实现区块链系统的健壮性、可扩展性、高性能及中心化特性。这些方案假设网络是弱同步或部分同步来保证协议的安全性,弱同步或部分同步是指在一个全局稳定时间(global stabilization time,gst)之前,系统可能处于异步状态,gst之后,会有一段同步的状态。这些基于时间假设的方案不适合于网络链接可能不可靠,网络速度变化很快,而且可能存在网络延迟的去中心化加密货币环境,因为当网络由于恶意节点的存在使弱同步假设被违背时,共识协议的活性将无法被保证,此外,在满足弱同步假设的情况下,协议的吞吐量会因底层网络的故障而显著降低,需要动态调整超时参数gst,但超时参数的工程实现却相当麻烦。
3.另一方面,基于异步网络的共识方案(如中国专利公开号cn115174090a和中国专利公开号cn113660272a),需要使用大量的门限加密技术来模拟一个同步性组件,突破flp不可能性原理( flp impossibility),由于门限加密技术通常使用一个可信任的第三方来生成公私钥对,这一技术的使用降低了区块链系统的去中心化特性,此外,这类方案需要运行大量异步拜占庭协议(asynchronous byzantine agreement,aba)实例,限制了区块链系统的运行效率。
技术实现要素:
4.为解决上述技术问题中的至少之一,本发明提出一种基于异步网络去中心化的区块链共识方法及系统。
5.本发明的目的通过以下技术方案实现:本发明提供了一种基于异步网络去中心化的区块链共识方法,包括可靠广播、选举和二元共识三个阶段,所述可靠广播阶段:所有节点将信息输入到可靠广播,输入的信息由区块链使用纠删码技术按区块链节点数划分成相等份额后,通过可靠广播分发给对应节点;所述选举阶段:从所有区块链节点中选举出委员会成员并加入委员会成员集合,当委员会成员从不同的可靠广播中收到所有节点数减门限值个签名时,通过可靠广播这些签名的索引;所述二元共识阶段:当一个诚实节点收到来自委员会成员的签名索引和来自可靠广播的所有节点的份额后,输入1到委员会成员的共识,如果一个诚实节点从任何委员会成员的共识中得到一个输出,那么就输入0到其他还没有输入的委员会成员的共识;当一个节点在委员会成员总数个共识中终止时,并且诚实节点在委员会成员集合中,如果诚实节点输出1,则该诚实节点等待来自其它节点的份额可靠广播,以获得所有委员会成员的签名,
最后输出委员会成员的份额索引。
6.作为进一步的改进,从所有区块链节点中选举出委员会成员并加入委员会成员集合,包括如下步骤:s21、初始化委员会成员集合,通过伪随机生成器选择备选委员会身份;s22、由可靠广播向所有节点分发备选委员会身份;s23、等待,直到节点返回门限值t+1的签名份额;s24、输入备选委员会身份和一组硬币份额,返回一个属于网络π的一方;s25、收到委员会集合中成员的共识消息、委员会成员身份和索引后,验证委员会成员身份、索引和签名,如果验证通过则将签名备选委员会身份写入委员会成员集合。
7.作为进一步的改进,所述步骤s21中,通过伪随机生成器选择备选委员会身份,包括如下步骤:s211、为每个区块链节点赋初始值;s212、对所有节点初始值进行聚合运算后取哈希值得到数h;s213、通过h mod所有节点总数获得指定数量备选委员会成员。
8.作为进一步的改进,在可靠广播阶段、选举阶段和二元共识阶段的签名采用基于多方计算的schnorr算法。
9.作为进一步的改进,基于多方计算的schnorr算法包括准备阶段和签名阶段,其中签名阶段包括如下步骤:s21、随机选取;s22、随机选取次多项式;s23、计算,;s24、将通过安全信道传输给;s25、的随机数份额为,公布;s26、通过公布的信息计算得到;s27、计算,,并公布;s28、通过公布的信息计算得到;s29、形成最终签名。
10.作为进一步的改进,所述二元共识阶段采用ba算法来实例用到的二进制协议的基元,ba算法中包括根据区块链节点数进行bval、aux和coin消息交互,具体步骤如下:s31、收到区块链节点的输入消息b并赋值给estr;s32、通过bval广播estr给其它节点;s33、其它节点通过bval广播收到2t+1的estr,并将estr写入集合bin_valuesr,t表示设定的门限值;
s34、从集合bin_valuesr选择元素w,通过aux广播元素w;s35、n
‑ꢀ
t个节点通过aux广播接收元素w;s36、通过随机抛硬币算法coin获得一个硬币值;s37、判断硬币值是否与元素w相等,如相等则跳转至步骤s8;如不相等则跳转至步骤s1;s38、输出消息b,表示达成共识。
11.作为进一步的改进,所述步骤s6中,随机抛硬币算法coin中获得的硬币值保存形成硬币序列,用于在ba算法的多轮bval、aux和coin消息交互中使用,具体步骤如下:s361、输入一个唯一的硬币名称;s362、通过门限加密生成一个主公钥和与区块链节点数相同份额的私钥;s363、通过可靠广播将份额私钥、随机抛硬币算法coin获得的值和硬币名称分发给所有节点;s364、当收到大于门限值的节点消息时,将收到的节点消息合并到成一个硬币签名;s365、硬币签名验证通过后作为一个硬币序列值。
12.本发明提供的基于异步网络去中心化的区块链共识方法,包括可靠广播、选举和二元共识三个阶段,所述可靠广播阶段:所有节点将信息输入到可靠广播,输入的信息由区块链使用纠删码技术按区块链节点数划分成相等份额后,通过可靠广播分发给对应节点;所述选举阶段:从所有区块链节点中选举出委员会成员并加入委员会成员集合,当委员会成员从不同的可靠广播中收到所有节点数减门限值个签名时,通过可靠广播这些签名的索引;所述二元共识阶段:当一个诚实节点收到来自委员会成员的签名索引和来自可靠广播的所有节点的份额后,输入1到委员会成员的共识,如果一个诚实节点从任何委员会成员的共识中得到一个输出,那么就输入0到其他还没有输入的委员会成员的共识;当一个节点在委员会成员总数个共识中终止时,并且诚实节点在委员会成员集合中,如果诚实节点输出1,则该诚实节点等待来自其它节点的份额可靠广播,以获得所有委员会成员的签名,最后输出委员会成员的份额索引。本发明通过选举来降低二元共识aba实例的运行次数,提高共识算法的效率。
13.本发明还提供一种基于异步网络去中心化的区块链共识系统,由于采用了上述基于异步网络去中心化的区块链共识方法的技术内容,其应当具有相同或相应的技术效果,因此不再进行赘述。
附图说明
14.图1为本发明整体方案示意图;图2为本发明二元共识的ba算法流程示意图;图3为本发明实施例与pbft方案相比吞吐量节点数量变化示意图;图4为本发明实施例与honey badger方案相比时延随批交易数量变化示意图;图5为本发明实施例与与honey badger方案相比吞吐量随批交易数量变化示意
图。
具体实施方式
15.为了使本领域的技术人员更好地理解本发明的技术方案,下面结合附图和具体实施例对本发明作进一步详细的描述,需要说明的是,在不冲突的情况下,本技术的实施例及实施例中的特征可以相互组合。
16.本发明涉及的相关名词解释:区块链技术:也被称为分布式账本技术,可以解决不受信任的各方达成协议的问题,具有去中心化、可追溯、匿名性、可审计性等特点。
17.共识协议:用于保证区块链网络中所有节点维护的数据副本的一致性,避免数据不统一和信息不对称问题的发生,是一种用于驱动区块链向前推进的算法。
18.异步网络:区块链中各个节点可能存在较大的时钟误差、消息传递时间是任意长的,各节点对消息的处理时间也可能是任意长的。
19.同步网络:区块链中各个节点的时钟误差存在上限、消息传递在一定时间内完成,各节点完成处理消息的时间是一定的。
20.门限加密技术 (threshold encryption,tpke):是一种加密原语,允许任何一方将信息加密到一个主公钥,然后所有节点通过合作对其解密。一旦t +1个正确的节点计算并揭示密码文本的解密份额(t为设定的门限值),明文就可以恢复;直到至少有一个正确的节点揭示其解密份额之前,攻击者无法得知明文的任何信息。
21.flp不可能性原理:在区块链网络可靠,但允许节点失效(即便只有一个)的最小化异步模型系统中,不存在一个可以解决一致性问题的确定性共识算法。
22.纠删码(erasure coding,ec):它是一种数据保护方法,其中数据被分解成碎片,用冗余数据片断进行扩展和编码,并存储在一组不同的位置或存储介质中,如果一个驱动器发生故障或数据被破坏,数据可以从存储在其他驱动器上的片段中重建,通过这种方式,可以帮助增加数据的冗余度。
23.结合图1 所示,本发明实施例提供一种基于异步网络去中心化的区块链共识方法,包括可靠广播、选举和二元共识三个阶段,所述可靠广播阶段:所有节点pi{i=1,2,
…
n}将交易信息vi输入到可靠广播rbc协议中,输入的信息vi由区块链使用纠删码技术按区块链节点数划分成n份,通过可靠广播分发给对应节点;所述选举阶段:从所有区块链节点中选举出委员会成员pj{j=1,2,
…
k}并加入委员会成员集合cmis,包括如下步骤:s21、初始化委员会成员集合,通过伪随机生成器(prg)选择备选委员会身份,具体包括步骤:s211、为每个区块链节点赋初始值;s212、对所有节点初始值进行聚合运算后取哈希值得到数h;s213、通过h mod n后获得备选委员会成员数量。
24.s22、通过方法csharei由可靠广播向所有节点pi分发备选委员会身份c_id,并返回签名份额σi;
s23、等待,直到节点返回门限值t+1的签名份额;s24、通过方法ctoss输入备选委员会身份和一组硬币份额,返回一个属于网络π的一方;s25、收到委员会集合中成员的共识消息share、委员会成员身份和索引后,通过方法cshareverify验证委员会成员身份、索引和签名,如果验证通过则将签名备选委员会身份写入委员会成员集合。
25.代码如下:输入:c_id (备选委员会成员身份)输出:cmis (委员会成员集合)初始化局部变量:cmis
ꢀ←ꢀ
{}σi←ꢀ
csharei(c_id)向各方发送(share, c_id, σi)等待,直到 |σ| = f + 1返回ctoss(c_id,σ)第一次从pj收到(share,c_ id,sj)后如果cshareverify(c_ id, j, σj)=true 那么cmis
ꢀ←ꢀ
{}∪{σj}当委员会成员从不同的可靠广播中收到所有节点数减门限值n
ꢀ‑ꢀ
t个签名时,通过可靠广播这些签名份额的索引sj;所述二元共识阶段:当一个诚实节点p
x
收到来自委员会成员pj的签名索引sj和来自可靠广播的所有节点的份额vn后,输入1到委员会成员的共识abaj,如果一个诚实节点p
x
从任何委员会成员的共识abaj中得到一个输出,那么就输入0到其他还没有输入的委员会成员的共识abaj;当一个节点在委员会成员总数k个共识aba中终止时,并且诚实节点p
x
在委员会成员集合cmis中,如果诚实节点p
x
输出1,则该诚实节点p
x
等待来自可靠广播的签名索引sj和其它节点的份额vn可靠广播,以获得所有委员会成员的签名,最后输出委员会成员的份额vj。具体的,结合图2所示,二元共识阶段采用ba算法来实例用到的二进制协议的基元,ba算法是 pbft 算法的改进,ba算法中包括根据区块链节点数进行bval、aux和coin多轮次的消息交互,具体步骤如下:s31、收到区块链节点的输入消息b并赋值给estr;s32、通过bval广播estr给其它节点;s33、其它节点通过bval广播收到2t+1的estr,并将estr写入集合bin_valuesr,t表示设定的门限值;s34、从集合bin_valuesr选择元素w,通过aux广播元素w;s35、n
‑ꢀ
t个节点通过aux广播接收元素w;s36、通过随机抛硬币算法coin获得一个硬币值,获得的硬币值保存形成硬币序列,用于在ba算法的多轮bval、aux和coin消息交互中使用,具体步骤如下:s361、输入一个唯一的硬币名称;s362、通过门限加密生成一个主公钥和与区块链节点数相同份额的私钥;s363、通过可靠广播将份额私钥、随机抛硬币算法coin获得的值和硬币名称分发
给所有节点;s364、当收到大于门限值的节点消息时,将收到的节点消息合并到成一个硬币签名;s365、硬币签名验证通过后作为一个硬币序列值。
26.s37、判断硬币值是否与元素w相等,如相等则跳转至步骤s8;如不相等则跳转至步骤s1;s38、输出消息b,表示达成共识。
27.作为进一步优选的实施方式,在可靠广播阶段、选举阶段和二元共识阶段的签名采用基于多方计算的schnorr算法,schnorr算法包括准备阶段和签名算法阶段,具体的,准备阶段步骤如下:g为椭圆曲线上基点,q为其阶,私钥为sk,公钥,为待签名消息,为安全哈希函数。
28.区块链每个节点做如下操作:随机选取,其中,为从1到q阶中选取的随机数;随机选取次多项式,其中,为常数因子,为多项式变量;计算,,其中,为当前节点的公钥,为当前节点的公钥哈希值,为门限签名参数,为上一步骤选择的多项式;将通过安全信道传输给;的私钥份额为,公布,其中,为公钥份额;公共账户公钥为,其中,为第i个节点公钥的哈希值。
29.签名算法阶段步骤如下:s21、随机选取,其中,为从1到q阶中选取的随机数;s22、随机选取次多项式,其中,为常数因子;s23、计算,;其中为门限签名参数;s24、将通过安全信道传输给;s25、的随机数份额为,公布,其中,为基于多方计算的公钥份额;
s26、通过公布的信息计算得到,其中,r为基于多方计算的公共账户;s27、计算,,并公布,其中,m为使用公钥加密的密文,为基于多方计算的私钥份额,为原有的私钥份额;s28、通过公布的信息计算得到,其中,s为基于多方计算的主私钥;s29、形成最终签名。
30.本发明实施例采用门限加密技术模拟出同步性组件,突破了flp不可能性原理的瓶颈,摒弃了时间假设,实现了纯异步网络下的共识方法;引入选举算法,选出至少包含一个诚实节点的委员会,将二元共识aba实例的执行次数由节点的总数量n降低到了选举的委员会成员数量k,从而大大提高共识效;同时使用分布式哈希算法进行选举和基于多方计算的改进schnorr算法,保证了区块链系统的去中心特性。
31.本发明实施例通过与经典的pbft和honeybadger(异步共识蜜獾算法)比较,本发明实现了良好性能。将每笔交易的大小固定为250b,批(batch)交易数量设置为10001),如图3所示,1)本发明的吞吐量随着节点的数量增长,这是因为本发明随着异步共识打包进入区块的交易为各节点批交易的组合,节点数量越多,最终打包进入区块的交易也就越多,吞吐量自然就越高,然后,节点数量超过16以后,本发的吞吐量增加的不明显甚至是下降,这是因为网络带宽的限制,即所处理的交易通信量已超过网络的容量;2)pbft协议的吞吐量随着节点数量的增加而明显降低,这是因为pbft的消息通信复杂度为o(n2),节点数量的增加带来了网络的负载度量;3)总体而言,本发明比pbft协议具有更好的性能,尤其是在节点数量很大时,这种效应更加明显。
32.为论证本发明的性能影响指标,我们设置了节点中不同的批交易数量来测量时延、吞吐量。如图4和图5显示:1)批交易数量对本发明和honeybadger的时延有很大影响,单个节点的批交易数量越高,网络中信息的通信量也越高,自然会带来更高的时延;2)本发明的吞吐量明显优于honeybadger,具体本发明吞吐量可优化20%~30%;3)本发明和honeybadger的吞吐量随着批交易数量增加而增加,增加速度比honeybadger更快,因为本发明二元共识ba算法的执行轮数明显低于honeybadger。在实际部署中,可通过增加批交易数量来提高协议的性能。
33.本发明实施例还提供一种基于异步网络去中心化的区块链共识系统,包括上述所述的基于异步网络去中心化的区块链共识方法的任一进一步优选的实施方式,以及在不冲突的情况下,各优选的实施方式之间的组合,其技术作用和有益效果在此不再赘述。
34.以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
35.以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并
不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
技术特征:
1.一种基于异步网络去中心化的区块链共识方法,其特征在于,包括可靠广播、选举和二元共识三个阶段,所述可靠广播阶段:所有节点将信息输入到可靠广播,输入的信息由区块链使用纠删码技术按区块链节点数划分成相等份额后,通过可靠广播分发给对应节点;所述选举阶段:从所有区块链节点中选举出委员会成员并加入委员会成员集合,当委员会成员从不同的可靠广播中收到所有节点数减门限值个签名时,通过可靠广播这些签名的索引;所述二元共识阶段:当一个诚实节点收到来自委员会成员的签名索引和来自可靠广播的所有节点的份额后,输入1到委员会成员的共识,如果一个诚实节点从任何委员会成员的共识中得到一个输出,那么就输入0到其他还没有输入的委员会成员的共识;当一个节点在委员会成员总数个共识中终止时,并且诚实节点在委员会成员集合中,如果诚实节点输出1,则该诚实节点等待来自其它节点的份额可靠广播,以获得所有委员会成员的签名,最后输出委员会成员的份额索引。2.根据权利要求1所述的基于异步网络去中心化的区块链共识方法,其特征在于,从所有区块链节点中选举出委员会成员并加入委员会成员集合,包括如下步骤:s21、初始化委员会成员集合,通过伪随机生成器选择备选委员会身份;s22、由可靠广播向所有节点分发备选委员会身份;s23、等待,直到节点返回门限值t+1的签名份额;s24、输入备选委员会身份和一组硬币份额,返回一个属于网络π的一方;s25、收到委员会集合中成员的共识消息、委员会成员身份和索引后,验证委员会成员身份、索引和签名,如果验证通过则将签名备选委员会身份写入委员会成员集合。3.根据权利要求2所述的基于异步网络去中心化的区块链共识方法,其特征在于,所述步骤s21中,通过伪随机生成器选择备选委员会身份,包括如下步骤:s211、为每个区块链节点赋初始值;s212、对所有节点初始值进行聚合运算后取哈希值得到数h;s213、通过h mod所有节点总数获得指定数量备选委员会成员。4.根据权利要求1所述的基于异步网络去中心化的区块链共识方法,其特征在于,在可靠广播阶段、选举阶段和二元共识阶段的签名采用基于多方计算的schnorr算法。5.根据权利要求4所述的基于异步网络去中心化的区块链共识方法,其特征在于,基于多方计算的schnorr算法包括准备阶段和签名阶段,其中签名阶段包括如下步骤:s21、随机选取;s22、随机选取次多项式;s23、计算,;s24、将通过安全信道传输给;s25、的随机数份额为,公布;
s26、通过公布的信息计算得到;s27、计算,,并公布;s28、通过公布的信息计算得到;s29、形成最终签名。6.根据权利要求1所述的基于异步网络去中心化的区块链共识方法,其特征在于,所述二元共识阶段采用ba算法来实例用到的二进制协议的基元,ba算法中包括根据区块链节点数进行bval、aux和coin消息交互,具体步骤如下:s31、收到区块链节点的输入消息b并赋值给est
r
;s32、通过bval广播est
r
给其它节点;s33、其它节点通过bval广播收到2t+1的est
r
,并将est
r
写入集合bin_values
r
,t表示设定的门限值;s34、从集合bin_values
r
选择元素w,通过aux广播元素w;s35、n
‑ꢀ
t个节点通过aux广播接收元素w;s36、通过随机抛硬币算法coin获得一个硬币值;s37、判断硬币值是否与元素w相等,如相等则跳转至步骤s8;如不相等则跳转至步骤s1;s38、输出消息b,表示达成共识。7.根据权利要求6所述的基于异步网络去中心化的区块链共识方法,其特征在于,所述步骤s6中,随机抛硬币算法coin中获得的硬币值保存形成硬币序列,用于在ba算法的多轮bval、aux和coin消息交互中使用,具体步骤如下:s361、输入一个唯一的硬币名称;s362、通过门限加密生成一个主公钥和与区块链节点数相同份额的私钥;s363、通过可靠广播将份额私钥、随机抛硬币算法coin获得的值和硬币名称分发给所有节点;s364、当收到大于门限值的节点消息时,将收到的节点消息合并到成一个硬币签名;s365、硬币签名验证通过后作为一个硬币序列值。8.一种基于异步网络去中心化的区块链共识系统,其特征在于,包括如权利要求1至7中任一项所述的基于异步网络去中心化的区块链共识方法。
技术总结
本发明涉及一种基于异步网络去中心化的区块链共识方法及系统,包括可靠广播、选举和二元共识三个阶段,可靠广播阶段:所有节点将信息输入到可靠广播,通过可靠广播分发给对应节点;选举阶段:从所有区块链节点中选举出委员会成员并加入委员会成员集合;二元共识阶段:当一个诚实节点收到来自委员会成员的签名索引和来自可靠广播的所有节点的份额后,输入1到ABA
技术研发人员:刘齐军 丁孟 谭林
受保护的技术使用者:湖南天河国云科技有限公司
技术研发日:2023.06.12
技术公布日:2023/7/20
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
