Data processing method and device, equipment, storage medium and product

By dividing the data into fragments and performing operations across multiple computing nodes, and utilizing the Shamir secret sharing algorithm and finite-domain arithmetic circuits, the data privacy issue in calculating global data statistics is resolved, achieving a balance between computational accuracy and privacy.

CN122346375APending Publication Date: 2026-07-07ETHERCORE TECHNOLOGY (SHENZHEN) CO LTD

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
ETHERCORE TECHNOLOGY (SHENZHEN) CO LTD
Filing Date
2026-03-02
Publication Date
2026-07-07

AI Technical Summary

Technical Problem

In scenarios such as federated learning, distributed indicator aggregation, and financial risk control, existing technologies struggle to balance computational accuracy and data privacy when calculating global data statistics while protecting the data privacy of each participant.

Method used

By dividing the raw data into multiple data fragments and performing operations on them by multiple computing nodes, a result fragment is generated. Each computing node can restore the result of the target task without leaking data. The Shamir secret sharing algorithm and arithmetic circuits in a finite field are used for computation to ensure data privacy.

Benefits of technology

This enables multiple computing nodes to jointly complete computing tasks without leaking their original data, balancing computational accuracy and data privacy, and reducing the risk of data leakage.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122346375A_ABST
    Figure CN122346375A_ABST
Patent Text Reader

Abstract

The application provides a data processing method and device, computer equipment, computer readable storage medium, computer program product, and belongs to the technical field of computers. The data processing method is used for a computing node in a secure multi-party computing system, and the method comprises: obtaining target parameters and an arithmetic circuit corresponding to a target task, and data shards provided by a plurality of clients for the target task; generating an operation result shard based on the target parameters, the arithmetic circuit and the data shards, and sending the operation result shard to other computing nodes in the secure multi-party computing system; obtaining operation result shards generated by the other computing nodes, and generating a target operation result corresponding to the target task based on the locally generated operation result shard and the operation result shards generated by the other computing nodes. The technical scheme of the embodiment of the application jointly completes a computing task through a plurality of computing nodes, and takes into account computing accuracy and data privacy.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of computer technology, and in particular to a data processing method, apparatus, computer equipment, computer-readable storage medium, and computer program product. Background Technology

[0002] In scenarios such as federated learning, distributed indicator aggregation, financial risk control, and contribution measurement, each participant holds data. The aggregated data generated through cooperation (such as calculating global data statistics) has enormous value, but the risks and obstacles to sharing raw or intermediate data are also enormous.

[0003] However, the relevant technologies still struggle to balance the accuracy of statistical calculations with data privacy. Therefore, how to protect the data privacy of all participants while calculating accurate statistics has become an urgent problem to be solved.

[0004] It should be noted that the above content is not necessarily prior art, nor is it intended to limit the scope of patent protection of this application. Summary of the Invention

[0005] This application provides a data processing method, apparatus, computer device, computer-readable storage medium, and computer program product. Each participating party (client) divides the raw data for a target task (computation task) into multiple data fragments and distributes them to multiple computing nodes in a secure multi-party computation system. Each computing node performs calculations based on the received data fragments, obtains the calculation result fragments, and broadcasts them to other computing nodes. After receiving the broadcasts from other computing nodes, each computing node can recover the target calculation result corresponding to the target task. In this way, each participating party can complete the computation task collaboratively through multiple computing nodes without disclosing their own raw data, thereby achieving a balance between computational accuracy and data privacy.

[0006] In a first aspect, embodiments of this application provide a data processing method for computing nodes in a secure multi-party computation system, wherein the computing nodes include multiple nodes, and the method includes:

[0007] Obtain the target parameters and arithmetic circuits corresponding to the target task, as well as the data shards provided by multiple clients for the target task; wherein, each client is used to: divide the original data for the target task into multiple data shards and distribute them to the multiple computing nodes; Based on the target parameters, the arithmetic circuit, and the data fragments provided by the multiple clients for the target task, a computation result fragment is generated and sent to other computing nodes in the secure multi-party computation system; Obtain the operation result fragments generated by the other computing nodes, and generate the target operation result corresponding to the target task based on the locally generated operation result fragments and the operation result fragments generated by the other computing nodes.

[0008] Secondly, embodiments of this application provide a data processing method for a client, the method comprising: Generate a target task and send the target task to multiple other clients; The system acquires interactive information sent by other clients for the target task. If the number of other clients sending the interactive information exceeds a preset threshold, the other clients sending the interactive information are identified as task collaboration clients, and the target task is sent to multiple computing nodes in the secure multi-party computing system. Obtain the raw data for the target task and divide the raw data into multiple data shards; send the multiple data shards to the multiple computing nodes; The plurality of computing nodes are used to: determine the target computation result corresponding to the target task based on the data shards provided by the client and the task collaboration client for the target task.

[0009] Thirdly, embodiments of this application provide a data processing apparatus for use as computing nodes in a secure multi-party computation system, wherein the computing nodes include multiple nodes, and the apparatus includes: An acquisition module is used to acquire target parameters and arithmetic circuits corresponding to the target task, as well as data shards provided by multiple clients for the target task; wherein, each client is used to: divide the original data for the target task into multiple data shards and distribute them to the multiple computing nodes; The first generation module is used to generate computation result fragments based on the target parameters, the arithmetic circuit, and the data fragments provided by the multiple clients for the target task, and send the computation result fragments to other computing nodes in the secure multi-party computation system; The second generation module is used to obtain the operation result fragments generated by the other computing nodes, and generate the target operation result corresponding to the target task based on the locally generated operation result fragments and the operation result fragments generated by the other computing nodes.

[0010] Fourthly, embodiments of this application provide a data processing apparatus for a client, the apparatus comprising: A generation module is used to generate a target task and send the target task to multiple other clients; The first sending module is used to acquire interactive information sent by other clients for the target task. If the number of other clients sending the interactive information exceeds a preset threshold, the other clients sending the interactive information are identified as task collaboration clients, and the target task is sent to multiple computing nodes in the secure multi-party computing system. The second sending module is used to acquire raw data for the target task, divide the raw data into multiple data fragments, and send the multiple data fragments to the multiple computing nodes; The plurality of computing nodes are used to: determine the target computation result corresponding to the target task based on the data shards provided by the client and the task collaboration client for the target task.

