A data processing system, method, node and device

By introducing secure aggregation nodes and a blockchain network into the data storage system, data access requests are broken down into sub-tasks and their interactions are coordinated, thus solving the data security problem between data nodes in different trust domains and achieving secure and efficient data interaction.

CN117155575BActive Publication Date: 2026-05-29HUAWEI CLOUD COMPUTING TECHNOLOGIES CO LTD

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
HUAWEI CLOUD COMPUTING TECHNOLOGIES CO LTD
Filing Date
2022-05-24
Publication Date
2026-05-29

Smart Images

  • Figure CN117155575B_ABST
    Figure CN117155575B_ABST
Patent Text Reader

Abstract

A data processing system, method, node and device, in the present application, the security aggregation node and the plurality of data nodes belong to the same blockchain network, and any data node receives a data access request. Based on the plurality of data information of the plurality of data nodes, the data access request is split into a plurality of subtasks. The data node retains the first subtask of the plurality of subtasks, and provides the remaining subtasks to other data nodes in the plurality of data nodes. The data node executes the first subtask to obtain the execution result of the first subtask, and provides the execution result of the first subtask to the security aggregation node based on the data information of the security aggregation node. The security aggregation node obtains the execution result of the data access request based on the execution result of the plurality of subtasks, and provides the execution result of the data access request to the data node. The data node feeds back the execution result of the data access request to the user. The interaction between the nodes conforms to the required interaction strategy, and the security of data interaction is guaranteed.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of communication technology, and in particular to a data processing system, method, node, and device. Background Technology

[0002] In the field of data storage, multiple data nodes can be assembled into a data storage system. This data storage system can provide users with services such as data querying and data storage.

[0003] When accessing data in the data storage system, users can initiate a data access request to the data storage system. After receiving the data access request, if the data accessed by the data access request involves different data nodes, the data storage system will parse the data access request and complete the access and aggregation of data from different data nodes.

[0004] In practical applications, multiple data nodes in a data storage system can originate from different trust domains, meaning their data sources differ. When data nodes interact in such systems, data privacy must be considered; that is, data nodes should not be allowed to directly access each other's data. Using the aforementioned method of accessing data in this system would inevitably lead to direct data interaction between data nodes, compromising data security. Summary of the Invention

[0005] This application provides a data processing system, method, node, and device to ensure data security when data nodes in different trust domains interact.

[0006] In a first aspect, embodiments of this application provide a data processing system, which includes a secure aggregation node and multiple data nodes, the secure aggregation node and the multiple data nodes belonging to the same blockchain network; here, the first data node and the second data node among the multiple data nodes are used as examples for illustration, and it should be understood that any one of the multiple data nodes can be the first data node or the second data node.

[0007] The first data node among multiple data nodes can receive data access requests triggered by a user. This first data interface can break down the user-triggered data access request into multiple subtasks, including a first subtask and a second subtask, based on multiple data information from the multiple data nodes. After obtaining these multiple subtasks, the first data node can retain the first subtask and also provide the remaining subtasks to other data nodes. For example, the second data node can provide the second subtask to the second data node. Each data node in the multiple data nodes possesses its own data information. For each data node, the data information describes the strategy followed in interacting with it.

[0008] The first data node executes the first subtask to obtain the execution result of the first subtask, and provides the execution result of the first subtask to the security aggregation node based on the data information of the security aggregation node. The data information of the security aggregation node is used to describe the strategy followed when interacting with the security aggregation node.

[0009] After obtaining the second task provided by the first data node, the second data node executes the second sub-task to obtain the execution result of the second sub-task, and provides the execution result of the second sub-task to the security aggregation node based on the data information of the security aggregation node.

[0010] The security aggregation node can obtain the execution results of multiple tasks from multiple data nodes, including the execution results of the first subtask and the second subtask. Based on the execution results of these subtasks from multiple data nodes, the security aggregation node can obtain the execution result of the data access request and provide this result to the first data node. After obtaining the execution result of the data access request, the first data node provides feedback to the user.

[0011] Through the above system, the splitting of data access requests conforms to the data information of the data nodes, and the interaction between the data nodes and the security aggregation nodes conforms to the data information of the security aggregation nodes. This ensures that the interaction between nodes in the system conforms to the required interaction strategy, which can effectively guarantee the security of data interaction and avoid data leakage.

[0012] In one possible implementation, after obtaining the execution results of multiple subtasks, the security aggregation node can further process the execution results of multiple subtasks based on multiple data information from multiple data nodes, so as to summarize the execution results of the processed multiple subtasks to obtain the execution result of the data access request.

[0013] Through the above system, the execution result of the data access request satisfies multiple data information from multiple data nodes, further ensuring that the execution result of the data access request meets the interaction strategy of the data nodes and ensuring the security of the execution result of the data access request.

[0014] In one possible implementation, the data information of the data node includes one or more of the following: data access strategy, data encryption strategy, or data noise strategy.

[0015] Among them, the data access policy is used to describe data access permissions. It can describe which data is allowed to be accessed or prohibited from being accessed, and it can also describe which users are allowed to access which data or are prohibited from accessing which data.

[0016] The data encryption strategy describes the encryption strategy used for subtasks or the execution results of subtasks. It also describes the encryption strategy required when interacting with data nodes.

[0017] Data noise strategy describes how to add noise to the execution results of a subtask. In other words, it describes the methods for adding noise to the execution results of a subtask before they are fed back to the user.

[0018] Through the aforementioned system, the data information of the data nodes includes different content, covering various ways in which data nodes interact, further ensuring the data security of data node interactions.

[0019] In one possible implementation, the first data node can provide its data information to other data nodes of the multiple data nodes and the security aggregation node, or it can obtain multiple data information from multiple data nodes and the data information from the security aggregation node.

[0020] The security aggregation node provides data information from the security aggregation node to multiple data nodes, and can also obtain multiple data information from multiple data nodes.

[0021] Through the above system, each node can obtain data information from other nodes, which helps to ensure that the processing of subsequent data access requests can be carried out effectively.

[0022] In one possible implementation, the first data node can provide a confirmation request for a second subtask (which can be understood as a candidate subtask in this embodiment) to the second data node based on the data information of the second data node, in order to notify the second data node to confirm the second task. After receiving the confirmation request, the second data node can provide the first data node with a confirmation result of the confirmation request. The confirmation result is used to indicate that the acquisition of the second subtask is permitted. The first data node can obtain the confirmation result of the second data node for the request.

[0023] Through the above system, the first data node can interact with the second data node in advance to confirm whether the second data node can execute the second subtask, ensuring that the candidate directly distributes the second subtask to the second data node when distributing the second subtask, thereby improving the processing efficiency of data access requests.

[0024] Secondly, embodiments of this application provide a data processing method. This method can be executed by multiple data nodes and a security aggregation node, all belonging to the same blockchain network. The beneficial effects are described in the relevant section of the first aspect and will not be repeated here. In this method: A first data node among the multiple data nodes, based on multiple data information from the multiple data nodes, splits a user-triggered data access request into multiple subtasks, including a first subtask and a second subtask, and provides the second subtask to a second data node. The data information of the data nodes describes the strategy followed in interacting with the data nodes. The first data node executes the first subtask to obtain its execution result and provides the execution result of the first subtask to the security aggregation node based on its data information. The data information of the security aggregation node describes the strategy followed in interacting with the security aggregation node. The second data node obtains the second task provided by the first data node, executes the second subtask to obtain its execution result, and provides the execution result of the second subtask to the security aggregation node based on its data information.

[0025] The security aggregation node obtains the execution result of the data access request based on the execution results of multiple sub-tasks executed by multiple data nodes (including the execution results of the first sub-task and the second sub-task), and provides the execution result of the data access request to the first data node; the first data node then feeds back the execution result of the data access request to the user.

