CN117407437A - 一种基于区块链的数据处理方法、设备以及可读存储介质 - Google Patents
一种基于区块链的数据处理方法、设备以及可读存储介质 Download PDFInfo
- Publication number
- CN117407437A CN117407437A CN202311333391.4A CN202311333391A CN117407437A CN 117407437 A CN117407437 A CN 117407437A CN 202311333391 A CN202311333391 A CN 202311333391A CN 117407437 A CN117407437 A CN 117407437A
- Authority
- CN
- China
- Prior art keywords
- data
- transaction data
- bloom filter
- address
- blockchain
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 20
- 238000000034 method Methods 0.000 claims abstract description 46
- 230000001360 synchronised effect Effects 0.000 claims abstract description 32
- 230000006870 function Effects 0.000 claims description 51
- 238000012795 verification Methods 0.000 claims description 49
- 238000004590 computer program Methods 0.000 claims description 21
- 238000012545 processing Methods 0.000 claims description 17
- 238000012216 screening Methods 0.000 claims description 13
- 238000010586 diagram Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 13
- 238000004891 communication Methods 0.000 description 10
- 230000003993 interaction Effects 0.000 description 7
- 238000001914 filtration Methods 0.000 description 6
- 230000009286 beneficial effect Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 238000013475 authorization Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 239000010410 layer Substances 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 239000002355 dual-layer Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011010 flushing procedure Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Finance (AREA)
- Accounting & Taxation (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Fuzzy Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供了一种基于区块链的数据处理方法、设备以及可读存储介质,该方法包括:接收区块链中的业务节点发送的布隆过滤器;布隆过滤器是业务节点根据所关注的区块链地址对初始布隆过滤器进行地址写入所得到的;获取区块链中的交易数据对应的参与对象地址,将参与对象地址与布隆过滤器进行匹配,得到匹配结果;若匹配结果指示交易数据与布隆过滤器相匹配,则将交易数据确定为区块链地址对应的目标交易数据;基于目标交易数据确定用于返回给业务节点的区块链数据,将区块链数据返回至业务节点。采用本申请,可以提高同步节点的查询效率,且保护业务节点的隐私。
Description
技术领域
本申请涉及互联网技术领域,尤其涉及一种基于区块链的数据处理方法、设备以及可读存储介质。
背景技术
现有的业务节点可以从同步节点主动同步交易数据(例如,业务节点可以从同步节点主动同步与某个区块链地址相关的交易数据),此时,业务节点可以将所关注的区块链地址发送至同步节点,同步节点可以在获取业务节点所关注的区块链地址之后,获取区块链中的交易数据对应的参与对象地址,进而对业务节点所关注的区块链地址进行查询。进一步地,若参与对象地址与区块链地址相同,则业务节点可以确定交易数据为业务节点所关注的交易数据,进而将交易数据返回至业务节点。
然而,在主动同步交易数据的业务节点的数量过多时,同步节点需要查询多个业务节点所关注的区块链地址构成的列表,才能确定交易数据是否为业务节点所关注的,从而会导致同步节点的工作量很大,进而降低同步节点的查询效率。此外,业务节点需要公开其关注的区块链地址,这在一定程度上暴露了业务节点的隐私。
发明内容
本申请实施例提供一种基于区块链的数据处理方法、设备以及可读存储介质,可以提高同步节点的查询效率,且保护业务节点的隐私。
本申请实施例一方面提供了一种基于区块链的数据处理方法,包括:
接收区块链中的业务节点发送的布隆过滤器;布隆过滤器是业务节点根据所关注的区块链地址对初始布隆过滤器进行地址写入所得到的;
获取区块链中的交易数据对应的参与对象地址,将参与对象地址与布隆过滤器进行匹配,得到匹配结果;
若匹配结果指示交易数据与布隆过滤器相匹配,则将交易数据确定为区块链地址对应的目标交易数据;
基于目标交易数据确定用于返回给业务节点的区块链数据,将区块链数据返回至业务节点。
本申请实施例一方面提供了一种基于区块链的数据处理装置,包括:
布隆接收模块,用于接收区块链中的业务节点发送的布隆过滤器;布隆过滤器是业务节点根据所关注的区块链地址对初始布隆过滤器进行地址写入所得到的;
地址匹配模块,用于获取区块链中的交易数据对应的参与对象地址,将参与对象地址与布隆过滤器进行匹配,得到匹配结果;
交易确定模块,用于若匹配结果指示交易数据与布隆过滤器相匹配,则将交易数据确定为区块链地址对应的目标交易数据;
数据发送模块,用于基于目标交易数据确定用于返回给业务节点的区块链数据,将区块链数据返回至业务节点。
其中,地址匹配模块包括:
第一哈希单元,用于获取区块链中的交易数据对应的参与对象地址,通过哈希函数对参与对象地址进行哈希运算,生成参与对象地址对应的第一地址哈希参数;
参数匹配单元,用于将第一地址哈希参数与布隆过滤器进行匹配,得到匹配结果。
其中,布隆过滤器包括F个位置;F为大于1的整数;
参数匹配单元,具体用于从布隆过滤器的F个位置中获取第一地址哈希参数对应的位置,将第一地址哈希参数对应的位置确定为第一候选位置;
参数匹配单元,具体用于从布隆过滤器中获取第一候选位置上的数据元素,若第一候选位置上的数据元素为更新数据元素,则生成用于指示交易数据与布隆过滤器相匹配的匹配结果;
参数匹配单元,具体用于若第一候选位置上的数据元素为默认数据元素,则生成用于指示交易数据与布隆过滤器不匹配的匹配结果。
其中,第一候选位置的数量为至少两个;
参数匹配单元,具体用于从布隆过滤器中获取至少两个第一候选位置上的数据元素,若至少两个第一候选位置上的数据元素均为更新数据元素,则生成用于指示交易数据与布隆过滤器相匹配的匹配结果;
参数匹配单元,具体用于若至少两个第一候选位置上的数据元素中存在默认数据元素,则生成用于指示交易数据与布隆过滤器不匹配的匹配结果。
其中,数据发送模块,具体用于获取目标交易数据所属的目标区块对应的默克尔树,从默克尔树中获取目标交易数据对应的默尔克证明信息;
数据发送模块,具体用于获取目标交易数据所属的目标区块的区块头和目标交易数据对应的交易执行结果,将目标交易数据、默克尔证明信息、目标区块的区块头和交易执行结果,确定为用于返回给业务节点的区块链数据。
本申请实施例一方面提供了一种基于区块链的数据处理方法,包括:
获取所关注的区块链地址,根据区块链地址对初始布隆过滤器进行地址写入,得到布隆过滤器;
将布隆过滤器发送至区块链中的同步节点;同步节点用于将区块链中的交易数据对应的参与对象地址与布隆过滤器进行匹配,得到匹配结果;若匹配结果指示交易数据与布隆过滤器相匹配,则同步节点用于将交易数据确定为区块链地址对应的目标交易数据;
接收同步节点返回的区块链数据;区块链数据是由同步节点基于目标交易数据所确定的。
本申请实施例一方面提供了一种基于区块链的数据处理装置,包括:
地址写入模块,用于获取所关注的区块链地址,根据区块链地址对初始布隆过滤器进行地址写入,得到布隆过滤器;
布隆发送模块,用于将布隆过滤器发送至区块链中的同步节点;同步节点用于将区块链中的交易数据对应的参与对象地址与布隆过滤器进行匹配,得到匹配结果;若匹配结果指示交易数据与布隆过滤器相匹配,则同步节点用于将交易数据确定为区块链地址对应的目标交易数据;
数据接收模块,用于接收同步节点返回的区块链数据;区块链数据是由同步节点基于目标交易数据所确定的。
其中,地址写入模块包括:
第二哈希单元,用于通过哈希函数对区块链地址进行哈希运算,生成区块链地址对应的第二地址哈希参数;
参数写入单元,用于将第二地址哈希参数写入初始布隆过滤器,得到布隆过滤器。
其中,初始布隆过滤器包括F个位置,F个位置上的数据元素均为默认数据元素:F为大于1的整数;
参数写入单元,具体用于从初始布隆过滤器的F个位置中获取第二地址哈希参数对应的位置,将第二地址哈希参数对应的位置确定为第二候选位置;
参数写入单元,具体用于将第二候选位置上的默认数据元素更新为更新数据元素,得到布隆过滤器。
其中,区块链数据包括目标交易数据、目标交易数据对应的默尔克证明信息和目标交易数据所属的目标区块的区块头;
装置还包括:
树根比较模块,用于获取目标交易数据的交易哈希值,基于交易哈希值和默克尔证明信息,确定目标区块对应的待比较树根;
树根比较模块,用于获取目标区块的区块头中针对目标区块的默克尔树根,将待比较树根与默克尔树根进行比较,若待比较树根与默克尔树根相同,则生成用于表征校验成功的校验结果;
树根比较模块,用于若待比较树根与默克尔树根不同,则生成用于表征校验失败的校验结果。
其中,区块链数据包括目标交易数据和目标交易数据对应的交易执行结果;目标交易数据的数量为至少两个;
装置还包括:
数据筛选模块,用于对至少两个目标交易数据进行数据筛选,从至少两个目标交易数据中筛选出所关注的目标交易数据;
数据筛选模块,用于删除至少两个目标交易数据中未筛选出的目标交易数据和未筛选出的目标交易数据对应的交易执行结果。
本申请实施例一方面提供了一种计算机设备,包括:处理器和存储器;
处理器与存储器相连,其中,存储器用于存储计算机程序,计算机程序被处理器执行时,使得该计算机设备执行本申请实施例提供的方法。
本申请实施例一方面提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,该计算机程序适于由处理器加载并执行,以使得具有该处理器的计算机设备执行本申请实施例提供的方法。
本申请实施例一方面提供了一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机程序,处理器执行该计算机程序,使得该计算机设备执行本申请实施例提供的方法。
在本申请实施例中,区块链中的同步节点可以接收区块链中的业务节点发送的布隆过滤器。其中,布隆过滤器是业务节点根据所关注的区块链地址对初始布隆过滤器进行地址写入所得到的。进一步地,同步节点可以获取区块链中的交易数据对应的参与对象地址,将参与对象地址与布隆过滤器进行匹配,得到匹配结果。进一步地,若匹配结果指示交易数据与布隆过滤器相匹配,则同步节点可以将交易数据确定为区块链地址对应的目标交易数据,进而基于目标交易数据确定用于返回给业务节点的区块链数据,将区块链数据返回至业务节点。由此可见,本申请实施例可以无需业务节点将所关注的区块链地址直接发送至同步节点,而是将区块链地址写入布隆过滤器,通过布隆过滤器表示业务节点所关注的区块链地址,从而可以保护业务节点的隐私。此外,本申请实施例可以将交易数据对应的参与对象地址与布隆过滤器进行匹配,从而确定交易数据是否为业务节点所关注的目标交易数据,无需查询业务节点所关注的区块链地址构成的列表,从而可以提高同步节点的查询效率。
附图说明
为了更清楚地说明本申请实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种网络架构的结构示意图;
图2是本申请实施例提供的一种进行数据交互的场景示意图;
图3是本申请实施例提供的一种基于区块链的数据处理方法的流程示意图;
图4是本申请实施例提供的一种交易匹配的场景示意图;
图5是本申请实施例提供的一种交易跟进方法的场景示意图;
图6是本申请实施例提供的一种基于区块链的数据处理方法的流程示意图;
图7是本申请实施例提供的一种地址写入的场景示意图;
图8是本申请实施例提供的一种基于区块链的数据处理装置的结构示意图;
图9是本申请实施例提供的一种基于区块链的数据处理装置的结构示意图;
图10是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
区块链(Blockchain)是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包括了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。
具体的,请参见图1,图1是本申请实施例提供的一种网络架构的结构示意图。如图1所示的网络架构可以应用于区块链系统,该区块链系统可以包括业务网络100a和核心网络100b,以构成图1所示的区块链网络。其中,业务网络100a和核心网络100b均可以包括一个或者多个节点,这里将不对业务网络100a和核心网络100b中的节点的数量进行限制。
如图1所示,业务网络100a中的多个节点具体可以包括节点110a、节点110b、节点110c、…、节点110n;处于业务网络100a中的节点可以称之为业务节点,该业务节点主要用于执行交易业务,以得到与该交易业务相关联的交易数据。可以理解的是,这里的业务节点不需要参与记账共识,但能够通过身份认证的方式从核心网络100b中获得区块头数据和部分授权可见的区块数据。其中,为了保证业务网络100a内的信息互通,业务网络100a中的每个节点之间可以存在信息连接,节点之间可以通过上述信息连接进行信息传输,例如,节点110a和节点110b之间可以存在信息连接。
如图1所示,核心网络100b中的多个节点具体可以包括节点120a、节点120b、节点120c、…、节点120n;处于核心网络100b中的节点可以称之为全节点(即全量节点,FullNode),全节点可以包括共识节点(即记账节点)和同步节点,共识节点可以运行有区块链共识协议,同步节点可以负责查询的功能,本申请实施例不对核心网络100b中的共识节点的数量和同步节点的数量进行限定。其中,为了保证核心网络100b内的信息互通,核心网络100b中的每个节点之间可以存在信息连接,节点之间可以通过上述信息连接进行信息传输,例如,节点120a和节点120b之间可以存在信息连接。
可以理解的是,上述业务网络100a和核心网络100b内的信息连接不限定连接方式,可以通过有线通信方式进行直接或间接地连接,也可以通过无线通信方式进行直接或间接地连接,还可以通过其他连接方式,本申请在此不做限制。
可选的,区块链网络还可以包括用于对业务网络100a和核心网络100b进行网络隔离的路由代理网络,路由代理网络中的代理节点的数量可以为一个或多个,本申请对此不进行限定。代理节点可以将点对点(Peer to Peer)网络进行网络分层,以形成“业务网络—核心网络”这样的分层结构(即双层链结构),进而能够提高区块链上数据的保密性和安全性。
其中,可以理解的是,本申请实施例可以将业务网络100a中的业务节点、以及核心网络100b中的全节点统称为区块链网络中的区块链节点;可选的,本申请实施例可以将路由代理网络中的代理节点、业务网络100a中的业务节点、以及核心网络100b中的全节点统称为区块链网络中的区块链节点。可以理解的是,该区块链节点可以为接入该区块链网络中的服务器,也可以为接入该区块链网络中的终端设备,这里对区块链节点的具体形式不做限定。
其中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。其中,终端设备可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能语音交互设备、智能家电(例如,智能电视)、可穿戴设备、车载终端、飞行器等。本申请实施例可应用于各种场景,包括但不限于区块链、云技术、人工智能、智慧交通、辅助驾驶等。
可以理解的是,本申请书中相关数据(例如,布隆过滤器、区块链数据)收集处理在实例应用时应该严格根据相关国家法律法规的要求,获取个人信息主体的知情同意或单独同意,并在法律法规及个人信息主体的授权范围内,开展后续数据使用及处理行为。
可以理解的是,图1所示的区块链网络中的一些节点存储了完整的区块链数据库,这样的包括所有交易数据的节点可以称为全量节点(例如,同步节点、共识节点);另外一些节点存储了部分的区块链数据库,一般只存储区块头和与自身节点相关联的交易数据,而不存储完整交易数据,它们会通过“简单支付验证(Simplified Payment Verification,简称SPV)”的方式在不下载完整交易数据的情况下完成交易校验(即验证交易的有效性),这样的节点可以称为轻量节点(Lightweight Node)或SPV节点(例如,业务节点)。其中,SPV节点的存储空间和带宽要求可以小于全量节点,例如,业务节点可以为IoT(Internet ofThings,物联网)设备。
可以理解的是,图1所示的业务网络100a和核心网络100b可以处于不同的网络环境,通常来说,业务网络100a可以处于公有网络中,核心网络100b可以处于私有网络中。因此,业务节点部署在处于公网(即公有网络)的业务网络100a中,共识节点和同步节点部署在处于私网(即私有网络)的核心网络100b中,二者可以按照相应的通信协议直接进行数据交互,也可以在引入路由代理网络的情况下,通过路由代理网络间接进行数据交互。
其中,可以理解的是,本申请实施例可以为接入区块链网络的任意一个角色(例如,个人用户、企业、机构等实体对象)绑定一个区块链节点。如图1所示的区块链节点可以分别与需要接入区块链网络中的相应角色(即相应业务场景下的实体对象,简称对象)之间存在一一对应关系。其中,本申请实施例所适用的业务场景可以包括但不限于区块同步场景、交易查询场景和缓存清除场景,这里将不对具体的业务场景进行一一列举。
比如,在区块同步场景下,业务节点可以在需要进行区块同步时,向同步节点发送区块同步请求,区块同步请求可以用于获取与业务节点相关联的交易数据。又比如,在交易查询场景下,业务节点可以在需要查询交易数据时,向共识节点发送数据查询请求,数据查询请求可以用于获取业务节点不具有的交易数据。又比如,在缓存清除场景下,业务节点可以在节点缓存中删除区块同步请求获取到的与业务节点相关联的交易数据。
为便于理解,本申请实施例可以在图1所示的业务网络100a的多个业务节点中选择一个业务节点作为目标业务节点,该目标业务节点具有向核心网络100b发送布隆过滤器的功能,例如,本申请实施例可以将图1所示的节点110a作为目标业务节点。为便于理解,本申请实施例可以在图1所示的核心网络100b中的多个全量节点中选择一个同步节点作为目标同步节点,该目标同步节点具有向业务网络100a返回区块链数据的功能,例如,本申请实施例可以将图1所示的节点120a作为目标同步节点。
为便于理解,请参见表1,表1是本申请实施例提供的一种节点标识列表。该节点标识列表中可以存储有对某一交易数据可见的节点的节点标识和节点名称。如表1所示:
表1
节点名称 | 节点标识 |
节点1 | AAAAAA |
节点2 | BBBBBB |
… | … |
节点J | CCCCCC |
其中,节点标识可为IP(Internet Protocol,网络之间互联的协议)地址以及其他任一种能够用于标识该节点的信息。例如,节点1(例如,节点1可以为图1所示的节点110a)可以通过节点标识BBBBBB向节点2(例如,节点2可以为图1所示的节点120a)发送信息(例如,布隆过滤器),且节点2可以通过节点标识AAAAAA确定该信息是由节点1所发送的;节点2可以通过节点标识AAAAAA向节点1返回信息(例如,区块链数据),且节点1可以通过节点标识BBBBBB确定该信息是由节点2所返回的。可选的,代理节点可以转发节点1向节点2发送的布隆过滤器,代理节点可以转发节点2向节点1返回的区块链数据,比如,这里的节点1可以为目标业务节点,这里的节点2可以为目标同步节点。
其中,核心网络100b中的目标同步节点可以获取目标业务节点发送的加密数据信息。其中,加密数据信息可以为目标业务节点通过核心网络100b的系统公钥对布隆过滤器和签名信息进行加密处理后所得到的,签名信息可以为业务网络100a中的目标业务节点通过该目标业务节点的节点私钥对布隆过滤器进行签名后所得到的。可选的,核心网络100b中的目标同步节点可以获取代理节点转发的加密数据信息。其中,加密数据信息可以为代理节点通过核心网络100b的系统公钥对布隆过滤器和签名信息进行加密处理后所得到的,签名信息可以为业务网络100a中的目标业务节点通过该目标业务节点的节点私钥对布隆过滤器进行签名后所得到的。
进一步地,目标同步节点可以获取核心网络100b的系统私钥(即核心网络100b的系统公钥对应的系统私钥),通过核心网络100b的系统私钥对加密数据信息进行解密处理,得到布隆过滤器和签名信息。进一步地,目标同步节点可以获取目标业务节点的节点公钥(即目标业务节点的节点私钥对应的节点公钥),基于目标业务节点的节点公钥对签名信息进行验签,得到验签结果。进一步地,目标同步节点可以在验签结果指示验签成功时,接收布隆过滤器。可选的,目标同步节点可以在验签结果指示验签失败时,拒绝接收布隆过滤器。
其中,可以理解的是,目标业务节点可以利用哈希函数对布隆过滤器进行哈希运算,从而可以得到布隆过滤器的摘要信息h,并基于目标业务节点的节点私钥对该摘要信息h进行数字签名,得到布隆过滤器对应的签名信息。目标同步节点可以基于目标业务节点的节点公钥对签名信息中的数字签名进行验签,得到布隆过滤器的摘要信息h,并基于目标业务节点所使用的哈希函数对接收到的布隆过滤器进行哈希运算,从而可以得到布隆过滤器的摘要信息H,进而可以将验签所得到的摘要信息h和哈希运算所得到的摘要信息H进行比较,得到验签结果。其中,在摘要信息h与摘要信息H相同时,验签结果指示目标同步节点验签成功;在摘要信息h与摘要信息H不相同时,验签结果指示目标同步节点验签失败。
可选的,代理节点在对加密数据信息进行转发时,还可以通过代理节点的节点私钥对加密数据信息进行加密处理,得到加密后的加密数据信息,以使目标同步节点通过代理节点的节点公钥对加密后的加密数据信息进行解密处理。可选的,目标业务节点在将布隆过滤器和签名信息发送至代理节点之前,可以通过代理节点的节点公钥对布隆过滤器和签名信息进行加密处理,得到加密请求信息,进而将该加密请求信息发送至代理节点。这样,代理节点在接收到加密请求信息时,可以通过该代理节点的节点私钥对加密请求信息进行解密处理,得到布隆过滤器和签名信息。
同理,目标业务节点接收目标同步节点返回的区块链数据的具体过程,可以参见上述目标同步节点接收目标业务节点发送的布隆过滤器的描述,这里将不再进行赘述。
为便于理解,请参见图2,图2是本申请实施例提供的一种进行数据交互的场景示意图。如图2所示的业务节点20a可以为上述图1所对应实施例的业务网络100a中的任意一个节点,如图2所示的同步节点20b可以为上述图1所对应实施例的核心网络100b中的任意一个节点。为便于理解,本申请实施例以上述图1所示的节点110a作为业务节点20a、以上述图1所示的节点120a作为同步节点20b为例,以阐述图2所示的业务节点20a和同步节点20b之间进行数据交互的具体过程。可选的,上述图1所示的节点120a也可以为共识节点(即本申请实施例也可以将共识节点确定为节点20b),此时,图2所示为业务节点20a和共识节点20b之间进行数据交互的具体过程。
如图2所示,业务节点20a可以获取所关注的区块链地址,根据所关注的区块链地址对初始布隆过滤器进行地址写入,得到布隆过滤器。其中,初始布隆过滤器可以为数据元素均为默认数据元素(例如,默认数据元素可以等于0)的布隆过滤器;业务节点20a所关注的区块链地址的数量可以为一个或多个,一个或多个区块链地址具体可以包括区块链地址21a、区块链地址21b、…、区块链地址21c。
其中,布隆过滤器(Bloom Filter)是一种空间效率高、误判率低的概率型数据结构,布隆过滤器实际上是一个很长的二进制向量(该向量可以包括数据元素,这里的向量也可以称之为位数组)和一系列随机映射函数(即哈希函数),可以用于检索一个元素是否在一个集合中。布隆过滤器的主要应用场景是在大规模数据集中进行快速查找和过滤,例如,在网络爬虫中用于过滤重复的URL(Uniform Resource Locator,统一资源定位器)、在邮件系统中用于过滤垃圾邮件、在分布式系统中用于快速查找数据。
进一步地,如图2所示,业务节点20a可以将布隆过滤器发送至同步节点20b,这样,同步节点20b可以接收业务节点20a发送的布隆过滤器,进而获取区块链中的交易数据对应的参与对象地址,将参与对象地址与布隆过滤器进行匹配(即同步节点20b可以根据布隆过滤器过滤区块信息,确定交易数据是否与业务节点20a所关注的区块链地址匹配),得到匹配结果。其中,区块链中的交易数据的数量可以为一个或多个,一个或多个交易数据具体可以包括交易数据22a、交易数据22b、…、交易数据22c,交易数据22a对应的参与对象地址可以为参与对象地址23a,交易数据22b对应的参与对象地址可以为参与对象地址23b,交易数据22c对应的参与对象地址可以为参与对象地址23c。
其中,同步节点20b可以将参与对象地址23a与布隆过滤器进行匹配,得到交易数据22a对应的匹配结果;同步节点20b可以将参与对象地址23b与布隆过滤器进行匹配,得到交易数据22b对应的匹配结果;同步节点20b可以将参与对象地址23c与布隆过滤器进行匹配,得到交易数据22c对应的匹配结果。
进一步地,如图2所示,同步节点可以根据交易数据22a、交易数据22b、…、交易数据22c分别对应的匹配结果,在交易数据22a、交易数据22b、…、交易数据22c中确定业务节点20a所关注的区块链地址对应的目标交易数据。其中,若交易数据22a对应的匹配结果指示交易数据22a与布隆过滤器相匹配,则同步节点20b可以将交易数据22a确定为业务节点20a所关注的区块链地址对应的目标交易数据;可选的,若交易数据22a对应的匹配结果指示交易数据22a与布隆过滤器不匹配,则同步节点20b无需将交易数据22a确定为业务节点20a所关注的区块链地址对应的目标交易数据。同理,同步节点20b可以对交易数据22b、…、交易数据22c分别对应的匹配结果进行判断,这里以交易数据22a、交易数据22b、…、交易数据22c中的交易数据22a和交易数据22b为业务节点20a所关注的区块链地址对应的目标交易数据为例进行说明,即这里以交易数据22a对应的匹配结果与布隆过滤器相匹配和交易数据22b对应的匹配结果与布隆过滤器相匹配为例进行说明。
进一步地,同步节点20b可以基于目标交易数据(即交易数据22a和交易数据22b)确定用于返回给业务节点20a的区块链数据,将区块链数据返回至业务节点20a,这样,业务节点20a可以接收同步节点返回的区块链数据。
可选的,业务节点20a可以获取所关注的交易数据,将所关注的交易数据确定为关注交易数据。进一步地,业务节点20a可以根据关注交易数据对初始布隆过滤器进行地址写入,得到布隆过滤器。其中,业务节点20a根据关注交易数据对初始布隆过滤器进行地址写入的具体过程,可以参见根据所关注的区块链地址对初始布隆过滤器进行地址写入的描述。进一步地,业务节点20a可以将布隆过滤器发送至同步节点20b,这样,同步节点20b可以接收业务节点20a发送的布隆过滤器,获取区块链中的交易数据,将交易数据与布隆过滤器进行匹配(即同步节点20b可以根据布隆过滤器过滤区块信息,确定交易数据是否与业务节点20a所关注的交易数据匹配),得到匹配结果。其中,同步节点20b将交易数据与布隆过滤器进行匹配的具体过程,可以参见将参与对象地址与布隆过滤器进行匹配的描述。进一步地,若匹配结果指示交易数据与布隆过滤器相匹配,则同步节点20b可以确定交易数据为业务节点20a所关注的关注交易数据,进而基于交易数据确定用于返回给业务节点20a的区块链数据;可选的,若匹配结果指示交易数据与布隆过滤器不匹配,则同步节点20b可以确定交易数据不为业务节点20a所关注的关注交易数据,进而无需基于交易数据确定用于返回给业务节点20a的区块链数据。
在本申请实施例中,业务节点20a可以直接将布隆过滤器发送至同步节点20b,也可以将布隆过滤器发送至代理节点(未在图上示出)、以使代理节点将布隆过滤器转发至同步节点20b。同理,同步节点20b可以直接将区块链数据发送至业务节点20a,也可以将区块链数据发送至代理节点(未在图上示出)、以使代理节点将区块链数据转发至业务节点20a。
由于核心网络处于相对安全的私有云中,其互相访问本就有共识机制保证安全,不需要额外加入身份管理和网络控制。而业务节点20a处于公共网络中,可能会被其他不确定的网络终端访问,因此,业务节点20a接入核心网络中的行为需要被严格控制。这样,代理节点或同步节点20b需要对发送布隆过滤器的业务节点20a进行验证(这里以代理节点进行验证为例进行说明),代理节点在接收到业务节点20a发送的布隆过滤器时,可以对业务节点20a进行权限验证,以得到权限验证结果,这里的权限验证可以包括验证业务节点20a的节点标识是否属于非法节点列表中的节点标识。其中,非法节点列表可以是指代理节点所存储的黑名单列表,该非法节点列表中的非法节点标识所对应的非法节点是指检测到的恶意节点、被他人举报的节点,在某一时间段发送交易频率异常的节点等。
其中,可以理解的是,代理节点可以在该非法节点列表中查找与业务节点20a的节点标识相同的非法节点标识,以得到权限验证结果。若权限验证结果指示在非法节点列表中查找到与业务节点20a的节点标识相同的非法节点标识,则代理节点可以确定该权限验证结果属于非法验证结果,此时,代理节点可以确定业务节点20a为非法节点,进而无需将布隆过滤器转发至核心网络中的同步节点20b。可选的,若权限验证结果指示在非法节点列表中未查找到与业务节点20a的节点标识相同的非法节点标识,则代理节点可以确定该权限验证结果属于合法验证结果,此时,代理节点可以确定业务节点20a为合法节点,进而可以将布隆过滤器转发至核心网络中的同步节点20b。
由此可见,本申请实施例可以接收业务节点对所关注的区块链地址进行地址写入所得到的布隆过滤器,将交易数据对应的参与对象地址与布隆过滤器进行匹配,从而基于匹配结果确定是否将交易数据确定为与业务节点相关联的目标交易数据。因此,本申请实施例无需基于参与对象地址对区块链地址进行查找,也无需在业务节点和同步节点之间传输区块链地址,可以提高同步节点的查询效率,且保护业务节点的隐私。此外,由于业务节点可以无需下载整个区块链数据,所以相比于全量节点,业务节点可以更快地同步网络。
进一步地,请参见图3,图3是本申请实施例提供的一种基于区块链的数据处理方法的流程示意图。该数据处理方法可以由同步节点执行,该同步节点可以为上述图1的核心网络100b中的任意一个同步节点(例如,同步节点120a)。
其中,该数据处理方法可以包括以下步骤S101-步骤S104:
步骤S101,接收区块链中的业务节点发送的布隆过滤器;
其中,布隆过滤器是业务节点根据所关注的区块链地址对初始布隆过滤器进行地址写入所得到的。其中,业务节点根据所关注的区块链地址对初始布隆过滤器进行地址写入,得到布隆过滤器的具体过程,可以参见下述图6所对应实施例中对步骤S201的描述。
步骤S102,获取区块链中的交易数据对应的参与对象地址,将参与对象地址与布隆过滤器进行匹配,得到匹配结果;
具体的,同步节点可以获取区块链中的交易数据对应的参与对象地址,通过哈希函数对参与对象地址进行哈希运算,生成参与对象地址对应的第一地址哈希参数。进一步地,同步节点可以将第一地址哈希参数与布隆过滤器进行匹配,得到匹配结果。
其中,交易数据可以为区块链中的任意一个交易数据(即交易数据可以为所有区块中的交易数据),一个交易数据对应的参与对象地址的数量可以为N个,这里的N可以为正整数。比如,在交易数据为转账交易时,交易数据对应的参与对象地址可以为转账交易的转入方和转出方分别对应的参与对象地址(即N等于2),此时,转入方对应的参与对象地址和转出方对应的参与对象地址是不同的。
其中,哈希函数的数量可以为P个,本申请实施例不对哈希运算所使用的哈希函数进行限定,例如,哈希函数可以为MD5信息摘要算法(MD5Message-Digest Algorithm);P个哈希函数可以为对初始布隆过滤器进行地址写入时所使用的哈希函数,哈希函数的多次哈希运算可以减少冲突的概率。同步节点可以通过P个哈希函数对参与对象地址进行哈希运算,生成参与对象地址分别对应的P个第一地址哈希参数,进而将P个第一地址哈希参数分别与布隆过滤器进行匹配,得到匹配结果。
其中,布隆过滤器包括F个位置,这里的F可以为大于1的整数。应当理解,同步节点将第一地址哈希参数与布隆过滤器进行匹配,得到匹配结果的具体过程可以描述为:同步节点可以从布隆过滤器的F个位置中获取第一地址哈希参数对应的位置,将第一地址哈希参数对应的位置确定为第一候选位置。进一步地,同步节点可以从布隆过滤器中获取第一候选位置上的数据元素,若第一候选位置上的数据元素为更新数据元素(例如,更新数据元素可以等于1),则生成用于指示交易数据与布隆过滤器相匹配的匹配结果。进一步地,若第一候选位置上的数据元素为默认数据元素(例如,默认数据元素可以等于0),则同步节点可以生成用于指示交易数据与布隆过滤器不匹配的匹配结果。
可选的,第一候选位置的数量可以为至少两个。可以理解的是,同步节点可以从布隆过滤器中获取至少两个第一候选位置上的数据元素。进一步地,若至少两个第一候选位置上的数据元素均为更新数据元素,则同步节点可以生成用于指示交易数据与布隆过滤器相匹配的匹配结果。可选的,若至少两个第一候选位置上的数据元素中存在默认数据元素,则同步节点可以生成用于指示交易数据与布隆过滤器不匹配的匹配结果。
可选的,第一候选位置的数量可以为P*N个。可以理解的是,同步节点可以从布隆过滤器中获取P*N个第一候选位置上的数据元素。进一步地,若P*N个第一候选位置上的数据元素均为更新数据元素,则同步节点可以生成用于指示交易数据与布隆过滤器相匹配的匹配结果。可选的,若P*N个第一候选位置上的数据元素中存在默认数据元素,则同步节点可以生成用于指示交易数据与布隆过滤器不匹配的匹配结果。
为便于理解,请参见图4,图4是本申请实施例提供的一种交易匹配的场景示意图。如图4所示以交易数据对应的参与对象地址的数量为1个、哈希函数的数量为2个、布隆过滤器包括10个位置为例进行说明,2个哈希函数具体可以包括哈希函数40a和哈希函数40b,10个位置具体可以包括位置1、位置2、位置3、位置4、位置5、位置6、位置7、位置8、位置9和位置10。其中,位置1、位置5和位置7上的数据元素可以为更新数据元素,位置2、位置3、位置4、位置6、位置8、位置9和位置10上的数据元素可以为默认数据元素。
如图4所示,同步节点可以通过哈希函数40a对参与对象地址进行哈希运算,生成参与对象地址对应的第一地址哈希参数41a(简称地址哈希参数41a);同步节点可以通过哈希函数40b对参与对象地址进行哈希运算,生成参与对象地址对应的第一地址哈希参数41b(简称地址哈希参数41b)。例如,地址哈希参数41a可以等于1,地址哈希参数41b可以等于5。
如图4所示,同步节点可以从位置1、位置2、位置3、位置4、位置5、位置6、位置7、位置8、位置9和位置10中获取地址哈希参数41a和地址哈希参数41b分别对应的位置,地址哈希参数41a对应的位置可以为位置1,地址哈希参数41b对应的位置可以为位置5,因此,同步节点可以将位置1和位置5均确定为第一候选位置。其中,位置1和位置5上的数据元素均为更新数据元素,所以同步节点可以生成用于指示交易数据与布隆过滤器相匹配的匹配结果。
步骤S103,若匹配结果指示交易数据与布隆过滤器相匹配,则将交易数据确定为区块链地址对应的目标交易数据;
可选的,若匹配结果指示交易数据与布隆过滤器不匹配,则同步节点无需将交易数据确定为区块链地址对应的目标交易数据。换言之,同步节点可以从区块链的交易数据中获取与布隆过滤器相匹配的交易数据,将与布隆过滤器相匹配的交易数据确定为区块链地址对应的目标交易数据,而无需从区块链的交易数据中获取与布隆过滤器不匹配的交易数据,且无需将与布隆过滤器不匹配的交易数据确定为区块链地址对应的目标交易数据。
换言之,同步节点可以计算交易数据的参与方的地址(即参与对象地址)的哈希值(即第一地址哈希参数),在布隆过滤器中查找第一地址哈希参数是否在布隆过滤器中(即在布隆过滤器中查找第一地址哈希参数是否与布隆过滤器相匹配)。进一步地,若布隆过滤器与第一地址哈希参数相匹配,则同步节点可以确定获取到的交易数据可能为与业务节点关心的区块链地址相关联的交易数据;可选的,若布隆过滤器与第一地址哈希参数不匹配,则同步节点可以确定获取到的交易数据一定不为与业务节点关心的区块链地址相关联的交易数据。
步骤S104,基于目标交易数据确定用于返回给业务节点的区块链数据,将区块链数据返回至业务节点。
具体的,同步节点可以获取目标交易数据所属的目标区块对应的默克尔树,从默克尔树中获取目标交易数据对应的默尔克证明信息。进一步地,同步节点可以获取目标交易数据所属的目标区块的区块头和目标交易数据对应的交易执行结果,将目标交易数据、默克尔证明信息、目标区块的区块头和交易执行结果,确定为用于返回给业务节点的区块链数据。可选的,同步节点也可以将目标交易数据、默克尔证明信息和目标区块的区块头,确定为用于返回给业务节点的区块链数据,本申请实施例不对区块链数据所包括的具体数据进行限定。因此,本申请可以无需向业务节点返回所有区块的区块头,而是向业务节点返回目标区块的区块头,从而可以在减少业务节点的存储压力的同时,减少网络传输的数据量;可选的,在目标区块为所有区块时,目标区块的区块头为所有区块的区块头。
其中,交易执行结果可以包括目标交易数据对应的交易读集合(即读集合)和交易写集合(即写集合),交易读集合可以包括目标交易数据的交易读数据,交易写集合可以包括目标交易数据的交易写数据。可选的,交易执行结果还可以包括目标交易数据对应的执行结果相关参数,执行结果相关参数可以表示目标交易数据是否被正确执行、目标交易数据执行的时间戳和错误码等。
其中,目标交易数据的数量可以为一个或多个,一个或多个目标交易数据可以属于相同的目标区块、也可以属于不同的目标区块。可以理解的是,一个或多个目标交易数据中属于同一目标区块的目标交易数据可以用于生成该目标区块对应的默克尔证明信息。其中,若一个或多个目标交易数据属于相同的目标区块,则一个或多个目标交易数据可以用于生成该目标区块对应的默克尔证明信息,相应的,目标交易数据所属的目标区块的区块头的数量为一个;可选的,若一个或多个目标交易数据属于多个目标区块(即一个或多个目标交易数据属于不同的目标区块),则一个或多个目标交易数据可以用于生成多个目标区块分别对应的默克尔证明信息,相应的,目标交易数据所属的目标区块的区块头的数量为多个。
其中,默克尔证明信息可以由默克尔路径(即默克尔树)中的交易哈希值构成,默克尔证明信息和目标交易数据的交易哈希值可以用于构成目标区块对应的默克尔树。其中,默克尔树(Merkle Tree)是一种哈希树,它的主要作用是验证数据的完整性和一致性。默克尔树的构建过程是将数据分成块(即目标区块中的交易数据),然后对每个块进行哈希运算,得到一个哈希值(即交易哈希值);接着将相邻的两个哈希值再次进行哈希运算,得到一个新的哈希值(即交易哈希值);这个过程一直重复,直到最终得到一个根哈希值,也就是默克尔树的根节点。
为便于理解,请参见图5,图5是本申请实施例提供的一种交易跟进方法的场景示意图。如图5所示的基于布隆过滤器的SPV交易跟进方法可以包括业务节点和全节点,这里以业务节点的数量为三个为例进行说明,三个业务节点具体可以包括业务节点50a、业务节点50b和业务节点50c,业务节点50a、业务节点50b和业务节点50c均可以根据各自所关注的区块链地址对初始布隆过滤器进行地址写入,得到各自对应的布隆过滤器(即业务节点50a、业务节点50b和业务节点50c分别对应的布隆过滤器),进而将各自对应的布隆过滤器发送至区块链中的全节点(例如,同步节点)。
如图5所示,区块链中的同步节点可以获取业务节点50a、业务节点50b和业务节点50c分别对应的区块链数据,将业务节点50a对应的区块链数据返回至业务节点50a,将业务节点50b对应的区块链数据返回至业务节点50b,将业务节点50c对应的区块链数据返回至业务节点50c。其中,由于业务节点50a、业务节点50b和业务节点50c分别所关注的区块链地址是不同的,所以业务节点50a、业务节点50b和业务节点50c分别对应的布隆过滤器是不同的,相应的,同步节点向业务节点50a、业务节点50b和业务节点50c所分别返回的区块链数据是不同的。
在本申请实施例中,区块链中的同步节点可以接收区块链中的业务节点发送的布隆过滤器。其中,布隆过滤器是业务节点根据所关注的区块链地址对初始布隆过滤器进行地址写入所得到的。进一步地,同步节点可以获取区块链中的交易数据对应的参与对象地址,将参与对象地址与布隆过滤器进行匹配,得到匹配结果。进一步地,若匹配结果指示交易数据与布隆过滤器相匹配,则同步节点可以将交易数据确定为区块链地址对应的目标交易数据,进而基于目标交易数据确定用于返回给业务节点的区块链数据,将区块链数据返回至业务节点。由此可见,本申请实施例可以无需业务节点将所关注的区块链地址直接发送至同步节点,而是将区块链地址写入布隆过滤器,通过布隆过滤器表示业务节点所关注的区块链地址,从而可以保护业务节点的隐私。此外,本申请实施例可以将交易数据对应的参与对象地址与布隆过滤器进行匹配,从而确定交易数据是否为业务节点所关注的目标交易数据,无需查询业务节点所关注的区块链地址构成的列表,从而可以提高同步节点的查询效率。
进一步地,请参见图6,图6是本申请实施例提供的一种基于区块链的数据处理方法的流程示意图。该数据处理方法可以由业务节点执行,该区块链节点可以为上述图1的业务网络100a中的任意一个业务节点(例如,业务节点110a)。其中,该数据处理方法可以包括以下步骤S201-步骤S203:
步骤S201,获取所关注的区块链地址,根据区块链地址对初始布隆过滤器进行地址写入,得到布隆过滤器;
具体的,业务节点可以获取所关注的区块链地址。其中,业务节点所关注的区块链地址的数量可以为K个,这里的K可以为正整数。进一步地,业务节点可以通过哈希函数对区块链地址进行哈希运算,生成区块链地址对应的第二地址哈希参数。进一步地,业务节点可以将第二地址哈希参数写入初始布隆过滤器,得到布隆过滤器。
其中,哈希函数的数量可以为P个,本申请实施例不对哈希运算所使用的哈希函数进行限定,例如,哈希函数可以为MD5信息摘要算法(MD5Message-Digest Algorithm);P个哈希函数可以为将参与对象地址与布隆过滤器进行匹配时所使用的哈希函数,哈希函数的多次哈希运算可以减少冲突的概率。业务节点可以通过P个哈希函数对区块链地址进行哈希运算,生成区块链地址分别对应的P个第二地址哈希参数,进而将P个第二地址哈希参数分别写入初始布隆过滤器,得到布隆过滤器。
其中,初始布隆过滤器包括F个位置,F个位置上的数据元素均为默认数据元素,这里的F可以为大于1的整数。应当理解,业务节点将第二地址哈希参数写入初始布隆过滤器,得到布隆过滤器的具体过程可以描述为:业务节点可以从初始布隆过滤器的F个位置中获取第二地址哈希参数对应的位置,将第二地址哈希参数对应的位置确定为第二候选位置。进一步地,业务节点可以将第二候选位置上的默认数据元素更新为更新数据元素,得到布隆过滤器。
可选的,第二候选位置的数量可以为至少两个。可以理解的是,业务节点可以将至少两个第二地址哈希参数对应的位置均确定为第二候选位置,进而将至少两个第二候选位置上的默认数据元素均更新为更新数据元素,得到布隆过滤器。
可选的,第二候选位置的数量可以为P*K个。可以理解的是,业务节点可以将P*K个第二地址哈希参数对应的位置均确定为第二候选位置,进而将P*K个第二候选位置上的默认数据元素均更新为更新数据元素,得到布隆过滤器。
为便于理解,请参见图7,图7是本申请实施例提供的一种地址写入的场景示意图。如图7所示以业务节点所关注的区块链地址的数量为2个、哈希函数的数量为2个,初始布隆过滤器包括10个位置为例进行说明,2个区块链地址具体可以包括区块链地址72a和区块链地址72b,2个哈希函数具体可以包括哈希函数70a(哈希函数70a可以为上述图4所对应实施例中的哈希函数40a)和哈希函数70b(哈希函数70b可以为上述图4所对应实施例中的哈希函数40b),10个位置具体可以包括位置1、位置2、位置3、位置4、位置5、位置6、位置7、位置8、位置9和位置10。其中,位置1、位置2、位置3、位置4、位置5、位置6、位置7、位置8、位置9和位置10上的数据元素可以为默认数据元素。
如图7所示,业务节点可以通过哈希函数70a对区块链地址72a进行哈希运算,生成区块链地址72a对应的第二地址哈希参数71a(简称地址哈希参数71a);业务节点可以通过哈希函数70b对区块链地址72a进行哈希运算,生成区块链地址72a对应的第二地址哈希参数71b(简称地址哈希参数71b)。例如,地址哈希参数71a可以等于1,地址哈希参数71b可以等于5。
如图7所示,业务节点可以通过哈希函数70a对区块链地址72b进行哈希运算,生成区块链地址72b对应的第二地址哈希参数71c(简称地址哈希参数71c);业务节点可以通过哈希函数70b对区块链地址72b进行哈希运算,生成区块链地址72b对应的第二地址哈希参数71d(简称地址哈希参数71d)。例如,地址哈希参数71c可以等于5,地址哈希参数71d可以等于7。
如图7所示,业务节点可以从位置1、位置2、位置3、位置4、位置5、位置6、位置7、位置8、位置9和位置10中获取地址哈希参数71a、地址哈希参数71b、地址哈希参数71c和地址哈希参数71d分别对应的位置,地址哈希参数71a对应的位置可以为位置1,地址哈希参数71b对应的位置可以为位置5,地址哈希参数71c对应的位置可以为位置5,地址哈希参数71d对应的位置可以为位置7,因此,业务节点可以将位置1、位置5和位置7确定为第二候选位置,进而将第二候选位置(即位置1、位置5和位置7)上的默认数据元素更新为更新数据元素,得到布隆过滤器(这里的布隆过滤器可以为上述图4所对应实施例中的布隆过滤器)。
应当理解,业务节点可以安装有具备数据处理功能的资源客户端(即SPV客户端),资源客户端可以为集成在某客户端(例如,浏览器)中的子客户端,资源客户端还可以为独立的客户端,本申请实施例不对资源客户端的类型进行限定。资源客户端可以用于保管用户在区块链上的账户私钥(即区块链私钥),区块链可以通过区块链私钥来标识用户的身份,用户的数字资产是通过区块链私钥来管理的。通过区块链私钥可以对操作(例如,数字资产转移)进行签名交易确认,签名的交易可以由资源客户端发送到共识节点,只有正确的交易才会被区块链执行,伪造的签名区块链会拒绝并提示失败。
资源客户端可以是硬件设备也可以为软件程序,资源客户端可以用以实现资源管理业务功能,并基于该资源管理业务功能实现与去中心化应用客户端(简称去中心化应用,去中心化应用可以为区块链应用)之间的通信连接,以实现用户的授权登录等相关操作。其中,资源客户端是一种用于负责管理、存储用户数字资产、发起交易、参与投票的工具,例如可基于资源客户端向其它账户转移数字资产,又如可基于资源客户端接收其它账户所转入的数字资产。随着各类去中心化应用在区块链上广泛部署,用户在区块链上的活动增加,一般用户在使用去中心化应用时,可使用区块链密钥管理工具(即资源客户端)进行登录。其中,数字资产是指基于区块链技术发行、登记、存储、持有、转让或交易的新型无形资产,这些无形资产以数字化的形式存在于特定系统中,作为价值或权利的数字化标识。
可以理解的是,业务节点所关注的区块链地址可以为在业务节点的资源客户端中所生成的区块链地址,也可以为在其他业务节点的资源客户端中所生成的区块链地址。此时,该业务节点需要获取其他业务节点的授权才可以将在其他业务节点的资源客户端中所生成的区块链地址写入初始布隆过滤器,从而可以确保业务节点最终获取到的区块链数据是与其自身相关联或与授权过的其他业务节点相关联,进而提高目标交易数据的安全性,保证该业务节点无法获取到与未授权过的其他业务节点相关联的区块链数据。
步骤S202,将布隆过滤器发送至区块链中的同步节点;
可以理解的是,业务节点可以基于其节点标识向同步节点发送数据同步请求;可选的,业务节点可以基于其节点标识向上级节点发送数据同步请求,以使上级节点向同步节点转发数据同步请求。其中,数据同步请求可以包括布隆过滤器,上级节点可以为业务网络中的其他业务节点。
其中,同步节点用于将区块链中的交易数据对应的参与对象地址与布隆过滤器进行匹配,得到匹配结果;若匹配结果指示交易数据与布隆过滤器相匹配,则同步节点用于将交易数据确定为区块链地址对应的目标交易数据。其中,同步节点将区块链中的交易数据对应的参与对象地址与布隆过滤器进行匹配,得到匹配结果的具体过程,可以参见上述图3所对应实施例中对步骤S102的描述,这里将不再进行赘述。
步骤S203,接收同步节点返回的区块链数据。
其中,区块链数据是由同步节点基于目标交易数据所确定的。其中,同步节点基于目标交易数据确定区块链数据的具体过程,可以参见上述图3所对应实施例中对步骤S104的描述,这里将不再进行赘述。
可以理解的是,业务节点可以通过资源客户端获取所关注的区块链地址,根据区块链地址对初始布隆过滤器进行地址写入,得到布隆过滤器,进而通过资源客户端将布隆过滤器发送至区块链中的同步节点,且通过资源客户端接收同步节点返回的区块链数据。
其中,区块链数据包括目标交易数据、目标交易数据对应的默尔克证明信息和目标交易数据所属的目标区块的区块头。应当理解,业务节点对目标交易数据进行交易验证(即验证目标交易数据的完整性)的具体过程可以描述为:业务节点可以获取目标交易数据的交易哈希值,基于交易哈希值和默克尔证明信息,确定目标区块对应的待比较树根。进一步地,业务节点可以获取目标区块的区块头中针对目标区块的默克尔树根(即默克尔树的根哈希值,默克尔树是由共识节点基于目标区块中的交易数据的交易哈希值所构建的),将待比较树根与默克尔树根进行比较。进一步地,若待比较树根与默克尔树根相同,则业务节点可以生成用于表征校验成功的校验结果(即第一校验结果),此时校验结果说明目标交易数据没有被篡改过。可选的,若待比较树根与默克尔树根不同,则业务节点可以生成用于表征校验失败的校验结果(即第一校验结果),此时校验结果说明目标交易数据被篡改过。
其中,默尔克证明信息可以包括路径哈希值和默尔克路径,默尔克路径可以表示路径哈希值的排序方式。因此,业务节点可以基于交易哈希值、路径哈希值和默克尔路径,构建与目标交易数据相关联的待比较默尔克树,将待比较默克尔树的树根作为待比较树根。
为便于理解,这里以目标区块中的交易数据的数量为4个为例进行说明,4个交易数据可以为交易数据1、交易数据2、交易数据3和交易数据4。其中,对4个交易数据进行哈希运算可以得到交易数据的交易哈希值,例如,交易数据1的交易哈希值可以为交易哈希值1(例如,Hash1),交易数据2的交易哈希值可以为交易哈希值2(例如,Hash2),交易数据3的交易哈希值可以为交易哈希值3(例如,Hash3),交易数据4的交易哈希值可以为交易哈希值4(例如,Hash4)。例如,目标交易数据可以为目标区块中的交易数据3和交易数据4。可以理解的是,共识节点可以获取目标交易数据对应的默克尔证明信息,这里的默克尔证明信息可以由默克尔路径和路径哈希值构成,例如,这里可以由Hash12(即基于Hash1和Hash2所生成的哈希值,表示对Hash1和Hash2的拼接结果进行哈希运算后所得到的哈希值)作为路径哈希值。
其中,区块链数据包括目标交易数据和目标交易数据对应的交易执行结果,目标交易数据的数量为至少两个。应当理解,业务节点可以对至少两个目标交易数据进行数据筛选,从至少两个目标交易数据中筛选出所关注的目标交易数据。进一步地,业务节点可以删除至少两个目标交易数据中未筛选出的目标交易数据和未筛选出的目标交易数据对应的交易执行结果。其中,由于布隆过滤器有可能出现误判(即将某些交易数据错误地判断为与业务节点所关注的区块链地址相关联的交易数据),从而导致同步节点所返回的目标交易数据可能不是与区块链地址相关联的交易数据,所以通过业务节点对同步节点所返回的目标交易数据进行数据筛选,可以有效去除目标交易数据中不是业务节点所关注的交易数据。
可选的,业务节点可以从目标区块的区块头中获取针对目标区块的节点签名,确定节点签名的签名数量。进一步地,业务节点可以获取区块链网络中的共识节点数量。进一步地,若签名数量与共识节点数量之间的比例大于比例阈值,则业务节点可以生成用于表征校验成功的校验结果(即第二校验结果)。可选的,若签名数量与共识节点数量之间的比例小于或等于比例阈值,则业务节点可以生成用于表征校验不成功的校验结果(即第二校验结果)。其中,本申请实施例不对比例阈值的具体取值进行限定。
可选的,业务节点可以从节点磁盘中获取区块高度小于目标区块的目标区块高度的上一区块,获取上一区块的区块哈希值(即上一区块的区块头中的默克尔树根、区块哈希)和目标区块的区块头中的父区块哈希值(即父区块哈希),将区块哈希值与父区块哈希值进行比较,若区块哈希值与父区块哈希值相同,则生成用于表征校验成功的校验结果(即第三校验结果)。可选的,若区块哈希值与父区块哈希值不同,则业务节点可以生成用于表征校验失败的校验结果(即第三校验结果)。
应当理解,本申请实施例可以在第一校验结果指示校验成功时,对同步节点所返回的区块链数据进行存储,或是在数据筛选后对与筛选出的目标交易数据相关联的区块链数据进行存储;可选的,本申请实施例可以在第二校验结果指示校验成功时,对同步节点所返回的区块链数据进行存储,或是在数据筛选后对与筛选出的目标交易数据相关联的区块链数据进行存储;可选的,本申请实施例可以在第三校验结果指示校验成功时,对同步节点所返回的区块链数据进行存储,或是在数据筛选后对与筛选出的目标交易数据相关联的区块链数据进行存储;可选的,本申请实施例可以在第一校验结果、第二校验结果和第三校验结果均指示校验成功时,对同步节点所返回的区块链数据进行存储,或是在数据筛选后对与筛选出的目标交易数据相关联的区块链数据进行存储。
应当理解,随着业务节点关注的区块链地址的变化,业务节点需要不断更新布隆过滤器,得到更新后的布隆过滤器,并将更新后的布隆过滤器发送至同步节点以获取最新的区块链数据。因此,本申请实施例可以快速确定某个交易数据是否为业务节点所关注的交易数据,从而可以在保证查询效率和隐私性的同时,帮助业务节点验证与其关心的区块链地址或关注交易数据相关的区块链数据。
在本申请实施例中,区块链中的业务节点可以获取所关注的区块链地址,根据区块链地址对初始布隆过滤器进行地址写入,得到布隆过滤器。进一步地,业务节点可以将布隆过滤器发送至区块链中的同步节点。其中,同步节点用于将区块链中的交易数据对应的参与对象地址与布隆过滤器进行匹配,得到匹配结果;若匹配结果指示交易数据与布隆过滤器相匹配,则同步节点用于将交易数据确定为区块链地址对应的目标交易数据。进一步地,业务节点可以接收同步节点返回的区块链数据。其中,区块链数据是由同步节点基于目标交易数据所确定的。由此可见,本申请实施例可以无需业务节点将所关注的区块链地址直接发送至同步节点,而是将区块链地址写入布隆过滤器,通过布隆过滤器表示业务节点所关注的区块链地址,从而可以保护业务节点的隐私。此外,本申请实施例可以将交易数据对应的参与对象地址与布隆过滤器进行匹配,从而确定交易数据是否为业务节点所关注的目标交易数据,无需查询业务节点所关注的区块链地址构成的列表,从而可以提高同步节点的查询效率。
进一步地,请参见图8,图8是本申请实施例提供的一种基于区块链的数据处理装置的结构示意图。该数据处理装置1可以包括:布隆接收模块11,地址匹配模块12,交易确定模块13,数据发送模块14;
布隆接收模块11,用于接收区块链中的业务节点发送的布隆过滤器;布隆过滤器是业务节点根据所关注的区块链地址对初始布隆过滤器进行地址写入所得到的;
地址匹配模块12,用于获取区块链中的交易数据对应的参与对象地址,将参与对象地址与布隆过滤器进行匹配,得到匹配结果;
其中,地址匹配模块12包括:第一哈希单元121,参数匹配单元122;
第一哈希单元121,用于获取区块链中的交易数据对应的参与对象地址,通过哈希函数对参与对象地址进行哈希运算,生成参与对象地址对应的第一地址哈希参数;
参数匹配单元122,用于将第一地址哈希参数与布隆过滤器进行匹配,得到匹配结果。
其中,布隆过滤器包括F个位置;F为大于1的整数;
参数匹配单元122,具体用于从布隆过滤器的F个位置中获取第一地址哈希参数对应的位置,将第一地址哈希参数对应的位置确定为第一候选位置;
参数匹配单元122,具体用于从布隆过滤器中获取第一候选位置上的数据元素,若第一候选位置上的数据元素为更新数据元素,则生成用于指示交易数据与布隆过滤器相匹配的匹配结果;
参数匹配单元122,具体用于若第一候选位置上的数据元素为默认数据元素,则生成用于指示交易数据与布隆过滤器不匹配的匹配结果。
其中,第一候选位置的数量为至少两个;
参数匹配单元122,具体用于从布隆过滤器中获取至少两个第一候选位置上的数据元素,若至少两个第一候选位置上的数据元素均为更新数据元素,则生成用于指示交易数据与布隆过滤器相匹配的匹配结果;
参数匹配单元122,具体用于若至少两个第一候选位置上的数据元素中存在默认数据元素,则生成用于指示交易数据与布隆过滤器不匹配的匹配结果。
其中,第一哈希单元121,参数匹配单元122的具体实现方式,可以参见上述图3所对应实施例中对步骤S102的描述,这里将不再进行赘述。
交易确定模块13,用于若匹配结果指示交易数据与布隆过滤器相匹配,则将交易数据确定为区块链地址对应的目标交易数据;
数据发送模块14,用于基于目标交易数据确定用于返回给业务节点的区块链数据,将区块链数据返回至业务节点。
其中,数据发送模块14,具体用于获取目标交易数据所属的目标区块对应的默克尔树,从默克尔树中获取目标交易数据对应的默尔克证明信息;
数据发送模块14,具体用于获取目标交易数据所属的目标区块的区块头和目标交易数据对应的交易执行结果,将目标交易数据、默克尔证明信息、目标区块的区块头和交易执行结果,确定为用于返回给业务节点的区块链数据。
其中,布隆接收模块11,地址匹配模块12,交易确定模块13,数据发送模块14的具体实现方式,可以参见上述图3所对应实施例中对步骤S101-步骤S104的描述,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
进一步地,请参见图9,图9是本申请实施例提供的一种基于区块链的数据处理装置的结构示意图。该数据处理装置2可以包括:地址写入模块21,布隆发送模块22,数据接收模块23;进一步地,该数据处理装置2还可以包括:树根比较模块24,数据筛选模块25;
地址写入模块21,用于获取所关注的区块链地址,根据区块链地址对初始布隆过滤器进行地址写入,得到布隆过滤器;
其中,地址写入模块21包括:第二哈希单元211,参数写入单元212;
第二哈希单元211,用于通过哈希函数对区块链地址进行哈希运算,生成区块链地址对应的第二地址哈希参数;
参数写入单元212,用于将第二地址哈希参数写入初始布隆过滤器,得到布隆过滤器。
其中,初始布隆过滤器包括F个位置,F个位置上的数据元素均为默认数据元素:F为大于1的整数;
参数写入单元212,具体用于从初始布隆过滤器的F个位置中获取第二地址哈希参数对应的位置,将第二地址哈希参数对应的位置确定为第二候选位置;
参数写入单元212,具体用于将第二候选位置上的默认数据元素更新为更新数据元素,得到布隆过滤器。
其中,第二哈希单元211,参数写入单元212的具体实现方式,可以参见上述图6所对应实施例中对步骤S201的描述,这里将不再进行赘述。
布隆发送模块22,用于将布隆过滤器发送至区块链中的同步节点;同步节点用于将区块链中的交易数据对应的参与对象地址与布隆过滤器进行匹配,得到匹配结果;若匹配结果指示交易数据与布隆过滤器相匹配,则同步节点用于将交易数据确定为区块链地址对应的目标交易数据;
数据接收模块23,用于接收同步节点返回的区块链数据;区块链数据是由同步节点基于目标交易数据所确定的。
可选的,区块链数据包括目标交易数据、目标交易数据对应的默尔克证明信息和目标交易数据所属的目标区块的区块头;
树根比较模块24,用于获取目标交易数据的交易哈希值,基于交易哈希值和默克尔证明信息,确定目标区块对应的待比较树根;
树根比较模块24,用于获取目标区块的区块头中针对目标区块的默克尔树根,将待比较树根与默克尔树根进行比较,若待比较树根与默克尔树根相同,则生成用于表征校验成功的校验结果;
树根比较模块24,用于若待比较树根与默克尔树根不同,则生成用于表征校验失败的校验结果。
可选的,区块链数据包括目标交易数据和目标交易数据对应的交易执行结果;目标交易数据的数量为至少两个;
数据筛选模块25,用于对至少两个目标交易数据进行数据筛选,从至少两个目标交易数据中筛选出所关注的目标交易数据;
数据筛选模块25,用于删除至少两个目标交易数据中未筛选出的目标交易数据和未筛选出的目标交易数据对应的交易执行结果。
其中,地址写入模块21,布隆发送模块22,数据接收模块23,树根比较模块24,数据筛选模块25的具体实现方式,可以参见上述图6所对应实施例中对步骤S201-步骤S203的描述,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
进一步地,请参见图10,图10是本申请实施例提供的一种计算机设备的结构示意图,该计算机设备可以是终端设备或服务器。如图10所示,该计算机设备1000可以包括:处理器1001,网络接口1004和存储器1005,此外,上述计算机设备1000还可以包括:用户接口1003,和至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,在一些实施例中,用户接口1003可以包括显示屏(Display)、键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。可选的,网络接口1004可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器1005还可以是至少一个位于远离前述处理器1001的存储装置。如图10所示,作为一种计算机可读存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序,以实现:
接收区块链中的业务节点发送的布隆过滤器;布隆过滤器是业务节点根据所关注的区块链地址对初始布隆过滤器进行地址写入所得到的;
获取区块链中的交易数据对应的参与对象地址,将参与对象地址与布隆过滤器进行匹配,得到匹配结果;
若匹配结果指示交易数据与布隆过滤器相匹配,则将交易数据确定为区块链地址对应的目标交易数据;
基于目标交易数据确定用于返回给业务节点的区块链数据,将区块链数据返回至业务节点。
获取所关注的区块链地址,根据区块链地址对初始布隆过滤器进行地址写入,得到布隆过滤器;
将布隆过滤器发送至区块链中的同步节点;同步节点用于将区块链中的交易数据对应的参与对象地址与布隆过滤器进行匹配,得到匹配结果;若匹配结果指示交易数据与布隆过滤器相匹配,则同步节点用于将交易数据确定为区块链地址对应的目标交易数据;
接收同步节点返回的区块链数据;区块链数据是由同步节点基于目标交易数据所确定的。
在如图10所示的计算机设备1000中,网络接口1004可提供网络通讯功能;而用户接口1003主要用于为用户提供输入的接口;而处理器1001可以用于调用存储器1005中存储的设备控制应用程序。
应当理解,本申请实施例中所描述的计算机设备1000可执行前文图3和图6所对应实施例中对数据处理方法的描述,也可执行前文图8所对应实施例中对数据处理装置1和图9所对应实施例中对数据处理装置2的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
此外,这里需要指出的是:本申请实施例还提供了一种计算机可读存储介质,且计算机可读存储介质中存储有前文提及的数据处理装置1和数据处理装置2所执行的计算机程序,当处理器执行计算机程序时,能够执行前文图3和图6所对应实施例中对数据处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。
此外,需要说明的是:本申请实施例还提供了一种计算机程序产品,该计算机程序产品可以包括计算机程序,该计算机程序可以存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机程序,处理器可以执行该计算机程序,使得该计算机设备执行前文图3和图6所对应实施例中对数据处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机程序产品实施例中未披露的技术细节,请参照本申请方法实施例的描述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (15)
1.一种基于区块链的数据处理方法,其特征在于,包括:
接收所述区块链中的业务节点发送的布隆过滤器;所述布隆过滤器是所述业务节点根据所关注的区块链地址对初始布隆过滤器进行地址写入所得到的;
获取所述区块链中的交易数据对应的参与对象地址,将所述参与对象地址与所述布隆过滤器进行匹配,得到匹配结果;
若所述匹配结果指示所述交易数据与所述布隆过滤器相匹配,则将所述交易数据确定为所述区块链地址对应的目标交易数据;
基于所述目标交易数据确定用于返回给所述业务节点的区块链数据,将所述区块链数据返回至所述业务节点。
2.根据权利要求1所述的方法,其特征在于,所述获取所述区块链中的交易数据对应的参与对象地址,将所述参与对象地址与所述布隆过滤器进行匹配,得到匹配结果,包括:
获取所述区块链中的交易数据对应的参与对象地址,通过哈希函数对所述参与对象地址进行哈希运算,生成所述参与对象地址对应的第一地址哈希参数;
将所述第一地址哈希参数与所述布隆过滤器进行匹配,得到匹配结果。
3.根据权利要求2所述的方法,其特征在于,所述布隆过滤器包括F个位置;所述F为大于1的整数;
所述将所述第一地址哈希参数与所述布隆过滤器进行匹配,得到匹配结果,包括:
从所述布隆过滤器的F个所述位置中获取所述第一地址哈希参数对应的位置,将所述第一地址哈希参数对应的位置确定为第一候选位置;
从所述布隆过滤器中获取所述第一候选位置上的数据元素,若所述第一候选位置上的数据元素为更新数据元素,则生成用于指示所述交易数据与所述布隆过滤器相匹配的匹配结果;
若第一候选位置上的数据元素为默认数据元素,则生成用于指示所述交易数据与所述布隆过滤器不匹配的匹配结果。
4.根据权利要求3所述的方法,其特征在于,所述第一候选位置的数量为至少两个;
所述从所述布隆过滤器中获取所述第一候选位置上的数据元素,若所述第一候选位置上的数据元素为更新数据元素,则生成用于指示所述交易数据与所述布隆过滤器相匹配的匹配结果,包括:
从所述布隆过滤器中获取至少两个第一候选位置上的数据元素,若所述至少两个第一候选位置上的数据元素均为更新数据元素,则生成用于指示所述交易数据与所述布隆过滤器相匹配的匹配结果;
所述若第一候选位置上的数据元素为默认数据元素,则生成用于指示所述交易数据与所述布隆过滤器不匹配的匹配结果,包括:
若所述至少两个第一候选位置上的数据元素中存在默认数据元素,则生成用于指示所述交易数据与所述布隆过滤器不匹配的匹配结果。
5.根据权利要求1所述的方法,其特征在于,所述基于所述目标交易数据确定用于返回给所述业务节点的区块链数据,包括:
获取所述目标交易数据所属的目标区块对应的默克尔树,从所述默克尔树中获取所述目标交易数据对应的默尔克证明信息;
获取所述目标交易数据所属的目标区块的区块头和所述目标交易数据对应的交易执行结果,将所述目标交易数据、所述默克尔证明信息、所述目标区块的区块头和所述交易执行结果,确定为用于返回给所述业务节点的区块链数据。
6.一种基于区块链的数据处理方法,其特征在于,包括:
获取所关注的区块链地址,根据所述区块链地址对初始布隆过滤器进行地址写入,得到布隆过滤器;
将所述布隆过滤器发送至所述区块链中的同步节点;所述同步节点用于将所述区块链中的交易数据对应的参与对象地址与所述布隆过滤器进行匹配,得到匹配结果;若所述匹配结果指示所述交易数据与所述布隆过滤器相匹配,则所述同步节点用于将所述交易数据确定为所述区块链地址对应的目标交易数据;
接收所述同步节点返回的区块链数据;所述区块链数据是由所述同步节点基于所述目标交易数据所确定的。
7.根据权利要求6所述的方法,其特征在于,所述根据所述区块链地址对初始布隆过滤器进行地址写入,得到布隆过滤器,包括:
通过哈希函数对所述区块链地址进行哈希运算,生成所述区块链地址对应的第二地址哈希参数;
将所述第二地址哈希参数写入初始布隆过滤器,得到布隆过滤器。
8.根据权利要求7所述的方法,其特征在于,所述初始布隆过滤器包括F个位置,F个所述位置上的数据元素均为默认数据元素:所述F为大于1的整数;
所述将所述第二地址哈希参数写入初始布隆过滤器,得到布隆过滤器,包括:
从所述初始布隆过滤器的F个所述位置中获取第二地址哈希参数对应的位置,将所述第二地址哈希参数对应的位置确定为第二候选位置;
将所述第二候选位置上的默认数据元素更新为更新数据元素,得到布隆过滤器。
9.根据权利要求6所述的方法,其特征在于,所述区块链数据包括所述目标交易数据、所述目标交易数据对应的默尔克证明信息和所述目标交易数据所属的目标区块的区块头;
所述方法还包括:
获取所述目标交易数据的交易哈希值,基于所述交易哈希值和所述默克尔证明信息,确定所述目标区块对应的待比较树根;
获取所述目标区块的区块头中针对所述目标区块的默克尔树根,将所述待比较树根与所述默克尔树根进行比较,若所述待比较树根与所述默克尔树根相同,则生成用于表征校验成功的校验结果;
若所述待比较树根与所述默克尔树根不同,则生成用于表征校验失败的校验结果。
10.根据权利要求6所述的方法,其特征在于,所述区块链数据包括所述目标交易数据和所述目标交易数据对应的交易执行结果;所述目标交易数据的数量为至少两个;
所述方法还包括:
对至少两个目标交易数据进行数据筛选,从所述至少两个目标交易数据中筛选出所关注的目标交易数据;
删除所述至少两个目标交易数据中未筛选出的目标交易数据和所述未筛选出的目标交易数据对应的交易执行结果。
11.一种基于区块链的数据处理装置,其特征在于,包括:
布隆接收模块,用于接收所述区块链中的业务节点发送的布隆过滤器;所述布隆过滤器是所述业务节点根据所关注的区块链地址对初始布隆过滤器进行地址写入所得到的;
地址匹配模块,用于获取所述区块链中的交易数据对应的参与对象地址,将所述参与对象地址与所述布隆过滤器进行匹配,得到匹配结果;
交易确定模块,用于若所述匹配结果指示所述交易数据与所述布隆过滤器相匹配,则将所述交易数据确定为所述区块链地址对应的目标交易数据;
数据发送模块,用于基于所述目标交易数据确定用于返回给所述业务节点的区块链数据,将所述区块链数据返回至所述业务节点。
12.一种基于区块链的数据处理装置,其特征在于,包括:
地址写入模块,用于获取所关注的区块链地址,根据所述区块链地址对初始布隆过滤器进行地址写入,得到布隆过滤器;
布隆发送模块,用于将所述布隆过滤器发送至所述区块链中的同步节点;所述同步节点用于将所述区块链中的交易数据对应的参与对象地址与所述布隆过滤器进行匹配,得到匹配结果;若所述匹配结果指示所述交易数据与所述布隆过滤器相匹配,则所述同步节点用于将所述交易数据确定为所述区块链地址对应的目标交易数据;
数据接收模块,用于接收所述同步节点返回的区块链数据;所述区块链数据是由所述同步节点基于所述目标交易数据所确定的。
13.一种计算机设备,其特征在于,包括:处理器和存储器;
所述处理器与所述存储器相连,其中,所述存储器用于存储计算机程序,所述处理器用于调用所述计算机程序,以使得所述计算机设备执行权利要求1-10任一项所述的方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,该计算机程序适于由处理器加载并执行,以使得具有所述处理器的计算机设备执行权利要求1-10任一项所述的方法。
15.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序,该计算机程序存储在计算机可读存储介质中,且适于由处理器读取并执行,以使得具有所述处理器的计算机设备执行权利要求1-10任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311333391.4A CN117407437A (zh) | 2023-10-13 | 2023-10-13 | 一种基于区块链的数据处理方法、设备以及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311333391.4A CN117407437A (zh) | 2023-10-13 | 2023-10-13 | 一种基于区块链的数据处理方法、设备以及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117407437A true CN117407437A (zh) | 2024-01-16 |
Family
ID=89491859
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311333391.4A Pending CN117407437A (zh) | 2023-10-13 | 2023-10-13 | 一种基于区块链的数据处理方法、设备以及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117407437A (zh) |
-
2023
- 2023-10-13 CN CN202311333391.4A patent/CN117407437A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11829494B2 (en) | Distributed privately subspaced blockchain data structures with secure access restriction management | |
CN112926982B (zh) | 一种交易数据处理方法、装置、设备及存储介质 | |
CN112685505B (zh) | 一种交易数据处理方法、装置、计算机设备及存储介质 | |
KR101781583B1 (ko) | 블록체인을 기반으로 한 파일 관리/검색 시스템 및 파일 관리/검색 방법 | |
WO2022193985A1 (zh) | 一种数据处理方法、装置、设备及存储介质 | |
US11126458B2 (en) | Method, apparatus, and electronic device for resource allocation based on blockchain | |
US20230316273A1 (en) | Data processing method and apparatus, computer device, and storage medium | |
CN111209262B (zh) | 一种基于区块链的大规模分布式安全存储系统 | |
US11962698B2 (en) | Token node locking with fingerprints authenticated by digital certificates | |
CN113765675B (zh) | 一种交易数据处理方法、装置、设备以及介质 | |
CN113255014B (zh) | 一种基于区块链的数据处理方法以及相关设备 | |
WO2023098327A1 (zh) | 基于区块链的区块处理方法、装置、设备、存储介质及程序产品 | |
WO2023082883A1 (zh) | 跨区块链处理事务的方法、装置、计算机设备、计算机存储介质及计算机程序产品 | |
CN117118640A (zh) | 一种数据处理方法、装置、计算机设备以及可读存储介质 | |
Thakur et al. | Data integrity techniques in cloud computing: an analysis | |
Reniers et al. | Authenticated and auditable data sharing via smart contract | |
CN117407437A (zh) | 一种基于区块链的数据处理方法、设备以及可读存储介质 | |
US11943211B2 (en) | Device monitoring in accessing network | |
WO2024093593A1 (zh) | 基于多区块链的数据处理方法、装置、电子设备、计算机可读存储介质及计算机程序产品 | |
CN117155953A (zh) | 一种数据处理方法、装置、计算机设备以及可读存储介质 | |
CN116743770A (zh) | 跨区域资源转移信息推送方法、系统、装置和计算机设备 | |
CN117675216A (zh) | 一种数据处理方法及相关设备 | |
CN117811739A (zh) | 一种基于区块链的数据处理方法、设备以及可读存储介质 | |
CN117455661A (zh) | 一种基于区块链的数据处理方法、装置、设备及介质 | |
CN115375304A (zh) | 一种基于区块链的数据处理方法、装置、设备以及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |