【技术实现步骤摘要】
区块链主链的确定方法、装置、设备及存储介质
本申请涉及计算机
,尤其涉及区块链技术,具体涉及一种区块链主链的确定方法、装置、设备及存储介质。
技术介绍
自私挖矿攻击是一种针对区块链网络的攻击方式,攻击者会在短时间内调集大量的算力,独立于网络主干,挖出一条较长的分叉,而并不对外广播。最后,把分叉广播出去的时候,因为其长度领先于主干。按照目前的区块链网络设计,将优先选择最长链作为主干,使得区块链网络将主干切换到攻击者所发布的错误分叉上。因此,自私挖矿攻击将会使诚实矿工的利益受损,甚至会出现大量无效交易或双花交易的情况,给区块链网络的稳定性和安全性带来严重威胁。
技术实现思路
本申请公开了一种准确度更高的区块链主链的确定方法、装置、设备及存储介质。根据本申请的一方面,提供了一种区块链主链的确定方法,应用于包含有主链和至少两个分叉链的区块链,所述方法包括:确定所述分叉链中分叉区块的出块节点在所述主链中的出块贡献度,并将所述出块贡献度作为所述分叉区块的区块权重;根据所述分叉区块 ...
【技术保护点】
1.一种区块链主链的确定方法,应用于包含有主链和至少两个分叉链的区块链,所述方法包括:/n确定所述分叉链中分叉区块的出块节点在所述主链中的出块贡献度,并将所述出块贡献度作为所述分叉区块的区块权重;/n根据所述分叉区块的区块权重,从所述至少两个分叉链中选取目标分叉链,用于更新所述主链。/n
【技术特征摘要】
1.一种区块链主链的确定方法,应用于包含有主链和至少两个分叉链的区块链,所述方法包括:
确定所述分叉链中分叉区块的出块节点在所述主链中的出块贡献度,并将所述出块贡献度作为所述分叉区块的区块权重;
根据所述分叉区块的区块权重,从所述至少两个分叉链中选取目标分叉链,用于更新所述主链。
2.根据权利要求1所述的方法,其中,所述确定所述分叉链中分叉区块的出块节点在所述主链中的出块贡献度,包括:
确定所述分叉区块所属分叉链在所述主链中所关联的至少一个历史区块区间;其中,不同所述历史区块区间之间无交叠;
根据所述分叉区块的出块节点在至少一个所述历史区块区间中的出块数量,确定所述出块贡献度。
3.根据权利要求2所述的方法,其中,所述根据所述分叉区块的出块节点在至少一个所述历史区块区间中的出块数量,确定所述出块贡献度,包括:
根据所述分叉区块的出块节点在所述历史区块区间中的出块数量,确定历史出块频率;
根据所述分叉区块的至少一个所述历史出块频率,确定所述出块贡献度。
4.根据权利要求3所述的方法,其中,所述根据所述分叉区块的至少一个所述历史出块频率,确定所述出块贡献度,包括:
根据所述历史区块区间中所包含的至少一个历史主干区块与最新主干区块的相对区块高度,确定时间调节因子;
根据所述时间调节因子对所述历史出块频率进行更新;
根据所述分叉区块的至少一个更新后的历史出块频率,确定所述出块贡献度。
5.根据权利要求4所述的方法,其中,所述根据所述历史区块区间中所包含的至少一个历史主干区块与最新主干区块的相对区块高度,确定时间调节因子,包括:
根据所述历史区块区间的区间序号,确定时间调节因子;
其中,各所述历史区块区间根据出块时间逆序编号。
6.根据权利要求2-5任一项所述的方法,其中,所述确定所述分叉区块所属分叉链在所述主链中所关联的至少一个历史区块区间,包括:
根据所述分叉区块所属分叉链的分叉长度,确定所述历史区块区间的区间数量;
根据所述主链中的至少一个历史主干区块,构建所述区间数量个历史区块区间。
7.根据权利要求1-5任一项所述的方法,其中,所述根据所述分叉区块的区块权重,从所述至少两个分叉链中选取目标分叉链,包括:
根据所述区块权重,确定所述分叉链的链权重;
根据所述链权重,从所述至少两个分叉链中选取目标分叉链。
8.根据权利要求7所述的方法,其中,所述根据所述区块权重,确定所述分叉链的链权重,包括:
将所述分叉链中所包含的至少一个分叉区块的链权重的和值,作为所述分叉链的链权重。
9.根据权利要求7所述的方法,其中,所述根据所述链权重,从所述至少两个分叉链中选取目标分叉链,包括:
从所述至少两个分叉链中,选取链权重最大的其中一个分叉链,作为目标分叉链。
10.一种区块链主链的确定装置,应用于包含有主链和至少两个分叉链的区块链,所述装置包括:
区块权重确定模块,用于确定所述分叉链中分叉区块的出块节点在所述主链中的出块贡献度,并将所述出块贡献度作为所述分叉区块的区块权重;
主链更新模块,用于根...
【专利技术属性】
技术研发人员:荆博,
申请(专利权)人:百度在线网络技术北京有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。