A data processing method and system

By acquiring and processing the promise information generated by the data party, and combining the update results of the ciphertext information, the sharding results are determined, which solves the problem of difficult to balance the communication burden and expansion in secure multi-party computing, and realizes efficient computing and communication.

CN113761558BActive Publication Date: 2025-03-21LENOVO (BEIJING) LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202111047819.X
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-09-08
Publication Date
2025-03-21
Estimated Expiration
2041-09-08

AI Technical Summary

Technical Problem

In secure multi-party computing, it is difficult for the existing technology to find a balance between how to reduce the communication burden and improve scalability.

Method used

By obtaining the promise information generated by the data party based on the shard data, using the computing party's public key to encrypt the ciphertext information, the update result of the ciphertext information is determined, and the shard result is determined based on the update result and the promise information.

Benefits of technology

This method can flexibly determine the sharding result based on the update result, reduce the calculation amount, reduce the communication burden, and improve the expansion of the system.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN113761558B_ABST
    Figure CN113761558B_ABST
Patent Text Reader

Abstract

The present disclosure discloses a data processing method and system, which is applied to a computing party, and the method includes: obtaining commitment information generated by a data party based on shard data, wherein the shard data is shard data obtained by the data party by sharding the data, and the commitment information at least includes ciphertext information after the shard data is encrypted using the computing party's public key; determining an update result of the ciphertext information; and determining a shard result based on the update result and the commitment information. The present disclosure can flexibly determine the shard result according to the update result, thereby effectively reducing the amount of calculation.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to the field of electronic technology, and in particular to a data processing method and system. Background Art

[0002] Secure Multi-Party Computation (MPC) addresses the problem of enabling two or more users in a mutually distrusted multi-user network to collaboratively perform a computation without disclosing their private input information. Currently, mainstream general-purpose computational models for secure multi-party computation include those based on obfuscated circuits and those based on secret sharing.

[0003] Among them, protocols based on garbled circuits are more suitable for two-party logical operations and have a lower communication burden, but their scalability is poor. Secure multi-party computation based on secret sharing, on the other hand, is more scalable, supports unlimited participation of multiple parties, and has high computational efficiency, but it also carries a higher communication burden.

[0004] Therefore, in secure multi-party computing, how to reduce the communication burden and improve scalability is an urgent problem to be solved. Summary of the Invention

[0005] In view of this, the present disclosure provides the following technical solutions:

[0006] A data processing method, applied to a computing side, comprising:

[0007] Obtaining commitment information generated by the data party based on the sharded data, wherein the sharded data is sharded data obtained by the data party by sharding the data, and the commitment information at least includes ciphertext information obtained by encrypting the sharded data using the computing party's public key;

[0008] Determining an update result of the ciphertext information;

[0009] A sharding result is determined based on the update result and the commitment information.

[0010] Preferably, determining the sharding result based on the update result and the commitment information includes:

[0011] Determining that the update result is that the ciphertext information has been updated relative to the ciphertext information received in the previous round;

[0012] Decrypt the ciphertext information using the private key to obtain the plaintext fragment data;

[0013] Verify the data party's commitment to the shard data based on the plaintext shard data;

[0014] Determine whether the number of data parties' commitment verifications for sharded data meets the preset value, process the sharded data, and obtain the sharding result.

[0015] Preferably, determining the sharding result based on the update result and the commitment information includes:

[0016] Determining that the update result is that the ciphertext information is the same as the ciphertext information received in the previous round;

[0017] The sharding result determined in the previous round is determined as the sharding result.

[0018] Preferably, after determining the sharding result based on the update result and the commitment information, the method further includes:

[0019] The fragmentation result is sent.

[0020] Preferably, the data acquiring party generates commitment information based on the sharded data, wherein the sharded data is sharded data obtained by the data acquiring party through data sharding, and the commitment information at least includes ciphertext information obtained by encrypting the sharded data using the computing party's public key, including:

[0021] Obtain from the blockchain the commitment information generated based on the sharded data uploaded by the data party to the blockchain, wherein the sharded data is the sharded data obtained by the data party by sharding the data, and the commitment information includes the ciphertext information after the sharded data is encrypted using the public key of the computing party.

[0022] Preferably, the data acquiring party generates commitment information based on the sharded data, wherein the sharded data is sharded data obtained by the data acquiring party through data sharding, and the commitment information at least includes ciphertext information obtained by encrypting the sharded data using the computing party's public key, including:

[0023] Obtain commitment information generated based on sharded data and sent by the data party, wherein the sharded data is sharded data obtained by the data party by sharding the data, and the commitment information includes ciphertext information after the sharded data is encrypted using the computing party's public key.

[0024] A data processing method, applied to a data entity, comprising:

[0025] Shard the data to obtain shard data;

[0026] Generate commitment information based on the shard data, wherein the commitment information at least includes ciphertext information obtained by encrypting the shard data using the computing party's public key;

[0027] The commitment information is transmitted so that the computing party determines an update result of the ciphertext information based on the commitment information, and determines a sharding result based on the update result and the commitment information.

[0028] Preferably, the transmitting the commitment information includes:

[0029] The commitment information is uploaded to the blockchain so that the computing party can obtain the commitment information from the blockchain.

[0030] A data processing system, applied to a computing device, comprising:

[0031] an acquisition module, configured to acquire commitment information generated by the data party based on the sharded data, wherein the sharded data is sharded data obtained by the data party by sharding the data, and the commitment information at least includes ciphertext information obtained by encrypting the sharded data using the computing party's public key;

[0032] A first determining module, configured to determine an update result of the ciphertext information;

[0033] The second determination module is used to determine the sharding result based on the update result and the commitment information.

[0034] A data processing system, applied to a data entity, comprising:

[0035] Sharding module, used to shard data to obtain shard data;

[0036] A generation module, configured to generate commitment information based on the shard data, wherein the commitment information at least includes ciphertext information obtained by encrypting the shard data using the computing party's public key;

[0037] A transmission module is used to transmit the commitment information so that the computing party determines the update result of the ciphertext information based on the commitment information, and determines the sharding result based on the update result and the commitment information.

