[发明专利]区块链主链的确定方法、装置、服务器和存储介质有效
申请号: | 201810411049.4 | 申请日: | 2018-05-02 |
公开(公告)号: | CN108647963B | 公开(公告)日: | 2020-05-12 |
发明(设计)人: | 肖伟 | 申请(专利权)人: | 百度在线网络技术(北京)有限公司 |
主分类号: | G06Q20/38 | 分类号: | G06Q20/38;G06Q40/04 |
代理公司: | 北京品源专利代理有限公司 11332 | 代理人: | 孟金喆 |
地址: | 100085 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 区块 链主链 确定 方法 装置 服务器 存储 介质 | ||
本发明实施例公开了一种区块链主链的确定方法、装置、服务器和存储介质,该方法包括:若检测到区块链存在至少两个分叉链,则确定各分叉链中各区块的权重;依据各分叉链所包含的区块的权重,确定各分叉链的权重;依据各分叉链的权重从分叉链中确定主链,并将所述主链之外的分叉链回滚。本发明实施例通过基于分叉链的权重从分叉链中确定主链,一定程度上避免了在区块生成结点切换过程中,前一个区块生成结点的尾部区块被恶意丢弃的问题,增加区块生成结点的作恶成本,降低了恶意攻击成功率。
技术领域
本发明实施例涉及区块链技术领域,尤其涉及区块链主链的确定方法、装置、服务器和存储介质。
背景技术
随着互联网技术的不断发展,一种去中心化且公开透明的区块链技术应运而生。区块链技术采用数据区块打破了目前互联网对中心服务器的依赖,网络中产生的所有数据都会被当前具有事务处理权的结点进行记录,并通过数据的广播和其他结点的验证,以形成区块并连接在区块链的尾部。网络中的每个结点几乎都可以观察到整个网络内各个区块中的数据,实现全部结点对网络数据的监督,从而保障了网络内数据的安全可靠性。
目前,网络内的各个结点可以通过共识机制来实现对事务处理权或称区块生成权的争夺。若两个结点在几乎相同的时间内各自都争夺到了事务处理权或区块生成权,则这两个结点分别形成区块,并将区块数据逐步传输到整个网络。在两份区块数据的传输过程中,网络中的其他结点可能会先收到任意一个区块的数据。由于这两个区块都是主链的延伸,因此部分结点会在收到的一个区块的基础上进行区块链的延长,其余部分结点会在收到的另一个区块的基础上进行区块链的延长,进而区块链会分叉出具有竞争关系的两条分叉链。为了保证网络中区块链数据的唯一性,现有技术采用的是基于最长链的共识算法,即永远将最长的分叉链视为正确链并确定为主链,而其余分叉链上的区块数据视为无效。
然而,基于最长链的主链确定方法有可能出现分叉链虽然为最长链,但其实则为错误链的情况。例如恶意端提升本结点的计算能力,事先争夺多个区块的事务处理权,恶意增加并延长对恶意端有利的分叉链,从而将正确的分叉链丢弃,实现对区块链的恶意攻击。
发明内容
本发明实施例提供了一种区块链主链的确定方法、装置、服务器和存储介质,能够从分叉链中有效地确定区块链主链,降低恶意攻击成功率。
第一方面,本发明实施例提供了一种区块链主链的确定方法,包括:
若检测到区块链存在至少两个分叉链,则确定各分叉链中各区块的权重;
依据各分叉链所包含的区块的权重,确定各分叉链的权重;
依据各分叉链的权重从分叉链中确定主链,并将所述主链之外的分叉链回滚。
第二方面,本发明实施例提供了一种区块链主链的确定装置,包括:
区块权重确定模块,用于若检测到区块链存在至少两个分叉链,则确定各分叉链中各区块的权重;
分叉链权重确定模块,用于依据各分叉链所包含的区块的权重,确定各分叉链的权重;
主链确定模块,用于依据各分叉链的权重从分叉链中确定主链,并将所述主链之外的分叉链回滚。
第三方面,本发明实施例提供了一种服务器,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明任意实施例所述的区块链主链的确定方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明任意实施例所述的区块链主链的确定方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于百度在线网络技术(北京)有限公司,未经百度在线网络技术(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810411049.4/2.html,转载请声明来源钻瓜专利网。