[0026] In one possible implementation, when the security aggregation node obtains the execution result of the data access request based on the execution results of multiple sub-tasks executed by multiple data nodes, it can process the execution results of multiple sub-tasks based on multiple data information of multiple data nodes, so as to summarize the execution results of the multiple sub-tasks after processing to obtain the execution result of the data access request.

[0027] In one possible implementation, the data information of the data node includes one or more of the following: data access strategy, data encryption strategy, or data noise strategy;

[0028] Among them, the data access policy describes the data access permissions, the data encryption policy describes the encryption policy used for subtasks or the execution results of subtasks, and the data noise policy describes the way noise is added to the execution results of subtasks.

[0029] In one possible implementation, the first data node provides its data information to multiple data nodes and a security aggregation node, and obtains multiple data information from the multiple data nodes and the data information from the security aggregation node.

[0030] The security aggregation node provides data information from the security aggregation node to multiple data nodes, and obtains multiple data information from multiple data nodes and data information from the security aggregation node.

[0031] In one possible implementation, the method allows the first data node to provide a confirmation request for the second subtask to the second data node based on the data information of the second data node, and obtain the confirmation result of the second data node on the confirmation request. The confirmation result is used to indicate that the acquisition of the second subtask is permitted.

[0032] Thirdly, embodiments of this application provide a data processing method. This method can be executed by a first data node among multiple data nodes. The multiple data nodes and the security aggregation node belong to the same blockchain network. The beneficial effects can be found in the relevant description of the first aspect and will not be repeated here. In this method:

[0033] The first data node among multiple data nodes breaks down the user-triggered data access request into multiple subtasks, including a first subtask and a second subtask, based on multiple data information from multiple data nodes. It then provides the second subtask to the second data node among multiple data nodes. The multiple data information from multiple data nodes is used to describe the strategy followed when interacting with multiple data nodes.

[0034] The first data node can execute the first subtask to obtain the execution result of the first subtask, and provide the execution result of the first subtask to the security aggregation node based on the data information of the security aggregation node. The data information of the security aggregation node is used to describe the strategy followed when interacting with the security aggregation node.

[0035] The first data node obtains the execution result of the data access request from the security aggregation node and provides feedback on the execution result of the data access request to the user.

[0036] In one possible implementation, the data information of the data node includes one or more of the following: data access strategy, data encryption strategy, or data noise strategy;

[0037] Among them, the data access policy describes the data access permissions, the data encryption policy describes the encryption policy used for subtasks or the execution results of subtasks, and the data noise policy describes the way noise is added to the execution results of subtasks.

[0038] In one possible implementation, the first data node provides its data information to multiple data nodes and a security aggregation node, and obtains multiple data information from the multiple data nodes and the data information from the security aggregation node.

[0039] In one possible implementation, the first data node provides a confirmation request for the second subtask to the second data node based on the data information of the second data node, and obtains the confirmation result of the second data node on the confirmation request. The confirmation result is used to indicate that the acquisition of the second subtask is permitted.

[0040] Fourthly, this application provides a data processing method that can be executed by a secure aggregation node. Multiple data nodes and the secure aggregation node belong to the same blockchain network. The beneficial effects are described in the relevant section of the first aspect and will not be repeated here. In this method:

[0041] The secure aggregation node can receive the execution results of multiple subtasks provided by multiple data nodes, obtain the execution result of the data access request based on the execution results of multiple subtasks obtained by multiple data nodes, and provide the execution result of the data access request to the data nodes among the multiple data nodes.

[0042] In one possible implementation, when the security aggregation node obtains the execution result of the data access request based on the execution results of multiple sub-tasks executed by multiple data nodes, the security aggregation node processes the execution results of multiple sub-tasks based on multiple data information of multiple data nodes, so as to summarize the execution results of the multiple sub-tasks after processing to obtain the execution result of the data access request.

[0043] In one possible implementation, the data information of the data node includes one or more of the following: data access strategy, data encryption strategy, or data noise strategy;

[0044] Among them, the data access policy describes the data access permissions, the data encryption policy describes the encryption policy used for subtasks or the execution results of subtasks, and the data noise policy describes the way noise is added to the execution results of subtasks.

[0045] In one possible implementation, the security aggregation node provides data information of the security aggregation node to multiple data nodes, and obtains multiple data information of multiple data nodes and data information of the security aggregation node.

[0046] Fifthly, this application embodiment also provides a data node, the beneficial effects of which can be found in the description of the first aspect and will not be repeated here. This device has the function of implementing the behavior in the method example of the third aspect described above. The function can be implemented by hardware or by hardware executing corresponding software. The hardware or software includes one or more modules corresponding to the above functions. In one possible design, the device structure includes a task decomposition and execution module and a first blockchain module. These modules can execute the corresponding functions in the method example of the third aspect described above, as detailed in the method example description and will not be repeated here.

[0047] Sixthly, this application embodiment also provides a secure aggregation node, the beneficial effects of which can be found in the description of the first aspect and will not be repeated here. This device has the function of implementing the behavior in the method example of the fourth aspect above. The function can be implemented by hardware or by hardware executing corresponding software. The hardware or software includes one or more modules corresponding to the above functions. In one possible design, the device structure includes a second blockchain module and a data processing module, these units can perform the corresponding functions in the method example of the fourth aspect above, as detailed in the method example description, and will not be repeated here.

[0048] In a seventh aspect, embodiments of the present invention provide a computing device including a processor and a memory, and may further include a network interface card (NIC). The processor can invoke program instructions stored in the memory to cause the computing device to execute the method provided in the second aspect or any possible implementation thereof, or to execute the method provided in the third aspect or any possible implementation thereof, or to execute the method provided in the fourth aspect or any possible implementation thereof. The memory is coupled to the processor and stores program instructions and data necessary for executing the data transmission method. The communication interface is used for communicating with other devices and transmitting data, such as providing subtasks or the execution results of subtasks, and providing the execution results of data access requests.

[0049] Eighthly, this application provides a non-transient readable storage medium containing computer program instructions. When executed by a computing device, the computer program instructions can perform the aforementioned second aspect or any possible implementation thereof. When executed by the computing device, the computer program instructions can also perform the aforementioned third aspect or any possible implementation thereof. When executed by the computing device, the computer program instructions can also perform the aforementioned fourth aspect or any possible implementation thereof.

[0050] The storage medium stores the program. This storage medium includes, but is not limited to, volatile memory, such as random access memory, and non-volatile memory, such as flash memory, hard disk drive (HDD), and solid state drive (SSD).

[0051] Ninthly, this application provides a computer device program product comprising computer instructions that, when executed by a computing device, enable the computing device to perform the aforementioned second aspect or any possible implementation thereof. When executed by a computing device, the computing device may also perform the aforementioned third aspect or any possible implementation thereof. When executed by a computing device, the computing device may also perform the aforementioned fourth aspect or any possible implementation thereof. The computer program product may be a software installation package, which can be downloaded and executed on a computing device when the methods provided in the aforementioned second aspect or any possible implementation thereof, or when the methods provided in the aforementioned third aspect or any possible implementation thereof, or when the methods provided in the aforementioned fourth aspect or any possible implementation thereof, are required to be used. Attached Figure Description

[0052] Figure 1 A schematic diagram of the system architecture provided in this application;

[0053] Figure 2 A schematic diagram of a data processing method provided in this application;

[0054] Figure 3 A schematic diagram illustrating a data intersection method provided in this application;

[0055] Figures 4-5 A schematic diagram of the structure of a computing device provided in this application. Detailed Implementation

[0056] Before introducing the data processing method provided in the embodiments of this application, the concepts involved in this application will be explained first.

[0057] Blockchain is a chain-like data structure that links data blocks sequentially in chronological order, using cryptography to ensure the immutability and tamper-proof nature of the data. Blockchain is based on a peer-to-peer (P2P) network, where each P2P network node participating in transactions, block storage, verification, and forwarding is a node on the blockchain, i.e., a blockchain node.

