一种基于区块链的数据处理方法、设备以及可读存储介质转让专利

申请号 : CN202011131362.6

文献号 : CN111970129B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王章郭懿心韦德志王兆创乔小强刘友为

申请人 : 腾讯科技(深圳)有限公司

摘要 :

本申请公开一种基于区块链的数据处理方法、设备以及可读存储介质,该方法由验证节点执行,验证节点属于链联盟中的区块链A,方法包括:获取授权终端发送的数据授权请求;数据授权请求包括与授权方相关联的数据授权凭证;根据数据授权请求对授权方进行授权验证,得到验证结果A;若验证结果A为合法结果,则根据区块链A的私钥对数据授权凭证进行签名,得到凭证签名A,将凭证签名A确定为上链签名,对携带上链签名的数据授权凭证进行上链处理;将携带上链签名的数据授权凭证通过跨链网关发送至区块链B,以使区块链B对上链签名进行验签,若验签通过,则为查询终端提供查询权限。采用本申请,可以提高数据授权效率。

权利要求 :

1.一种基于区块链的数据处理方法,其特征在于,所述方法由验证节点执行,所述验证节点属于链联盟中的区块链A,所述链联盟还包括区块链B,所述方法包括:获取授权终端发送的数据授权请求;所述数据授权请求包括与授权方相关联的数据授权凭证;

根据所述数据授权请求对所述授权方进行授权验证,得到验证结果A;

若所述验证结果A为合法结果,则根据所述区块链A的私钥对所述数据授权凭证进行签名,得到凭证签名A,将所述凭证签名A确定为上链签名,对携带所述上链签名的所述数据授权凭证进行上链处理;

当通过跨链网关接收到所述区块链B发送的凭证跨链查询请求时,将携带所述上链签名的所述数据授权凭证通过所述跨链网关发送至所述区块链B,以使所述区块链B对所述上链签名进行验签,若验签通过,则根据所述数据授权凭证为查询终端提供查询权限;所述查询权限是指所述查询终端具备在所述区块链B中获取所述授权方所提供的业务数据的权限。

2.根据权利要求1所述的方法,其特征在于,所述链联盟还包括区块链C,所述区块链C为已受理所述数据授权请求的区块链;

所述若所述验证结果A为合法结果,则根据所述区块链A的私钥对所述数据授权凭证进行签名,得到凭证签名A,将所述凭证签名A确定为上链签名,包括:若所述验证结果A为所述合法结果,则通过所述跨链网关从所述区块链C中获取所述数据授权凭证对应的凭证签名C;所述凭证签名C为所述区块链C中的节点在针对所述授权方的验证结果C为所述合法结果时,根据所述区块链C的私钥对所述数据授权凭证进行签名所得到的;

根据所述区块链C的公钥对所述凭证签名C进行验签,得到验签结果;

根据所述验签结果以及所述区块链A的私钥对所述数据授权凭证进行签名,得到所述凭证签名A,将所述凭证签名A和所述凭证签名C确定为所述上链签名。

3.根据权利要求2所述的方法,其特征在于,所述验签结果包括验签成功结果以及验签失败结果;

所述根据所述验签结果以及所述区块链A的私钥对所述数据授权凭证进行签名,得到所述凭证签名A,包括:若所述验签结果为所述验签失败结果,则发送针对所述数据授权请求的授权失败信息至所述授权终端,且通过所述跨链网关发送验签失败信息至所述区块链C,以使所述区块链C检测所述凭证签名C;

若所述验签结果为所述验签成功结果,则根据所述区块链A的私钥对所述数据授权凭证进行签名,得到所述凭证签名A。

4.根据权利要求3所述的方法,其特征在于,所述根据所述区块链C的公钥对所述凭证签名C进行验签,得到验签结果,包括:获取所述数据授权凭证对应的第一哈希值;

根据所述区块链C的公钥对所述凭证签名C进行解密,得到第二哈希值;

对所述第一哈希值以及所述第二哈希值进行对比;

若所述第一哈希值与所述第二哈希值相同,则确定所述验签结果为所述验签成功结果;

若所述第一哈希值与所述第二哈希值不相同,则确定所述验签结果为所述验签失败结果。

5.根据权利要求1所述的方法,其特征在于,所述跨链网关包括属于所述区块链B的轻量节点B以及属于所述区块链A的轻量节点A;所述轻量节点A包括所述区块链B的链标识;

所述当通过跨链网关接收到所述区块链B发送的凭证跨链查询请求时,将携带所述上链签名的所述数据授权凭证通过所述跨链网关发送至所述区块链B,包括:当通过所述轻量节点A接收到所述区块链B中的所述轻量节点B发送的所述凭证跨链查询请求时,获取所述区块链B的链标识;

将所述区块链B的链标识以及携带所述上链签名的所述数据授权凭证传输至所述轻量节点A,以使所述轻量节点A根据所述区块链B的链标识,向所述区块链B中的所述轻量节点B发送携带所述上链签名的所述数据授权凭证。

6.根据权利要求5所述的方法,其特征在于,还包括:

通过所述跨链网关将所述区块链A的公钥以及所述区块链A的链标识广播至所述链联盟,以使所述链联盟中的剩余区块链对所述区块链A的公钥以及所述区块链A的链标识进行上链处理;所述剩余区块链为所述链联盟中除了所述区块链A之外的区块链;

通过所述跨链网关获取所述剩余区块链的公钥以及所述剩余区块链的链标识,并对所述剩余区块链的公钥以及所述剩余区块链的链标识进行上链处理。

7.根据权利要求1所述的方法,其特征在于,所述根据所述数据授权请求对所述授权方进行授权验证,得到验证结果A,包括:根据所述数据授权请求发送授权对象验证请求至所述授权终端,记录发送所述授权对象验证请求的发送时间戳;

获取所述授权终端返回的授权对象验证答复,记录获取到所述授权对象验证答复的获取时间戳;

根据所述授权对象验证答复、所述发送时间戳以及所述获取时间戳确定所述验证结果A。

8.根据权利要求7所述的方法,其特征在于,所述根据所述授权对象验证答复、所述发送时间戳以及所述获取时间戳确定所述验证结果A,包括:获取针对所述授权对象验证请求的有效答复时长,根据所述发送时间戳以及所述获取时间戳确定所述授权方的实际答复时长;

若所述实际答复时长大于所述有效答复时长,则确定所述验证结果A为非法结果,发送针对所述数据授权请求的答复无效信息至所述授权终端;

若所述实际答复时长小于或等于所述有效答复时长,则检验所述授权对象验证答复的合法性;

若所述授权对象验证答复为非法答复,则确定所述验证结果A为非法结果,发送针对所述数据授权请求的授权失败信息至所述授权终端;

若所述实际答复时长小于或等于所述有效答复时长且所述授权对象验证答复为合法答复,则确定所述验证结果A为所述合法结果。

9.一种基于区块链的数据处理方法,其特征在于,所述方法由查询节点执行,所述查询节点属于链联盟中的区块链B,所述链联盟还包括验证区块链,所述方法包括:获取查询终端发送的与授权方相关联的数据查询请求;

通过跨链网关向所述验证区块链发送针对所述授权方的凭证跨链查询请求,以使所述验证区块链根据所述凭证跨链查询请求确定携带上链签名的数据授权凭证;所述上链签名为所述验证区块链在确定所述授权方为合法授权方后,根据所述验证区块链的私钥对所述数据授权凭证进行签名所得;

通过所述跨链网关获取所述验证区块链发送的携带所述上链签名的所述数据授权凭证;

根据所述验证区块链的公钥对所述上链签名进行验签,若验签通过,则根据所述数据授权凭证为所述查询终端提供查询权限;所述查询权限是指所述查询终端具备在所述区块链B中获取所述授权方所提供的业务数据的权限。

10.根据权利要求9所述的方法,其特征在于,所述数据查询请求包括验证区块链的链标识;所述验证区块链是指所述链联盟中包含所述数据授权凭证的合法验证结果的区块链;

所述方法还包括:

根据所述验证区块链的链标识确定所述链联盟中所述验证区块链的验证数量;

若所述验证数量小于验证数量阈值,则发送数据查询失败信息至所述查询终端;

若所述验证数量等于或大于所述验证数量阈值,则执行所述通过跨链网关向所述验证区块链发送针对所述授权方的凭证跨链查询请求步骤。

11.根据权利要求10所述的方法,其特征在于,还包括:

通过所述跨链网关将所述区块链B的公钥以及所述区块链B的链标识广播至所述链联盟,以使所述链联盟中的剩余区块链对所述区块链B的公钥以及所述区块链B的链标识进行上链处理;所述剩余区块链为所述链联盟中除了所述区块链B之外的区块链;

通过所述跨链网关获取所述剩余区块链的公钥以及所述剩余区块链的链标识,并对所述剩余区块链的公钥以及所述剩余区块链的链标识进行上链处理。

12.根据权利要求9所述的方法,其特征在于,所述验证区块链包括区块链A以及区块链C,所述上链签名包括凭证签名A和凭证签名C;所述凭证签名A是基于所述区块链A的私钥以及所述数据授权凭证所生成的,所述凭证签名C是基于所述区块链C的私钥以及所述数据授权凭证所生成的;

所述根据所述验证区块链的公钥对所述上链签名进行验签,若验签通过,则根据所述数据授权凭证为所述查询终端提供查询权限,包括:根据所述区块链A的公钥对所述凭证签名A进行验签,得到验签结果A,根据所述区块链C的公钥对所述凭证签名C进行验签,得到验签结果C;

若所述验签结果A以及所述验签结果C中存在验签结果为验签失败结果,则确定验签失败,发送数据查询失败信息至所述查询终端;

若所述验签结果A以及所述验签结果C均为验签成功结果,则确定验签通过,根据所述区块链B的私钥对所述数据授权凭证进行签名,得到凭证签名B;

对所述凭证签名B以及所述数据授权凭证进行上链处理,当上链成功后,根据所述数据授权凭证为所述查询终端提供所述查询权限。

13.根据权利要求9所述的方法,其特征在于,所述根据所述验证区块链的公钥对所述上链签名进行验签,包括:获取所述数据授权凭证对应的第一哈希值;

根据所述验证区块链的公钥对所述上链签名进行解密,得到第二哈希值;

对所述第一哈希值以及所述第二哈希值进行对比,若所述第一哈希值与所述第二哈希值相同,则确定验签通过;

若所述第一哈希值与所述第二哈希值不相同,则确定验签失败,发送数据查询失败信息至所述查询终端。

14.一种计算机设备,其特征在于,包括:处理器、存储器以及网络接口;

所述处理器与所述存储器、所述网络接口相连,其中,所述网络接口用于提供数据通信功能,所述存储器用于存储程序代码,所述处理器用于调用所述程序代码,以执行权利要求

1至13中任一项所述方法的步骤。

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

说明书 :

一种基于区块链的数据处理方法、设备以及可读存储介质

技术领域

[0001] 本申请涉及互联网技术领域,尤其涉及一种基于区块链的数据处理方法、设备以及可读存储介质。

背景技术