[0011] Fifthly, embodiments of this application provide a computer device, including: At least one processor; and A memory that is communicatively connected to the at least one processor; Wherein: the memory stores instructions that can be executed by the at least one processor, the instructions being executed by the at least one processor to enable the at least one processor to perform the method as described above.

[0012] Sixthly, embodiments of this application provide a computer-readable storage medium storing computer instructions that, when executed by a processor, implement the method described above.

[0013] In a seventh aspect, embodiments of this application provide a computer program product, including a computer program that, when executed by a processor, implements the method described above.

[0014] In some embodiments of this application, each computing node acquires the target parameters and arithmetic circuits corresponding to the target task, as well as data fragments provided by multiple clients for the target task. These multiple clients include clients participating in the target task. Each client acquires the raw data for the target task, divides the raw data into multiple data fragments, and distributes them to multiple computing nodes. Each computing node generates a computation result fragment based on the target parameters, arithmetic circuits, and the data fragments provided by the multiple clients for the target task, and distributes it to other computing nodes. By acquiring the computation result fragments sent by other computing nodes and combining them with the locally generated computation result fragments, the target computation result corresponding to the target task can be recovered.

[0015] The embodiments of this application employing the above technical solution may include the following advantages: Each participating party (client) divides the original data used for the target task into multiple data fragments, which are then distributed to multiple computing nodes. In this way, each computing node cannot obtain the complete original data from any participating party, but only random, fragmented data, reducing the risk of leakage of local data for each participating party. Each computing node can generate its own computation result fragment based on the target parameters corresponding to the target task, the arithmetic circuit, and the data fragments provided by multiple participating parties, and then send its own computation result fragment to other computing nodes. After receiving the computation node fragments sent by other computing nodes, each computing node, combined with its own computation result fragment, can recover the target computation result corresponding to the target task, i.e., the final computation result, through a preset cryptographic protocol. Based on this, each participating party can complete the computation task jointly through multiple computing nodes without leaking their own original data, thereby achieving a balance between computational accuracy and data privacy. Attached Figure Description

[0016] The accompanying drawings exemplify embodiments and form part of the specification, serving together with the textual description to explain exemplary implementations of the embodiments. The illustrated embodiments are for illustrative purposes only and do not limit the scope of the claims. Throughout the drawings, the same reference numerals refer to similar but not necessarily identical elements.

[0017] Figure 1 This diagram schematically illustrates the operating environment of the data processing method according to Embodiment 1 of this application; Figure 2 A flowchart illustrating a data processing method according to Embodiment 1 of this application is shown schematically. Figure 3 The flowchart illustrating the initiation of a target task according to Embodiment 1 of this application is shown schematically. Figure 4 This schematically illustrates a flowchart of the data fragment distribution according to Embodiment 1 of this application; Figure 5 This illustration schematically shows a distribution diagram of data fragments according to Embodiment 1 of this application; Figure 6 A schematic diagram illustrating the operation flowchart of the arithmetic circuit according to Embodiment 1 of this application is shown. Figure 7 A flowchart illustrating a data processing method according to Embodiment 1 of this application is shown schematically. Figure 8 This schematically illustrates a flowchart of a coordinated computing node pushing target computation results according to Embodiment 1 of this application; Figure 9 A flowchart illustrating the data processing method according to Embodiment 2 of this application is shown schematically. Figure 10 A block diagram of a data processing apparatus according to Embodiment 3 of this application is shown schematically; Figure 11 A block diagram of a data processing apparatus according to Embodiment 4 of this application is schematically shown; and Figure 12 A schematic diagram of the hardware architecture of a computer device according to Embodiment 5 of this application is shown. Detailed Implementation

[0018] To make the objectives, technical solutions, and advantages of this application clearer, the following detailed description is provided in conjunction with the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are merely illustrative and not intended to limit the scope of this application. All other embodiments obtained by those skilled in the art based on the embodiments in this application without inventive effort are within the scope of protection of this application.

[0019] It should be noted that the descriptions involving "first," "second," etc., in the embodiments of this application are for descriptive purposes only and should not be construed as indicating or implying their relative importance or implicitly specifying the number of technical features indicated. Therefore, a feature defined with "first" or "second" may explicitly or implicitly include at least one of that feature. Furthermore, the technical solutions of the various embodiments can be combined with each other, but this must be based on the ability of those skilled in the art to implement them. If the combination of technical solutions is contradictory or impossible to implement, it should be considered that such a combination of technical solutions does not exist and is not within the scope of protection claimed in this application.

[0020] It should be noted that, in any stage of this application involving the collection, storage, use, transmission, and processing of data, each stage strictly adheres to the laws, regulations, industry standards, and regulatory requirements of the data source, usage location, and relevant countries and regions to ensure the legality and compliance of data activities. In the collection stage, the purpose, method, and scope of collection are clearly communicated to the data subject in a prominent manner. Collection is conducted only after obtaining the data subject's legal authorization, ensuring that the collection process follows the "minimum necessary" principle and does not exceed the scope of data collection. In the storage stage, storage periods are limited, and data is promptly deleted or anonymized / encrypted after the storage purpose is achieved. In the usage stage, a strict data security protection mechanism is implemented, using field-level desensitization technology and processing the original data according to preset desensitization rules. For different types of data, multiple desensitization strategies, such as data generalization, data anonymization, and data encryption, are employed to effectively mitigate the risk of sensitive information leakage and ensure that all data used is securely processed and desensitized, comprehensively protecting the rights and interests of data subjects and data security. In the transmission and processing stages, the confidentiality and security of data are ensured during transmission and processing.

[0021] In the description of this application, it should be understood that the numerical labels before the steps do not indicate the order of the steps, but are only used to facilitate the description of this application and to distinguish each step, and therefore should not be construed as a limitation of this application.

[0022] To facilitate understanding of the technical solutions provided in the embodiments of this application by those skilled in the art, the relevant technologies are described below: In scenarios such as federated learning, distributed indicator aggregation, financial risk control, and contribution measurement, each participant holds data. The aggregated data generated through cooperation (such as calculating global data statistics) has enormous value, but the risks and obstacles to sharing raw or intermediate data are also enormous.

[0023] However, the relevant technologies still struggle to balance the accuracy of statistical calculations with data privacy. Therefore, how to protect the data privacy of all participants while calculating accurate statistics has become an urgent problem to be solved.

