掌桥专利:专业的专利平台
掌桥专利
首页

一种交易数据处理方法、装置、设备以及介质

文献发布时间:2023-06-19 12:11:54


一种交易数据处理方法、装置、设备以及介质

技术领域

本申请涉及区块链技术领域,尤其涉及一种交易数据处理方法、装置、设备以及介质。

背景技术

处于区块链网络中的区块链节点可以将执行交易业务所生成的交易数据广播至核心共识网络,以使该核心共识网络中的共识节点将该交易数据进行上链。比如,区块链节点(例如,节点A)可以将执行交易业务所生成的交易数据广播至共识节点(例如,节点B),以使节点B将包括与该节点A相关联的交易数据的区块写入区块链。

可以理解的是,当区块链网络中的节点A需要请求进行数据清分(例如,区块同步、交易查询)时,可以向该区块链网络中的参与共识的共识节点(例如,前述节点B)发送数据清分请求。此时,节点B可以在该区块链网络的区块链中确定一个或多个待处理的区块(例如,这里以待处理的区块的数量为多个为例),进而会无差别地在每个待处理的区块中分别清分与前述节点A相关联的交易数据,由于需要对这些待处理的区块中的每个区块进行清分,当这些待处理的区块中存在与该节点A无关的区块时,将会影响这些与该节点A无关的区块中的大量交易数据的隐私安全性。此外,由于节点B会无差别地在这些与节点A无关的区块中进行交易数据的清分,以至于会增加清分到与该节点A相关的交易数据的查找时长,进而会降低数据清分的效率。

发明内容

本申请实施例提供一种交易数据处理方法、装置、设备以及介质,可以实现交易数据的隐私隔离,且提高数据清分的效率。

本申请实施例一方面提供了一种交易数据处理方法,方法由核心共识网络中的共识节点执行,包括:

接收业务网络中的第一业务节点通过代理节点转发的数据清分请求;代理节点用于对核心共识网络和业务网络进行网络隔离;数据清分请求中携带区块高度M和区块高度N;区块高度M为第一业务节点所存储的区块头链上的最大区块高度;区块高度N为共识节点所维护的区块链上的最大区块高度;N为正整数;M为小于N的正整数;

基于数据清分请求,在区块链上确定由区块高度M至区块高度N的(N-M)个区块,在(N-M)个区块的区块高度递减方向上获取待处理区块,对待处理区块进行区块识别,得到区块识别结果;

若区块识别结果指示待处理区块为与第一业务节点相关联的第一类独占区块,则获取第一类独占区块中的区块锚定信息,通过区块锚定信息在(N-M)个区块中定位到与第一业务节点相关联的区块,将定位到的区块确定为锚定定位区块;锚定定位区块的区块高度小于待处理区块的区块高度,且锚定定位区块与待处理区块之间的区块为基于区块锚定信息所跳过的与第一业务节点无关的区块;

基于锚定定位区块的区块类型,确定用于返回给第一业务节点的第一清分数据,将第一清分数据通过代理节点返回给第一业务节点。

本申请实施例一方面提供了一种交易数据处理装置,包括:

请求接收模块,用于接收业务网络中的第一业务节点通过代理节点转发的数据清分请求;代理节点用于对核心共识网络和业务网络进行网络隔离;数据清分请求中携带区块高度M和区块高度N;区块高度M为第一业务节点所存储的区块头链上的最大区块高度;区块高度N为共识节点所维护的区块链上的最大区块高度;N为正整数;M为小于N的正整数;

区块获取模块,用于基于数据清分请求,在区块链上确定由区块高度M至区块高度N的(N-M)个区块,在(N-M)个区块的区块高度递减方向上获取待处理区块,对待处理区块进行区块识别,得到区块识别结果;

区块定位模块,用于若区块识别结果指示待处理区块为与第一业务节点相关联的第一类独占区块,则获取第一类独占区块中的区块锚定信息,通过区块锚定信息在(N-M)个区块中定位到与第一业务节点相关联的区块,将定位到的区块确定为锚定定位区块;锚定定位区块的区块高度小于待处理区块的区块高度,且锚定定位区块与待处理区块之间的区块为基于区块锚定信息所跳过的与第一业务节点无关的区块;

第一返回模块,用于基于锚定定位区块的区块类型,确定用于返回给第一业务节点的第一清分数据,将第一清分数据通过代理节点返回给第一业务节点。

其中,区块获取模块包括:

区块确定单元,用于基于数据清分请求,在区块链上确定由区块高度M至区块高度N的(N-M)个区块,将确定的(N-M)个区块的区块识别状态标记为待识别状态;

区块识别单元,用于在(N-M)个区块中将标识有待识别状态且具有最大区块高度的区块作为待处理区块,对待处理区块中的区块标识信息进行识别;

第一识别单元,用于在识别到区块标识信息为第一类区块标识信息时,将待处理区块的区块类型作为第一区块类型,将具有第一区块类型的待处理区块的区块识别状态由待识别状态标记为已识别状态,将具有第一区块类型且标识有已识别状态的待处理区块作为待归类的独占区块,获取待归类的独占区块中的节点标识信息;

第一添加单元,用于若获取到的节点标识信息为与第一业务节点相关联的第一类节点标识,则将待归类的独占区块确定为与第一业务节点相关联的第一类独占区块,将第一类独占区块作为第一独占识别结果,且将第一独占识别结果添加至待处理区块对应的区块识别结果;第一独占识别结果用于在待处理区块为第一类独占区块时,执行获取第一类独占区块中的区块锚定信息的步骤。

其中,业务网络包括第二业务节点;

区块获取模块还包括:

第二添加单元,用于若获取到的节点标识信息为与第二业务节点相关联的第二类节点标识,则将待归类的独占区块确定为与第一业务节点无关的第二类独占区块,将第二类独占区块作为第二独占识别结果,且将第二独占识别结果添加至待处理区块对应的区块识别结果。

其中,装置还包括:

数据隐藏模块,用于若区块识别结果包含第二独占识别结果,则基于第二独占识别结果所指示的第二类独占区块,对第二类独占区块进行数据隐藏,得到第二类独占区块的区块哈希和第二类独占区块的父区块哈希;

第二返回模块,将第二类独占区块的区块哈希和第二类独占区块的父区块哈希作为第一业务节点的第二清分数据,将第二清分数据通过代理节点返回给第一业务节点。

其中,区块获取模块还包括:

第二识别单元,用于在识别到区块标识信息为第二类区块标识信息时,将待处理区块的区块类型作为第二区块类型,将具有第二区块类型的待处理区块的区块识别状态由待识别状态标记为已识别状态,将具有第二区块类型且标识有已识别状态的待处理区块作为待归类的非独占区块,在待归类的非独占区块中筛选与第一业务节点相关联的交易数据;

第三添加单元,用于若在待归类的非独占区块中筛选到与第一业务节点相关联的交易数据,则将待归类的非独占区块确定为与第一业务节点相关联的第一类非独占区块,将第一类非独占区块作为第一非独占识别结果,且将第一非独占识别结果添加至待处理区块对应的区块识别结果。

其中,装置还包括:

交易确定模块,用于若区块识别结果包含第一非独占识别结果,则基于第一非独占识别结果所指示的第一类非独占区块,将第一类非独占区块中与第一业务节点相关联的交易数据作为第一交易数据;

第三返回模块,用于获取第一类非独占区块的区块头和第一交易数据对应的第一默克尔证明信息,将第一交易数据、第一默克尔证明信息和第一类非独占区块的区块头作为第一业务节点的第三清分数据,将第三清分数据通过代理节点返回给第一业务节点。

其中,区块获取模块还包括:

第四添加单元,用于若在待归类的非独占区块中未筛选到与第一业务节点相关联的交易数据,则将待归类的非独占区块确定为与第一业务节点无关的第二类非独占区块,将第二类非独占区块作为第二非独占识别结果,且将第二非独占识别结果添加至待处理区块对应的区块识别结果。

其中,装置还包括:

第四返回模块,用于若区块识别结果包含第二非独占识别结果,则基于第二非独占识别结果所指示的第二类非独占区块,将第二类非独占区块的区块头作为第一业务节点的第四清分数据,将第四清分数据通过代理节点返回给第一业务节点。

其中,第一返回模块包括:

第一比较单元,用于若锚定定位区块的区块类型与第一类独占区块的区块类型相同,则将锚定定位区块作为第一业务节点的第一子清分数据;

第二比较单元,用于若锚定定位区块的区块类型与第一类独占区块的区块类型不同,则获取锚定定位区块中与第一业务节点相关联的关键业务数据信息,将获取到的关键业务数据信息作为第一业务节点的第二子清分数据;

数据返回单元,用于将第一子清分数据或者第二子清分数据作为第一业务节点的第一清分数据,将第一清分数据通过代理节点返回给第一业务节点。

其中,装置还包括:

第一确定模块,用于将第一类独占区块作为第一业务节点的第五清分数据;

第二确定模块,用于在(N-M)个区块中,将锚定定位区块与第一类独占区块之间的区块作为与第一业务节点无关的业务过滤区块,基于业务过滤区块的区块类型,确定用于返回给第一业务节点的第六清分数据;

数据返回模块,用于将第五清分数据和第六清分数据通过代理节点返回给第一业务节点。

本申请实施例一方面提供了一种交易数据处理方法,方法由业务网络中的第一业务节点执行,包括:

获取区块高度M和区块高度N,基于区块高度M和区块高度N生成数据清分请求;区块高度M为第一业务节点所存储的区块头链上的最大区块高度;区块高度N为核心共识网络中的共识节点所维护的区块链上的最大区块高度;N为正整数;M为小于N的正整数;

通过代理节点向共识节点发送数据清分请求;代理节点用于对核心共识网络和业务网络进行网络隔离;数据清分请求用于指示共识节点在区块链的由区块高度M至区块高度N的(N-M)个区块的区块高度递减方向上获取待处理区块,且对待处理区块进行区块识别,得到区块识别结果;

接收共识节点通过代理节点返回的第一清分数据;第一清分数据是由共识节点基于锚定定位区块的区块类型所确定的;锚定定位区块是由共识节点通过区块锚定信息在(N-M)个区块中定位到的;区块锚定信息是共识节点确定区块识别结果指示待处理区块为与第一业务节点相关联的第一类独占区块后获取到的;锚定定位区块的区块高度小于待处理区块的区块高度,且锚定定位区块与待处理区块之间的区块为基于区块锚定信息所跳过的与第一业务节点无关的区块。

本申请实施例一方面提供了一种交易数据处理装置,包括:

请求生成模块,用于获取区块高度M和区块高度N,基于区块高度M和区块高度N生成数据清分请求;区块高度M为第一业务节点所存储的区块头链上的最大区块高度;区块高度N为核心共识网络中的共识节点所维护的区块链上的最大区块高度;N为正整数;M为小于N的正整数;

请求发送模块,用于通过代理节点向共识节点发送数据清分请求;代理节点用于对核心共识网络和业务网络进行网络隔离;数据清分请求用于指示共识节点在区块链的由区块高度M至区块高度N的(N-M)个区块的区块高度递减方向上获取待处理区块,且对待处理区块进行区块识别,得到区块识别结果;

数据接收模块,用于接收共识节点通过代理节点返回的第一清分数据;第一清分数据是由共识节点基于锚定定位区块的区块类型所确定的;锚定定位区块是由共识节点通过区块锚定信息在(N-M)个区块中定位到的;区块锚定信息是共识节点确定区块识别结果指示待处理区块为与第一业务节点相关联的第一类独占区块后获取到的;锚定定位区块的区块高度小于待处理区块的区块高度,且锚定定位区块与待处理区块之间的区块为基于区块锚定信息所跳过的与第一业务节点无关的区块。

本申请实施例一方面提供了一种计算机设备,包括:处理器和存储器;

处理器与存储器相连,其中,存储器用于存储计算机程序,计算机程序被处理器执行时,使得该计算机设备执行本申请实施例提供的方法。