[0038] As can be seen from the above technical solution, the data processing method disclosed in this disclosure is applied to the computing party. First, the data party obtains the commitment information generated by the data party based on the sharded data, wherein the sharded data is the sharded data obtained by the data party through data sharding, and the commitment information includes at least ciphertext information obtained by encrypting the sharded data using the computing party's public key; then, the update result of the ciphertext information is determined, and the sharding result is determined based on the update result and the commitment information. The present disclosure can flexibly determine the sharding result based on the update result, thereby effectively reducing the amount of computation. BRIEF DESCRIPTION OF THE DRAWINGS

[0039] In order to more clearly illustrate the embodiments of the present disclosure or the technical solutions in the prior art, the following briefly introduces the drawings required for use in the embodiments or the description of the prior art. Obviously, the drawings described below are only embodiments of the present disclosure. For ordinary technicians in this field, other drawings can be obtained based on the provided drawings without paying any creative work.

[0040] Figure 1 This is a method flow chart of a data processing method embodiment 1 disclosed in the present disclosure;

[0041] Figure 2 This is a method flow chart of embodiment 2 of a data processing method disclosed in the present disclosure;

[0042] Figure 3 This is a method flow chart of Embodiment 3 of a data processing method disclosed in the present disclosure;

[0043] Figure 4 This is a method flow chart of Example 4 of a data processing method disclosed in the present disclosure;

[0044] Figure 5 This is a method flow chart of Example 5 of a data processing method disclosed in the present disclosure;

[0045] Figure 6 This is a structural diagram of a data processing system embodiment 1 disclosed in the present disclosure;

[0046] Figure 7 This is a structural diagram of a data processing system embodiment 2 disclosed in the present disclosure;

[0047] Figure 8 This is a structural diagram of a data processing system embodiment 3 disclosed in the present disclosure;

[0048] Figure 9 This is a structural diagram of a data processing system embodiment 4 disclosed in the present disclosure;

[0049] Figure 10 This is a structural diagram of a data processing system embodiment 5 disclosed in the present invention. DETAILED DESCRIPTION

[0050] The following will be combined with the drawings in the embodiments of the present disclosure to clearly and completely describe the technical solutions in the embodiments of the present disclosure. Obviously, the described embodiments are only a part of the embodiments of the present disclosure, rather than all of the embodiments. Based on the embodiments in the present disclosure, all other embodiments obtained by ordinary technicians in this field without making creative work are within the scope of protection of the present disclosure. The following will be combined with the drawings in the embodiments of the present disclosure to clearly and completely describe the technical solutions in the embodiments of the present disclosure. Obviously, the described embodiments are only a part of the embodiments of the present disclosure, rather than all of the embodiments. Based on the embodiments in the present disclosure, all other embodiments obtained by ordinary technicians in this field without making creative work are within the scope of protection of the present disclosure.

[0051] like Figure 1 FIG. 1 is a flow chart of a method for data processing according to an embodiment 1 of the present disclosure. The method is applied to a computing side and may include the following steps:

[0052] S101. Obtain commitment information generated by the data party based on sharded data, where the sharded data is sharded data obtained by the data party through data sharding, and the commitment information at least includes ciphertext information obtained by encrypting the sharded data using the computing party's public key;

[0053] When the computing party wants to process data, it first obtains commitment information. Commitment information is generated by the data party after first sharding the data to obtain shard data. It includes: a value calculated based on the shard data, ciphertext information obtained by encrypting the shard data using the computing party's public key, and proof information generated using the shard data. The computing party's public key is the public key negotiated between the computing party and the data party.

[0054] For example, there are three data parties: data party A, data party B, and data party C. Data party A owns data with an asset value of 10, data party B owns data with an asset value of 20, and data party C owns data with an asset value of 30. Data party A, data party B, and data party C can call the VCSS (Vector Commitment Secret Share) algorithm and use the Lagrange equation to shard their respective data. For example, data party A splits data 10 into {f(1), f(2), f(3), f(4)}, data party B splits data 20 into {g(1), g(2), g(3), g(4)}, and data party C splits data 30 into {y(1), y(2), y(3), y(4)}. Then, each data party generates corresponding commitment information based on the generated sharded data.

[0055] S102, determining the update result of the ciphertext information;

[0056] After obtaining the commitment information, the update result is further determined based on the ciphertext information included in the commitment information, that is, whether the computing party is the updated computing party is determined based on the ciphertext information.

[0057] S103. Determine the sharding result based on the update result and the commitment information.

[0058] Then, the sharding result is further determined based on the determined update result and the obtained commitment information. That is, the corresponding sharding result is determined based on different update results and the commitment information.

[0059] In summary, in the above embodiment, the data party first obtains commitment information generated based on the sharded data, where the sharded data is the sharded data obtained by the data party through data sharding, and the commitment information includes at least ciphertext information obtained by encrypting the sharded data using the computing party's public key. Then, the update result of the ciphertext information is determined, and the sharding result is determined based on the update result and the commitment information. The sharding result can be flexibly determined based on the update result, thereby effectively reducing the amount of computation.

[0060] In one implementation, the step S101 of obtaining the commitment information generated by the data party based on the sharded data can be implemented in the following manner:

[0061] Obtain from the blockchain the commitment information generated based on the sharded data uploaded by the data party to the blockchain, wherein the sharded data is the sharded data obtained by the data party by sharding the data, and the commitment information at least includes the ciphertext information after the sharded data is encrypted using the public key of the computing party.

[0062] Specifically, the data provider first shards the data to obtain sharded data, then generates commitment information based on the sharded data. This commitment information is then uploaded to the blockchain. The computation provider then retrieves the commitment information uploaded by the data provider from the blockchain. By having the data provider upload the commitment information to the blockchain, the communication traffic between the data provider and the computation provider is effectively reduced.