[0058] A blockchain network can include one or more blockchains, and each blockchain can include multiple blockchain nodes. A blockchain node can include a ledger instance and chaincode. The ledger instance records transactions in the blockchain network. Chaincode, also known as a smart contract, is used by blockchain nodes to query transactions in the ledger instance and to add transactions to the ledger instance; there can be one or more chaincodes. Blockchain nodes can be implemented as various terminals or servers, and act as trusted nodes capable of executing smart contracts that enable privacy transactions, synchronizing block data across the blockchain network.

[0059] Each blockchain can correspond to one channel. Channels have the following characteristics: blockchain nodes joining the same channel can conduct transactions or share the ledger; a single blockchain node can join one or more channels. When a blockchain node joins one channel, it holds one ledger; when it joins multiple channels, it holds multiple ledgers. Each blockchain node stores data including ledger data and state data (state database).

[0060] It's important to note that the ledger data in the block is immutable, while the state data in the state database records the results of each transaction. Therefore, transactions can be continuously added to modify the state data; state data is indeed modifiable. In specific implementations, the state data stored in the state database can be the data related to the most recent transaction in the current ledger. Furthermore, during each transaction execution, the ledger data is not updated; only a "simulated" transaction is performed to obtain its result. Only when this simulated transaction reaches consensus on the blockchain will its corresponding result be synchronized to the relevant block. Afterward, blockchain nodes can retrieve the structure from the target block storing the structure and write the data to be written from that structure into the corresponding state database.

[0061] It should be understood that smart contracts are essentially executable code stored on the blockchain. Because they do not necessarily have an actual owner and are not accounts in the strict sense, their characteristics and behaviors can, in many cases, be viewed as a machine account controlled by programming logic. In a broader sense, smart contracts can also include smart contract programming languages, compilers, virtual machines, events, state machines, fault tolerance mechanisms, and so on.

[0062] In this application, the nodes in the data processing system (such as data node 100 and security aggregation node 200) belong to the same blockchain network, and the interaction between nodes in the system can adopt the interaction method of blockchain nodes. For example, the process of exchanging information between nodes in the data processing system can be understood as the transaction mentioned in the foregoing description. The data processing system, method, and device provided in the embodiments of this application will be described below with reference to the accompanying drawings.

[0063] like Figure 1 The diagram shown is a structural schematic of a data processing system provided in an embodiment of this application. The data processing system includes a secure aggregation node 200 and multiple data nodes 100.

[0064] In this data processing system, each data node 100, as well as the data node 100 and the security aggregation node 200, can provide each other with their own data information. The data information of the data node 100 describes the strategy followed when interacting with that data node 100. The data information of the security aggregation node 200 describes the strategy followed when interacting with that security aggregation node 200.

[0065] In other words, each node in this data processing system has its own data information; that is, data node 100 has its own data information, and security aggregation node 200 has its own data information. For any data node 100, it can provide its data information to other data nodes in the data processing system. For security aggregation node 200, it can provide its own data information to multiple data nodes 100. Therefore, any data node 100 can obtain multiple data information from multiple data nodes 100, as well as the data information from security aggregation node 200. Similarly, any security aggregation node 200 can obtain multiple data information from multiple data nodes 100 and can also know the data information from security aggregation node 200.

[0066] After receiving a data access request, any data node 100 in the data processing system can decompose the data access request into multiple sub-tasks based on the data information of other data nodes 100 in the system. After decomposing the data access request into multiple sub-tasks, the data node 100 can distribute these sub-tasks to some or all of the data nodes 100 in the data processing system. Alternatively, the data node 100 that decomposed the data access request can retain some of the sub-tasks for execution. Each data node 100 can execute one or more of the multiple sub-tasks. After completing a sub-task, any data node 100 can provide the execution result of the sub-task to the security aggregation node 200 based on the data information of the security aggregation node 200. The security aggregation node 200 can obtain the execution result of the data access request based on the execution results of the multiple sub-tasks and provide this result to the data node 100 that received the request. The data node 100 that received the data access request can then provide feedback on the execution result to the user.

[0067] For any given data node 100, that data node 100 has a data provision function. That is, the data node 100 can provide data externally. The data processing system includes multiple data nodes 100 from different data trust domains. Data from data nodes 100 located within the same data trust domain does not need to be kept confidential, and any two data nodes 100 within the same data trust domain do not need to consider data privacy and security issues when exchanging data. However, in this embodiment, because the data processing system includes multiple data nodes 100 from different data trust domains, any two data nodes 100 need to consider data privacy and security issues when exchanging data.

[0068] For example, the server of bank branch A can store the banking information of each user of bank branch A, such as user account opening information, user transaction records, and user account balances. Similarly, the server of bank branch B can store the same information for each user of bank branch B. The tax bureau's server can store individual or corporate tax information, such as individual or corporate income, tax amounts, and tax payment records. The water and electricity bureau's server can store individual or corporate water and electricity bill information. Banks, tax bureaus, and water and electricity bureaus belong to different data trust domains. Bank branches A and B belong to the same bank, meaning they come from the same data trust domain. Data can be shared between the servers of branch A and branch B, and data exchange between their servers will not leak user privacy. However, when the servers of banks (such as those of branch A and branch B), tax bureaus, and water and electricity bureaus exchange data, data security must be considered. If these three servers do not take any privacy protection measures when exchanging various data, it can easily lead to the leakage of users' privacy.

[0069] Given the data privacy and security issues among data nodes 100 from different data trust domains, in this embodiment, when data nodes 100 split data access requests into multiple sub-tasks, they need to rely on their own data information. Furthermore, a security aggregation node 200 is added to the data processing system. Each data node 100 provides data (i.e., the execution results of the aforementioned sub-tasks) to the security aggregation node 200 based on its data information. Data interactions between nodes in this system all comply with the strategies followed by node interactions, thus ensuring that data between data nodes 100 cannot be cracked by other data nodes 100.

[0070] In this application embodiment, the data processing system can be built on blockchain. In this data processing system, each data node 100 from different data trust domains and the security aggregation node 200 belong to the same blockchain network. Each data node 100 and the security aggregation node 200 can serve as a blockchain node of the blockchain network.

[0071] The secure aggregation node 200 and multiple data nodes 100 possess the basic functions of blockchain nodes. The interaction between the secure aggregation node 200 and the multiple data nodes 100 follows the interaction method of blockchain nodes described above. That is, the secure aggregation node 200 can publish information exchanged with data nodes 100 (such as data information between data nodes 100 and secure aggregation node 200, execution results of subtasks, etc.) or information exchanged between data nodes 100 (such as candidate subtasks determined by data nodes 100, confirmation results of data nodes 100 for candidate subtasks, subtasks, etc.) to the blockchain network, enabling all blockchain nodes to obtain this information. In this way, each blockchain node can record this information and reach a unified consensus on it.

[0072] From a functional perspective, any data node 100 includes a data module 110, a first blockchain module 120, and a task decomposition and execution module 130.

[0073] Data module 110 is used to implement the data provision function of data node 100. Data module 110 can store data or obtain data from other devices.

[0074] The first blockchain module 120 is used to implement the functions of the data node 100 as a blockchain node. The first blockchain module 120 is primarily responsible for providing and acquiring data within the blockchain network. The first blockchain module 120 can provide data to the blockchain network, such as publishing the data information of the data node 100 to various data nodes 100 and the security aggregation node 200 within the blockchain network. Alternatively, the first blockchain module 120 can provide encrypted data (such as hash-encrypted data identifiers in this embodiment) from one or more data nodes 100 in the blockchain network. Furthermore, the first blockchain module 120 can provide at least one sub-task decomposed by the task decomposition and execution module 130 to one or more data nodes 100 in the blockchain network. The first blockchain module 120 can also obtain data from other blockchain nodes (such as other data nodes 100 or secure aggregation nodes 200) in the blockchain network. For example, the first blockchain module 120 can obtain data information from other data nodes 100 or secure aggregation nodes 200, and can also obtain sub-tasks provided by other data nodes 100.

