一种基于网格仲裁的联盟链共识方法技术

技术编号:24210001 阅读:47 留言:0更新日期:2020-05-20 16:25
本发明专利技术涉及一种基于网格仲裁的联盟链共识方法,属于区块链技术领域。该方法以网格仲裁算法为基础,采用可验证随机函数将整个联盟链系统的节点划分为仲裁领导团与仲裁团两部分,通过仲裁团内部的改进拜占庭算法来达成区域共识,继而由仲裁领导团来完成对提出交易的最终确认。本发明专利技术所述方法与传统拜占庭共识算法相比,可以有效提升整个系统的吞吐量,提升区块链的整体共识效率。

A consensus method of alliance chain based on grid arbitration

【技术实现步骤摘要】
一种基于网格仲裁的联盟链共识方法
本专利技术属于区块链
,涉及一种基于网格仲裁的联盟链共识方法。
技术介绍
区块链最早可追溯于1991年,由Haber和Bayeret提出了在分布式系统里采用加密哈希函数和默克尔树,用时间戳高效、安全的记录数据,并将加密的数据区块连接链。直至2008年,中本聪发表了一篇《比特币:一种点对点的电子现金系统》,宣布了第一代区块链技术的诞生与大规模应用。此后的区块链技术则是将分布式数据存储、点对点传输、共识机制和加密算法等技术从比特币中提炼出来,配合自动化脚本代码所组成的智能合约进行编程和业务处理的一种分布式存储账本体系。共识算法(consensusalgorithm)是指在多方协同环境下使所有参与方对任务执行结果达成一致(共识)的算法。共识算法多应用于确保分布式数据一致,在区块链中引用共识算法最早是为了解决新交易块加入哈希链表中可能出现的“块冲突”问题,也就是同时多个块被不同的块创建者加入到哈希链表中而引起的链表分叉问题,他可能导致双重花费(doublespending)与交易无效的风险。目前,区块链常用的算法一般有工作量证明(PoW)、权益证明(PoS)和实用拜占庭算法(PBFT),而前两种类型算法,即PoW和PoS算法,常用于公有链中,其特征是系统吞吐量极低,可扩展性高。而拜占庭类型算法由于算法共识特点,常常需要O(n2)通信复杂度,但是随着节点数量n的增多导致可扩展性严重受到制约。
技术实现思路
有鉴于此,本专利技术的目的在于提供一种基于网格仲裁的联盟链共识方法,通过仲裁领导团线性增长方式有效降低整个整个系统的通信量,提升整个系统的吞吐量,优化联盟链的可扩展性问题。为达到上述目的,本专利技术提供如下技术方案:一种基于网格仲裁的联盟链共识方法,以网格仲裁算法为基础,将小于半数的十字仲裁机制引入到共识算法中,并使整个节点分为仲裁领导团和仲裁团两个组成部分。该方法先使用随机抽签函数将仲裁领导团从节点中选举出来,再将剩余的节点划分给每个仲裁领导节点,构成网格拓扑结构。该方法具体包括以下步骤:S1:初始时,各个未组网节点向证书授权中心(CA)获取密钥,并广播发送身份标识信息;各个节点运行抽签算法,根据随机种子值seed和期望仲裁领导团数t从未组网节点中抽取t个用户组成仲裁领导团;S2:仲裁领导团的各个节点向系统申请拓扑结构图编号,确定各自身份编号;未组网节点再运行可验证随机函数,抽取节点,轮询发送给每个仲裁领导团;仲裁领导节点接收未组网节点,并将其作为各自的仲裁团成员;最后,各个仲裁团成员之间相互通信,收集仲裁团内部的拓扑信息;S3:客户端向仲裁领导团成员发送交易信息,仲裁领导团成员在其内部的仲裁团进行共识;仲裁团内部采用拜占庭算法进行快速共识,将每个节点共识之后的哈希值传递给仲裁团归属的仲裁领导节点;S4:仲裁领导团成员收到其所属仲裁团内部共识达成的哈希值集合,通过拜占庭协议达成共识,大于2/3节点的交易将被仲裁领导团的成员集体接受;仲裁领导团将这一轮达成共识的交易进行全网广播,分散给其下属的各个节点;S5:在本轮共识结束之前,超时的交易将被传递给多个仲裁团进行仲裁,以使整个交易的共识得到快速收敛;在本轮共识结束之后,各个仲裁领导的仲裁团重组;系统将本轮所有交易的哈希值作为下一轮系统的随机种子seed进行全网广播。进一步,所述步骤S1中,随机选举仲裁领导团节点的具体步骤为:S11:初始时,系统给定一个公共随机值作为随机种子seed和阈值t,并进行全网广播;S12:各个节点进行本地抽签;即未组网节点将收到的随机种子seed和自己的私钥Sk作为可验证随机函数(VerifiableRandomFunction)的输入值,运算,产生一个随机值value和零知识证明proof;S13:节点之间提交候选区块,即各个节点将各自产生的随机值value与阈值t进行比较,低于阈值t的节点作为仲裁领导团候补节点,并将自己节点的抽签结果(value)、零知识证明proof和候选区块进行全网广播;S14:节点之间验证候选区块,即各个节点将收到的抽签结果(value)、零知识证明proof、随机种子seed和各个候补节点的公钥Pk作为输入,运行可验证随机函数来证明仲裁领导团节点的正确性;S15:节点之间广播,即将提议的候补节点信息进行全网广播。进一步,所述步骤S2中,仲裁领导团进行组网,生成仲裁团的具体步骤为:S21:仲裁领导团内的各个节点向证书授权中心(CA)申请拓扑结构编号;S22:未组网节点再运行可验证随机函数,随机抽取组内节点;S23:被抽取出来的节点向证书授权中心(CA)申请拓扑结构编号;S24:完成编号分配的节点将自身信息通知给所属仲裁领导团成员,加入该成员所在的仲裁团;S25:重复步骤S21~S24,直至所有仲裁团组网成功。进一步,所述步骤S3中,仲裁团内部采用拜占庭算法进行快速共识的具体步骤为:S31:客户端请求:客户端将交易发送给仲裁领导节点(leader);S32:仲裁领导节点(leader)负责广播交易请求到所属仲裁团的所有节点,并执行仲裁锁协议;S33:仲裁所协议阶段:当执行完仲裁锁协议,仲裁团各个节点将处理结果返回给仲裁领导节点(leader);S34:预准备阶段(Pre-Prepare):仲裁领导节点通过交易分割方法,将客户端提出的交易分割成n份分别发送给其所属仲裁团各个节点;S35:准备阶段(Prepare):仲裁团节点将交易碎片防入自身缓冲区,并从缓冲区随机挑选交易碎片发送,当满足集齐m份要求时,且m<n,则拼凑出完整交易;S36:提交阶段(commit):广播commit消息,告诉其他节点某个交易提案n已经处于准备状态;此时集齐至少2f+1个验证通过的commit消息,其中f表示错误节点;S37:反馈阶段(reply):仲裁团将确认信息反馈给仲裁领导节点(leader),结束内部共识。进一步,所述步骤S4中,最终共识广播的具体步骤为:S41:仲裁领导团成员收到自己仲裁团的提案通过后,仲裁领导团运用拜占庭算法进行共识;S42:仲裁领导团将达成提案进行全网广播。进一步,所述步骤S5中,剩余交易共识的具体步骤为:S51:在系统限定时间内,客户端将对未响应的交易重新选择仲裁团进行仲裁;S52:仲裁团接收交易,并进行共识;S53:在仲裁过程中,使用仲裁票协议对原有仲裁团仲裁的本交易进行解锁;S54:重复步骤S51~S53,直至完成本轮所有交易;S55:将所有交易通过哈希函数构造成哈希值,作为下一轮随机种子seed,并进行全网广播。进一步,对于仲裁领导节点(Leader)的仲裁锁协议,具体步骤为:1):仲裁领导节点尝试对本仲裁团内所有节点广播加锁信息(Lock_n);2):仲裁领导节点收本文档来自技高网...