[0063] For example, the data parties include data party A, data party B, and data party C. Data party A owns data with an asset value of 10, data party B owns data with an asset value of 20, and data party C owns data with an asset value of 30. Data party A, data party B, and data party C can call the VCSS (Vector Commitment Secret Share) algorithm and use the Lagrange equation to shard the data they each own. For example, data party A splits data 10 into {f(1), f(2), f(3), f(4)}, data party B splits data 20 into {g(1), g(2), g(3), g(4)}, and data party C splits data 30 into {y(1), y(2), y(3), y(4)}. Then, each data party generates corresponding commitment information based on the generated sharded data and uploads the generated commitment information to the blockchain. Then, the computing party queries the commitment information uploaded by the data party from the blockchain. The commitment information at least includes the ciphertext information obtained by encrypting the shard data using the computing party's public key, where the computing party's public key is the public key negotiated between the computing party and the data party after key negotiation.

[0064] In one implementation, the step S101 of obtaining the commitment information generated by the data party based on the sharded data can be implemented in the following manner:

[0065] Obtain the commitment information generated based on the sharded data sent by the data party, wherein the sharded data is the sharded data obtained by the data party by sharding the data, and the commitment information at least includes the ciphertext information after the sharded data is encrypted using the public key of the computing party.

[0066] That is, the data party first shards the data to obtain shard data, then generates commitment information based on the obtained shard data, and then sends the generated commitment information to the calculation party, and the calculation party receives the commitment information sent by the data party.

[0067] For example, the data parties include data party A, data party B, and data party C. Data party A owns data with an asset value of 10, data party B owns data with an asset value of 20, and data party C owns data with an asset value of 30. Data party A, data party B, and data party C can call the VCSS (Vector Commitment Secret Share) algorithm and use the Lagrange equation to shard the data they each own. For example, data party A splits data 10 into {f(1), f(2), f(3), f(4)}, data party B splits data 20 into {g(1), g(2), g(3), g(4)}, and data party C splits data 30 into {y(1), y(2), y(3), y(4)}. Then, each data party generates corresponding commitment information based on the generated sharded data and sends the generated commitment information to the computing party, which receives the commitment information sent by the data party. The commitment information at least includes the ciphertext information obtained by encrypting the shard data using the computing party's public key, where the computing party's public key is the public key negotiated between the computing party and the data party after key negotiation.

[0068] Based on the above embodiments, Figure 2 FIG. 1 is a flow chart of a method for data processing according to Embodiment 2 of the present disclosure. The method is applied to a computing side and may include the following steps:

[0069] S201. Obtain commitment information generated by the data party based on the sharded data, where the sharded data is sharded data obtained by the data party through data sharding, and the commitment information at least includes ciphertext information obtained by encrypting the sharded data using the computing party's public key;

[0070] When the computing party wants to process data, it first obtains commitment information. Commitment information is generated by the data party after first sharding the data to obtain shard data. It includes: a value calculated based on the shard data, ciphertext information obtained by encrypting the shard data using the computing party's public key, and proof information generated using the shard data. The computing party's public key is the public key negotiated between the computing party and the data party.

[0071] For example, there are three data parties: data party A, data party B, and data party C. Data party A owns data with an asset value of 10, data party B owns data with an asset value of 20, and data party C owns data with an asset value of 30. Data party A, data party B, and data party C can call the VCSS (Vector Commitment Secret Share) algorithm and use the Lagrange equation to shard their respective data. For example, data party A splits data 10 into {f(1), f(2), f(3), f(4)}, data party B splits data 20 into {g(1), g(2), g(3), g(4)}, and data party C splits data 30 into {y(1), y(2), y(3), y(4)}. Then, each data party generates corresponding commitment information based on the generated sharded data.

[0072] S202, determining the update result of the ciphertext information;

[0073] After obtaining the commitment information, the update result is further determined based on the ciphertext information included in the commitment information, that is, whether the computing party is the updated computing party is determined based on the ciphertext information.

[0074] S203, determining that the update result is that the ciphertext information has been updated relative to the ciphertext information received in the previous round;

[0075] For example, if original computer P2 leaves the network due to network or other reasons, and computer P5 joins as the new computer, while the remaining computers P1, P3, and P4 remain unchanged, the ciphertext information in the commitment information received by computers P1, P3, and P4 remains unchanged from the ciphertext information in the previous round of commitment information, while the ciphertext information in the commitment information received by computer P5 is updated compared to the previous round of commitment information.

[0076] S204. Decrypt the ciphertext information using the private key to obtain the plaintext fragment data;

[0077] When the update result is determined to be an update of the ciphertext information relative to the ciphertext information received in the previous round, the ciphertext information in the received commitment information is further decrypted using the private key to obtain the plaintext shard data. The computing party's private key is the private key negotiated between the computing party and the data party.

[0078] S205. Verify the data party's commitment to the shard data based on the plaintext shard data.

[0079] Then, the data party’s commitment to the shard data is verified based on the obtained plaintext shard data. For example, if the verification is successful, 1 is output, otherwise 0 is output.

[0080] S206: Determine whether the number of shard data commitment verifications passed by the data party meets a preset value, process the shard data, and obtain a shard result.

[0081] When the number of shard data commitments verified by the data party meets the preset value, for example, when the number of output 1s meets the preset value, the shard data is further processed to obtain the shard result. For example, the computing party performs the computing shard operation f(5)+g(5)+y(5)=z5.

[0082] In summary, based on the above embodiments, this embodiment supports the operation of updating the calculation party. When the calculation party is updated, it is only necessary to recalculate the shards for the updated calculation party, which reduces the amount of data calculation.

[0083] Based on the above embodiments, Figure 3 FIG. 1 is a flow chart of a method for data processing embodiment 3 disclosed in the present disclosure. The method is applied to a computing side and may include the following steps:

[0084] S301. Obtain commitment information generated by the data party based on the sharded data, where the sharded data is sharded data obtained by the data party by sharding the data, and the commitment information includes at least ciphertext information obtained by encrypting the sharded data using the computing party's public key;

[0085] When the computing party wants to process data, it first obtains commitment information. Commitment information is generated by the data party after first sharding the data to obtain shard data. It includes: a value calculated based on the shard data, ciphertext information obtained by encrypting the shard data using the computing party's public key, and proof information generated using the shard data. The computing party's public key is the public key negotiated between the computing party and the data party.

