一种避免区块链共识中无代价攻击的算法制造技术

技术编号:21369876 阅读:27 留言:0更新日期:2019-06-15 11:15
本发明专利技术公开了一种提供了一种避免区块链共识中无代价攻击的算法,包括以下步骤:节点用户检测当前出块主链;出块矿工在出块主链上出当前块;其他矿工等待一个出块周期,等待当前出块矿工在出块主链上出当前块;其他矿工在单个出块周期结束后,未发现当前出块矿工在出块主链上出当前块,则所有节点用户重新挑选备用块的出块矿工,并在等待1个或多个出块周期后,由新出块矿工在出块主链上出备用块;备用块的下一个区块出块之前,备用块的下一个区块的出块矿工检测当前的出块主链,即包含有最大值的区块序号的区块的分叉;如果备用块所在的分叉为出块主链,在备用块所在的分叉出块;如果备用块所在的分叉不是出块主链,在出块主链上继续出块。

A Costless Attack Avoiding Block Chain Consensus

The invention discloses an algorithm for avoiding cost-free attack in block chain consensus, which includes the following steps: node user detects the current block main chain; out-block miner emerges the current block on the out-block main chain; other miners wait for a out-block cycle, waiting for the current out-block miner to emerge the current block on the out-block main chain; other miners do not find the wrong block after the end of a single out-block cycle. When the former block miner comes out of the current block on the main chain of the block, all node users re-select the spare block miner, and after waiting for one or more block cycle, the new block miner comes out of the spare block on the main chain of the block. Before the next block of the spare block comes out of the block, the next block miner of the spare block detects the current block main chain, that is, the block sequence with the maximum value. If the bifurcation of the spare block is the main chain of the block, the bifurcation of the spare block is the main chain of the block; if the bifurcation of the spare block is not the main chain of the block, the block is continued on the main chain of the block.