【技术保护点】
1.一种基于网格仲裁的联盟链共识方法,其特征在于,该方法先使用随机抽签函数将仲裁领导团从节点中选举出来,再将剩余的节点划分给每个仲裁领导节点,构成网格拓扑结构;具体包括以下步骤:/nS1:初始时,各个未组网节点向证书授权中心获取密钥,并广播发送身份标识信息;各个节点运行抽签算法,根据随机种子值seed和期望仲裁领导团数t从未组网节点中抽取t个用户组成仲裁领导团;/nS2:仲裁领导团的各个节点向系统申请拓扑结构图编号,确定各自身份编号;未组网节点再运行可验证随机函数,抽取节点,轮询发送给每个仲裁领导团;仲裁领导节点接收未组网节点,并将其作为各自的仲裁团成员;最后,各个仲裁团成员之间相互通信,收集仲裁团内部的拓扑信息;/nS3:客户端向仲裁领导团成员发送交易信息,仲裁领导团成员在其内部的仲裁团进行共识;仲裁团内部采用拜占庭算法进行快速共识,将每个节点共识之后的哈希值传递给仲裁团归属的仲裁领导节点;/nS4:仲裁领导团成员收到其所属仲裁团内部共识达成的哈希值集合,通过拜占庭协议达成共识,大于2/3节点的交易将被仲裁领导团的成员集体接受;仲裁领导团将这一轮达成共识的交易进行全网广播,分散给其下属的各个节点;/nS5:在本轮共识结束之前,超时的交易将被传递给多个仲裁团进行仲裁;在本轮共识结束之后,各个仲裁领导的仲裁团重组;系统将本轮所有交易的哈希值作为下一轮系统的随机种子seed进行全网广播。/n...