[0024] Therefore, this application provides a data processing technical solution. This solution can be deployed in areas such as distributed data training and data aggregation on the Internet, better meeting data privacy protection needs. Furthermore, through Shamir secret sharing technology, it can reduce the risk of leakage of local data of each participating party by jointly calculating global data statistics across multiple parties. See below for details.

[0025] Finally, for ease of understanding, an exemplary operating environment is provided below.

[0026] like Figure 1 As shown, the runtime environment diagram includes: multiple clients (client1, client2, ..., clienti) and multiple computing nodes (computing node1, computing node2, ..., computing noden) in the secure multi-party computation system.

[0027] Multiple computing nodes can connect to multiple clients via a network, and clients can delegate statistical calculation tasks to multiple computing nodes, meaning that multiple computing nodes can provide statistical calculation services to clients.

[0028] Multiple computing nodes can be distributed in the same geographical location (such as a single data center or a single physical server) or in different geographical locations (e.g., multiple locations). These computing nodes can provide services via a network, which may include various network devices such as routers, switches, multiplexers, hubs, modems, bridges, repeaters, firewalls, proxy devices, and / or similar devices. The network may include physical links, such as coaxial cable links, twisted-pair cable links, fiber optic links, or combinations thereof, or wireless links, such as cellular links, satellite links, and Wi-Fi links.

[0029] A client can be configured to access services across multiple computing nodes. Clients can be moved to various locations and use different networks to access multiple computing nodes. Clients can include electronic devices with built-in or external display panels, such as mobile devices, tablets, laptops, workstations, virtual reality devices, gaming devices, digital streaming devices, vehicle terminals, smart TVs, set-top boxes, etc., and can also include virtualized computing instances. Virtualized computing instances can include virtual machines, such as simulations of computer systems, operating systems, servers, etc. The computing device can load the virtual machine based on a virtual image and / or other data defining specific software (e.g., operating system, dedicated applications, servers) used for the simulation. As the demand for different types of processing services changes, different virtual machines can be loaded and / or terminated on one or more computing devices. The client can include an interface. This interface can include a touchpad, touchscreen, mouse, keyboard, or other sensing elements. For example, the input element can be configured to receive instructions that enable the client to perform various operations, such as initiating computing tasks.

[0030] The technical solutions of this application are described below using computing nodes as the execution subject through multiple embodiments. It should be understood that these embodiments can be implemented in many different forms and should not be construed as being limited to the embodiments described herein.

[0031] Example 1 Figure 2 A flowchart illustrating a data processing method according to Embodiment 1 of this application is shown schematically.

[0032] like Figure 2 As shown, this data processing method can be used on the computing nodes of a secure multi-party computation system, and may specifically include steps S200~S204, wherein: Step S200: Obtain the target parameters and arithmetic circuits corresponding to the target task, as well as the data shards provided by multiple clients for the target task; wherein, each client is used to: divide the original data for the target task into multiple data shards and distribute them to the multiple computing nodes.

[0033] Step S202: Based on the target parameters, the arithmetic circuit, and the data fragments provided by the multiple clients for the target task, generate computation result fragments and send the computation result fragments to other computing nodes in the secure multi-party computation system.

[0034] Step S204: Obtain the operation result fragments generated by the other computing nodes, and generate the target operation result corresponding to the target task based on the locally generated operation result fragments and the operation result fragments generated by the other computing nodes.

[0035] The data processing method provided in this embodiment involves each participating party (client) dividing the raw data used for the target task into multiple data fragments and distributing them one by one to multiple computing nodes. In this way, each computing node cannot obtain the complete raw data from any participating party, but only random, fragmented data, reducing the risk of leakage of local data for each participating party. Each computing node can generate its own computation result fragment based on the target parameters corresponding to the target task, the arithmetic circuit, and the data fragments provided by multiple participating parties, and then send its computation result fragment to other computing nodes. After receiving the computation node fragments sent by other computing nodes, each computing node, combined with its own computation result fragment, can recover the target computation result corresponding to the target task, i.e., the final computation result, through a preset cryptographic protocol. Based on this, each participating party can complete the computation task collaboratively through multiple computing nodes without leaking their own raw data, thereby achieving a balance between computational accuracy and data privacy.

[0036] The following combination Figure 2 The steps in steps S200 to S204, as well as other optional steps, are described in detail.

[0037] Step S200 The system obtains the target parameters and arithmetic circuits corresponding to the target task, as well as data shards provided by multiple clients for the target task; wherein each client is used to: divide the original data for the target task into multiple data shards and distribute them to the multiple computing nodes.

[0038] The target task can be a computational task in scenarios such as federated learning, distributed indicator aggregation, financial risk control, and contribution measurement. It requires execution based on data held by each participating party. However, in practical applications, due to data privacy and security considerations, participating parties often cannot provide complete data. For example, multiple merchants on an e-commerce platform need to understand the "best-selling price range" (such as the 75th percentile price) of a specific product across the entire platform to formulate their own strategies without disclosing their actual selling prices and inventory. Or, multiple hospitals need to jointly learn a high-performance diagnostic model based on existing patient medical record data without sharing such data. Furthermore, in the financial sector, multiple financial institutions need to jointly calculate an industry-level "abnormal transaction threshold" or "customer cross-institutional debt ratio" under the premise of rigorously exchanging specific customer transaction records and balances.

[0039] A target task (such as a statistical calculation task) can be initiated by a participant (task initiator) through a target client. The target task may be accompanied by a task description, indicating the task objective (e.g., calculating the global data statistic "average of all participants"), data requirements (what data each participant needs to provide), data specifications (e.g., upload format, field types, label naming), and time requirements (the deadline for responding to the target task). The target client can send the target task to other predefined participants (other clients), inviting them to participate. Each invited client can confirm their participation based on the task description and reply to the target client, for example, by sending an interactive message confirming participation. After collecting enough "agreement to participate" interactive messages from other clients, the target client can send the target task to all computing nodes (also called MPC proxy nodes) of the Secure Multi-Party Computation (MPC) system to notify all computing nodes to start the target task. Figure 3 An example flowchart for initiating a target task is shown.