[0075] It should be noted that the function of the first blockchain module 120 is essentially data transmission. Since this embodiment uses a data processing system built on blockchain as an example, the data transmission function implemented by the first blockchain module 120 needs to conform to the data transmission methods in a blockchain network. If the data processing system is not built on blockchain, this data transmission function can be implemented by a regular data transmission module. This embodiment only uses the first blockchain module 120 as an example for illustration.

[0076] The task decomposition and execution module 130 is mainly used for decomposing data access requests and executing subtasks. For example, the task decomposition and execution module 130 can parse the data access request obtained by the data node 100 and decompose the data access request into at least one subtask. After decomposing the data access request and obtaining the multiple subtasks, the task decomposition and execution module 130 can provide all or part of the multiple subtasks to other data nodes 100 in the system through the first blockchain module 120. The task decomposition and execution module 130 can also retain some of the subtasks and execute those retained subtasks.

[0077] In the above description, the modules in data node 100 are divided from a functional perspective. In specific applications, the modules in data node 100 can also be divided in other ways. This application embodiment does not limit the module division method. Regardless of the division method, data node 100 always possesses the functions of each module mentioned above. This application embodiment does not limit the specific form of each module in data node 100. Each module of data node 100 can exist in software form. For example, data module 110 can be an application deployed on data node 100, the first blockchain module 120 can be a microservice established on data node 100, and task decomposition and execution module 130 can be a thread created on data node 100. The specific forms of each module in data node 100 listed above are merely examples.

[0078] For the security aggregation node 200, its function is data aggregation. This data aggregation includes processing the execution results of data subtasks, obtaining the execution results of data access requests, and may also include other data aggregation methods. For example, the security aggregation node 200 can also cooperate with each data node 100 to achieve data intersection when each data node 100 executes subtasks. The specific implementation method of data intersection will be described below. Figure 3 The embodiments shown are detailed here and will not be repeated here.

[0079] Functionally, the secure aggregation node 200 includes a second blockchain module 220 and a data processing module 210.

[0080] The second blockchain module 220 is similar to the first blockchain module 120, and is used to implement the functions of the secure aggregation node when acting as a blockchain node. The second blockchain module 220 is mainly responsible for publishing and retrieving data in the blockchain network. For example, it provides data information from the secure aggregation node 200 to data nodes 100, and retrieves data information or subtask execution results from each data node 100.

[0081] The data processing module 210 is used to process data acquired or to be provided to data nodes 100. This processing includes, but is not limited to, decryption, aggregation, adding noise, and data intersection. For example, the data processing module 210 can also decrypt the execution results of encrypted subtasks and aggregate the decrypted execution results of each subtask. As another example, the data processing module 210 can also add noise to the execution results of subtasks before feeding back the aggregated execution results. The data processing module 210 can also perform data intersection on the data provided by multiple data nodes 100 upon request.

[0082] This application does not limit the specific form of each module in the secure aggregation node 200. Each module of the secure aggregation node 200 can exist in software form. For example, the data processing module 210 can be an application deployed on the secure aggregation node 200, and the second blockchain module 220 can be a microservice established on the secure aggregation node 200. The specific forms of each module in the secure aggregation node 200 listed above are merely examples.

[0083] The module division in this application embodiment is illustrative and only represents one logical functional division. In actual implementation, other division methods may be used. Furthermore, the functional modules in the various embodiments of this application can be integrated into a single processor, exist as separate physical entities, or be integrated into a single module. The integrated modules described above can be implemented in hardware or as software functional modules.

[0084] If the integrated module is implemented as a software functional module and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, or all or part of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a terminal device (which may be a personal computer, mobile phone, or network device, etc.) or processor to execute all or part of the steps of the methods in the various embodiments of this application. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.

[0085] In this embodiment, each data node 100 in the data processing system can obtain data information from other data nodes 100 and the security aggregation node 200. The security aggregation node 200 can also obtain data information from each data node 100. This data information describes the strategies followed during interaction, such as which data can be provided, which cannot, and how the data is encrypted. Thus, data interaction between data nodes 100 and between data nodes 100 and the security aggregation node 200 can only proceed normally if the data information from both ends of the interaction is consistent. This ensures that interactions between data nodes 100 within the data processing system, or between data nodes 100 and the security aggregation node 200, are secure, reducing the likelihood of data leakage and guaranteeing that data in data nodes 100 will not be exposed to other data nodes 100, thus ensuring data security.

[0086] The following is combined with Figure 2 This application provides a data processing method according to an embodiment, which includes:

[0087] Step 201: For any one of the plurality of data nodes 100, data node 100 provides its data information to the other data nodes 100 and the security aggregation node 200. The data information of data node 100 describes the strategy followed when interacting with data node 100. Figure 2 Only three data nodes 100 are shown as an example. To distinguish each data node 100, these three data nodes 100 are labeled as data node 100A, data node 100B, and data node 100C.

[0088] Step 202: The secure aggregation node 200 provides its data information to each data node 100. The data information of the secure aggregation node 200 describes the strategy followed when interacting with the secure aggregation node 200.

[0089] The data information of the secure aggregation node 200 is similar to that of the data node 100; this description uses the data information of the data node 100 as an example. In this embodiment, interaction with the data node 100 includes both providing and acquiring data. The data information of the data node 100 can describe the strategies followed by the data node 100 in providing data, such as which data is allowed or not allowed to be provided. For example, it can specify whether noise needs to be added to the data provided to the user, and how the noise is added. The data information of the data node 100 can also describe the strategies followed by the data node 100 in acquiring data, such as whether the acquired data needs to be encrypted; if encryption is required, the public key or encryption algorithm used for encrypting the acquired data.

[0090] To provide a clearer explanation of the data information, the content of the data information is categorized here. In this embodiment, the data information of data node 100 or security aggregation node 200 may include some or all of the following information:

[0091] Data access strategy, data encryption strategy, data noise reduction strategy.

[0092] A data access policy describes the rules to be followed when accessing data from data node 100. This policy can record data access permissions and access addresses, such as the address of data node 100 or the address of the security aggregation node 200. Other data nodes 100 or security aggregation nodes 200 in the data processing system can only provide data to data node 100 if they know its address.

[0093] This data access permission record records the data that a user is allowed to access or that is prohibited from accessing. When recording the data allowed or prohibited by data node 100, the data access policy takes into account that different users have different data access permissions. The data access policy can record the user information allowed to access each piece of data; data can only be accessed by that user if the user information matches the information of the user who needs to access the data. For example, users and data node 100 can pre-agree on access levels. That is, users have their own access levels, and data in data node 100 also has data access levels. When the user's access level carried in a data access request matches the access level of a certain piece of data, the user is allowed to access that data. As another example, the data access policy can record the user identifiers allowed to access each piece of data; data can only be accessed by that user when the user identifier carried in a data access request matches the user identifier of the user who needs to access the data.

[0094] A data encryption strategy describes the encryption method to be used for the acquired data. This acquired data can be sub-tasks obtained through decomposition, or the execution results of those sub-tasks. The data encryption strategy can record the encryption algorithm and public key used for the acquired data. For example, the strategy can record the use of symmetric keys to encrypt data when data node 100 interacts with other nodes (such as other data nodes 100 or secure aggregation node 200), or it can record the use of asymmetric keys to encrypt symmetric keys to achieve peer-to-peer data sharing. As another example, the strategy can record the use of attribute encryption (ABE) to encrypt data when data node 100 interacts with other nodes (such as other data nodes 100 or secure aggregation node 200) to achieve fine-grained data sharing based on attributes.

[0095] Taking data nodes 100A and 100B as examples, data node 100A can store a key pair used for data encryption and decryption. This key pair includes a public key and a private key. The public key can be shared or shared with other nodes. The private key is something data node 100A must keep secret and is not allowed to disclose. Data encrypted with the public key can be decrypted using the private key, and data encrypted with the private key can be decrypted using the public key. Data node 100B is similar, storing its own key pair. Data node 100A can provide its public key to data node 100B as a data encryption strategy. In this way, data node 100B in the blockchain network can obtain data node 100A's public key. Therefore, when data node 100B needs to provide data to data node 100A (such as providing subtasks or the execution results of subtasks), it can use data node 100A's public key to encrypt the data and then provide the encrypted data to data node 100A. When data node 100A receives encrypted data, it can decrypt it using its own private key. If other nodes in the blockchain network receive data provided to data node 100A by data node 100B, they cannot decrypt the data provided by data node 100B because they do not have data node 100A's private key.

[0096] A data noise strategy describes how noise is added to the execution results of subtasks before the data access request is returned to the user. Adding noise to data is a form of encryption. Adding noise to the data provided to the user prevents data leakage during the data delivery process. A data noise strategy records the type of noise and how it is added. For example, differential privacy algorithms.

[0097] It should be noted that when adding noise to the execution result of a data access request, the noise can be added uniformly to the entire execution result of the data access request, meaning that the execution results of each subtask use the same noise-adding method. Alternatively, noise can be added to the execution results of the subtasks provided by each data node 100 according to the data noise strategy of each data node 100. In other words, it is permissible to add noise to the execution results of the subtasks provided by different data nodes 100 in different ways. After adding noise to the execution results of each subtask, the execution result of the data access request is obtained through processing.

[0098] Through steps 201 and 202, each data node 100 can obtain data information provided by other data nodes 100 and the security aggregation node 200, such as the data access policies and data encryption policies of other data nodes 100, and also the data information of the security aggregation node 200. The security aggregation node 200 can obtain data information from each data node 100.

[0099] Each data node 100 can negotiate to determine the subtasks that each data node 100 is allowed to acquire. See steps 203 to 206 for details.

[0100] The following steps can be performed for any data node 100, with data node 100A as an example:

[0101] Step 203: The data node 100A can determine the candidate subtasks that each data node 100 is allowed to acquire based on the data access policies of each data node 100 in the blockchain network.

[0102] This section uses the example of data node 100A determining the candidate subtasks that data node 100B is allowed to acquire to illustrate the following:

[0103] After obtaining the data access policy of data node 100B, data node 100A can determine the data that data node 100B allows and prohibits from accessing, based on the data access policy of data node 100B. Therefore, data node 100A can determine that data accessed by candidate subtasks is data that data node 100B allows. Data accessed by subtasks that data node 100B does not allow or will not process is data that data node 100B prohibits from accessing.

[0104] Step 204: Data node 100A provides each data node 100 with a confirmation request for the candidate subtasks it has identified, in order to notify each data node 100 in the blockchain network to confirm the candidate subtasks it has identified. For example, data node 100A can provide data node 100B with a confirmation request for the candidate subtasks it has identified, and data node 100A can provide data node 100C with a confirmation request for the candidate subtasks it has identified.

[0105] Here, we will still take the example of data node 100 obtaining the candidate subtasks of data node 100B to illustrate how data node 100 obtains the candidate subtasks determined by data node 100A.

[0106] Step 205: After receiving the confirmation request from data node 100A for a candidate subtask of data node 100B, data node 100B confirms from the candidate subtasks which subtasks it is allowed to acquire and which are not allowed to acquire.

[0107] Step 206: Data node 100B provides data node 100A with a confirmation result of the confirmation request. This confirmation result is used to indicate which subtasks data node 100B is allowed to acquire.

[0108] For example, the confirmation result includes the subtasks that data node 100B has confirmed are allowed to be acquired. Another example is that the confirmation result includes the identifier of the subtask of data node 100B. This identifier may be set by data node 100A for a candidate subtask of data node 100B, and data node 100A may provide the identifier of the candidate subtask when executing step 204. In this way, when providing the subtasks that data node 100B is allowed to acquire, data node 100B only needs to provide the identifier of the subtask.

[0109] The confirmation process between data node 100B and data node 100A for candidate data subtasks is similar to the transaction process between blockchain nodes in a blockchain network. The final confirmation result can be known by each data node 100 and the security aggregation node 200 in the blockchain network. In other words, through the above steps, each data node 100 and the security aggregation node 200 in the blockchain network know the subtasks that data node 100B is allowed to obtain.

[0110] After steps 203-206, data node 100 can learn the subtasks that other data nodes 100 in the blockchain network are allowed to obtain. This allows data node 100 to provide subtasks to other data nodes 100 in the blockchain network when processing user-triggered data access requests, based on the previously determined subtasks allowed by other data nodes 100. The following explanation, using data node 100A as an example, illustrates how data node 100 in the blockchain network processes user-triggered data access requests.

[0111] Step 207: Data node 100A receives a data access request triggered by a user. This data access request is used to request access to data, and it may also carry user information, such as user identifier or user access level.

[0112] When data node 100A is deployed on the user side, the user can interact directly with data node 100A. For example, if the user directly operates data node 100A, it will trigger the generation of this data access request. The data requested in this data access request can include data from some or all of the data nodes 100 in the blockchain network. In other words, the data requested in this data access request can include data from other data nodes 100 besides data node 100A.

[0113] When data node 100A is not deployed on the user side, users can interact with data node 100A through a client deployed directly on the user side. For example, a user can initiate a data access request to data node 100A through the client.

[0114] Here, we take the data nodes 100 in the blockchain network as examples, namely the servers of banks (such as the server of branch A, the server of branch B), the server of the tax bureau, and the server of the water and electricity bureau.

[0115] In this blockchain network, tax bureau staff can request data from banks, tax bureaus, and water and electricity bureaus through the tax bureau's server to check for identical users or identify which identical users exist. In other words, tax bureau staff can trigger a data access request to access the identifiers (such as ID cards, mobile phone numbers, or other uniquely identifiable user information) of identical users in the data from the banks, tax bureaus, and water and electricity bureaus.

[0116] Bank operations and maintenance personnel or managers can request relevant information (such as bank statements, tax information, and utility payment records) of the same user from the bank, tax bureau, and utility bureau through the bank's servers. In other words, bank operations and maintenance personnel or managers can trigger the generation of a data access request to request access to relevant information of the same user in the data of the bank, tax bureau, and utility bureau.

[0117] Staff at the water and electricity bureau can request information about one or more users (such as bank statements, tax information, and water and electricity payment records) from the bank, tax bureau, and water and electricity bureau's servers through the bureau's server. In other words, staff at the water and electricity bureau can trigger a data access request to access information about one or more users from the bank, tax bureau, and water and electricity bureau. This data access request can carry information about the one or more users, such as user identifiers.

[0118] Step 208: Data node 100A parses the data access request and decomposes it into multiple sub-tasks.

[0119] Since the data access request may request data from other data nodes 100 besides data node 100A, data node 100A can decompose the data access request into multiple subtasks. Any subtask is used to access data in one data node 100.

[0120] When decomposing the data access request, data node 100A can also refer to the subtasks that each data node 100 in the blockchain network is allowed to access. If the data requested by the data access request includes data that is prohibited from access as recorded in the data access policy, data node 100A may not generate a corresponding subtask for that part of the data.

[0121] For example, if data node 100B is a server in a bank, it records the user's account opening information, transaction history, and account balance. Data node 100B's data access policy specifies that access to the user's account opening information and transaction history is allowed, while access to the user's account balance is prohibited. After steps 203-206, data node 100A can determine that data node 100B is allowed to access the user's account opening information or transaction history, but not allowed to access the user's account balance.

[0122] If the data access request is for information about the same user in the data of data node 100A and data node 100B, data node 100A can decompose the data access request into three subtasks: Subtask 1, Subtask 2, and Subtask 3. Subtask 1 involves finding the intersection of the data in data node 100A and data node 100B to obtain the identifier of the same user; Subtask 2 involves obtaining the information about the same user in the data of data node 100A; and Subtask 3 involves obtaining the information about the same user in the data of data node 100B, excluding the user's account balance.

