CN117034370A - 基于区块链网络的数据处理方法及相关设备 - Google Patents
基于区块链网络的数据处理方法及相关设备 Download PDFInfo
- Publication number
- CN117034370A CN117034370A CN202311299447.9A CN202311299447A CN117034370A CN 117034370 A CN117034370 A CN 117034370A CN 202311299447 A CN202311299447 A CN 202311299447A CN 117034370 A CN117034370 A CN 117034370A
- Authority
- CN
- China
- Prior art keywords
- data
- client
- intersection
- data set
- result
- 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.)
- Granted
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 36
- 238000012545 processing Methods 0.000 claims abstract description 112
- 238000000034 method Methods 0.000 claims abstract description 105
- 230000008569 process Effects 0.000 claims abstract description 68
- 230000006870 function Effects 0.000 claims description 56
- 238000004590 computer program Methods 0.000 claims description 17
- 238000001514 detection method Methods 0.000 claims description 12
- 230000004044 response Effects 0.000 claims description 12
- 238000012216 screening Methods 0.000 claims description 5
- 238000005516 engineering process Methods 0.000 abstract description 10
- 238000004364 calculation method Methods 0.000 abstract description 7
- 238000010586 diagram Methods 0.000 description 13
- 230000005540 biological transmission Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000013507 mapping Methods 0.000 description 3
- 230000009365 direct transmission Effects 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- KAICRBBQCRKMPO-UHFFFAOYSA-N phosphoric acid;pyridine-3,4-diamine Chemical compound OP(O)(O)=O.NC1=CC=NC=C1N KAICRBBQCRKMPO-UHFFFAOYSA-N 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
Abstract
本申请基于区块链技术公开一种基于区块链网络的数据处理方法及相关设备,方法由区块链网络中的节点设备执行,节点设备内置有可信执行环境;方法包括:接收第一客户端发送的集合求交请求,集合求交请求用于请求获取第一客户端所拥有的第一数据集与第二客户端所拥有的第二数据集之间的集合求交结果;第二数据集存储在可信执行环境中;响应于集合求交请求,获取第一数据集;在可信执行环境中,对第一数据集和第二数据集进行集合求交处理,得到集合求交结果;将集合求交结果通知给第一客户端和第二客户端;可以保证参与集合求交的双方的数据安全性,以及集合求交过程中的计算安全性。
Description
技术领域
本申请涉及区块链技术领域,尤其涉及一种基于区块链网络的数据处理方法、一种数据处理装置、一种计算机设备、一种计算机可读存储介质及一种计算机程序产品。
背景技术
在集合求交(即私有集合求交,Private Set Intersection,PSI)的场景中,要求参与集合求交的双方,在不获取对方额外信息(即除双方数据集的交集信息之外的其他信息)的基础上,计算出双方数据集之间的交集信息。在集合求交场景中,如何保证参与集合求交的双方的数据安全性是当前的研究热点。实践发现,现有的集合求交过程常常会出现彩虹表攻击等问题,数据安全性面临重大挑战。
发明内容
本申请实施例提供了一种基于区块链网络的数据处理方法及相关设备,可以保证参与集合求交的双方的数据安全性,以及集合求交过程中的计算安全性。
一方面,本申请实施例提供了一种基于区块链网络的数据处理方法,该方法由区块链网络中的节点设备执行,节点设备内置有可信执行环境;该方法可包括:
接收第一客户端发送的集合求交请求,集合求交请求用于请求获取第一客户端所拥有的第一数据集与第二客户端所拥有的第二数据集之间的集合求交结果;第二数据集存储在可信执行环境中;
响应于集合求交请求,获取第一客户端的权限信息,权限信息用于指示:第一客户端是否具备针对第二客户端的集合求交权限;
若权限信息指示第一客户端具备针对第二客户端的集合求交权限,则获取第一数据集;
在可信执行环境中,对第一数据集和第二数据集进行集合求交处理,得到集合求交结果;
将集合求交结果通知给第一客户端和第二客户端。
另一方面,本申请实施例提供了一种数据处理装置,该数据处理装置运行于区块链网络中的节点设备中,节点设备内置有可信执行环境;其中,数据处理装置包括:
接收单元,用于接收第一客户端发送的集合求交请求,集合求交请求用于请求获取第一客户端所拥有的第一数据集与第二客户端所拥有的第二数据集之间的集合求交结果;第二数据集存储在可信执行环境中;
处理单元,用于响应于集合求交请求,获取第一客户端的权限信息,权限信息用于指示:第一客户端是否具备针对第二客户端的集合求交权限;
处理单元,还用于若权限信息指示第一客户端具备针对第二客户端的集合求交权限,则获取第一数据集;
处理单元,还用于在可信执行环境中,对第一数据集和第二数据集进行集合求交处理,得到集合求交结果;
处理单元,还用于将集合求交结果通知给第一客户端和第二客户端。
再一方面,本申请实施例提供了一种计算机设备,计算机设备包括输入接口和输出接口,计算机设备还包括:
处理器以及计算机可读存储介质;
其中,处理器适于实现一条或多条指令,计算机可读存储介质存储有一条或多条指令,一条或多条指令适于由处理器加载并执行上述所提及的基于区块链网络的数据处理方法。
再一方面,本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质存储有一条或多条指令,一条或多条指令适于由处理器加载并执行上述所提及的基于区块链网络的数据处理方法。
再一方面,本申请实施例提供了一种计算机程序产品,计算机程序产品包括计算机程序,该计算机程序被处理器执行时,执行上述基于区块链网络的数据处理方法。
本申请实施例中,由区块链网络中的节点设备来执行集合求交过程,这就将集合求交过程与区块链技术相结合,利用区块链的可追溯但不可篡改的特性,确保集合求交过程的安全性和可靠性。此外,节点设备中内置有可信执行环境,参与集合求交的第二客户端所拥有的第二数据集预先存储在该可信执行环境中,这就利用了可信执行环境的可信、隔离的特性,保证了第二数据集的存储安全性,同时使得参与集合求交的第一客户端无法获知第二数据集的数据,保证了第二数据集的数据私有性。另外,响应于第一客户端发送的集合求交请求,节点设备在获取到指示第一客户端具备针对第二客户端的集合求交权限的权限信息之后,才获取第一客户端所拥有的第一数据集,并在可信执行环境中对第一数据集和第二数据集进行集合求交处理,得到集合求交结果后通知给第一客户端和第二客户端;由于第一数据集也被传入至可信执行环境中,这使得第二客户端也无法获知第一数据集的数据,保证了第一数据集的数据私有性;集合求交过程被封闭在可信执行环境中进行,这就保证了集合求交过程的计算安全性和可靠性;并且,节点设备是在获取到指示第一客户端具备针对第二客户端的集合求交权限的权限信息之后,才对第一数据集和第二数据集进行集合求交,使得不具备集合求交权限的其他客户端无法获取其拥有的数据集与第二数据集的求交集结果,保护了第二数据集的安全。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种数据处理系统的结构示意图;
图2是本申请实施例提供的一种基于区块链网络的数据处理方法的流程示意图;
图3是本申请实施例提供的另一种基于区块链网络的数据处理方法的流程示意图;
图4a是本申请实施例提供的一种确定第一数据集和第二数据集的集合求交结果的示意图;
图4b是本申请实施例提供的一种节点设备的可信执行环境的结构示意图;
图5是本申请实施例提供的又一种基于区块链网络的数据处理方法的流程示意图;
图6a是本申请实施例提供的一种基于位数组表示数据的示意图;
图6b是本申请实施例提供的另一种确定第一数据集和第二数据集的集合求交结果的示意图;
图7是本申请实施例提供的再一种基于区块链网络的数据处理方法的流程示意图;
图8是本申请实施例提供的一种数据处理装置的结构示意图;
图9是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
区块链(Blockchain)是一种分布式数据存储、点对点传输(Peer to Peer传输)、共识机制、加密算法等计算机技术的新型应用模式;其本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块(即区块);每一个数据块(区块)中包含了一批次网络交易的信息(即数据),用于验证其信息的有效性(即防伪)和生成下一个区块。
基于区块链和点对点网络(Peer to Peer网络)所构成的网络可称为区块链网络,区块链网络中可以包括多个节点设备(简称节点),各节点设备之间基于点对点方式连接,节点设备中可以包括硬件层、中间层、操作系统层和应用层;应理解的是,区块链网络中的任一节点设备可以是终端设备,也可以是服务器,任何设备(如服务器、终端等)都可以加入而成为节点设备。其中,终端设备可以是智能手机、平板电脑、笔记本电脑、台式计算机等,对此不作限制;服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器等,对此不作限制。
区块链网络中各节点设备实现的功能可以包括路由,其是节点设备具有的基本功能,用于支持节点设备之间的通信。区块链网络中各节点设备实现的功能还可以包括应用,其用于部署在区块链中,根据实际业务需求而实现特定业务,记录实现功能相关的数据形成记录数据,在记录数据中携带数字签名以表示任务数据的来源,将记录数据发送到区块链网络中的其他节点设备,供其他节点设备在验证记录数据来源以及完整性成功时,将记录数据添加到临时区块中。
例如,应用实现的业务可以包括:(1)钱包,用于提供进行电子资源的交易的功能,包括发起交易,即将当前交易的交易记录发送给区块链网络中的其他节点设备,其他节点设备验证成功后,作为承认交易有效的响应,将交易的记录数据存入区块链的临时区块中;当然,钱包还支持查询电子资源地址中剩余的电子资源。(2)共享账本,用于提供账目数据的存储、查询和修改等操作的功能,将对账目数据的操作的记录数据发送到区块链网络中的其他节点设备,其他节点设备验证有效后,作为承认账目数据有效的响应,将记录数据存入临时区块中,还可以向发起操作的节点设备发送确认。(3)智能合约(Smart contract),计算机化的协议,可以执行某个合约的条款,为用于在满足一定条件时而执行的代码实现,根据实际的业务需求代码用于完成自动化的交易;当然,智能合约不仅限于执行用于交易的合约,还可以执行对接收的信息进行处理的合约;智能合约允许在没有第三方的情况下进行可信交易。值得注意的是,本申请实施例中所涉及的钱包、共享账本、交易等可以理解为计算机术语事务(Transaction),鉴于在区块链技术中约定俗成地使用了这些术语,本申请实施例遵循了这一习惯。
基于以上描述,下面将对本申请实施例所提供数据处理系统进行详细介绍。
请参见图1,为本申请实施例提供的一种数据处理系统的结构示意图,该数据处理系统至少可以包括:第一客户端11、第二客户端12以及区块链网络13,该数据处理系统中存在通讯需求的设备之间可以通过有线或无线通信方式进行直接或间接地通信连接,本申请在此不做限制。其中:
本申请实施例中,第一客户端11和第二客户端12是指参与集合求交的双方,第一客户端11和第二客户端12可以是不同的终端设备,也可以是运行于不同终端设备中的APP(Application,应用程序),本申请实施例对此不做限制。在一种可行的实现方式中,运行于终端设备中的APP可以是去中心化应用程序(Decentralized Application,DAPP),DAPP是基于区块链技术开发的一种应用程序。
区块链网络13中可以包括一个或多个节点设备131,区块链网络13中的各个节点设备131之间支持基于点对点传输以及共识机制进行共识通信,所谓的共识机制是指通过节点设备的投票,在较短的时间内完成对数据的验证和确认的机制。本申请实施例中,区块链网络13中存在至少一个节点设备131内置有可信执行环境(Trusted executionenvironment,TEE)。节点设备131的可信执行环境是与该节点设备131的操作系统(Systemon Chip,Soc)相互隔离的安全区域;换言之,可信执行环境是一种具有运算和储存功能,能提供安全性和完整性保护的独立处理环境,是硬件设备中由软硬件方法构建的一个安全区域,除了经过授权的接口外,硬件设备中的其他部分不能访问这个安全区域,使得可保证在安全区域内加载的代码和数据在安全性和完整性方面得到保护。
图1所示的数据处理系统中各设备之间通过交互能够实现本申请实施例所涉及的数据处理方案,各设备之间的交互过程大致如下:
(1)第二客户端12可以请求向节点设备131的可信执行环境写入其拥有的第二数据集,使得不同于第二客户端12的其他客户端(例如第一客户端11)可以基于第二数据集进行集合求交。
(2)当第一客户端11存在针对第二客户端的集合求交需求时,可以向该节点设备131发送集合求交请求,集合求交请求用于请求获取第一客户端11所拥有的第一数据集与第二客户端12所拥有的第二数据集之间的集合求交结果。
(3)该节点设备131可以响应于集合求交请求,获取第一客户端的权限信息;若权限信息指示第一客户端具备针对第二客户端的集合求交权限,则获取第一数据集,以及在该节点设备(内置)的可信执行环境中,对第一数据集和第二数据集进行集合求交处理,得到集合求交结果,并将集合求交结果通知给第一客户端和第二客户端。
通过上述描述可知,本申请实施例中由区块链网络中的节点设备来执行集合求交过程,这就将集合求交过程与区块链技术相结合,利用区块链的可追溯但不可篡改的特性,确保集合求交过程的安全性和可靠性。此外,节点设备中内置有可信执行环境,参与集合求交的第二客户端所拥有的第二数据集预先存储在该可信执行环境中,这就利用了可信执行环境的可信、隔离的特性,保证了第二数据集的存储安全性,同时使得参与集合求交的第一客户端无法获知第二数据集的数据,保证了第二数据集的数据私有性。另外,响应于第一客户端发送的集合求交请求,节点设备在获取到指示第一客户端具备针对第二客户端的集合求交权限的权限信息之后,才获取第一客户端所拥有的第一数据集,并在可信执行环境中对第一数据集和第二数据集进行集合求交处理,得到集合求交结果后通知给第一客户端和第二客户端;由于第一数据集也被传入至可信执行环境中,这使得第二客户端也无法获知第一数据集的数据,保证了第一数据集的数据私有性;集合求交过程被封闭在可信执行环境中进行,这就保证了集合求交过程的计算安全性和可靠性;并且,节点设备是在获取到指示第一客户端具备针对第二客户端的集合求交权限的权限信息之后,才对第一数据集和第二数据集进行集合求交,使得不具备集合求交权限的其他客户端无法获取其拥有的数据集与第二数据集的求交集结果,保护了第二数据集的安全。
需要特别指出的是,本申请中相关数据(例如第一数据集、第二数据集等)收集处理在实例应用时应该严格根据法律法规的要求,获取个人信息主体的知情同意或单独同意,并在法律法规及个人信息主体的授权范围内,开展后续数据使用及处理行为。
下面将对本申请实施例所提供基于区块链网络的数据处理方法进行详细介绍,需要说明的是,下述各实施例中的基于区块链网络的数据处理方法可以由图1所示区块链网络13中的任一节点设备131来执行,且该节点设备131中内置有可信执行环境。为了便于阐述,本申请实施例后续将内置有可信执行环境的任一节点设备131简称为节点设备进行描述,后续实施例中除特殊说明外所提及的节点设备均指示内置有可信执行环境的节点设备。
参见图2,为本申请实施例提供的一种基于区块链网络的数据处理方法的流程示意图;该基于区块链网络的数据处理方法可包括如下步骤S201-S205:
S201,节点设备接收第一客户端发送的集合求交请求,集合求交请求用于请求获取第一客户端所拥有的第一数据集与第二客户端所拥有的第二数据集之间的集合求交结果;第二数据集存储在节点设备的可信执行环境中。
第一客户端所拥有的第一数据集可以是持有第一客户端的对象(称为第一对象)所拥有的数据集,第二客户端所拥有的第二数据集可以是持有第二客户端的对象(称为第二对象)所拥有的数据集。在一种可行的实施方式中,第二数据集存储在节点设备的可信执行环境中,该第二数据集可以是由第二客户端提前请求写入至节点设备的可信执行环境中的,这使得不同于第二客户端的其他客户端(例如第一客户端)可以基于第二数据集进行集合求交。在一种可行的实施方式中,集合求交请求可以携带第一数据集,节点设备可以通过解析该集合求交请求获得第一数据集。
S202,节点设备响应于集合求交请求,获取第一客户端的权限信息,权限信息用于指示:第一客户端是否具备针对第二客户端的集合求交权限。
在一种可行的实施方式中,第一客户端的权限信息可以是第二客户端通过请求节点设备来为第一客户端配置的,也就是说,第二客户端可以携带为第一客户端配置的权限信息,去请求节点设备在可信执行环境中存储该权限信息,使得节点设备响应于集合求交请求,可以从节点设备的可信执行环境中获取该权限信息。在一种可行的实施方式中,若权限信息指示第一客户端不具备针对第二客户端的集合求交权限,则节点设备可以向第一客户端返回用于指示第一客户端不具备针对第二客户端的集合求交权限的权限反馈信息;其中,权限反馈信息的内容和格式可以根据具体需求进行设定,例如可以被设定为文本格式、图像格式等等,本申请实施例不做限制。
S203,若权限信息指示第一客户端具备针对第二客户端的集合求交权限,则获取第一数据集。
在一种可行的实施方式中,节点设备响应于集合求交请求,获取第一数据集的相关过程,是在节点设备的可信执行环境中执行的;可选的,可以是由部署于节点设备的可信执行环境中的应用执行的,该应用示例性的可以为智能合约,程序代码等等,本申请实施例不做限制,为了便于阐述,本申请后续实施例以智能合约为例进行阐述;在节点设备的可信执行环境中部署智能合约时,可以将链虚拟机置入节点设备的可信执行环境中,通过在链虚拟机上部署智能合约,使得相应智能合约可以在节点设备的可信执行环境内运行。在一种可行的实施方式中,集合求交请求可以携带第一数据集,节点设备可以通过调用可信执行环境中部署的智能合约,来对集合求交请求进行响应,并获取第一客户端的权限信息,在权限信息指示第一客户端具备针对第二客户端的集合求交权限的情况下,通过解析该集合求交请求获得第一数据集。
S204,节点设备在可信执行环境中,对第一数据集和第二数据集进行集合求交处理,得到集合求交结果。
节点设备在可信执行环境中,对第一数据集和第二数据集进行集合求交处理,是为了从第一数据集中筛选出同时存在于第一数据集和第二数据集中的交集数据,并基于筛选出的交集数据构建集合求交结果;基于此,在一种可行的实施方式中,节点设备可以在可信执行环境中,将第一数据集中的数据和第二数据集中的数据进行对比,筛选出相同的数据作为交集数据,基于筛选出的交集数据构建集合求交结果。可选的,可以采用筛选出的各个交集数据构建集合求交结果,为了提升数据的安全性,也可以采用筛选出的各个交集数据的数据标识构建集合求交结果,其中,任一交集数据的数据标识可以为用于标识相应交集数据的任意信息,例如可以为相应交集数据在第一数据集中的顺序编号,可以为相应交集数据进行哈希映射后的哈希值等等,本申请实施例不做限制。
S205,节点设备将集合求交结果通知给第一客户端和第二客户端。
在一种可行的实施方式中,节点设备可以将集合求交结果返回给第一客户端和第二客户端,以实现将集合求交结果通知给第一客户端和第二客户端;在另一种可行的实施方式中,节点设备可以将集合求交结果上传至区块链网络的区块链中,并通知第一客户端和第二客户端从区块链中去获取集合求交结果,以实现将集合求交结果通知给第一客户端和第二客户端。
本申请实施例中,由区块链网络中的节点设备来执行集合求交过程,这就将集合求交过程与区块链技术相结合,利用区块链的可追溯但不可篡改的特性,确保集合求交过程的安全性和可靠性。此外,节点设备中内置有可信执行环境,参与集合求交的第二客户端所拥有的第二数据集预先存储在该可信执行环境中,这就利用了可信执行环境的可信、隔离的特性,保证了第二数据集的存储安全性,同时使得参与集合求交的第一客户端无法获知第二数据集的数据,保证了第二数据集的数据私有性。另外,响应于第一客户端发送的集合求交请求,节点设备在获取到指示第一客户端具备针对第二客户端的集合求交权限的权限信息之后,才获取第一客户端所拥有的第一数据集,并在可信执行环境中对第一数据集和第二数据集进行集合求交处理,得到集合求交结果后通知给第一客户端和第二客户端;由于第一数据集也被传入至可信执行环境中,这使得第二客户端也无法获知第一数据集的数据,保证了第一数据集的数据私有性;集合求交过程被封闭在可信执行环境中进行,这就保证了集合求交过程的计算安全性和可靠性;并且,节点设备是在获取到指示第一客户端具备针对第二客户端的集合求交权限的权限信息之后,才对第一数据集和第二数据集进行集合求交,使得不具备集合求交权限的其他客户端无法获取其拥有的数据集与第二数据集的求交集结果,保护了第二数据集的安全。
基于上述描述,本申请实施例提供了另一种基于区块链网络的数据处理方法,参见图3,为本申请实施例提供的另一种基于区块链网络的数据处理方法的流程示意图,该基于区块链网络的数据处理方法可以由图1所示区块链网络13中的任一节点设备131来执行,且该节点设备131中内置有可信执行环境;该基于区块链网络的数据处理方法可包括如下步骤S301-S308:
S301,节点设备接收第一客户端发送的集合求交请求,集合求交请求用于请求获取第一客户端所拥有的第一数据集与第二客户端所拥有的第二数据集之间的集合求交结果;第二数据集存储在节点设备的可信执行环境中。
在一种可行的实施方式中,集合求交请求可以携带第一数据集,可选的,第一数据集可以是基于加密的形式携带于集合求交请求中的,也就是说,集合求交请求可以携带对第一数据集进行加密处理所得到的加密后的第一数据集,本申请实施例不对第一数据集的加密方式进行限定。例如在一种可行的实施方式中,可以基于节点设备的可信执行环境的公钥,采用非对称加密的加密方式,即第一客户端可以采用节点设备的可信执行环境的公钥,对第一数据集进行加密处理得到加密后的第一数据集,集合求交请求携带加密后的第一数据集;节点设备可以采用可信执行环境的私钥,对加密后的第一数据集进行解密处理得到第一数据集。再如可以基于第一客户端的对称密钥以及节点设备的可信执行环境的公钥,采用数字信封的加密方式,即第一客户端可以采用第一客户端的对称密钥,对第一数据集进行加密处理得到加密后的第一数据集,以及采用节点设备的可信执行环境的公钥,对第一客户端的对称密钥进行加密处理得到第一客户端的数字信封,集合求交请求携带加密后的第一数据集以及第一客户端的数字信封;节点设备可以采用可信执行环境的私钥对第一客户端的数字信封进行解密处理,得到第一客户端的对称密钥,采用第一客户端的对称密钥对加密后的第一数据集进行解密处理,得到第一数据集。需理解的是,可信执行环境的公钥可以公开在区块链网络中,各客户端(包括第一客户端和第二客户端)可以从区块链网络中获得该可信执行环境的公钥;但是,可信执行环境的私钥被封闭存储在可信执行环境中,不可被可信执行环境之外的设备或应用获取。
在一种可行的实施方式中,第二数据集存储在节点设备的可信执行环境中,该第二数据集可以是由第二客户端提前请求写入至节点设备的可信执行环境中的,这使得不同于第二客户端的其他客户端(例如第一客户端)可以基于第二数据集进行集合求交。也就是说,第二客户端可以向节点设备发送数据写入请求,数据写入请求用于请求向节点设备的可信执行环境写入第二客户端所拥有的第二数据集,节点设备接收第二客户端发送的数据写入请求,节点设备响应于数据写入请求,在可信执行环境中从数据写入请求中解析出第二数据集,并将第二数据集存储在可信执行环境中。可选的,节点设备可以向第二客户端返回存储反馈信息,该存储反馈信息可以用于提示写入数据成功。
在一种可行的实施方式中,数据写入请求可以携带第二数据集,可选的,第二数据集可以是基于加密的形式携带于数据写入请求中的,也就是说,数据写入请求可以携带对第二数据集进行加密处理所得到的加密后的第二数据集,本申请实施例不对第二数据集的加密方式进行限定;对第二数据集的加密方式与上述对第一数据集的加密方式类似,例如可以基于节点设备的可信执行环境的公钥,采用非对称加密的加密方式,又如可以基于第二客户端的对称密钥和可信执行环境的公钥,采用数字信封的加密方式。由于对第二数据集的加密方式与上述对第一数据集的加密方式类似,基于此,节点设备从数据写入请求中解析出第二数据集,即从数据写入请求所携带的加密后的第二数据集中解密得到第二数据集的相关过程,与上述从加密后的第一数据集中解密得到第一数据集的相关过程类似,在此不做赘述。
S302,节点设备响应于集合求交请求,获取第一客户端的权限信息。
其中,权限信息用于指示:第一客户端是否具备针对第二客户端的集合求交权限。在一种可行的实施方式中,权限信息可以包括第一客户端针对第二客户端进行集合求交的可用数据量;可用数据量是:第二客户端为第一客户端配置的允许集合求交的数据总量,与第一客户端针对第二客户端进行的历史集合求交所消耗的数据量之间的差值。其中,第二客户端为第一客户端配置的允许集合求交的数据总量,可以是第二客户端请求向节点设备的可信执行环境写入的;可以理解的是,若第二客户端需要为第一客户端新增允许集合求交的新增数据量时,也可以请求向节点设备的可信执行环境写入新增数据量,基于此,节点设备可以基于新增数据量更新数据总量,可用数据量可以为更新后的数据总量,与第一客户端针对第二客户端进行的历史集合求交所消耗的数据量之间的差值。
S303,解析权限信息,获得可用数据量。
S304,若可用数据量为非零值,则确定权限信息指示第一客户端具备针对第二客户端的集合求交权限;若可用数据量为零值,则确定权限信息指示第一客户端不具备针对第二客户端的集合求交权限。
S305,若权限信息指示第一客户端具备针对第二客户端的集合求交权限,则节点设备获取第一数据集。
在一个可行的实施方式中,若集合求交请求携带有:采用节点设备的可信执行环境的公钥,对第一数据集进行加密处理所得到的加密后的第一数据集,则节点设备获取第一数据集时,可以采用可信执行环境的私钥,对加密后的第一数据集进行解密处理得到第一数据集。在另一种可行的实施方式中,若集合求交请求携带有:采用第一客户端的对称密钥,对第一数据集进行加密处理所得到的加密后的第一数据集,以及采用节点设备的可信执行环境的公钥,对第一客户端的对称密钥进行加密处理所得到的第一客户端的数字信封;则节点设备获取第一数据集时,可以采用可信执行环境的私钥对第一客户端的数字信封进行解密处理,得到第一客户端的对称密钥;采用第一客户端的对称密钥对加密后的第一数据集进行解密处理,得到第一数据集。
S306,节点设备在可信执行环境中,对第一数据集和第二数据集进行集合求交处理,得到集合求交结果。
参见图4a,为本申请实施例提供的一种确定第一数据集和第二数据集的集合求交结果的示意图;节点设备在可信执行环境中,对第一数据集和第二数据集进行集合求交处理,得到集合求交结果的过程中,可以执行如下步骤:
S401,获取第一数据集的数据量;S402,若第一数据集的数据量大于可用数据量,则从第一数据集中选取待处理的至少一个数据,并基于所选取的数据构建目标数据集,目标数据集的数据量小于或等于可用数据量;S403,对目标数据集和第二数据集进行集合求交处理,得到集合求交结果;其中,从第一数据集中选取待处理的数据的方式可以包括:从第一数据集中随机选取待处理的数据,或者,基于对第一数据集中数据的遍历顺序依次选取待处理的数据。节点设备在可信执行环境中,对第一数据集和第二数据集进行集合求交处理,得到集合求交结果的过程中,还可以执行如下步骤:S404,若第一数据集的数据量小于或等于可用数据量,则将第一数据集作为目标数据集,并对目标数据集和第二数据集进行集合求交处理,得到集合求交结果。通常来说,在第一数据集的数据量大于可用数据量的情况下,可以选取可用数据量的数据来构建目标数据集,例如,若第一数据集的数据量为100(即100个数据),可用数据量为20(即20个数据),则可以从第一数据集中选取待处理的20个数据,并基于所选取的数据构建目标数据集。
可选的,节点设备对目标数据集和第二数据集进行集合求交处理,是为了从目标数据集中筛选出同时存在于目标数据集和第二数据集中的交集数据,并基于筛选出的交集数据构建集合求交结果。可选的,本申请实施例所提供基于区块链网络的数据处理方法中,第二数据集在节点设备的可信执行环境中,可以是基于不同形式存储的;例如,第二数据集可以直接基于第二数据集的形式存储,即在节点设备的可行执行环境中存储第二数据集;基于此,在一种可行的实施方式中,节点设备对目标数据集和第二数据集进行集合求交处理,得到集合求交结果的过程中,可以将目标数据集中的数据和第二数据集中的数据进行对比,筛选出相同的数据作为交集数据,并基于筛选出的交集数据构建集合求交结果。又如,第二数据集也可以基于布隆过滤器的形式存储,即在节点设备的可信执行环境中存储第二数据集对应的布隆过滤器,其中,布隆过滤器是基于第二数据集构建得到的,可以用于表示第二数据集,布隆过滤器可以起到压缩数据的作用,可以节约节点设备的可信执行环境的存储资源;基于布隆过滤器对目标数据集和第二数据集进行集合求交处理,得到集合求交结果的过程在后续实施例中进行阐述,在此不做描述。
节点设备基于筛选出的交集数据构建集合求交结果的过程中,在一个可选的实施方式中,可以采用筛选出的各个交集数据构建集合求交结果;在另一个可选的实施方式中,为了提升数据的安全性,也可以采用筛选出的各个交集数据的数据标识构建集合求交结果。在又一个可选的实施方式中,节点设备可以将目标数据集的数据量确定为消耗数据量,消耗数据量用于指示:第一客户端在本次针对第二客户端进行集合求交的过程中所消耗的数据量;基于消耗数据量更新第一客户端针对第二客户端进行集合求交的可用数据量;采用筛选出的交集数据的数据标识、消耗数据量以及更新后的可用数据量构建集合求交结果,其中,更新后的可用数据量为:可用数据量与消耗数据量之间的差值;当然,上述集合求交结果所包含的信息只是示例性的描述,可以根据具体需求设定集合求交结果所具体包含的信息,例如,也可以只采用筛选出的交集数据的数据标识以及更新后的可用数据量构建集合求交结果,也可以只采用筛选出的交集数据的数据标识以及消耗数据量构建集合求交结果,等等。
S307,节点设备将集合求交结果通知给第一客户端和第二客户端。
在一种可行的实施方式中,节点设备可以将集合求交结果返回给第一客户端和第二客户端,以实现将集合求交结果通知给第一客户端和第二客户端;在另一种可行的实施方式中,节点设备可以将集合求交结果上传至区块链网络的区块链中,并通知第一客户端和第二客户端从区块链中去获取集合求交结果,以实现将集合求交结果通知给第一客户端和第二客户端;可选的,返回至第一客户端的集合求交结果,返回至第二客户端的集合求交结果以及上传至区块链的集合求交结果均可以是对集合求交结果进行加密处理后得到的加密后的集合求交结果。
基于以上描述,在一种可行的实施方式中,节点设备将集合求交结果通知给第一客户端的过程中,可以对集合求交结果进行加密处理,得到加密后的集合求交结果;将加密后的集合求交结果存储至区块链网络的区块链中,并发送结果提示信息至第一客户端,以使第一客户端在接收到结果提示信息之后,从区块链中获取加密后的集合求交结果,并对加密后的集合求交结果进行解密处理得到集合求交结果。可选的,节点设备可以采用第一客户端的对称密钥,对集合求交结果进行加密处理,得到加密后的集合求交结果;基于此,第一客户端从区块链中获取加密后的集合求交结果之后,可以采用第一客户端的对称密钥,对加密后的集合求交结果进行解密处理得到集合求交结果。可选的,节点设备也可以采用第一客户端的公钥,对集合求交结果进行加密处理,得到加密后的集合求交结果;基于此,第一客户端从区块链中获取加密后的集合求交结果之后,可以采用第一客户端的私钥,对加密后的集合求交结果进行解密处理得到集合求交结果。可选的,第一客户端在向节点设备发送集合求交请求之后,也可以通过轮询的方式从区块链中获取加密后的集合求交结果。在一种可行的实施方式中,节点设备将集合求交结果通知给第二客户端的过程,与上述节点设备将集合求交结果通知给第一客户端的过程类似,只是在对集合求交结果进行加密处理时,采用与第二客户端相关的加密方式,例如节点设备可以采用第二客户端的对称密钥,对集合求交结果进行加密处理;也可以采用第二客户端的公钥,对集合求交结果进行加密处理,等等。
S308,若权限信息指示第一客户端不具备针对第二客户端的集合求交权限,则节点设备向第一客户端返回用于指示第一客户端不具备针对第二客户端的集合求交权限的权限反馈信息。
在一种可行的实施方式中,节点设备对于数据写入请求和集合求交请求的响应过程均可以是在节点设备的可信执行环境中执行的,例如可以是由部署于节点设备的可信执行环境中的智能合约执行的,参见图4b,为本申请实施例提供的一种节点设备的可信执行环境的结构示意图,该可信执行环境可以包括智能合约41,还可以包括密码模块42,密码模块包括用于实现数据的加密过程的加密模块421和用于实现数据的解密过程的解密模块422,该可信执行环境中还可以包括可信执行环境的公钥和私钥,可信执行环境的公钥可被导出,但私钥不可被导出。节点设备接收到第二客户端发送的数据写入请求之后,可以调用可信执行环境中的智能合约来对数据写入请求进行响应;智能合约可以调用解密模块,从数据写入请求中解析出第二数据集,并将第二数据集存储在可信执行环境中。节点设备接收到第一客户端发送的集合求交请求之后,可以调用可信执行环境中的智能合约来对集合求交请求进行响应(该过程对应图4b中的S431步骤);智能合约可以获取第一客户端的权限信息,并在确定出权限信息指示第一客户端不具备针对第二客户端的集合求交权限的情况下,向第一客户端返回用于指示第一客户端不具备针对第二客户端的集合求交权限的权限反馈信息。
在确定出权限信息指示第一客户端具备针对第二客户端的集合求交权限的情况下,获取第一数据集,即调用解密模块,从集合求交请求中解析出第一数据集(该过程对应图4b中的S432步骤);智能合约对第一数据集和第二数据集进行集合求交处理,得到集合求交结果,并将集合求交结果通知给第一客户端和第二客户端,在该过程中,智能合约可以调用加密模块,对集合求交结果进行加密处理,得到加密后的集合求交结果(该过程对应图4b中的S433步骤),智能合约可以将加密后的集合求交结果存储至区块链网络的区块链中(该过程对应图4b中的S434步骤),以使第一客户端和第二客户端可以从区块链中获取加密后的集合求交结果,进而解密得到集合求交结果。
本申请实施例中,第一数据集和第二数据集可以基于加密的形式被传入节点设备的可信执行环境中,以在节点设备的可信执行环境中对第一数据集和第二数据集进行集合求交处理,可以保证第一数据集和第二数据集在数据传输过程中的安全性;节点设备在响应第一客户端发送的集合求交请求的过程中,可以通过获取第一客户端针对第二客户端进行集合求交的可用数据量,在可用数据量的限制下对第一数据集和第二数据集进行集合求交处理,来有效防止第一客户端发起的彩虹表攻击等问题,其中,可用数据量为第二客户端为第一客户端配置的允许集合求交的数据总量,与第一客户端针对第二客户端进行的历史集合求交所消耗的数据量之间的差值,也就是说,在可用数据量的限制下对第一数据集和第二数据集进行集合求交处理,能有效防止第一客户端通过大量数据去请求向第二数据集进行集合求交,来获取到第二客户端所拥有的第二数据集中的所有数据,造成第二数据集中数据的泄露;并且,对第一数据集和第二数据集进行集合求交处理所得到的集合求交结果,可以被加密之后存入区块链中,利用区块链的可追溯但不可篡改的特性,确保集合求交结果可追溯且不可篡改。
以下实施例以第二数据集基于布隆过滤器的形式存储为例,对本申请实施例提出的基于区块链网络的数据处理方法进行详细的描述,参见图5,为本申请实施例提供的又一种基于区块链网络的数据处理方法的流程示意图;该基于区块链网络的数据处理方法可由数据处理系统执行,该基于区块链网络的数据处理方法可包括如下步骤S501-S511:
S501,第二客户端向节点设备发送数据写入请求,数据写入请求携带有加密后的布隆过滤器,布隆过滤器用于表示第二客户端所拥有的第二数据集。
其中,该节点设备内置有可信执行环境;加密后的布隆过滤器是由第二客户端对布隆过滤器进行加密处理得到的,布隆过滤器是基于第二数据集构建得到的,可以用于表示第二数据集;也就是说,第二客户端可以基于第二数据集构建布隆过滤器,并对布隆过滤器进行加密处理得到加密后的布隆过滤器,基于加密后的布隆过滤器构建数据写入请求,并向节点设备发送数据写入请求。
在一种可行的实施方式中,第二客户端对布隆过滤器的加密方式,与上述第二客户端对第二数据集的加密方式类似,本申请实施例不对布隆过滤器的加密方式进行限定,例如可以基于节点设备的可信执行环境的公钥,采用非对称加密的加密方式,再如可以基于第二客户端的对称密钥以及可信执行环境的公钥,采用数字信封的加密方式。
在一种可行的实施方式中,第二客户端构建布隆过滤器时,可以执行如下步骤:初始化一个位数组以及获取K个哈希函数,K为正整数;初始化的位数组中每个数位上的元素被初始化为初始化标签;遍历第二数据集中的数据,针对当前遍历数据,分别采用K个哈希函数,将当前遍历数据映射为K个哈希值;当前遍历数据对应的K个哈希值与K个哈希函数一一对应,且每个哈希值与位数组上的一个数位相对应;在初始化的位数组中,将当前遍历数据对应的K个哈希值所对应数位上的元素更新为指定标签,直至第二数据集中的数据遍历完成;采用遍历完成后的位数组和K个哈希函数构建布隆过滤器。其中,初始化的位数组中数位的数量,以及K个哈希函数均可以根据具体需求进行设定;初始化标签和指定标签也可以根据具体需求进行设定,例如初始化标签可以被设定为“0”,指定标签可以被设定为“1”。举例来说,参见图6a,为本申请实施例提供的一种基于位数组表示数据的示意图,若初始化的位数组中数位的数量被设定为8,包括从0至7的8个数位,若初始化标签被设定为“0”,初始化的位数组可以由图6a中601标记所示;若K被设定为3,针对当前遍历数据,分别采用该3个哈希函数,将当前遍历数据映射为3个哈希值;若该3个哈希值分别与位数组上的第0个数位、第3个数位以及第5个数位相对应,则可以在初始化的位数组中,将该3个数位上的元素更新为指定标签,若指定标签被设定为“1”,则遍历当前遍历数据结束所得到的位数组可以由602标记所示。
S502,节点设备接收第二客户端发送的数据写入请求。
S503,节点设备响应于数据写入请求,在可信执行环境中从数据写入请求中解析出布隆过滤器。
在一种可行的实施方式中,若数据写入请求携带有:采用节点设备的可信执行环境的公钥,对布隆过滤器进行加密处理所得到的加密后的布隆过滤器,则节点设备在可信执行环境中从数据写入请求中解析出布隆过滤器时,可以采用可信执行环境的私钥,对加密后的布隆过滤器进行解密处理得到布隆过滤器。在另一种可行的实施方式中,若数据写入请求携带有:采用第二客户端的对称密钥,对布隆过滤器进行加密处理所得到的加密后的布隆过滤器,以及采用节点设备的可信执行环境的公钥,对第二客户端的对称密钥进行加密处理所得到的第二客户端的数字信封;则节点设备在可信执行环境中从数据写入请求中解析出布隆过滤器时,可以采用可信执行环境的私钥对第二客户端的数字信封进行解密处理,得到第二客户端的对称密钥;采用第二客户端的对称密钥对加密后的布隆过滤器进行解密处理,得到布隆过滤器。
S504,节点设备将布隆过滤器存储在可信执行环境中。
S505,第一客户端向节点设备发送集合求交请求,集合求交请求用于请求获取第一客户端所拥有的第一数据集与第二客户端所拥有的第二数据集之间的集合求交结果。
其中,第二数据集存储在可信执行环境中,并且第二数据集在可信执行环境中以布隆过滤器的形式存储。
S506,节点设备接收第一客户端发送的集合求交请求。
S507,节点设备响应于集合求交请求,获取第一客户端的权限信息,权限信息用于指示:第一客户端是否具备针对第二客户端的集合求交权限。
S508,若权限信息指示第一客户端具备针对第二客户端的集合求交权限,则节点设备获取第一数据集。
S509,节点设备在可信执行环境中,对第一数据集和第二数据集进行集合求交处理,得到集合求交结果。
其中,步骤S506至步骤S509的相关过程,与上述步骤S301至步骤S306的相关过程类似。节点设备在可信执行环境中,对第一数据集和第二数据集进行集合求交处理,得到集合求交结果的过程中,节点设备可以获取第一数据集的数据量;若第一数据集的数据量大于可用数据量,则从第一数据集中选取待处理的至少一个数据,并基于所选取的数据构建目标数据集,目标数据集的数据量小于或等于可用数据量;对目标数据集和第二数据集进行集合求交处理,得到集合求交结果;其中,从第一数据集中选取待处理的数据的方式可以包括:从第一数据集中随机选取待处理的数据,或者,基于对第一数据集中数据的遍历顺序依次选取待处理的数据;若第一数据集的数据量小于或等于可用数据量,则将第一数据集作为目标数据集,并对目标数据集和第二数据集进行集合求交处理,得到集合求交结果。
在一种可行的实施方式中,可信执行环境中还部署有智能合约;节点设备对目标数据集和第二数据集进行集合求交处理,得到集合求交结果的过程中,可以调用可信执行环境中的智能合约,将目标数据集中的各个数据分别输入至布隆过滤器进行查询处理,得到目标数据集中的各个数据的查询结果;目标数据集中的任一数据的查询结果用于指示:被查询处理的数据是否存在于第二数据集中;基于目标数据集中的各个数据的查询结果,从目标数据集中筛选出交集数据;以及,基于筛选出的交集数据构建集合求交结果。
其中,布隆过滤器包括位数组和K个哈希函数,K为正整数;第二数据集中的任一数据由位数组中的K个数位上的元素表示;第二数据集中的任一数据对应的K个数位上的元素为指定标签,第二数据集中的任一数据在位数组中占用的K个数位,是基于第二数据集中的该任一数据和K个哈希函数确定出的;目标数据集中包含目标数据,目标数据为目标数据集中的任一数据;节点设备调用可信执行环境中的智能合约,将目标数据输入至布隆过滤器进行查询处理,得到目标数据的查询结果时,可以调用可信执行环境中的智能合约,分别采用K个哈希函数,将目标数据映射为K个哈希值;目标数据对应的K个哈希值与K个哈希函数一一对应,且每个哈希值与位数组上的一个数位相对应;在位数组中检测目标数据对应的K个哈希值所对应数位上的元素是否均为指定标签,得到检测结果;根据检测结果生成目标数据的查询结果;其中,若检测结果指示所对应数位上的元素均为指定标签,则目标数据的查询结果用于指示:目标数据存在于第二数据集中;否则,目标数据的查询结果用于指示:目标数据不存在于第二数据集中。
举例来说,以图6a所对应示例的布隆过滤器为例,若针对目标数据,分别采用对应的3个哈希函数,将目标数据映射为3个哈希值,若该3个哈希值分别与位数组上的第0个数位、第3个数位以及第5个数位相对应;那么,若该3个数位上的元素均为指定标签,则目标数据的查询结果用于指示:目标数据存在于第二数据集中;否则,目标数据的查询结果用于指示:目标数据不存在于第二数据集中。其中,从目标数据集中筛选出的交集数据的查询结果用于指示:相应交集数据存在于第二数据集中。节点设备基于筛选出的交集数据构建集合求交结果的过程在上述实施例中已经进行详细描述,在此不做赘述。
参见图6b,为本申请实施例提供的另一种确定第一数据集和第二数据集的集合求交结果的示意图;节点设备在可信执行环境中,对第一数据集和第二数据集进行集合求交处理,得到集合求交结果的过程中,可以执行如下步骤:
S611,遍历第一数据集中的数据,确定当前遍历的数据;S612,将当前遍历的数据输入至布隆过滤器进行查询处理,得到当前遍历的数据的查询结果,查询结果用于指示:被查询处理的数据是否存在于第二数据集中;S613,确定当前遍历的数据遍历结束时第一客户端的可用数据量,当前遍历的数据遍历结束时第一客户端的可用数据量,为上一个遍历的数据遍历结束时第一客户端的可用数据量,与当前遍历的数据的数据量之间的差值;S614,检测是否达到遍历终止条件,遍历终止条件包括:在当前遍历的数据遍历结束时第一客户端的可用数据量为零值,或遍历第一数据集中的数据完成;S615,若达到遍历终止条件,则基于第一数据集中被遍历的各个数据的查询结果,从第一数据集中筛选出交集数据,以及基于筛选出的交集数据构建集合求交结果;S616,若未达到遍历终止条件,则继续遍历第一数据集中的下一个数据。
S510,节点设备将集合求交结果通知给第一客户端和第二客户端。
S511,若权限信息指示第一客户端不具备针对第二客户端的集合求交权限,则节点设备向第一客户端返回用于指示第一客户端不具备针对第二客户端的集合求交权限的权限反馈信息。
步骤510至步骤S511的相关过程,与上述步骤S307至步骤S308的相关过程类似,在此不做赘述。
本申请实施例中,第二客户端可以将其拥有的第二数据集转换成布隆过滤器上传至节点设备的可信执行环境中进行存储,相较于直接传输第二数据集,可以进一步保证第二数据集的安全性;并且,布隆过滤器可以起到压缩数据的作用,可以节约数据传输过程中所消耗的传输资源以及节约节点设备的可信执行环境的存储资源;在基于第二数据集对应的布隆过滤器查询某一数据是否存在于第二数据集中的情况下,可以通过布隆过滤器包括的K个哈希函数,将该数据向布隆过滤器中的位数组中的K个数位进行映射,通过检测相应K个数位的元素是否均为指定标签,可以快速地判断出该数据是否存在于第二数据集中,相较于在第二数据集中对比查询该数据是否存在于第二数据集中的方式,可以加快查询效率,以提高集合求交过程的处理效率。
以下实施例以第二数据集基于摘要的形式存储为例,对本申请实施例提出的基于区块链网络的数据处理方法进行详细的描述,参见图7,为本申请实施例提供的再一种基于区块链网络的数据处理方法的流程示意图;该基于区块链网络的数据处理方法可由数据处理系统执行,该基于区块链网络的数据处理方法可包括如下步骤S701-S711:
S701,第二客户端向节点设备发送数据写入请求,数据写入请求携带有加密后的摘要集,摘要集包括第二数据集中每个数据的摘要以及生成相应摘要所采用的哈希函数。
其中,该节点设备内置有可信执行环境;加密后的摘要集是由第二客户端对摘要集进行加密处理得到的,摘要集是基于第二数据集构建得到的;也就是说,第二客户端可以基于第二数据集构建摘要集,并对摘要集进行加密处理得到加密后的摘要集,基于加密后的摘要集构建数据写入请求,并向节点设备发送数据写入请求。
在一种可行的实施方式中,第二客户端对摘要集的加密方式,与上述第二客户端对第二数据集的加密方式,以及与上述第二客户端对布隆过滤器的加密方式类似,本申请实施例不对摘要集的加密方式进行限定,例如可以基于节点设备的可信执行环境的公钥,采用非对称加密的加密方式,再如可以基于第二客户端的对称密钥以及可信执行环境的公钥,采用数字信封的加密方式。
在一种可行的实施方式中,第二客户端构建摘要集时,可以执行如下步骤:第二客户端可以获取一个哈希函数,采用该哈希函数分别将第二数据集中的每个数据进行映射,得到第二数据集中每个数据的摘要,采用该哈希函数和第二数据集中每个数据的摘要构建得到第二数据集对应的摘要集,其中,该哈希函数可以根据具体需求进行设定。
S702,节点设备接收第二客户端发送的数据写入请求。
S703,节点设备响应于数据写入请求,在可信执行环境中从数据写入请求中解析出摘要集。
S704,节点设备将摘要集存储在可信执行环境中。
其中,步骤S702至步骤S704的相关过程,与上述步骤S502至步骤S504的相关过程类似,在此不做赘述。
S705,第一客户端向节点设备发送集合求交请求,集合求交请求用于请求获取第一客户端所拥有的第一数据集与第二客户端所拥有的第二数据集之间的集合求交结果。
其中,第二数据集存储在可信执行环境中,并且第二数据集在可信执行环境中以摘要的形式存储。
S706,节点设备接收第一客户端发送的集合求交请求。
S707,节点设备响应于集合求交请求,获取第一客户端的权限信息,权限信息用于指示:第一客户端是否具备针对第二客户端的集合求交权限。
S708,若权限信息指示第一客户端具备针对第二客户端的集合求交权限,则节点设备获取第一数据集。
S709,节点设备在可信执行环境中,对第一数据集和第二数据集进行集合求交处理,得到集合求交结果。
S710,节点设备将集合求交结果通知给第一客户端和第二客户端。
S711,若权限信息指示第一客户端不具备针对第二客户端的集合求交权限,则节点设备向第一客户端返回用于指示第一客户端不具备针对第二客户端的集合求交权限的权限反馈信息。
其中,步骤S705至步骤S711的相关过程,与上述步骤S505至步骤S511的相关过程类似。在步骤S709的过程中,即节点设备在可信执行环境中,对第一数据集和第二数据集进行集合求交处理,得到集合求交结果的过程中,由于节点设备可以对从第一数据集中确定出的目标数据集和第二数据集进行集合求交处理,得到集合求交结果;在该过程中,节点设备可以采用摘要集中的哈希函数分别将目标数据集中的每个数据进行映射,得到目标数据集中每个数据的摘要,将目标数据集中每个数据的摘要,和第二数据集中每个数据的摘要进行对比,筛选出相同摘要的数据作为交集数据,基于筛选出的交集数据构建集合求交结果。
本申请实施例中,第二客户端可以将其拥有的第二数据集转换成第二数据集对应的摘要集上传至节点设备的可信执行环境中进行存储,相较于直接传输第二数据集,可以进一步保证第二数据集的安全性。
基于上述基于区块链网络的数据处理方法实施例的描述,本申请实施例还公开了一种数据处理装置;数据处理装置运行于区块链网络中的节点设备中,节点设备内置有可信执行环境;数据处理装置可以是运行于区块链网络中的节点设备中的一个计算机程序(包括一条或多条指令),该数据处理装置可以执行图2、图3、图5或图7所示的方法流程中的各个步骤。请参见图8,数据处理装置可以运行如下单元:
接收单元801,用于接收第一客户端发送的集合求交请求,集合求交请求用于请求获取第一客户端所拥有的第一数据集与第二客户端所拥有的第二数据集之间的集合求交结果;第二数据集存储在可信执行环境中;
处理单元802,用于响应于集合求交请求,获取第一客户端的权限信息,权限信息用于指示:第一客户端是否具备针对第二客户端的集合求交权限;
处理单元802,还用于若权限信息指示第一客户端具备针对第二客户端的集合求交权限,则获取第一数据集;
处理单元802,还用于在可信执行环境中,对第一数据集和第二数据集进行集合求交处理,得到集合求交结果;
处理单元802,还用于将集合求交结果通知给第一客户端和第二客户端。
另一种实施方式中,权限信息包括第一客户端针对第二客户端进行集合求交的可用数据量;可用数据量是:第二客户端为第一客户端配置的允许集合求交的数据总量,与第一客户端针对第二客户端进行的历史集合求交所消耗的数据量之间的差值;处理单元802还可以用于:
解析权限信息,获得可用数据量;
若可用数据量为非零值,则确定权限信息指示第一客户端具备针对第二客户端的集合求交权限;
若可用数据量为零值,则确定权限信息指示第一客户端不具备针对第二客户端的集合求交权限。
另一种实施方式中,处理单元802在用于对第一数据集和第二数据集进行集合求交处理,得到集合求交结果时,可具体用于:
获取第一数据集的数据量;
若第一数据集的数据量大于可用数据量,则从第一数据集中选取待处理的至少一个数据,并基于所选取的数据构建目标数据集,目标数据集的数据量小于或等于可用数据量;
对目标数据集和第二数据集进行集合求交处理,得到集合求交结果;
其中,从第一数据集中选取待处理的数据的方式包括:从第一数据集中随机选取待处理的数据,或者,基于对第一数据集中数据的遍历顺序依次选取待处理的数据。
另一种实施方式中,处理单元802在用于对第一数据集和第二数据集进行集合求交处理,得到集合求交结果时,可具体用于:
获取第一数据集的数据量;
若第一数据集的数据量小于或等于可用数据量,则将第一数据集作为目标数据集,并对目标数据集和第二数据集进行集合求交处理,得到集合求交结果。
另一种实施方式中,第二数据集在可信执行环境中以布隆过滤器的形式存储;可信执行环境中还部署有智能合约;
处理单元802在用于对目标数据集和第二数据集进行集合求交处理,得到集合求交结果时,可具体用于:
调用可信执行环境中的智能合约,将目标数据集中的各个数据分别输入至布隆过滤器进行查询处理,得到目标数据集中的各个数据的查询结果;目标数据集中的任一数据的查询结果用于指示:被查询处理的数据是否存在于第二数据集中;
基于目标数据集中的各个数据的查询结果,从目标数据集中筛选出交集数据;以及,基于筛选出的交集数据构建集合求交结果。
另一种实施方式中,布隆过滤器包括位数组和K个哈希函数,K为正整数;第二数据集中的任一数据由位数组中的K个数位上的元素表示;第二数据集中的任一数据对应的K个数位上的元素为指定标签,第二数据集中的任一数据在位数组中占用的K个数位,是基于第二数据集中的任一数据和K个哈希函数确定出的;目标数据集中包含目标数据,目标数据为目标数据集中的任一数据;
处理单元802在用于调用可信执行环境中的智能合约,将目标数据输入至布隆过滤器进行查询处理,得到目标数据的查询结果时,可具体用于:
调用可信执行环境中的智能合约,分别采用K个哈希函数,将目标数据映射为K个哈希值;目标数据对应的K个哈希值与K个哈希函数一一对应,且每个哈希值与位数组上的一个数位相对应;
在位数组中检测目标数据对应的K个哈希值所对应数位上的元素是否均为指定标签,得到检测结果;
根据检测结果生成目标数据的查询结果;
其中,若检测结果指示所对应数位上的元素均为指定标签,则目标数据的查询结果用于指示:目标数据存在于第二数据集中;否则,目标数据的查询结果用于指示:目标数据不存在于第二数据集中。
另一种实施方式中,处理单元802在用于基于筛选出的交集数据构建集合求交结果时,可具体用于:
将目标数据集的数据量确定为消耗数据量,消耗数据量用于指示:第一客户端在本次针对第二客户端进行集合求交的过程中所消耗的数据量;
基于消耗数据量更新第一客户端针对第二客户端进行集合求交的可用数据量;
采用筛选出的交集数据的数据标识、消耗数据量以及更新后的可用数据量构建集合求交结果。
另一种实施方式中,处理单元802在用于将集合求交结果通知给第一客户端时,可具体用于:
对集合求交结果进行加密处理,得到加密后的集合求交结果;
将加密后的集合求交结果存储至区块链网络的区块链中,并发送结果提示信息至第一客户端,以使第一客户端在接收到结果提示信息之后,从区块链中获取加密后的集合求交结果,并对加密后的集合求交结果进行解密处理得到集合求交结果。
另一种实施方式中,集合求交请求携带有:采用第一客户端的对称密钥,对第一数据集进行加密处理所得到的加密后的第一数据集,以及采用可信执行环境的公钥,对第一客户端的对称密钥进行加密处理所得到的第一客户端的数字信封;
处理单元802在获取第一数据集时,可具体用于:
采用可信执行环境的私钥对第一客户端的数字信封进行解密处理,得到第一客户端的对称密钥;
采用第一客户端的对称密钥对加密后的第一数据集进行解密处理,得到第一数据集。
另一种实施方式中,接收单元801,还可以用于接收第二客户端发送的数据写入请求,数据写入请求携带有加密后的布隆过滤器;布隆过滤器用于表示第二数据集;
处理单元802,还可以用于响应于数据写入请求,在可信执行环境中从数据写入请求中解析出布隆过滤器;
处理单元802,还可以用于将布隆过滤器存储在可信执行环境中。
另一种实施方式中,第二客户端构建布隆过滤器时,可以用于:
初始化一个位数组以及获取K个哈希函数;初始化的位数组中每个数位上的元素被初始化为初始化标签,K为正整数;
遍历第二数据集中的数据,针对当前遍历数据,分别采用K个哈希函数,将当前遍历数据映射为K个哈希值;当前遍历数据对应的K个哈希值与K个哈希函数一一对应,且每个哈希值与位数组上的一个数位相对应;
在初始化的位数组中,将当前遍历数据对应的K个哈希值所对应数位上的元素更新为指定标签,直至第二数据集中的数据遍历完成;
采用遍历完成后的位数组和K个哈希函数构建布隆过滤器。
根据本申请的另一个实施例,图8所示的数据处理装置中的各个单元可以分别或全部合并为一个或若干个另外的单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个单元来构成,这可以实现同样的操作,而不影响本申请的实施例的技术效果的实现。上述单元是基于逻辑功能划分的,在实际应用中,一个单元的功能也可以由多个单元来实现,或者多个单元的功能由一个单元实现。在本申请的其它实施例中,数据处理装置也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。
根据本申请的另一个实施例,可以通过在包括中央处理单元(CPU)、随机存取存储介质(RAM)、只读存储介质(ROM)等处理元件和存储元件的例如计算机的通用计算设备上运行能够执行如图2、图3、图5或图7中所示的相应方法所涉及的各步骤的计算机程序(包括一条或多条指令),来构造如图8中所示的数据处理装置设备,以及来实现本申请实施例的基于区块链网络的数据处理方法。计算机程序可以记载于例如计算机可读存储介质上,并通过计算机可读存储介质装载于上述计算设备中,并在其中运行。
本申请实施例中,由区块链网络中的节点设备来执行集合求交过程,这就将集合求交过程与区块链技术相结合,利用区块链的可追溯但不可篡改的特性,确保集合求交过程的安全性和可靠性。此外,节点设备中内置有可信执行环境,参与集合求交的第二客户端所拥有的第二数据集预先存储在该可信执行环境中,这就利用了可信执行环境的可信、隔离的特性,保证了第二数据集的存储安全性,同时使得参与集合求交的第一客户端无法获知第二数据集的数据,保证了第二数据集的数据私有性。另外,响应于第一客户端发送的集合求交请求,节点设备在获取到指示第一客户端具备针对第二客户端的集合求交权限的权限信息之后,才获取第一客户端所拥有的第一数据集,并在可信执行环境中对第一数据集和第二数据集进行集合求交处理,得到集合求交结果后通知给第一客户端和第二客户端;由于第一数据集也被传入至可信执行环境中,这使得第二客户端也无法获知第一数据集的数据,保证了第一数据集的数据私有性;集合求交过程被封闭在可信执行环境中进行,这就保证了集合求交过程的计算安全性和可靠性;并且,节点设备是在获取到指示第一客户端具备针对第二客户端的集合求交权限的权限信息之后,才对第一数据集和第二数据集进行集合求交,使得不具备集合求交权限的其他客户端无法获取其拥有的数据集与第二数据集的求交集结果,保护了第二数据集的安全。
基于上述方法实施例以及装置实施例的描述,本申请实施例还提供一种计算机设备,该计算机设备可以是上述所提及的区块链网络中的节点设备,该节点设备内置有可信执行环境。请参见图9,该计算机设备至少包括处理器901、输入接口902、输出接口903以及计算机可读存储介质904。其中,计算机设备内的处理器901、输入接口902、输出接口903以及计算机可读存储介质904可通过总线或其他方式连接。计算机可读存储介质904可以存储在计算机设备的存储器中,计算机可读存储介质904用于存储计算机程序,计算机程序包括一条或多条指令,处理器901用于执行计算机可读存储介质904存储的计算机程序中的一条或多条指令。处理器901(或称CPU(Central Processing Unit,中央处理器))是计算机设备的计算核心以及控制核心,其适于实现一条或多条指令,具体适于加载并执行一条或多条指令从而实现相应方法流程或相应功能。
在一个实施例中,本申请实施例的处理器901可以用于实现集合求交的相关过程,具体可以包括:接收第一客户端发送的集合求交请求,集合求交请求用于请求获取第一客户端所拥有的第一数据集与第二客户端所拥有的第二数据集之间的集合求交结果;第二数据集存储在可信执行环境中;响应于集合求交请求,获取第一客户端的权限信息,权限信息用于指示:第一客户端是否具备针对第二客户端的集合求交权限;若权限信息指示第一客户端具备针对第二客户端的集合求交权限,则获取第一数据集;在可信执行环境中,对第一数据集和第二数据集进行集合求交处理,得到集合求交结果;将集合求交结果通知给第一客户端和第二客户端,等等。
本申请实施例还提供了一种计算机可读存储介质(Memory),计算机可读存储介质是计算机设备中的记忆设备,用于存放计算机程序和数据。可以理解的是,此处的计算机可读存储介质既可以包括计算机设备中的内置存储介质,当然也可以包括计算机设备所支持的扩展存储介质。计算机可读存储介质提供存储空间,该存储空间存储了计算机设备的操作系统。并且,在该存储空间中还存放了计算机程序,该计算机程序包括适于被处理器901加载并执行的一条或多条的指令,这些指令可以是一个或一个以上的程序代码。需要说明的是,此处的计算机可读存储介质可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器;可选的,还可以是至少一个位于远离前述处理器的计算机可读存储介质。
在一个实施例中,可由处理器加载并执行计算机可读存储介质中存放的一条或多条指令,以实现上述有关图2、图3、图5或图7所示的方法实施例中的相应步骤;具体实现中,计算机可读存储介质中的一条或多条指令可由处理器加载并执行如下步骤:
接收第一客户端发送的集合求交请求,集合求交请求用于请求获取第一客户端所拥有的第一数据集与第二客户端所拥有的第二数据集之间的集合求交结果;第二数据集存储在可信执行环境中;
响应于集合求交请求,获取第一客户端的权限信息,权限信息用于指示:第一客户端是否具备针对第二客户端的集合求交权限;
若权限信息指示第一客户端具备针对第二客户端的集合求交权限,则获取第一数据集;
在可信执行环境中,对第一数据集和第二数据集进行集合求交处理,得到集合求交结果;
将集合求交结果通知给第一客户端和第二客户端。
另一种实施方式中,权限信息包括第一客户端针对第二客户端进行集合求交的可用数据量;可用数据量是:第二客户端为第一客户端配置的允许集合求交的数据总量,与第一客户端针对第二客户端进行的历史集合求交所消耗的数据量之间的差值;一条或多条指令可由处理器加载并具体执行:
解析权限信息,获得可用数据量;
若可用数据量为非零值,则确定权限信息指示第一客户端具备针对第二客户端的集合求交权限;
若可用数据量为零值,则确定权限信息指示第一客户端不具备针对第二客户端的集合求交权限。
另一种实施方式中,在对第一数据集和第二数据集进行集合求交处理,得到集合求交结果时,一条或多条指令可由处理器加载并具体执行:
获取第一数据集的数据量;
若第一数据集的数据量大于可用数据量,则从第一数据集中选取待处理的至少一个数据,并基于所选取的数据构建目标数据集,目标数据集的数据量小于或等于可用数据量;
对目标数据集和第二数据集进行集合求交处理,得到集合求交结果;
其中,从第一数据集中选取待处理的数据的方式包括:从第一数据集中随机选取待处理的数据,或者,基于对第一数据集中数据的遍历顺序依次选取待处理的数据。
另一种实施方式中,在对第一数据集和第二数据集进行集合求交处理,得到集合求交结果时,一条或多条指令可由处理器加载并具体执行:
获取第一数据集的数据量;
若第一数据集的数据量小于或等于可用数据量,则将第一数据集作为目标数据集,并对目标数据集和第二数据集进行集合求交处理,得到集合求交结果。
另一种实施方式中,第二数据集在可信执行环境中以布隆过滤器的形式存储;可信执行环境中还部署有智能合约;
在对目标数据集和第二数据集进行集合求交处理,得到集合求交结果时,一条或多条指令可由处理器加载并具体执行:
调用可信执行环境中的智能合约,将目标数据集中的各个数据分别输入至布隆过滤器进行查询处理,得到目标数据集中的各个数据的查询结果;目标数据集中的任一数据的查询结果用于指示:被查询处理的数据是否存在于第二数据集中;
基于目标数据集中的各个数据的查询结果,从目标数据集中筛选出交集数据;以及,基于筛选出的交集数据构建集合求交结果。
另一种实施方式中,布隆过滤器包括位数组和K个哈希函数,K为正整数;第二数据集中的任一数据由位数组中的K个数位上的元素表示;第二数据集中的任一数据对应的K个数位上的元素为指定标签,第二数据集中的任一数据在位数组中占用的K个数位,是基于第二数据集中的任一数据和K个哈希函数确定出的;目标数据集中包含目标数据,目标数据为目标数据集中的任一数据;
在调用可信执行环境中的智能合约,将目标数据输入至布隆过滤器进行查询处理,得到目标数据的查询结果时,一条或多条指令可由处理器加载并具体执行:
调用可信执行环境中的智能合约,分别采用K个哈希函数,将目标数据映射为K个哈希值;目标数据对应的K个哈希值与K个哈希函数一一对应,且每个哈希值与位数组上的一个数位相对应;
在位数组中检测目标数据对应的K个哈希值所对应数位上的元素是否均为指定标签,得到检测结果;
根据检测结果生成目标数据的查询结果;
其中,若检测结果指示所对应数位上的元素均为指定标签,则目标数据的查询结果用于指示:目标数据存在于第二数据集中;否则,目标数据的查询结果用于指示:目标数据不存在于第二数据集中。
另一种实施方式中,在基于筛选出的交集数据构建集合求交结果时,一条或多条指令可由处理器加载并具体执行:
将目标数据集的数据量确定为消耗数据量,消耗数据量用于指示:第一客户端在本次针对第二客户端进行集合求交的过程中所消耗的数据量;
基于消耗数据量更新第一客户端针对第二客户端进行集合求交的可用数据量;
采用筛选出的交集数据的数据标识、消耗数据量以及更新后的可用数据量构建集合求交结果。
另一种实施方式中,在将集合求交结果通知给第一客户端时,一条或多条指令可由处理器加载并具体执行:
对集合求交结果进行加密处理,得到加密后的集合求交结果;
将加密后的集合求交结果存储至区块链网络的区块链中,并发送结果提示信息至第一客户端,以使第一客户端在接收到结果提示信息之后,从区块链中获取加密后的集合求交结果,并对加密后的集合求交结果进行解密处理得到集合求交结果。
另一种实施方式中,集合求交请求携带有:采用第一客户端的对称密钥,对第一数据集进行加密处理所得到的加密后的第一数据集,以及采用可信执行环境的公钥,对第一客户端的对称密钥进行加密处理所得到的第一客户端的数字信封;
在获取第一数据集时,一条或多条指令可由处理器加载并具体执行:
采用可信执行环境的私钥对第一客户端的数字信封进行解密处理,得到第一客户端的对称密钥;
采用第一客户端的对称密钥对加密后的第一数据集进行解密处理,得到第一数据集。
另一种实施方式中,一条或多条指令可由处理器加载并具体执行:
接收第二客户端发送的数据写入请求,数据写入请求携带有加密后的布隆过滤器;布隆过滤器用于表示第二数据集;
响应于数据写入请求,在可信执行环境中从数据写入请求中解析出布隆过滤器;
将布隆过滤器存储在可信执行环境中。
另一种实施方式中,第二客户端构建布隆过滤器时,可以用于:
初始化一个位数组以及获取K个哈希函数;初始化的位数组中每个数位上的元素被初始化为初始化标签,K为正整数;
遍历第二数据集中的数据,针对当前遍历数据,分别采用K个哈希函数,将当前遍历数据映射为K个哈希值;当前遍历数据对应的K个哈希值与K个哈希函数一一对应,且每个哈希值与位数组上的一个数位相对应;
在初始化的位数组中,将当前遍历数据对应的K个哈希值所对应数位上的元素更新为指定标签,直至第二数据集中的数据遍历完成;
采用遍历完成后的位数组和K个哈希函数构建布隆过滤器。
本申请实施例中,由区块链网络中的节点设备来执行集合求交过程,这就将集合求交过程与区块链技术相结合,利用区块链的可追溯但不可篡改的特性,确保集合求交过程的安全性和可靠性。此外,节点设备中内置有可信执行环境,参与集合求交的第二客户端所拥有的第二数据集预先存储在该可信执行环境中,这就利用了可信执行环境的可信、隔离的特性,保证了第二数据集的存储安全性,同时使得参与集合求交的第一客户端无法获知第二数据集的数据,保证了第二数据集的数据私有性。另外,响应于第一客户端发送的集合求交请求,节点设备在获取到指示第一客户端具备针对第二客户端的集合求交权限的权限信息之后,才获取第一客户端所拥有的第一数据集,并在可信执行环境中对第一数据集和第二数据集进行集合求交处理,得到集合求交结果后通知给第一客户端和第二客户端;由于第一数据集也被传入至可信执行环境中,这使得第二客户端也无法获知第一数据集的数据,保证了第一数据集的数据私有性;集合求交过程被封闭在可信执行环境中进行,这就保证了集合求交过程的计算安全性和可靠性;并且,节点设备是在获取到指示第一客户端具备针对第二客户端的集合求交权限的权限信息之后,才对第一数据集和第二数据集进行集合求交,使得不具备集合求交权限的其他客户端无法获取其拥有的数据集与第二数据集的求交集结果,保护了第二数据集的安全。
本申请实施例提供了一种计算机程序产品,计算机程序产品包括计算机程序,该计算机程序存储在计算机可读存储介质中;计算机设备的处理器从计算机可读存储介质中读取该计算机程序,处理器执行该计算机程序,使得计算机设备执行上述图2、图3、图5或图7所示的方法实施例。应理解的是,以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (15)
1.一种基于区块链网络的数据处理方法,其特征在于,所述方法由所述区块链网络中的节点设备执行,所述节点设备内置有可信执行环境;所述方法包括:
接收第一客户端发送的集合求交请求,所述集合求交请求用于请求获取所述第一客户端所拥有的第一数据集与第二客户端所拥有的第二数据集之间的集合求交结果;所述第二数据集存储在所述可信执行环境中;
响应于所述集合求交请求,获取所述第一客户端的权限信息,所述权限信息用于指示:所述第一客户端是否具备针对所述第二客户端的集合求交权限;
若所述权限信息指示所述第一客户端具备针对所述第二客户端的集合求交权限,则获取所述第一数据集;
在所述可信执行环境中,对所述第一数据集和所述第二数据集进行集合求交处理,得到所述集合求交结果;
将所述集合求交结果通知给所述第一客户端和所述第二客户端。
2.如权利要求1所述的方法,其特征在于,所述权限信息包括所述第一客户端针对所述第二客户端进行集合求交的可用数据量;所述可用数据量是:所述第二客户端为所述第一客户端配置的允许集合求交的数据总量,与所述第一客户端针对所述第二客户端进行的历史集合求交所消耗的数据量之间的差值;所述方法还包括:
解析所述权限信息,获得所述可用数据量;
若所述可用数据量为非零值,则确定所述权限信息指示所述第一客户端具备针对所述第二客户端的集合求交权限;
若所述可用数据量为零值,则确定所述权限信息指示所述第一客户端不具备针对所述第二客户端的集合求交权限。
3.如权利要求2所述的方法,其特征在于,所述对所述第一数据集和所述第二数据集进行集合求交处理,得到所述集合求交结果,包括:
获取所述第一数据集的数据量;
若所述第一数据集的数据量大于所述可用数据量,则从所述第一数据集中选取待处理的至少一个数据,并基于所选取的数据构建目标数据集,所述目标数据集的数据量小于或等于所述可用数据量;
对所述目标数据集和所述第二数据集进行集合求交处理,得到所述集合求交结果;
其中,从所述第一数据集中选取待处理的数据的方式包括:从所述第一数据集中随机选取待处理的数据,或者,基于对所述第一数据集中数据的遍历顺序依次选取待处理的数据。
4.如权利要求2所述的方法,其特征在于,所述对所述第一数据集和所述第二数据集进行集合求交处理,得到所述集合求交结果,包括:
获取所述第一数据集的数据量;
若所述第一数据集的数据量小于或等于所述可用数据量,则将所述第一数据集作为目标数据集,并对所述目标数据集和所述第二数据集进行集合求交处理,得到所述集合求交结果。
5.如权利要求3或4所述的方法,其特征在于,所述第二数据集在所述可信执行环境中以布隆过滤器的形式存储;所述可信执行环境中还部署有智能合约;
所述对所述目标数据集和所述第二数据集进行集合求交处理,得到所述集合求交结果,包括:
调用所述可信执行环境中的智能合约,将所述目标数据集中的各个数据分别输入至所述布隆过滤器进行查询处理,得到所述目标数据集中的各个数据的查询结果;所述目标数据集中的任一数据的查询结果用于指示:被查询处理的数据是否存在于所述第二数据集中;
基于所述目标数据集中的各个数据的查询结果,从所述目标数据集中筛选出交集数据;以及,
基于筛选出的交集数据构建所述集合求交结果。
6.如权利要求5所述的方法,其特征在于,所述布隆过滤器包括位数组和K个哈希函数,K为正整数;所述第二数据集中的任一数据由所述位数组中的K个数位上的元素表示;所述第二数据集中的任一数据对应的K个数位上的元素为指定标签,所述第二数据集中的任一数据在所述位数组中占用的K个数位,是基于所述第二数据集中的任一数据和所述K个哈希函数确定出的;所述目标数据集中包含目标数据,所述目标数据为所述目标数据集中的任一数据;
调用所述可信执行环境中的智能合约,将所述目标数据输入至所述布隆过滤器进行查询处理,得到所述目标数据的查询结果,包括:
调用所述可信执行环境中的智能合约,分别采用所述K个哈希函数,将所述目标数据映射为K个哈希值;所述目标数据对应的K个哈希值与所述K个哈希函数一一对应,且每个所述哈希值与所述位数组上的一个数位相对应;
在所述位数组中检测所述目标数据对应的K个哈希值所对应数位上的元素是否均为所述指定标签,得到检测结果;
根据所述检测结果生成所述目标数据的查询结果;
其中,若所述检测结果指示所对应数位上的元素均为所述指定标签,则所述目标数据的查询结果用于指示:所述目标数据存在于所述第二数据集中;否则,所述目标数据的查询结果用于指示:所述目标数据不存在于所述第二数据集中。
7.如权利要求5所述的方法,其特征在于,所述基于筛选出的交集数据构建所述集合求交结果,包括:
将所述目标数据集的数据量确定为消耗数据量,所述消耗数据量用于指示:所述第一客户端在本次针对所述第二客户端进行集合求交的过程中所消耗的数据量;
基于所述消耗数据量更新所述第一客户端针对所述第二客户端进行集合求交的可用数据量;
采用所述筛选出的交集数据的数据标识、所述消耗数据量以及更新后的可用数据量构建所述集合求交结果。
8.如权利要求1所述的方法,其特征在于,所述将所述集合求交结果通知给所述第一客户端,包括:
对所述集合求交结果进行加密处理,得到加密后的集合求交结果;
将所述加密后的集合求交结果存储至所述区块链网络的区块链中,并发送结果提示信息至所述第一客户端,以使所述第一客户端在接收到所述结果提示信息之后,从所述区块链中获取所述加密后的集合求交结果,并对所述加密后的集合求交结果进行解密处理得到所述集合求交结果。
9.如权利要求1所述的方法,其特征在于,所述集合求交请求携带有:采用所述第一客户端的对称密钥,对所述第一数据集进行加密处理所得到的加密后的第一数据集,以及采用所述可信执行环境的公钥,对所述第一客户端的对称密钥进行加密处理所得到的所述第一客户端的数字信封;
所述获取所述第一数据集,包括:
采用所述可信执行环境的私钥对所述第一客户端的数字信封进行解密处理,得到所述第一客户端的对称密钥;
采用所述第一客户端的对称密钥对所述加密后的第一数据集进行解密处理,得到所述第一数据集。
10.如权利要求1所述的方法,其特征在于,所述方法还包括:
接收所述第二客户端发送的数据写入请求,所述数据写入请求携带有加密后的布隆过滤器;所述布隆过滤器用于表示所述第二数据集;
响应于所述数据写入请求,在所述可信执行环境中从所述数据写入请求中解析出所述布隆过滤器;
将所述布隆过滤器存储在所述可信执行环境中。
11.如权利要求10所述的方法,其特征在于,所述第二客户端构建所述布隆过滤器的方法包括:
初始化一个位数组以及获取K个哈希函数;初始化的位数组中每个数位上的元素被初始化为初始化标签,K为正整数;
遍历所述第二数据集中的数据,针对当前遍历数据,分别采用所述K个哈希函数,将所述当前遍历数据映射为K个哈希值;所述当前遍历数据对应的K个哈希值与所述K个哈希函数一一对应,且每个所述哈希值与所述位数组上的一个数位相对应;
在所述初始化的位数组中,将所述当前遍历数据对应的K个哈希值所对应数位上的元素更新为指定标签,直至所述第二数据集中的数据遍历完成;
采用遍历完成后的位数组和所述K个哈希函数构建所述布隆过滤器。
12.一种数据处理装置,其特征在于,所述数据处理装置运行于区块链网络中的节点设备中,所述节点设备内置有可信执行环境;其中,所述数据处理装置包括:
接收单元,用于接收第一客户端发送的集合求交请求,所述集合求交请求用于请求获取所述第一客户端所拥有的第一数据集与第二客户端所拥有的第二数据集之间的集合求交结果;所述第二数据集存储在所述可信执行环境中;
处理单元,用于响应于所述集合求交请求,获取所述第一客户端的权限信息,所述权限信息用于指示:所述第一客户端是否具备针对所述第二客户端的集合求交权限;
所述处理单元,还用于若所述权限信息指示所述第一客户端具备针对所述第二客户端的集合求交权限,则获取所述第一数据集;
所述处理单元,还用于在所述可信执行环境中,对所述第一数据集和所述第二数据集进行集合求交处理,得到所述集合求交结果;
所述处理单元,还用于将所述集合求交结果通知给所述第一客户端和所述第二客户端。
13.一种计算机设备,包括输入接口和输出接口,其特征在于,还包括:处理器以及计算机可读存储介质;其中,
所述处理器适于实现一条或多条指令;
所述计算机可读存储介质存储有一条或多条指令,且所述一条或多条指令适于由所述处理器加载并执行如权利要求1-11任一项所述的基于区块链网络的数据处理方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一条或多条指令,所述一条或多条指令适于由处理器加载并执行如权利要求1-11任一项所述的基于区块链网络的数据处理方法。
15.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时,执行如权利要求1-11任一项所述的基于区块链网络的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311299447.9A CN117034370B (zh) | 2023-10-09 | 2023-10-09 | 基于区块链网络的数据处理方法及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311299447.9A CN117034370B (zh) | 2023-10-09 | 2023-10-09 | 基于区块链网络的数据处理方法及相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117034370A true CN117034370A (zh) | 2023-11-10 |
CN117034370B CN117034370B (zh) | 2024-01-26 |
Family
ID=88632282
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311299447.9A Active CN117034370B (zh) | 2023-10-09 | 2023-10-09 | 基于区块链网络的数据处理方法及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117034370B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110457875A (zh) * | 2019-07-31 | 2019-11-15 | 阿里巴巴集团控股有限公司 | 基于区块链的数据授权方法及装置 |
US20200177604A1 (en) * | 2019-07-31 | 2020-06-04 | Alibaba Group Holding Limited | Providing data authorization based on blockchain |
CN112073444A (zh) * | 2020-11-16 | 2020-12-11 | 支付宝(杭州)信息技术有限公司 | 数据集的处理方法、装置和服务器 |
CN112989397A (zh) * | 2021-05-17 | 2021-06-18 | 支付宝(杭州)信息技术有限公司 | 一种抗侧信道攻击的数据处理方法和装置 |
CN115396144A (zh) * | 2022-07-20 | 2022-11-25 | 北京冲量在线科技有限公司 | 基于可信执行环境和分布式数据求交算法的多方隐私求交方案 |
CN116401686A (zh) * | 2023-03-30 | 2023-07-07 | 西安电子科技大学 | 基于同态加密的多方隐私集合运算方法及其系统 |
-
2023
- 2023-10-09 CN CN202311299447.9A patent/CN117034370B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110457875A (zh) * | 2019-07-31 | 2019-11-15 | 阿里巴巴集团控股有限公司 | 基于区块链的数据授权方法及装置 |
US20200177604A1 (en) * | 2019-07-31 | 2020-06-04 | Alibaba Group Holding Limited | Providing data authorization based on blockchain |
CN112073444A (zh) * | 2020-11-16 | 2020-12-11 | 支付宝(杭州)信息技术有限公司 | 数据集的处理方法、装置和服务器 |
CN112989397A (zh) * | 2021-05-17 | 2021-06-18 | 支付宝(杭州)信息技术有限公司 | 一种抗侧信道攻击的数据处理方法和装置 |
CN115396144A (zh) * | 2022-07-20 | 2022-11-25 | 北京冲量在线科技有限公司 | 基于可信执行环境和分布式数据求交算法的多方隐私求交方案 |
CN116401686A (zh) * | 2023-03-30 | 2023-07-07 | 西安电子科技大学 | 基于同态加密的多方隐私集合运算方法及其系统 |
Non-Patent Citations (1)
Title |
---|
罗小双;杨晓元;王绪安;: "适用于社交网络的隐私保护兴趣度匹配方案", 计算机应用, no. 12, pages 90 - 95 * |
Also Published As
Publication number | Publication date |
---|---|
CN117034370B (zh) | 2024-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6877448B2 (ja) | 分散ハッシュテーブル及びブロックチェーンを用いてコンピュータソフトウェアを保証する方法及びシステム | |
CN109074433B (zh) | 使用分布式散列表和点对点分布式分类账验证数字资产完整性的方法和系统 | |
CN109862041B (zh) | 一种数字身份认证方法、设备、装置、系统及存储介质 | |
CN107948152B (zh) | 信息存储方法、获取方法、装置及设备 | |
JP6543743B1 (ja) | 管理プログラム | |
CN110599342B (zh) | 基于区块链的身份信息的授权方法及装置 | |
CN111476572A (zh) | 基于区块链的数据处理方法、装置、存储介质及设备 | |
CN111651794A (zh) | 基于联盟链的电子数据管理方法、装置和存储介质 | |
CN113255014B (zh) | 一种基于区块链的数据处理方法以及相关设备 | |
CN113094334B (zh) | 基于分布式存储的数字服务方法、装置、设备及储存介质 | |
CN111488372A (zh) | 一种数据处理方法、设备及存储介质 | |
WO2022004854A1 (ja) | 利用者端末、認証者端末、登録者端末、管理システムおよびプログラム | |
EP4002786B1 (en) | Distributed ledger system | |
CN111340483A (zh) | 一种基于区块链的数据管理方法及相关设备 | |
WO2020083629A1 (en) | Issuing device and method for issuing and requesting device and method for requesting a digital certificate | |
US20210374214A1 (en) | Method and system for securing computer software using a distributed hash table and a blockchain | |
CN116962021A (zh) | 金融合作机构中用户实名认证的方法、装置、设备和介质 | |
JP6939313B2 (ja) | 分散認証システム | |
CN117034370B (zh) | 基于区块链网络的数据处理方法及相关设备 | |
CN116015846A (zh) | 身份认证方法、装置、计算机设备和存储介质 | |
TW201941561A (zh) | 用於管理密碼的方法、裝置和電腦儲存介質 | |
CN117407907A (zh) | 数据查询方法、装置、设备、存储介质及计算机产品 | |
CN117390665A (zh) | 身份信息管理方法、装置、设备、存储介质和程序产品 | |
CN116226289A (zh) | 基于区块链的电子凭证管理方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |