A collusion attack resisting method for secure multi-party computation based on a consortium chain
Patent Information
- Application Number
- CN202310591350.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2023-05-24
- Publication Date
- 2026-10-13
- Estimated Expiration
- 2043-05-24
AI Technical Summary
[0004]虽然安全多方计算技术有了很大的发展和进步,但仍然存在合谋攻击的问题
[0058]1.本发明方法具有良好的抗合谋性,具体为:数据拥有方使用加法秘密共享将私有数据划分为多个数据分片,并使用不同计算参与方的公钥加密不同的数据分片,每个计算参与方只能获取其中一个数据分片。此外,加法秘密共享为全阈值的秘密共享方案,只有联合所有计算参与方才能恢复原数据。因此,本方法能够有效抵抗参与方的合谋攻击。
Smart Images

Figure CN116980117B_ABST
Abstract
Description
Technical Field
[0001] This invention relates to a method for defending against secure multi-party computation collusion attacks based on consortium blockchains, belonging to the field of information security technology. Background Technology
[0002] In the era of big data, the digitalization and informatization of daily production and life are constantly improving, data circulation is becoming more frequent, and people's demand for privacy protection is growing. Data circulation and sharing are important ways to fully utilize the value of data and are a crucial factor in determining the development of the digital economy. However, data security and privacy during the circulation process face challenges, hindering multi-party data cooperation and creating data silos. To break down data silos, privacy computing, an important technology, has been developed. Privacy computing is a computational theory and method for protecting privacy information throughout its entire lifecycle.
[0003] In privacy-preserving computation, secure multi-party computation (SMC) is a technique that uses cryptography to achieve collaborative data computation, often used to solve the problem of privacy-preserving collaborative computation among distrustful parties in distributed networks. However, traditional MCC schemes suffer from poor computational transparency, leading to collusion among multiple participants and resulting in the leakage of private data. Currently, blockchain technology, based on a distributed architecture, is one of the main technologies for addressing the problems of poor computational transparency and privacy leakage in traditional secure MCC. Blockchain technology, also known as distributed ledger technology, provides a secure and reliable execution environment for secure multi-party computation due to its decentralized, tamper-proof, and transparent characteristics. The technical characteristics of blockchain and smart contracts can ensure the transparency and verifiability of the computation process, thereby effectively curbing malicious behavior by participants.
[0004] Although secure multi-party computation technology has made great strides and progress, the problem of collusion attacks still exists. Collusion attacks refer to cyberattacks in which malicious participants conspire to reconstruct secret parameters in order to disguise themselves as normal / benign participants. Summary of the Invention
[0005] To address the collusion attack problem inherent in secure multi-party computation (MPC) technologies, this invention proposes a method for resisting MPC collusion attacks based on consortium blockchains. This method aims to improve the transparency of computation, make the computation verifiable, and thereby curb malicious behavior by participating parties.
[0006] To achieve the above objectives, the present invention adopts the following technical solution.
[0007] First, let's explain the relevant definitions:
[0008] Definition 1: A consortium blockchain network is a blockchain network composed of participating nodes that perform secure multi-party computation, where endorsing nodes execute smart contracts.
[0009] Definition 2: The data owner refers to the holder of private data in a secure multi-party computation, who has relatively weak computing power and whose user groups do not trust each other;
[0010] Definition 3: The task requester refers to the initiator of a secure multi-party computation task, who is also the holder of private data and has relatively weak computing power.
[0011] Definition 4: A computational participant is a participant in secure multi-party computation who possesses computing resources and is a node in a consortium blockchain network;
[0012] Definition 5: A smart contract is a computer protocol that incorporates computational tasks, node score maintenance, verifiable random function verification, and secure multi-party computation result verification. It is decentralized, transparent, and executed by endorsing nodes in the network.
[0013] The present invention provides a method for defending against secure multi-party computation collusion attacks based on consortium blockchains, comprising the following steps:
[0014] Step 1. Calculate participant registration and initialization, specifically including the following steps:
[0015] Step 1.1: The computing participant generates its own public and private keys locally, calls the smart contract to upload the public key to the consortium blockchain storage, and completes the registration of the computing participant. Specifically, the computing participant generates its own public and private keys locally, which can be achieved using RSA key generation methods.
[0016] Step 1.2: The smart contract then initializes the node scores of the registered computation participants to the same default values.
[0017] Step 2. The task requester invokes the smart contract to publish the computing task, specifically including the following steps:
[0018] Step 2.1: The task requester and the data owner jointly negotiate the computation task, which includes the computation function, the number of computation participants, the commitment value parameter information, and the public key of the task requester.
[0019] Step 2.2: Next, the task requester calls the smart contract interface to upload the computing task information and complete the publishing of the computing task.
[0020] Step 3: After the computation task is published, the smart contract selects the participating nodes based on the computation task information. Specifically, this includes the following steps:
[0021] Step 3.1: Calculate the random number and proof generated by the participating party using the public seed and its own private key as inputs to a verifiable random function locally. The public seed is the hash value of the latest block in the consortium blockchain.
[0022] Step 3.2: Calculate the number generated by the participants and convert it into a decimal between 0 and 1.
[0023] Step 3.3: The participating party calls the smart contract to calculate its own weight score, which is calculated based on the node score of the participating party.
[0024] Step 3.4: Calculate the results of the lottery drawn by the participants locally using a cryptographic lottery algorithm.
[0025] Step 3.5: The participating parties call the smart contract to upload the lottery results, random number, and proof, and the smart contract verifies the lottery results.
[0026] Step 3.6: After the smart contract verifies the lottery results of all computation participants, it selects the participants corresponding to the top t largest lottery results as the selected computation participants, where t is the number of computation participants in this computation task.
[0027] Step 4: The selected computational participants generate preprocessed data, specifically including the following steps:
[0028] Step 4.1: Calculate the multiplication triple generation algorithm of the SPDZ scheme run locally by the participants to generate multiplication triple fragments.
[0029] Step 4.2: Calculate the blinding factor randomly selected by the participants to generate the Pedersen commitment value of the multiplicative ternary component.
[0030] Step 4.3: Calculate the participating parties' call to the smart contract, upload the blinding factor and Pedersen commitment value to the consortium blockchain storage.
[0031] Step 5: The data owner uses the addition secret sharing to divide private data and completes the distribution of data fragments. Specifically, it includes the following steps;
[0032] Step 5.1: The data owner uses additive secret sharing to divide the private data into q data fragments, where q is the number of data fragments in this task, and q is numerically equal to the number of computation participants t in this computation task.
[0033] Step 5.2: The data owner uses the public key of the corresponding computing participant to encrypt the data fragment.
[0034] Step 5.3: The data owner randomly selects q blinding factors and calculates the Pedersen commitment value for each of the q data shards.
[0035] Step 5.4: The data owner adds q blinding factors to obtain a new blinding factor, and calculates the Pedersen commitment value of the private data based on the new blinding factor.
[0036] Step 5.5: The data owner invokes the smart contract to upload all the above commitments, blinding factors, and encrypted data fragments to the consortium blockchain for storage.
[0037] Step 6: Calculate the encrypted data shards, blinding factors, and commitment values obtained by the participants from the consortium blockchain, and verify the validity of the data shards. Specifically, this includes the following steps;
[0038] Step 6.1: Calculate the encrypted data shards, blinding factor, and commitment value obtained by the participants from the consortium blockchain by calling the smart contract.
[0039] Step 6.2: Calculate the original data fragments by having the participants decrypt the encrypted data fragments using their private keys.
[0040] Step 6.3: Calculate the participants' open Pedersen commitments to verify the validity of data sharding.
[0041] Step 7: The participants calculate the data shards according to the calculation function, which specifically includes the following steps;
[0042] Step 7.1: For addition operations in the calculation function, the calculation participants perform addition operations on the data fragments locally.
[0043] Step 7.2: For constant multiplication operations in the computation function, the computation participants perform constant multiplication operations on the data fragments locally.
[0044] Step 7.3: For the multiplication operation in the calculation function, the calculation participants use the multiplication ternary component data generated in step 4.1 to complete the multiplication operation.
[0045] Step 8: Calculate the shards of output results submitted by the participating parties invoking the smart contract for result verification. Specifically, this includes the following steps:
[0046] Step 8.1: Calculate the output fragment after the final round of calculation, which is encrypted by the public key of the task requester using the participating party, to obtain the ciphertext output fragment.
[0047] Step 8.2: Calculate the fragment of the output result of the participant calling the smart contract and submitting the encrypted state.
[0048] Step 8.3: The smart contract retrieves the Pedersen commitment value information of the initial data shard from the blockchain.
[0049] Step 8.4: The smart contract performs the same operation on the Pedersen commitment value information according to the computation function in the computation task, and obtains the Pedersen commitment value corresponding to the output result shard.
[0050] Step 8.5: The smart contract verifies whether the original output fragment matches the Pedersen commitment value calculated in step 8.4 based on the fragmented output of the encrypted state.
[0051] Step 8.6: The smart contract updates the node scores of the participating parties based on the verification results.
[0052] Step 9: The task requester obtains the calculation results, specifically including the following steps;
[0053] Step 9.1: The task requester calls the smart contract to retrieve the output fragments of all encrypted states after verification from the blockchain.
[0054] Step 9.2: The task requester uses the private key to decrypt the output result fragments.
[0055] Step 9.3: The task requester uses the reconstruction algorithm with addition secret sharing to reconstruct the calculation result.
[0056] Beneficial effects
[0057] Compared with the prior art, the method of the present invention has the following beneficial effects:
[0058] 1. The method of this invention has good anti-collusion resistance. Specifically, the data owner uses additive secret sharing to divide private data into multiple data fragments, and encrypts different data fragments using the public keys of different computing participants. Each computing participant can only obtain one data fragment. Furthermore, additive secret sharing is a full-threshold secret sharing scheme; only by colluding with all computing participants can the original data be recovered. Therefore, this method can effectively resist collusion attacks by participating parties.
[0059] 2. The method of the present invention has good transparency, specifically: after the calculation is completed, the smart contract is called to complete the calculation of the commitment value and the verification of the output result shards. The open and transparent nature of the smart contract improves the transparency of the calculation.
[0060] 3. The method of the present invention has good verifiability, specifically as follows: generating the Pedersen commitment value of the initial data shard, utilizing the additive homomorphism property of the Pedersen commitment scheme, performing the same operation as the data sharding in the smart contract, obtaining the Pedersen commitment value corresponding to the output result shard, completing the verification of the output result shard in the closed state, preventing the output result from being leaked, and finally being able to verify the correctness of the output result. Attached Figure Description
[0061] Figure 1 This is a schematic diagram illustrating the implementation of the method of the present invention. Detailed Implementation
[0062] The technical solutions of the embodiments of the present invention will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of the present invention, and not all embodiments, and are not intended to limit the present invention. The symbols in the embodiments are explained in Table 1.
[0063] Example
[0064] See the instruction manual appendix Figure 1 This embodiment includes the following process:
[0065] Step 1: Each server P i (i = 1, 2, ..., n) Complete the registration and initialization, which includes the following sub-steps:
[0066] Step 1.1: Each server P i (i = 1, 2, ..., n) Generate their own public key pk locally. i and private key sk i Call the smart contract to PK the public key i Upload to the consortium blockchain storage and complete server registration;
[0067] Step 1.2: The smart contract will register the server P. i Node score R i Initialize to the same default value R init .
[0068] Step 2: The terminal device invokes the smart contract to publish the computing task. The specific implementation includes the following sub-steps:
[0069] Step 2.1: The terminal devices jointly negotiate the computation task, which includes the computation function func, the number of participating servers t, the commitment value parameters G and H, and the public key pk of the terminal devices. dev ;
[0070] Step 2.2: The terminal device calls the smart contract interface, uploads the computing task information, and completes the publishing of the computing task.
[0071] Step 3: After the computation task is published, the smart contract selects the server node for this computation task based on the computation task information. The specific implementation includes the following sub-steps:
[0072] Step 3.1: Each server P i (i = 1, 2, ..., n) Locally, the public seed and the user's private key sk are used as inputs to the verifiable random function VRF to generate a random number value and a proof, value, proof = VRF(seed, sk), where the public seed seed is the hash value of the latest block in the consortium blockchain;
[0073] Step 3.2: Each server converts the generated random number value into a decimal s between 0 and 1, where s = value / 2. hashlen Where hashlen is the length of the random number value;
[0074] Step 3.3: Each server calls the smart contract to calculate the weight score. The calculation process is as follows: Among them, c i For server P i The node score, w i For server P i The lottery weight score, the total weight of all servers
[0075] Step 3.4: Each server performs a lottery locally based on the Algorand cryptographic lottery algorithm to obtain the lottery result j. Specifically, taking server P as an example... i Taking the lottery process (i = 1, 2, ..., n) as an example, first calculate the probability of the Bernoulli trial p = t / W, where t is the number of servers participating in the calculation task, and W is the total weight of all servers in step 3.3. Then, server P... i Based on probability p and weight value w i Perform a Bernoulli trial. When s obtained in step 3.2 is greater than or equal to the cumulative probability of the binomial distribution of the jth time and less than the cumulative probability of the binomial distribution of the j+1th time, j is the lottery result of the server.
[0076] Step 3.5: Each server calls the smart contract to upload the lottery results, random number, and proof. The smart contract then verifies the lottery results. Specifically, this is done by verifying server P. i Taking the lottery results (i = 1, 2, ..., n) as an example, the smart contract first verifies the server P based on the verifiable random function VRF. i Check if the submitted random number is correct. If the verification fails, then server P... i The lottery result is invalid. If the verification is successful, then according to server P... i node weight value w i Perform a Bernoulli trial, when server P i When the submitted converted random number s is greater than or equal to the cumulative probability of the binomial distribution after j′ times, and less than the cumulative probability of the binomial distribution after j′+1 times, j′ is the lottery result calculated by the smart contract. When j′ matches the server P... i If the submitted lottery results j are equal, the lottery result is valid; otherwise, the lottery result is invalid.
[0077] Step 3.6: After the smart contract verifies the lottery results of all servers, it selects the servers corresponding to the top t largest lottery results as the servers participating in this computation task. Here, t is the number of servers participating in this computation task.
[0078] Step 4: The server selected in Step 3 generates preprocessed data, including multiplication triples and Pedersen commitments. The specific implementation includes the following sub-steps:
[0079] Step 4.1: The selected t servers run the SPDZ scheme's multiplication triple generation algorithm locally to generate multiplication triple shards (a i ,b i ,c i ), i = 1, 2, ..., t;
[0080] Step 4.2: The selected t servers randomly choose a blinding factor r, and calculate the Pedersen commitment value of the multiplicative ternary partition. The commitment value calculation process is as follows: in, and a i b i and c i The Pedersen commitment value;
[0081] Step 4.3: The selected t servers invoke the smart contract to upload the blinding factor and Pedersen commitment value from Step 4.2 to the consortium blockchain storage.
[0082] Step 5: The terminal device uses additive secret sharing to divide private data and completes the distribution of data fragments. The specific implementation includes the following sub-steps:
[0083] Step 5.1: Terminal device D i (i = 1, 2, ..., n) use addition secret sharing to share private data x i (i = 1, 2, ..., n) is divided into q data partitions, denoted as {x i1 ,x i2 ,…,x iq} Where n is the number of terminal devices participating in the data distribution of this task, q is the number of data fragments of private data in this task, and q is numerically equal to the number of servers t participating in this computing task;
[0084] Step 5.2: Terminal device D i (i = 1, 2, ..., n) use the corresponding server public key pk that participated in the calculation. j (j = 1, 2, ..., t) Encrypted data fragments {x i1 ,xi2 ,…,x iq}, thus obtaining the encrypted data fragment values.
[0085]
[0086] Step 5.3: Terminal device D i (i = 1, 2, ..., n) Randomly select q blinding factors r ij (j=1,2,…,q), calculate the Pedersen commitment value for each of the q data partitions. The calculation process is as follows: in, Data sharding x ij The Pedersen commitment value;
[0087] Step 5.4: Terminal device D i (i = 1, 2, ..., n) Accumulate q blinding factors to obtain a new blinding factor. The Pedersen commitment value for private data is calculated based on the new blinding factor. The calculation process is as follows: in, For private data x i The Pedersen commitment value;
[0088] Step 5.5: The terminal device calls the smart contract to upload the above-mentioned commitment value, blinding factor, and encrypted data fragments to the consortium blockchain storage.
[0089] Step 6: Server P participating in this computation task j (j = 1, 2, ..., t) Obtain encrypted data shards, blinding factors, and commitment values from the consortium blockchain, and verify the validity of the data shards. The specific implementation includes the following sub-steps:
[0090] Step 6.1: The server invokes the smart contract to obtain encrypted data shards, blinding factors, and commitment values from the consortium blockchain;
[0091] Step 6.2: The server uses its private key to decrypt the encrypted data fragments to obtain the original data fragments;
[0092] Step 6.3: Server P j (j = 1, 2, ..., t) Enable Pedersen commitments and verify the validity of data sharding by checking if the following equation holds: The validity of both equations indicates that the data fragmentation is valid.
[0093] Step 7: Server P participating in the computation j(j = 1, 2, ..., t) The data is partitioned and calculated according to the calculation function. The specific implementation includes the following sub-steps:
[0094] Step 7.1: For x in the calculation function m +x n In addition operations of this form, the server performs the operation x on the data fragments locally. mj +x nj j = 1, 2, ..., q;
[0095] Step 7.2: For the calculation function v*x m In constant multiplication operations of this form, the server performs the operation v*x locally on data fragments. mj j = 1, 2, ..., q;
[0096] Step 7.3: For x in the calculation function m *x n The multiplication operation is performed by the server using the multiplication ternary group fragmented data generated in step 4.1. The specific operation process is as follows: First, calculate d j =x mj -a j j = 1, 2, ..., q and e j =x nj -b j j = 1, 2, ..., q, then according to the formula and Reconstruct d and e, and finally calculate c. j +e*a j +d*b j +d*e,j=1,2,…,q;
[0097] Step 8: The servers participating in the computation call the smart contract to submit the output result shards for result verification. The specific implementation includes the following sub-steps:
[0098] Step 8.1: The servers participating in the computation use the public key of the terminal devices to encrypt the output fragment y after the final round of computation. j (j=1,2,…,q), obtain the fragmented output of the ciphertext state. Specifically, the output result is first divided into pieces y j Divide into 8 groups of 16 bits each, i.e., y j =v0+v1*2 16 +…+v7*2 112 Where v0, v1, ..., v7 are the 8 values after the output result is split into pieces, and then random numbers l1, l2, ..., l7 are randomly selected, and l0 = r - (l1 * 2) 16 +l2*2 32 +…+l7*2112 ), where r is the blinding factor corresponding to the Pedersen commitment value of the output fragment, l0, l1, ..., l7 are 8 random values selected in the Lifted ElGamal encryption scheme, and the random numbers l0, l1, ..., l7 and the public key pk of the terminal device are used. dev Lifted ElGamal encrypts v0, v1, ..., v7 respectively, yielding output fragments y. j ciphertext
[0099] Step 8.2: The server participating in the computation calls the smart contract and submits the encrypted output fragments.
[0100] Step 8.3: The smart contract obtains the commitment value data of the initial data shard from the consortium blockchain;
[0101] Step 8.4: The smart contract performs the same calculation on the commitment value data according to the calculation function in the computation task, and obtains the Pedersen commitment value Comm(y) corresponding to the output result shard. j ,r), specifically, for addition operations, with data x m +x n For example, the commitment value is calculated as follows: For multiplication operations, with data x m *x n For example, the commitment value is calculated as follows: In addition, the intermediate values d and e in the multiplication process also need to be verified: and Finally, we obtain the Pedersen commitment value Comm(y) corresponding to each output fragment. j ,r);
[0102] Step 8.5: The smart contract fragments the output of the encrypted state. Verify whether the original output fragments match the Pedersen commitment value; specifically, verify whether the following formula holds: If true, the verification is valid; otherwise, the verification is invalid.
[0103] Step 8.6: The smart contract updates the node scores of each server based on the validity of the verification results. Specifically, the server node scores... For server P i The total number of computational tasks executed honestly. For server P i The total number of computational tasks that exhibited malicious behavior, if server P i The submitted result failed to be verified. As the value increases, the trust score R i Reduce. If server P i If the submitted result is valid, then As the value increases, the trust score R i improve.
[0104] Step 9: The terminal device obtains the calculation results, which includes the following sub-steps:
[0105] Step 9.1: The terminal device calls the smart contract to retrieve the output fragments of all verified encrypted states from the consortium blockchain.
[0106] Step 9.2: The terminal device uses the private key sk dev Decryption output fragments Obtain the original output result fragment y j (j = 1, 2, ..., q);
[0107] Step 9.3: The terminal device reconstructs the calculation result using the reconstruction algorithm based on the addition secret sharing.
[0108] Table 1 Character Descriptions in this Embodiment
[0109]
[0110]
[0111] The above description is merely a preferred embodiment of the present invention, and the present invention should not be limited to the content disclosed in this embodiment and the accompanying drawings. Any equivalent or modified embodiments made without departing from the spirit of the present invention fall within the scope of protection of the present invention.
Claims
1. A method for defending against secure multi-party computation collusion attacks based on consortium blockchains, characterized in that: The method includes the following steps: S0, defining the consortium blockchain network, data owner, task requester, computation participants, and smart contract; S1, computation participants register and initialize; S2, the task requester calls the smart contract to publish a computation task; S3, the smart contract selects computation participant nodes based on the computation task information; S4, the selected computation participants generate preprocessed data; S5, the data owner uses an additive secret sharing mechanism to divide private data and distributes data shards; S6, computation participants obtain encrypted data shards, blinding factors, and commitment values from the consortium blockchain and verify the validity of the data shards; S7, computation participants perform calculations on the data shards according to a calculation function included in the computation task. S8, the computation participants call the smart contract to submit the output result fragments for result verification; and S9, the task requester uses the reconstruction algorithm with addition secret sharing to reconstruct the computation result.
2. The method for resisting secure multi-party computation collusion attacks based on consortium blockchains according to claim 1, characterized in that: In step S0, the consortium blockchain network refers to a blockchain network composed of participating nodes in secure multi-party computation, including endorsement nodes; the data owner refers to the holder of private data in secure multi-party computation; the task requester refers to the initiator of the secure multi-party computation task, who is also the holder of private data; the computation participant refers to the computation participant in secure multi-party computation, who possesses computing resources and is a node in the consortium blockchain network; the smart contract refers to a computer protocol that loads computation tasks, node score maintenance, verifiable random function verification, and secure multi-party computation result verification, and is executed by the endorsement nodes in the consortium blockchain network.
3. The method for resisting secure multi-party computation collusion attacks based on consortium blockchains according to claim 2, characterized in that: Step S1 includes: S1.1: The computing participants generate their own public and private keys locally, call the smart contract to upload the public key to the consortium blockchain storage, and complete the registration of the computing participants. Specifically, the computing participants can use the RSA key generation method to generate their own public and private keys locally. S1.2: The smart contract initializes the node scores of all registered computation participants to the same default value.
4. The method for resisting secure multi-party computation collusion attacks based on consortium blockchains according to claim 2, characterized in that: Step S2 includes: S2.1: The task requester and the data owner jointly negotiate the computation task, which includes the computation function, the number of computation participants, commitment value parameter information, and the public key of the task requester; S2.2: The task requester calls the smart contract interface to upload the computing task information and complete the publishing of the computing task.
5. The method for resisting secure multi-party computation collusion attacks based on consortium blockchains according to claim 2, characterized in that: Step S3 includes: S3.1: The computing participants locally use the public seed and their own private key as inputs to a verifiable random function to generate random numbers and proofs, wherein the public seed is the hash value of the latest block in the consortium blockchain; S3.2: The participating parties in the calculation will convert the generated random number into a decimal between 0 and 1; S3.3: The computing participant calls the smart contract to calculate its own weight score, which is calculated based on the node score of the computing participant; S3.4: The participating parties in the calculation complete the lottery locally based on the cryptographic lottery algorithm and obtain the lottery result; S3.5: The participating parties in the calculation call the smart contract to upload the lottery results, random numbers, and proof, and the smart contract verifies the lottery results; S3.6: After the smart contract verifies the lottery results of all computation participants, it selects the winner. The participant corresponding to the largest draw result is selected as the calculation participant, where... This represents the number of participants in this computation task.
6. The method for resisting secure multi-party computation collusion attacks based on consortium blockchains according to claim 2, characterized in that: Step S4 includes: S4.1: The computing participants run the SPDZ scheme multiplication triple generation algorithm locally to generate multiplication triple fragments; S4.2: The computational participants randomly select a blinding factor and calculate the Pedersen commitment value of the generated multiplicative ternary component piecewise; S4.3: The computational participant invokes the smart contract to upload the blinding factor and Pedersen commitment value to the consortium blockchain storage.
7. The method for resisting secure multi-party computation collusion attacks based on consortium blockchains according to claim 2, characterized in that: Step S5 includes: S5.1: The data owner uses additive secret sharing to divide the private data into... There are 10 data shards, among which... The number of data fragments for this task. Numerically, this corresponds to the number of participants in this computational task. equal; S5.2: The data owner uses the public key of the corresponding computing participant to encrypt the data fragments; S5.3: The data owner is randomly selected. Each blinding factor is calculated separately. The Pedersen commitment value for each data shard; S5.4: The data owner accumulates. A new blinding factor is obtained from the blinding factor, and the Pedersen commitment value of the private data is calculated based on the new blinding factor; S5.5: The data owner invokes the smart contract to upload all the aforementioned commitment values, blinding factors, and encrypted data fragments to the consortium blockchain storage.
8. The method for resisting secure multi-party computation collusion attacks based on consortium blockchains according to claim 2, characterized in that: Step S6 includes: S6.1: The computing participants invoke a smart contract to obtain encrypted data shards, blinding factors, and commitment values from the consortium blockchain; S6.2: The computing participants use their private keys to decrypt the encrypted data fragments to obtain the original data fragments; S6.3: The computation participants open the Pedersen commitment value to verify the validity of the data sharding.
9. The method for resisting secure multi-party computation collusion attacks based on consortium blockchains according to claim 6, characterized in that: Step S7 includes: S7.1: For addition operations in the calculation function, the calculation participants perform addition operations on the data fragments locally; S7.2: For constant multiplication operations in the computation function, the computation participants perform constant multiplication operations on the data fragments locally; S7.3: For multiplication operations in the calculation function, the calculation participants complete the multiplication operation using the multiplication ternary component data generated in step S4.
1.
10. The method for resisting secure multi-party computation collusion attacks based on consortium blockchains according to claim 2, characterized in that: Step S8 includes: S8.1: The computing participants use the public key of the task requester to encrypt the output result fragment after the last round of computing to obtain the ciphertext output result fragment; S8.2: The computing participant invokes the smart contract and submits the encrypted output result fragment; S8.3: The smart contract obtains the Pedersen commitment value information of the initial data shard from the blockchain; S8.4: The smart contract performs the same operation on the Pedersen commitment value information according to the calculation function in the calculation task to obtain the Pedersen commitment value corresponding to the output result shard; S8.5: The smart contract verifies whether the original output result fragment matches the Pedersen commitment value calculated in step 8.4 based on the fragmented output result of the encrypted state. S8.6: The smart contract updates the node scores of the participating parties based on the verification results.
11. The method for resisting secure multi-party computation collusion attacks based on consortium blockchains according to claim 2, characterized in that: Step S9 includes: S9.1: The task requester calls a smart contract to obtain the output fragments of all encrypted states after verification from the blockchain; S9.2: The task requester uses its private key to decrypt the output result fragments; S9.3: The task requester uses the addition secret sharing reconstruction algorithm to reconstruct the calculation result.
Citation Information
Patent Citations
Safety calculation method and device, node and storage medium
CN112527898A
Secure multi-party computing method, apparatus, system, and storage medium
WO2021083179A1