[0086] For example, there are three data parties: data party A, data party B, and data party C. Data party A owns data with an asset value of 10, data party B owns data with an asset value of 20, and data party C owns data with an asset value of 30. Data party A, data party B, and data party C can call the VCSS (Vector Commitment Secret Share) algorithm and use the Lagrange equation to shard their respective data. For example, data party A splits data 10 into {f(1), f(2), f(3), f(4)}, data party B splits data 20 into {g(1), g(2), g(3), g(4)}, and data party C splits data 30 into {y(1), y(2), y(3), y(4)}. Then, each data party generates corresponding commitment information based on the generated sharded data.

[0087] S302, determining the update result of the ciphertext information;

[0088] After obtaining the commitment information, the update result is further determined based on the ciphertext information included in the commitment information, that is, whether the computing party is the updated computing party is determined based on the ciphertext information.

[0089] S303: Determine that the updated result is that the ciphertext information is the same as the ciphertext information received in the previous round;

[0090] For example, if original computer P2 leaves the network due to network or other reasons, and computer P5 joins as the new computer, while the remaining computers P1, P3, and P4 remain unchanged, the ciphertext information in the commitment information received by computers P1, P3, and P4 remains unchanged from the ciphertext information in the previous round of commitment information, while the ciphertext information in the commitment information received by computer P5 is updated compared to the previous round of commitment information.

[0091] S304: Determine the sharding result determined in the previous round as the sharding result.

[0092] When the determined update result is that the ciphertext information is the same as the ciphertext information received in the previous round, there is no need to calculate the sharding result again, and the sharding result determined in the previous round can be directly reused. For example, computing party P1 can directly reuse the sharding result f(1)+g(1)+y(1)=z1 from the previous round, computing party P3 can directly reuse the sharding result f(3)+g(3)+y(3)=z3 from the previous round, and computing party P4 can directly reuse the sharding result f(4)+g(4)+y(4)=z4 from the previous round.

[0093] In summary, based on the above embodiments, this embodiment can reuse the previous shard data when the calculation party is not updated, effectively reducing the amount of data calculation.

[0094] Based on the above embodiments, Figure 4 FIG. 4 is a flow chart of a method for data processing according to an embodiment of the present disclosure. The method is applied to a computing side and may include the following steps:

[0095] S401. Obtain commitment information generated by the data party based on the sharded data, where the sharded data is sharded data obtained by the data party by sharding the data, and the commitment information includes at least ciphertext information obtained by encrypting the sharded data using the computing party's public key;

[0096] When the computing party wants to process data, it first obtains commitment information. Commitment information is generated by the data party after first sharding the data to obtain shard data. It includes: a value calculated based on the shard data, ciphertext information obtained by encrypting the shard data using the computing party's public key, and proof information generated using the shard data. The computing party's public key is the public key negotiated between the computing party and the data party.

[0097] For example, there are three data parties: data party A, data party B, and data party C. Data party A owns data with an asset value of 10, data party B owns data with an asset value of 20, and data party C owns data with an asset value of 30. Data party A, data party B, and data party C can call the VCSS (Vector Commitment Secret Share) algorithm and use the Lagrange equation to shard their respective data. For example, data party A splits data 10 into {f(1), f(2), f(3), f(4)}, data party B splits data 20 into {g(1), g(2), g(3), g(4)}, and data party C splits data 30 into {y(1), y(2), y(3), y(4)}. Then, each data party generates corresponding commitment information based on the generated sharded data.

[0098] S402, determining the update result of the ciphertext information;

[0099] After obtaining the commitment information, the update result is further determined based on the ciphertext information included in the commitment information, that is, whether the computing party is the updated computing party is determined based on the ciphertext information.

[0100] S403: Determine the sharding result based on the update result and the commitment information;

[0101] Then, the sharding result is further determined based on the determined update result and the obtained commitment information. That is, the corresponding sharding result is determined based on different update results and the commitment information.

[0102] S404: Send the fragmentation result.

[0103] After the sharding results are determined, they can be further sent to a trusted third party. When the trusted third party receives enough sharding results, the final calculation results are restored according to the Lagrangian recovery algorithm.

[0104] After determining the sharding results, the sharding results can be further sent to other computing parties. When other computing parties receive enough sharding results, they restore the final calculation results according to the Lagrangian recovery algorithm.

[0105] It should be noted that when the computing party sends the sharding results, it can upload the sharding results to the blockchain, and the trusted third party or other computing party can obtain the sharding results from the blockchain.

[0106] In summary, based on the above embodiments, this embodiment can further send fragmentation results, and further restore the final calculation result through the sent fragmentation results.

[0107] like Figure 5 FIG. 5 is a flow chart of a method for data processing according to Embodiment 5 of the present disclosure. The method is applied to a data source and may include the following steps:

[0108] S501, sharding the data to obtain sharded data;

[0109] When the data party needs to process the data, it first shards the data to obtain sharded data.

[0110] For example, there are three data entities: data entity A, data entity B, and data entity C. Data entity A owns data with an asset value of 10, data entity B owns data with an asset value of 20, and data entity C owns data with an asset value of 30. Data entities A, B, and C can call the VCSS (Vector Commitment Secret Share) algorithm and use the Lagrange equation to shard their respective data. For example, data entity A splits data 10 into {f(1), f(2), f(3), f(4)}, data entity B splits data 20 into {g(1), g(2), g(3), g(4)}, and data entity C splits data 30 into {y(1), y(2), y(3), y(4)}.

[0111] S502: Generate commitment information based on the shard data, where the commitment information at least includes ciphertext information obtained by encrypting the shard data using the computing party's public key.

[0112] Each data party then generates corresponding commitment information based on the generated shard data. The commitment information includes: a value calculated based on the shard data, ciphertext information obtained by encrypting the shard data using the computing party's public key, and proof information generated using the shard data. The computing party's public key is the public key negotiated between the computing method and the data party.