本申请实施例一方面提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,该计算机程序适于由处理器加载并执行,以使得具有该处理器的计算机设备执行本申请实施例提供的方法。

本申请实施例一方面提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例提供的方法。

在本申请实施例中,核心共识网络中的共识节点在接收到业务网络中的第一业务节点通过用于对核心共识网络和业务网络进行网络隔离的代理节点转发的数据清分请求时,可以基于数据清分请求中携带区块高度M和区块高度N,在区块链上确定由区块高度M至区块高度N的(N-M)个区块,进而在(N-M)个区块的区块高度递减方向上获取待处理区块,对待处理区块进行区块识别,得到区块识别结果。其中,这里的区块高度M可以为第一业务节点所存储的区块头链上的最大区块高度,这里的区块高度N可以为共识节点所维护的区块链上的最大区块高度。其中,这里的N可以为正整数,这里的M可以为小于N的正整数。进一步地,若区块识别结果指示待处理区块为与第一业务节点相关联的第一类独占区块,则共识节点可以获取第一类独占区块中的区块锚定信息,通过区块锚定信息在(N-M)个区块中定位到与第一业务节点相关联的区块,将定位到的区块确定为锚定定位区块。其中,锚定定位区块的区块高度小于待处理区块的区块高度,且锚定定位区块与待处理区块之间的区块为基于区块锚定信息所跳过的与第一业务节点无关的区块。进一步地,共识节点可以基于锚定定位区块的区块类型,确定用于返回给第一业务节点的第一清分数据,将第一清分数据通过代理节点返回给第一业务节点。由此可见,本申请实施例可以在“业务网络—核心共识网络”这一分层区块链结构下,对(N-M)个区块中依次获取到的待处理区块进行区块识别,以在确定获取到的待处理区块为第一类独占区块时,通过该第一类独占区块中的区块锚定信息,在(N-M)个区块中快速定位到与该第一类独占区块相关联的锚定定位区块,基于此,本申请实施例在为第一业务节点返回数据清分请求对应的清分数据(例如,第一清分数据)时,可以通过区块锚定信息快速跳过与第一业务节点无关的区块,同时清分到与第一业务节点相关联的锚定定位区块,进而可以提高数据清分的效率。此外,对于这些跳过的与第一业务节点无关的区块,这些区块内的交易数据不会作为清分数据返回至业务网络中的第一业务节点,因而可以实现这些跳过的区块内的交易数据的隐私隔离。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本申请实施例提供的一种区块链网络分层结构的示意图;

图2是本申请实施例提供的一种进行数据交互的场景示意图;

图3是本申请实施例提供的一种交易数据处理方法的流程示意图;

图4是本申请实施例提供的一种发送数据清分请求的场景示意图;

图5是本申请实施例提供的一种确定清分数据的流程示意图;

图6是本申请实施例提供的一种进行数据隐藏的场景示意图;

图7是本申请实施例提供的一种交易数据处理方法的流程示意图;

图8是本申请实施例提供的一种接收数据清分请求的场景示意图;

图9a是本申请实施例提供的一种定位独占区块的场景示意图;

图9b是本申请实施例提供的一种定位普通区块的场景示意图;

图10是本申请实施例提供的一种区块链电子票据场景下的系统架构图;

图11是本申请实施例提供的一种交易数据处理装置的结构示意图;

图12是本申请实施例提供的一种交易数据处理装置的结构示意图;

图13是本申请实施例提供的一种计算机设备的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

具体的,请参见图1,图1是本申请实施例提供的一种区块链网络分层结构的示意图。图1所示的区块链网络分层结构可以应用于区块链系统,该区块链系统可以包括代理节点(例如,代理节点100b)、第一区块链系统以及第二区块链系统,以构成图1所示的区块链网络2000。其中,第一区块链系统和第二区块链系统均可以包括一个或者多个节点,这里将不对第一区块链系统和第二区块链系统中节点的数量进行限制。如图1所示,第一区块链系统具体可以包括节点110a、节点110b、节点110c、…、节点110n;第二区块链系统具体可以包括节点120a、节点120b、节点120c、…、节点120n。

其中,第一区块链系统对应的区块链网络可以称之为业务网络(即见证网络)100a,处于业务网络100a中的节点可以称之为业务节点,该业务节点主要用于执行交易业务,以得到与该交易业务相关联的交易数据。可以理解的是,这里的业务节点不需要参与记账共识,但能够通过身份认证的方式从核心共识网络中获得区块头数据和部分授权可见的区块数据。其中,为了保证第一区块链系统内的信息互通,第一区块链系统中的每个节点之间可以存在信息连接,节点之间可以通过上述信息连接进行信息传输。

其中,第二区块链系统对应的区块链网络可以为称之为核心共识网络(即共识网络)100c,处于核心共识网络100c中的节点可以称之为共识节点(即记账节点),这里的共识节点可以运行有区块链共识协议。其中,为了保证第二区块链系统内的信息互通,第二区块链系统中的每个节点之间可以存在信息连接,节点之间可以通过上述信息连接进行信息传输。

可以理解的是,上述第一区块链系统和第二区块链系统内的信息连接不限定连接方式,可以通过有线通信方式进行直接或间接地连接,也可以通过无线通信方式进行直接或间接地连接,还可以通过其他连接方式,本申请在此不做限制。

其中,图1所示的代理节点100b可以用于对该业务网络100a和核心共识网络100c进行网络隔离,该代理节点100b可以将点对点(Peer To Peer,简称P2P)网络进行网络分层,以形成“业务网络—核心共识网络”这样的分层结构(即双层链结构),进而能够提高区块链上数据的保密性和安全性。

其中,可以理解的是,本申请实施例可以将代理节点100b、业务网络100a中的业务节点以及核心共识网络100c中的共识节点统称为区块链网络2000中的区块链节点。可以理解的是,该区块链节点可以为接入该区块链网络2000中的服务器,也可以为接入该区块链网络2000中的用户终端,这里对区块链节点的具体形式不做限定。其中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。其中,用户终端可以是手机、平板电脑、笔记本电脑、掌上电脑、智能音响、移动互联网设备(MID,mobileinternet device)、POS(Point Of Sales,销售点)机、可穿戴设备(例如智能手表、智能手环等)等。

可以理解的是,图1所示的区块链网络2000中的一些节点存储了完整的区块链数据库,这样的包含所有交易数据的节点可以称为全量节点(Full Node,例如,图1所示的共识节点);另外一些节点存储了部分的区块链数据库,一般只存储区块头和与自身节点相关联的交易数据,而不存储完整交易数据,它们会通过“简化交易验证(Simplified PaymentVerification,简称SPV)”的方式完成交易校验,这样的节点可以称为轻量节点(Lightweight Node)或SPV节点(例如,图1所示的业务节点)。

可以理解的是,图1所示的业务网络100a和核心共识网络100c可以处于不同的网络环境,通常来说,业务网络100a可以处于公有网络中,核心共识网络100c可以处于私有网络中。因此,业务节点部署在处于公网(即公有网络)的业务网络100a中,共识节点部署在处于私网(即私有网络)的核心共识网络100c中,二者可以通过路由边界进行交互。

为便于理解,本申请实施例可以在图1所示的业务网络110a中的多个节点中选择一个节点作为用于进行数据清分的第一业务节点,该第一业务节点具有向代理节点100b发送数据清分请求的功能,例如,本申请实施例可以将图1所示的节点110a作为第一业务节点。可以理解的是,本申请实施例还可以在图1所示的业务网络110a中的多个节点中,将除第一业务节点之外的节点作为第二业务节点,例如,本申请实施例可以将图1所示的节点110b作为第二业务节点。为便于理解,本申请实施例可以在图1所示的核心共识网络100c中的多个节点中选择一个节点作为用于向第一业务节点进行数据清分的共识节点,即该共识节点可以向上述第一业务节点返回数据清分请求对应的清分数据,例如,本申请实施例可以将图1所示的节点120a作为用于向第一业务节点进行数据清分的共识节点。

其中,可以理解的是,本申请实施例可以将第一业务节点的本地缓存称之为第一节点缓存,且将第一节点缓存中的本地交易数据称之为第一本地交易数据,这里的第一本地交易数据可以理解为第一业务节点已经广播至核心共识网络的待确认上链的交易数据。可选的,可以理解的是,本申请实施例还可以无需在第一业务节点中创建本地缓存,这样,第一业务节点可以无需将上述第一业务节点已经广播至核心共识网络的待确认上链的交易数据存储在本地缓存中。

可以理解的是,上述分层结构所适用的业务场景具体可以包括:区块同步场景、交易查询场景、缓存清除场景等,这里将不对具体的业务场景进行一一列举。

比如,在区块同步场景下,第一业务节点可以在需要进行区块同步时,向共识节点发送数据清分请求,因此,第一业务节点在接收到共识节点返回的清分数据时,可以基于接收到的清分数据的清分类型确定待同步数据。比如,若清分数据的清分类型包括与该第一业务节点相关的独占区块、与该第一业务节点相关的普通区块以及与该第一业务节点无关的普通区块,则这里的待同步数据可以包括与该第一业务节点相关的独占区块的区块头、与该第一业务节点相关的普通区块的区块头以及与该第一业务节点无关的普通区块的区块头;又比如,若清分数据的清分类型包括与该第一业务节点无关的独占区块,则这里的待同步数据可以包括与该第一业务节点无关的独占区块所对应的隐藏后的区块头(这里的隐藏后的区块头主要是指与该第一业务节点无关的独占区块中的区块哈希和父区块哈希)。此时,第一业务节点可以将清分数据中的这些待同步数据同步至第一业务节点的区块头链。其中,这里的数据清分请求可以理解为区块同步请求。可以理解的是,第一业务节点在接收到清分数据中与第一业务节点相关联的交易数据时,可以确认这些交易数据已经添加至区块链。

可选的,应当理解,在第一业务节点中具有第一节点缓存时,第一业务节点可以在确定该第一节点缓存中所存储的前述交易数据(即第一本地交易数据)已经添加至区块链时,进一步在该第一节点缓存中删除当前已上链的第一本地交易数据,即该第一业务节点可以在第一节点缓存中删除清分数据中的与第一业务节点相关联的交易数据。比如,在缓存清除场景下,当该第一节点缓存的缓存容量不足时,第一业务节点可以向共识节点发送数据清分请求,以在接收到共识节点返回的清分数据时,基于接收到的清分数据,在第一节点缓存中删除清分数据中的与第一业务节点相关联的交易数据。

又比如,在交易查询场景下,第一业务节点可以在需要查询交易数据时,向共识节点发送数据清分请求。比如,在警方向某公司查询指定的交易数据时,若该公司不具有需要向警方出示的交易数据,则该公司可以作为第一业务节点向具有该需要出示的交易数据的共识节点发送数据清分请求,以查询到该公司所缺少的交易数据,这里的该公司所缺少的交易数据可以属于上述共识节点返回的清分数据。其中,这里的数据清分请求可以理解为数据查询请求。

为便于理解,进一步地,请参见图2,图2是本申请实施例提供的一种进行数据交互的场景示意图。如图2所示的业务节点20a(这里的业务节点20a可以为第一业务节点)可以为上述图1所对应实施例的业务网络100a中的任意一个节点,如图2所示的代理节点20b可以为上述图1所对应实施例中的代理节点100b,如图2所示的共识节点20c可以为上述图1所对应实施例的核心共识网络100c中的任意一个节点。为便于理解,本申请实施例以上述图1所示的节点110a作为该业务节点20a、以上述图1所示的节点120a作为该共识节点20c为例,以阐述图2所示的业务节点20a、代理节点20b和共识节点20c之间进行数据交互的具体过程。

