本发明涉及区块链技术,特别涉及一种基于dag的多分区并行共识方法。
背景技术:
1、当今的区块链架构都面临着许多问题,尤其是区块链性能、可扩展性和互操作性的问题。且当下的很多区块链应用受单个物理机的容量限制,资源效率低下。面对以上问题,理想的解决方案是允许多个并行区块链在保持其安全性的同时进行互操作,通过多分区共识并行处理交易提高交易效率。在保证数据隔离的同时提高并发量。目前多分区共识可主要分为三类:集中式或多级公证人方案、哈希锁定(htlc)以及侧链技术。
2、基于侧链技术,cosmos因而被提出,cosmos是一个连接许多独立区块链的网络。使用基于tendermint的集线器(cosmos hub)使不同的去中心化账本(分区)可以通过跨区块链通信(ibc)协议相互发送交易,提升了不同区块链平台之间的互操作性。
3、此外,gavin wood提出了polkadot,它是一个可扩展的异构多链架构。与之前专注于为潜在应用程序提供不同程度通用性的单链不同,polkadot本身的设计根本不提供固有的应用程序功能。相反,polkadot提供了一个基础的“中继链”,在这个中继链上,大量可验证的、全局一致的动态数据结构可以并行托管。
4、但以上方案仍然有一些局限性,例如cosmos和polkadot作为侧链需要信任专用区块链,这将不利于区块链的去中心化特性。
技术实现思路
1、为了解决区块链技术应用中的数据隔离、互操作性问题,提高区块链的可扩展性、并发量,同时保证安全性,本发明提出一种基于多链并行区块链的多分区共识方法,具体包括以下步骤:
2、在一个多链网络中包括多个共识分区,每个共识分区包括多个共识节点,每个共识分区选择一种共识算法;
3、每个共识分区维护一条区块链,当该区块链从当前区块链i和其他任一区块链j分别选择一个区块共同提供参数生成新的区块,验证生成的区块的有效性;
4、若该区块有效,则利用该区块更新该区块所在的主链,完成共识。
5、进一步的,验证第i个共识分区中,从当前区块链i和其他任一区块链j分别选择一个区块共同提供参数生成新的区块bij,区块bij的有效性验证过程包括以下步骤:
6、生成区块时,将从其自己所在共识分区选择的参数称为第一参数,将从其他共识分区选择的参数称为第二参数;
7、在每个共识分区进行搜索满足条件的区块,若在第z个共识分区中搜索到满足条件的区块bzl和bzk在不同分叉上,则区块bij无效;
8、其中,区块bzl为区块bij所在共识分区中的其任意一个前驱区块生成时所需的第一参数或者第二参数来自于第z个分区中的区块bzl;区块bzk为非区块bij所在共识分区中的其任意一个前驱区块生成时所需的第一参数或者第二参数来自于第z个分区中的区块。
9、进一步的,从生成新区块所在分区以及其他分区分别选择一个前驱区块,根据选择的两个前驱区块基于该分区的共识算法生成新区块。
10、进一步的,从生成新区块所在分区选择前驱区块的过程包括:
11、
12、其中,e表示集合zone_children(bij)中的区块;zone_children(b)表示第i个分区中直接验证区块bij的区块集合;children(e)表示在第i个分区中或者其他分区中直接或者间接验证区块e的区块集合;qf.zoneitra(f)表示区块f自身的权重值。
13、进一步的,qf.zoneitra(f)与区块生成率成反比。
14、进一步的,生成新区块时,从其他分区分别选择前驱区块的过程包括:
15、计算区块的累积权重,区块的累积权重为区块自身的权重与所有证明该区块的区块的自身权重之和;
16、选择累积权重在[w,2w]之间的区块;
17、将n个粒子放置在选中的区块上,粒子进行随机游走,在随机游走的过程中将可以作为前驱模块的区块作为目的区块,选择可以证明当前区块的区块作为中继区块候选;
18、在中继区块候选中的区块,根据当前区块根据其累积权重和中继区块的累积权重计算被选择作为中继区块的概率;
19、最先到达目的节点的粒子将当前到达的区块作为选择的前驱区块;
20、其中,w为权重累积阈值。
21、进一步的,当前区块x根据其累积权重wx和中继区块y的累积权重wy计算被选择作为中继节点的概率,该概率表示为其中,α为一个正数,e为自然常数。
22、进一步的,当新的区块的累积权重达到设定阈值时,新区块被发布到对应的区块链中,新区块的累积权重为验证该新区块的所有区块的累积权重之和。
23、本发明与现有技术相比具有以下有益效果:
24、1.提出创新的多链并行区块链的多分区共识机制,在保证数据隔离的同时,提升区块链互操作性,使许多不同类型的共识系统能够在一个不可信的环境中互操作,从而允许开放和封闭的网络可以相互访问;
25、2.基于多分区共识技术保证去中心化特性,不依赖信任专用区块链或可信第三方实现多分区共识和区块链间操作;
26、3.提升区块链的性能与可扩展性,提高并发量并在实现不同区块链间互操作的同时保证区块链的安全性,避免回滚问题,降低双花攻击成功概率。
1.一种基于dag的多分区并行共识方法,其特征在于,具体包括以下步骤:
2.根据权利要求1所述的一种基于dag的多分区并行共识方法,其特征在于,验证第i个共识分区中,从当前区块链i和其他任一区块链j分别选择一个区块共同提供参数生成新的区块bij,区块bij的有效性验证过程包括以下步骤:
3.根据权利要求1所述的一种基于dag的多分区并行共识方法,其特征在于,生成新区块时,从生成新区块所在分区以及其他分区分别选择一个前驱区块,根据选择的两个前驱区块基于该分区的共识算法生成新区块。
4.根据权利要求3所述的一种基于dag的多分区并行共识方法,其特征在于,生成新区块时,从生成新区块所在分区选择前驱区块的过程包括:
5.根据权利要求4所述的一种基于dag的多分区并行共识方法,其特征在于,qf.zoneitra(f)与区块生成率成反比。
6.根据权利要求3所述的一种基于dag的多分区并行共识方法,其特征在于,生成新区块时,从其他分区分别选择前驱区块的过程包括:
7.根据权利要求6所述的一种基于dag的多分区并行共识方法,其特征在于,当前区块x根据其累积权重wx和中继区块y的累积权重wy计算被选择作为中继节点的概率,该概率表示为其中,α为一个正数,e为自然常数。
8.根据权利要求1所述的一种基于dag的多分区并行共识方法,其特征在于,当新的区块的累积权重达到设定阈值时,新区块被发布到对应的区块链中,新区块的累积权重为验证该新区块的所有区块的累积权重之和。