[0113] S503. Transmit the commitment information so that the computing party determines the update result of the ciphertext information based on the commitment information, and determines the sharding result based on the update result and the commitment information.

[0114] The commitment information is then transmitted. After receiving the commitment information, the computing party further determines the update result based on the ciphertext information included in the commitment information. Specifically, the ciphertext information determines whether the computing party is the updated computing party. The sharding result is then determined based on the determined update result and the obtained commitment information. Specifically, the corresponding sharding result is determined based on the different update results and the commitment information.

[0115] In one implementation, the transmission of the commitment information in step S503 may be implemented in the following manner:

[0116] Upload the commitment information to the blockchain so that the computing party can obtain the commitment information from the blockchain.

[0117] Specifically, the data provider first shards the data to obtain sharded data, then generates commitment information based on the sharded data. This commitment information is then uploaded to the blockchain. The computation provider then retrieves the commitment information uploaded by the data provider from the blockchain. By having the data provider upload the commitment information to the blockchain, the communication traffic between the data provider and the computation provider is effectively reduced.

[0118] like Figure 6 FIG. 1 is a schematic diagram of a data processing system according to an embodiment 1 of the present disclosure. The system is applied to a computing side and may include:

[0119] An acquisition module 601 is configured to acquire commitment information generated by the data party based on the sharded data, wherein the sharded data is sharded data obtained by the data party through data sharding, and the commitment information includes at least ciphertext information obtained by encrypting the sharded data using the computing party's public key;

[0120] When the computing party wants to process data, it first obtains commitment information. Commitment information is generated by the data party after first sharding the data to obtain shard data. It includes: a value calculated based on the shard data, ciphertext information obtained by encrypting the shard data using the computing party's public key, and proof information generated using the shard data. The computing party's public key is the public key negotiated between the computing party and the data party.

[0121] For example, there are three data parties: data party A, data party B, and data party C. Data party A owns data with an asset value of 10, data party B owns data with an asset value of 20, and data party C owns data with an asset value of 30. Data party A, data party B, and data party C can call the VCSS (Vector Commitment Secret Share) algorithm and use the Lagrange equation to shard their respective data. For example, data party A splits data 10 into {f(1), f(2), f(3), f(4)}, data party B splits data 20 into {g(1), g(2), g(3), g(4)}, and data party C splits data 30 into {y(1), y(2), y(3), y(4)}. Then, each data party generates corresponding commitment information based on the generated sharded data.

[0122] A first determining module 602 is used to determine the update result of the ciphertext information;

[0123] After obtaining the commitment information, the update result is further determined based on the ciphertext information included in the commitment information, that is, whether the computing party is the updated computing party is determined based on the ciphertext information.

[0124] The second determination module 603 is used to determine the sharding result based on the update result and the commitment information.

[0125] Then, the sharding result is further determined based on the determined update result and the obtained commitment information. That is, the corresponding sharding result is determined based on different update results and the commitment information.

[0126] In summary, in the above embodiment, the data party first obtains commitment information generated based on the sharded data, where the sharded data is the sharded data obtained by the data party through data sharding, and the commitment information includes at least ciphertext information obtained by encrypting the sharded data using the computing party's public key. Then, the update result of the ciphertext information is determined, and the sharding result is determined based on the update result and the commitment information. The sharding result can be flexibly determined based on the update result, thereby effectively reducing the amount of computation.

[0127] In one implementation, the acquisition module 601 may obtain the commitment information generated by the data provider based on the sharded data in the following manner:

[0128] Obtain from the blockchain the commitment information generated based on the sharded data uploaded by the data party to the blockchain, wherein the sharded data is the sharded data obtained by the data party by sharding the data, and the commitment information at least includes the ciphertext information after the sharded data is encrypted using the public key of the computing party.

[0129] Specifically, the data provider first shards the data to obtain sharded data, then generates commitment information based on the sharded data. This commitment information is then uploaded to the blockchain. The computation provider then retrieves the commitment information uploaded by the data provider from the blockchain. By having the data provider upload the commitment information to the blockchain, the communication traffic between the data provider and the computation provider is effectively reduced.

[0130] For example, the data parties include data party A, data party B, and data party C. Data party A owns data with an asset value of 10, data party B owns data with an asset value of 20, and data party C owns data with an asset value of 30. Data party A, data party B, and data party C can call the VCSS (Vector Commitment Secret Share) algorithm and use the Lagrange equation to shard the data they each own. For example, data party A splits data 10 into {f(1), f(2), f(3), f(4)}, data party B splits data 20 into {g(1), g(2), g(3), g(4)}, and data party C splits data 30 into {y(1), y(2), y(3), y(4)}. Then, each data party generates corresponding commitment information based on the generated sharded data and uploads the generated commitment information to the blockchain. Then, the computing party queries the commitment information uploaded by the data party from the blockchain. The commitment information at least includes the ciphertext information obtained by encrypting the shard data using the computing party's public key, where the computing party's public key is the public key negotiated between the computing party and the data party after key negotiation.

[0131] In one implementation, the acquisition module 601 may obtain the commitment information generated by the data provider based on the sharded data in the following manner:

[0132] Obtain the commitment information generated based on the sharded data sent by the data party, wherein the sharded data is the sharded data obtained by the data party by sharding the data, and the commitment information at least includes the ciphertext information after the sharded data is encrypted using the public key of the computing party.

[0133] That is, the data party first shards the data to obtain shard data, then generates commitment information based on the obtained shard data, and then sends the generated commitment information to the calculation party, and the calculation party receives the commitment information sent by the data party.

[0134] For example, the data parties include data party A, data party B, and data party C. Data party A owns data with an asset value of 10, data party B owns data with an asset value of 20, and data party C owns data with an asset value of 30. Data party A, data party B, and data party C can call the VCSS (Vector Commitment Secret Share) algorithm and use the Lagrange equation to shard the data they each own. For example, data party A splits data 10 into {f(1), f(2), f(3), f(4)}, data party B splits data 20 into {g(1), g(2), g(3), g(4)}, and data party C splits data 30 into {y(1), y(2), y(3), y(4)}. Then, each data party generates corresponding commitment information based on the generated sharded data and sends the generated commitment information to the computing party, which receives the commitment information sent by the data party. The commitment information at least includes the ciphertext information obtained by encrypting the shard data using the computing party's public key, where the computing party's public key is the public key negotiated between the computing party and the data party after key negotiation.