应当理解,业务节点20a可以执行交易业务,以根据交易业务的交易执行结果得到与业务节点20a相关联的交易数据,进而可以将该交易数据发送至代理节点20b,以使代理节点20b将该交易数据发送至核心共识网络中进行广播。其中,这里的交易业务可以为资产转移业务,本申请实施例不对这里的交易业务进行限定。其中,这里的交易数据的数量可以为一个或多个,本申请实施例不对这里的交易数据的数量进行限定。可以理解的是,核心共识网络中的共识节点(例如,共识节点20c)在接收到与业务节点20a相关联的交易数据时,可以将与业务节点20a相关联的交易数据添加至本地交易池中,进而在后续步骤中对本地交易池中的部分交易数据(这里的部分交易数据可以包括上述与业务节点20a相关联的一个或多个交易数据)进行打包处理,以生成待验证区块,进而可以在核心共识网络中的共识节点对该待验证区块达成共识时,将该待验证区块作为目标区块,以将该目标区块写入共识节点20c所维护的区块链。

如图2所示的业务节点20a在接收到核心共识网络中的共识节点20c广播的基于上述目标区块的上链通知之后,可以向共识节点20c发送数据清分请求,以向共识节点20c确定与业务节点20a相关联的交易数据是否已经写入共识节点20c所维护的区块链上。其中,目标区块在区块链上的区块高度可以为区块高度N,业务节点20a的区块头链上的最大区块高度可以为区块高度M,这里N可以为大于M的正整数,这里的N可以为正整数。其中,目标区块的数量可以为一个或多个,即业务节点20a可以在接收到基于一个目标区块的上链通知之后向共识节点20c发送数据清分请求,还可以在接收到基于多个目标区块的上链通知之后向共识节点20c发送数据清分请求,本申请对此不做限制。进一步地,业务节点20a可以基于确定的区块高度M和区块高度N生成数据清分请求,进而可以将数据清分请求发送至代理节点20b,以使代理节点20b将该数据清分请求转发至核心共识网络中的共识节点20c。

如图2所示,共识节点20c可以基于数据清分请求中所携带的区块高度N和区块高度M,在本地所维护的区块链200a上确定(N-M)个区块。其中,这里的区块链200a中区块的数量为N个,这里的N个区块可以包括区块1、区块2、…、区块M、区块(M+1)、…、区块N;这里的(N-M)个区块可以包括区块(M+1)、区块(M+2)、…、区块(N-1)、区块N。进一步地,共识节点20c可以在(N-M)个区块中获取待处理区块(例如,待处理区块200b),这里的待处理区块200b可以为区块N,因此,共识节点20c在对区块N进行区块识别之后,可以在确定区块N为第一类独占区块(即与业务节点20a相关联的独占区块,这里的与业务节点20a相关联的独占区块中的交易数据为与业务节点20a相关联的交易数据)时,获取该区块N中的区块锚定信息,通过该区块锚定信息定位到与该第一类独占区块相关联的锚定定位区块(例如,锚定定位区块200c),这里的锚定定位区块200c可以为区块(M+2),以基于该锚定定位区块200c的区块类型,确定锚定定位区块200c对应的清分数据,例如,锚定定位区块200c的清分数据可以为第一清分数据。

如图2所示,共识节点20c在确定锚定定位区块200c对应的第一清分数据时,可以将该第一清分数据返回给代理节点20b,以使代理节点20b将该第一清分数据转发至业务节点20a。可选的,可以理解的是,共识节点20c也可以基于待处理区块200b的区块类型(即第一类独占区块的区块类型),确定待处理区块200b对应的清分数据(例如,第五清分数据),以通过代理节点20b将待处理区块200b对应的清分数据转发至业务节点20a。可选的,可以理解的是,共识节点20c还可以基于(N-M)个区块中除锚定定位区块200c和待处理区块200b之外的区块(即区块(M+1)、区块(M+3)(未在图上示出)、…、区块(N-1))的区块类型,确定这些区块对应的清分数据(例如,第六清分数据),以通过代理节点20b将这些清分数据转发至业务节点20a。

应当理解,在“业务网络—核心共识网络”这一分层区块链结构下,业务网络中的业务节点20a在请求进行数据清分时,可以通过代理节点20b向核心共识网络中的共识节点20c发送数据清分请求。这样,共识节点20c可以在区块链中确定待进行数据清分的(N-M)个区块,对(N-M)个区块进行区块识别,得到该(N-M)个区块的区块类型,并基于这(N-M)个区块的区块类型确定用于返回给业务节点20a的清分数据,进而通过代理节点20b向业务节点20a返回这些清分数据。其中,可以理解的是,这里的(N-M)个区块包括第一类独占区块(例如,区块N),通过第一类独占区块中的区块锚定信息可以快速定位到与该第一类独占区块相关联的锚定定位区块(例如,区块(M+2)),以快速获取到锚定定位区块对应的第一清分数据,因此,通过区块锚定信息可以有效减少共识节点清分到与第一业务节点(即业务节点20a)相关联的交易数据的查找时长,进而提高了数据清分的效率。此外,通过跳过第一类独占区块和锚定定位区块之间的区块(例如,区块(N-1)),可以无需将区块(N-1)内的交易数据返回给第一业务节点,进而可以实现区块(N-1)内的交易数据的隐私隔离。同理,对于第一类独占区块中的与第一业务节点相关联的交易数据,这些交易数据不会作为清分数据返回至业务网络中除第一业务节点之外的业务节点(例如,第二业务节点),因而可以实现第一类独占区块内的交易数据的隐私隔离。

其中,业务节点20a、代理节点20b和共识节点20c进行数据交互的具体实现方式,可以参见下述图3-图10所对应实施例中第一业务节点、代理节点和共识节点进行数据交互的描述。

进一步地,请参见图3,图3是本申请实施例提供的一种交易数据处理方法的流程示意图。如图3所示,该方法可以由核心共识网络中的共识节点执行,该共识节点可以为接入至核心共识网络中的服务器,也可以为接入至该核心共识网络中的用户终端,这里对共识节点的具体形式不做限定。该共识节点可以为上述图1所示的核心共识网络100c中的任意一个节点,例如,节点120a。其中,该交易数据处理方法至少可以包括以下步骤S101-步骤S104:

步骤S101,接收业务网络中的第一业务节点通过代理节点转发的数据清分请求;

其中,代理节点用于对核心共识网络和业务网络进行网络隔离;数据清分请求中可以携带区块高度M和区块高度N,这里的区块高度M为第一业务节点所存储的区块头链上的最大区块高度,这里的区块高度N为共识节点所维护的区块链上的最大区块高度。其中,这里的N可以为正整数,这里的M可以为小于N的正整数。

为便于理解,请参见图4,图4是本申请实施例提供的一种发送数据清分请求的场景示意图。如图4所示的业务节点40a可以为发送数据清分请求的第一业务节点,该业务节点40a可以为上述图1所示的业务网络100a中的任意一个节点,例如,节点110a;如图4所示的共识节点40c可以为接收数据清分请求的共识节点,该共识节点40c可以为上述图1所示的核心共识网络100c中的任意一个节点,例如,节点120a;如图4所示的代理节点40b可以用于对业务网络和核心共识网络进行网络隔离,该代理节点40b可以为上述图1所示的代理节点100b。

如图4所示的业务节点40a可以为轻量节点,该业务节点40a中可以存储有区块头链4a,该区块头链4a中具体可以包括:区块头1、区块头2、…、区块头M,这的M可以为正整数。如图4所示的共识节点40c可以为全量节点,该共识节点40c中可以存储有区块链4b,该区块链4b中具体可以包括:区块1、区块2、…、区块M、区块(M+1)、…、区块N,这里的N可以为大于M的正整数。其中,每个区块均可以包括区块头和区块体,例如,区块1可以包括区块头1和区块体1、…、区块M可以包括区块头M和区块体M、…、区块N可以包括区块头N和区块体N。

可以理解的是,业务节点40a在进行数据清分时,可以从本地所存储的区块头链4a上获取具有最大区块高度的区块头所对应的区块高度(即具有最大区块生成时间戳的区块头所对应的区块高度),即区块头M对应的区块高度,例如,区块高度M。进一步地,业务节点40a可以获取区块链系统中的共识节点(例如,共识节点40c)所维护的区块链4b上具有最大区块高度的区块所对应的区块高度(即具有最大区块生成时间戳的区块所对应的区块高度),即区块N对应的区块高度,例如,区块高度N。进一步地,业务节点40a可以基于上述获取到的区块高度M和区块高度N生成数据清分请求,进而将数据清分请求发送至代理节点40b,以使代理节点40b将数据清分请求转发至共识节点40c。

可以理解的是,共识节点40c在接收到代理节点40b转发的数据清分请求时,可以从该数据清分请求中获取到区块高度M和区块高度N,进而基于该区块高度M和区块高度N执行下述步骤S102,以在区块链4b上确定由区块高度M至区块高度N的(N-M)个区块,这里的(N-M)个区块可以为图4所示的区块(M+1)、…、区块N。

可选的,业务节点40a还可以基于获取到的区块高度M生成数据清分请求,进而将包含区块高度M的数清分请求发送至代理节点40b。这样,共识节点40c在接收到代理节点40b转发的数据清分请求时,可以在该共识节点40c所存储的区块链4b上获取区块N对应的区块高度N,进而基于该区块高度N和数据清分请求中获取到的区块高度M,在区块链4b上确定由区块高度M至区块高度N的(N-M)个区块。

步骤S102,基于数据清分请求,在区块链上确定由区块高度M至区块高度N的(N-M)个区块,在(N-M)个区块的区块高度递减方向上获取待处理区块,对待处理区块进行区块识别,得到区块识别结果;

具体的,共识节点可以基于数据清分请求,在区块链上确定由区块高度M至区块高度N的(N-M)个区块,将确定的(N-M)个区块的区块识别状态标记为待识别状态。进一步地,共识节点可以在(N-M)个区块中将标识有待识别状态且具有最大区块高度的区块作为待处理区块,对待处理区块中的区块标识信息进行识别。进一步地,共识节点可以在识别到区块标识信息为第一类区块标识信息时,将待处理区块的区块类型作为第一区块类型,将具有第一区块类型的待处理区块的区块识别状态由待识别状态标记为已识别状态,将具有第一区块类型且标识有已识别状态的待处理区块作为待归类的独占区块,获取待归类的独占区块中的节点标识信息。进一步地,若获取到的节点标识信息为与第一业务节点相关联的第一类节点标识,则共识节点可以将待归类的独占区块确定为与第一业务节点相关联的第一类独占区块,将第一类独占区块作为第一独占识别结果,且将第一独占识别结果添加至待处理区块对应的区块识别结果。其中,第一独占识别结果用于在待处理区块为第一类独占区块时,执行获取第一类独占区块中的区块锚定信息的步骤。

可以理解的是,由区块高度M至区块高度N的(N-M)个区块,可以为具有区块高度(M+1)、区块高度(M+2)、…、区块高度N的区块。例如,在M等于5、N等于10时,由区块高度5至区块高度10的5个区块,可以为具有区块高度6、区块高度7、区块高度8、区块高度9和区块高度10的区块。

可以理解的是,共识节点在(N-M)个区块中获取到的第一个待处理区块可以为具有区块高度N的区块(例如,区块N),在对该区块N进行区块识别之后,可以将该区块N的区块识别状态更新为已识别状态。进一步地,共识节点可以在(N-M)个区块中获取第二个待处理区块,该获取到的第二个待处理区块可以为具有区块高度(N-1)的区块(例如,区块(N-1)),在对该区块(N-1)进行区块识别之后,可以将该区块(N-1)的区块识别状态更新为已识别状态。以此类推,直到共识节点在(N-M)个区块中获取最后一个待处理区块,该获取到的最后一个待处理区块可以为具有区块高度(M+1)的区块(例如,区块(M+1))或者区块高度小于区块高度(M-1)的区块。

应当理解,区块标识信息可以存储在待处理区块的区块头中,还可以存储在待处理区块的区块体中,本申请实施例不对区块标识信息在待处理区块中的存储位置进行限定。同理,应当理解,节点标识信息可以存储在待归类的独占区块的区块头中,还可以存储在待归类的独占区块的区块体中,本申请实施例不对节点标识信息在待归类的独占区块中的存储位置进行限定。