【技术实现步骤摘要】
一种避免区块链共识中无代价攻击的算法
本专利技术涉及区块链
,具体涉及一种避免区块链共识中无代价攻击的算法。
技术介绍
在一个分布式网络中,由于网络中拥有众多节点,网络中不可避免的通信延迟,节点可能出现宕机、故障、失效等等复杂情况,比如,如下情况:当高度r的区块进行出块时,出块矿工应该是ID_Targetr=QrmodN,可惜ID_Targetr矿工的由于网络延时或者恶意保留区块导致全网未能及时感知区块,在等待λ时间段之后,由IDλ=hash(ID||λ||Sigr-1)的矿工将会出块,此时网络中便有可能面临2条分叉。导致整个网络中出现分叉的情况;同时,网络中还存在着一定数量作恶节点的攻击,在任意一条分叉上都有矿工可以没有成本的进行出块,同时还会面临着遭受几种常见长程攻击的可能性。分叉导致每个节点用户保存的数据不一致,造成整个网络上的信息不统一、混乱。
技术实现思路
本专利技术的目的是提供一种避免区块链共识中无代价攻击的算法,能够有效的避免区块链上出现分叉。本专利技术的一个实施例提供了一种避免区块链共识中无代价攻击的算法,包括以下步骤:1)区块链上节点用户检测当前的出块主链,出块主链为包含有最大值的区块序号的区块的分叉;2)当前出块矿工在出块主链上出当前块;3)所有非当前出块矿工等待一个出块周期,等待当前出块矿工在出块主链上出当前块;4)当区块链上节点用户在单个出块周期结束后,未发现当前出块矿工在出块主链上出当前块,则所有节点用户重新挑选备用块的出块矿工,并在等待1个或多个出块周期后,由新出块矿工在出块主链上出备用块;5)备用块的下一个区块出块之前,备用块的下一个区块的出块矿工检测当前的出块主链,出块主链为包含有最大值的区块序号的区块的分叉;6)如果备用块所在的分叉为出块主链,则在备用块所在的分叉出块;如果备用块所在的分叉不是出块主链,则在出块主链上继续出块。与现有技术相比,本专利技术提供的避免区块链共识中无代价攻击的算法具有如下优点:1.可以迅速解决分叉的产生;2.在保证网络去中心化的前提下,提高了区块链网络交易处理性能;3.移动检查点机制加强了交易的确定性,使得交易彻底无法被篡改,而非其他算法中交易只能概率性的被确认。附图说明图1所示为本专利技术的避免区块链共识中无代价攻击的算法的一个实施例的流程示意图。图2所示为本专利技术的验证者节点的一个实施例的示意图。图3所示为本专利技术的矿工投票流程的一个实施例的示意图。具体实施方式为使本专利技术的目的、技术方案和优点更加清楚,下面将结合本专利技术具体实施例及相应的附图对本专利技术技术方案进行清楚、完整地描述。在本专利技术的描述中,认证中心(CA─CertificateAuthority)作为权威的、可信赖的、公正的第三方机构,专门负责发放并管理所有参与链上交易的实体所需的数字证书。它作为一个权威机构,对密钥进行有效地管理,颁发证书证明密钥的有效性,并将公开密钥同某一个实体(消费者、商户、银行)联系在一起。它负责产生、分配并管理所有参与网上信息交换各方所需的数字证书,因此是安全电子信息交换的核心。请参阅图1,在本专利技术的一个实施例中,避免区块链共识中无代价攻击的算法可以包括以下步骤:100:区块链上节点用户检测当前的出块主链,出块主链为包含有最大值的区块序号的区块的分叉;在本专利技术的一个实施例中,分叉选择策略采用最长链原则,同时接收到相同高度的链时,暂时保留,等待长链的出现;接收不同高度的分叉链时,选择长链作为主链。在本专利技术的一个实施例中,区块链上设置如下机制:每隔固定数量的区块,所有矿工判断哪一个分叉是当前的出块主链,并向全网广播投票信息,投票信息包括:所投分叉最后一个区块的哈希值,矿工公钥对哈希值的签名;当前出块矿工接收广播,当接收到投给某一条分叉的投票数超过总矿工数的一半时,当前出块矿工将收到的所有广播信息打包生成一个检查点区块,所有节点用户认可超过一半投票数的分叉为出块主链。进一步的,在本专利技术的一个实施例中,可以设置当前出块矿工接收到投给任何一条分叉的投票数都不超过总矿工数的一半时,所有矿工等待一定的时间后重新进行投票。进一步的,参考图2,在本专利技术的一个实施例中,可以设置一个区块周期,范围可以为10~100块,每经过一个周期就需要矿工对目前的主链进行一次投票确认,超过2/3票数的分叉链被确认为主链,确认点之前的区块不可被篡改。验证者节点引入,避免了攻击者在确认点之前进行长程攻击,同时任何矿工也不会在分叉点之前的分叉上继续出块。进一步的,在本专利技术的一个实施例中,矿工的投票规则如下:1)拥有第一匹配位矿工数量较多的分叉,获得投票;2)若拥有相同的第一匹配位矿工,检查点前连续的第一匹配位矿工越多,获得投票;3)若还是相等,检查点前一个区块的哈希最大的链,获得投票。一般限制矿工每次只能对一个分叉进行投票。参考图3,为本专利技术的矿工投票流程的一个实施例的示意图。200:当前出块矿工在出块主链上出当前块;300:所有非当前出块矿工等待一个出块周期,等待当前出块矿工在出块主链上出当前块;400:当区块链上节点用户在单个出块周期结束后,未发现当前出块矿工在出块主链上出当前块,则所有节点用户重新挑选备用块的出块矿工,并在等待1个或多个出块周期后,由新出块矿工在出块主链上出备用块;500:备用块的下一个区块出块之前,备用块的下一个区块的出块矿工检测当前的出块主链,出块主链为包含有最大值的区块序号的区块的分叉;600:如果备用块所在的分叉为出块主链,则在备用块所在的分叉出块;如果备用块所在的分叉不是出块主链,则在出块主链上继续出块。在本专利技术的一个实施例中,避免区块链共识中无代价攻击的算法还可以包括如下步骤:如果备用块所在的分叉不是出块主链,则在产生新块时,备用块所在的分叉延迟一个或多个出块周期出块。在本专利技术的一个实施例中,避免区块链共识中无代价攻击的算法还可以包括如下步骤:如果备用块所在的分叉为出块主链,则在备用块所在的分叉出块时延迟一个或多个出块周期出块。在本专利技术的一个实施例中,避免区块链共识中无代价攻击的算法还可以包括如下步骤:区块链上所有矿工对自己的公钥做哈希计算,如果得到的哈希计算值小于设定的阈值,则该矿工无法参与备用块的下一个区块的出块。在本专利技术的一个实施例中,避免区块链共识中无代价攻击的算法还可以包括如下步骤:如果备用块的下一个区块的出块延迟为一个出块周期,则区块链上所有矿工恢复正常出块。在本专利技术的一个实施例中,避免区块链共识中无代价攻击的算法还可以包括如下步骤:如果备用块所在的分叉中某一个区块的出块延迟为一个出块周期,则区块链上所有矿工恢复正常出块。虽然以上述较佳的实施例对本专利技术做出了详细的描述,但并非用上述实施例限定本专利技术。本领域的技术人员应当意识到在不脱离本专利技术技术方案所给出的技术特征和范围的情况下,对技术特征所作的增加、以本领域一些同样内容的替换,均应属本专利技术的保护范围。本文档来自技高网...

