Distributed computing system performing partitioned multi-party computing

By dividing public functions into separate and joint parts, the distributed computing system realizes efficient multi-party computing while reducing the demand for computing resources and protecting data privacy.

CN120469787APending Publication Date: 2025-08-12GM GLOBAL TECHNOLOGY OPERATIONS LLC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202410430004.7
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2024-02-09
Filing Date
2024-04-10
Publication Date
2025-08-12

AI Technical Summary

Technical Problem

Existing multi-party computing technologies require a large amount of computing resources when processing data from large enterprises, and cannot perform efficient computing and analysis.

Method used

The common function is divided into separate parts and joint parts, the individual parts are individually calculated by each participant in the distributed computing system, and the joint part is collaboratively calculated based on multi-party computing.

Benefits of technology

Reduces the need for computing resources, ensuring that participants do not disclose each other's secret shared inputs, while improving computing efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120469787A_ABST
    Figure CN120469787A_ABST
Patent Text Reader

Abstract

A distributed computing system that divides a common function into separate portions and joint portions includes two or more networked computers, where each networked computer corresponds to a participant of the distributed computing system. The distributed computing system further includes two or more client computers, each client computer sending data to and receiving data from the two or more networked computers, where each client computer corresponds to one of the participants of the distributed computing system, and each client computer receiving data from the two or more networked computers. And each participant of the distributed computing system agrees with the specified participant. The individual portion is computed individually by each client computer corresponding to one of the participants, and the joint portion is computed cooperatively by each of two or more networked computers of the distributed computing system based on multi-party computing.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to a distributed computing system that divides a common function into separate parts and a joint part, wherein the separate parts of the common function are calculated separately by each participant of the distributed computing system, and the joint part of the common function is calculated collaboratively by two or more networked computers in the distributed computing system based on multi-party computing. Background Art

[0002] Big data refers to the volume, velocity, and variety of data that various machine learning and artificial intelligence techniques rely on to identify relationships within large data sets. Consequently, many organizations, such as automotive and mobile phone manufacturers, increasingly rely on big data to deliver innovative services and features. However, sometimes companies may not be able to gather the amount of information necessary to construct large datasets. For example, the number of vehicles produced by a particular vehicle manufacturer in a specific geographic area may not be sufficient to create the large dataset required to identify the specific relationships required by a particular machine learning algorithm or statistical model. Consequently, competing automakers have an incentive to pool telemetry data and perform computational analysis based on the combined datasets. However, it should be understood that sharing telemetry data with competitors may not be possible for competitive and regulatory reasons.

[0003] One solution to addressing the challenges outlined above is to employ multi-party computation between competing organizations. Multi-party computation allows a group of mutually untrusting parties (e.g., competing organizations) to compute joint portions of their inputs without revealing information about the inputs to one another, except for information that may be inferred from the computational results based on the inputs. As another example, multi-party computation can also be used to comply with requests from law enforcement officials. Specifically, multi-party computation can be used to compute the intersection of vehicle manufacturer data and law enforcement data to gather information about vehicles suspected of involvement in criminal activity. This is done while also protecting the privacy of vehicles that are not part of the law enforcement dataset. However, it should be understood that multi-party computation requires significant computing resources that may not be available, particularly for performing computations on large enterprise-scale input data.

[0004] Therefore, although the current multi-party computing technology achieves its intended purpose, there is still a need in the art for an improved multi-party computing technology that requires fewer computing resources than the current technology. Summary of the Invention

[0005] According to several aspects, a distributed computing system is disclosed for partitioning a common function into separate parts and a joint part. The distributed computing system includes two or more networked computers, each of which corresponds to a participant of the distributed computing system; and two or more client computers, each of which sends data to and receives data from the two or more networked computers. Each client computer corresponds to one of the participants of the distributed computing system, and each participant of the distributed computing system agrees on a designated participant. The client computer corresponding to the designated participant executes instructions to classify each operation as part of the common function as a linear operation or a nonlinear operation. In response to determining that the common function includes at least one nonlinear function, the client computer evaluates the separability of each nonlinear operation of the common function from the common function. In response to determining that the at least one nonlinear operation is separable from the common function, the client computer partitions the common function into separate parts and a joint part. The separate parts are computed individually by each client computer corresponding to one of the participants, and the joint part is computed collaboratively by each of the two or more networked computers of the distributed computing system based on multi-party computation.