可选的,区块标识信息和节点标识信息可以为同一标识信息,共识节点可以基于区块标识信息对待处理区块进行划分。例如,在区块标识信息为标识G1(例如,标识G1可以用于标识第一业务节点的身份)时,共识节点可以确定该标识G1为第一类标识信息,进而确定该标识G1为与第一业务节点相关联的第一类节点标识,即共识节点既可以确定标识G1为第一类标识信息,也可以确定该标识G1为第一类节点标识。

应当理解,业务网络包括第二业务节点。其中,第二业务节点可以为业务网络中除第一业务节点之外的任意一个业务节点。可选的,可以理解的是,若获取到的节点标识信息为与第二业务节点相关联的第二类节点标识,则共识节点可以将待归类的独占区块确定为与第一业务节点无关的第二类独占区块,将第二类独占区块作为第二独占识别结果,且将第二独占识别结果添加至待处理区块对应的区块识别结果。

可以理解的是,待归类的独占区块可以包括第一类独占区块和第二类独占区块,该第一类独占区块和第二类独占区块可以统称为独占区块,该独占区块的区块类型为第一区块类型,第一区块类型中可以包括第一独占类型和第二独占类型,该第一类独占区块的区块类型可以为第一独占类型,该第二类独占区块的区块类型可以为第二独占类型。

其中,与第一业务节点相关联的第一类独占区块(即与第一业务节点相关联的独占区块)可以包括与第一业务节点相关联的交易数据,该与第一业务节点相关联的交易数据可以包括与第一业务节点相关联的独占交易和与第一业务节点相关联的普通交易。其中,与第一业务节点无关的第二类独占区块(即与第一业务节点无关的独占区块)可以包括与第二业务节点相关联的交易数据,该与第二业务节点相关联的交易数据可以包括与第二业务节点相关联的独占交易和与第二业务节点相关联的普通交易。

应当理解,在待处理区块对应的区块识别结果为第一独占识别结果时,共识节点可以执行下述步骤S203-步骤S204。可以理解的是,在待处理区块对应的区块识别结果为第二独占识别结果时,共识节点可以执行下述步骤:若区块识别结果包含第二独占识别结果,则共识节点可以基于第二独占识别结果所指示的第二类独占区块,对第二类独占区块进行数据隐藏,得到第二类独占区块的区块哈希和第二类独占区块的父区块哈希。进一步地,共识节点可以将第二类独占区块的区块哈希和第二类独占区块的父区块哈希作为第一业务节点的第二清分数据,将第二清分数据通过代理节点返回给第一业务节点。其中,第二类独占区块的区块哈希和第二类独占区块的父区块哈希可以统称为第二类独占区块所对应的隐藏后的区块头。

可选的,可以理解的是,共识节点可以在识别到区块标识信息为第二类区块标识信息时,将待处理区块的区块类型作为第二区块类型,将具有第二区块类型的待处理区块的区块识别状态由待识别状态标记为已识别状态,将具有第二区块类型且标识有已识别状态的待处理区块作为待归类的非独占区块,在待归类的非独占区块中筛选与第一业务节点相关联的交易数据。进一步地,若在待归类的非独占区块中筛选到与第一业务节点相关联的交易数据,则共识节点可以将待归类的非独占区块确定为与第一业务节点相关联的第一类非独占区块,将第一类非独占区块作为第一非独占识别结果,且将第一非独占识别结果添加至待处理区块对应的区块识别结果。

可以理解的是,在待处理区块对应的区块识别结果为第一类非独占识别结果时,共识节点可以执行下述步骤:若区块识别结果包含第一非独占识别结果,则共识节点可以基于第一非独占识别结果所指示的第一类非独占区块,将第一类非独占区块中与第一业务节点相关联的交易数据作为第一交易数据。进一步地,共识节点可以获取第一类非独占区块的区块头和第一交易数据对应的第一默克尔证明信息,将第一交易数据、第一默克尔证明信息和第一类非独占区块的区块头作为第一业务节点的第三清分数据,将第三清分数据通过代理节点返回给第一业务节点。

可选的,可以理解的是,若在待归类的非独占区块中未筛选到与第一业务节点相关联的交易数据,则共识节点可以将待归类的非独占区块确定为与第一业务节点无关的第二类非独占区块,将第二类非独占区块作为第二非独占识别结果,且将第二非独占识别结果添加至待处理区块对应的区块识别结果。

可以理解的是,待归类的非独占区块可以包括第一类非独占区块和第二类非独占区块,该第一类非独占区块和第二类非独占区块可以统称为普通区块(即非独占区块),该普通区块的区块类型为第二区块类型,第二区块类型中可以包括第一非独占类型和第二非独占类型,该第一类非独占区块的区块类型可以为第一非独占类型,该第二类非独占区块的区块类型可以为第二非独占类型。

其中,与第一业务节点相关联的第一类非独占区块(即与第一业务节点相关联的普通区块)可以包括与第一业务节点相关联的交易数据,该与第一业务节点相关联的交易数据可以包括与第一业务节点相关联的普通交易。其中,与第一业务节点无关的第二类非独占区块(即与第一业务节点无关的普通区块)可以包括与第二业务节点相关联的交易数据,该与第二业务节点相关联的交易数据可以包括与第二业务节点相关联的普通交易。

可选的,与第一业务节点相关联的第一类非独占区块还可以包括与第二业务节点相关联的交易数据,该与第二业务节点相关联的交易数据可以包括与第二业务节点相关联的普通交易。

应当理解,本申请实施例不对第一类非独占区块和第二类非独占区块中的交易数据所属的业务节点的数量进行限定,即第一类非独占区块和第二类非独占区块中可以包括与一个或多个业务节点相关联的交易数据,本申请实施例不对这里的一个或多个业务节点的数量进行限定。

可以理解的是,在待处理区块对应的区块识别结果为第二类非独占识别结果时,共识节点可以执行下述步骤:若区块识别结果包含第二非独占识别结果,则共识节点可以基于第二非独占识别结果所指示的第二类非独占区块,将第二类非独占区块的区块头作为第一业务节点的第四清分数据,将第四清分数据通过代理节点返回给第一业务节点。

可以理解的是,与第一业务节点相关联的独占区块和与第一业务节点相关联的普通区块可以统称为与第一业务节点相关联的区块,与第一业务节点无关的独占区块和与第一业务节点无关的普通区块可以统称为与第一业务节点无关的区块。

步骤S103,若区块识别结果指示待处理区块为与第一业务节点相关联的第一类独占区块,则获取第一类独占区块中的区块锚定信息,通过区块锚定信息在(N-M)个区块中定位到与第一业务节点相关联的区块,将定位到的区块确定为锚定定位区块;

其中,锚定定位区块的区块高度小于待处理区块的区块高度,且锚定定位区块与待处理区块之间的区块为基于区块锚定信息所跳过的与第一业务节点无关的区块。

应当理解,区块锚定信息可以存储在第一类独占区块的区块头中,还可以存储在第一类独占区块的区块体中,本申请实施例不对区块锚定信息在第一类独占区块中的存储位置进行限定。

应当理解,打包节点(即对交易数据进行打包处理的共识节点)可以在打包得到第一类独占区块时,生成该第一类独占区块的区块锚定信息。其中,可以理解的是,共识节点可以在区块链上确定具有最大区块生成时间戳(即具有最大区块高度)、且与第一业务节点相关联的锚定关联区块,获取锚定关联区块的区块锚定标识。其中,锚定关联区块的区块类型与第一类独占区块的区块类型或者第一类非独占区块的区块类型相同。进一步地,共识节点可以在打包得到待广播至核心共识网络中的第一类独占区块时,将锚定关联区块的区块锚定标识作为第一类独占区块的区块锚定信息,且将区块锚定信息存储至第一类独占区块中,进而将打包得到的携带区块锚定信息的第一类独占区块广播至核心共识网络。此时,锚定关联区块即为定位到的与第一类独占区块相关联的锚定定位区块。

其中,可以理解的是,这里的区块锚定标识可以用于唯一标识该锚定关联区块。其中,锚定关联区块的区块锚定标识可以为该锚定关联区块的区块高度,还可以为该锚定关联区块的区块哈希。应当理解,本申请实施例不对锚定关联区块的区块锚定标识的具体取值进行限定。

可选的,应当理解,共识节点可以在对该第一类独占区块进行上链(即将该第一类独占区块添加到该共识节点所维护的区块链上)时,生成该第一类独占区块的区块锚定信息。其中,可以理解的是,共识节点可以在区块链上确定具有最大区块生成时间戳(即具有最大区块高度)、且与第一业务节点相关联的锚定关联区块,获取锚定关联区块的第一锚定标识。其中,锚定关联区块的区块类型与第一类独占区块的区块类型或者第一类非独占区块的区块类型相同。进一步地,共识节点可以在核心共识网络对第一类独占区块进行共识的共识结果指示共识通过时,对第一类独占区块进行上链,此时,共识节点可以获取第一类独占区块的第二锚定标识,将第一锚定标识和第二锚定标识存储至共识节点的锚定信息列表。进一步地,共识节点可以将第一锚定标识和第二锚定标识之间的数据关系确定为第一类独占区块的区块锚定信息,且将区块锚定信息存储至第一类独占区块中。

应当理解,锚定关联区块的第一锚定标识和第一类独占区块的第二锚定标识的具体取值,可以参见上述对锚定关联区块的区块锚定标识的描述,这里将不进行赘述。

其中,可以理解的是,这里的区块锚定信息可以表示用于指向锚定信息列表中第一锚定标识和第二锚定标识的数据关系的指针。共识节点可以根据该区块锚定信息在锚定信息列表中所指向的位置,在锚定信息列表中获取到第一锚定标识和第二锚定标识之间的数据关系,确定第一类独占区块所对应的锚定标识为第二锚定标识,与第二锚定标识相对应的锚定标识为第一锚定标识,进而将该第一锚定标识所对应的区块作为定位到的与第一类独占区块相关联的锚定定位区块。

其中,可选的,可以理解的是,共识节点还可以无需将区块锚定信息存储至第一类独占区块中,而是直接在锚定信息列表中查找该第一类独占区块的锚定标识,进而在锚定信息列表中查找到第二锚定标识,基于锚定信息列表中第一锚定标识和第二锚定标识之间的数据关系,确定与第二锚定标识相对应的锚定标识为第一锚定标识,进而将该第一锚定标识所对应的区块作为定位到的与第一类独占区块相关联的锚定定位区块。

步骤S104,基于锚定定位区块的区块类型,确定用于返回给第一业务节点的第一清分数据,将第一清分数据通过代理节点返回给第一业务节点。

具体的,若锚定定位区块的区块类型与第一类独占区块的区块类型相同,则共识节点可以将锚定定位区块作为第一业务节点的第一子清分数据。进一步地,若锚定定位区块的区块类型与第一类独占区块的区块类型不同,则共识节点可以获取锚定定位区块中与第一业务节点相关联的关键业务数据信息,将获取到的关键业务数据信息作为第一业务节点的第二子清分数据。进一步地,共识节点可以将第一子清分数据或者第二子清分数据作为第一业务节点的第一清分数据,将第一清分数据通过代理节点返回给第一业务节点。

可以理解的是,锚定定位区块的区块类型可以为第一区块类型中的第一独占类型或者第二区块类型中的第一非独占类型,第一类独占区块的区块类型为第一区块类型中的第一独占类型。若锚定定位区块的区块类型与第一类独占区块的区块类型相同,则锚定定位区块的区块类型为第一独占类型,此时,锚定定位区块为第一类独占区块;若锚定定位区块的区块类型与第一类独占区块的区块类型不同,则锚定定位区块的区块类型为第一非独占类型,此时,锚定定位区块为第一类非独占区块。

可以理解的是,共识节点获取锚定定位区块中与第一业务节点相关联的关键业务数据信息的具体过程可以描述为:共识节点可以将锚定定位区块中与第一业务节点相关联的交易数据作为第二交易数据。进一步地,共识节点可以获取锚定定位区块的区块头和第二交易数据对应的第二默克尔证明信息,将第二交易数据、第二默克尔证明信息和锚定定位区块的区块头,作为与第一业务节点相关联的关键业务数据信息。

