【技术实现步骤摘要】
一种拜占庭共识方法和系统
本专利技术涉及区块链
,尤其涉及一种拜占庭共识方法和系统。
技术介绍
在区块链系统中,为了防止系统中的恶意行为、诚实节点的不响应以及网络延迟等因素,区块链系统必须采用共识算法来保证链上数据的一致性。可以说,共识是区块链系统的核心,没有共识,区块链系统将无法正常运行。在分布式系统中,共识一般分为非拜占庭共识和拜占庭共识,非拜占庭共识是指只允许节点无响应的共识,而拜占庭共识是指允许存在任意恶意行为的共识。如果不考虑节点的恶意行为,在实际应用中,非拜占庭共识足以应对;然而在跨公司、跨境甚至是跨国的分布式系统中,这种无恶意行为的假设往往是不成立的,故对拜占庭共识的研究非常重要。目前PBFT(PracticalByzantineFaultTolerance,实用拜占庭容错算法)共识在联盟链中广泛使用,其共识过程需要三个阶段。PBFT虽然有非常好的容错率,但性能明显逊于Raft等非拜占庭共识。拜占庭共识满足的安全性质是一致性和鲜活性。一致性(consistency):只要存在诚实节点确认某个区块, ...
【技术保护点】
1.一种拜占庭共识方法,包括提议阶段和接下来的准备阶段,其特征在于,所述准备阶段包括:/n对消息进行第一次投票和广播;/n接收所述消息并验证其合法性;以及/n统计合法的第一次投票数量N1,当所述N1大于等于3.5f+1时,直接在所述准备阶段确认所述消息而不需要接下来的确认阶段,其中,参加所述拜占庭共识的节点个数为4f+1,f为拜占庭节点的个数。/n
【技术特征摘要】
1.一种拜占庭共识方法,包括提议阶段和接下来的准备阶段,其特征在于,所述准备阶段包括:
对消息进行第一次投票和广播;
接收所述消息并验证其合法性;以及
统计合法的第一次投票数量N1,当所述N1大于等于3.5f+1时,直接在所述准备阶段确认所述消息而不需要接下来的确认阶段,其中,参加所述拜占庭共识的节点个数为4f+1,f为拜占庭节点的个数。
2.根据权利要求1所述的拜占庭共识方法,其特征在于,直接在所述准备阶段确认所述消息包括:
将所述N1个第一次投票作为所述消息的确认凭证并将接受凭证设置为空集;以及
将轮次s加1并重置触发器T。
3.根据权利要求1所述的拜占庭共识方法,其特征在于,接收所述消息并验证其合法性包括:
接收消息<prepare,s,v,h>M,其中,<prepare,s,v,h>M为准备阶段的消息;
检查轮次s是否小于本地轮次;
检查保存的消息和所述准备阶段的消息中的s、v和h是否一致,其中,为所述提议阶段的消息;以及
检查所述准备阶段的消息中的签名的合法性,其中,当所述合法性通过时,存储所述准备阶段的消息,其中,v为视图以及h为消息集{m}的哈希值,L为出块节点,M为生成准备阶段的消息的节点。
4.根据权利要求1所述的拜占庭共识方法,其特征在于,还包括:当所述N1大于等于2.5f+1且小于3.5f+1时,将N1个第一次投票更新为消息<prepare,s,v,h>M的接受凭证然后进入所述确认阶段,其中,<prepare,s,v,h>M为准备阶段的消息,其中,
所述确认阶段还包括:
生成消息<commit,s,v,h>M并对其进行第二次投票和广播,其中,<commit,s,v,h>M为确认阶段的消息;
接收所述确认阶段的消息并验证合法性;
统计合法的第二次投票数量N2,当所述N2大于等于2.5f+1时,将N2个第二次投票作为所述消息的确认凭证并将所述接受凭证设置为空集;以及
将轮次s加1并重置触发器T,其中,v为视图,h为消息集的哈希值,以及M为生成确认阶段的消息的节点。
5.根据权利要求1所述的拜占庭共识方法,其特征在于,所述提议阶段包括:
与轮次s和视图v相对应的出块者L生成消息并将所述消息和消息集{m}广播给其他节点,其中,为提议阶段的消息;
接收所述提议阶段的消息并验证合法性;以及
接收消息集{m}并判断所述消息集{m}的哈希值是否等于h,其中,当所述消息集{m}的哈希值等...
【专利技术属性】
技术研发人员:刘海英,张凡,林齐平,高胜,段伟民,孙登峰,窦国威,
申请(专利权)人:数据通信科学技术研究所,兴唐通信科技有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。