会员体验
专利管家(专利管理)
工作空间(专利管理)
风险监控(情报监控)
数据分析(专利分析)
侵权分析(诉讼无效)
联系我们
交流群
官方交流:
QQ群: 891211   
微信请扫码    >>>
现在联系顾问~
首页 / 专利库 / 区块头 / 基于区块链侧链的区块头验证方法、装置和计算机可读存储介质

基于区块链侧链的区块头验证方法、装置和计算机可读存储介质

申请号 CN202110469837.0 申请日 2021-04-29 公开(公告)号 CN113179273A 公开(公告)日 2021-07-27
申请人 杭州丽冠科技有限公司; 发明人 汪泽消;
摘要 本申请公开了一种基于区块链侧链的区块头验证方法、装置和计算机可读存储介质,该方法包括:中继服务端从链外客户端获取交互数据包,中继服务端将源区块头存入引用链,并将源区块头对应的区块状态设置为锁定状态,引用链为用于存放源区块头的集合,中继服务端对源区块头进行有效性验证,当对源区块头验证成功时,将源区块头对应的区块状态设置为有效状态,当对源区块头验证失败时,删除源区块头。由此可见,本申请可以低成本的确保区块头数据的有效性。
权利要求

1.一种基于区块链侧链的区块头验证方法,其特征在于,由中继服务端执行所述方法,所述方法包括:

获取链外客户端发送的交互数据包;所述交互数据包是由所述链外客户端从源区块链获取的;所述交互数据包包括所述源区块链中的源区块头;

将所述源区块头存入引用链,并将所述源区块头对应的区块状态设置为锁定状态;所述引用链为用于存放所述源区块头的集合;

对所述源区块头进行有效性验证;当对所述源区块头验证成功时,将所述源区块头对应的区块状态设置为有效状态;当对所述源区块头验证失败时,删除所述源区块头。

2.根据权利要求1所述的方法,其特征在于,对所述源区块头进行有效性验证,包括:在预设的阈值时间内,等待获取争议请求,所述争议请求由所述链外客户端发起,期间所述源区块头对应的区块状态为锁定状态;

当在所述阈值时间内,未获取到所述争议请求时,确定所述源区块头有效性验证成功;

在所述阈值时间内,获取到所述争议请求时,对所述源区块头进行全面验证;

当全面验证通过时,确定所述争议请求失败并确定所述源区块头有效性验证成功,否则确定所述争议请求成功并确定所述源区块头有效性验证失败。

3.根据权利要求2所述的方法,其特征在于,所述链外客户端中至少包括第一链外客户端和第二链外客户端;所述交互数据包还包括第一保证金;所述第一保证金由所述第一链外客户端发送所述交易数据包时创建;所述争议请求由所述第二链外客户端发起,所述争议请求中包括第二保证金;所述第一保证金和所述第二保证金均与所述源区块头相关联,所述方法还包括:

当所述第二链外客户端执行争议请求成功时,所述第二链外客户端获得与所述源区块头相关联的所述第一保证金和所述第二保证金;

当所述第二链外客户端执行争议请求失败时,所述第一链外客户端获得与所述源区块头相关联的所述第一保证金和所述第二保证金。

4.根据权利要求3所述的方法,其特征在于,所述第一保证金和所述第二保证金大于等于验证费,所述验证费为进行全面验证所需费用。

5.根据权利要求3所述的方法,其特征在于,所述所述第二链外客户端获得与所述源区块头相关联的所述第一保证金和所述第二保证金还包括:当所述源区块头存在子区块头时,所述第二链外客户端获得所述第一保证金、所述第二保证金和第三保证金;所述第三保证金与所述子区块头相关联。

6.一种基于区块链侧链的区块头验证方法,其特征在于,包括:链外客户端从源区块链获取交互数据包;所述交互数据包包括所述源区块链中的源区块头;

中继服务端从所述链外客户端获取所述交互数据包;

所述中继服务端将所述源区块头存入引用链,并将所述源区块头对应的区块状态设置为锁定状态;所述引用链为用于存放所述源区块头的集合;