应当理解,共识节点可以将第一类独占区块作为第一业务节点的第五清分数据。进一步地,共识节点可以在(N-M)个区块中,将锚定定位区块与第一类独占区块之间的区块作为与第一业务节点无关的业务过滤区块,基于业务过滤区块的区块类型,确定用于返回给第一业务节点的第六清分数据。进一步地,共识节点可以将第五清分数据和第六清分数据通过代理节点返回给第一业务节点。

其中,可以理解的是,第一类独占区块中的交易数据与第一业务节点相关联,基于该第一类独占区块的方式,可以对与第一业务节点相关联的交易数据分批集中处理,实现交易数据的隐私隔离,进而在数据清分时,灵活高效的直接将该第一类独占区块返回给第一业务节点。

其中,可以理解的是,业务过滤区块的区块类型可以为第一区块类型中的第二独占类型或者第二区块类型中的第二非独占类型。若业务过滤区块的区块类型为第二独占类型(即业务过滤区块的区块类型与第二类独占区块的区块类型相同),则共识节点可以获取业务过滤区块中与第一业务节点相关联的第三子清分数据;若业务过滤区块的区块类型为第二非独占类型(即业务过滤区块的区块类型与第二类非独占区块的区块类型相同),则共识节点可以获取业务过滤区块中与第一业务节点相关联的第四子清分数据。

应当理解,共识节点获取业务过滤区块中与第一业务节点相关联的第三子清分数据的具体过程,可以参见上述确定与第一业务节点相关联的第二清分数据的描述,这里将不再进行赘述。应当理解,共识节点获取业务过滤区块中与第一业务节点相关联的第四子清分数据的具体过程,可以参见上述确定与第一业务节点相关联的第四清分数据的描述,这里将不再进行赘述。

其中,锚定定位区块与第一类独占区块之间可以有一个或多个业务过滤区块,共识节点可以将一个或多个业务过滤区块各自对应的第三子清分数据或者第四子清分数据,确定为与第一业务节点相关联的第六清分数据。比如,在业务过滤区块的数量为两个时,这两个业务过滤区块可以为区块Q1和区块Q2,若区块Q1的区块类型为第二独占类型,若区块Q2的区块类型为第二非独占类型,则共识节点可以将区块Q1对应的第三子清分数据和区块Q2对应的第四子清分数据,确定为与第一业务节点相关联的第六清分数据。应当理解,本申请实施例不对业务过滤区块的数量进行限定。

可选的,共识节点通过第一类独占区块中的区块锚定信息定位到的区块还可以不属于(N-M)个区块,这里可以将共识节点通过区块锚定信息定位到的在(N-M)个区块之外的区块确定为辅助定位区块。进一步地,共识节点可以将第一类独占区块和辅助定位区块之间的区块作为与第一业务节点无关的辅助过滤区块。进一步地,共识节点可以将辅助过滤区块中属于(N-M)个区块的区块确定为第一过滤区块,将辅助过滤区块中不属于(N-M)个区块的区块确定为第二过滤区块,进而基于第一过滤区块的区块类型,确定用于返回给第一业务节点的第七清分数据。进一步地,共识节点可以将第七清分数据通过代理节点返回给第一业务节点。

其中,可以理解的是,第一过滤区块的区块类型可以为第一区块类型中的第二独占类型或者第二区块类型中的第二非独占类型。应当理解,共识节点确定与第一业务节点相关联的第七清分数据的具体过程,可以参见上述确定与第一业务节点相关联的第六清分数据的描述,这里将不再进行赘述。

可以理解的是,共识节点可以将上述第一清分数据、第二清分数据、第三清分数据、第四清分数据、第五清分数据和第六清分数据作为全部清分数据,进而将全部清分数据一并通过代理节点返回至第一业务节点。其中,对于一个待处理区块而言,全部清分数据包括一份与该待处理区块相关联的清分数据,全部清分数据中不包括同一个待处理区块所对应的多份清分数据。可选的,可以理解的是,共识节点还可以在分别获取到上述第一清分数据、第二清分数据、第三清分数据、第四清分数据、第五清分数据和第六清分数据时,分别将这些清分数据通过代理节点返回至第一业务节点。

比如,在区块Q1为第一类独占区块时,通过该区块Q1中的区块锚定信息定位到的区块为区块Q2,共识节点可以基于该区块Q2的区块类型确定用于返回给第一业务节点的第一清分数据,此外,在该区块Q2作为新的待处理区块时,若区块Q2为第一类独占区块,则共识节点可以基于该区块Q2返回第五清分数据,这里的第五清分数据和第一清分数据均为区块Q2对应的清分数据。其中,共识节点可以将这里的第五清分数据或者第一清分数据添加至全部清分数据。

为便于理解,请参见图5,图5是本申请实施例提供的一种确定清分数据的流程示意图。如图5所示的步骤S501-步骤S514为共识节点确定用于返回给第一业务节点的清分数据的流程图。共识节点可以执行步骤S501接收业务网络中的第一业务节点通过代理节点转发的数据清分请求,进而执行步骤S502,基于数据清分请求,在区块链上确定由区块高度M至区块高度N的(N-M)个区块,在(N-M)个区块的区块高度递减方向上获取待处理区块,对待处理区块进行区块识别,得到区块识别结果。

进一步地,共识节点可以执行步骤S503,确定待处理区块的区块标识信息是否为第一类区块标识信息,若待处理区块的区块标识信息为第一类区块标识信息,则执行步骤S504。可选的,若待处理区块的区块标识信息不为第一类区块标识信息(即为第二类区块标识信息),则执行步骤S511。

如图5所示,共识节点可以在执行步骤S504时,确定待处理区块的节点标识信息是否为第一类节点标识,若待处理区块的节点标识信息为第一类节点标识(即确定待处理区块为与第一业务节点相关联的第一类独占区块),则执行步骤S505。可选的,若待处理区块的节点标识信息不为第一类节点标识(即为第二类节点标识,确定待处理区块为与第一业务节点无关的第二类独占区块),则执行步骤S509。

其中,共识节点在执行步骤S505时,可以获取该第一类独占区块中的区块锚定信息,通过区块锚定信息在(N-M)个区块中定位到与第一业务节点相关联的区块,将定位到的区块确定为锚定定位区块,进而执行步骤S506,基于锚定定位区块的区块类型,确定用于返回给第一业务节点的第一清分数据。进一步地,共识节点可以执行步骤S507和步骤S508,将第一类独占区块作为第一业务节点的第五清分数据,且在(N-M)个区块中,将锚定定位区块与第一类独占区块之间的区块作为与第一业务节点无关的业务过滤区块,基于业务过滤区块的区块类型,确定用于返回给第一业务节点的第六清分数据。

可选的,共识节点在执行步骤S509时,可以对第二类独占区块进行数据隐藏,得到第二类独占区块的区块哈希和第二类独占区块的父区块哈希,进而执行步骤S510,将第二类独占区块的区块哈希和第二类独占区块的父区块哈希作为第一业务节点的第二清分数据。可以理解的是,共识节点在得到第二清分数据之后,可以获取区块高度小于该第二类独占区块的前一个区块,将前一个区块作为新的待处理区块。

如图5所示,共识节点可以在执行步骤S511时,确定待处理区块是否包含与第一业务节点相关联的交易数据,若待处理区块包含与第一业务节点相关联的交易数据(即确定待处理区块为与第一业务节点相关联的第一类非独占区块),则执行步骤S512。可选的,若待处理区块不包含与第一业务节点相关联的交易数据(即确定待处理区块为与第一业务节点无关的第二类非独占区块),则执行步骤S514。

其中,共识节点在执行步骤S512时,可以将第一类非独占区块中与第一业务节点相关联的交易数据作为第一交易数据,进而执行步骤S512,获取第一类非独占区块的区块头和第一交易数据对应的第一默克尔证明信息,将第一交易数据、第一默克尔证明信息和第一类非独占区块的区块头作为第一业务节点的第三清分数据。可以理解的是,共识节点在得到第三清分数据之后,可以获取区块高度小于该第一类非独占区块的前一个区块,将前一个区块作为新的待处理区块。

可选的,共识节点在执行步骤S514时,可以将第二类非独占区块的区块头作为第一业务节点的第四清分数据。可以理解的是,共识节点在得到第四清分数据之后,可以获取区块高度小于该第二类非独占区块的前一个区块,将前一个区块作为新的待处理区块。

为便于理解,请参见图6,图6是本申请实施例提供的一种进行数据隐藏的场景示意图。如图6所示的共识节点60a可以为接收数据清分请求的共识节点,该共识节点60a可以为上述图1所示的核心共识网络100c中的任意一个节点,例如,节点120a。如图6所示的区块链6a可以包括区块1、…、区块N,这里的区块1、…、区块N可以为上述图4所对应实施例中的区块1、…、区块N,共识节点60a可以在由区块高度M到区块高度N的区块中获取(N-M)个区块,即获取区块(M+1)、…、区块N。

如图6所示,共识节点60a可以在区块链6a中确定待处理区块,例如,该共识节点60a可以在区块链6a中将区块N确定为待处理区块6b,该待处理区块6b的区块信息中可以包括区块头(即区块头信息)和区块体(即区块主体、区块体信息)。其中,区块头可以包括待处理区块6b的父区块哈希值(即区块(N-1)(未在图上示出)的区块哈希值、父区块哈希)、区块高度、版本号、时间戳、难度值、随机数以及默克尔树根(即区块哈希、区块哈希值)等信息,区块体可以包括打包至待处理区块6b的交易数据以及由交易数据的交易哈希值所构成的默克尔路径。

为便于理解,这里以打包至待处理区块6b中的交易数据的数量为4个为例进行说明,这里的4个交易数据可以为图6所示的交易数据51、交易数据52、交易数据53和交易数据54。其中,对这4个交易数据进行交易哈希转换可以得到交易数据对应的交易哈希值,例如,交易数据51的交易哈希值可以为交易哈希值1(例如,Hash1),交易数据52的交易哈希值可以为交易哈希值2(例如,Hash2),交易数据53的交易哈希值可以为交易哈希值3(例如,Hash3),交易数据54的交易哈希值可以为交易哈希值4(例如,Hash4)。

如图6所示,可以理解的是,在待处理区块6b为第二类独占区块时,共识节点60a可以对待处理区块6b进行数据隐藏,得到该待处理区块6b的区块哈希和父区块哈希,即共识节点60a可以对待处理区块6b进行数据隐藏,得到该待处理区块6b对应的隐藏后的区块头60b,该隐藏后的区块头60b可以包括区块哈希和父区块哈希。进一步地,共识节点可以将该隐藏后的区块头60b作为返回给第一业务节点的清分数据(即上述第二清分数据)。

可选的,可以理解的是,在待处理区块6b为第一类独占区块时,共识节点60a可以直接将该待处理区块6b作为返回给第一业务节点的清分数据(即上述第五清分数据),其中,这里的清分数据可以包括该待处理区块6b的区块头和区块体。

可选的,可以理解的是,在待处理区块6b为第一类非独占区块时,共识节点60a可以将该待处理区块6b中与第一业务节点相关联的交易数据作为第一交易数据,例如,待处理区块6b中与第一业务节点相关联的交易数据可以为交易数据53和交易数据54,因此,共识节点60a可以将交易数据53和交易数据54作为第一交易数据。进一步地,共识节点60a可以获取第一交易数据对应的第一默克尔证明信息,这里的第一默克尔证明信息可以由默克尔路径中的交易哈希值构成,例如,这里可以由Hash12和Hash1234作为路径哈希值,以根据路径哈希值构成第一默克尔证明信息。进一步地,共识节点60a可以将上述第一交易数据、第一默克尔证明信息和待处理区块6b的区块头作为返回给第一业务节点的清分数据(即上述第三清分数据)。

可选的,可以理解的是,在待处理区块6b为第二类非独占区块时,共识节点60a可以将该待处理区块6b的区块头作为返回给第一业务节点的清分数据(即上述第四清分数据)。