[0006] In another aspect, the separate parts include every separable linear operation and nonlinear operation of the common function, and the joint part includes all inseparable linear operations that are part of the common function and any inseparable nonlinear operations of the common function.

[0007] In yet another aspect, a client computer corresponding to a designated participant executes instructions to, in response to determining that all nonlinear functions that are part of the common function are inseparable from linear operations and that the common function includes no separable operations, determine that the entire common function is a joint portion.

[0008] In one aspect, a client computer corresponding to a designated participant executes instructions to evaluate the public function of one or more separable linear operations in response to determining that the public function includes only linear operations.

[0009] In another aspect, a client computer corresponding to a designated participant executes instructions to, in response to determining that the common function includes one or more separable linear operations, assign the one or more separable linear operations as separate parts of the common function while assigning the remaining operations that are part of the common function as joint parts.

[0010] In yet another aspect, a client computer corresponding to a designated participant executes instructions to, in response to determining that the common function includes a weighted sum of the secret shared inputs, evaluate each weight corresponding to the weighted sum of the secret shared inputs, wherein each client computer of the distributed computing system transmits the secret shared input to each networked computer of the distributed computing system.

[0011] In one aspect, a client computer corresponding to a designated participant executes instructions to, in response to determining that the values corresponding to each weight of the weighted sum are equal to one another, split the common function into a separate portion comprising a multiplication operation of the common weights and a joint portion comprising a sum of the products of the secret shared inputs.

[0012] In another aspect, the client computer corresponding to the designated participant executes instructions to, in response to determining that the partitioning of the common function is complete, transmit the separate portions and the joined portion of the common function to each client computer corresponding to the remaining participants of the distributed computing system for verification.

[0013] In yet another aspect, a client computer corresponding to a designated participant executes instructions to receive a unique notification from each client computer corresponding to remaining participants of the distributed computing system, wherein the unique notification indicates that the corresponding participants of the distributed computing system agree that the partitioning of the common function is valid.

[0014] In one aspect, a client computer corresponding to a designated participant executes instructions to, in response to receiving a unique notification from each client computer corresponding to a remaining participant of the distributed computing system, instruct each client computer corresponding to the remaining participants of the distributed computing system to individually compute a separate portion of the common function, and instruct two or more networked computers that are part of the distributed computing system to jointly compute a joint portion based on a multi-party computation.

[0015] On the other hand, each participant of the distributed computing system represents one of the following: a car manufacturer and a mobile phone manufacturer.

[0016] In yet another aspect, a method for partitioning a common function into separate parts and a joint part by a distributed computing system is disclosed. The method includes classifying, by a client computer corresponding to a designated participant of the distributed computing system, each operation that is part of the common function as a linear operation or a nonlinear operation, wherein the distributed computing system includes two or more participants, each participant including a corresponding client computer that sends data to and receives data from the two or more networked computers. In response to determining that the common function includes at least one nonlinear function, the method includes evaluating, by the client computer corresponding to the designated participant of the distributed computing system, whether each nonlinear operation of the common function is separable from the common function. In response to determining that the at least one nonlinear operation is separable from the common function, the method includes partitioning, by the client computer of the designated participant, the common function into separate parts and a joint part, wherein the separate parts are individually computed by each client computer corresponding to one of the participants, and the joint part is collaboratively computed by each of the two or more networked computers of the distributed computing system based on multi-party computation.

[0017] In another aspect, the method further includes determining, by a client computer corresponding to a designated participant of the distributed computing system, that the entire common function is a joint part in response to determining that all nonlinear functions that are part of the common function are inseparable from the linear operation and the common function does not include a separable operation.

[0018] In yet another aspect, the method further includes, in response to determining that the common function includes only linear operations, evaluating, by a client computer corresponding to a designated participant of the distributed computing system, the common function of one or more separable linear operations.

[0019] In one aspect, the method further includes, in response to determining that the common function includes one or more separable linear operations that are constant, allocating, by a client computer corresponding to a designated participant of the distributed computing system, the one or more separable linear operations as separate parts of the common function while allocating the remaining operations that are part of the common function as a joint part.

[0020] In yet another aspect, the method further includes, in response to determining that the common function includes a weighted sum of the secret shared inputs, evaluating, by a client computer corresponding to a designated participant of the distributed computing system, a value of each weight corresponding to the weighted sum of the secret shared inputs, wherein each client computer of the distributed computing system transmits the secret shared input to each networked computer of the distributed computing system.

