一种区块链共识的处理方法、装置及系统制造方法及图纸

技术编号:21480059 阅读:23 留言:0更新日期:2019-06-29 05:21
本说明书实施例公开了一种区块链共识的处理方法、装置及系统。所述方法包括区块链中的出块节点连续产生至少一个区块,并对所述区块签名后进行广播;区块链中的共识节点接收区块,并根据预设规则验证所述区块是否合法;确认合法时,对所述区块进行签名并广播;区块链中的节点判断自己是否在出块窗口期,确认在所述出块窗口期时,将处于所述出块窗口期的节点作为出块节点;当产生的区块的签名数达到预设数量时,确认所述区块获得区块链中节点的共识,将共识后的区块写入区块链。利用本说明书实施例可以使共识与出块效率、扩展性、资源消耗和容错性方面更均衡高效。

【技术实现步骤摘要】
一种区块链共识的处理方法、装置及系统
本说明书实施例方案属于互联网信息处理技术以及计算机
,尤其涉及一种区块链共识的处理方法、装置及系统。
技术介绍
在区块链系统中,共识机制是使全部或大部分网络节点就某些交易或数据达成一致的机制。共识机制允许在部分网络节点失效的情况下,系统仍能正常工作,这种容错能力是区块链系统的一个主要优势。因此共识机制是区块链系统的核心。业界目前对公链共识机制的技术水平有以下维度的需求:性能效率:高并发,高吞吐量,高速处理;资源消耗:共识过程中耗费的CPU、网络输入输出、存储等计算机资源;容错性:防攻击、防欺诈的能力;扩展性:新节点加入与退出,参与共识。目前业界广泛使用的共识机制有PoW算法(包括其扩展算法PoS和DPoS)、Paxos算法、PBFT算法和DBFT算法。其中,PoW算法依赖机器进行数学运算来获取记账权,资源消耗相比其它共识机制高、可监管性弱,同时每次达成共识需要全网共同参与运算,性能效率比较低,容错性方面允许全网50%节点出错。PoS算法主要思想是节点记账权的获得难度与节点持有的权益成反比,相对于PoW,一定程度减少了数学运算带来的资源消耗,性能也得到了相应的提升,但依然是基于哈希运算竞争获取记账权的方式,可监管性弱,该共识机制容错性和PoW相同。DPoS算法与PoS的主要区别在于节点选举若干代理人,由代理人验证和记账,其合规监管、性能、资源消耗和容错性与PoS相似。Paxos算法是一种基于选举领导者的共识机制,领导者节点拥有绝对权限,并允许强监管节点参与,性能高,资源消耗低,其所有节点一般有线下准入机制,但选举过程中不允许有作恶节点,不具备容错性。PBFT算法与Paxos类似,也是一种采用许可投票、少数服从多数来选举领导者进行记账的共识机制,但该共识机制允许拜占庭容错,该共识机制允许强监管节点参与,具备权限分级能力,性能更高,耗能更低,该算法每轮记账都会由全网节点共同选举领导者,允许33%的节点作恶,容错性为33%,但是PBFT的每轮共识基于前一个区块确认后才能进行下一轮,严重影响了共识效率。DBFT算法是基于拜占庭容错算法之上,加入了授权共识机智,其使用权益来选出记账人,然后各个记账人之间通过拜占庭容错算法达成共识,专业化的记账人可以容忍任何类型的错误,记账由多人协作完成,每一个区块都有最终性,算法的可靠性有着严格的数据证明,其缺点是当三分之一或以上的记账人停止工作后,系统将无法提供服务。然而,以上所有共识机制都存在一个相似的问题,就是共识与出块串行执行,这种机制会直接导致共识与出块效率受到限制,无法打破现有瓶颈,达到高吞吐级别。因此,业内亟需一种可以实现共识与出块并行执行的共识机制的解决方案。
技术实现思路
本说明书实施例目的在于提供一种区块链共识的处理方法、装置及系统,可以实现共识与出块并行,使共识与出块效率、扩展性、资源消耗和容错性方面更均衡高效。一方面本申请提供了一种区块链共识的处理方法,包括:区块链中的出块节点连续产生至少一个区块,并对所述区块签名后进行广播;区块链中的共识节点接收区块,并根据预设规则验证所述区块是否合法;确认合法时,对所述区块进行签名并广播;区块链中的节点判断自己是否在出块窗口期,确认在所述出块窗口期时,将处于所述出块窗口期的节点作为出块节点;当产生的区块的签名数达到预设数量时,确认所述区块获得区块链中节点的共识,将共识后的区块写入区块链。本说明书提供的所述方法的另一个实施例中,所述区块链中的共识节点接收区块,并根据预设规则验证所述区块是否合法,包括:判断所述区块是否满足预设合法规则;确定满足所述预设合法规则时,判断所述区块是否满足预设合理规则,其中,所述预设规则包括所述预设合法规则和所述预设合理规则。本说明书提供的所述方法的另一个实施例中,所述判断所述区块是否满足预设合法规则,包括:判断所述区块是否满足下面公式:I×10×1000<(N-L-O)%(n×10×1000)<(I+1)×10×1000-I×10×1000<(N-L+O)%(n×10×1000)<(I+1)×10×1000其中,I表示出块节点在所有节点中的位置,N表示当前系统时间,L表示上一轮转周期最后一个区块的产生时间,n表示每一轮选取的共识节点数,O表示每个共识节点的出块窗口时间除以2与1000的差;如果满足上述公式,则确定所述区块满足所述预设合法规则;如果不满足上述公式,则确定所述区块不满足所述预设合法规则,所述区块被丢弃。本说明书提供的所述方法的另一个实施例中,所述预设合理规则包括:当前区块的高度是否符合当前节点的时间窗口期;当前区块的出块时间和上一个区块的出块时间是否满足出块时间间隔要求;当前节点的最高不可逆区块是否为所述区块的祖先区块;当前节点是否对其它相同高度的区块进行过签名。本说明书提供的所述方法的另一个实施例中,在所述确认合法时,对所述区块进行签名并广播时,包括:判断在对所述区块进行签名并广播前是否收到过所述区块的子孙区块;确认收到过所述区块的子孙区块时,则同时对所述子孙区块进行签名后广播。本说明书提供的所述方法的另一个实施例中,所述区块链中的节点按照下面公式判断自己是否在出块窗口期:I×10×1000<(N-L)%(n×10×1000)<(I+1)×10×1000其中,I表示出块节点在所有节点中的位置,N表示当前系统时间,L表示上一轮转周期最后一个区块的产生时间。本说明书提供的所述方法的另一个实施例中,所述将共识后的区块写入区块链前,包括:判断所述区块是否满足预设入链规则,所述预设入链规则包括所述区块的高度大于所述区块链中当前不可逆区块的高度,且所述区块的祖先区块是所述当前不可逆区块;确认满足时,则将所述区块写入区块链,并将所述区块更新为所述区块链中当前不可逆区块。本说明书提供的所述方法的另一个实施例中,所述将所述区块更新为所述区块链中当前不可逆区块后,包括:从所述当前不可逆区块开始查找子孙区块,判断所述子孙区块中是否存在更高的不可逆区块;确认存在时,则将所述更高的不可逆区块与所述当前不可逆区块之间的所有区块写入区块链,并将所述更高的不可逆区块更新为所述区块链中当前不可逆区块。另一方面,本说明书实施例还提供一种区块链共识的处理装置,所述装置包括:区块产生模块,用于区块链中的出块节点连续产生至少一个区块,并对所述区块签名后进行广播;区块验证模块,用于区块链中的共识节点接收区块,并根据预设规则验证所述区块是否合法;确认合法时,对所述区块进行签名并广播;出块判断模块,用于区块链中的节点判断自己是否在出块窗口期,确认在所述出块窗口期时,将处于所述出块窗口期的节点作为出块节点;确认共识模块,用于当产生的区块的签名数达到预设数量时,确认所述区块获得区块链中节点的共识,将共识后的区块写入区块链。本说明书提供的所述装置的另一个实施例中,所述区块验证模块,包括:第一判断单元,用于判断所述区块是否满足预设合法规则;第二判断单元,用于确定满足所述预设合法规则时,判断所述区块是否满足预设合理规则,其中,所述预设规则包括所述预设合法规则和所述预设合理规则。本说明书提供的所述装置的另一个实施例中,在所述确认合法时,对所述区块进行本文档来自技高网
...