由此可见,本申请实施例可以在“业务网络—核心共识网络”这一分层区块链结构下,对(N-M)个区块中依次获取到的待处理区块进行区块识别,以在确定获取到的待处理区块为第一类独占区块时,通过该第一类独占区块中的区块锚定信息,在(N-M)个区块中快速定位到与该第一类独占区块相关联的锚定定位区块,基于此,本申请实施例在为第一业务节点返回数据清分请求对应的清分数据(例如,第一清分数据)时,可以通过区块锚定信息快速跳过与第一业务节点无关的区块,同时清分到与第一业务节点相关联的锚定定位区块,进而可以提高数据清分的效率。此外,对于这些跳过的与第一业务节点无关的业务过滤区块,这些业务过滤区块内的交易数据不会作为清分数据返回至业务网络中的第一业务节点,因而可以实现这些业务过滤区块内的交易数据的隐私隔离。

进一步地,请参见图7,图7是本申请实施例提供的一种交易数据处理方法的流程示意图。如图7所示,该方法可以由业务网络中的第一业务节点、代理节点和核心共识网络中的共识节点共同执行。该第一业务节点可以为上述图1所示的业务网络100a中的任意一个节点,例如,节点110a;该代理节点可以为上述图1所示的代理节点100b;该共识节点可以为上述图1所示的核心共识网络100c中的任意一个节点,例如,节点120a。其中,该交易数据处理方法可以包括以下步骤:

步骤S201,第一业务节点获取区块高度M和区块高度N,基于区块高度M和区块高度N生成数据清分请求;

其中,这里的区块高度M为第一业务节点所存储的区块头链上的最大区块高度,这里的区块高度N为核心共识网络中的共识节点所维护的区块链上的最大区块高度。其中,这里的N可以为正整数,这里的M可以为小于N的正整数。

可选的,第一业务节点还可以请求对指定时间间隔内的区块中的交易数据进行数据清分,例如,这里的时间间隔的起始时间可以为T1时刻,这里的时间间隔的终止时间可以为T1时刻的下一时间(例如,T2时刻)。因此,第一业务节点可以基于T1时刻和T2时刻生成数据清分请求,以使共识节点在区块链上获取区块生成时间戳属于T1时刻至T2时刻内的K个区块,在K个区块的区块高度递减方向上获取待处理区块,以执行后续步骤。其中,这里的K可以为正整数。

可选的,第一业务节点还可以无需确定区块高度M和区块高度N,直接生成数据清分请求,进而在步骤S202中将该数据清分请求发送至共识节点,以使共识节点返回清分数据。

步骤S202,第一业务节点通过代理节点向共识节点发送数据清分请求;

其中,代理节点用于对核心共识网络和业务网络进行网络隔离。

其中,第一业务节点向共识节点发送数据清分请求的具体过程,可以参见上述图4所对应实施例中的描述,这里将不再进行赘述。

步骤S203,共识节点接收业务网络中的第一业务节点通过代理节点转发的数据清分请求;

其中,数据清分请求中携带区块高度M和区块高度N。

应当理解,由于核心共识网络处于相对安全的私有云中,其互相访问本就有共识机制保证安全,不需要额外加入身份管理和网络控制,而业务网络处于公共网络中,可以能会被其他不确定的网络终端访问。因此,业务节点以及其他可能的节点接入共识网络中的行为需要被严格控制。这样,代理节点和共识节点需要对发送数据清分请求的第一业务节点进行验证。

可以理解的是,代理节点在接收到第一业务节点发送的数据清分请求时,可以对该第一业务节点进行权限验证,以得到权限验证结果,这里的权限验证可以包括验证第一业务节点的节点标识(例如,第一节点标识)是否属于非法节点列表中的节点标识。其中,非法节点列表可以是指代理节点所存储的黑名单列表,该非法节点列表中的非法节点标识所对应的非法节点是指检测到的恶意节点、被他人举报的节点,在某一时间段发送交易频率异常的节点等。

其中,可以理解的是,代理节点可以在该非法节点列表中查找与该第一业务节点的第一节点标识相同的非法节点标识,以得到权限验证结果。若权限验证结果指示在非法节点列表中查找到与第一节点标识相同的非法节点标识,则代理节点可以确定该权限验证结果属于非法验证结果,此时,该代理节点可以确定该第一业务节点为非法节点,进而无需将数据清分请求转发至核心共识网络中的共识节点。可选的,若权限验证结果指示在非法节点列表中未查找到与第一节点标识相同的非法节点标识,则代理节点可以确定该权限验证结果属于合法验证结果,此时,该代理节点可以确定该第一业务节点为合法节点,进而可以将数据清分请求转发至核心共识网络中的共识节点。

为便于理解,进一步地,请参见表1,表1是本申请实施例提供的一种节点标识列表。该节点标识列表中可以存储有对某一交易数据可见的节点的节点标识和节点名称。其中,节点标识可为IP(Internet Protocol,网络之间互联的协议)地址以及其他任一种能够用于标识该节点的信息,表1中仅以IP地址为例进行说明。如表1所示:

表1

可以理解的是,共识节点可以获取代理节点发送的第一加密数据信息。其中,第一加密数据信息可以为代理节点通过共识网络的系统公钥对数据清分请求和第一签名信息进行加密处理后所得到的,第一签名信息可以为业务网络中的第一业务节点通过该第一业务节点的节点私钥对数据清分请求进行签名后所得到。进一步地,共识节点可以获取共识网络的系统私钥(即共识网络的系统公钥对应的系统私钥),通过共识网络的系统私钥对第一加密数据信息进行解密处理,得到数据清分请求和第一签名信息。进一步地,共识节点可以获取第一业务节点的节点公钥(即第一业务节点的节点私钥对应的节点公钥),基于第一业务节点的节点公钥对第一签名信息进行验签,得到第一验签结果。进一步地,共识节点可以在第一验签结果指示验签成功时,接收数据清分请求。

为便于理解,请参见图8,图8是本申请实施例提供的一种接收数据清分请求的场景示意图。如图8所示的业务节点80a可以为发送数据清分请求的第一业务节点,该业务节点80a可以为上述图1所示的业务网络100a中的任意一个节点,例如,节点110a;如图8所示的共识节点80c可以为接收数据清分请求的共识节点,该共识节点80c可以为上述图1所示的核心共识网络100c中的任意一个节点,例如,节点120a;如图8所示的代理节点80b可以用于对业务网络和核心共识网络进行网络隔离,该代理节点80b可以为上述图1所示的代理节点100b。

如图8所示,业务节点80a在向代理节点80b发送数据清分请求之前,可以基于该业务节点80a的节点私钥对数据清分请求进行签名,得到该数据清分请求对应的签名信息(即第一签名信息)。其中,可以理解的是,业务节点80a可以利用哈希算法对数据清分请求进行哈希计算,从而可以得到数据清分请求的摘要信息h,并基于业务节点80a的节点私钥对该摘要信息h进行数字签名,得到该数据清分请求对应的签名信息。进一步地,业务节点80a可以将数据清分请求和签名信息发送至代理节点80b。

如图8所示,代理节点80b在接收到数据清分请求和签名信息时,可以获取共识网络的系统公钥,通过共识网络的系统公钥对数据清分请求和签名信息进行加密处理,以得到加密数据信息(即第一加密数据信息)。进一步地,代理节点80b可以将加密数据信息转发至共识节点80c。

如图8所示,共识节点80c在接收到加密数据信息时,可以获取共识网络的系统私钥,通过共识网络的系统私钥对加密数据信息进行解密处理,以得到数据清分请求和签名信息。进一步地,共识节点80c可以获取业务节点80a的节点公钥,基于该业务节点80a的节点公钥对签名信息进行验签,以得到验签结果(即第一验签结果)。其中,可以理解的是,共识节点80c可以基于业务节点80a的节点公钥对签名信息中的数字签名进行验签,得到数据清分请求的摘要信息h,并基于上述业务节点80a所使用的哈希算法对接收到的数据清分请求进行哈希计算,从而可以得到数据清分请求的摘要信息H,进而可以将验签所得到的摘要信息h和哈希计算所得到的摘要信息H进行比较,得到验签结果。

其中,在摘要信息h与摘要信息H相同时,验签结果指示共识节点80c验签成功;在摘要信息h与摘要信息H不相同时,验签结果指示共识节点80c验签失败。可以理解的是,在验签结果指示验签失败时,共识节点80c可以拒绝接收业务节点80a发送的数据清分请求;在验签结果指示验签成功时,共识节点80c可以接收业务节点80a发送的数据清分请求。

可选的,业务节点80a在将数据清分请求和签名信息发送至代理节点80b之前,可以获取代理节点80b的节点公钥,通过该代理节点80b的节点公钥对数据清分请求和签名信息进行加密处理,得到加密请求信息,进而将该加密请求信息发送至代理节点80b。这样,代理节点80b在接收到加密请求信息时,可以通过该代理节点80b的节点私钥对加密请求信息进行解密处理,得到数据清分请求和签名信息,进而获取共识网络的系统公钥,以执行后续步骤。

步骤S204,共识节点基于数据清分请求,在区块链上确定由区块高度M至区块高度N的(N-M)个区块,在(N-M)个区块的区块高度递减方向上获取待处理区块,对待处理区块进行区块识别,得到区块识别结果;

可选的,可以理解的是,在(N-M)个区块中包括一个区块时,共识节点可以基于这一个区块的区块类型,确定用于返回给共识节点的清分数据。

其中,共识节点对待处理区块进行区块识别的具体过程,可以参见上述图3所对应实施例中对步骤S102的描述,这里将不再进行赘述。

步骤S205,若区块识别结果指示待处理区块为与第一业务节点相关联的第一类独占区块,则共识节点获取第一类独占区块中的区块锚定信息,通过区块锚定信息在(N-M)个区块中定位到与第一业务节点相关联的区块,将定位到的区块确定为锚定定位区块;

其中,锚定定位区块的区块高度小于待处理区块的区块高度,且锚定定位区块与待处理区块之间的区块(即业务过滤区块)为基于区块锚定信息所跳过的与第一业务节点无关的区块。可选的,在待处理区块与锚定定位区块为相邻的两个区块时,待处理区块和锚定定位区块之前不存在业务过滤区块,则共识节点无需基于业务过滤区块的区块类型,确定第一业务节点对应的第六清分数据。

其中,共识节点通过第一类独占区块的区块锚定信息定位到锚定定位区块的具体过程,可以参见上述图3所对应实施例中对步骤S103的描述,这里将不再进行赘述。

步骤S206,共识节点基于锚定定位区块的区块类型,确定用于返回给第一业务节点的第一清分数据,将第一清分数据通过代理节点返回给第一业务节点;

应当理解,本申请实施例中的区块识别与区块锚定(即通过第一类独占区块中的区块锚定信息定位到锚定定位区块)可以为异步执行,也可以为同步执行。其中,在区块识别与区块锚定为异步执行时,共识节点可以在(N-M)个区块的区块高度递减方向上获取待处理区块,以对(N-M)个区块中的每个待处理区块进行区块识别,得到(N-M)个区块中的每个待处理区块的区块类型,进而基于每个待处理区块的区块类型,确定用于返回给第一业务节点的清分数据。

其中,可选的,在区块识别与区块锚定为同步执行时,共识节点可以在(N-M)个区块的区块高度递减方向上获取待处理区块,以对该获取到的待处理区块进行区块识别,得到该待处理区块的区块类型,进而基于该区块的区块类型,确定该待处理区块的清分数据。进一步地,共识节点可以基于该待处理区块的区块类型,在(N-M)个区块中获取新的待处理区块,以对该获取到的新的待处理区块进行区块识别,进而对该新的待处理区块执行后续与待处理区块相同的步骤,直到获取到的最新的待处理区块为区块M或者区块高度小于区块M的区块。