[0021] In one aspect, the method further includes, in response to determining that the values of each weight corresponding to the weighted sum are equal to one another, dividing, by the client computers corresponding to the designated participants of the distributed computing system, the common function into separate portions comprising multiplication operations of the common weights and a joint portion comprising the sum of the products of the secret shared inputs.

[0022] In another aspect, the method further includes, in response to determining that the partitioning of the common function is complete, transmitting, by the client computer corresponding to the designated participant of the distributed computing system, the separate portions and the joined portion of the common function to each client computer corresponding to the remaining participants of the distributed computing system for verification.

[0023] In yet another aspect, the method further includes receiving, by a client computer corresponding to a designated participant of the distributed computing system, a unique notification from each client computer corresponding to a remaining participant of the distributed computing system, wherein the unique notification indicates that the corresponding participants of the distributed computing system agree that the partitioning of the common function is valid.

[0024] In one aspect, the method further includes, in response to receiving a unique notification from each client computer corresponding to the remaining participants of the distributed computing system, instructing, by the client computer corresponding to the designated participant of the distributed computing system, each client computer corresponding to the remaining participants of the distributed computing system to individually compute a separate portion of the common function, and instructing, by the client computer corresponding to the designated participant of the distributed computing system, two or more networked computers that are part of the distributed computing system to jointly compute the joint portion based on the multi-party computation.

[0025] Further areas of applicability will become apparent from the description provided herein.It should be understood that the description and specific examples are intended for purposes of illustration only and are not intended to limit the scope of the present disclosure. BRIEF DESCRIPTION OF THE DRAWINGS

[0026] The drawings described herein are for illustration purposes only and are not intended to limit the scope of the present disclosure in any way.

[0027] Figure 1 A schematic diagram illustrating a disclosed distributed computing system having two or more participants, each participant comprising a client computer communicating with a corresponding networked computer, according to an exemplary embodiment; and

[0028] Figure 2 is a process flow diagram illustrating a method for partitioning a common function into separate parts and a joint part by a distributed computing system according to an exemplary embodiment. DETAILED DESCRIPTION

[0029] The following description is merely exemplary in nature and is not intended to limit the present disclosure, application, or uses.

[0030] refer to Figure 1 , shows a disclosed distributed computing system 10 including two or more networked computers 12. In the non-limiting embodiment shown, the distributed computing system 10 includes three networked computers 12 in communication with each other, however, it should be understood that Figure 1 This is merely exemplary in nature, and any number of networked computers 12 may be included. Each networked computer 12 corresponds to a participant of the distributed computing system 10. Participants represent entities that provide data to the distributed computing system 10. In one embodiment, each unique participant represents a manufacturer, such as a vehicle or mobile phone manufacturer. However, it should be understood that participants may represent other entities, such as, but not limited to, Internet of Things (IoT) manufacturers, consumer product manufacturers, or any other organization that has a private database of sensitive data. Figure 1In the illustrated embodiment, the unique participants are represented as P1, P2, and P3. As described below, the distributed computing system 10 divides the common function into an individual part and a joint part. The individual part of the common function is computed individually by a client computer 20 corresponding to a participant of the distributed computing system 10, while the joint part of the common function is computed collaboratively by each of two or more networked computers 12 of the distributed computing system 10 based on multi-party computing.

[0031] Each unique participant in the distributed computing system 10 includes a corresponding client computer 20. Each networked computer 12 of the distributed computing system 10 represents a server computer corresponding to one of the participants in the distributed computing system 10, wherein each networked computer 12 transmits data to each client computer 20 and receives data from each client computer 20. Each client computer 20 corresponding to one of the participants in the distributed computing system 10 transmits an input in the form of a secret share. is transmitted to each networked computer 12 of the distributed computing system 10, where j represents the identity or index of the participant corresponding to the client computer 20, and x j represents the secret shared input of participant j, and k represents the highest power of the polynomial of participant j's input in the joint part of the computation jointly agreed upon by each participant. Two or more networked computers 12 receive the secret shared input from each client computer 20 of the distributed computing system 10. Each participant agrees to share its own secret shared input with the distributed computing system 10 to calculate the joint part.