[0002] 随着网络技术的快速发展以及企业对数据安全的重视,区块链得到了极大的发展和应用。当企业的业务数据存储于区块链,而数据使用方通过区块链查询或获取数据时,为了保障业务数据的安全,需要该企业在区块链上对业务数据进行授权,以使区块链根据授权内容为数据使用方提供查询权限。
[0003] 企业或用户可以包括多种类型的数据,例如企业税务数据、社保数据以及工商数据等,不同类型的数据,存储于不同的区块链。在现有技术中,数据使用方在区块链A上获取业务数据时,需要数据授权方(即企业或用户)在区块链A上进行授权认证;数据使用方在区块链B上获取业务数据时,需要数据授权方在区块链B上进行授权认证,在其余区块链上获取业务数据亦如此。明显地,当数据使用方需要获取多条区块链上的业务数据时,就需要数据授权方进行多次的授权,然而每次授权都需要对数据授权方进行验证,而多次重复验证的过程降低了数据授权方的数据授权效率。

发明内容

[0004] 本申请实施例提供一种基于区块链的数据处理方法、装置、设备以及计算机可读存储介质,可以提高数据授权方的数据授权效率。
[0005] 本申请实施例一方面提供一种基于区块链的数据处理方法,该方法由验证节点执行,验证节点属于链联盟中的区块链A,链联盟还包括区块链B,包括:
[0006] 获取授权终端发送的数据授权请求;数据授权请求包括与授权方相关联的数据授权凭证;
[0007] 根据数据授权请求对授权方进行授权验证,得到验证结果A;
[0008] 若验证结果A为合法结果,则根据区块链A的私钥对数据授权凭证进行签名,得到凭证签名A,将凭证签名A确定为上链签名,对携带上链签名的数据授权凭证进行上链处理;
[0009] 当通过跨链网关接收到区块链B发送的凭证跨链查询请求时,将携带上链签名的数据授权凭证通过跨链网关发送至区块链B,以使区块链B对上链签名进行验签,若验签通过,则根据数据授权凭证为查询终端提供查询权限;查询权限是指查询终端具备在区块链B中获取授权方所提供的业务数据的权限。
[0010] 本申请实施例一方面提供一种基于区块链的数据处理方法,该方法由查询节点执行,查询节点属于链联盟中的区块链B,链联盟还包括验证区块链,包括:
[0011] 获取查询终端发送的与授权方相关联的数据查询请求;
[0012] 通过跨链网关向验证区块链发送针对授权方的凭证跨链查询请求,以使验证区块链根据凭证跨链查询请求确定携带上链签名的数据授权凭证;上链签名为验证区块链在确定授权方为合法授权方后,根据验证区块链的私钥对数据授权凭证进行签名所得;
[0013] 通过跨链网关获取验证区块链发送的携带上链签名的数据授权凭证;
[0014] 根据验证区块链的公钥对上链签名进行验签,若验签通过,则根据数据授权凭证为查询终端提供查询权限;查询权限是指查询终端具备在区块链B中获取授权方所提供的业务数据的权限。
[0015] 本申请实施例一方面提供一种基于区块链的数据处理装置,该装置运行于验证节点,验证节点属于链联盟中的区块链A,链联盟还包括区块链B,包括:
[0016] 获取请求模块,用于获取授权终端发送的数据授权请求;数据授权请求包括与授权方相关联的数据授权凭证;
[0017] 验证授权模块,用于根据数据授权请求对授权方进行授权验证,得到验证结果A;
[0018] 第一处理模块,用于若验证结果A为合法结果,则根据区块链A的私钥对数据授权凭证进行签名,得到凭证签名A,将凭证签名A确定为上链签名,对携带上链签名的数据授权凭证进行上链处理;
[0019] 发送凭证模块,用于当通过跨链网关接收到区块链B发送的凭证跨链查询请求时,将携带上链签名的数据授权凭证通过跨链网关发送至区块链B,以使区块链B对上链签名进行验签,若验签通过,则根据数据授权凭证为查询终端提供查询权限;查询权限是指查询终端具备在区块链B中获取授权方所提供的业务数据的权限。
[0020] 其中,链联盟还包括区块链C,区块链C为已受理数据授权请求的区块链;
[0021] 第一处理模块,包括:
[0022] 第一获取单元,用于若验证结果A为合法结果,则通过跨链网关从区块链C中获取数据授权凭证对应的凭证签名C;凭证签名C为区块链C中的节点在针对授权方的验证结果C为合法结果时,根据区块链C的私钥对数据授权凭证进行签名所得到的;
[0023] 签名验签单元,用于根据区块链C的公钥对凭证签名C进行验签,得到验签结果;
[0024] 第一确定单元,用于根据验签结果以及区块链A的私钥对数据授权凭证进行签名,得到凭证签名A,将凭证签名A和凭证签名C确定为上链签名。
[0025] 其中,验签结果包括验签成功结果以及验签失败结果;
[0026] 第一确定单元,包括:
[0027] 发送信息子单元,用于若验签结果为验签失败结果,则发送针对数据授权请求的授权失败信息至授权终端,且通过跨链网关发送验签失败信息至区块链C,以使区块链C检测凭证签名C;
[0028] 签名凭证子单元,用于若验签结果为验签成功结果,则根据区块链A的私钥对数据授权凭证进行签名,得到凭证签名A。
[0029] 其中,签名验签单元,包括:
[0030] 获取哈希子单元,用于获取数据授权凭证对应的第一哈希值;
[0031] 解密签名子单元,用于根据区块链C的公钥对凭证签名C进行解密,得到第二哈希值;
[0032] 对比哈希子单元,用于对第一哈希值以及第二哈希值进行对比;
[0033] 第一确定子单元,用于若第一哈希值与第二哈希值相同,则确定验签结果为验签成功结果;
[0034] 第一确定子单元,还用于若第一哈希值与第二哈希值不相同,则确定验签结果为验签失败结果。
[0035] 其中,跨链网关包括属于区块链B的轻量节点B以及属于区块链A的轻量节点A;轻量节点A包括区块链B的链标识;
[0036] 发送凭证模块,包括:
[0037] 第二获取单元,用于当通过轻量节点A接收到区块链B中的轻量节点B发送的凭证跨链查询请求时,获取区块链B的链标识;
[0038] 传输凭证单元,用于将区块链B的链标识以及携带上链签名的数据授权凭证传输至轻量节点A,以使轻量节点A根据区块链B的链标识,向区块链B中的轻量节点B发送携带上链签名的数据授权凭证。
[0039] 其中,基于区块链的数据处理装置,还包括:
[0040] 广播信息模块,用于通过跨链网关将区块链A的公钥以及区块链A的链标识广播至链联盟,以使链联盟中的剩余区块链对区块链A的公钥以及区块链A的链标识进行上链处理;剩余区块链为链联盟中除了区块链A之外的区块链;
[0041] 第二处理模块,用于通过跨链网关获取剩余区块链的公钥以及剩余区块链的链标识,并对剩余区块链的公钥以及剩余区块链的链标识进行上链处理。
[0042] 其中,验证授权模块,包括:
[0043] 第一记录单元,用于根据数据授权请求发送授权对象验证请求至授权终端,记录发送授权对象验证请求的发送时间戳;
[0044] 第二记录单元,用于获取授权终端返回的授权对象验证答复,记录获取到授权对象验证答复的获取时间戳;
[0045] 第二确定单元,用于根据授权对象验证答复、发送时间戳以及获取时间戳确定验证结果A。
[0046] 其中,第二确定单元,包括:
[0047] 第二确定子单元,用于获取针对授权对象验证请求的有效答复时长,根据发送时间戳以及获取时间戳确定授权方的实际答复时长;
[0048] 第三确定子单元,用于若实际答复时长大于有效答复时长,则确定验证结果A为非法结果,发送针对数据授权请求的答复无效信息至授权终端;
[0049] 检验答复子单元,用于若实际答复时长小于或等于有效答复时长,则检验授权对象验证答复的合法性;
[0050] 第四确定子单元,用于若授权对象验证答复为非法答复,则确定验证结果A为非法结果,发送针对数据授权请求的授权失败信息至授权终端;
[0051] 第四确定子单元,还用于若实际答复时长小于或等于有效答复时长且授权对象验证答复为合法答复,则确定验证结果A为合法结果。
[0052] 本申请实施例一方面提供一种基于区块链的数据处理装置,该装置运行于查询节点,查询节点属于链联盟中的区块链B,链联盟还包括验证区块链,包括:
[0053] 第一获取模块,用于获取查询终端发送的与授权方相关联的数据查询请求;
[0054] 第一发送模块,用于通过跨链网关向验证区块链发送针对授权方的凭证跨链查询请求,以使验证区块链根据凭证跨链查询请求确定携带上链签名的数据授权凭证;上链签名为验证区块链在确定授权方为合法授权方后,根据验证区块链的私钥对数据授权凭证进行签名所得;
[0055] 第二获取模块,用于通过跨链网关获取验证区块链发送的携带上链签名的数据授权凭证;
[0056] 提供权限模块,用于根据验证区块链的公钥对上链签名进行验签,若验签通过,则根据数据授权凭证为查询终端提供查询权限;查询权限是指查询终端具备在区块链B中获取授权方所提供的业务数据的权限。
[0057] 其中,数据查询请求包括验证区块链的链标识;验证区块链是指链联盟中包含数据授权凭证的合法验证结果的区块链;
[0058] 基于区块链的数据处理装置,还包括:
[0059] 确定数量模块,用于根据验证区块链的链标识确定链联盟中验证区块链的验证数量;
[0060] 第二发送模块,用于若验证数量小于验证数量阈值,则发送数据查询失败信息至查询终端;
[0061] 第二发送模块,还用于若验证数量等于或大于验证数量阈值,则执行通过跨链网关向验证区块链发送针对授权方的凭证跨链查询请求步骤。
[0062] 其中,基于区块链的数据处理装置,还包括:
[0063] 广播信息模块,用于通过跨链网关将区块链B的公钥以及区块链B的链标识广播至链联盟,以使链联盟中的剩余区块链对区块链B的公钥以及区块链B的链标识进行上链处理;剩余区块链为链联盟中除了区块链B之外的区块链;
[0064] 第三获取模块,用于通过跨链网关获取剩余区块链的公钥以及剩余区块链的链标识,并对剩余区块链的公钥以及剩余区块链的链标识进行上链处理。
[0065] 其中,验证区块链包括区块链A以及区块链C,上链签名包括凭证签名A和凭证签名C;凭证签名A是基于区块链A的私钥以及数据授权凭证所生成的,凭证签名C是基于区块链C的私钥以及数据授权凭证所生成的;
[0066] 提供权限模块,包括:
[0067] 签名验签单元,用于根据区块链A的公钥对凭证签名A进行验签,得到验签结果A,根据区块链C的公钥对凭证签名C进行验签,得到验签结果C;
[0068] 第一确定单元,用于若验签结果A以及验签结果C中存在验签结果为验签失败结果,则确定验签失败,发送数据查询失败信息至查询终端;
[0069] 第一确定单元,还用于若验签结果A以及验签结果C均为验签成功结果,则确定验签通过,根据区块链B的私钥对数据授权凭证进行签名,得到凭证签名B;
[0070] 提供权限单元,用于对凭证签名B以及数据授权凭证进行上链处理,当上链成功后,根据数据授权凭证为查询终端提供查询权限。
[0071] 其中,提供权限模块,包括:
[0072] 获取哈希单元,用于获取数据授权凭证对应的第一哈希值;
[0073] 解密签名单元,用于根据验证区块链的公钥对上链签名进行解密,得到第二哈希值;
[0074] 第二确定单元,用于对第一哈希值以及第二哈希值进行对比,若第一哈希值与第二哈希值相同,则确定验签通过;
[0075] 第二确定单元,还用于若第一哈希值与第二哈希值不相同,则确定验签失败,发送数据查询失败信息至查询终端。
[0076] 本申请一方面提供了一种计算机设备,包括:处理器、存储器、网络接口;
[0077] 上述处理器与上述存储器、上述网络接口相连,其中,上述网络接口用于提供数据通信功能,上述存储器用于存储计算机程序,上述处理器用于调用上述计算机程序,以执行本申请实施例中的方法。
[0078] 本申请实施例一方面提供了一种计算机可读存储介质,上述计算机可读存储介质存储有计算机程序,上述计算机程序包括程序指令,上述程序指令被处理器执行时,以执行本申请实施例中的方法。
[0079] 本申请实施例一方面提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中;计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例中的方法。
[0080] 本申请实施例中的验证节点属于链联盟中的区块链A,同时,链联盟还包括区块链B;验证节点可以获取授权终端发送的数据授权请求,其中,数据授权请求包括与授权方相关联的数据授权凭证,需要理解的是,此时数据授权凭证中的授权数据为交易数据或业务数据,且该数据已存储于链联盟中;进一步的,验证节点可以根据数据授权请求对授权方进行授权验证,以得到验证结果A;进一步的,若验证结果A为合法结果,则验证节点可以根据区块链A的私钥对数据授权凭证进行签名,以得到凭证签名A,然后将凭证签名A确定为上链签名,最后对携带上链签名的数据授权凭证进行上链处理;进一步的,当通过跨链网关接收到区块链B发送的凭证跨链查询请求时,验证节点可以将携带上链签名的数据授权凭证通过跨链网关发送至区块链B,以使区块链B可以对上链签名进行验签,若验签通过,则区块链B可以根据数据授权凭证为查询终端提供查询权限;其中,查询权限是指查询终端具备在区块链B中获取授权方所提供的业务数据的权限。上述可知,链联盟中包括至少两条区块链,其中,至少两条区块链包括区块链A以及区块链B。授权方向区块链A中的验证节点发送数据授权请求,验证节点可以根据数据授权请求向授权方进行授权验证,从而在验证结果A为合法结果时,验证节点根据区块链A的私钥对数据授权凭证进行签名得到凭证签名A,以表征授权方在区块链A中通过授权验证。后续,当数据查询方通过区块链B获取与授权方相关联的数据时,虽然区块链B没有数据授权凭证(因为授权方没有在区块链B上进行授权验证),但区块链B可以通过链联盟中的跨链网关向区块链A发送凭证跨链查询请求,以获取区块链A上的携带上链签名(如凭证签名A)的数据授权凭证,当区块链B对上链签名验签通过时,可以根据区块链A所发送的数据授权凭证为数据查询方提供授权方所授权的业务数据。可以理解,采用本申请,可以提高数据授权方在链联盟中的数据授权效率。