所述中继服务端对所述源区块头进行有效性验证;当对所述源区块头验证成功时,将所述源区块头对应的区块状态设置为有效状态;当对所述源区块头验证失败时,删除所述源区块头。

7.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行权利要求1‑8中任一项所述方法的步骤。

8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令被处理器执行时,执行权利要求1‑8任一项所述的方法。

说明书全文

基于区块链侧链的区块头验证方法、装置和计算机可读存储

介质

技术领域

[0001] 本申请涉及数据处理的技术领域,尤其涉及一种基于区块链侧链的区块头验证方法、装置和计算机可读存储介质。

背景技术

[0002] 区块链技术是分布式数据存储、点对点传输、分布式共识算法、加密算法等计算机技术的集成应用,具有数据不可篡改和不可伪造的特性。随着人们对区块链技术研究的逐
步深入,越来越多的区块链项目开始落地实施,尤其在金融、流程管理、数据追溯、供应链管
理及医疗保险等领域,区块链技术可以产生颠覆性的影响,然而,由于数据存储的封闭性,
这些区块链项目之间的交互能力极其有限,不可避免地造成了区块链的价值孤岛。因此,亟
需探究一种可靠的、高效的、廉价的跨链交互方式来打破这种价值隔离。
[0003] 目前,跨链技术主要包括:公证人机制(notary scheme)、侧链/中继(side chain/relay)和哈希锁定(Hash‑locking)。其中,提交正确的区块头数据到侧链是中继技术的基
础,常规技术往往采用共识签名的方式来验证区块头数据的有效性,而该方式需要若干受
信任的节点作为背书,与区块链去中心化的理念不相符。部分去中心的技术方案在获取到
区块头数据后会直接进行全面验证,可能产生大量验证费,成本大。
[0004] 因此,亟需探究一种去中心化且成本低的区块头提交验证方法。

发明内容