[0040] After receiving the target task, each computing node can obtain the target parameters and arithmetic circuits corresponding to the target task. In one possible implementation, the secure multi-party computation system can designate one computing node as the coordinating computing node. The coordinating computing node (also known as the chief MPC agent node) can be a pre-designated computing node, or it can take turns or dynamically switch roles based on time, resources, and load conditions of each computing node. By having the coordinating computing node generate the target parameters and arithmetic circuits based on the target task and then distribute them to other computing nodes, all computing nodes execute the exact same computational results, while reducing computational overhead and improving execution efficiency. The target parameters can be... This indicates that it can be used to define finite fields. Subsequent computational nodes operate within this finite field, enabling efficient and precise completion of complex mathematical calculations and providing a mathematical foundation for secret-sharing algorithms. Arithmetic circuits are mathematical models that describe computational logic using combinations of addition and multiplication gates, and they only support finite fields. ( This refers to integer operations within a finite field (e.g., prime numbers). It's understandable that any computable function / procedure or executable program on a computer can be broken down into combinations of addition and multiplication; therefore, the target task can be represented using an arithmetic circuit. For example, the target task (computational task) can be performed according to a mathematical formula. Based on the task description, the corresponding arithmetic circuit can be generated. The generation process can be as follows: First, define the target function and variables, converting all variables to integers within a finite field. Set the target function as... ,in As variables, The output is as follows. The objective function is broken down into atomic operations that compute addition / multiplication, i.e., complex computations are reduced to atomic steps containing only addition and multiplication. In this process, some nonlinear functions (such as ReLU) can be approximated using polynomials.

[0041] In an optional embodiment, step S200 may further include: when the computing node is a coordinating computing node, obtaining the target task issued by the target client, generating target parameters and an arithmetic circuit according to the task description associated with the target task, and sending the target parameters and the arithmetic circuit to other computing nodes. When the computing node is not a coordinating computing node, obtaining the target parameters and the arithmetic circuit from the coordinating computing node. This separates task parsing from task execution. In distributed computing (such as secure multi-party computation), it can reduce the computational complexity of other computing nodes, ensure computational consistency (each computing node performs computation on the same mathematical problem with "completely identical arithmetic circuits"), optimize resource allocation and reduce network burden, and simplify the troubleshooting process (if an error occurs during computation, it is only necessary to check whether the target parameters and arithmetic circuits in the coordinating computing node are correct).

[0042] In some embodiments, the target parameter can be generated through the following steps: generating a random positive integer of a specified bit length (e.g., 512); if the random positive integer is a prime number, determining it as the target parameter; if the random positive integer is not a prime number, regenerating a random positive integer of the specified bit length until the generated random positive integer is a prime number. In this embodiment, by generating a large prime number of the specified bit length as the target parameter, a finite field can be constructed, and subsequent operations will be performed within the finite field, thereby increasing the difficulty of cracking and improving the security of multi-party collaborative computation.

[0043] After receiving the target task, each computing node can also receive data fragments from multiple clients for that target task. These multiple clients refer to clients participating in the target task, such as the target client mentioned above, as well as other clients that have sent "confirm participation" confirmation messages to the target client. Each client can determine the raw data used for the target task based on its task description. Based on the number of computing nodes in a secure multi-party computation system, the Shamir secret-sharing algorithm is used to share the original data. Dividing into multiple data shards can be represented as follows: , … Distribute multiple data shards to multiple computing nodes in a one-to-one correspondence, such as... Send to compute node 1, Send to compute node 2, and so on. Figure 4 This illustration demonstrates the process by which each client fragments the original data and sends it to a secure multi-party computation system. The Shamir secret-sharing algorithm is used to divide a secret value (which in this application could be the original data of each participant) into multiple fragments (data fragments) and distribute them to multiple computation nodes. Subsequently, fragments exceeding a preset threshold number need to be combined to recover the original secret value. This assumes the data to be protected is a secret value. ,satisfy ( Less than Positive integers, i.e., those located within a finite field. This can be... Split into Each segment ,in, Only when these fragments are combined can the secret value be recovered. The sharding process is illustrated below: First, construct a random... polynomial of degree ,in, These coefficients are smaller than those of a finite field. Positive integers. For Calculate separately You can get fragments In this way, each computing node cannot obtain the complete original data from any participant, but only random, fragmented data. This reduces the risk of leakage of local data from each participant. Subsequent computing nodes can participate in joint computing while holding data shards, but they can never obtain the complete data, thus achieving privacy-preserving computing where "data is available but not visible".

[0044] Step S202 Based on the target parameters, the arithmetic circuit, and the data fragments provided by the multiple clients for the target task, a computation result fragment is generated, and the computation result fragment is sent to other computing nodes in the secure multi-party computation system.

[0045] Each computing node can determine a finite field based on the target parameters, and subsequent operations are performed within this finite field. An arithmetic circuit can be represented as an arithmetic expression containing only "+" and "×". Based on this arithmetic expression, the execution order of the operators can be determined, for example: The order of operator execution is +××++. An arithmetic circuit can include multiple gates, such as "b+c" or "4×e". Each gate specifies the operation type (determined based on the operator) and input data. The operation type can include addition, scalar multiplication, and multiplication, and the operation type is associated with operation precedence. The input data is the data that participates in the operation of that gate.

[0046] In one possible implementation, a computing node can convert the arithmetic circuit into an operation sequence (execution sequence) based on the operation priority associated with the operation types of multiple circuit gates. The operation sequence comprises multiple circuit gates arranged sequentially. Each circuit gate in the operation sequence is read sequentially, and an operation is performed within a finite domain based on the operation type specified by the circuit gate and the input data, resulting in a result slice corresponding to that circuit gate. The input data for each circuit gate can be a data slice or the result obtained from the operation performed on the circuit gate preceding it. For example, assuming there are 5 clients (participants), 3 computing nodes, and the original data of the 5 participants are represented as follows: The five participants can divide their raw data into three data shards and send them to three computing nodes respectively. The data shard distribution diagram is as follows: Figure 5 As shown. Among them, Used to indicate the first The first raw data is given to the first Data sharding of each computing node. The target task is computation. Among them, circuit gates include: , and Using circuit gates For example, the operation type of this circuit gate is addition, and the input data is... Each compute node holds only one shard of the input data; for example, compute node 1 only has one shard. , Compute node 2 only has , Each computing node can directly add up the data fragments it holds to obtain the circuit gate. Corresponding operation result slices The result slice corresponding to this circuit gate in computing node 1 is The result slice corresponding to this circuit gate in computing node 2 is .

[0047] In an optional embodiment, the step of performing operations within a finite domain based on the operation type specified by the circuit gate and the input data may include: such as Figure 6 As shown, a circuit gate to be executed is read sequentially, and the operation type of the circuit gate is determined as addition, scalar multiplication, or multiplication. If the operation type is addition or scalar multiplication, the input data is obtained, and the addition or scalar multiplication operation is performed within a finite field to obtain the operation result slice corresponding to the circuit gate. If the operation type is multiplication, the input data is obtained, and the multiplication operation is performed within a finite field to obtain the intermediate operation result corresponding to the circuit gate. Based on the intermediate operation result corresponding to the circuit gate, and the intermediate operation results corresponding to the circuit gate obtained from other computing nodes, the operation result slice corresponding to the circuit gate is generated. For example, the target task is to compute... For circuit gates The operation type is addition, and each computing node calculates it separately. , , As a circuit gate The computation results are fragmented. For circuit gates... Similar to addition, local data can be directly partitioned and multiplied using scalar multiplication, with each computing node performing the calculation separately. , , As a circuit gate The computation results are fragmented. For circuit gates... Each computing node can perform calculations independently. , , The intermediate operation results corresponding to the circuit gates can be represented as follows: , and The expansion of multiplication introduces cross terms, which cannot be calculated independently by a single computing node. Under the premise of prohibiting the direct exchange of data fragments, intermediate operation results can be exchanged with intermediate operation results obtained by other computing nodes. Based on this, the operation result fragments corresponding to the multiplication circuit gates are obtained, which improves the accuracy of calculation without leaking privacy.

[0048] In one possible implementation, a computing node can divide the intermediate operation result corresponding to a circuit gate into a preset number of intermediate operation result slices within a finite domain, where the preset number is the number of multiple operation results. One intermediate operation result slice (the preset number minus one) is sent one-to-one to other computing nodes, and each other computing node provides one intermediate operation result slice corresponding to the same circuit gate. The Lagrange coefficients corresponding to the remaining intermediate operation result slice and the intermediate operation slices provided by other computing nodes are determined, and based on each intermediate operation result slice and its corresponding Lagrange coefficient, the operation result slice corresponding to the circuit gate is generated.

[0049] For circuit gates Compute node 1 can... The value is divided into 3 secret shards (intermediate operation result shards) using the Shamir secret sharing algorithm. ,Bundle Send to compute node 2, and Send it to compute node 3. Compute node 2 can then... The value is divided into 3 secret shards (intermediate operation result shards) using the Shamir secret sharing algorithm. ,Bundle Send to compute node 1, and Send it to compute node 3. Compute node 3 can then... The value is divided into 3 secret shards (intermediate operation result shards) using the Shamir secret sharing algorithm. ,Bundle Send to compute node 1, and Send it to compute node 2. In this way, compute node 1 can obtain it. And solve for their respective Lagrange coefficients. The Lagrange coefficients are derived from the Lagrange difference formula, which serves as a bridge connecting discrete data points and continuous polynomials, and can be used as a core mathematical tool in Shamir's secret sharing algorithm. Given n+1 distinct points in a Cartesian plane... ,in Given n+1 distinct points, we can find a polynomial f(x) of degree no more than n that passes through all of these points. Specifically, two points define a straight line, three points define a parabola (quadratic function), four points define a cubic function, and so on. The Lagrange interpolation formula is a tool used to find the polynomial f(x) of degree n given n+1 distinct points. The interpolation formula can be expressed as follows:

[0050] in Defined as:

[0051] Based on the Lagrange interpolation formula, the Lagrange coefficients corresponding to each piece of intermediate calculation result can be calculated, for example:

[0052]

[0053]

[0054] Node 1 can be used to further derive the circuit gates. The result of the operation is divided into pieces. Similarly, compute node 2 and compute node 3 can obtain their respective computation result slices through similar calculations.

[0055] In this embodiment, by exchanging intermediate calculation result fragments, the multiplication result can be calculated in a coordinated manner without knowing the original data or directly exchanging data fragments.

[0056] Step S204 The system obtains the operation result fragments generated by other computing nodes, and generates the target operation result corresponding to the target task based on the locally generated operation result fragments and the operation result fragments generated by other computing nodes.

[0057] like Figure 7 As shown, after receiving the computational results from other computational nodes, each computing node can use the Shamir secret sharing algorithm to recover the target computation result corresponding to the target task. The process of recovering the target computation result is as follows: Given a computational result fragment... , … Then, using these n operation results as slices, the Lagrange interpolation polynomial can be calculated. , The target calculation result can be obtained.

[0058] In optional embodiments, such as Figure 8 As shown, when the computing node is the coordinating computing node, the target computation result can be broadcast to all participants (multiple clients). Each participant, upon receiving the target computation result, can reply with a confirmation message to the coordinating computing node. After receiving confirmation messages from all participants, the coordinating computing node can terminate the target task process.

[0059] The data processing method provided in this application involves each participating party (client) dividing the raw data used for the target task into multiple data fragments and distributing them one by one to multiple computing nodes. In this way, each computing node cannot obtain the complete raw data from any participating party, but only random, fragmented data, reducing the risk of leakage of local data for each participating party. Each computing node can generate its own computation result fragment based on the target parameters corresponding to the target task, the arithmetic circuit, and the data fragments provided by multiple participating parties, and then send its computation result fragment to other computing nodes. After receiving the computation node fragments sent by other computing nodes, each computing node, combined with its own computation result fragment, can recover the target computation result corresponding to the target task, i.e., the final computation result, through a preset cryptographic protocol. Based on this, each participating party can complete the computation task collaboratively through multiple computing nodes without leaking their own raw data, thereby achieving a balance between computational accuracy and data privacy.

[0060] The data processing method provided in this application can be deployed in fields such as distributed data training and data aggregation on the Internet, better meeting the needs of data privacy protection. It can also reduce the risk of leakage of local data of each participant by jointly calculating global data statistics through Shamir secret sharing technology.

[0061] Example 2 The data processing method provided in this application embodiment can be used on a client and may specifically include: generating a target task and sending the target task to multiple other clients; obtaining interactive information sent by other clients regarding the target task, and if the number of other clients sending the interactive information exceeds a preset threshold, identifying the other clients sending the interactive information as task collaboration clients and sending the target task to multiple computing nodes in a secure multi-party computation system; obtaining raw data for the target task and dividing the raw data into multiple data fragments; sending the multiple data fragments to the multiple computing nodes; wherein the multiple computing nodes are used to: determine the target computation result corresponding to the target task based on the data fragments provided by the client and the task collaboration client for the target task.

[0062] The target task can be generated by a participant through a client. The client can send the target task to multiple predefined other participants (other clients). Each other client can confirm its participation in the target task and reply to the client that initiated the target task, for example, by sending interactive information to indicate its confirmation of participation. After collecting enough interactive information from other clients indicating their "agreement to participate," the client can send the target task to all computing nodes of the secure multi-party computation system to notify all computing nodes to start the target task.

[0063] Each participating party (client) can also divide the raw data for the target task (computation task) into multiple data fragments and distribute them to multiple computing nodes in the secure multi-party computation system. Each computing node performs calculations based on the received data fragments, obtains the result fragments, and broadcasts them to other computing nodes. After receiving the broadcasts from other computing nodes, each computing node can recover the target computation result corresponding to the target task and send it to each participating party, such as... Figure 9 As shown. In this way, each participant can complete the computation task jointly through multiple computing nodes without disclosing their own original data, thereby achieving a balance between computational accuracy and data privacy.

[0064] Example 3 Figure 10 A block diagram of a data processing apparatus according to Embodiment 3 of this application is schematically shown. This apparatus can be used as a computing node in a secure multi-party computation system and can be divided into one or more program modules. One or more program modules are stored in a storage medium and executed by one or more processors to complete the embodiments of this application. The program module referred to in the embodiments of this application refers to a series of computer program instruction segments capable of performing a specific function. The following description will specifically introduce the functions of each program module in this embodiment. Figure 10 As shown, the device 1000 may include: an acquisition module 1100, a first generation module 1200, and a second generation module 1300, wherein: The acquisition module 1100 is used to acquire the target parameters and arithmetic circuits corresponding to the target task, as well as the data shards provided by multiple clients for the target task; wherein, each client is used to: divide the original data for the target task into multiple data shards and distribute them to the multiple computing nodes; The first generation module 1200 is used to generate a computation result fragment based on the target parameters, the arithmetic circuit and the data fragments provided by the multiple clients for the target task, and send the computation result fragment to other computing nodes in the secure multi-party computation system. The second generation module 1300 is used to obtain the operation result fragments generated by the other computing nodes, and generate the target operation result corresponding to the target task based on the locally generated operation result fragments and the operation result fragments generated by the other computing nodes.

[0065] As an optional embodiment, obtaining the target parameters and arithmetic circuit corresponding to the target task includes: When the computing node is a coordinating computing node, the target task issued by the target client is obtained; wherein, the coordinating computing node is a designated computing node among the plurality of computing nodes, and the target client is used to: generate the target task, and determine the plurality of clients based on the target task, the plurality of clients including clients that confirm participation in the target task; Based on the target task, target parameters and arithmetic circuits are generated, and the target parameters and arithmetic circuits corresponding to the target task are sent to the other computing nodes; If the computing node is not the coordinating computing node, the target parameters and arithmetic circuits corresponding to the target task are obtained from the coordinating computing node.

[0066] As an optional embodiment, the device 1100 is further configured to: When the computing node is the coordinating computing node, the target computation result is pushed to the multiple clients.

[0067] As an optional embodiment, the target parameter is generated through the following operation: Generate a random positive integer of a specified bit length; If the random positive integer is a prime number, the random positive integer is determined as the target parameter; If the random positive integer is not a prime number, a random positive integer of a specified bit length is regenerated until the generated random positive integer is a prime number.

[0068] As an optional embodiment, the arithmetic circuit includes multiple circuit gates, each of which is used to specify an operation type and input data, and the operation type is associated with an operation priority; The process of generating computation result fragments based on the target parameters, the arithmetic circuit, and the data fragments provided by the multiple clients for the target task includes: Determine the finite field based on the target parameters; The arithmetic circuit is converted into an operation sequence based on the operation priority associated with the operation type of each of the plurality of circuit gates. The operation sequence includes the plurality of circuit gates arranged in sequence. The circuit gates in the operation sequence are sequentially obtained, and the operation is performed in the finite field based on the operation type and input data specified by the circuit gate, until the operation is performed on the last circuit gate in the operation sequence, so as to obtain the operation result slices corresponding to each circuit gate; The input data for each circuit gate is obtained by performing operations on the data fragments and / or the circuit gates preceding the circuit gate.

[0069] As an optional embodiment, performing operations within the finite domain based on the operation type specified by the circuit gate and the input data includes: When the operation type is addition or scalar multiplication, the input data is obtained, and the addition or scalar multiplication operation is performed within the finite domain to obtain the operation result slice corresponding to the circuit gate; When the operation type is multiplication, the input data is obtained, and the multiplication operation is performed in the finite field to obtain the intermediate operation result corresponding to the circuit gate; based on the intermediate operation result corresponding to the circuit gate and the intermediate operation result corresponding to the circuit gate obtained by the other computing nodes, the operation result fragment corresponding to the circuit gate is generated.

[0070] As an optional embodiment, based on the intermediate computation results corresponding to the circuit gate and the intermediate computation results corresponding to the circuit gate obtained by the other computing nodes, a computation result fragment corresponding to the circuit gate is generated, including: Within the finite domain, the intermediate computation results corresponding to the circuit gate are divided into a preset number of intermediate computation result slices, the preset number being the same as the number of the plurality of computing nodes; The intermediate operation result fragments, which are one less than the preset number, are sent one by one to the other computing nodes, and an intermediate operation result fragment corresponding to the circuit gate provided by each of the other computing nodes is obtained. The Lagrange coefficients corresponding to the remaining intermediate operation result slices and the intermediate operation result slices provided by the other computing nodes are determined, and the operation result slices corresponding to the circuit gates are generated based on each intermediate operation result slice and its corresponding Lagrange coefficient.

[0071] Example 4 Figure 11 A block diagram of a data processing apparatus according to Embodiment 4 of this application is schematically shown. This apparatus can be used in a client and can be divided into one or more program modules. One or more program modules are stored in a storage medium and executed by one or more processors to complete the embodiments of this application. The program module referred to in the embodiments of this application refers to a series of computer program instruction segments capable of performing a specific function. The following description will specifically introduce the functions of each program module in this embodiment. Figure 11 As shown, the device 2000 may include: a generation module 2100, a first transmission module 2200, and a second transmission module 2300, wherein: The generation module 2100 is used to generate a target task and send the target task to multiple other clients; The first sending module 2200 is used to acquire interactive information sent by other clients for the target task. If the number of other clients sending the interactive information exceeds a preset threshold, the other clients sending the interactive information are identified as task collaboration clients, and the target task is sent to multiple computing nodes in the secure multi-party computing system. The second sending module 2300 is used to acquire raw data for the target task, divide the raw data into multiple data fragments, and send the multiple data fragments to the multiple computing nodes; The plurality of computing nodes are used to: determine the target computation result corresponding to the target task based on the data shards provided by the client and the task collaboration client for the target task.

[0072] Example 5 Figure 12 This illustration schematically depicts the hardware architecture of a computer device 10000 suitable for implementing a data processing method according to Embodiment 5 of this application. In some embodiments, the computer device 10000 may be a terminal device such as a smartphone, wearable device, tablet computer, personal computer, in-vehicle terminal, game console, virtual device, workbench, digital assistant, set-top box, or robot. In other embodiments, the computer device 10000 may be a rack server, blade server, tower server, or cabinet server (including standalone servers or server clusters composed of multiple servers), etc. Figure 12 As shown, the computer device 10000 includes, but is not limited to: a memory 10010, a processor 10020, and a network interface 10030 that can communicate and be linked with each other via a system bus. Wherein: The memory 10010 includes at least one type of computer-readable storage medium, including flash memory, hard disk, multimedia card, card-type memory (e.g., SD or DX memory), random access memory (RAM), static random access memory (SRAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), programmable read-only memory (PROM), magnetic memory, magnetic disk, optical disk, etc. In some embodiments, the memory 10010 may be an internal storage module of a computer device 10000, such as the hard disk or memory of the computer device 10000. In other embodiments, the memory 10010 may also be an external storage device of the computer device 10000, such as a plug-in hard disk, smart media card (SMC), secure digital (SD) card, flash card, etc., equipped on the computer device 10000. Of course, the memory 10010 may also include both the internal storage module and the external storage device of the computer device 10000. In this embodiment, the memory 10010 is typically used to store the operating system and various application software installed on the computer device 10000, such as program code for data processing methods. Furthermore, the memory 10010 can also be used to temporarily store various types of data that have already been output or will be output.

[0073] In some embodiments, processor 10020 may be a central processing unit (CPU), controller, microcontroller, microprocessor, or other chip. Processor 10020 is typically used to control the overall operation of computer device 10000, such as performing control and processing related to data interaction or communication with computer device 10000. In this embodiment, processor 10020 is used to run program code stored in memory 10010 or process data.

[0074] Network interface 10030 may include a wireless network interface or a wired network interface, which is typically used to establish a communication link between computer device 10000 and other computer devices. For example, network interface 10030 is used to connect computer device 10000 to an external terminal via a network, establishing a data transmission channel and communication link between computer device 10000 and the external terminal. The network may be an intranet, the Internet, Global System for Mobile Communication (GSM), Wideband Code Division Multiple Access (WCDMA), 4G network, 5G network, Bluetooth, Wi-Fi, or other wireless or wired networks.

[0075] It should be pointed out that, Figure 12 Only computer devices with components 10010-10030 are shown; however, it should be understood that it is not required to implement all of the shown components, and more or fewer components may be implemented instead.

[0076] In this embodiment, the data processing method stored in memory 10010 can be further divided into one or more program modules and executed by one or more processors (such as processor 10020) to complete the embodiment of this application.

[0077] Example 6 This application also provides a computer-readable storage medium storing a computer program thereon, wherein the computer program, when executed by a processor, implements the steps of the data processing method in the embodiments.

[0078] In this embodiment, the computer-readable storage medium includes flash memory, hard disk, multimedia card, card-type memory (e.g., SD or DX memory), random access memory (RAM), static random access memory (SRAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), programmable read-only memory (PROM), magnetic memory, magnetic disk, optical disk, etc. In some embodiments, the computer-readable storage medium can be an internal storage unit of a computer device, such as the hard disk or memory of the computer device. In other embodiments, the computer-readable storage medium can also be an external storage device of the computer device, such as a plug-in hard disk, smart media card (SMC), secure digital (SD) card, flash card, etc., equipped on the computer device. Of course, the computer-readable storage medium can also include both the internal storage unit and the external storage device of the computer device. In this embodiment, the computer-readable storage medium is typically used to store the operating system and various application software installed on the computer device, such as the program code of the data processing method in the embodiment. In addition, the computer-readable storage medium can also be used to temporarily store various types of data that have been output or will be output.

[0079] Example 7 This application also provides a computer program product, including a computer program that, when executed by a processor, implements the methods described in the above embodiments.

[0080] Obviously, those skilled in the art should understand that the modules or steps of the embodiments of this application described above can be implemented using general-purpose computer devices. They can be centralized on a single computer device or distributed across a network of multiple computer devices. Optionally, they can be implemented using computer-executable program code, thereby storing them in a storage device for execution by a computer device. In some cases, the steps shown or described can be performed in a different order than those presented here, or they can be fabricated as separate integrated circuit modules, or multiple modules or steps can be fabricated as a single integrated circuit module. Thus, the embodiments of this application are not limited to any particular combination of hardware and software.

[0081] It should be noted that the above are merely preferred embodiments of this application and do not limit the scope of patent protection of this application. Any equivalent structural or procedural changes made using the content of this application's specification and drawings, or direct or indirect applications in other related technical fields, are similarly included within the scope of patent protection of this application.

Claims

1. A data processing method, characterized in that, A computing node for a secure multi-party computation system, wherein the computing node comprises multiple nodes, and the method includes: Obtain the target parameters and arithmetic circuits corresponding to the target task, as well as the data shards provided by multiple clients for the target task; wherein, each client is used to: divide the original data for the target task into multiple data shards and distribute them to the multiple computing nodes; Based on the target parameters, the arithmetic circuit, and the data fragments provided by the multiple clients for the target task, a computation result fragment is generated and sent to other computing nodes in the secure multi-party computation system; Obtain the operation result fragments generated by the other computing nodes, and generate the target operation result corresponding to the target task based on the locally generated operation result fragments and the operation result fragments generated by the other computing nodes.

2. The method according to claim 1, characterized in that, The acquisition of the target parameters and arithmetic circuit corresponding to the target task includes: When the computing node is a coordinating computing node, the target task issued by the target client is obtained; wherein, the coordinating computing node is a designated computing node among the plurality of computing nodes, and the target client is used to: generate the target task, and determine the plurality of clients based on the target task, the plurality of clients including clients that confirm participation in the target task; Based on the target task, target parameters and arithmetic circuits are generated, and the target parameters and arithmetic circuits corresponding to the target task are sent to the other computing nodes; If the computing node is not the coordinating computing node, the target parameters and arithmetic circuits corresponding to the target task are obtained from the coordinating computing node.

3. The method according to claim 2, characterized in that, The method further includes: When the computing node is the coordinating computing node, the target computation result is pushed to the multiple clients.

4. The method according to claim 2, characterized in that, The target parameters are generated through the following operations: Generate a random positive integer of a specified bit length; If the random positive integer is a prime number, the random positive integer is determined as the target parameter; If the random positive integer is not a prime number, a random positive integer of a specified bit length is regenerated until the generated random positive integer is a prime number.

5. The method according to claim 1, characterized in that, The arithmetic circuit includes multiple circuit gates, each of which is used to specify the operation type and input data, and the operation type is associated with an operation priority. The process of generating computation result fragments based on the target parameters, the arithmetic circuit, and the data fragments provided by the multiple clients for the target task includes: Determine the finite field based on the target parameters; The arithmetic circuit is converted into an operation sequence based on the operation priority associated with the operation type of each of the plurality of circuit gates. The operation sequence includes the plurality of circuit gates arranged in sequence. The circuit gates in the operation sequence are sequentially obtained, and the operation is performed in the finite field based on the operation type and input data specified by the circuit gate, until the operation is performed on the last circuit gate in the operation sequence, so as to obtain the operation result slices corresponding to each circuit gate; The input data for each circuit gate is obtained by performing operations on the data fragments and / or the circuit gates preceding the circuit gate.

6. The method according to claim 5, characterized in that, Performing operations within the finite domain based on the operation type specified by the circuit gate and the input data includes: When the operation type is addition or scalar multiplication, the input data is obtained, and the addition or scalar multiplication operation is performed within the finite domain to obtain the operation result slice corresponding to the circuit gate; When the operation type is multiplication, the input data is obtained, and the multiplication operation is performed in the finite field to obtain the intermediate operation result corresponding to the circuit gate; based on the intermediate operation result corresponding to the circuit gate and the intermediate operation result corresponding to the circuit gate obtained by the other computing nodes, the operation result fragment corresponding to the circuit gate is generated.

7. The method according to claim 6, characterized in that, The step of generating a slice of the operation result corresponding to the circuit gate based on the intermediate operation result corresponding to the circuit gate and the intermediate operation result corresponding to the circuit gate obtained by the other computing nodes includes: Within the finite domain, the intermediate computation results corresponding to the circuit gate are divided into a preset number of intermediate computation result slices, the preset number being the same as the number of the plurality of computing nodes; The intermediate operation result fragments, which are one less than the preset number, are sent one by one to the other computing nodes, and an intermediate operation result fragment corresponding to the circuit gate provided by each of the other computing nodes is obtained. The Lagrange coefficients corresponding to the remaining intermediate operation result slices and the intermediate operation result slices provided by the other computing nodes are determined, and the operation result slices corresponding to the circuit gates are generated based on each intermediate operation result slice and its corresponding Lagrange coefficient.

8. A data processing method, characterized in that, For use on a client, the method includes: Generate a target task and send the target task to multiple other clients; The system acquires interactive information sent by other clients for the target task. If the number of other clients sending the interactive information exceeds a preset threshold, the other clients sending the interactive information are identified as task collaboration clients, and the target task is sent to multiple computing nodes in the secure multi-party computing system. Obtain the raw data for the target task and divide the raw data into multiple data shards; send the multiple data shards to the multiple computing nodes; The plurality of computing nodes are used to: determine the target computation result corresponding to the target task based on the data shards provided by the client and the task collaboration client for the target task.

9. A data processing apparatus, characterized in that, A computing node for a secure multi-party computation system, the computing node comprising multiple nodes, the device comprising: An acquisition module is used to acquire target parameters and arithmetic circuits corresponding to the target task, as well as data shards provided by multiple clients for the target task; wherein, each client is used to: divide the original data for the target task into multiple data shards and distribute them to the multiple computing nodes; The first generation module is used to generate computation result fragments based on the target parameters, the arithmetic circuit, and the data fragments provided by the multiple clients for the target task, and send the computation result fragments to other computing nodes in the secure multi-party computation system; The second generation module is used to obtain the operation result fragments generated by the other computing nodes, and generate the target operation result corresponding to the target task based on the locally generated operation result fragments and the operation result fragments generated by the other computing nodes.

10. A data processing apparatus, characterized in that, For a client, the device includes: A generation module is used to generate a target task and send the target task to multiple other clients; The first sending module is used to acquire interactive information sent by other clients for the target task. If the number of other clients sending the interactive information exceeds a preset threshold, the other clients sending the interactive information are identified as task collaboration clients, and the target task is sent to multiple computing nodes in the secure multi-party computing system. The second sending module is used to acquire raw data for the target task, divide the raw data into multiple data fragments, and send the multiple data fragments to the multiple computing nodes; The plurality of computing nodes are used to: determine the target computation result corresponding to the target task based on the data shards provided by the client and the task collaboration client for the target task.

11. A computer device, characterized in that, include: At least one processor; and A memory communicatively connected to the at least one processor; wherein: The memory stores instructions that can be executed by the at least one processor to enable the at least one processor to perform the method of any one of claims 1 to 8.

12. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores computer instructions that, when executed by a processor, implement the method as described in any one of claims 1 to 8.

13. A computer program product, comprising a computer program, characterized in that, When executed by a processor, the computer program implements the steps of the method according to any one of claims 1 to 8.