[0032] It should be understood that each participant in distributed computing system 10 agrees on a common function to be computed by distributed computing system 10. The common function is partitioned into individual portions and a joint portion. The individual portions of the function are computed individually by each client computer 20 corresponding to each participant in distributed computing system 10, while the joint portion is computed jointly by each of two or more networked computers 12 in distributed computing system 10 in a coordinated manner based on multi-party computation. It should be understood that each participant in distributed computing system 10 agrees on and adheres to the partitioning of the common function. It should also be understood that the client computer 20 corresponding to each participant in distributed computing system 10 may compute the individual portions of the common function individually before or after the networked computers 12 in distributed computing system 10 jointly compute the individual portions of the common function.

[0033] Common functions are expressed as either Boolean functions or arithmetic functions. For example, a Boolean function consists of a series of one or more exclusive-or (XOR) operations and one or more and-and (AND) operations, while an arithmetic function consists of a series of addition (ADD) and multiplication (MULT) operations, and in some cases, nonlinear operations. When a common function can be expressed as a polynomial, the common function consists only of ADD and MULT operations, and the arithmetic function is called a linear function. When a common function cannot be expressed as a polynomial, the common function is called a nonlinear function.

[0034] It should be understood that all participants in the distributed computing system 10 agree on a designated participant, wherein the client computer 20 corresponding to the designated participant determines the common function and divides the common function into separate parts and a joint part. It should also be understood that once the client computer 20 corresponding to the designated participant divides the common function into separate parts and a joint part, the client computer 20 corresponding to the designated participant transmits the separate parts and the joint part of the common function to the client computers 20 corresponding to the remaining participants in the distributed computing system 10. The remaining participants verify that the division is correct and consistent with the common function. Requiring each participant to verify that the division is correct and consistent with the common function ensures that the participants in the distributed computing system 10 are in sync with each other and perform the computations expected by the other participants.

[0035] The client computers 20 corresponding to the designated participants of the distributed computing system 10 classify each operation that is part of the common function as either a linear operation or a nonlinear operation. The client computers 20 corresponding to the designated participants of the distributed computing system 10 then evaluate the separability of each nonlinear operation that is part of the common function. It should be understood that an operation is separable if it involves input variables from a single participant. Therefore, the operation can be computed separately from the remaining functions by the single participant holding the input variables corresponding to the operation. In response to determining that the common function includes at least one nonlinear operation that is separable from the common function, the client computers 20 of the designated participants partition the common function into separate portions and a joint portion. The separate portions of the common function include each separable nonlinear operation and each separable linear operation. As described above, each portion of the common function is computed separately by each client computer 20 corresponding to one of the participants of the distributed computing system 10. The joint portion is computed jointly by each of the two or more networked computers 12 that are part of the distributed computing system 10. It should be understood that the joint portion includes all inseparable linear operations that are part of the common function and any inseparable nonlinear operations of the common function. It will be appreciated that including separable nonlinear operations as part of separate portions of a common function when computing the common function can result in significant computational savings compared to computing the same common function while retaining all nonlinear operations as part of the common function.

[0036] In response to determining that all non-linear functions that are part of the common function are inseparable from linear operations that are part of the common function and that the common function does not include separable operations, the client computer 20 corresponding to the specified participant of the distributed computing system 10 determines that the entire common function is a joint portion. As described above, the joint portion is jointly computed by each of the two or more networked computers 12 that are part of the distributed computing system 10 based on multi-party computation.

[0037] In response to determining that the common function includes only linear operations and no non-linear operations, client computers 20 corresponding to the designated participants of distributed computing system 10 then evaluate the common function to identify one or more separable linear operations. In response to determining that the common function includes the one or more separable linear operations, client computers 20 corresponding to the designated participants of distributed computing system 10 assign the one or more separable linear operations as separate parts of the common function while assigning the remaining operations that are part of the common function as joint parts.

[0038] In response to determining that the public function includes a secret shared input The weighted sum of the weighted sum is then evaluated by the client computer 20 corresponding to the designated participant of the distributed computing system 10 with the secret shared input In response to determining that the values of each weight are equal to each other, the client computer 20 corresponding to the designated participant of the distributed computing system 10 determines the secret sharing input The weighted sum of can be expressed as a sum part of the public weight multiplied by the weighted sum. The client computer 20 corresponding to a given participant of the distributed computing system 10 divides the public function into a separate part and a joint part. The separate part includes a multiplication operation of the public weight, and the joint part includes a secret shared input The sum of the products of .