为便于理解,请参见图9a,图9a是本申请实施例提供的一种定位独占区块的场景示意图。本申请实施例中的共识节点可以基于第一业务节点发送的数据清分请求,确定图9a所示的(N-M)个区块,这里的(N-M)个区块可以为4个区块,这4个区块具体可以包括区块Q1、区块Q2、区块Q3和区块Q4。其中,区块Q1可以为上述区块(M+1),区块Q4可以为上述区块N。

可以理解的是,共识节点可以首先在区块Q1、…、区块Q4中获取第一个待处理区块,这里的第一个待处理区块可以为待处理区块92a,该待处理区块92a可以为区块Q4,在确定待处理区块92a为第一类独占区块时,共识节点可以基于该第一类独占区块中的区块锚定信息在(N-M)个区块中定位到锚定定位区块,这里的锚定定位区块可以为锚定定位区块92b,该锚定定位区块92b可以为区块Q1。此时,共识节点可以确定锚定定位区块92b的区块类型,基于锚定定位区块92b的区块类型得到锚定定位区块92b对应的清分数据。与此同时,共识节点还可以基于待处理区块92a的区块类型得到待处理区块92a对应的清分数据,即直接将区块Q4作为待处理区块92a对应的清分数据91a。

其中,区块Q1可以为与第一业务节点相关联的区块,即第一类独占区块或者第一类非独占区块。在区块Q1为第一类独占区块时,共识节点可以基于该区块Q1得到第一子清分数据,在区块Q1为第一类非独占区块时,共识节点可以基于该区块Q1得到第二子清分数据,进而将第一子清分数据或者第二子清分数据作为区块Q1对应的清分数据。

如图9a所示,在锚定定位区块92b为第一类独占区块(即独占区块)时,共识节点可以直接将区块Q1作为锚定定位区块92b对应的清分数据91b(即第一子清分数据)。可以理解的是,共识节点可以在分别得到上述清分数据91a和清分数据91b时,分别通过代理节点将该清分数据91a和清分数据91b返回至第一业务节点。可选的,共识节点还可以在分别得到上述清分数据91a和清分数据91b时,将清分数据91a和清分数据91b合并作为全部清分数据,将该全部清分数据返回至代理节点,以使代理节点将该全部清分数据转发至第一业务节点。

为便于理解,请参见图9b,图9b是本申请实施例提供的一种定位普通区块的场景示意图。图9b为图9a所对应的另一种执行流程,图9b所示的(N-M)个区块即为图9a所示的(N-M)个区块,如图9b所示,区块Q1可以包括区块头和区块体,该区块体中可以包括多个交易数据,这里以区块体中的交易数据的数量为4个为例,这4个交易数据可以包括交易Y1、交易Y2、交易Y3和交易Y4。其中,交易Y1和交易Y2可以为与第一业务节点相关联的交易数据,该交易Y1和交易Y2可以统称为交易数据93a;交易Y3和交易Y4可以为与第一业务节点无关的交易数据(例如,与第二业务节点相关联的交易数据),该交易Y3和交易Y4可以统称为交易数据93b。

如图9b所示,在锚定定位区块92b为第一类非独占区块(即普通区块)时,共识节点可以将区块Q1的区块头、交易数据93a对应的默克尔证明信息和交易数据93a(即交易Y1和交易Y2)作为锚定定位区块92b对应的清分数据91c(即第二子清分数据)。可以理解的是,共识节点可以在分别得到上述清分数据91a和清分数据91c时,分别通过代理节点将该清分数据91a和清分数据91c返回至第一业务节点。可选的,共识节点还可以在分别得到上述清分数据91a和清分数据91c时,将清分数据91a和清分数据91c合并作为全部清分数据,将该全部清分数据返回至代理节点,以使代理节点将该全部清分数据转发至第一业务节点。

步骤S207,第一业务节点接收共识节点通过代理节点返回的第一清分数据。

可以理解的是,共识节点可以通过该共识节点的节点私钥对全部清分数据进行签名,得到第二签名信息。进一步地,共识节点可以通过代理节点向第一业务节点返回第二加密数据信息。其中,第二加密数据信息是由代理节点通过业务网络的系统公钥对全部清分数据和第二签名信息进行加密处理所得到的。其中,第二加密数据信息用于指示第一业务节点获取业务网络的系统私钥(即业务网络的系统公钥对应的系统私钥),通过业务网络的系统私钥对第二加密数据信息进行解密处理,得到全部清分数据和第二签名信息。其中,全部清分数据和第二签名信息用于指示第一业务节点获取共识节点的节点公钥(即共识节点的节点私钥对应的节点公钥),基于共识节点的节点公钥对第二签名信息进行验签,得到第二验签结果。其中,第二验签结果用于指示第一业务节点在确认第二验签结果指示验签成功时,接收第二加密数据信息。

应当理解,共识节点对全部清分数据进行签名的具体过程,可以参见上述第一业务节点对数据清分请求进行签名的描述,这将不再进行赘述。应当理解,第一业务节点基于共识节点的节点公钥对第二签名信息进行验签的具体过程,可以参见上述共识节点基于第一业务节点的节点公钥对第一签名信息进行验签的描述,这里将不再进行赘述。

其中,共识节点可以直接将全部清分数据和第二签名信息发送至代理节点。可选的,共识节点在将全部清分数据和第二签名信息发送至代理节点之前,可以获取代理节点的节点公钥,通过代理节点的节点公钥对全部清分数据和第二签名信息进行加密处理,得到加密清分数据,进而将该加密清分数据发送至代理节点。这样,代理节点在接收到加密清分数据时,可以通过该代理节点的节点私钥对加密清分数据进行解密处理,得到全部清分数据和第二签名信息,进而获取业务网络的系统公钥,以执行后续步骤。

可以理解的是,共识节点向第一业务节点返回的清分数据,可以使第一业务节点尽量存储其所需要的区块和交易数据的最小集合,同时保证数据隐私隔离和数据清分的效率。

其中,可以理解的是,在第一业务节点接收到的清分数据中包括第三清分数据时,第一业务节点可以基于第三清分数据中的第一交易数据、第一默克尔证明信息和第一类非独占区块的区块头对第三清分数据进行验证。具体的,第一业务节点可以基于第一交易数据对应的第一交易哈希值以及默克尔证明信息中的路径哈希值,确定第一类非独占区块对应的第一待比较树根。进一步地,第一业务节点可以基于第一待比较树根和第一类非独占区块的区块头中的默克尔树根(例如,第一默克尔树根),得到第一类非独占区块的验证结果。进一步地,若验证结果指示验证成功,则第一业务节点可以将第一类非独占区块的区块头同步至第一业务节点的区块头链。其中,若第一待比较树根与第一默克尔树根相同,则验证结果指示验证成功。

其中,可以理解的是,在第一业务节点接收到的清分数据中包括第五清分数据时,第一业务节点可以直接对该第一类独占区块进行验证。具体的,第一业务节点可以基于第一类独占区块中的交易数据对应的交易哈希值,确定第一类独占区块对应的第二待比较树根。进一步地,第一业务节点可以基于第二待比较树根和第一类独占区块的区块头中的默克尔树根(例如,第二默克尔树根),得到第一类独占区块的验证结果。进一步地,若验证结果指示验证成功,则第一业务节点可以将该第一类独占区块的区块头同步至第一业务节点的区块头链。其中,若第二待比较树根与第二默克尔树根相同,则验证结果指示验证成功。

其中,可以理解的是,在第一业务节点接收到的清分数据中包括第二清分数据时,第一业务节点可以将数据隐藏后的第二类独占区块确定为隐藏后的区块头,进而将该隐藏后的区块头同步至第一业务节点的区块头链。

其中,可以理解的是,在第一业务节点接收到的清分数据中包括第四清分数据时,第一业务节点可以将第二类独占区块的区块头同步至第一业务节点的区块头链。

为便于理解,请参见图10,图10是本申请实施例提供的一种区块链电子票据场景下的系统架构图。如图10所示,本申请实施例中的业务层、路由代理层以及核心共识网络层组成了整个完整区块链业务体系。图10所示的区块链为核心共识网络层所维护的目标区块链。为便于理解,本申请实施例中的交易业务可以以电子票据转移业务为例,在此不做限定。

可以理解的是,当区块链被用于政府(例如,税务系统)或者商业机构的一些场景中,为了提高数据的保密性和安全性,在区块链体系中涉及个人隐私或者国家安全等相关数据时,可以采用本申请实施例中的“业务网络—核心共识网络”这一分层区块链结构。

其中,业务层处于见证网络中,可以向核心共识网络层提交业务操作交互,该业务层中的业务节点(例如,第一业务节点)可以包括电子税局对应的终端设备、企业用户对应的终端设备以及消费用户(即消费者)对应的终端设备。其中,电子税局可以是指税局专网中的地方税局,企业用户可以为公有云中的开票服务商、报销服务商或者零售企业(例如,KA企业,即大型零售客户和重点零售客户企业)等,消费用户可以为私有云中的支付服务商、流转服务商或者零售企业等。例如,第一业务节点(例如,消费用户对应的终端设备A)所执行的票据转移业务可以为:将消费用户在购买器材时所获得的电子票据(例如,电子票据X)转移至该消费用户所在企业对应的终端设备B。当然,该业务层中还可以包括第二业务节点。例如,两个公司的两个开票员(例如,员工1和员工2),在各自的终端设备上开票产生了一些交易数据。例如,员工1可以使用终端设备A1执行交易业务,以生成对应的交易数据,员工2可以使用终端设备A2执行交易业务,以生成对应交易数据。

其中,路由代理层中的代理节点可以用于对业务层和核心共识网络层进行网络隔离,代理节点可以具有点对点服务(即P2P服务),路由服务、证书缓存、认证服务。可以理解的是,点对点服务是指在P2P网络中的服务,基于一类特定的网络协议,P2P网络中的网络节点之间不需要一个中心节点来维护网络状态,而是每个节点通过和相邻节点的广播交互来维护全网的节点状态或者是其相邻节点连接状态。路由服务是节点具有的基本功能,可以用于节点之间的通信。证书缓存中的证书,可以指公钥证书体系(PKI,Public KeyInfrastructure),在证书体系中,证书是一个公钥拥有者的身份证明,由权威机构进行颁发(Certificate Authority,CA)。基于公钥证书体系可以实现非对称加密和对于信息的数字签名。这里的公钥证书体系可以包括公私钥密码,x509证书,CA证书签发中心等等。认证服务可以用于验证接收到的信息的交易格式、节点合法性等。可以理解的是,在本申请实施例中,该代理节点可以将业务层中的第一业务节点所发送的数据清分请求转发至核心共识网络层中的共识节点,还可以将核心共识网络层中的共识节点所返回的清分数据转发至业务层中的第一业务节点。其中,在转发过程中,该代理节点可以对转发的数据进行加密处理。

其中,核心共识网络层中的共识节点(即记账节点)可以为税务专网中的可信节点(即TrustSQL节点)。可以理解的是,每个共识节点均具有打包出块的能力,即可以对代理节点所转发的交易数据进行验证,并在验证成功时添加至共识节点的交易池(即图10所示的缓存)中。进一步地,该共识节点可以对自己交易池中的交易数据进行打包出块,以成功写入核心共识网络层中的目标区块链中。此外,共识节点在接收到由代理节点转发的数据清分请求时,可以在目标区块链上确定用于返回给第一业务节点的清分数据。

由此可见,当共识节点在接收到第一业务节点发送的数据清分请求时,本申请实施例可以在本地所维护的区块链上确定待进行数据清分的(N-M)个区块,进而在(N-M)个区块的区块高度递减方向上获取待处理区块,因此,共识节点在确定待处理区块为与第一业务节点相关联的独占区块(即第一类独占区块)时,可以通过锚定规则信息(即区块锚定信息)快速跳过与第一业务节点无关的区块(这里指业务过滤区块),同时清分到与该第一业务节点自己相关的上一区块(这里指锚定定位区块),进而可以提高数据清分的效率。其中,应当理解,这里的业务过滤区块可以包括与第一业务节点无关的普通区块(即第二类非独占区块)和与第一业务节点无关的独占区块(即第二类独占区块),这里的锚定定位区块可以包括与第一业务节点相关的普通区块(即第一类非独占区块)和与第一业务节点相关的独占区块(即第一类独占区块),这里的第一类独占区块中的交易数据与第一业务节点相关,因此,本申请实施例可以在实现对与该第一业务节点无关的其他区块内的数据的隐私隔离的同时,提高数据清分的效率。