[0123] Step 209: Data node 100A provides the multiple subtasks to each data node 100 in the blockchain network. The subtask obtained by any data node 100 is used to access the data of that data node 100.

[0124] Taking the data access request as an example of being broken down into subtask 1, subtask 2, and subtask 3, data node 100A can retain subtask 1 for itself and provide it to data node 100B, retain subtask 2 for itself, and provide subtask 3 to data node 100B.

[0125] Step 210: For any data node 100 that has obtained a subtask, the data node 100 can execute the subtask and generate the execution result of the subtask.

[0126] This explanation uses subtasks 1, 2, and 3 as examples. Subtask 1 can be executed by data nodes 100A and 100B, which can interact to retrieve the same user from the data of data node 100A and data node 100B. The result of subtask 1 is the identifier of that same user. Subtask 2 can be executed by data node 100A to retrieve the relevant information of the same user from the data of data node 100A. The result of subtask 2 is the relevant information of the same user from the data of data node 100A. Subtask 3 can be executed by data node 100B to retrieve the relevant information of the same user from the data of data node 100B, excluding the user's account balance. The result of subtask 3 is the relevant information of the same user from the data of data node 100B, excluding the user's account balance.

[0127] For instructions on how to execute subtask 1, please refer to [link / reference]. Figure 3 The execution method shown below can be found in detail. Figure 3 The embodiments shown are not described in detail here.

[0128] Step 211: For any data node 100 that has acquired a subtask, the data node 100 provides the execution result of the subtask to the security aggregation node 200. If the data information of the security aggregation node 200 includes a data encryption strategy, the data node 100 may provide the processed execution result of the subtask to the security aggregation node 200 according to the data encryption strategy before providing the execution result of the subtask to the security aggregation node 200. For example, the data node 100 may encrypt the execution result of the subtask and provide the encrypted execution result of the subtask to the security aggregation node 200.

[0129] Step 212: After obtaining the execution results of the multiple subtasks, the security aggregation node 200 can obtain the execution result of the data access request based on the execution results of the multiple subtasks.

[0130] If the data information of data nodes 100A and 100B includes a data noise policy, the security aggregation node 200 adds noise to the execution results of the subtasks provided by data node 100A according to the data noise policy of data node 100A. Similarly, the security aggregation node 200 adds noise to the execution results of the subtasks provided by data node 100B according to the data noise policy of data node 100B.

[0131] The security aggregation node 200 can summarize the execution results of subtasks with added noise and generate the execution results of data access requests.

[0132] Step 213: Since data node 100A has received the data access request, security aggregation node 200 can provide the execution result of the data access request to data node 100A. Data node 100A then feeds back the execution result of the data access task to the user.

[0133] like Figure 3 As shown in the illustration, a data processing method is provided in the application embodiment. This method can be applied to a blockchain network where a data node 100, when processing a user-triggered data access request, needs to obtain the same data from some or all of the data nodes 100, for example, by executing... Figure 2 Subtask 1 mentioned in the illustrated embodiment. In Figure 3 Taking subtask 1 as an example, for other scenarios that require obtaining the same data from some or all data nodes 100 (such as when data node 100 obtains a data access request to request access to the same data from some or all data nodes), the same approach can also be used. Figure 3 It is handled in a similar manner.

[0134] Step 301: Data node 100A encrypts the first part of the data identifier field in the data node 100A based on the first encryption algorithm, generating encrypted data of the first part of the data identifier field in the data node 100A. For ease of explanation, the encrypted data of the first part of the data identifier field in the data node 100A is simply referred to as the encrypted data of the first part of the data node 100A.

[0135] Step 302: Data node 100A provides data node 100B with encrypted data of the first part of the field of data node 100A.

[0136] Since the encrypted data of the first part of the field provided by data node 100A needs to be processed by data node 100B in the blockchain network, other data nodes 100 in the blockchain network may not process the encrypted data of the first part of the field of data node 100A. When data node 100A provides the encrypted data of the first part of the field of data node 100A to data node 100B, the encrypted data of the first part of the field of data node 100A provided may be processed according to the data encryption strategy of data node 100B. For example, the encrypted data of the first part of the field of data node 100A provided may be encrypted using the public key of data node 100B.

[0137] Step 303: Data node 100B can obtain the encrypted data of the first part of the field of data node 100A. Based on the first encryption algorithm, data node 100B encrypts the first part of the data identifier field in data node 100B to generate the encrypted data of the first part of the field of data node 100B.

[0138] Step 304: Data node 100B determines the encrypted data that is the same as the encrypted data of the first part field of the data identifier in data node 100A and data node 100B based on the encrypted data of the first part field of data node 100A and the encrypted data of the first part field of data node 100A.

[0139] For any two data identifiers, if the encrypted data of the first part of the identifiers is the same, it means that the first part of the identifiers is the same, that is, there is a possibility that the two data identifiers are the same. If the encrypted data of the first part of the identifiers is different, it means that the first part of the identifiers is different, that is, the two data identifiers must be different.

[0140] For ease of explanation, the encrypted data that is identical to the first part of the encrypted data of the data identifier in data node 100A and data node 100B is referred to as the first field encrypted data.

[0141] Step 305: Data node 100B provides the first field encrypted data to data node 100A.

[0142] Since the encrypted data in the first field provided by data node 100B requires knowledge from data node 100A in the blockchain network, other data nodes 100 in the blockchain network may not process the encrypted data in the first field. When data node 100B provides the encrypted data in the first field to data node 100A, the provided encrypted data in the first field may be processed according to the data encryption strategy of data node 100A. For example, the provided encrypted data in the first field may be encrypted using the public key of data node 100A.

[0143] Data node 100B can inform the nodes in the blockchain network that data node 100A and data node 100B have the same data identifier in the first part of the field by providing encrypted data in the first field.

[0144] Step 306: Data node 100A can obtain the first field encrypted data provided by data node 100B from the blockchain network. Based on the first field encrypted data, data node 100A can determine a data identifier that is identical to the first part of the field of the data identifier of data node 100B. For ease of explanation, the data identifier that is identical to the first part of the field of the data identifier of data node 100B is referred to as the first data identifier. There can be one or more first data identifiers, and the number of first data identifiers is related to the number of data identifiers with identical first part fields in data node 100A and data node 100B.

[0145] Step 307: Data node 100A encrypts the second part of the first data identifier field in data node 100A based on the second encryption algorithm, generating encrypted data of the second part of the first data identifier field in data node 100A. The second encryption algorithm can be the same as or different from the first encryption algorithm. The second part of the field can be part or all of the remaining fields in the first data identifier excluding the first part of the field. For ease of explanation, the encrypted data of the second part of the first data identifier field in data node 100A is referred to as the encrypted data of the second part of the field in data node 100A. It should be understood that the encrypted data of the second part of the field in data node 100A is not necessarily the encrypted data of the second part of all data in data node 100A, but only the encrypted data of the second part of the first data identifier field in data node 100A.

[0146] Step 308: Data node 100A provides encrypted data of the second part of the field in data node 100A to security aggregation node 200. If the data information of security aggregation node 200 includes a data encryption policy, before providing the encrypted data of the second part of the field in data node 100A to security aggregation node 200, data node 100A may first process the encrypted data of the second part of the field in data node 100A according to the data encryption policy, and then provide the processed encrypted data of the second part of the field in data node 100A to security aggregation node 200.

[0147] Step 309: Data node 100B encrypts the second part of the first data identifier field in data node 100B based on the second encryption algorithm, generating encrypted data of the second part of the first data identifier field in data node 100B. The second encryption algorithm can be the same as or different from the first encryption algorithm. The second part of the field can be part or all of the remaining fields in the first data identifier other than the first part of the field. For ease of explanation, the encrypted data of the second part of the first data identifier field in data node 100B is referred to as the encrypted data of the second part of the field in data node 100B. It should be understood that the encrypted data of the second part of the field in data node 100B is not necessarily the encrypted data of the second part of all data in data node 100B, but only the encrypted data of the second part of the first data identifier field in data node 100B.