[0135] Based on the above embodiments, Figure 7 FIG. 1 is a schematic diagram of a structure of a data processing system embodiment 2 disclosed in the present disclosure, wherein the system is applied to a computing side and may include:

[0136] An acquisition module 701 is configured to acquire commitment information generated by the data party based on the sharded data, wherein the sharded data is sharded data obtained by the data party through data sharding, and the commitment information includes at least ciphertext information obtained by encrypting the sharded data using the computing party's public key;

[0137] When the computing party wants to process data, it first obtains commitment information. Commitment information is generated by the data party after first sharding the data to obtain shard data. It includes: a value calculated based on the shard data, ciphertext information obtained by encrypting the shard data using the computing party's public key, and proof information generated using the shard data. The computing party's public key is the public key negotiated between the computing party and the data party.

[0138] For example, there are three data parties: data party A, data party B, and data party C. Data party A owns data with an asset value of 10, data party B owns data with an asset value of 20, and data party C owns data with an asset value of 30. Data party A, data party B, and data party C can call the VCSS (Vector Commitment Secret Share) algorithm and use the Lagrange equation to shard their respective data. For example, data party A splits data 10 into {f(1), f(2), f(3), f(4)}, data party B splits data 20 into {g(1), g(2), g(3), g(4)}, and data party C splits data 30 into {y(1), y(2), y(3), y(4)}. Then, each data party generates corresponding commitment information based on the generated sharded data.

[0139] A first determining module 702 is used to determine the update result of the ciphertext information;

[0140] After obtaining the commitment information, the update result is further determined based on the ciphertext information included in the commitment information, that is, whether the computing party is the updated computing party is determined based on the ciphertext information.

[0141] A first determining unit 703 is configured to determine that the update result is that the ciphertext information has been updated relative to the ciphertext information received in the previous round;

[0142] For example, if original computer P2 leaves the network due to network or other reasons, and computer P5 joins as the new computer, while the remaining computers P1, P3, and P4 remain unchanged, the ciphertext information in the commitment information received by computers P1, P3, and P4 remains unchanged from the ciphertext information in the previous round of commitment information, while the ciphertext information in the commitment information received by computer P5 is updated compared to the previous round of commitment information.

[0143] Decryption unit 704, used to decrypt the ciphertext information using the private key to obtain the plaintext fragment data;

[0144] When the update result is determined to be an update of the ciphertext information relative to the ciphertext information received in the previous round, the ciphertext information in the received commitment information is further decrypted using the private key to obtain the plaintext shard data. The computing party's private key is the private key negotiated between the computing party and the data party.

[0145] Verification unit 705, for verifying the data party's commitment to the shard data based on the plaintext shard data;

[0146] Then, the data party’s commitment to the shard data is verified based on the obtained plaintext shard data. For example, if the verification is successful, 1 is output, otherwise 0 is output.

[0147] The processing unit 706 is used to determine whether the number of data parties' commitment verifications on the sharded data meets a preset value, process the sharded data, and obtain a sharding result.

[0148] When the number of shard data commitments verified by the data party meets the preset value, for example, when the number of output 1s meets the preset value, the shard data is further processed to obtain the shard result. For example, the computing party performs the computing shard operation f(5)+g(5)+y(5)=z5.

[0149] In summary, based on the above embodiments, this embodiment supports the operation of updating the calculation party. When the calculation party is updated, it is only necessary to recalculate the shards for the updated calculation party, which reduces the amount of data calculation.

[0150] Based on the above embodiments, Figure 8 FIG. 1 is a schematic diagram of a structure of a data processing system embodiment 3 disclosed in the present disclosure, wherein the system is applied to a computing side and may include:

[0151] An acquisition module 801 is configured to acquire commitment information generated by the data party based on the sharded data, wherein the sharded data is sharded data obtained by the data party through data sharding, and the commitment information includes at least ciphertext information obtained by encrypting the sharded data using the computing party's public key;

[0152] When the computing party wants to process data, it first obtains commitment information. Commitment information is generated by the data party after first sharding the data to obtain shard data. It includes: a value calculated based on the shard data, ciphertext information obtained by encrypting the shard data using the computing party's public key, and proof information generated using the shard data. The computing party's public key is the public key negotiated between the computing party and the data party.

[0153] For example, there are three data parties: data party A, data party B, and data party C. Data party A owns data with an asset value of 10, data party B owns data with an asset value of 20, and data party C owns data with an asset value of 30. Data party A, data party B, and data party C can call the VCSS (Vector Commitment Secret Share) algorithm and use the Lagrange equation to shard their respective data. For example, data party A splits data 10 into {f(1), f(2), f(3), f(4)}, data party B splits data 20 into {g(1), g(2), g(3), g(4)}, and data party C splits data 30 into {y(1), y(2), y(3), y(4)}. Then, each data party generates corresponding commitment information based on the generated sharded data.

[0154] A first determining module 802 is used to determine the update result of the ciphertext information;

[0155] After obtaining the commitment information, the update result is further determined based on the ciphertext information included in the commitment information, that is, whether the computing party is the updated computing party is determined based on the ciphertext information.

[0156] The second determining unit 803 is configured to determine whether the updated ciphertext information is the same as the ciphertext information received in the previous round;

[0157] For example, if original computer P2 leaves the network due to network or other reasons, and computer P5 joins as the new computer, while the remaining computers P1, P3, and P4 remain unchanged, the ciphertext information in the commitment information received by computers P1, P3, and P4 remains unchanged from the ciphertext information in the previous round of commitment information, while the ciphertext information in the commitment information received by computer P5 is updated compared to the previous round of commitment information.

[0158] The third determining unit 804 is configured to determine the fragmentation result determined in the previous round as the fragmentation result.

