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)备用块的下一个区块出块之前,备用 ...
【技术保护点】
1.一种避免区块链共识中无代价攻击的算法,其特征在于,包括以下步骤:1)所述区块链上节点用户检测当前的出块主链,所述出块主链为包含有最大值的区块序号的区块的分叉;2)当前出块矿工在所述出块主链上出当前块;3)所有非当前出块矿工等待一个出块周期,等待当前出块矿工在所述出块主链上出当前块;4)当所述区块链上节点用户在单个出块周期结束后,未发现当前出块矿工在所述出块主链上出当前块,则所有节点用户重新挑选备用块的出块矿工,并在等待1个或多个出块周期后,由新出块矿工在所述出块主链上出备用块;5)所述备用块的下一个区块出块之前,所述备用块的下一个区块的出块矿工检测当前的出块主链,所述出块主链为包含有最大值的区块序号的区块的分叉;6)如果所述备用块所在的分叉为出块主链,则在所述备用块所在的分叉出块;如果所述备用块所在的分叉不是出块主链,则在出块主链上继续出块。
【技术特征摘要】
1.一种避免区块链共识中无代价攻击的算法,其特征在于,包括以下步骤:1)所述区块链上节点用户检测当前的出块主链,所述出块主链为包含有最大值的区块序号的区块的分叉;2)当前出块矿工在所述出块主链上出当前块;3)所有非当前出块矿工等待一个出块周期,等待当前出块矿工在所述出块主链上出当前块;4)当所述区块链上节点用户在单个出块周期结束后,未发现当前出块矿工在所述出块主链上出当前块,则所有节点用户重新挑选备用块的出块矿工,并在等待1个或多个出块周期后,由新出块矿工在所述出块主链上出备用块;5)所述备用块的下一个区块出块之前,所述备用块的下一个区块的出块矿工检测当前的出块主链,所述出块主链为包含有最大值的区块序号的区块的分叉;6)如果所述备用块所在的分叉为出块主链,则在所述备用块所在的分叉出块;如果所述备用块所在的分叉不是出块主链,则在出块主链上继续出块。2.根据权利要求1所述的算法,其特征在于:如果所述备用块所在的分叉不是出块主链,则在产生新块时,所述备用块所在的分叉延迟一个或多个出块周期出块。3.根据权利要求1所述的算法,其特征在于:如果所述备用块所在的分叉为出块主链,则在所述备用块所在的分叉出块时延迟一个或多个出块周期出块。4.根据权利要求3所述的算法,其特征在于:所述区块链上所有矿工对自己的公钥做哈希计算,如果得到的哈希计算值小于设定的阈值,则该矿工无法参与...
【专利技术属性】
技术研发人员:张亮,周可,曹辉宁,周海汉,
申请(专利权)人:深圳市优学链科技有限公司,
类型:发明
国别省市:广东,44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。