[0148] Step 310: Data node 100B provides encrypted data of the second part of the field in data node 100B to security aggregation node 200. If the data information of security aggregation node 200 includes a data encryption policy, before providing the encrypted data of the second part of the field in data node 100B to security aggregation node 200, data node 100B may first process the encrypted data of the second part of the field in data node 100B according to the data encryption policy, and then provide the processed encrypted data of the second part of the field in data node 100B to security aggregation node 200.

[0149] Step 311: After obtaining the encrypted data of the second part field in data node 100A and the encrypted data of the second part field in data node 100B, the security aggregation node 200 determines the encrypted data of the same second part field based on the encrypted data of the second part field in data node 100A and the encrypted data of the second part field in data node 100B.

[0150] For ease of explanation, the encrypted data that is identical to the second part of the data identifier field in data node 100A and data node 100B is referred to as the second field encrypted data.

[0151] Step 312: The secure aggregation node 200 provides the encrypted data of the second field to data nodes 100A and 100B respectively.

[0152] Since the encrypted data of the second field provided by the secure aggregation node 200 requires knowledge from data nodes 100A and 100B in the blockchain network, other data nodes 100 in the blockchain network may not process the encrypted data of the second field. When the secure aggregation node 200 provides the encrypted data of the second field to data node 100A, the encrypted data of the first field provided may be processed according to the data encryption policy of data node 100A. For example, the encrypted data of the first field provided may be encrypted using the public key of data node 100A. When the secure aggregation node 200 provides the encrypted data of the second field to data node 100B, the encrypted data of the first field provided may be processed according to the data encryption policy of data node 100B. For example, the encrypted data of the first field provided may be encrypted using the public key of data node 100B.

[0153] If the data encryption strategy of data nodes 100A and 100B records a common public key shared by data nodes 100A and 100B, the secure aggregation node 200 can also use this public key to encrypt the second field encrypted data. After that, the encrypted second field encrypted data is provided to the blockchain network. In this way, both data nodes 100A and 100B can decrypt the encrypted second field encrypted data and obtain the second field encrypted data.

[0154] Step 313: After obtaining the encrypted data of the second field, data node 100A can determine a data identifier that is identical to both the first and second part fields of the data identifier of data node 100B based on the encrypted data of the second part field. For ease of explanation, the data identifier determined by data node 100A that is identical to both the first and second part fields of the data identifier of data node 100B is referred to as the second data identifier.

[0155] Step 314: After obtaining the encrypted data of the second field, data node 100B can determine a data identifier that is identical to both the first and second part fields of the data identifier of data node 100A based on the encrypted data of the second part. For ease of explanation, the data identifier determined by data node 100B that is identical to both the first and second part fields of the data identifier of data node 100A is referred to as the third data identifier.

[0156] When the data identifiers of data nodes 100A and 100B only include the first and second part fields, after data node 100A determines the second data identifier and data node 100B determines the third data identifier, the data identifiers that data nodes 100A and 100B have the same identifier can be determined. This same data identifier is either the second or the third data identifier (the third data identifier and the second data identifier are essentially the same). After steps 312 and 313, it can be considered that the data in data nodes 100A and 100B that are the same has been determined, meaning subtask 1 is complete. When the data identifiers of data nodes 100A and 100B include other parts besides the first and second part fields, there may be cases where the second data identifier determined by data node 100A and the third data identifier determined by data node 100B are different. Therefore, data nodes 100A and 100B can continue to execute subsequent steps to further determine whether the second and third data identifiers are the same.

[0157] Step 315: Data node 100A processes the second data identifier based on the hash algorithm to generate B1, where B1=RH(Y), Y represents the second data identifier, H represents the hash algorithm, R represents the first random number used when performing the hash algorithm, and R is a number randomly determined by data node 100A.

[0158] Step 316: Data node 100A provides B1 to data node 100B.