[0159] When the determined update result is that the ciphertext information is the same as the ciphertext information received in the previous round, there is no need to calculate the sharding result again, and the sharding result determined in the previous round can be directly reused. For example, computing party P1 can directly reuse the sharding result f(1)+g(1)+y(1)=z1 from the previous round, computing party P3 can directly reuse the sharding result f(3)+g(3)+y(3)=z3 from the previous round, and computing party P4 can directly reuse the sharding result f(4)+g(4)+y(4)=z4 from the previous round.

[0160] In summary, based on the above embodiments, this embodiment can reuse the previous shard data when the calculation party is not updated, effectively reducing the amount of data calculation.

[0161] Based on the above embodiments, Figure 9 FIG. 1 is a schematic diagram of a structure of a data processing system embodiment 4 disclosed in the present disclosure, wherein the system is applied to a computing side and may include:

[0162] An acquisition module 901 is configured to acquire commitment information generated by the data party based on the sharded data, wherein the sharded data is sharded data obtained by the data party through data sharding, and the commitment information includes at least ciphertext information obtained by encrypting the sharded data using the computing party's public key;

[0163] When the computing party wants to process data, it first obtains commitment information. Commitment information is generated by the data party after first sharding the data to obtain shard data. It includes: a value calculated based on the shard data, ciphertext information obtained by encrypting the shard data using the computing party's public key, and proof information generated using the shard data. The computing party's public key is the public key negotiated between the computing party and the data party.

[0164] For example, there are three data parties: data party A, data party B, and data party C. Data party A owns data with an asset value of 10, data party B owns data with an asset value of 20, and data party C owns data with an asset value of 30. Data party A, data party B, and data party C can call the VCSS (Vector Commitment Secret Share) algorithm and use the Lagrange equation to shard their respective data. For example, data party A splits data 10 into {f(1), f(2), f(3), f(4)}, data party B splits data 20 into {g(1), g(2), g(3), g(4)}, and data party C splits data 30 into {y(1), y(2), y(3), y(4)}. Then, each data party generates corresponding commitment information based on the generated sharded data.

[0165] A first determining module 902 is used to determine the update result of the ciphertext information;

[0166] After obtaining the commitment information, the update result is further determined based on the ciphertext information included in the commitment information, that is, whether the computing party is the updated computing party is determined based on the ciphertext information.

[0167] A second determination module 903 is configured to determine a sharding result based on the update result and the commitment information;

[0168] Then, the sharding result is further determined based on the determined update result and the obtained commitment information. That is, the corresponding sharding result is determined based on different update results and the commitment information.

[0169] The sending module 904 is used to send the fragmentation result.

[0170] After the sharding results are determined, they can be further sent to a trusted third party. When the trusted third party receives enough sharding results, the final calculation results are restored according to the Lagrangian recovery algorithm.

[0171] After determining the sharding results, the sharding results can be further sent to other computing parties. When other computing parties receive enough sharding results, they restore the final calculation results according to the Lagrangian recovery algorithm.

[0172] It should be noted that when the computing party sends the sharding results, it can upload the sharding results to the blockchain, and the trusted third party or other computing party can obtain the sharding results from the blockchain.

[0173] In summary, based on the above embodiments, this embodiment can further send fragmentation results, and further restore the final calculation result through the sent fragmentation results.

[0174] like Figure 10 FIG. 1 is a structural diagram of a data processing system embodiment 5 disclosed in the present disclosure. The system is applied to a data source and may include:

[0175] Slicing module 1001, used to slice data to obtain slice data;

[0176] When the data party needs to process the data, it first shards the data to obtain sharded data.

[0177] For example, there are three data entities: data entity A, data entity B, and data entity C. Data entity A owns data with an asset value of 10, data entity B owns data with an asset value of 20, and data entity C owns data with an asset value of 30. Data entities A, B, and C can call the VCSS (Vector Commitment Secret Share) algorithm and use the Lagrange equation to shard their respective data. For example, data entity A splits data 10 into {f(1), f(2), f(3), f(4)}, data entity B splits data 20 into {g(1), g(2), g(3), g(4)}, and data entity C splits data 30 into {y(1), y(2), y(3), y(4)}.

[0178] A generation module 1002 is configured to generate commitment information based on the shard data, wherein the commitment information at least includes ciphertext information obtained by encrypting the shard data using the computing party's public key;

[0179] Each data party then generates corresponding commitment information based on the generated shard data. The commitment information includes: a value calculated based on the shard data, ciphertext information obtained by encrypting the shard data using the computing party's public key, and proof information generated using the shard data. The computing party's public key is the public key negotiated between the computing method and the data party.

[0180] The transmission module 1003 is used to transmit the commitment information so that the computing party determines the update result of the ciphertext information based on the commitment information, and determines the sharding result based on the update result and the commitment information.

[0181] The commitment information is then transmitted. After receiving the commitment information, the computing party further determines the update result based on the ciphertext information included in the commitment information. Specifically, the ciphertext information determines whether the computing party is the updated computing party. The sharding result is then determined based on the determined update result and the obtained commitment information. Specifically, the corresponding sharding result is determined based on the different update results and the commitment information.

[0182] In one implementation, the transmission module 1003 may transmit the commitment information in the following manner:

[0183] Upload the commitment information to the blockchain so that the computing party can obtain the commitment information from the blockchain.

[0184] Specifically, the data provider first shards the data to obtain sharded data, then generates commitment information based on the sharded data. This commitment information is then uploaded to the blockchain. The computation provider then retrieves the commitment information uploaded by the data provider from the blockchain. By having the data provider upload the commitment information to the blockchain, the communication traffic between the data provider and the computation provider is effectively reduced.

[0185] It should be noted that the various embodiments in this specification are described in a progressive manner, with each embodiment focusing on the differences from other embodiments. Similar or identical parts between the various embodiments can be referred to in conjunction with each other. For device or system embodiments, since they are generally similar to method embodiments, their description is relatively simple, and relevant parts can be referred to the partial description of the method embodiments.