附图说明

[0081] 为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0082] 图1a是本申请实施例提供的一种网络架构示意图;
[0083] 图1b是本申请实施例提供的一种基于区块链的数据处理的场景示意图;
[0084] 图2是本申请实施例提供的一种基于区块链的数据处理方法的流程示意图;
[0085] 图3a是本申请实施例提供的一种基于区块链的数据处理的场景示意图;
[0086] 图3b是本申请实施例提供的一种基于区块链的数据处理的场景示意图;
[0087] 图3c是本申请实施例提供的一种基于区块链的数据处理的场景示意图;
[0088] 图4是本申请实施例提供的一种基于区块链的数据处理方法的流程示意图;
[0089] 图5a是本申请实施例提供的一种基于区块链的数据处理的场景示意图;
[0090] 图5b是本申请实施例提供的一种基于区块链的数据处理的场景示意图;
[0091] 图6是本申请实施例提供的一种基于区块链的数据处理装置的结构示意图;
[0092] 图7是本申请实施例提供的一种基于区块链的数据处理装置的结构示意图;
[0093] 图8是本申请实施例提供的一种计算机设备的结构示意图;
[0094] 图9是本申请实施例提供的一种计算机设备的结构示意图。

具体实施方式

[0095] 下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0096] 为了便于理解,首先对部分名词进行以下简单解释:
[0097] 1、区块链:狭义上,区块链是一种以区块为基本单位的链式数据结构,区块中利用数字摘要对之前获取的交易历史进行校验,适合分布式记账场景下防篡改和可扩展性的需求;广义上,区块链还指代区块链结构实现的分布式记账技术,包括分布式共识、隐私与安全保护、点对点通信技术、网络协议、智能合约等。区块链的目标是实现一个分布的数据记录账本,此账本只允许添加,不允许删除。账本底层的基本结构是一个线性的链表。链表由一个个“区块”串联组成,后继区块中记录前继区块的哈希(Hash)值,每个区块(以及区块中的交易)是否合法,可通过计算哈希值的方式进行快速检验。若网络中的节点提议添加一个新的区块,必须经过共识机制对区块达成共识确认。
[0098] 2、哈希值:也称作信息特征值或特征值,哈希值是通过哈希算法将任意长度的输入数据转换为密码并进行固定输出而生成的,不能通过解密哈希值来检索原始输入数据,它是一个单向的加密函数。在区块链中,每个区块(除了初始区块)都包含前继区块的哈希值,前继区块被称为当前区块的父区块。哈希值是区块链技术中的潜力核心基础和最重要的方面,它保留了记录和查看数据的真实性,以及区块链作为一个整体的完整性。
[0099] 3、非对称签名:该算法包括两个密钥,公开密钥(简称公钥,publickey)和私有密钥(简称私钥,privatekey)。公钥与私钥是一对,如果用私钥对数据进行签名,只有用对应的公钥才能验签。因为签名过程和验签过程分别使用两个不同的密钥,所以这种算法称作非对称签名。非对称签名实现机密信息交换的基本过程可以是:甲方生成一对密钥并将公钥公开,甲方需要向其他角色(乙方)发送信息时,使用自己的私钥对机密信息进行签名后再发送给乙方;乙方再用甲方的公钥对签名后的信息进行验签。
[0100] 4、跨链数据传输:是一种将区块链A上的交易数据D(或业务信息I,或业务消息M)安全可信地转移到区块链B并在区块链B上产生预期效果的一种技术。
[0101] 5、跨链信任传递:数据授权方在多条区块链上做身份验证以对交易数据授权查询权限,为了避免多次重复验证,而实现的一类多链相互信任的技术。
[0102] 请参见图1a,图1a是本申请实施例提供的一种网络架构示意图。如图1a所示,该网络架构可以包括用户终端集群以及链联盟100中的区块链节点集群,用户终端集群可以包括用户终端20a以及用户终端20b,区块链节点集群可以包括区块链节点10a、区块链节点10b、…、区块链节点10c、区块链节点10d、区块链节点10e以及区块链节点10f。可以理解的是,上述用户终端集群可以包括一个或者多个用户终端,本申请实施例不对用户终端的数量进行限制。
[0103] 其中,区块链节点集群之间可以存在通信连接,例如区块链节点10a与区块链节点10c之间存在通信连接,区块链节点10a与区块链节点10d之间存在通信连接。用户终端集群之间可以存在通信连接,同时,区块链节点集群中的任一区块链节点可以与用户终端集群中的任一用户终端存在通信连接,例如区块链节点10a与用户终端20a之间存在通信连接,区块链节点10d与用户终端20a之间存在通信连接,区块链节点10c与用户终端20b之间存在通信连接,区块链节点10d与用户终端20b之间存在通信连接;其中,上述的通信连接不限定连接方式,可以通过有线通信方式进行直接或间接地连接,也可以通过无线通信方式进行直接或间接地连接,还可以通过其他方式,本申请在此不做限制。
[0104] 本申请实施例将一条或者多条区块链联盟,形成链联盟100,本申请实施例不对链联盟100中的区块链的数量进行限制。请再参见图1a,链联盟100可以包括区块链100a、区块链100b、…、区块链100c。其中,区块链节点10a、…、区块链节点10b属于区块链100a中的节点,区块链节点10c、…、区块链节点10d属于区块链100b中的节点,…,区块链节点10e、…、区块链节点10f属于区块链100c中的节点。可以理解的是,区块链节点(也包括区块链节点10a、区块链节点10b、区块链节点10c、区块链节点10d、区块链节点10e以及区块链节点10f)可以分别用于维护其所属的区块链。上述的区块链100a、区块链100b、…、区块链100c均可以理解成分布式系统,在分布式系统中,任何设备如服务器、用户终端等都可以加入而成为区块链节点。
[0105] 用户终端集群中的用户终端可以通过上述的通信连接功能向链联盟100中的区块链发送请求,以进行业务数据授权或者获取业务数据。下面以用户终端20a作为授权方对应的授权终端,以用户终端20b作为查询方对应的查询终端为例进行叙述,请一并参见图1b,图1b是本申请实施例提供的一种基于区块链的数据处理的场景示意图。图1b所示的链联盟包括4条区块链,分别为区块链100a、区块链100b、区块链100c以及区块链100d。
[0106] 可以理解的是,链联盟中的每条区块链有自己专属的公私钥对以及链标识,链联盟中区块链之间的数据交互可以基于链标识以及跨链网关实现,请一并参见表1,表1是本申请实施例提供的一种链联盟中各区块链分别对应的链标识列表。
[0107] 表1
[0108]区块链名称 链标识
区块链100a 117.114.151.174
区块链100b 117.116.189.145
区块链100c 117.116.155.123
区块链100d 119.123.789.258
[0109] 其中,链标识可为网络之间互联的协议(Internet Protocol,IP)地址以及其他任意一种能够用于标识区块链的信息,表1中仅以IP地址为例进行说明。
[0110] 区块链100a可以包括至少一个区块链节点,例如用于与用户终端集群进行通信连接的验证节点或查询节点;例如图1b所示的跨链网关中的轻量节点1,其中,轻量节点1专门用于区块链100a与链联盟中其他区块链之间的数据交互,数据交互可以包括区块链100a将自己的公钥以及链标识117.114.151.174广播至其他区块链,数据交互还可以包括区块链100a接收其他区块链的公钥以及链标识以进行存储,数据交互还可以包括区块链100a将自身链上的数据广播至其他区块链,此处不限定数据交互内容,可以根据实际应用场景进行设置。同理,区块链100b中可以包括轻量节点2,区块链100c中可以包括轻量节点3,区块链
100d中可以包括轻量节点4,上述轻量节点的作用与区块链100a中的轻量节点1的作用一致,故在此不再进行赘述。
[0111] 企业可以包括多种类型的业务数据,例如企业税务数据、社保数据以及工商数据等,不同类型的业务数据,被存储于不同的区块链,可以将多条区块链联盟,形成链联盟;为了保障业务数据的安全性以及私密性,当企业的业务数据被存储于链联盟中的区块链时,企业可以作为授权方,授予(指示)链联盟中的区块链(也包括图1b所示的区块链100a、区块链100b、区块链100c以及区块链100d)针对业务数据的使用权限,即当数据使用方通过区块链查询或获取数据时,为了保障业务数据的安全,需要企业在区块链上对业务数据进行授权,以使区块链根据授权内容为数据使用方提供查询权限。
[0112] 在本申请实施例中,该链联盟共识的规则是只要链联盟中的2条区块链验证过授权方的数据授权凭证,且均认可该数据授权凭证,那么链联盟中的任意一条区块链均可以受理用户终端20b的数据查询请求。授权方授权业务数据的具体过程以及数据使用方获取业务数据的具体过程请参见图1b。
[0113] 步骤1-步骤3,授权方首先通过用户终端20a在区块链100a上进行授权验证,图示方式是通过人脸识别进行身份认证,区块链100a验证人脸通过以后,用自己的私钥对数据授权凭证进行签名,同时将签名后的数据授权凭证进行上链处理。明显地,图1b中的数据授权凭证为数据授权合同,数据授权合同可以包括授权数据项、机构签名以及企业签名。其中,数据授权项可以包括每条区块链授权的业务数据,例如区块链100a存储的是企业的税务数据,数据授权项可以包括区块链100a可以授权的税务数据。机构签名可以包括数据使用方利用自己的私钥对数据授权项的签名,在实际应用时,数据使用方可以为管理授权方的管理平台,也可以是与授权方合作的企业,此处不做限定。企业签名为授权方利用自己的私钥对数据授权项的签名。
[0114] 步骤4-步骤7,授权方在区块链100b上进行授权验证,图示方式是通过验证授权方预留在区块链100b的手机短信实现,区块链100b验证短信通过以后,通过跨链网关从区块链100a获取区块链100a签名后的数据授权合同(即数据授权凭证),然后验证区块链100a签名的合法性,在确认区块链100a签名为合法签名后,区块链100b根据自己的私钥对数据授权合同进行签名,同时将签名后的数据授权合同上链。可选的,区块链100b将区块链100a签名以及区块链100b签名同时跟随数据授权合同进行上链处理。可以理解的是,本申请实施例在步骤1以及步骤4中,验证方式是以人脸核身以及短信验证为例进行叙述,在实际应用时,验证方式不限定。
[0115] 步骤8-步骤11,假设授权方的社保数据被存储于链联盟中的区块链100c上,当数据使用方想要获取授权方的社保数据时,则需要向区块链100c申请,区块链100c获取到用户终端20b发送的数据查询请求后,首先通过跨链网关从区块链100b获取区块链100a签名和区块链100b签名过的数据授权合同,然后根据区块链100a的公钥对区块链100a签名进行验签,根据区块链100b的公钥对区块链100b签名进行验证,当两个签名的验签通过以后,区块链100c可以认为授权方已授权,则将数据授权合同上链,最后根据数据授权合同的数据授权范围返回社保数据至数据使用方对应的用户终端20b。可以理解的是,在本申请实施例中,区块链100c是向区块链100b获取区块链100a签名和区块链100b签名过的数据授权合同,在实际应用时,区块链100c可以向区块链100b获取区块链100b签名过的数据授权合同,以及向区块链100a获取区块链100a签名过的数据授权合同,后续过程与前文叙述一致。
[0116] 综上所述本申请实施例提出一种在多条区块链之间基于多方共识机制实现跨链信任传递的方案,以实现授权方只用较少次数的授权,即可以让数据使用方在链联盟中的任意一条区块链上获取业务数据。
[0117] 在前文中,所述的链联盟包括4条区块链,以及被授权方所授权的2条区块链,仅是本申请实施例的示例,可以理解的是,链联盟存在M条区块链,当链联盟中的N条区块链被授权方授权后,数据使用方可在链联盟中任意一条区块链上获取授权范围内的业务数据,其中,N是链联盟中共识规则的区块链条数,1≤N≤M,N以及M均为正整数。
[0118] 可以理解的是,本申请实施例的说明书、权利要求书以及附图中的针对区块链的术语“a”、“b”、“A”、“B”等是用于区别不同对象,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的包含。
[0119] 可以理解的是,图1a以及图1b对应的实施例所提供的方法可以由计算机设备执行,计算机设备包括但不限于用户终端或服务器。本申请实施例中的区块链节点10a、区块链节点10b、区块链节点10c、区块链节点10d、区块链节点e以及区块链节点10f可以为计算机设备。上述服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。上述用户终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能电视、智能手表等,但并不局限于此。用户终端以及服务器的数量不做限制,且两者之间可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
[0120] 进一步地,请参见图2,图2是本申请实施例提供的一种基于区块链的数据处理方法的流程示意图,该基于区块链的数据处理方法由验证节点执行,验证节点属于链联盟中的区块链A,链联盟还包括区块链B。如图2所示,该数据处理过程包括如下步骤。
[0121] 步骤S101,获取授权终端发送的数据授权请求;数据授权请求包括与授权方相关联的数据授权凭证。
[0122] 具体的,请一并参见图3a,图3a是本申请实施例提供的一种基于区块链的数据处理的场景示意图。如图3a所示,授权方通过授权终端30b向区块链A中的验证节点30a发送数据授权请求,该数据授权请求携带数据授权凭证,该凭证可以包括与授权方相关的信息、与数据使用方相关的信息以及被存储于链联盟中的业务数据(该业务数据被授权方授权),数据授权凭证的具体数据可以参见图1b所对应的实施例中的描述,此处不再进行赘述。
[0123] 步骤S102,根据数据授权请求对授权方进行授权验证,得到验证结果A。
[0124] 具体的,根据数据授权请求发送授权对象验证请求至授权终端,记录发送授权对象验证请求的发送时间戳;获取授权终端返回的授权对象验证答复,记录获取到授权对象验证答复的获取时间戳;获取针对授权对象验证请求的有效答复时长,根据发送时间戳以及获取时间戳确定授权方的实际答复时长;若实际答复时长大于有效答复时长,则确定验证结果A为非法结果,发送针对数据授权请求的答复无效信息至授权终端;若实际答复时长小于或等于有效答复时长,则检验授权对象验证答复的合法性;若授权对象验证答复为非法答复,则确定验证结果A为非法结果,发送针对数据授权请求的授权失败信息至授权终端;若实际答复时长小于或等于有效答复时长且授权对象验证答复为合法答复,则确定验证结果A为合法结果。
[0125] 请再参见图3a,当区块链A中的验证节点30a获取到授权终端30b发送的授权请求后,获取对象验证方式,可以理解的是,上述的对象验证方式可以包括人脸验证、实时短信验证、指纹验证、密码验证等方式,此处不限定对象验证方式。此外,在本申请实施例中,可以验证节点30a确定对象验证方式,例如人脸验证,然后将针对人脸验证的授权对象验证请求发送至授权终端30b,也可以是验证节点30a将几种验证方式的触发均发送至授权终端30b,让授权终端30b确定验证方式,此处亦不限定确定验证方式的终端(包括授权终端30b以及验证节点30a)。
[0126] 请一并参见图3b,图3b是本申请实施例提供的一种基于区块链的数据处理的场景示意图。如图3b所示,验证节点30a向授权终端30b发送授权对象验证请求,同时,验证节点30a会记录发送授权对象验证请求的发送时间戳。明显地,本申请实施例是以人脸验证为例进行叙述的,授权终端30b获取到授权对象验证请求后,其对应的显示屏可以显示人脸核身提示,例如人脸验证框300a,以及提示语“请将人脸对准人脸验证框,并跟随指示”,以提示授权方正确验证身份。当授权终端30b获取到授权方的人脸后,会向验证节点30a发送授权对象验证答复,如图3b所示,授权终端30b对应的显示屏可以显示提示“验证中”。
[0127] 验证节点30s获取到授权对象验证答复时,会记录获取到授权对象验证答复的获取时间戳。验证节点30a记录发送时间戳以及获取时间戳,可以保证授权对象验证答复的实时性,进而可以提高授权对象验证答复的安全性。请再参见图3a,关于授权对象验证请求,验证节点30a可以设置有效答复时长,假设验证节点30a在下午2点向授权终端30b发送授权对象验证请求,在下午2点01分获取到授权终端30b返回的授权对象验证答复,那么可以确定授权方的实际答复时长为1分钟,若验证节点30a设置的有效答复时长为50秒,那么可以确定授权对象验证答复无效,进而可以确定此次的授权对象验证请求的验证结果A为非法结果。此时,验证节点30a可以发送答复无效信息至授权终端30b,以使授权终端30b再次进行答复等后续操作。若验证节点30a设置的有效答复时长为70秒,那么可以确定答复时长有效,此时,检验授权对象验证答复的合法性,如图3a所示,验证节点30a可以从区块链A中获取已上链的授权方的人脸图像300b,然后将授权对象验证答复中的人脸图像,与人脸图像300b进行对比,若授权对象验证答复中人脸图像所包含的对象与人脸图像300b中的对象(如授权方)相同,则验证节点30a可以确定的授权对象验证答复为合法答复,进而可以确定此次的授权对象验证请求的验证结果A为合法结果。若授权对象验证答复中人脸图像所包含的对象与人脸图像300b中的对象不相同,则验证节点30a可以确定的授权对象验证答复为非法答复,进而可以确定此次的授权对象验证请求的验证结果A为非法结果,此时,验证节点30a发送针对数据授权请求的授权失败信息至授权终端30b。
[0128] 需要说明的是,在本步骤中,虽然是以验证节点30a先核实答复时长再对比人脸图像确定验证结果A,但在实际应用过程中,也可以先核实授权对象验证答复中人脸图像所包含的对象与人脸图像300b中的对象,若两个人脸图像中的对象不一致,则验证节点30a可以确定验证结果A为非法结果;若两个人脸图像中的对象一致,则验证节点30a再核实有效答复时长以及实际答复时长,进而可以确定验证结果A的合法性。
[0129] 步骤S103,若验证结果A为合法结果,则根据区块链A的私钥对数据授权凭证进行签名,得到凭证签名A,将凭证签名A确定为上链签名,对携带上链签名的数据授权凭证进行上链处理。
[0130] 具体的,链联盟还包括区块链C,区块链C为已受理数据授权请求的区块链;若验证结果A为合法结果,则通过跨链网关从区块链C中获取数据授权凭证对应的凭证签名C,其中,凭证签名C为区块链C中的节点在针对授权方的验证结果C为合法结果时,根据区块链C的私钥对数据授权凭证进行签名所得到的;获取数据授权凭证对应的第一哈希值;根据区块链C的公钥对凭证签名C进行解密,得到第二哈希值;对第一哈希值以及第二哈希值进行对比;其中,验签结果包括验签成功结果以及验签失败结果;若第一哈希值与第二哈希值相同,则确定验签结果为验签成功结果;若第一哈希值与第二哈希值不相同,则确定验签结果为验签失败结果;若验签结果为验签失败结果,则发送针对数据授权请求的授权失败信息至授权终端,且通过跨链网关发送验签失败信息至区块链C,以使区块链C检测凭证签名C;若验签结果为验签成功结果,则根据区块链A的私钥对数据授权凭证进行签名,得到凭证签名A,将凭证签名A和凭证签名C确定为上链签名。
[0131] 步骤S104,当通过跨链网关接收到区块链B发送的凭证跨链查询请求时,将携带上链签名的数据授权凭证通过跨链网关发送至区块链B,以使区块链B对上链签名进行验签,若验签通过,则根据数据授权凭证为查询终端提供查询权限;查询权限是指查询终端具备在区块链B中获取授权方所提供的业务数据的权限。
[0132] 具体的,跨链网关包括属于区块链B的轻量节点B以及属于区块链A的轻量节点A;轻量节点A包括区块链B的链标识;当通过轻量节点A接收到区块链B中的轻量节点B发送的凭证跨链查询请求时,获取区块链B的链标识;将区块链B的链标识以及携带上链签名的数据授权凭证传输至轻量节点A,以使轻量节点A根据区块链B的链标识,向区块链B中的轻量节点B发送携带上链签名的数据授权凭证。
[0133] 具体的,步骤S103-步骤S104的具体过程可以参见图1b所对应的实施例中的描述,或者参见下文图4所对应的实施例中的描述,此处不再进行赘述。
[0134] 可选的,通过跨链网关将区块链A的公钥以及区块链A的链标识广播至链联盟,以使链联盟中的剩余区块链对区块链A的公钥以及区块链A的链标识进行上链处理;剩余区块链为链联盟中除了区块链A之外的区块链;通过跨链网关获取剩余区块链的公钥以及剩余区块链的链标识,并对剩余区块链的公钥以及剩余区块链的链标识进行上链处理。
[0135] 本申请实施例所述的链联盟由至少一条区块链联盟生成,请一并参见图3c,图3c是本申请实施例提供的一种基于区块链的数据处理的场景示意图。如图3c所示,链联盟包括四条区块链,分别为区块链100a、区块链100b、区块链100c以及区块链100d,在联盟之初,从每条区块链中确定一个专门用于链联盟内进行数据交互的区块链节点,假设在区块链100a中,将轻量节点1作为区块链100a与链联盟中其他区块链进行数据交互的节点;在区块链100b中,将轻量节点2作为区块链100b与链联盟中其他区块链进行数据交互的节点;在区块链100c中,将轻量节点3作为区块链100c与链联盟中其他区块链进行数据交互的节点;在区块链100d中,将轻量节点4作为区块链100d与链联盟中其他区块链进行数据交互的节点,则根据轻量节点1、轻量节点2、轻量节点3以及轻量节点4组成跨链网关,链联盟内的数据交互均通过该跨链网关,则可以有效的防止篡改伪造。
[0136] 区块链A可以为图3c中的任一区块链,在本申请实施例中,将区块链100a作为区块链A示例叙述。区块链100a通过跨链网关将自身的公钥以及自身的链标识广播至链联盟,以使链联盟中的区块链100b、区块链100c以及区块链100d对区块链100a的公钥以及区块链100a的链标识进行上链处理;同样的,区块链100a通过跨链网关获取区块链100b、区块链
100c以及区块链100d分别对应的公钥以及链标识,并对上述的公钥以及链标识进行上链处理,即前置合约上链。剩余区块链的数据交互以及前置合约上链的具体过程,可以参见区块链100a的描述,此处不再进行赘述。
[0137] 本申请实施例中的验证节点属于链联盟中的区块链A,同时,链联盟还包括区块链B;验证节点可以获取授权终端发送的数据授权请求,其中,数据授权请求包括与授权方相关联的数据授权凭证,需要理解的是,此时数据授权凭证中的授权数据为交易数据或业务数据,且该数据已存储于链联盟中;进一步的,验证节点可以根据数据授权请求对授权方进行授权验证,以得到验证结果A;进一步的,若验证结果A为合法结果,则验证节点可以根据区块链A的私钥对数据授权凭证进行签名,以得到凭证签名A,然后将凭证签名A确定为上链签名,最后对携带上链签名的数据授权凭证进行上链处理;进一步的,当通过跨链网关接收到区块链B发送的凭证跨链查询请求时,验证节点可以将携带上链签名的数据授权凭证通过跨链网关发送至区块链B,以使区块链B可以对上链签名进行验签,若验签通过,则区块链B可以根据数据授权凭证为查询终端提供查询权限;其中,查询权限是指查询终端具备在区块链B中获取授权方所提供的业务数据的权限。上述可知,链联盟中包括至少两条区块链,其中,至少两条区块链包括区块链A以及区块链B。授权方向区块链A中的验证节点发送数据授权请求,验证节点可以根据数据授权请求向授权方进行授权验证,从而在验证结果A为合法结果时,验证节点根据区块链A的私钥对数据授权凭证进行签名得到凭证签名A,以表征授权方在区块链A中通过授权验证。后续,当数据查询方通过区块链B获取与授权方相关联的数据时,虽然区块链B没有数据授权凭证(因为授权方没有在区块链B上进行授权验证),但区块链B可以通过链联盟中的跨链网关向区块链A发送凭证跨链查询请求,以获取区块链A上的携带上链签名(如凭证签名A)的数据授权凭证,当区块链B对上链签名验签通过时,可以根据区块链A所发送的数据授权凭证为数据查询方提供授权方所授权的业务数据。可以理解,采用本申请,可以提高数据授权方在链联盟中的数据授权效率。
[0138] 进一步地,请参见图4,图4是本申请实施例提供的一种基于区块链的数据处理方法的流程示意图,该基于区块链的数据处理方法由查询节点执行,查询节点属于链联盟中的区块链B,链联盟还包括验证区块链。如图4所示,该数据处理过程包括如下步骤。
[0139] 步骤S201,获取查询终端发送的与授权方相关联的数据查询请求。
[0140] 具体的,数据查询请求包括验证区块链的链标识;验证区块链是指链联盟中包含数据授权凭证的合法验证结果的区块链;根据验证区块链的链标识确定链联盟中验证区块链的验证数量;若验证数量小于验证数量阈值,则发送数据查询失败信息至查询终端;若验证数量等于或大于验证数量阈值,则执行通过跨链网关向验证区块链发送针对授权方的凭证跨链查询请求步骤。
[0141] 可选的,通过跨链网关将区块链B的公钥以及区块链B的链标识广播至链联盟,以使链联盟中的剩余区块链对区块链B的公钥以及区块链B的链标识进行上链处理;剩余区块链为链联盟中除了区块链B之外的区块链;通过跨链网关获取剩余区块链的公钥以及剩余区块链的链标识,并对剩余区块链的公钥以及剩余区块链的链标识进行上链处理。
[0142] 请一并参见图5a,图5a是本申请实施例提供的一种基于区块链的数据处理的场景示意图。如图5a所示,查询方通过查询终端50b向所属链联盟500a中的区块链B的查询节点50a发送数据查询请求,该数据查询请求携带与授权方相关的信息,并携带验证区块链的链标识。上述链联盟500a可以包括区块链A、…区块链B以及区块链C,假设区块链A以及区块链C为链联盟500a中的验证区块链。
[0143] 查询节点50a根据区块链A的链标识以及区块链C的链标识确定链联盟500a中验证区块链的验证数量,即2个。查询节点50a将验证数量与系统所设置的验证数量阈值进行对比,若验证数量小于验证数量阈值(假设验证数量阈值为3),则查询节点50a发送数据查询失败信息至查询终端50b。若验证数量等于或大于验证数量阈值,则查询节点50b执行步骤S202-步骤S204。
[0144] 步骤S202,通过跨链网关向验证区块链发送针对授权方的凭证跨链查询请求,以使验证区块链根据凭证跨链查询请求确定携带上链签名的数据授权凭证;上链签名为验证区块链在确定授权方为合法授权方后,根据验证区块链的私钥对数据授权凭证进行签名所得。
[0145] 具体的,本申请实施例仅以区块链A为例进行叙述,当验证区块链为链联盟500a中的其他区块链时,可以参见下文的描述。请一并参见图5b,图5b是本申请实施例提供的一种基于区块链的数据处理的场景示意图。图5b中所示的验证节点50c可以等同于图2所对应的实施例的验证节点30a。如图5a所示,验证节点50c属于区块链A,当验证节点50c通过跨链网关获取到查询节点50a发送的针对授权方的凭证跨链查询请求时,将携带上链签名的数据授权凭证通过跨链网关传输至查询节点50a。
[0146] 步骤S203,通过跨链网关获取验证区块链发送的携带上链签名的数据授权凭证。
[0147] 步骤S204,根据验证区块链的公钥对上链签名进行验签,若验签通过,则根据数据授权凭证为查询终端提供查询权限;查询权限是指查询终端具备在区块链B中获取授权方所提供的业务数据的权限。
[0148] 具体的,验证区块链包括区块链A以及区块链C,上链签名包括凭证签名A和凭证签名C;凭证签名A是基于区块链A的私钥以及数据授权凭证所生成的,凭证签名C是基于区块链C的私钥以及数据授权凭证所生成的;根据区块链A的公钥对凭证签名A进行验签,得到验签结果A,根据区块链C的公钥对凭证签名C进行验签,得到验签结果C;若验签结果A以及验签结果C中存在验签结果为验签失败结果,则确定验签失败,发送数据查询失败信息至查询终端;若验签结果A以及验签结果C均为验签成功结果,则确定验签通过,根据区块链B的私钥对数据授权凭证进行签名,得到凭证签名B;对凭证签名B以及数据授权凭证进行上链处理,当上链成功后,根据数据授权凭证为查询终端提供查询权限。
[0149] 可选的,获取数据授权凭证对应的第一哈希值;根据验证区块链的公钥对上链签名进行解密,得到第二哈希值;对第一哈希值以及第二哈希值进行对比,若第一哈希值与第二哈希值相同,则确定验签通过;若第一哈希值与第二哈希值不相同,则确定验签失败,发送数据查询失败信息至查询终端。
[0150] 请再参见图5b,上述的上链签名包括凭证签名A和凭证签名C,区块链B已存储链联盟500a中其他区块链的公钥,因此查询节点50a可以获取到验证区块链的公钥,结合图5a以及图5b,可知验证区块链为区块链A以及区块链C。则查询节点50a根据区块链A的公钥对凭证签名A进行验签,根据区块链C的公钥对凭证签名C进行验签,得到验签结果500b,如图5b所示,验签结果500b包括验签结果A以及验签结果C。
[0151] 若验签结果500b中存在验签结果为验签失败结果,则确定验签失败,此时,查询节点50a发送数据查询失败信息至查询终端50b。若验签结果500b中的验签结果均为验签成功结果,则查询节点50a确定验签通过,获取区块链B的私钥,利用区块链B的私钥对数据授权凭证进行签名,得到凭证签名B;对凭证签名B以及数据授权凭证进行上链处理,当上链成功后,根据数据授权凭证为查询终端50b提供查询权限。
[0152] 可以理解的是,图2以及图4所对应的实施例中,所述的验证节点以及查询节点可以为区块链A以及验证区块链中的任一区块链节点。
[0153] 本申请实施例中的验证节点属于链联盟中的区块链A,同时,链联盟还包括区块链B;验证节点可以获取授权终端发送的数据授权请求,其中,数据授权请求包括与授权方相关联的数据授权凭证,需要理解的是,此时数据授权凭证中的授权数据为交易数据或业务数据,且该数据已存储于链联盟中;进一步的,验证节点可以根据数据授权请求对授权方进行授权验证,以得到验证结果A;进一步的,若验证结果A为合法结果,则验证节点可以根据区块链A的私钥对数据授权凭证进行签名,以得到凭证签名A,然后将凭证签名A确定为上链签名,最后对携带上链签名的数据授权凭证进行上链处理;进一步的,当通过跨链网关接收到区块链B发送的凭证跨链查询请求时,验证节点可以将携带上链签名的数据授权凭证通过跨链网关发送至区块链B,以使区块链B可以对上链签名进行验签,若验签通过,则区块链B可以根据数据授权凭证为查询终端提供查询权限;其中,查询权限是指查询终端具备在区块链B中获取授权方所提供的业务数据的权限。上述可知,链联盟中包括至少两条区块链,其中,至少两条区块链包括区块链A以及区块链B。授权方向区块链A中的验证节点发送数据授权请求,验证节点可以根据数据授权请求向授权方进行授权验证,从而在验证结果A为合法结果时,验证节点根据区块链A的私钥对数据授权凭证进行签名得到凭证签名A,以表征授权方在区块链A中通过授权验证。后续,当数据查询方通过区块链B获取与授权方相关联的数据时,虽然区块链B没有数据授权凭证(因为授权方没有在区块链B上进行授权验证),但区块链B可以通过链联盟中的跨链网关向区块链A发送凭证跨链查询请求,以获取区块链A上的携带上链签名(如凭证签名A)的数据授权凭证,当区块链B对上链签名验签通过时,可以根据区块链A所发送的数据授权凭证为数据查询方提供授权方所授权的业务数据。可以理解,采用本申请,可以提高数据授权方在链联盟中的数据授权效率。
[0154] 进一步地,请参见图6,图6是本申请实施例提供的一种基于区块链的数据处理装置的结构示意图。上述基于区块链的数据处理装置可以运行于验证节点,验证节点属于链联盟中的区块链A,链联盟还包括区块链B;上述基于区块链的数据处理装置可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如该基于区块链的数据处理装置为一个应用软件;该装置可以用于执行本申请实施例提供的方法中的相应步骤。如图6所示,该基于区块链的数据处理装置1可以包括:获取请求模块11、验证授权模块12、第一处理模块13以及发送凭证模块14。
[0155] 获取请求模块11,用于获取授权终端发送的数据授权请求;数据授权请求包括与授权方相关联的数据授权凭证;
[0156] 验证授权模块12,用于根据数据授权请求对授权方进行授权验证,得到验证结果A;
[0157] 第一处理模块13,用于若验证结果A为合法结果,则根据区块链A的私钥对数据授权凭证进行签名,得到凭证签名A,将凭证签名A确定为上链签名,对携带上链签名的数据授权凭证进行上链处理;
[0158] 发送凭证模块14,用于当通过跨链网关接收到区块链B发送的凭证跨链查询请求时,将携带上链签名的数据授权凭证通过跨链网关发送至区块链B,以使区块链B对上链签名进行验签,若验签通过,则根据数据授权凭证为查询终端提供查询权限;查询权限是指查询终端具备在区块链B中获取授权方所提供的业务数据的权限。
[0159] 其中,获取请求模块11、验证授权模块12、第一处理模块13以及发送凭证模块14的具体功能实现方式可以参见上述图2对应实施例中的步骤S101-步骤S104,这里不再进行赘述。
[0160] 再请参见图6,链联盟还包括区块链C,区块链C为已受理数据授权请求的区块链;
[0161] 第一处理模块13可以包括:第一获取单元131、签名验签单元132以及第一确定单元133。
[0162] 第一获取单元131,用于若验证结果A为合法结果,则通过跨链网关从区块链C中获取数据授权凭证对应的凭证签名C;凭证签名C为区块链C中的节点在针对授权方的验证结果C为合法结果时,根据区块链C的私钥对数据授权凭证进行签名所得到的;
[0163] 签名验签单元132,用于根据区块链C的公钥对凭证签名C进行验签,得到验签结果;
[0164] 第一确定单元133,用于根据验签结果以及区块链A的私钥对数据授权凭证进行签名,得到凭证签名A,将凭证签名A和凭证签名C确定为上链签名。
[0165] 其中,第一获取单元131、签名验签单元132以及第一确定单元133的具体功能实现方式可以参见上述图2对应实施例中的步骤S103,这里不再进行赘述。
[0166] 再请参见图6,验签结果包括验签成功结果以及验签失败结果;
[0167] 第一确定单元133可以包括:发送信息子单元1331以及签名凭证子单元1332。
[0168] 发送信息子单元1331,用于若验签结果为验签失败结果,则发送针对数据授权请求的授权失败信息至授权终端,且通过跨链网关发送验签失败信息至区块链C,以使区块链C检测凭证签名C;
[0169] 签名凭证子单元1332,用于若验签结果为验签成功结果,则根据区块链A的私钥对数据授权凭证进行签名,得到凭证签名A。
[0170] 其中,发送信息子单元1331以及签名凭证子单元1332的具体功能实现方式可以参见上述图2对应实施例中的步骤S103,这里不再进行赘述。
[0171] 再请参见图6,签名验签单元132可以包括:获取哈希子单元1321、解密签名子单元1322、对比哈希子单元1323以及第一确定子单元1324。
[0172] 获取哈希子单元1321,用于获取数据授权凭证对应的第一哈希值;
[0173] 解密签名子单元1322,用于根据区块链C的公钥对凭证签名C进行解密,得到第二哈希值;
[0174] 对比哈希子单元1323,用于对第一哈希值以及第二哈希值进行对比;
[0175] 第一确定子单元1324,用于若第一哈希值与第二哈希值相同,则确定验签结果为验签成功结果;
[0176] 第一确定子单元1324,还用于若第一哈希值与第二哈希值不相同,则确定验签结果为验签失败结果。
[0177] 其中,获取哈希子单元1321、解密签名子单元1322、对比哈希子单元1323以及第一确定子单元1324的具体功能实现方式可以参见上述图2对应实施例中的步骤S103,这里不再进行赘述。
[0178] 再请参见图6,跨链网关包括属于区块链B的轻量节点B以及属于区块链A的轻量节点A;轻量节点A包括区块链B的链标识;
[0179] 发送凭证模块14可以包括:第二获取单元141以及传输凭证单元142。
[0180] 第二获取单元141,用于当通过轻量节点A接收到区块链B中的轻量节点B发送的凭证跨链查询请求时,获取区块链B的链标识;
[0181] 传输凭证单元142,用于将区块链B的链标识以及携带上链签名的数据授权凭证传输至轻量节点A,以使轻量节点A根据区块链B的链标识,向区块链B中的轻量节点B发送携带上链签名的数据授权凭证。
[0182] 其中,第一第二获取单元141以及传输凭证单元142的具体功能实现方式可以参见上述图2对应实施例中的步骤S104,这里不再进行赘述。
[0183] 再请参见图6,基于区块链的数据处理装置1还可以包括:广播信息模块15以及第二处理模块16。
[0184] 广播信息模块15,用于通过跨链网关将区块链A的公钥以及区块链A的链标识广播至链联盟,以使链联盟中的剩余区块链对区块链A的公钥以及区块链A的链标识进行上链处理;剩余区块链为链联盟中除了区块链A之外的区块链;
[0185] 第二处理模块16,用于通过跨链网关获取剩余区块链的公钥以及剩余区块链的链标识,并对剩余区块链的公钥以及剩余区块链的链标识进行上链处理。
[0186] 其中,广播信息模块15以及第二处理模块16的具体功能实现方式可以参见上述图2对应实施例中的步骤S104,这里不再进行赘述。
[0187] 再请参见图6,验证授权模块12可以包括:第一记录单元121、第二记录单元122以及第二确定单元123。
[0188] 第一记录单元121,用于根据数据授权请求发送授权对象验证请求至授权终端,记录发送授权对象验证请求的发送时间戳;
[0189] 第二记录单元122,用于获取授权终端返回的授权对象验证答复,记录获取到授权对象验证答复的获取时间戳;
[0190] 第二确定单元123,用于根据授权对象验证答复、发送时间戳以及获取时间戳确定验证结果A。
[0191] 其中,第一记录单元121、第二记录单元122以及第二确定单元123的具体功能实现方式可以参见上述图2对应实施例中的步骤S102,这里不再进行赘述。
[0192] 再请参见图6,第二确定单元123可以包括:第二确定子单元1231、第三确定子单元1232、检验答复子单元1233以及第四确定子单元1234。
[0193] 第二确定子单元1231,用于获取针对授权对象验证请求的有效答复时长,根据发送时间戳以及获取时间戳确定授权方的实际答复时长;
[0194] 第三确定子单元1232,用于若实际答复时长大于有效答复时长,则确定验证结果A为非法结果,发送针对数据授权请求的答复无效信息至授权终端;
[0195] 检验答复子单元1233,用于若实际答复时长小于或等于有效答复时长,则检验授权对象验证答复的合法性;
[0196] 第四确定子单元1234,用于若授权对象验证答复为非法答复,则确定验证结果A为非法结果,发送针对数据授权请求的授权失败信息至授权终端;
[0197] 第四确定子单元1234,还用于若实际答复时长小于或等于有效答复时长且授权对象验证答复为合法答复,则确定验证结果A为合法结果。
[0198] 其中,第二确定子单元1231、第三确定子单元1232、检验答复子单元1233以及第四确定子单元1234的具体功能实现方式可以参见上述图2对应实施例中的步骤S102,这里不再进行赘述。
[0199] 本申请实施例中的验证节点属于链联盟中的区块链A,同时,链联盟还包括区块链B;验证节点可以获取授权终端发送的数据授权请求,其中,数据授权请求包括与授权方相关联的数据授权凭证,需要理解的是,此时数据授权凭证中的授权数据为交易数据或业务数据,且该数据已存储于链联盟中;进一步的,验证节点可以根据数据授权请求对授权方进行授权验证,以得到验证结果A;进一步的,若验证结果A为合法结果,则验证节点可以根据区块链A的私钥对数据授权凭证进行签名,以得到凭证签名A,然后将凭证签名A确定为上链签名,最后对携带上链签名的数据授权凭证进行上链处理;进一步的,当通过跨链网关接收到区块链B发送的凭证跨链查询请求时,验证节点可以将携带上链签名的数据授权凭证通过跨链网关发送至区块链B,以使区块链B可以对上链签名进行验签,若验签通过,则区块链B可以根据数据授权凭证为查询终端提供查询权限;其中,查询权限是指查询终端具备在区块链B中获取授权方所提供的业务数据的权限。上述可知,链联盟中包括至少两条区块链,其中,至少两条区块链包括区块链A以及区块链B。授权方向区块链A中的验证节点发送数据授权请求,验证节点可以根据数据授权请求向授权方进行授权验证,从而在验证结果A为合法结果时,验证节点根据区块链A的私钥对数据授权凭证进行签名得到凭证签名A,以表征授权方在区块链A中通过授权验证。后续,当数据查询方通过区块链B获取与授权方相关联的数据时,虽然区块链B没有数据授权凭证(因为授权方没有在区块链B上进行授权验证),但区块链B可以通过链联盟中的跨链网关向区块链A发送凭证跨链查询请求,以获取区块链A上的携带上链签名(如凭证签名A)的数据授权凭证,当区块链B对上链签名验签通过时,可以根据区块链A所发送的数据授权凭证为数据查询方提供授权方所授权的业务数据。可以理解,采用本申请,可以提高数据授权方在链联盟中的数据授权效率。
[0200] 进一步地,请参见图7,图7是本申请实施例提供的一种基于区块链的数据处理装置的结构示意图。上述基于区块链的数据处理装置可以运行于查询节点,查询节点属于链联盟中的区块链B,链联盟还包括验证区块链;上述基于区块链的数据处理装置可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如该基于区块链的数据处理装置为一个应用软件;该装置可以用于执行本申请实施例提供的方法中的相应步骤。如图7所示,该基于区块链的数据处理装置2可以包括:第一获取模块21、第一发送模块22、第二获取模块23以及提供权限模块24。
[0201] 第一获取模块21,用于获取查询终端发送的与授权方相关联的数据查询请求;
[0202] 第一发送模块22,用于通过跨链网关向验证区块链发送针对授权方的凭证跨链查询请求,以使验证区块链根据凭证跨链查询请求确定携带上链签名的数据授权凭证;上链签名为验证区块链在确定授权方为合法授权方后,根据验证区块链的私钥对数据授权凭证进行签名所得;
[0203] 第二获取模块23,用于通过跨链网关获取验证区块链发送的携带上链签名的数据授权凭证;
[0204] 提供权限模块24,用于根据验证区块链的公钥对上链签名进行验签,若验签通过,则根据数据授权凭证为查询终端提供查询权限;查询权限是指查询终端具备在区块链B中获取授权方所提供的业务数据的权限。
[0205] 其中,第一获取模块21、第一发送模块22、第二获取模块23以及提供权限模块24的具体功能实现方式可以参见上述图4对应实施例中的步骤S201-步骤S204,这里不再进行赘述。
[0206] 再请参见图7,数据查询请求包括验证区块链的链标识;验证区块链是指链联盟中包含数据授权凭证的合法验证结果的区块链;
[0207] 基于区块链的数据处理装置2还可以包括:确定数量模块25以及第二发送模块26。
[0208] 确定数量模块25,用于根据验证区块链的链标识确定链联盟中验证区块链的验证数量;
[0209] 第二发送模块26,用于若验证数量小于验证数量阈值,则发送数据查询失败信息至查询终端;
[0210] 第二发送模块26,还用于若验证数量等于或大于验证数量阈值,则执行通过跨链网关向验证区块链发送针对授权方的凭证跨链查询请求步骤。
[0211] 其中,确定数量模块25以及第二发送模块26的具体功能实现方式可以参见上述图4对应实施例中的步骤S201,这里不再进行赘述。
[0212] 再请参见图7,基于区块链的数据处理装置2还可以包括:广播信息模块27以及第三获取模块28。
[0213] 广播信息模块27,用于通过跨链网关将区块链B的公钥以及区块链B的链标识广播至链联盟,以使链联盟中的剩余区块链对区块链B的公钥以及区块链B的链标识进行上链处理;剩余区块链为链联盟中除了区块链B之外的区块链;
[0214] 第三获取模块28,用于通过跨链网关获取剩余区块链的公钥以及剩余区块链的链标识,并对剩余区块链的公钥以及剩余区块链的链标识进行上链处理。
[0215] 其中,广播信息模块27以及第三获取模块28的具体功能实现方式可以参见上述图4对应实施例中的步骤S201,这里不再进行赘述。
[0216] 再请参见图7,验证区块链包括区块链A以及区块链C,上链签名包括凭证签名A和凭证签名C;凭证签名A是基于区块链A的私钥以及数据授权凭证所生成的,凭证签名C是基于区块链C的私钥以及数据授权凭证所生成的;
[0217] 提供权限模块24可以包括:签名验签单元241、第一确定单元242以及提供权限单元243。
[0218] 签名验签单元241,用于根据区块链A的公钥对凭证签名A进行验签,得到验签结果A,根据区块链C的公钥对凭证签名C进行验签,得到验签结果C;
[0219] 第一确定单元242,用于若验签结果A以及验签结果C中存在验签结果为验签失败结果,则确定验签失败,发送数据查询失败信息至查询终端;
[0220] 第一确定单元242,还用于若验签结果A以及验签结果C均为验签成功结果,则确定验签通过,根据区块链B的私钥对数据授权凭证进行签名,得到凭证签名B;
[0221] 提供权限单元243,用于对凭证签名B以及数据授权凭证进行上链处理,当上链成功后,根据数据授权凭证为查询终端提供查询权限。
[0222] 其中,签名验签单元241、第一确定单元242以及提供权限单元243的具体功能实现方式可以参见上述图4对应实施例中的步骤S204,这里不再进行赘述。
[0223] 再请参见图7,提供权限模块24可以包括:获取哈希单元244、解密签名单元245以及第二确定单元246。
[0224] 获取哈希单元244,用于获取数据授权凭证对应的第一哈希值;
[0225] 解密签名单元245,用于根据验证区块链的公钥对上链签名进行解密,得到第二哈希值;
[0226] 第二确定单元246,用于对第一哈希值以及第二哈希值进行对比,若第一哈希值与第二哈希值相同,则确定验签通过;
[0227] 第二确定单元246,还用于若第一哈希值与第二哈希值不相同,则确定验签失败,发送数据查询失败信息至查询终端。
[0228] 其中,获取哈希单元244、解密签名单元245以及第二确定单元246的具体功能实现方式可以参见上述图4对应实施例中的步骤S204,这里不再进行赘述。
[0229] 本申请实施例中的验证节点属于链联盟中的区块链A,同时,链联盟还包括区块链B;验证节点可以获取授权终端发送的数据授权请求,其中,数据授权请求包括与授权方相关联的数据授权凭证,需要理解的是,此时数据授权凭证中的授权数据为交易数据或业务数据,且该数据已存储于链联盟中;进一步的,验证节点可以根据数据授权请求对授权方进行授权验证,以得到验证结果A;进一步的,若验证结果A为合法结果,则验证节点可以根据区块链A的私钥对数据授权凭证进行签名,以得到凭证签名A,然后将凭证签名A确定为上链签名,最后对携带上链签名的数据授权凭证进行上链处理;进一步的,当通过跨链网关接收到区块链B发送的凭证跨链查询请求时,验证节点可以将携带上链签名的数据授权凭证通过跨链网关发送至区块链B,以使区块链B可以对上链签名进行验签,若验签通过,则区块链B可以根据数据授权凭证为查询终端提供查询权限;其中,查询权限是指查询终端具备在区块链B中获取授权方所提供的业务数据的权限。上述可知,链联盟中包括至少两条区块链,其中,至少两条区块链包括区块链A以及区块链B。授权方向区块链A中的验证节点发送数据授权请求,验证节点可以根据数据授权请求向授权方进行授权验证,从而在验证结果A为合法结果时,验证节点根据区块链A的私钥对数据授权凭证进行签名得到凭证签名A,以表征授权方在区块链A中通过授权验证。后续,当数据查询方通过区块链B获取与授权方相关联的数据时,虽然区块链B没有数据授权凭证(因为授权方没有在区块链B上进行授权验证),但区块链B可以通过链联盟中的跨链网关向区块链A发送凭证跨链查询请求,以获取区块链A上的携带上链签名(如凭证签名A)的数据授权凭证,当区块链B对上链签名验签通过时,可以根据区块链A所发送的数据授权凭证为数据查询方提供授权方所授权的业务数据。可以理解,采用本申请,可以提高数据授权方在链联盟中的数据授权效率。
[0230] 进一步地,请参见图8,图8是本申请实施例提供的一种计算机设备的结构示意图。如图8所示,上述计算机设备1000可以包括:处理器1001,网络接口1004和存储器1005,此外,上述计算机设备1000还可以包括:用户接口1003,和至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,用户接口1003可以包括显示屏(Display)、键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是非易失性的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图8所示,作为一种计算机可读存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
[0231] 在图8所示的计算机设备1000中,网络接口1004可提供网络通讯功能;而用户接口1003主要用于为用户提供输入的接口;而处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现:
[0232] 获取授权终端发送的数据授权请求;数据授权请求包括与授权方相关联的数据授权凭证;
[0233] 根据数据授权请求对授权方进行授权验证,得到验证结果A;
[0234] 若验证结果A为合法结果,则根据区块链A的私钥对数据授权凭证进行签名,得到凭证签名A,将凭证签名A确定为上链签名,对携带上链签名的数据授权凭证进行上链处理;
[0235] 当通过跨链网关接收到区块链B发送的凭证跨链查询请求时,将携带上链签名的数据授权凭证通过跨链网关发送至区块链B,以使区块链B对上链签名进行验签,若验签通过,则根据数据授权凭证为查询终端提供查询权限;查询权限是指查询终端具备在区块链B中获取授权方所提供的业务数据的权限。
[0236] 在一个实施例中,链联盟还包括区块链C,区块链C为已受理数据授权请求的区块链;
[0237] 上述处理器1001在执行若验证结果A为合法结果,则根据区块链A的私钥对数据授权凭证进行签名,得到凭证签名A,将凭证签名A确定为上链签名时,具体执行以下步骤:
[0238] 若验证结果A为合法结果,则通过跨链网关从区块链C中获取数据授权凭证对应的凭证签名C;凭证签名C为区块链C中的节点在针对授权方的验证结果C为合法结果时,根据区块链C的私钥对数据授权凭证进行签名所得到的;
[0239] 根据区块链C的公钥对凭证签名C进行验签,得到验签结果;
[0240] 根据验签结果以及区块链A的私钥对数据授权凭证进行签名,得到凭证签名A,将凭证签名A和凭证签名C确定为上链签名。
[0241] 在一个实施例中,验签结果包括验签成功结果以及验签失败结果;
[0242] 上述处理器1001在执行根据验签结果以及区块链A的私钥对数据授权凭证进行签名,得到凭证签名A时,具体执行以下步骤:
[0243] 若验签结果为验签失败结果,则发送针对数据授权请求的授权失败信息至授权终端,且通过跨链网关发送验签失败信息至区块链C,以使区块链C检测凭证签名C;
[0244] 若验签结果为验签成功结果,则根据区块链A的私钥对数据授权凭证进行签名,得到凭证签名A。
[0245] 在一个实施例中,上述处理器1001在执行根据区块链C的公钥对凭证签名C进行验签,得到验签结果时,具体执行以下步骤:
[0246] 获取数据授权凭证对应的第一哈希值;
[0247] 根据区块链C的公钥对凭证签名C进行解密,得到第二哈希值;
[0248] 对第一哈希值以及第二哈希值进行对比;
[0249] 若第一哈希值与第二哈希值相同,则确定验签结果为验签成功结果;
[0250] 若第一哈希值与第二哈希值不相同,则确定验签结果为验签失败结果。
[0251] 在一个实施例中,跨链网关包括属于区块链B的轻量节点B以及属于区块链A的轻量节点A;轻量节点A包括区块链B的链标识;
[0252] 上述处理器1001在执行当通过跨链网关接收到区块链B发送的凭证跨链查询请求时,将携带上链签名的数据授权凭证通过跨链网关发送至区块链B时,具体执行以下步骤:
[0253] 当通过轻量节点A接收到区块链B中的轻量节点B发送的凭证跨链查询请求时,获取区块链B的链标识;
[0254] 将区块链B的链标识以及携带上链签名的数据授权凭证传输至轻量节点A,以使轻量节点A根据区块链B的链标识,向区块链B中的轻量节点B发送携带上链签名的数据授权凭证。
[0255] 在一个实施例中,上述处理器1001还具体执行以下步骤:
[0256] 通过跨链网关将区块链A的公钥以及区块链A的链标识广播至链联盟,以使链联盟中的剩余区块链对区块链A的公钥以及区块链A的链标识进行上链处理;剩余区块链为链联盟中除了区块链A之外的区块链;
[0257] 通过跨链网关获取剩余区块链的公钥以及剩余区块链的链标识,并对剩余区块链的公钥以及剩余区块链的链标识进行上链处理。
[0258] 在一个实施例中,上述处理器1001在执行根据数据授权请求对授权方进行授权验证,得到验证结果A时,具体执行以下步骤:
[0259] 根据数据授权请求发送授权对象验证请求至授权终端,记录发送授权对象验证请求的发送时间戳;
[0260] 获取授权终端返回的授权对象验证答复,记录获取到授权对象验证答复的获取时间戳;
[0261] 根据授权对象验证答复、发送时间戳以及获取时间戳确定验证结果A。
[0262] 在一个实施例中,上述处理器1001在根据授权对象验证答复、发送时间戳以及获取时间戳确定验证结果A时,具体执行以下步骤:
[0263] 获取针对授权对象验证请求的有效答复时长,根据发送时间戳以及获取时间戳确定授权方的实际答复时长;
[0264] 若实际答复时长大于有效答复时长,则确定验证结果A为非法结果,发送针对数据授权请求的答复无效信息至授权终端;
[0265] 若实际答复时长小于或等于有效答复时长,则检验授权对象验证答复的合法性;
[0266] 若授权对象验证答复为非法答复,则确定验证结果A为非法结果,发送针对数据授权请求的授权失败信息至授权终端;
[0267] 若实际答复时长小于或等于有效答复时长且授权对象验证答复为合法答复,则确定验证结果A为合法结果。
[0268] 本申请实施例中的验证节点属于链联盟中的区块链A,同时,链联盟还包括区块链B;验证节点可以获取授权终端发送的数据授权请求,其中,数据授权请求包括与授权方相关联的数据授权凭证,需要理解的是,此时数据授权凭证中的授权数据为交易数据或业务数据,且该数据已存储于链联盟中;进一步的,验证节点可以根据数据授权请求对授权方进行授权验证,以得到验证结果A;进一步的,若验证结果A为合法结果,则验证节点可以根据区块链A的私钥对数据授权凭证进行签名,以得到凭证签名A,然后将凭证签名A确定为上链签名,最后对携带上链签名的数据授权凭证进行上链处理;进一步的,当通过跨链网关接收到区块链B发送的凭证跨链查询请求时,验证节点可以将携带上链签名的数据授权凭证通过跨链网关发送至区块链B,以使区块链B可以对上链签名进行验签,若验签通过,则区块链B可以根据数据授权凭证为查询终端提供查询权限;其中,查询权限是指查询终端具备在区块链B中获取授权方所提供的业务数据的权限。上述可知,链联盟中包括至少两条区块链,其中,至少两条区块链包括区块链A以及区块链B。授权方向区块链A中的验证节点发送数据授权请求,验证节点可以根据数据授权请求向授权方进行授权验证,从而在验证结果A为合法结果时,验证节点根据区块链A的私钥对数据授权凭证进行签名得到凭证签名A,以表征授权方在区块链A中通过授权验证。后续,当数据查询方通过区块链B获取与授权方相关联的数据时,虽然区块链B没有数据授权凭证(因为授权方没有在区块链B上进行授权验证),但区块链B可以通过链联盟中的跨链网关向区块链A发送凭证跨链查询请求,以获取区块链A上的携带上链签名(如凭证签名A)的数据授权凭证,当区块链B对上链签名验签通过时,可以根据区块链A所发送的数据授权凭证为数据查询方提供授权方所授权的业务数据。可以理解,采用本申请,可以提高数据授权方在链联盟中的数据授权效率。
[0269] 进一步地,请参见图9,图9是本申请实施例提供的一种计算机设备的结构示意图。如图9所示,上述计算机设备2000可以包括:处理器2001,网络接口2004和存储器2005,此外,上述计算机设备2000还可以包括:用户接口2003,和至少一个通信总线2002。其中,通信总线2002用于实现这些组件之间的连接通信。其中,用户接口2003可以包括显示屏(Display)、键盘(Keyboard),可选用户接口2003还可以包括标准的有线接口、无线接口。网络接口2004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器2005可以是高速RAM存储器,也可以是非易失性的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器2005可选的还可以是至少一个位于远离前述处理器2001的存储装置。如图9所示,作为一种计算机可读存储介质的存储器2005中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
[0270] 在图9所示的计算机设备2000中,网络接口2004可提供网络通讯功能;而用户接口2003主要用于为用户提供输入的接口;而处理器2001可以用于调用存储器2005中存储的设备控制应用程序,以实现:
[0271] 获取查询终端发送的与授权方相关联的数据查询请求;
[0272] 通过跨链网关向验证区块链发送针对授权方的凭证跨链查询请求,以使验证区块链根据凭证跨链查询请求确定携带上链签名的数据授权凭证;上链签名为验证区块链在确定授权方为合法授权方后,根据验证区块链的私钥对数据授权凭证进行签名所得;
[0273] 通过跨链网关获取验证区块链发送的携带上链签名的数据授权凭证;
[0274] 根据验证区块链的公钥对上链签名进行验签,若验签通过,则根据数据授权凭证为查询终端提供查询权限;查询权限是指查询终端具备在区块链B中获取授权方所提供的业务数据的权限。
[0275] 在一个实施例中,数据查询请求包括验证区块链的链标识;验证区块链是指链联盟中包含数据授权凭证的合法验证结果的区块链;
[0276] 上述处理器2001还具体执行以下步骤:
[0277] 根据验证区块链的链标识确定链联盟中验证区块链的验证数量;
[0278] 若验证数量小于验证数量阈值,则发送数据查询失败信息至查询终端;
[0279] 若验证数量等于或大于验证数量阈值,则执行通过跨链网关向验证区块链发送针对授权方的凭证跨链查询请求步骤。
[0280] 在一个实施例中,上述处理器2001还具体执行以下步骤:
[0281] 通过跨链网关将区块链B的公钥以及区块链B的链标识广播至链联盟,以使链联盟中的剩余区块链对区块链B的公钥以及区块链B的链标识进行上链处理;剩余区块链为链联盟中除了区块链B之外的区块链;
[0282] 通过跨链网关获取剩余区块链的公钥以及剩余区块链的链标识,并对剩余区块链的公钥以及剩余区块链的链标识进行上链处理。
[0283] 在一个实施例中,验证区块链包括区块链A以及区块链C,上链签名包括凭证签名A和凭证签名C;凭证签名A是基于区块链A的私钥以及数据授权凭证所生成的,凭证签名C是基于区块链C的私钥以及数据授权凭证所生成的;
[0284] 上述处理器2001在执行根据验证区块链的公钥对上链签名进行验签,若验签通过,则根据数据授权凭证为查询终端提供查询权限时,具体执行以下步骤:
[0285] 根据区块链A的公钥对凭证签名A进行验签,得到验签结果A,根据区块链C的公钥对凭证签名C进行验签,得到验签结果C;
[0286] 若验签结果A以及验签结果C中存在验签结果为验签失败结果,则确定验签失败,发送数据查询失败信息至查询终端;
[0287] 若验签结果A以及验签结果C均为验签成功结果,则确定验签通过,根据区块链B的私钥对数据授权凭证进行签名,得到凭证签名B;
[0288] 对凭证签名B以及数据授权凭证进行上链处理,当上链成功后,根据数据授权凭证为查询终端提供查询权限。
[0289] 在一个实施例中,上述处理器2001在执行根据验证区块链的公钥对上链签名进行验签时,具体执行以下步骤:
[0290] 获取数据授权凭证对应的第一哈希值;
[0291] 根据验证区块链的公钥对上链签名进行解密,得到第二哈希值;
[0292] 对第一哈希值以及第二哈希值进行对比,若第一哈希值与第二哈希值相同,则确定验签通过;
[0293] 若第一哈希值与第二哈希值不相同,则确定验签失败,发送数据查询失败信息至查询终端。
[0294] 本申请实施例中的验证节点属于链联盟中的区块链A,同时,链联盟还包括区块链B;验证节点可以获取授权终端发送的数据授权请求,其中,数据授权请求包括与授权方相关联的数据授权凭证,需要理解的是,此时数据授权凭证中的授权数据为交易数据或业务数据,且该数据已存储于链联盟中;进一步的,验证节点可以根据数据授权请求对授权方进行授权验证,以得到验证结果A;进一步的,若验证结果A为合法结果,则验证节点可以根据区块链A的私钥对数据授权凭证进行签名,以得到凭证签名A,然后将凭证签名A确定为上链签名,最后对携带上链签名的数据授权凭证进行上链处理;进一步的,当通过跨链网关接收到区块链B发送的凭证跨链查询请求时,验证节点可以将携带上链签名的数据授权凭证通过跨链网关发送至区块链B,以使区块链B可以对上链签名进行验签,若验签通过,则区块链B可以根据数据授权凭证为查询终端提供查询权限;其中,查询权限是指查询终端具备在区块链B中获取授权方所提供的业务数据的权限。上述可知,链联盟中包括至少两条区块链,其中,至少两条区块链包括区块链A以及区块链B。授权方向区块链A中的验证节点发送数据授权请求,验证节点可以根据数据授权请求向授权方进行授权验证,从而在验证结果A为合法结果时,验证节点根据区块链A的私钥对数据授权凭证进行签名得到凭证签名A,以表征授权方在区块链A中通过授权验证。后续,当数据查询方通过区块链B获取与授权方相关联的数据时,虽然区块链B没有数据授权凭证(因为授权方没有在区块链B上进行授权验证),但区块链B可以通过链联盟中的跨链网关向区块链A发送凭证跨链查询请求,以获取区块链A上的携带上链签名(如凭证签名A)的数据授权凭证,当区块链B对上链签名验签通过时,可以根据区块链A所发送的数据授权凭证为数据查询方提供授权方所授权的业务数据。可以理解,采用本申请,可以提高数据授权方在链联盟中的数据授权效率。
[0295] 本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序包括程序指令,该程序指令被处理器执行时实现图2和图4中各个步骤所提供的基于区块链的数据处理方法,具体可参见上述图2和图4各个步骤所提供的实现方式,在此不再赘述。
[0296] 上述计算机可读存储介质可以是前述任一实施例提供的基于区块链的数据处理装置或者上述计算机设备的内部存储单元,例如计算机设备的硬盘或内存。该计算机可读存储介质也可以是该计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(smart media card,SMC),安全数字(secure digital, SD)卡,闪存卡(flash card)等。进一步地,该计算机可读存储介质还可以既包括该计算机设备的内部存储单元也包括外部存储设备。该计算机可读存储介质用于存储该计算机程序以及该计算机设备所需的其他程序和数据。该计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
[0297] 本申请实施例的说明书和权利要求书及附图中的术语“第一”、“第二”等是用于区别不同对象,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、装置、产品或设备没有限定于已列出的步骤或模块,而是可选地还包括没有列出的步骤或模块,或可选地还包括对于这些过程、方法、装置、产品或设备固有的其他步骤单元。
[0298] 本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
[0299] 本申请实施例提供的方法及相关装置是参照本申请实施例提供的方法流程图和/或结构示意图来描述的,具体可由计算机程序指令实现方法流程图和/或结构示意图的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。这些计算机程序指令可提供到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或结构示意图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或结构示意图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或结构示意一个方框或多个方框中指定的功能的步骤。
[0300] 以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。