[0159] Step 317: Data node 100B obtains B1. Data node 100B calculates the third data identifier to generate A. Where A = KH(Y`), Y` represents the third data identifier, H represents the hash algorithm, and K represents the second random number used in the hash algorithm. K is a number randomly determined by data node 100B. Data node 100B processes B1 using the second random number to generate B2. Where B2 = KB1 = KRH(Y).

[0160] Step 318: Data node 100B provides A and B2 in data node 100A.

[0161] Step 319: After obtaining A and B2, data node 100A can obtain K based on B2 and B1, and obtain H(Y`) based on K and A. Data node 100A can determine whether H(Y`) and H(Y) are the same. If they are the same, proceed to step 320; if they are different, proceed to step 321.

[0162] Step 320: If H(Y`) and H(Y) are the same, it means that the second data identifier and the third data identifier are the same, and the third data identifier is the same as that of data node 100A and data node 100B. Subtask 1 is completed.

[0163] Step 321: If H(Y`) and H(Y) are different, it means that the second data identifier and the third data identifier are different. Data node 100A can further find the intersection of H(Y`) and H(Y) to obtain the intersection data of H(Y`) and H(Y). Data node 100A can determine the same data identifier as data node 100B based on the intersection data.

[0164] Steps 313-322 are illustrated using a hash algorithm as an example; however, other algorithms may be used in practice. If data node 100 includes a first data part field, a second data part field, and a third data part field, steps 301-306 can be considered as the confirmation process for data identifiers with identical first data part fields. Steps 307-314 can be considered as the confirmation process for data identifiers with identical second data part fields. Steps 315-322 can be considered as the confirmation process for data identifiers with identical third data part fields. Throughout the process, different fields can use different confirmation methods. Data nodes 100A and 100B cannot obtain each other's complete data identifiers, effectively ensuring the security of the data identifiers.

[0165] This application also provides, for example Figure 4 The computing device 400 shown includes a bus 401, a processor 402, a communication interface 403, and a memory 404. The processor 402, the memory 404, and the communication interface 403 communicate with each other via the bus 401.

[0166] The processor 402 can be a central processing unit (CPU). The memory 404 can include volatile memory, such as random access memory (RAM). The memory 404 can also include non-volatile memory, such as read-only memory (ROM), flash memory, HDD, or SSD. The memory stores executable code, and the processor 402 executes the aforementioned code. Figure 2Alternatively, the method described in 3 may be used. The memory 404 may also include other software modules required for running processes, such as an operating system (e.g., multiple modules in data node 100 or multiple modules in security aggregation node 200). The operating system may be LINUX™, UNIX™, WINDOWS™, etc.

[0167] This application also provides a computing device system, the computing device system including at least one such as Figure 5 The computing device 500 shown includes a bus 501, a processor 502, a communication interface 503, and a memory 504. The processor 502, memory 504, and communication interface 503 communicate with each other via the bus 501. At least one computing device 500 in the computing device system communicates with each other via a communication path.

[0168] The processor 502 may be a CPU. The memory 504 may include volatile memory, such as random access memory (RAM). The memory 504 may also include non-volatile memory, such as read-only memory (ROM), flash memory, HDD, or SSD. The memory 504 stores executable code, which the processor 502 executes to perform the aforementioned actions. Figure 2 Or any part or all of the methods described in 3. The memory may also include other software modules required for running processes, such as the operating system. The operating system can be LINUX™, UNIX™, WINDOWS™, etc.

[0169] At least one computing device 500 in the computing device system establishes communication with each other through a communication network. Each computing device 500 runs any one or any multiple modules of data nodes 100, or any one or any multiple modules of security aggregation nodes 200.

[0170] The descriptions of the processes corresponding to the above-mentioned figures each have their own emphasis. For parts of a process that are not described in detail, please refer to the relevant descriptions of other processes.

[0171] In the above embodiments, implementation can be achieved, in whole or in part, through software, hardware, firmware, or any combination thereof. When implemented using software, it can be implemented, in whole or in part, in the form of a computer program product. A computer program product includes computer program instructions, which, when loaded and executed on a computer, generate, in whole or in part, the product according to the embodiments of the present invention. Figure 3 The process or function described.

[0172] The computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions may be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another. For example, the computer instructions may be transmitted from one website, computer, server, or data center to another via wired (e.g., coaxial cable, fiber optic, digital subscriber line) or wireless (e.g., infrared, wireless, microwave, etc.) means. The computer-readable storage medium may be any available medium that a computer can access or a data storage device such as a server or data center that integrates one or more available media. The available medium may be a magnetic medium (e.g., floppy disk, hard disk, magnetic tape), an optical medium (e.g., DVD), or a semiconductor medium (e.g., SSD).

[0173] Obviously, those skilled in the art can make various modifications and variations to this application without departing from the scope of this application. Therefore, if such modifications and variations fall within the scope of the claims of this application and their equivalents, this application also intends to include such modifications and variations.

Claims

1. A data processing system, characterized in that, The system includes a secure aggregation node and multiple data nodes, and the secure aggregation node and the multiple data nodes belong to the same blockchain network. The first data node among the plurality of data nodes is configured to: split a user-triggered data access request into a plurality of subtasks, including a first subtask and a second subtask, based on the plurality of data information of the plurality of data nodes, and provide the second subtask to the second data node among the plurality of data nodes, wherein the data information of the data node is used to describe the strategy followed in interacting with the data node; The first data node is further configured to: execute the first subtask to obtain the execution result of the first subtask, and provide the execution result of the first subtask to the security aggregation node based on the data information of the security aggregation node, wherein the data information of the security aggregation node is used to describe the strategy followed in interacting with the security aggregation node; The second data node is configured to: acquire the second subtask provided by the first data node, execute the second subtask to obtain the execution result of the second subtask, and provide the execution result of the second subtask to the security aggregation node based on the data information of the security aggregation node; The security aggregation node is configured to: obtain the execution result of the data access request based on the execution results obtained by the multiple data nodes executing the multiple sub-tasks, and provide the execution result of the data access request to the first data node; The first data node is also used to: provide feedback to the user on the execution result of the data access request.

2. The system as described in claim 1, characterized in that, The secure aggregation node is also used for: The execution results of the multiple subtasks are processed based on the multiple data information of the multiple data nodes, so as to summarize the execution results of the multiple subtasks after processing to obtain the execution result of the data access request.

3. The system as described in claim 1 or 2, characterized in that, The data information of the data node includes one or more of the following: data access strategy, data encryption strategy, or data noise strategy; The data access policy describes data access permissions, the data encryption policy describes the encryption policy used for the subtask or the execution result of the subtask, and the data noise policy describes the way noise is added to the execution result of the subtask.

4. The system according to any one of claims 1 to 2, characterized in that, The first data node is also used to acquire multiple data information from the plurality of data nodes and the data information from the security aggregation node; The secure aggregation node is also used to acquire multiple data information from the multiple data nodes and the data information from the secure aggregation node.

5. The system according to any one of claims 1 to 2, characterized in that, The first data node is further configured to: provide a confirmation request for the second subtask to the second data node based on the data information of the second data node, and obtain the confirmation result of the second data node on the confirmation request, wherein the confirmation result is used to indicate that the second subtask is allowed to be obtained.

6. A data processing method, characterized in that, The method is applied to a blockchain network, which includes a secure aggregation node and multiple data nodes, and the method includes: The first data node among the plurality of data nodes breaks down the user-triggered data access request into multiple subtasks, including a first subtask and a second subtask, based on multiple data information from the plurality of data nodes, and provides the second subtask to the second data node among the plurality of data nodes. The data information of the data nodes is used to describe the strategy followed in interacting with the data nodes. The first data node executes the first subtask to obtain the execution result of the first subtask, and provides the execution result of the first subtask to the security aggregation node based on the data information of the security aggregation node. The data information of the security aggregation node is used to describe the strategy followed when interacting with the security aggregation node. The second data node obtains the second subtask provided by the first data node, executes the second subtask to obtain the execution result of the second subtask, and provides the execution result of the second subtask to the security aggregation node based on the data information of the security aggregation node; The security aggregation node obtains the execution result of the data access request based on the execution results of the multiple sub-tasks executed by the multiple data nodes, and provides the execution result of the data access request to the first data node; The first data node provides feedback to the user regarding the execution result of the data access request.

7. The method as described in claim 6, characterized in that, The security aggregation node obtains the execution result of the data access request based on the execution results of the multiple subtasks executed by the multiple data nodes, including: The security aggregation node processes the execution results of the multiple subtasks based on multiple data information from the multiple data nodes, so as to summarize the execution results of the multiple subtasks after processing to obtain the execution result of the data access request.

8. The method as described in claim 6 or 7, characterized in that, The data information of the data node includes one or more of the following: data access strategy, data encryption strategy, or data noise strategy; The data access policy describes data access permissions, the data encryption policy describes the encryption policy used for the subtask or the execution result of the subtask, and the data noise policy describes the way noise is added to the execution result of the subtask.

9. The method as described in claim 6, characterized in that, The method further includes: The first data node acquires multiple data information from the multiple data nodes and the data information from the security aggregation node; The secure aggregation node acquires multiple data information from the multiple data nodes and the data information of the secure aggregation node itself.

10. The method as described in claim 6 or 9, characterized in that, The method further includes: The first data node provides a confirmation request for the second subtask to the second data node based on the data information of the second data node, and obtains the confirmation result of the second data node on the confirmation request. The confirmation result is used to indicate that the acquisition of the second subtask is permitted.

11. A data node, characterized in that, The data node is located in a blockchain network, which also includes a secure aggregation node; the data node includes: The task decomposition and execution module is used to: split user-triggered data access requests into multiple subtasks, including a first subtask and a second subtask, based on multiple data information from multiple data nodes; The first blockchain module is used to: provide the second subtask to another data node in the blockchain network, wherein the data information of the data node is used to describe the strategy followed in interacting with the data node; The task decomposition and execution module is further configured to: execute the first subtask to obtain the execution result of the first subtask; The first blockchain module is further configured to: provide the execution result of the first subtask to the secure aggregation node based on the data information of the secure aggregation node, wherein the data information of the secure aggregation node is used to describe the strategy followed in interacting with the secure aggregation node; obtain the execution result of the data access request from the secure aggregation node; and provide feedback on the execution result of the data access request to the user.

12. The node as described in claim 11, characterized in that, The data information of the data node includes one or more of the following: data access strategy, data encryption strategy, or data noise strategy; The data access policy describes data access permissions, the data encryption policy describes the encryption policy used for the subtask or the execution result of the subtask, and the data noise policy describes the way noise is added to the execution result of the subtask.

13. The node as described in any one of claims 11 to 12, characterized in that, The first blockchain module is also used for: Obtain multiple data information from the multiple data nodes and the data information from the security aggregation node; Provide the data information of the data nodes to other data nodes among the plurality of data nodes and to the security aggregation node.

14. The node as described in any one of claims 11 to 12, characterized in that, The first blockchain module is also used for: Based on the data information of the second data node, a confirmation request for the second subtask is provided to the second data node, and the confirmation result of the second data node on the confirmation request is obtained. The confirmation result is used to indicate that the acquisition of the second subtask is permitted.

15. A computing device, characterized in that, The computing device includes a processor and memory; The memory is used to store computer program instructions; The processor invokes computer program instructions in the memory to execute the method as described in any one of claims 6 to 10.

16. A non-transient computer-readable storage medium, characterized in that, The non-transient computer-readable storage medium contains computer program instructions that, when executed by a computing device, perform the method according to any one of claims 6 to 10.