进一步地,请参见图11,图11是本申请实施例提供的一种交易数据处理装置的结构示意图。该交易数据处理装置10可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如,该交易数据处理装置10为一个应用软件;该交易数据处理装置10可以用于执行本申请实施例提供的方法中的相应步骤。如图11所示,该交易数据处理装置10可以运行于核心共识网络中的共识节点,该共识节点可以为上述图2所对应实施例中的共识节点20c。该交易数据处理装置10可以包括:请求接收模块101,区块获取模块102,区块定位模块103,第一返回模块104;进一步地,该交易数据处理装置10还可以包括:数据隐藏模块105,第二返回模块106,交易确定模块107,第三返回模块108,第四返回模块109,第一确定模块110,第二确定模块111,数据返回模块112;

请求接收模块101,用于接收业务网络中的第一业务节点通过代理节点转发的数据清分请求;代理节点用于对核心共识网络和业务网络进行网络隔离;数据清分请求中携带区块高度M和区块高度N;区块高度M为第一业务节点所存储的区块头链上的最大区块高度;区块高度N为共识节点所维护的区块链上的最大区块高度;N为正整数;M为小于N的正整数;

区块获取模块102,用于基于数据清分请求,在区块链上确定由区块高度M至区块高度N的(N-M)个区块,在(N-M)个区块的区块高度递减方向上获取待处理区块,对待处理区块进行区块识别,得到区块识别结果;

其中,区块获取模块102包括:区块确定单元1021,区块识别单元1022,第一识别单元1023,第一添加单元1024;可选的,区块获取模块102可以进一步包括:第二添加单元1025,第二识别单元1026,第三添加单元1027,第四添加单元1028;

区块确定单元1021,用于基于数据清分请求,在区块链上确定由区块高度M至区块高度N的(N-M)个区块,将确定的(N-M)个区块的区块识别状态标记为待识别状态;

区块识别单元1022,用于在(N-M)个区块中将标识有待识别状态且具有最大区块高度的区块作为待处理区块,对待处理区块中的区块标识信息进行识别;

第一识别单元1023,用于在识别到区块标识信息为第一类区块标识信息时,将待处理区块的区块类型作为第一区块类型,将具有第一区块类型的待处理区块的区块识别状态由待识别状态标记为已识别状态,将具有第一区块类型且标识有已识别状态的待处理区块作为待归类的独占区块,获取待归类的独占区块中的节点标识信息;

第一添加单元1024,用于若获取到的节点标识信息为与第一业务节点相关联的第一类节点标识,则将待归类的独占区块确定为与第一业务节点相关联的第一类独占区块,将第一类独占区块作为第一独占识别结果,且将第一独占识别结果添加至待处理区块对应的区块识别结果;第一独占识别结果用于在待处理区块为第一类独占区块时,执行获取第一类独占区块中的区块锚定信息的步骤。

其中,业务网络包括第二业务节点;

可选的,第二添加单元1025,用于若获取到的节点标识信息为与第二业务节点相关联的第二类节点标识,则将待归类的独占区块确定为与第一业务节点无关的第二类独占区块,将第二类独占区块作为第二独占识别结果,且将第二独占识别结果添加至待处理区块对应的区块识别结果。

可选的,第二识别单元1026,用于在识别到区块标识信息为第二类区块标识信息时,将待处理区块的区块类型作为第二区块类型,将具有第二区块类型的待处理区块的区块识别状态由待识别状态标记为已识别状态,将具有第二区块类型且标识有已识别状态的待处理区块作为待归类的非独占区块,在待归类的非独占区块中筛选与第一业务节点相关联的交易数据;

第三添加单元1027,用于若在待归类的非独占区块中筛选到与第一业务节点相关联的交易数据,则将待归类的非独占区块确定为与第一业务节点相关联的第一类非独占区块,将第一类非独占区块作为第一非独占识别结果,且将第一非独占识别结果添加至待处理区块对应的区块识别结果。

可选的,第四添加单元1028,用于若在待归类的非独占区块中未筛选到与第一业务节点相关联的交易数据,则将待归类的非独占区块确定为与第一业务节点无关的第二类非独占区块,将第二类非独占区块作为第二非独占识别结果,且将第二非独占识别结果添加至待处理区块对应的区块识别结果。

其中,区块确定单元1021,区块识别单元1022,第一识别单元1023,第一添加单元1024,第二添加单元1025,第二识别单元1026,第三添加单元1027以及第四添加单元1028的具体实现方式,可以参见上述图3所对应实施例中对步骤S102的描述,这里将不再进行赘述。

区块定位模块103,用于若区块识别结果指示待处理区块为与第一业务节点相关联的第一类独占区块,则获取第一类独占区块中的区块锚定信息,通过区块锚定信息在(N-M)个区块中定位到与第一业务节点相关联的区块,将定位到的区块确定为锚定定位区块;锚定定位区块的区块高度小于待处理区块的区块高度,且锚定定位区块与待处理区块之间的区块为基于区块锚定信息所跳过的与第一业务节点无关的区块;

第一返回模块104,用于基于锚定定位区块的区块类型,确定用于返回给第一业务节点的第一清分数据,将第一清分数据通过代理节点返回给第一业务节点。

其中,第一返回模块104包括:第一比较单元1041,第二比较单元1042,数据返回单元1043;

第一比较单元1041,用于若锚定定位区块的区块类型与第一类独占区块的区块类型相同,则将锚定定位区块作为第一业务节点的第一子清分数据;

第二比较单元1042,用于若锚定定位区块的区块类型与第一类独占区块的区块类型不同,则获取锚定定位区块中与第一业务节点相关联的关键业务数据信息,将获取到的关键业务数据信息作为第一业务节点的第二子清分数据;

数据返回单元1043,用于将第一子清分数据或者第二子清分数据作为第一业务节点的第一清分数据,将第一清分数据通过代理节点返回给第一业务节点。

其中,第一比较单元1041,第二比较单元1042以及数据返回单元1043的具体实现方式,可以参见上述图3所对应实施例中对步骤S104的描述,这里将不再进行赘述。

可选的,数据隐藏模块105,用于若区块识别结果包含第二独占识别结果,则基于第二独占识别结果所指示的第二类独占区块,对第二类独占区块进行数据隐藏,得到第二类独占区块的区块哈希和第二类独占区块的父区块哈希;

第二返回模块106,将第二类独占区块的区块哈希和第二类独占区块的父区块哈希作为第一业务节点的第二清分数据,将第二清分数据通过代理节点返回给第一业务节点。

可选的,交易确定模块107,用于若区块识别结果包含第一非独占识别结果,则基于第一非独占识别结果所指示的第一类非独占区块,将第一类非独占区块中与第一业务节点相关联的交易数据作为第一交易数据;

第三返回模块108,用于获取第一类非独占区块的区块头和第一交易数据对应的第一默克尔证明信息,将第一交易数据、第一默克尔证明信息和第一类非独占区块的区块头作为第一业务节点的第三清分数据,将第三清分数据通过代理节点返回给第一业务节点。

可选的,第四返回模块109,用于若区块识别结果包含第二非独占识别结果,则基于第二非独占识别结果所指示的第二类非独占区块,将第二类非独占区块的区块头作为第一业务节点的第四清分数据,将第四清分数据通过代理节点返回给第一业务节点。

可选的,第一确定模块110,用于将第一类独占区块作为第一业务节点的第五清分数据;

第二确定模块111,用于在(N-M)个区块中,将锚定定位区块与第一类独占区块之间的区块作为与第一业务节点无关的业务过滤区块,基于业务过滤区块的区块类型,确定用于返回给第一业务节点的第六清分数据;

数据返回模块112,用于将第五清分数据和第六清分数据通过代理节点返回给第一业务节点。

其中,请求接收模块101,区块获取模块102,区块定位模块103,第一返回模块104,数据隐藏模块105,第二返回模块106,交易确定模块107,第三返回模块108,第四返回模块109,第一确定模块110,第二确定模块111以及数据返回模块112的具体实现方式,可以参见上述图3所对应实施例中对步骤S101-步骤S104的描述,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。

进一步地,请参见图12,图12是本申请实施例提供的一种交易数据处理装置的结构示意图。该交易数据处理装置20可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如,该交易数据处理装置20为一个应用软件;该交易数据处理装置20可以用于执行本申请实施例提供的方法中的相应步骤。如图12所示,该交易数据处理装置20可以运行于业务网络中的第一业务节点,该第一业务节点可以为上述图2所对应实施例中的业务节点20a。该交易数据处理装置20可以包括:请求生成模块201,请求发送模块202,数据接收模块203;

请求生成模块201,用于获取区块高度M和区块高度N,基于区块高度M和区块高度N生成数据清分请求;区块高度M为第一业务节点所存储的区块头链上的最大区块高度;区块高度N为核心共识网络中的共识节点所维护的区块链上的最大区块高度;N为正整数;M为小于N的正整数;

请求发送模块202,用于通过代理节点向共识节点发送数据清分请求;代理节点用于对核心共识网络和业务网络进行网络隔离;数据清分请求用于指示共识节点在区块链的由区块高度M至区块高度N的(N-M)个区块的区块高度递减方向上获取待处理区块,且对待处理区块进行区块识别,得到区块识别结果;

数据接收模块203,用于接收共识节点通过代理节点返回的第一清分数据;第一清分数据是由共识节点基于锚定定位区块的区块类型所确定的;锚定定位区块是由共识节点通过区块锚定信息在(N-M)个区块中定位到的;区块锚定信息是共识节点确定区块识别结果指示待处理区块为与第一业务节点相关联的第一类独占区块后获取到的;锚定定位区块的区块高度小于待处理区块的区块高度,且锚定定位区块与待处理区块之间的区块为基于区块锚定信息所跳过的与第一业务节点无关的区块。

其中,请求生成模块201,请求发送模块202以及数据接收模块203的具体实现方式,可以参见上述图7所对应实施例中对步骤S201-步骤S207的描述,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。

进一步地,请参见图13,图13是本申请实施例提供的一种计算机设备的结构示意图。如图13所示,该计算机设备1000可以包括:处理器1001,网络接口1004和存储器1005,此外,上述计算机设备1000还可以包括:用户接口1003,和至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,用户接口1003可以包括显示屏(Display)、键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。可选的,网络接口1004可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器1005还可以是至少一个位于远离前述处理器1001的存储装置。如图13所示,作为一种计算机可读存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。

在如图13所示的计算机设备1000中,网络接口1004可提供网络通讯功能;而用户接口1003主要用于为用户提供输入的接口;而处理器1001可以用于调用存储器1005中存储的设备控制应用程序。

应当理解,本申请实施例中所描述的计算机设备1000可执行前文图3或图7所对应实施例中对交易数据处理方法的描述,也可执行前文图11所对应实施例中对交易数据处理装置10或图12所对应实施例中对交易数据处理装置20的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。

此外,这里需要指出的是:本申请实施例还提供了一种计算机可读存储介质,且计算机可读存储介质中存储有前文提及的交易数据处理装置10或交易数据处理装置20所执行的计算机程序,且计算机程序包括程序指令,当处理器执行程序指令时,能够执行前文图3或图7所对应实施例中对交易数据处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。

此外,需要说明的是:本申请实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或者计算机程序可以包括计算机指令,该计算机指令可以存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器可以执行该计算机指令,使得该计算机设备执行前文图3或图7所对应实施例中对交易数据处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机程序产品或者计算机程序实施例中未披露的技术细节,请参照本申请方法实施例的描述。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。

以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。

相关技术
  • 一种交易数据处理方法、装置、设备以及介质
  • 一种交易数据处理方法、装置、设备及存储介质
技术分类

06120113208000