【技术保护点】
1.一种避免区块链共识中无代价攻击的算法,其特征在于,包括以下步骤:1)所述区块链上节点用户检测当前的出块主链,所述出块主链为包含有最大值的区块序号的区块的分叉;2)当前出块矿工在所述出块主链上出当前块;3)所有非当前出块矿工等待一个出块周期,等待当前出块矿工在所述出块主链上出当前块;4)当所述区块链上节点用户在单个出块周期结束后,未发现当前出块矿工在所述出块主链上出当前块,则所有节点用户重新挑选备用块的出块矿工,并在等待1个或多个出块周期后,由新出块矿工在所述出块主链上出备用块;5)所述备用块的下一个区块出块之前,所述备用块的下一个区块的出块矿工检测当前的出块主链,所述出块主链为包含有最大值的区块序号的区块的分叉;6)如果所述备用块所在的分叉为出块主链,则在所述备用块所在的分叉出块;如果所述备用块所在的分叉不是出块主链,则在出块主链上继续出块。

【技术特征摘要】
1.一种避免区块链共识中无代价攻击的算法,其特征在于,包括以下步骤:1)所述区块链上节点用户检测当前的出块主链,所述出块主链为包含有最大值的区块序号的区块的分叉;2)当前出块矿工在所述出块主链上出当前块;3)所有非当前出块矿工等待一个出块周期,等待当前出块矿工在所述出块主链上出当前块;4)当所述区块链上节点用户在单个出块周期结束后,未发现当前出块矿工在所述出块主链上出当前块,则所有节点用户重新挑选备用块的出块矿工,并在等待1个或多个出块周期后,由新出块矿工在所述出块主链上出备用块;5)所述备用块的下一个区块出块之前,所述备用块的下一个区块的出块矿工检测当前的出块主链,所述出块主链为包含有最大值的区块序号的区块的分叉;6)如果所述备用块所在的分叉为出块主链,则在所述备用块所在的分叉出块;如果所述备用块所在的分叉不是出块主链,则在出块主链上继续出块。2.根据权利要求1所述的算法,其特征在于:如果所述备用块所在的分叉不是出块主链,则在产生新块时,所述备用块所在的分叉延迟一个或多个出块周期出块。3.根据权利要求1所述的算法,其特征在于:如果所述备用块所在的分叉为出块主链,则在所述备用块所在的分叉出块时延迟一个或多个出块周期出块。4.根据权利要求3所述的算法,其特征在于:所述区块链上所有矿工对自己的公钥做哈希计算,如果得到的哈希计算值小于设定的阈值,则该矿工无法参与...

【专利技术属性】
技术研发人员:张亮周可曹辉宁周海汉
申请(专利权)人:深圳市优学链科技有限公司
类型:发明
国别省市:广东,44

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

1