[0186] It should also be noted that, in this document, relational terms such as first and second, etc., are used only to distinguish one entity or operation from another entity or operation, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Moreover, the terms "comprises," "comprising," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or device comprising a series of elements includes not only those elements, but also other elements not explicitly listed, or elements inherent to such process, method, article, or device. In the absence of further limitations, an element defined by the phrase "comprising a ..." does not exclude the presence of additional identical elements in the process, method, article, or device comprising the element.

[0187] The steps of the methods or algorithms described in conjunction with the embodiments disclosed herein may be implemented directly using hardware, a software module executed by a processor, or a combination of the two. The software module may be placed in a random access memory (RAM), internal memory, read-only memory (ROM), electrically programmable ROM, electrically erasable programmable ROM, registers, a hard disk, a removable disk, a CD-ROM, or any other form of storage medium known in the art.

[0188] The above description of the disclosed embodiments is intended to enable one skilled in the art to implement or use the present disclosure. Various modifications to these embodiments will be readily apparent to one skilled in the art, and the general principles defined herein may be implemented in other embodiments without departing from the spirit or scope of the present disclosure. Therefore, the present disclosure is not limited to the embodiments shown herein, but is intended to be construed in the widest manner consistent with the principles and novel features disclosed herein.

Claims

1. A data processing method, applied to a computing party, comprising: Obtaining commitment information generated by the data party based on the sharded data, wherein the sharded data is sharded data obtained by the data party by sharding the data, and the commitment information at least includes ciphertext information after the sharded data is encrypted using the computing party's public key; Determining an update result of the ciphertext information; Determine a sharding result based on the update result and the commitment information; Wherein, determining the sharding result based on the update result and the commitment information includes: Determining that the update result is that the ciphertext information has been updated relative to the ciphertext information received in the previous round; Decrypt the ciphertext information using the private key to obtain the plaintext shard data; Based on the plaintext shard data, verify the data party's commitment to the shard data; Determine that the number of data parties' commitment verifications on the sharded data meets the preset value, process the sharded data, and obtain the sharded results.

2. According to the method of claim 1, determining the sharding result based on the update result and the commitment information comprises: Determining that the update result is that the ciphertext information is the same as the ciphertext information received in the previous round; The sharding result determined in the previous round is determined as the sharding result.

3. The method according to claim 1, after determining the sharding result based on the update result and the commitment information, further comprising: The fragmentation result is sent.

4. According to the method of claim 1, the data acquisition party generates commitment information based on the shard data, wherein: The shard data is the shard data obtained by the data party by sharding the data, and the commitment information at least includes ciphertext information after the shard data is encrypted using the computing party's public key, including: Obtain from the blockchain commitment information generated based on the sharded data uploaded by the data party to the blockchain, wherein the sharded data is the sharded data obtained by the data party by sharding the data, and the commitment information includes ciphertext information after the sharded data is encrypted using the public key of the computing party.

5. According to the method of claim 1, the data acquisition party generates commitment information based on the shard data, wherein: The shard data is the shard data obtained by the data party by sharding the data, and the commitment information at least includes ciphertext information after the shard data is encrypted using the computing party's public key, including: Obtain commitment information generated based on sharded data and sent by the data party, wherein the sharded data is sharded data obtained by the data party by sharding the data, and the commitment information includes ciphertext information after the sharded data is encrypted using the computing party's public key.

6. A data processing method, applied to a data source, comprising: Shard the data to obtain shard data; Generate commitment information based on the shard data, wherein the commitment information at least includes ciphertext information obtained by encrypting the shard data using the computing party's public key; Transmitting the commitment information so that the computing party determines an update result of the ciphertext information based on the commitment information, and determines a sharding result based on the update result and the commitment information; The computing party determines the sharding result based on the update result and the commitment information, including: Determine that the update result is that the ciphertext information has been updated relative to the ciphertext information received in the previous round; decrypt the ciphertext information by using a private key to obtain plaintext shard data; verify the data party's commitment to the shard data based on the plaintext shard data; determine that the number of verifications of the data party's commitment to the shard data that pass meets a preset value, process the shard data, and obtain a shard result.

7. The method according to claim 6, wherein the transmitting the commitment information comprises: The commitment information is uploaded to the blockchain so that the computing party can obtain the commitment information from the blockchain.

8. A data processing system, applied to a computing party, the system comprising: An acquisition module, used to acquire commitment information generated by the data party based on the shard data, wherein the shard data is shard data obtained by the data party by sharding the data, and the commitment information at least includes ciphertext information obtained by encrypting the shard data using the computing party's public key; A first determination module, used to determine the update result of the ciphertext information; A second determination module, configured to determine a sharding result based on the update result and the commitment information; Wherein, determining the sharding result based on the update result and the commitment information includes: Determining that the update result is that the ciphertext information has been updated relative to the ciphertext information received in the previous round; Decrypt the ciphertext information using the private key to obtain the plaintext shard data; Based on the plaintext shard data, verify the data party's commitment to the shard data; Determine that the number of data parties' commitment verifications on the sharded data meets the preset value, process the sharded data, and obtain the sharded results.

9. A data processing system, applied to a data party, the system comprising: A sharding module, used to shard data to obtain shard data; A generation module, configured to generate commitment information based on the shard data, wherein the commitment information at least includes ciphertext information obtained by encrypting the shard data using a computing party public key; A transmission module is used to transmit the commitment information so that the computing party determines the update result of the ciphertext information based on the commitment information, and determines the sharding result based on the update result and the commitment information; the computing party determines the sharding result based on the update result and the commitment information, including: determining that the update result is that the ciphertext information has been updated relative to the ciphertext information received in the previous round; decrypting the ciphertext information by a private key to obtain plaintext sharding data; based on the plaintext sharding data, verifying the data party's commitment to the sharding data; determining that the number of data party's commitment verifications on the sharding data that pass the preset value, processing the sharding data, and obtaining the sharding result.

Citation Information

Patent Citations

  • Expanding and shrinking method for distributed cluster with nodes supporting multiple data fragments

    CN104615657A

  • Multi-party security computing method and device based on block chain platform, and electronic equipment

    CN113098682A