[0005] 本发明的目的是针对现有技术的不足,提供一种基于区块链侧链的区块头验证方法、装置和计算机可读存储介质,可去中心化且低成本的对提交区块头进行验证。
[0006] 本申请一方面提供了一种基于区块链侧链的区块头验证方法,该方法由中继服务端执行,该方法包括:
[0007] 获取链外客户端发送的交互数据包;所述交互数据包是由所述链外客户端从源区块链获取的;所述交互数据包包括所述源区块链中的源区块头;
[0008] 将所述源区块头存入引用链,并将所述源区块头对应的区块状态设置为锁定状态;所述引用链为用于存放所述源区块头的集合;
[0009] 对所述源区块头进行有效性验证;当对所述源区块头验证成功时,将所述源区块头对应的区块状态设置为有效状态;当对所述源区块头验证失败时,删除所述源区块头。
[0010] 优选地,在预设的阈值时间内,等待获取争议请求,所述争议请求由所述链外客户端发起,期间所述源区块头对应的区块状态为锁定状态;
[0011] 当在所述阈值时间内,未获取到所述争议请求时,确定所述源区块头有效性验证成功;
[0012] 在所述阈值时间内,获取到所述争议请求时,对所述源区块头进行全面验证;
[0013] 当全面验证通过时,确定所述争议请求失败并确定所述源区块头有效性验证成功,否则确定所述争议请求成功并确定所述源区块头有效性验证失败。
[0014] 优选地,所述链外客户端中至少包括第一链外客户端和第二链外客户端;所述交互数据包还包括第一保证金;所述第一保证金由所述第一链外客户端发送所述交易数据包
时创建;所述争议请求由所述第二链外客户端发起,所述争议请求中包括第二保证金;所述
第一保证金和所述第二保证金均与所述源区块头相关联,所述方法还包括:
[0015] 当所述第二链外客户端执行争议请求成功时,所述第二链外客户端获得与所述源区块头相关联的所述第一保证金和所述第二保证金;
[0016] 当所述第二链外客户端执行争议请求失败时,所述第一链外客户端获得与所述源区块头相关联的所述第一保证金和所述第二保证金。
[0017] 优选地,所述第一保证金和所述第二保证金大于等于验证费,所述验证费为进行全面验证所需费用。
[0018] 优选地,所述所述第二链外客户端获得与所述源区块头相关联的所述第一保证金和所述第二保证金还包括:
[0019] 当所述源区块头存在子区块头时,所述第二链外客户端获得所述第一保证金、所述第二保证金和第三保证金;所述第三保证金与所述子区块头相关联。
[0020] 本申请一方面提供了一种基于区块链侧链的区块头验证方法,该方法包括:
[0021] 链外客户端从源区块链获取交互数据包;所述交互数据包包括所述源区块链中的源区块头;
[0022] 中继服务端从所述链外客户端获取所述交互数据包;
[0023] 所述中继服务端将所述源区块头存入引用链,并将所述源区块头对应的区块状态设置为锁定状态;所述引用链为用于存放所述源区块头的集合;
[0024] 所述中继服务端对所述源区块头进行有效性验证;当对所述源区块头验证成功时,将所述源区块头对应的区块状态设置为有效状态;当对所述源区块头验证失败时,删除
所述源区块头。
[0025] 本申请一方面提供了一种基于区块链侧链的区块头验证装置,该装置应用于中继服务端,该装置包括:获取模块、存储模块和验证模块;
[0026] 获取模块,用于获取链外客户端发送的交互数据包;所述交互数据包是由所述链外客户端从源区块链获取的;所述交互数据包包括所述源区块链中的源区块头;
[0027] 存储模块,用于将所述源区块头存入引用链,并将所述源区块头对应的区块状态设置为锁定状态;所述引用链为用于存放所述源区块头的集合;
[0028] 验证模块,用于对所述源区块头进行有效性验证;当对所述源区块头验证成功时,将所述源区块头对应的区块状态设置为有效状态;当对所述源区块头验证失败时,删除所
述源区块头。
[0029] 本申请一方面提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行本申请中一方面中的方法
[0030] 本申请一方面提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序包括程序指令,该程序指令被处理器执行时使该处理器执行上述
一方面中的方法。
[0031] 根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算
机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使
得该计算机设备执行上述一方面等各种可选方式中提供的方法。
[0032] 本申请中链外客户端从源区块链获取交互数据包,交互数据包包括源区块链中的源区块头,中继服务端从链外客户端获取交互数据包,中继服务端将源区块头存入引用链,
并将源区块头对应的区块状态设置为锁定状态,引用链为用于存放源区块头的集合,中继
服务端对源区块头进行有效性验证,当对源区块头验证成功时,将源区块头对应的区块状
态设置为有效状态,当对源区块头验证失败时,删除源区块头。由此可见,本申请可以低成
本的确保区块头数据的有效性。

附图说明

[0033] 为了更清楚地说明本发明实施例或现有的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中
记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可
以根据这些附图获得其他的附图。
[0034] 图1是本申请实施例提供的一种网络架构的结构示意图;
[0035] 图2是本申请提供的一种跨链交互的场景示意图;
[0036] 图3是本申请提供的一种基于区块链侧链的区块头验证方法的流程示意图;
[0037] 图4是本申请提供的一种数据有效性验证执行的场景示意图;
[0038] 图5是本申请提供的一种基于区块链侧链的区块头验证方法的流程示意图
[0039] 图6是本申请提供的一种基于区块链侧链的区块头验证装置的结构示意图;
[0040] 图7是本申请提供的一种计算机设备的结构示意图。

具体实施方式