【技术特征摘要】
1.一种基于网格仲裁的联盟链共识方法,其特征在于,该方法先使用随机抽签函数将仲裁领导团从节点中选举出来,再将剩余的节点划分给每个仲裁领导节点,构成网格拓扑结构;具体包括以下步骤:
S1:初始时,各个未组网节点向证书授权中心获取密钥,并广播发送身份标识信息;各个节点运行抽签算法,根据随机种子值seed和期望仲裁领导团数t从未组网节点中抽取t个用户组成仲裁领导团;
S2:仲裁领导团的各个节点向系统申请拓扑结构图编号,确定各自身份编号;未组网节点再运行可验证随机函数,抽取节点,轮询发送给每个仲裁领导团;仲裁领导节点接收未组网节点,并将其作为各自的仲裁团成员;最后,各个仲裁团成员之间相互通信,收集仲裁团内部的拓扑信息;
S3:客户端向仲裁领导团成员发送交易信息,仲裁领导团成员在其内部的仲裁团进行共识;仲裁团内部采用拜占庭算法进行快速共识,将每个节点共识之后的哈希值传递给仲裁团归属的仲裁领导节点;
S4:仲裁领导团成员收到其所属仲裁团内部共识达成的哈希值集合,通过拜占庭协议达成共识,大于2/3节点的交易将被仲裁领导团的成员集体接受;仲裁领导团将这一轮达成共识的交易进行全网广播,分散给其下属的各个节点;
S5:在本轮共识结束之前,超时的交易将被传递给多个仲裁团进行仲裁;在本轮共识结束之后,各个仲裁领导的仲裁团重组;系统将本轮所有交易的哈希值作为下一轮系统的随机种子seed进行全网广播。


2.根据权利要求1所述的一种基于网格仲裁的联盟链共识方法,其特征在于,所述步骤S1中,随机选举仲裁领导团节点的具体步骤为:
S11:初始时,系统给定一个公共随机值作为随机种子seed和阈值t,并进行全网广播;
S12:各个节点进行本地抽签;即未组网节点将收到的随机种子seed和自己的私钥Sk作为可验证随机函数的输入值,运算,产生一个随机值value和零知识证明proof;
S13:节点之间提交候选区块,即各个节点将各自产生的随机值value与阈值t进行比较,低于阈值t的节点作为仲裁领导团候补节点,并将自己节点的抽签结果、零知识证明proof和候选区块进行全网广播;
S14:节点之间验证候选区块,即各个节点将收到的抽签结果、零知识证明proof、随机种子seed和各个候补节点的公钥Pk作为输入,运行可验证随机函数来证明仲裁领导团节点的正确性;
S15:节点之间广播,即将提议的候补节点信息进行全网广播。


3.根据权利要求1所述的一种基于网格仲裁的联盟链共识方法,其特征在于,所述步骤S2中,仲裁领导团进行组网,生成仲裁团的具体步骤为:
S21:仲裁领导团内的各个节点向证书授权中心申请拓扑结构编号;
S22:未组网节点再运行可验证随机函数,随机抽取组内节点;
S23:被抽取出来的节点向证书授权中心申请拓扑结构编号;
S24:完成编号分配的节点将自身信息通知给所属仲裁领导团成员,加入该成员所在的仲裁团;
S25:重复步骤S21~S24,直至所有仲裁团组网成功。


4.根据权利要求1所述的一种基于网格仲裁的联盟链共识方法,其特征在于,所述步骤S3中,仲裁团内部采用拜占庭算法进行快速共识的具体步骤为:
S3...

【专利技术属性】
技术研发人员:杨鑫宇付蔚谢昊飞魏雪风
申请(专利权)人:重庆邮电大学
类型:发明
国别省市:重庆;50

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1