本发明属于区块链,尤其涉及一种区块链异步网络共识方法和计算机设备。
背景技术:
1、异步网络是指对节点之间通信延迟不设置上限的网络环境。可以理解为,在异步网络中,两个节点之间网络通信的时延可以任意长。如果有拜占庭节点存在,该拜占庭节点可以任意延长通信时间。为了保证共识活性,在未知延时上限场景中实现了多节点异步提交事务的一致性、最终性和全序现有区块链异步网络提出了例如蜜獾honeybadger、小飞象dumbo等共识算法。
2、然而,蜜獾honeybadger和小飞象dumbo,为了降低网络传输负载,其都是在可靠共识rbc(reliable boradcast)阶段将节点的事务切分成事务子集,再将各个事务子集分发给异步分布式系统中的其它节点(不是广播,而是每个节点传一份事务子集)。同时,考虑到作恶节点抗审查的问题。提案的节点会采用门限加密技术对事务子集进行加密处理,而加密后的子集直到共识aba(asynchronous binary agreement,异步二进制共识)结束后才会被解密。
3、这就导致需要等到共识过程完成后解密才能得到事务原文。并且,如果事务子集中包含需要多个步骤执行出结果的指令,则需要再引入额外的共识机制保证各个节点对指令的执行结果达成一致。如果引入的是同步共识,则破坏了异步分布式系统中的异步网络模型。而如果引入的是异步共识,引入哪种异步共识又是个问题,因为目前暂时没有异步共识能在共识过程中完成指令的执行,而且目前的异步共识最后阶段都会采用ba(binaryagreement,二进制共识)共识来完成提案一致性。
技术实现思路
1、基于此,有必要针对上述技术问题,提供一种能够避免引入额外共识机制且减少对门限加密依赖的区块链异步网络共识方法和计算机设备。
2、本发明提供一种区块链异步网络共识方法,包括:
3、提案发起节点从事务池中读取待处理事务数据;
4、所述提案发起节点基于可验证延迟函数对所述待处理事务数据进行哈希处理,形成所述待处理事务数据的可验证延迟哈希序列;
5、所述提案发起节点向参与节点发起消息携带有所述可验证延迟哈希序列的原子广播进行消息验签;
6、在消息验签结束后,各所述参与节点基于所述可验证延迟哈希序列对所述待处理事务数据进行执行结果一致性验证共识。
7、在其中一个实施例中,所述提案节点发起节点从事务池中读取待处理事务数据之前,还包括:
8、以共识节点的唯一标识的哈希值作为闭环节点建立哈希闭环;
9、按照事务相关性对所述事务池中的事务数据分组,将组标识的哈希值作为关键字分配到所述哈希闭环上;
10、在所述哈希闭环上,按照约定方向寻找与所述关键字最接近的节点作为所述关键字的最近节点;所述约定方向包括逆时针方向或顺时针方向;
11、将所述关键字对应的事务数据作为对应所述最近节点的待处理事务数据,得到所述提案发起节点的待处理事务数据。
12、在其中一个实施例中,所述方法还包括:
13、根据共识轮次或共识时间划分共识时代;
14、在每个所述共识时代起始时,基于上一个共识时代各所述共识节点最后一个待处理事务数据的可验证延迟哈希序列更新所述哈希闭环上各节点哈希值。
15、在其中一个实施例中,所述方法还包括:在所述哈希闭环中增加虚拟节点。
16、在其中一个实施例中,所述提案发起节点向参与节点发起消息携带有所述可验证延迟哈希序列的原子广播进行消息验签,包括:
17、所述提案发起节点基于所述可验证延迟哈希序列的片段生成广播消息向所述参与节点进行广播;
18、所述参与节点对所述广播消息的签名验证通过后生成回复消息广播;
19、所述参与节点在接收到2f+1个广播的所述回复消息后,广播准备消息表征已经做好事务处理的准备;其中,f表示拜占庭节点的数量。
20、在其中一个实施例中,所述各所述参与节点基于所述可验证延迟哈希序列对所述待处理事务数据进行执行结果一致性验证共识,包括:
21、在所述参与节点中选取委员会节点,由所述委员会节点基于所述可验证延迟哈希序列在本地验证所述待处理事务数据,得到事务验证结果并进行广播;
22、若所述委员会节点收集到2f+1个相同的所述事务验证结果,则确认事务验证结果达成一致;其中,f表示拜占庭节点的数量;
23、在事务验证结果达成一致后,通过随机抛硬币的方式完成共识轮数收敛后,将共识结果提交给各所述参与节点。
24、在其中一个实施例中,所述方法还包括:
25、划分共识节点形成从链,且在所述从链中选举领导节点;
26、当任意一条所述从链内各共识节点在链内进行共识时,所述提案发起节点同步将可验证延迟哈希序列分发给其他从链的所述领导节点;
27、在所述从链的链内共识完成后,由各所述从链的所述领导节点基于所述可验证延迟哈希序列进行主链共识。
28、在其中一个实施例中,所述方法还包括:
29、所述提案发起节点基于cpu或gpu的核心数,对所述待处理事务数据的可验证延迟哈希序列进行切片。
30、在其中一个实施例中,所述各所述参与节点基于所述可验证延迟哈希序列对所述待处理事务数据进行执行结果一致性验证共识之后,所示方法还包括:将执行结果一致性验证共识后的待处理事务数据落盘存储,且所述提案发起节点在所述事务池中清除所述待处理事务数据。
31、本发明还提供一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器存储由计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述的区块链异步网络共识方法的步骤。
32、本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的区块链异步网络共识方法的步骤。
33、上述区块链异步网络共识方法和计算机设备,将事务传播、身份验签、事务执行与共识相结合,保证了在异步共识过程中完成事务传播和执行,而无需引入额外的共识机制。同时,采用事务的可验证延迟哈希序列广播替代事务子集密文分发传播,能够在异步共识过程中减少对门限加密的依赖,从而在保证网络复杂度较低、网络负载较低和抗审查的同时,无需等到共识过程完成后解密才能得到事务原文。另外,基于vdf得到可验证延迟哈希序列,能够在时序网络被攻击或者共识节点之间被中间人攻击时,保证事务的有序验证。并且,将事务的可验证延迟哈希序列进行切片分段,进而在共识节点上利用多核cpu和多核gpu进行并行验证,加速事务的验证速度、提升异步分布式系统的吞吐量。
1.一种区块链异步网络共识方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述提案发起节点从事务池中读取待处理事务数据之前,还包括:
3.根据权利要求2所述方法,其特征在于,所述方法还包括:
4.根据权利要求2所述的方法,其特征在于,所述方法还包括:在所述哈希闭环中增加虚拟节点。
5.根据权利要求1所述的方法,其特征在于,所述提案发起节点向参与节点发起消息携带有所述可验证延迟哈希序列的原子广播进行消息验签,包括:
6.根据权利要求1所述的方法,其特征在于,所述各所述参与节点基于所述可验证延迟哈希序列对所述待处理事务数据进行执行结果一致性验证共识,包括:
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
8.根据权利要求1-7任意一项所述的方法,其特征在于,所述方法还包括:
9.根据权利要求1-7任一项所述的方法,其特征在于,所述各所述参与节点基于所述可验证延迟哈希序列对所述待处理事务数据进行执行结果一致性验证共识之后,所示方法还包括:将执行结果一致性验证共识后的待处理事务数据落盘存储,且所述提案发起节点在所述事务池中清除所述待处理事务数据。
10.一种计算机设备,包括处理器和存储器,所述存储器存储有计算机程序,其特征在于,所述处理器用于执行所述计算机程序时实现权利要求1-9中任意一项所述的区块链异步网络共识方法。