[0041] 为使本发明的目的、技术方案和优点更加清楚,下面将结合具体实施例及相应的附图对本发明的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本发明示例性
实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创
造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0042] 这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例
中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相
反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相
一致的装置和方法的例子。
[0043] 需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更
多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进
行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行
描述。
[0044] 本申请涉及区块链跨链相关技术。其中,现有跨链技术主要包括公证人机制(Notary Scheme)、侧链/中继(Side Chain/Relay)和哈希锁定(Hash‑locking)。跨链技术
是一种价值的交换,既要保证信息流的精确性,更要保证双向价值流通的可靠性。在本申请
实施例中实现跨链交互主要采用了侧链/中继模式,所谓中继模式本质上是一个源区块链
的轻节点以智能合约的形式在目标区块链上运行,且智能合约能够通过SPV(Simplified 
Payment Verification简单支付证明)验证源区块链上的交易信息。
[0045] 请参见图1,图1是本申请实施例提供的一种网络架构的结构示意图。
[0046] 如图1所示,该网络架构可以包括第一区块链101、链外客户端102、第二区块链103。其中,第一区块链101中可以包括多个区块链节点,该多个区块链节点之间可以相互进
行数据交互,该多个区块链节点可以包括节点a1、节点a2、……和节点an等n个节点。链外客
户端102可以包括多个链外客户端节点,该多个链外客户端节点之间可以相互进行数据交
互,该多个链外客户端节点可以包括节点b1、节点b2、……和节点bn等n个节点。第二区块链
103中可以包括多个区块链节点,该多个区块链节点之间可以相互进行数据交互,该多个区
块链节点可以包括节点c1、节点c2、……和节点cn等n个节点。
[0047] 更多的,第一区块链101中的一个区块链节点、第二区块链103中的一个区块链节点、或者链外客户端102中的一个节点,可以由服务器构成,也可以由终端设备构成。其中,
用于构成区块链节点或者链外客户端节点的服务器可以是独立的物理服务器,也可以是多
个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计
算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据
和人工智能平台等基础云计算服务的云服务器。用于构成区块链节点或者链外客户端节点
的终端设备可以是:智能手机、平板电脑、笔记本电脑、桌上型电脑、智能电视等智能终端。
[0048] 下面以第一区块链101中的节点a1、链外客户端102中的节点b1以及第二区块链中的节点c1之间的数据交互为例,对本申请的应用场景进行说明。
[0049] 请一并参见图2,图2是本申请提供的一种跨链交互的场景示意图。
[0050] 如图2所示,节点a1可以为发起跨链交互的节点,节点c1可以为接受跨链交互的节点。节点a1所在的第一区块链101可以为发起跨链交易的源区块链,节点c1所在的第二区块
链103可以为跨链交易的目标区块链,节点c1所在的目标区块链内部署有中继服务端,中继
服务端可以由智能合约实现。
[0051] 链外客户端节点b1可以访问节点a1所在的第一区块链101中存储的区块。若节点b1监听到节点a1所在的第一区块链有区块还未转发或者存储了新的区块,例如节点a1中存
储了新的区块,该区块包含区块头hi和区块体bi,则节点b1可以向节点a1请求拉取区块头
hi作为交互数据包进行转发。
[0052] 链外客户端节点b1可以将拉取到的交互数据包发送给节点c1所在的目标区块链内的中继服务端。节点c1中的中继服务端获取到交互数据包后可以将区块头hi先存储到引
用链中,而不是直接对区块头hi进行全面验证,避免产生高昂的手续付,当对区块头hi有效
性相关的验证成功后,区块头hi才能被用于交易数据的验证。引用链可以是由源区块链即
第一区块链101中所有区块的区块头构成的一条克隆链。通过链外客户端节点可以将源区
块链中的区块头源源不断的克隆到中继服务端中进行存储。
[0053] 其中,节点c1中继服务端中对区块头hi验证的具体过程,可以参见下述图3对应的实施例中的描述。
[0054] 至此即实现了去中心化且低成本的将第一区块链101(源区块链)中的源区块头到第二区块链103(目标区块链)中。
[0055] 此外,链外客户端节点b1还可以向节点a1请求拉取区块体bi中的交易数据和默克尔成员证明作为交互数据包进行转发。
[0056] 链外客户端节点b1可以将拉取到的交互数据包发送给节点c1中的中继服务端,节点c1中的中继服务端可以根据引用链中存储的区块头hi和交互数据包中的交易数据及默
克尔成员证明对交易数据进行SPV(Simplified Payment Verification简单支付证明)验
证,验证通过后节点c1就可以执行与交易数据相关联的交易业务。该交易数据可以指节点
a1和节点c1之间进行交互的任意数据。
[0057] 请参见图3,图3是本申请提供的一种基于区块链侧链的区块头验证方法的流程示意图。如图3所示,该方法可以包括:
[0058] 步骤S101,获取链外客户端发送的交互数据包;交互数据包是由链外客户端从源区块链获取的;交互数据包包括源区块链中的源区块头。
[0059] 中继服务端可以获取到链外客户端所发送的交互数据包。链外客户端向中继服务端发送的交互数据包是由源区块链发送给链外客户端的。
[0060] 具体地,可以是由源区块链中的某个节点将交互数据包发送给链外客户端的。
[0061] 其中,链外客户端节点可以是任意设备或者计算机程序。链外客户端可以不属于源区块链,也可以不属于目标区块链。可以在链外客户端节点和源区块链节点之间配置rbc
(无线承载控制)接口,即可实现链外客户端节点与源区块链节点之间的相互访问。可以在
链外客户端节点和目标区块链节点之间也配置rbc(无线承载控制)接口,即可实现链外客
户端节点与目标区块链节点之间的相互访问,即实现了与中继服务端之间的数据访问,链
外客户端节点的数量可以是多个(至少两个)。
[0062] 具体的,本申请实施例的执行主体可以是中继服务端,该中继服务端可以是目标区块链中部署的智能合约,该智能合约可以在任意一个目标区块链的节点中运行。一个区
块链节点可以由一个或者多个计算机设备构成,该计算机设备可以是终端设备,也可以是
服务器,因此中继服务端可以是由一个或者多个计算机设备所构成。
[0063] 其中,源区块链想要与目标区块链发生跨链交互时,链外客户端节点可以从源区块链中获取交互数据包,该交互数据包中可以包括源区块链中任意区块的源区块头,源区
块头即为源自源区块链的区块头,源区块头中具体包括版本号、本区块的区块哈希、区块高
度、父区块哈希、默克尔树根哈希、时间戳、随机数等。
[0064] 上述过程即为,链外客户端可以向源区块链获取到包含区块头的交互数据包。链外客户端可以将获取到的交互数据包发送给目标区块链中的中继服务端,中继服务端就获
取到了交互数据包。
[0065] 步骤S102:将所述源区块头存入引用链,并将所述源区块头对应的区块状态设置为锁定状态;所述引用链为用于存放所述源区块头的集合。
[0066] 具体的,中继服务端获取到交互数据包之后,就可以对交互数据包中的源区块头进行验证,请参见下述内容描述。
[0067] 具体地,中继服务端将链外客户端传送的交互数据包中的源区块头数据存入某个数据集合中,该数据集合称为引用链,引用链实现了对源区块链的克隆,本质上与源区块链
的轻节点存储的内容相类似。这样就为目标区块链独立验证源区块链上的交易提供了可能
性。
[0068] 可选的,中继服务端对源区块头进行重复性验证的过程可以为:
[0069] 遍历所述引用链与当前源区块头进行对比;中继服务端可以根据当前源区块头的区块哈希和父区块哈希对引用链进行遍历查询,可以理解的是,只有当前源区块头不存在
于引用链中时,才有必要将当前源区块头存入引用链。此外,由于引用链是源区块链的克
隆,本质上也是一条区块链,因此,除了创世区块以外,存入引用链的源区块头都必须在引
用链中存在其父区块头,不能脱离引用关系而单独存在。因此,当所述源区块头不存在于所
述引用链中且所述源区块头的父块头存在于所述引用链中时,确定对所述源区块头重复性
验证成功。作为优选,引用链的数据类型可以采用Hashmap,使得遍历查询更加高效。
[0070] 上述过程即为重复性验证过程,中继服务端可以防止重复的、无引用关系的源区块头进入引用链导致数据混乱。
[0071] 当对所述源区块头验证成功时,将所述源区块头存入引用链,并将所述源区块头对应的区块状态设置为锁定状态,所述引用链为用于存放所述源区块头的集合;可以理解
的是,源区块头存入引用链后,由于该源区块头只进行了重复性验证,其数据的真实有效性
仍有待验证,因此,中继服务端可以将该源区块头设置为锁定状态,在锁定状态下该源区块
头不能用于验证业务中,如交易数据的SPV验证。
[0072] 步骤S103:对源区块头进行有效性验证;当对源区块头验证成功时,将源区块头对应的区块状态设置为有效状态;当对源区块头验证失败时,删除源区块头;
[0073] 具体的,中继服务端将交互数据包中的源区块头存入引用链之后,就可以对交互数据包中的源区块头进行有效性验证,请参见下述内容描述。
[0074] 其中,中继服务端对源区块头的正确性进行验证最直接的方式就是进行全面验证,全面验证通常涉及源区块链的一致性共识算法,例如,源区块链为比特币,目标区块链
为以太坊,此时,在以太坊上直接验证比特币源区块头是经济的、可行的,因为,比特币的一
致性共识算法只需要运行SHA‑256就可以进行验证。但是,当需要在基于以太坊的区块链之
间进行全面验证时,由于基于以太坊的区块链采用特殊的一致性算法Ethash,该算法在以
太坊智能合约上运行时需要大量的gas费用,gas费用可以理解为验证费,因此,在基于以太
坊的区块链之间,对每个提交的源区块头进行全面验证的成本十分高昂。
[0075] 本发明采用一种按需验证的模式对源区块头进行有效性验证,大幅降低操作成本,请参见下述内容描述。
[0076] 具体地,中继服务端对源区块头进行有效性验证的过程可以为:
[0077] 中继服务端可以预先设置一个阈值时间,在这个预设的阈值时间内,中继服务端会等待获取争议请求,所述争议请求由所述链外客户端发起,期间所述源区块头对应的区
块状态为锁定状态。当在所述阈值时间内,中继服务端未获取到任何由链外客户端发起的
争议请求时,中继服务端确定所述源区块头有效性验证成功。在所述阈值时间内,中继服务
端获取到由链外客户端发送的争议请求时,中继服务端对源区块头进行全面验证;全面验
证主要涉及源区块链的一致性共识算法。当全面验证通过时,中继服务端确定所述争议请
求失败并确定所述源区块头有效性验证成功,否则确定所述争议请求成功并确定所述源区
块头有效性验证失败。
[0078] 上述过程即为有效性验证过程,中继服务端可以通过诚信的链外客户端防止无效的源区块头进入引用链导致数据污染,同时,该过程只有在收到争议请求时才会进行全面
验证,降低了计算成本。
[0079] 可以理解的是,如果仅仅依靠链外客户端自主的诚信行为而没有一个激励机制来激励链外客户端提交源区块头和发起争议请求,中继服务端的有效性验证将会变得低效。
[0080] 可选的,链外客户端可以由多个链外客户端节点组成,至少包括第一链外客户端和第二链外客户端;所述交互数据包还包括第一保证金;所述第一保证金由所述第一链外
客户端向中继服务端发送所述交互数据包时创建;在源区块头锁定期间,争议请求可以由
第二链外客户端发起,同时,第二链外客户端需要在争议请求时提交第二保证金;所述第一
保证金和所述第二保证金均与所述源区块头相关联;当所述第二链外客户端执行争议成功
时,所述第二链外客户端获得与所述源区块头相关联的所述第一保证金和所述第二保证
金。当所述第二链外客户端执行争议失败时,所述第一链外客户端获得与所述源区块头相
关联的所述第一保证金和所述第二保证金。
[0081] 可以理解的是,在源区块头锁定期间,第一保证金也将被锁定,第一保证金将不能被撤回,也不能用于提交其他源区块头,在锁定期结束后中继服务端还没收到争议请求,第
一链外客户端将重新获得第一保证金。但是,如果在锁定期间第二链外客户端对该源区块
头发起争议请求,且争议成功,第二链外客户端将获得第一保证金,争议失败第一链外客户
端将获得第二链外客户端提交的第二保证金。
[0082] 可选的,所述第一保证金和所述第二保证金大于等于验证费,所述验证费为进行全面验证所需费用。
[0083] 具体地,全面验证根据源区块链的共识算法进行,不同的源区块链可能会有不同的共识算法,由此,进行全面验证可能会产生大量验证费,为确保链外客户端能够获得收
益,可以设置保证金金额大于验证费。
[0084] 可选的,所述第二链外客户端执行争议成功,且当所述源区块头存在子区块头时,所述第二链外客户端获得所述第一保证金、所述第二保证金和第三保证金;所述第三保证
金与所述子区块头相关联。可以理解的是,当源区块头被执行争议请求成功时,源区块头被
视为无效,其子区块头无需进行验证也将被视为无效,因此,提出争议请求的第二链外客户
端可以获得全部保证金。
[0085] 可选的,为了更进一步鼓励链外客户端提交源区块头,其他用户每次使用该源区块头进行SPV验证时都需要向提交该源区块头的第一链外客户端提交手续费。
[0086] 上述过程即为争议激励过程,可以鼓励链外客户端提交源区块头和发起争议,同时也可以抑制链外客户端提交无效源区块头,只要有足够数量的链外客户端,无需受信任
的第三方背书便可确保区块头数据的可靠性。
[0087] 请参见图4,图4是本申请提供的一种数据有效性验证执行的场景示意图。
[0088] 如图4所示,链外客户端至少包括链外客户端201和链外客户端202,其中,链外客户端201可以是向中继服务端203发送提交交互数据包的一端,交互数据包中可以包括源区
块链中的区块头及保证金。链外客户端202可以是向中继服务端203发送争议请求的一端,
争议请求中可以包括保证金及争议对象的哈希等。
[0089] 在该场景中,链外客户端201向中继服务端203发送提交交互数据包,交互数据包中包括源区块头hi和保证金gi,中继服务端203接收该交互数据包,中继服务端203在预设
的阈值时间内等待其他链外客户端发送争议请求,阈值时间期满后未收到其他链外客户端
发送的争议请求,则将源区块头hi设为有效状态并将保证金gi返回链外客户端201。当源区
块头hi被设为有效后,便可以用于交易数据的简单支付验证。可选的,每次客户端请求使用
源区块头进行简单支付验证时都需要向提交者链外客户端201支付一定的验证费。
[0090] 在该场景中,链外客户端201还可以向中继服务端203发送提交交互数据包,交互数据包中包括源区块头hj和保证金gj,中继服务端203接收该交互数据包,中继服务端203
在预设的阈值时间内等待其他链外客户端发送争议请求,阈值时间期间,链外客户端202创
建争议请求并向中继服务端203发送争议请求,争议请求中包含保证金dj及争议对象源区
块头hj的哈希等,中继服务端203收到链外客户端202发送的争议请求,中继服务端203对源
区块头hj进行全面验证,当全面验证通过时,中继服务端203将源区块头hj的区块状态设为
有效状态,并将保证金gj及保证金dj返回给链外客户端201;当全面验证未通过时,中继服
务端203将源区块头hj从引用链中删除,并将保证金gj及保证金dj返回给链外客户端202。
可以理解的是,如果被删除的源区块头hj在引用链中还有子区块头,那么子区块头也将被
一并删除,并且,子区块头上的保证金也将被一并返回链外客户端202。此外,由于全面验证
是根据一致性共识算法进行计算的,不同的共识算法可能导致需要支付一定的验证费,因
此,优选地,保证金的最小值可以大于等于验证费。
[0091] 至此即实现了对源区块头的有效性验证过程。采用本申请所提供的方法,可以激励链外客户端提交有效的源区块头,抑制链外客户端提交无效源区块头,也激励链外客户
端对源区块头进行高效的争议,抑制链外客户端采用数量战术提交过多无效争议。该方法
保证了链外客户端的积极性的同时,强化了数据的可靠性。
[0092] 请参见图5,图5是本申请提供的一种基于区块链侧链的遍历方法的流程示意图。如图5所示,该方法可以包括:
[0093] 步骤S201,链外客户端从源区块链获取交互数据包;交互数据包包括所述源区块链中的源区块头。
[0094] 步骤S202,中继服务端从链外客户端获取交互数据包。
[0095] 步骤S203,中继服务端将源区块头存入引用链,并将源区块头对应的区块状态设置为锁定状态;引用链为用于存放源区块头的集合。
[0096] 步骤S204,中继服务端对源区块头进行有效性验证;当对源区块头验证成功时,将源区块头对应的区块状态设置为有效状态;当对源区块头验证失败时,删除源区块头。
[0097] 可以理解的是,上述图3对应的申请实施例中所提供的方法与图4对应的申请实施例中所提供的方法,实际上为同一方法,只是图4对应的申请实施例中是以源区块链、链外
客户端和中继服务端共同作为执行主体,因此,图3对应的申请实施例中所描述的内容可以
与图4对应的申请实施例中所描述的内容结合起来。
[0098] 通过本申请所提供的方法,可以实现快速确认目标区块头是否在侧链主链上。
[0099] 请参见图6,图6是本申请提供的一种基于区块链侧链的区块头验证装置的结构示意图。
[0100] 该区块头验证装置1可以应用于中继服务端,该区块头验证装置1可以用于执行上述图3对应的实施例中所描述的各个步骤,该区块头验证装置1可以包括:获取模块11、存储
模块12和验证模块13;
[0101] 获取模块11,用于获取链外客户端发送的交互数据包;所述交互数据包是由所述链外客户端从源区块链获取的;所述交互数据包包括所述源区块链中的源区块头;
[0102] 存储模块12,用于将所述源区块头存入引用链,并将所述源区块头对应的区块状态设置为锁定状态;所述引用链为用于存放所述源区块头的集合;
[0103] 验证模块13,用于对所述源区块头进行有效性验证;当对所述源区块头验证成功时,将所述源区块头对应的区块状态设置为有效状态;当对所述源区块头验证失败时,删除
所述源区块头。
[0104] 其中,获取模块11、存储模块12和验证模块13的具体功能实现方式请参见图3对应的实施例中的步骤S101‑步骤S103,这里不再进行赘述。
[0105] 请参见图7,图7是本申请提供的一种计算机设备的结构示意图。
[0106] 如图7所示,计算机设备1000可以包括:处理器1001,网络接口1004和存储器1005,此外,计算机设备1000还可以包括:用户接口1003,和至少一个通信总线1002。其中,通信总
线1002用于实现这些组件之间的连接通信。其中,用户接口1003可以包括显示屏
(Display)、键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网
络接口1004可选的可以包括标准的有线接口、无线接口(如WI‑FI接口)。存储器1005可以是
高速RAM存储器,也可以是非不稳定的存储器(non‑volatile memory),例如至少一个磁盘
存储器。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图7
所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接
口模块以及设备控制应用程序。
[0107] 在图7所示的计算机设备1000中,网络接口1004可提供网络通讯功能;而用户接口1003主要用于为用户提供输入的接口;而处理器1001可以用于调用存储器1005中存储的设
备控制应用程序,以实现前文图3中任一个所对应实施例中对基于区块链侧链的区块头验
证方法的描述。应当理解,本申请中所描述的计算机设备1000,也可执行前文其余实施例中
对区块头验证装置1的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再
进行赘述。
[0108] 此外,这里需要指出的是:本申请还提供了一种计算机可读存储介质,且计算机可读存储介质中存储有前文提及的区块头验证装置1所执行的计算机程序,且计算机程序包
括程序指令,当处理器执行程序指令时,能够执行前文图3中任一个所对应实施例中对基于
区块链侧链的区块头验证方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法
的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机存储介质实施例中未披露
的技术细节,请参照本申请方法实施例的描述。
[0109] 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,上述的程序可存储于一计算机可读取存储介质
中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,上述的存储介质可为磁
碟、光盘、只读存储记忆体(Read‑Only Memory,ROM)或随机存储记忆体(Random Access 
Memory,RAM)等。
[0110] 还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包
括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要
素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要
素的过程、方法、商品或者设备中还存在另外的相同要素。
[0111] 上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来
执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺
序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可
以的或者可能是有利的。
[0112] 在本说明书一个或多个实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书
中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表
示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出
项目的任何或所有可能组合。
[0113] 应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区
分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第
二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如
果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
[0114] 以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何
修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。