[0039] Once the client computer 20 corresponding to the designated participant divides the common function into the individual parts and the joint part, the client computer 20 corresponding to the designated participant transmits the individual parts and the joint part of the common function to each client computer 20 corresponding to the remaining participants of the distributed computing system 10 for verification. The client computers 20 corresponding to the remaining participants of the distributed computing system 10 each verify that the division is correct and consistent with the common function, and transmit a unique notification indicating that the division is valid to the client computer 20 corresponding to the designated participant. Once the client computer 20 corresponding to the designated participant receives the unique notification from each client computer 20 corresponding to the remaining participants of the distributed computing system 10, the client computer 20 corresponding to the designated participant instructs each client computer 20 corresponding to the remaining participants of the distributed computing system 10 to independently compute the individual parts of the common function. The client computer 20 corresponding to the designated participant also instructs two or more networked computers 12 that are part of the distributed computing system 10 to jointly compute the joint part based on multi-party computation.

[0040] For example, Equation 1 is a linear multivariate polynomial representing a common function as follows:

[0041]

[0042] Among them, x j represents the secret shared input of participant j, denotes the coefficients of the multivariate polynomial, j denotes the index of the participant corresponding to the client computer 20, and n denotes the total number of participants that are part of the distributed computing system 10. Assuming the coefficients For each participant j of the distributed computing system 10, Equation 1 is divided into a separate part and a joint part. The separate part includes the multiplication operation calculated locally by the client computer 20 corresponding to each participant. The combined part f′(x1,…,x n ) includes addition operations performed jointly by two or more networked computers 12

[0043]

[0044] As another example, Equation 2 including a nonlinear function is expressed as follows:

[0045]

[0046] Where g represents a nonlinear function that cannot be expressed or approximated by a multivariate polynomial. Similar to Equation 1, assuming that the nonlinear function g is separable from the linear operations of the common function, Equation 2 is divided into a separate part, which includes the nonlinear function g and any separable operations computed locally by the client computer 20 corresponding to each participant, and a joint part, which includes the inseparable operations jointly computed by two or more networked computers 12.

[0047] In yet another example, Equation 3 is the joint part, which takes the secret sharing input The average value of is determined as:

[0048]

[0049] Equation 3 is divided into an individual part and a joint part. The individual part includes a multiplication operation calculated locally by the client computer 20 corresponding to each participant (dividing the sum of the addition functions by ), the joint part includes the addition operation (i.e., x1+x2, ..., x n-1 +x n ).

[0050] In the example, Equation 4 is a joint portion including a common term m, where the value of the common term m varies between each participant of the distributed computing system 10. Equation 4 is expressed as:

[0051]

[0052] in, It should be understood that Equation 4 is not divided into separate parts because the weight of each participant of the distributed computing system 10 is Rather, Equation 4 represents only the joint portion that is jointly calculated by two or more networked computers 12.

[0053] Figure 2 is a process flow diagram illustrating a method 200 for partitioning a common function into separate and joint parts by a distributed computing system. Figure 1 and Figure 2, method 200 may begin at block 202. In block 202, client computers 20 corresponding to designated participants of distributed computing system 10 classify each operation as part of a common function as either a linear operation or a nonlinear operation. Method 200 may then proceed to decision block 204.

[0054] In decision block 204, if the common function includes at least one nonlinear operation, the method proceeds to block 206. In block 206, in response to determining that the common function includes at least one nonlinear function, the client computer 20 corresponding to the designated participant of the distributed computing system 10 evaluates the separability of each nonlinear operation of the common function. The method 200 may then proceed to decision block 208.

[0055] In decision block 208 , if the common function includes at least one non-linear operation that is separable from the common function, method 200 may proceed to block 210 .

[0056] In block 210, in response to determining that at least one nonlinear operation is separable from the common function, the client computer 20 of the designated participant divides the common function into separate portions and a combined portion. The separate portions of the common function include each separable nonlinear operation and each separable linear operation, and the combined portion includes all inseparable linear operations that are part of the common function and any inseparable nonlinear operations of the common function. Method 200 may then proceed to block 214.

[0057] Referring again to decision block 208 , if the common function does not include at least one non-linear operation that is separable from a linear operation that is part of the common function, method 200 may proceed to block 212 .

[0058] In block 212, in response to determining that all nonlinear functions that are part of the common function are inseparable from linear operations that are part of the common function and that the common function does not include separable operations, client computers 20 corresponding to the designated participants of distributed computing system 10 determine that the entire common function is a joint part. Method 200 may then proceed to block 228.