【技术保护点】
1.一种区块链共识的处理方法,其特征在于,包括:区块链中的出块节点连续产生至少一个区块,并对所述区块签名后进行广播;区块链中的共识节点接收区块,并根据预设规则验证所述区块是否合法;确认合法时,对所述区块进行签名并广播;区块链中的节点判断自己是否在出块窗口期,确认在所述出块窗口期时,将处于所述出块窗口期的节点作为出块节点;当产生的区块的签名数达到预设数量时,确认所述区块获得区块链中节点的共识,将共识后的区块写入区块链。

【技术特征摘要】
1.一种区块链共识的处理方法,其特征在于,包括:区块链中的出块节点连续产生至少一个区块,并对所述区块签名后进行广播;区块链中的共识节点接收区块,并根据预设规则验证所述区块是否合法;确认合法时,对所述区块进行签名并广播;区块链中的节点判断自己是否在出块窗口期,确认在所述出块窗口期时,将处于所述出块窗口期的节点作为出块节点;当产生的区块的签名数达到预设数量时,确认所述区块获得区块链中节点的共识,将共识后的区块写入区块链。2.如权利要求1所述的一种区块链共识的处理方法,其特征在于,所述区块链中的共识节点接收区块,并根据预设规则验证所述区块是否合法,包括:判断所述区块是否满足预设合法规则;确定满足所述预设合法规则时,判断所述区块是否满足预设合理规则,其中,所述预设规则包括所述预设合法规则和所述预设合理规则。3.如权利要求2所述的一种区块链共识的处理方法,其特征在于,所述判断所述区块是否满足预设合法规则,包括:判断所述区块是否满足下面公式:I×10×1000<(N-L-O)%(n×10×1000)<(I+1)×10×1000-I×10×1000<(N-L+O)%(n×10×1000)<(I+1)×10×1000其中,I表示出块节点在所有节点中的位置,N表示当前系统时间,L表示上一轮转周期最后一个区块的产生时间,n表示每一轮选取的共识节点数,O表示每个共识节点的出块窗口时间除以2与1000的差;如果满足上述公式,则确定所述区块满足所述预设合法规则;如果不满足上述公式,则确定所述区块不满足所述预设合法规则,所述区块被丢弃。4.如权利要求2所述的一种区块链共识的处理方法,其特征在于,所述预设合理规则包括:当前区块的高度是否符合当前节点的时间窗口期;当前区块的出块时间和上一个区块的出块时间是否满足出块时间间隔要求;当前节点的最高不可逆区块是否为所述区块的祖先区块;当前节点是否对其它相同高度的区块进行过签名。5.如权利要求1所述的一种区块链共识的处理方法,其特征在于,在所述确认合法时,对所述区块进行签名并广播时,包括:判断在对所述区块进行签名并广播前是否收到过所述区块的子孙区块;确认收到过所述区块的子孙区块时,则同时对所述子孙区块进行签名后广播。6.如权利要求1所述的一种区块链共识的处理方法,其特征在于,所述区块链中的节点按照下面公式判断自己是否在出块窗口期:I×10×1000<(N-L)%(n×10×1000)<(I+1)×10×1000其中,I表示出块节点在所有节点中的位置,N表示当前系统时间,L表示上一轮转周期最后一个区块的产生时间。7.如权利要求1所述的一种区块链共识的处理方法,其特征在于,所述将共识后的区块写入区块链前,包括:判断所述区块是否满足预设入链规则,所述预设入链规则包括所述区块的高度大于所述区块链中当前不可逆区块的高度,且所述区块的祖先区块是所述当前不可逆区块;确认满足时,则将所述区块写入区块链,并将所述区块更新为所述区块链中当前不可逆区块。8.如权利要求7所述的一种区块链共识的处理方法,其特征在于,所述将所述区块更新为所述区块链中当前不可逆区块后,包括:从所述当前不可逆区块开...

【专利技术属性】
技术研发人员:姜海涛吕晓一李升林张军孙立林
申请(专利权)人:矩阵元技术深圳有限公司
类型:发明
国别省市:广东,44

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

1