[0059] Referring again to decision block 204, if the common function does not include at least one nonlinear operation, the method proceeds to block 214. In block 214, in response to determining that the common function includes only linear operations and no nonlinear operations, the client computer 20 corresponding to the designated participant of the distributed computing system 10 evaluates the one or more separable linear operations of the common function. The method 200 may then proceed to decision block 216.

[0060] At decision block 216, if the public function includes one or more separable linear operations, method 200 proceeds to block 218. At block 218, in response to determining that the public function includes one or more separable linear operations, client computer 20 allocates the one or more separable linear operations as separate parts, with the remaining parts of the public function that do not include the one or more separable linear operations being the joint parts. Method 200 may then proceed to block 228.

[0061] Referring again to decision block 216, if the public function includes a secret shared input If the weighted sum of is , the method 200 may proceed to block 220 .

[0062] In block 220, in response to determining that the public function includes a secret shared input The weighted sum of the client computers 20 corresponding to the designated participants of the distributed computing system 10 evaluates the secret shared input As described above, each client computer 20 corresponding to one of the participants in the distributed computing system 10 will input the secret sharing is transmitted to each networked computer 12 of the distributed computing system 10. The method 200 may then proceed to decision block 222.

[0063] In decision block 222, if the secret shared input If the weighted sums and the values corresponding to each weight are equal to each other, the method 200 may proceed to block 224 .

[0064] In block 224, in response to determining that the values of each weight corresponding to the weighted sum are equal to one another, the client computer 20 corresponding to the designated participant of the distributed computing system 10 determines the secret sharing input The weighted sum of can be expressed as a multiplication of the public weights of the sum part of the weighted sum. The client computer 20 corresponding to a given participant of the distributed computing system 10 divides the public function into a separate part and a joint part, the separate part including the multiplication of the public weights and the joint part including the secret shared input The method 200 may then proceed to block 228 .

[0065] Returning to decision box 222, if the secret is shared with the input If the weighted sums and the values corresponding to each weight are not equal to each other, the method 200 may proceed to block 226 .

[0066] In block 226 , in response to determining that the weights are not equal to one another, client computers 20 corresponding to the designated participants of distributed computing system 10 determine that the common function is part of a federation. Method 200 may then proceed to block 228 .

[0067] In block 228, in response to determining that the partitioning of the common function is complete, the client computer 20 corresponding to the designated participant transmits the separate portions and the combined portion of the common function to each client computer 20 corresponding to the remaining participants of the distributed computing system 10 for verification. Method 200 may then proceed to block 230.

[0068] In block 230, the client computer 20 corresponding to the designated participant receives a unique notification from each of the client computers 20 corresponding to the remaining participants of the distributed computing system 10, wherein the unique notification indicates that the corresponding participants of the distributed computing system 10 agree that the partitioning of the common function is valid. Method 200 may then proceed to block 232.

[0069] In block 232, in response to receiving the unique notification from each client computer 20 corresponding to the remaining participants of distributed computing system 10, the client computer 20 corresponding to the designated participant instructs each client computer 20 corresponding to the remaining participants of distributed computing system 10 to individually compute the individual portion of the common function. The client computer 20 corresponding to the designated participant also instructs two or more networked computers 12 that are part of distributed computing system 10 to jointly compute the joint portion based on multi-party computation. The client computer 20 corresponding to the designated participant also instructs the remaining participants of distributed computing system 10 on the order of operations for the individual and joint portions of the common function. Method 200 may then terminate.

[0070] With general reference to the accompanying drawings, the disclosed distributed computing system has several technical effects and benefits. Specifically, the distributed computing system provides a method for dividing a public function into separate parts that are calculated individually by each participant and a joint part that is jointly calculated by each networked computer based on multi-party computing. Dividing the public function into separate parts allows participants to calculate more complex functions individually, thereby reducing the computing resources required by the networked computers to perform multi-party computing. In particular, the disclosed method can minimize computational operations within the joint part of the public function, such as AND as a Boolean function and MULT as an arithmetic function, because both AND and MULT operations require a large amount of resources to be calculated using multi-party computing. It should also be understood that solving the joint part based on multi-party computing ensures that the participant will not discover the secret shared input of another participant of the distributed computing system.

[0071] A computer may refer to an electronic circuit, a combinational logic circuit, a field programmable gate array (FPGA), a processor (shared, dedicated, or group) that executes code, or a combination of some or all of the above, or as part of them, such as in a system on a chip. In addition, a computer may be microprocessor-based, such as a computer having at least one processor, memory (RAM and / or ROM), and associated input and output buses. The processor may operate under the control of an operating system residing in the memory. The operating system may manage computer resources so that computer program code embodied as one or more computer software applications (such as applications residing in the memory) may have instructions executed by the processor. In an alternative embodiment, the processor may execute the application directly, in which case the operating system may be omitted.

[0072] The description of the present disclosure is merely exemplary in nature, and variations that do not depart from the gist of the present disclosure are intended to fall within the scope of the present disclosure. Such variations should not be regarded as a departure from the spirit and scope of the present disclosure.

Claims

1. A distributed computing system that divides a common function into a separate part and a joint part, the distributed computing system comprising: two or more networked computers, wherein each networked computer corresponds to a participant in the distributed computing system; and Two or more client computers, each client computer sending data to and receiving data from the two or more networked computers, wherein each client computer corresponds to one of the participants of the distributed computing system, and each of the participants of the distributed computing system agrees on a designated participant, and wherein the client computer corresponding to the designated participant executes instructions to: classifying each operation that is part of the common function as a linear operation or a nonlinear operation; In response to determining that the common function includes at least one nonlinear function, evaluating each nonlinear operation of the common function for separability from the common function; and In response to determining that at least one nonlinear operation is separable from the common function, the common function is divided into the individual parts and the joint part, wherein the individual parts are individually computed by each of the client computers corresponding to one of the participants, and the joint part is collaboratively computed by each of the two or more networked computers of the distributed computing system based on multi-party computing.

2. The distributed computing system according to claim 1, wherein: The separate parts include every separable linear operation and non-linear operation of the common function, and the joint part includes all inseparable linear operations that are part of the common function and any inseparable non-linear operations of the common function.

3. The distributed computing system according to claim 1, wherein: The client computer corresponding to the designated participant executes instructions to: In response to determining that all nonlinear functions that are part of the common function are inseparable from linear operations and the common function does not include separable operations, the entire common function is determined to be the joint part for the designated participant of the distributed computing system.

4. The distributed computing system according to claim 3, wherein: The client computer corresponding to the designated participant executes instructions to: In response to determining that the common function includes only linear operations, the common function is evaluated for one or more separable linear operations.

5. The distributed computing system according to claim 4, wherein: The client computer corresponding to the designated participant executes instructions to: In response to determining that the common function includes the one or more separable linear operations, the one or more separable linear operations are assigned as the individual portions of the common function while assigning the remaining operations that are part of the common function as the joint portion.

6. The distributed computing system according to claim 4, wherein: The client computer corresponding to the designated participant executes instructions to: In response to determining that the public function includes a weighted sum of secret shared inputs, evaluating each weight corresponding to the weighted sum of the secret shared inputs, wherein each client computer of the distributed computing system transmits the secret shared inputs to each networked computer of the distributed computing system.

7. The distributed computing system according to claim 6, wherein: The client computer corresponding to the designated participant executes instructions to: In response to determining that the values of each of the weights corresponding to the weighted sums are equal to one another, dividing the common function into the individual portions comprising multiplications of the common weights and the joint portion comprising the sum of the products of the secret shared inputs.

8. The distributed computing system according to claim 1, wherein: The client computer corresponding to the designated participant executes instructions to: In response to determining that the partitioning of the common function is complete, the separate portions and the combined portion of the common function are transmitted to each of the client computers corresponding to the remaining participants of the distributed computing system for verification.

9. The distributed computing system according to claim 8, wherein: The client computer corresponding to the designated participant executes instructions to: A unique notification is received from each of the client computers corresponding to the remaining participants of the distributed computing system, wherein the unique notification indicates that the corresponding participant of the distributed computing system agrees that the partitioning of the common function is valid.

10. The distributed computing system according to claim 9, wherein: The client computer corresponding to the designated participant executes instructions to: in response to receiving the unique notification from each of the client computers corresponding to the remaining participants of the distributed computing system, instructing each of the client computers corresponding to the remaining participants of the distributed computing system to individually compute the individual portions of the common function; as well as The two or more networked computers that are part of the distributed computing system are instructed to jointly compute the joint portion based on multi-party computation.