Blockchain-based data processing method, device and system

By using multiple computing participants on the blockchain to split and distribute the data of the data provider, the security multi-party computing problem in the existing technology is solved, and efficient and secure computing task execution is achieved.

CN112685793BActive Publication Date: 2025-02-25LENOVO (BEIJING) LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202011562201.2
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2020-12-25
Publication Date
2025-02-25
Estimated Expiration
2040-12-25

AI Technical Summary

Technical Problem

The prior art is difficult to realize secure multi-party computing in a multi-user network that does not trust each other, especially the problem of collaboratively cooperating in the execution of computing tasks without leaking their own private input information.

Method used

By using multiple computing participants on the blockchain to split and distribute the target data held by the data provider, and using addition or multiplication type processing rules to process the data blocks, thereby realizing secure multi-party computing.

Benefits of technology

It realizes efficient collaboration and cooperation in performing computing tasks without leaking the private data of the data provider, avoiding data leakage and improving information security.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN112685793B_ABST
    Figure CN112685793B_ABST
Patent Text Reader

Abstract

The present application relates to a data processing method, device and system based on blockchain, in which a data provider holding target data obtains computing participant information of multiple computing participants on the blockchain and the processing type required for the target data, splits the target data using splitting rules to obtain multiple data blocks of the target data, and distributes the multiple data blocks of the target data to the multiple computing participants. It can be seen that the present application proposes a technical idea of ​​using multiple computing participants on the blockchain to process the data blocks obtained after the data held by the data provider is split instead of the original plaintext data, so as to collaboratively perform a certain computing task. No computing participant is involved in the acquisition and processing of the data provider's private data, thereby avoiding the leakage of the data provider's private data and realizing an efficient and secure multi-party computing solution.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application belongs to the field of blockchain technology, and in particular, relates to a blockchain-based data processing method, device and system. Background Art

[0002] The goal of secure multi-party computation (MPC) is to solve the problem of two or more users being able to collaborate and perform a computing task in a mutually distrustful multi-user network without leaking their private input information.

[0003] At present, how to provide a secure multi-party computing solution that can efficiently solve the above technical problems has become a topic worthy of study in this field. Summary of the invention

[0004] In view of this, the present application provides a data processing method, device and system based on blockchain.

[0005] The specific technical solutions are as follows:

[0006] A data processing method based on blockchain, applied to a data provider holding target data;

[0007] The method comprises:

[0008] Obtain computing participant information of multiple computing participants on the blockchain and the type of processing required for the target data;

[0009] Splitting the target data using a splitting rule to obtain multiple data blocks of the target data; the splitting rule corresponds to the processing type and the computing participant information;

[0010] Distribute the multiple data blocks of the target data to the multiple computing participants.

[0011] Optionally, the processing type is the first type;

[0012] The step of splitting the target data using a splitting rule to obtain a plurality of data blocks of the target data includes:

[0013] Splitting the target data into a first number of multiple data blocks;

[0014] The first number is the number of computing participants represented by the computing participant information.

[0015] The distributing the multiple data blocks of the target data to the multiple computing participants includes:

[0016] Distribute the multiple data blocks of the target data to the multiple computing participants in a one-to-one manner.

[0017] Optionally, the processing type is the second type;

[0018] The step of splitting the target data using a splitting rule to obtain a plurality of data blocks of the target data includes:

[0019] Splitting the target data into a second number of data blocks;

[0020] The second number is less than the number of computing participants represented by the computing participant information, the product of multiple second numbers is equal to the number of computing participants, and the multiple second numbers are the number of data blocks obtained by respectively splitting the target data of multiple data providers participating in the processing in the data splitting;

[0021] The distributing the multiple data blocks of the target data to the multiple computing participants includes:

[0022] In a one-to-many manner, each data block of the target data is sent to a plurality of computing participants selected from the plurality of computing participants;

[0023] Different data blocks of the target data are sent to different computing participants among the multiple computing participants, and different computing participants obtain different combinations of data blocks from different data providers.

[0024] Optionally, in the method:

[0025] If the multiple data providers are more than two data providers, the data processing tasks corresponding to the multiple data providers are pre-divided into multiple subtasks;

[0026] Each subtask is used to instruct: performing the second type of processing on target data of two data providers, or performing the second type of processing on two intermediate results, or performing the second type of processing on target data of one data provider and one intermediate result;

[0027] The intermediate result is: a result obtained by performing the second type of processing on a corresponding portion of the target data in each target data of the multiple data providers.

[0028] Optionally, the method further includes:

[0029] Determine verification information of the target data, and store the verification information in a private storage area corresponding to the blockchain of the data provider.

[0030] A blockchain-based data processing method, applied to the auditing party on the blockchain;

[0031] The method comprises:

[0032] Obtaining a second processing result on the blockchain;

[0033] The second processing result is a result obtained by the reconstruction party on the blockchain performing a second processing on multiple first processing results of multiple computing participants, and a computing participant obtains the corresponding first processing result by performing a first processing on multiple data blocks obtained from multiple data providers; the data blocks of the data providers are obtained by splitting the target data based on the splitting rule;

[0034] Obtain multiple target data from multiple data providers;

[0035] Performing a third process on the plurality of target data to obtain a third process result; wherein the third process is consistent with the first process in the processing type;

[0036] Verify the consistency of the third processing result with the second processing result.

[0037] Optionally, the obtaining of multiple target data from multiple data providers includes:

[0038] Obtain corresponding verification information from the private storage areas corresponding to different data providers on the blockchain;

[0039] Based on the obtained verification information, corresponding target data is obtained from corresponding data providers to obtain a plurality of target data of the plurality of data providers.

[0040] A data processing device based on blockchain, applied to a data provider holding target data;

[0041] The device comprises:

[0042] A first acquisition unit is used to obtain computing participant information of multiple computing participants on the blockchain, and a processing type required for the target data;

[0043] a splitting unit, configured to split the target data using a splitting rule to obtain a plurality of data blocks of the target data; the splitting rule corresponds to the processing type and the computing participant information;

[0044] A transmission unit is used to distribute the multiple data blocks of the target data to the multiple computing participants.

[0045] A data processing device based on blockchain, applied to an auditor on blockchain;

[0046] The device comprises:

[0047] A second acquisition unit, used to obtain a second processing result on the blockchain;

[0048] The second processing result is a result obtained by the reconstruction party on the blockchain performing a second processing on multiple first processing results of multiple computing participants, and a computing participant obtains the corresponding first processing result by performing a first processing on multiple data blocks obtained from multiple data providers; the data blocks of the data providers are obtained by splitting the target data based on the splitting rule;

[0049] A third acquisition unit, used to obtain multiple target data from multiple data providers;

[0050] A processing unit, configured to perform a third processing on the plurality of target data to obtain a third processing result; wherein the third processing is consistent with the processing type of the first processing;

[0051] A verification unit is used to verify the consistency between the third processing result and the second processing result.

[0052] A data processing system based on blockchain, comprising: a plurality of data providers, and a plurality of computing participants, reconstruction parties and auditors on the blockchain;

[0053] in:

[0054] Each data provider is configured to execute the blockchain-based data processing method applied to the data provider as described in any one of the above items;

[0055] Each computing participant is configured to: obtain multiple data blocks transmitted by multiple data providers; a data block transmitted by a data provider to a computing participant is one of multiple data blocks obtained by splitting the target data held by the data provider; perform a first process on the obtained multiple data blocks to obtain a first process result; and send the first process result to the reconstruction party;

[0056] The reconstruction party is used to: perform second processing on multiple first processing results sent by multiple computing participants to obtain second processing results, and upload the second processing results to the blockchain;

[0057] The auditor is used to execute the blockchain-based data processing method applied to the auditor as described in any of the above items.

[0058] It can be seen from the above scheme that in the blockchain-based data processing method, device and system provided by the present application, the data provider holding the target data obtains the computing participant information of multiple computing participants on the blockchain, and the processing type required for the target data, splits the target data using the splitting rules, obtains multiple data blocks of the target data, and distributes the multiple data blocks of the target data to the multiple computing participants. It can be seen that the present application proposes a technical idea of ​​using multiple computing participants on the blockchain to process the data blocks obtained after the data held by the data provider is split instead of the original plaintext data, so as to collaboratively perform a certain computing task. No computing participant is involved in the acquisition and processing of the data provider's private data, thereby avoiding the leakage of the data provider's private data and realizing an efficient and secure multi-party computing solution. BRIEF DESCRIPTION OF THE DRAWINGS

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

[0060] Figure 1 It is a flowchart of a blockchain-based data processing method applied to a data provider provided in an embodiment of the present application;

[0061] Figure 2 It is a schematic diagram of data splitting and distribution in addition processing provided in an embodiment of the present application;

[0062] Figure 3 It is a schematic diagram of data splitting and distribution in multiplication processing provided by an embodiment of the present application;

[0063] Figure 4 It is a flowchart of a blockchain-based data processing method applied to an auditor provided in an embodiment of the present application;

[0064] Figure 5 It is a processing logic diagram of blockchain-based addition processing provided in an embodiment of the present application;

[0065] Figure 6 It is a processing logic diagram of blockchain-based multiplication processing provided in an embodiment of the present application;

[0066] Figure 7 It is a structural diagram of a blockchain-based data processing device applied to a data provider provided in an embodiment of the present application;

[0067] Figure 8It is a structural diagram of a blockchain-based data processing device provided in an embodiment of the present application and applied to an auditor. DETAILED DESCRIPTION

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

[0069] The goal of secure multi-party computing is to solve the problem of two or more users being able to collaborate and perform a computing task in a mutually distrustful multi-user network without leaking their private input information. The current mainstream secure multi-party computing models include the computing model based on the garbled circuit and the computing model based on the secret sharing. Both models rely on the oblivious transfer protocol in the communication phase, which is time-consuming and not quantum-resistant (cannot resist quantum attacks). In addition, the secure multi-party computing protocol also has the problem of verifiability of input and output information.

[0070] For computing models that rely on oblivious transfer protocols, there have been many works that have optimized their performance, such as the Oblivious Transfer Extension proposed by Ishai et al. in 2003. As for the verifiability of input and output information, it can be traced back to the Verifiable Secret Share scheme proposed by Tal et al. in 1989. This scheme uses zero-knowledge proof technology to solve the verifiability problem, but zero-knowledge proof technology has performance problems such as low speed.

[0071] In view of this, the present application provides a blockchain-based data processing method, device and system to implement a secure multi-party computing solution with better performance, avoid the leakage of private data of data providers, and ensure the information security during blockchain data processing.

[0072] See also Figure 1, which is a flow chart of a data processing method based on blockchain provided in an embodiment of the present application. The method is applied to a data provider holding target data; the data provider may be, but is not limited to, parties holding accounting data to be counted in accounting processing, such as subsidiaries (terminal devices), etc., or may also be a seller holding commodity price data and a buyer holding the quantity of purchased commodities in transactions such as shopping, etc. The application scenarios and data providers of the secure multi-party computing solution implemented in the present application may be flexible and diverse, and are not limited here.

[0073] like Figure 1 As shown, the data processing method based on blockchain in the embodiment of the present application may include:

[0074] Step 101: Obtain computing participant information of multiple computing participants on the blockchain, and the processing type required for the target data held by the data provider.

[0075] The computing participants may be nodes with data processing functions on the blockchain. In the embodiment of the present application, there are multiple computing participants, and multiple computing participants perform a computing task through collaborative cooperation to achieve the purpose of secure multi-party computing.

[0076] More specifically, the node as a computing participant can be an endorsement node on the blockchain. The node used for endorsement on the blockchain is called an endorsement node. The endorsement node is mainly used to respond to the endorsement request of a specific chain code and endorse the transaction before the transaction is submitted. A transaction needs to be endorsed by one or more endorsement nodes (and these endorsements should be valid).

[0077] The existing endorsement mechanism in the blockchain is that the system pre-sets the endorsement node. After the proposal node submits a new transaction request, the endorsement node simulates the chain code execution of the new transaction. After determining that the transaction is legal and compliant, the endorsement result is signed and returned to the proposal node, and the final submission information is finally summarized and generated by the proposal node, which is submitted to all nodes through the order service to realize the confirmation operation (commit) of the transaction on the chain. During the specific execution process, the endorsement node will be able to fully see the entire content of the transaction, that is, the endorsement node can have unimpeded access to the data it endorses, so the endorsement node is the main channel for blockchain information leakage. The embodiment of the present application improves the data processing process of the endorsement node on the blockchain, thereby improving the data processing security of the blockchain during the transaction (such as data comparison) and achieving the purpose of secure multi-party computing.

[0078] In actual applications, before the data provider obtains the computing participant information of multiple computing participants on the blockchain and the processing type required for the target data, the task initiator can first initiate a task application for the corresponding secure multi-party computing task to the blockchain. For example, a data provider among multiple data providers (such as the seller of a certain commodity whose transaction amount is to be counted in a shopping transaction) or an agent independent of each data provider (such as the head office terminal where the accountant is located) serves as the task initiator and initiates a task application to the agent or task controller on the blockchain. The task application may include but is not limited to carrying the processing type of the task, the information of multiple data providers participating in the task processing, and the target data of multiple data providers (such as a parameter participating in account statistics). In response to the transaction application, the blockchain feeds back response information carrying the computing participant information and the processing type to each data provider.

[0079] Among them, the agent or task controller can specifically be one or more nodes on the blockchain, and the data provider information carried in the task application may include but is not limited to the IP (Internet Protocol) address of the data provider's terminal device, and / or the device UUID (Universally Unique Identifier) ​​and other information.

[0080] The calculation participant information carried in the response information may include but is not limited to a node information list of multiple selected endorsement nodes, and the processing type may include but is not limited to addition processing (such as accumulating and counting the account data of each subsidiary), multiplication processing (such as in a shopping transaction, determining the total transaction amount of a certain commodity based on the quantity of the commodity purchased), etc.

[0081] Each data provider correspondingly obtains the computing participant information of multiple computing participants fed back by the blockchain, as well as the processing type information of the target data held.

[0082] Step 102: Split the target data using a splitting rule to obtain multiple data blocks of the target data.

[0083] The splitting rules correspond to the processing type required for the target data and the calculation participant information (such as the number of calculation participants). This application mainly divides the processing type required for the target data of the data provider into two types: the first type and the second type.

[0084] Optionally, the first type may specifically be an addition type, and the second type may specifically be a multiplication type.

[0085] Among them, when the processing type required for the target data of the data provider is the first type, i.e., the addition type, the splitting rule adopted in this step 102 can specifically be: split the target data into multiple data blocks of a first number; the first number is the number of computing participants represented by the computing participant information.

[0086] During implementation, the target data may be split into multiple data blocks whose number is the same as the number of computing participants based on random numbers.

[0087] For example, taking the target data as 100, assuming that the number of computing participants is 2, the target data 100 can be split into 37 and 73 based on the random number 37. If the target data needs to be split into more than two data blocks, the data splitting can be completed based on multiple random numbers.

[0088] When the processing type required by the target data of the data provider is the second type, ie, the multiplication type, the splitting rule adopted in step 102 may specifically be: splitting the target data into a second number of multiple data blocks.

[0089] Among them, the second number is smaller than the number of computing participants represented by the computing participant information, the product of multiple second numbers is equal to the number of computing participants, and the multiple second numbers are the number of data blocks obtained by respectively splitting the target data of multiple data providers participating in the processing in the data splitting.

[0090] For example, suppose that the first data provider holding data A and the second data provider holding data B need to calculate A*B. If the information of the computing participants indicates that there are 4 computing participants in total, A and B can be split into two data blocks based on random numbers: A1, A2, B1, B2. If the information of the computing participants indicates that there are 6 computing participants in total, one of A and B can be split into 2 data blocks and the other into 3 data blocks based on random numbers, such as: A1, A2, A3, B1, B2; or A1, A2, B1, B2, B3.

[0091] In the embodiment of the present application, the data splitting operation is completed by the data provider and does not involve any agent or third party. This accordingly avoids the private data of the data provider from being known by any agent or third party, thereby avoiding the risk of privacy leakage during the data splitting stage.

[0092] Step 103: Distribute the multiple data blocks of the target data to the multiple computing participants.

[0093] When distributing multiple data blocks of target data to multiple computing participants, the distribution method used is also related to the processing type required for the target data. If the processing type required for the target data is different, the distribution method used is correspondingly different.

[0094] When the processing type required for the target data is the first type, i.e., the addition type, optionally, multiple data blocks of the target data can be distributed to multiple computing participants on the blockchain in a one-to-one manner, so that for multiple target data to be added from multiple data providers, each computing participant can obtain a corresponding data block of each target data in the multiple target data, and different computing participants obtain different data blocks of each target data, as shown in the example below. Figure 2 shown.

[0095] After obtaining the corresponding data blocks of multiple target data, each computing participant adds the obtained data blocks to obtain the sum of the data blocks. Taking the target data including three data A, B, and C (corresponding to three data providers), and splitting each data into two data blocks (i.e., A: A1, A2; B: B1, B2; C: C1, C2) as an example, computing participant 1 such as Peer1 correspondingly obtains A1, B1, C1 (of course, it can also be other combinations, such as A1, B2, C1), and adds the data blocks to obtain A1+B1+C1; computing participant 2 such as Peer2 correspondingly obtains A2, B2, C2 (it can be other corresponding combinations, such as A2, B1, C2), and adds the data blocks to obtain A2+B2+C2.

[0096] Afterwards, each computing participant can transmit the calculated data blocks and values ​​to the reconstruction party on the blockchain. The reconstruction party may include one or more nodes on the blockchain. The reconstruction party collects the calculation results of the data blocks by each computing participant, and integrates and reconstructs the collected calculation results to obtain the final processing results corresponding to multiple data providers, and uploads the processing results to the blockchain for the data providers to query and obtain.

[0097] For example, in the above example, the reconstruction party collects the calculation results A1+B1+C1 and A2+B2+C2 of the two calculation participants, and reconstructs them by accumulating the collected calculation results, and finally obtains (A1+B1+C1)+(A2+B2+C2), which should be A+B in essence, satisfying the first type (addition) processing requirements of each data provider for its target data. For example, it can meet the cumulative statistical requirements for the account balances of each subsidiary in accounting processing, etc. However, during the processing, neither the calculation participants nor the reconstruction party can know the plaintext information of the target data of each data provider.

[0098] When the processing type required for the target data is the second type, i.e., the multiplication type, each data block of the target data can be optionally sent to a plurality of computing participants selected from a plurality of computing participants in a one-to-many manner.

[0099] More specifically, in a one-to-many distribution method, assuming that the target data is split into n data blocks, and the number of computing participants is m, each data block obtained by splitting the target data can be sent to m / n computing participants selected from the m computing participants, wherein different data blocks of the target data are sent to different computing participants among the multiple computing participants, and different computing participants obtain different data block combinations of data blocks from different data providers.

[0100] Assume that A*B needs to be calculated for the first data provider holding data A and the second data provider holding data B. If there are 4 computing participants in total, then after splitting A and B into two data blocks (A: A1, A2; B: B1, B2) based on random numbers, each data block (A1, A2) of data A can be sent to 4 / 2=2 computing participants. Similarly, each data block (B1, B2) of data B can be sent to 4 / 2=2 computing participants. Moreover, different data blocks of data A are sent to different computing participants among the 4 computing participants. Similarly, different data blocks of data B are sent to different computing participants among the 4 computing participants. Different computing participants obtain different combinations of data blocks of data A and data B.

[0101] like Figure 3 As shown, an optional implementation method of distributing two data blocks (A1, A2) of data A and two data blocks (B1, B2) of data B to four computing nodes is provided. Based on the above distribution principle, each node can obtain a data block respectively:

[0102] Peer1: A1, B1;

[0103] Peer2: A2, B2;

[0104] Peer3: A1, B2;

[0105] Peer4: A2, B1.

[0106] After obtaining the corresponding data blocks of multiple target data, each computing participant performs multiplication operations on the obtained data blocks to obtain the product of each data block, such as Peer1 obtains A1*B1, Peer2 obtains A2*B2, Peer3 obtains A1*B2, Peer4 obtains A2*B1, and transmits the calculation results to the reconstruction party on the blockchain.

[0107] The reconstruction party collects the calculation results of each computing participant on the data block, and obtains the final processing results corresponding to multiple data providers by integrating and reconstructing the collected calculation results, and uploads the processing results to the blockchain for the data providers to query and obtain.

[0108] For example, in the above example, the reconstruction party collects the calculation results of each node: A1*B1, A2*B2, A1*B2, A2*B1; and obtains the final processing result corresponding to multiple data providers by integrating and reconstructing the collected calculation results (A1*B1+A2*B2+A1*B2+A2*B1). The final processing result A1*B1+A2*B2+A1*B2+A2*B1 should essentially be A*B, which meets the processing requirements of each data provider for the second type (multiplication) of its target data. For example, it can meet the needs of calculating the total transaction amount of goods according to the unit price of goods and the number of goods purchased in the shopping scene, etc. However, during the processing process, neither the calculation participants nor the reconstruction party can know the plain text information of the target data of each data provider.

[0109] It should be noted that the above-mentioned data splitting and data distribution method is only an exemplary description provided for the embodiment of the present application, and does not take into account the situation of redundant calculation; in actual applications, redundancy strategies can also be set according to needs. For example, for the data processing needs of multiple data providers, the computing participants provide data processing services to the data providers according to the corresponding redundancy multiples (such as 0, 1, 2...k, etc.), where a redundancy multiple of 0 indicates no redundancy; in the presence of redundancy, when data splitting is performed, for the addition processing type, each data provider can specifically split the target data it holds into m / (p+1) data blocks, where m represents the number of computing participants and p represents the redundancy multiple; in the multiplication processing type, for each target data to be multiplied, after they are split separately, the product of the number of data blocks of each target data is m / (p+1).

[0110] It can be seen from the above scheme that in the blockchain-based data processing method provided by this embodiment, the data provider holding the target data obtains the computing participant information of multiple computing participants on the blockchain, and the processing type required for the target data, splits the target data using the splitting rule, obtains multiple data blocks of the target data, and distributes the multiple data blocks of the target data to the multiple computing participants. It can be seen that the present application proposes a technical idea of ​​using multiple computing participants on the blockchain to process the data blocks obtained after the data held by the data provider is split instead of the original plaintext data, so as to collaboratively perform a certain computing task. Any computing participant is not involved in the acquisition and processing of the data provider's private data, thereby avoiding the leakage of the data provider's private data and realizing an efficient and secure multi-party computing solution.

[0111] In the case where the processing type required for the target data is the second type, i.e., the multiplication type, optionally, the computing participant information obtained by the data provider from the blockchain (such as an agent or task controller on the blockchain) may specifically include a target sorting sequence.

[0112] The target sorting sequence is a sequence obtained by sorting multiple computing participant identifiers.

[0113] On this basis, the data provider sends each data block of the target data to a plurality of computing participants selected from a plurality of computing participants in a one-to-many manner, which can be specifically implemented as follows:

[0114] 1) determining a plurality of computing participant identifiers corresponding to each data block of the target data in the target sorting sequence based on a predetermined mapping rule between different data blocks and different bit numbers in the sorting sequence;

[0115] 2) Sending each data block of the target data to multiple computing participants indicated by the corresponding multiple computing participant identifiers.

[0116] Specifically, for multiple data providers who need to participate in data processing, if each data provider splits the target data it holds into multiple data blocks of the same number, an optional implementation method is: the blockchain, such as the agent or task controller on the blockchain, responds to the task application initiated by the task initiator, and feeds back response information including different sorting sequences to each data provider, and different data providers use the same mapping rule. Different data providers obtain different sorting sequences of multiple computing participant identifiers from the blockchain, so that after sending data blocks to the computing participants based on the same mapping rule, different computing participants can obtain different data block combinations of data blocks from different data providers.

[0117] The following examples illustrate:

[0118] For example, for A*B=(A1+A2)*(B1+B2), the task control direction on the blockchain sends a node sequence to the provider of data A, Client 1: (Peer1, Peer2, Peer3, Peer4). Client 1 uses the mapping rule: {first data block→node number 1, 3, second data block→node number 2, 4} to match A1 with Peer 1 and Peer3, and A2 with Peer 2 and Peer4. The blockchain sends another node sequence to the provider of data B, Client 2: (Peer1, Peer2, Peer4, Peer3). Client 2 uses the same mapping rule to match B1 with Peer 1 and Peer4, and B2 with Peer 2 and Peer 3. On this basis, each data block is sent to the corresponding computing node. In the end, we have:

[0119] Peer1: A1, B1;

[0120] Peer2: A2, B2;

[0121] Peer3: A1, B2;

[0122] Peer4: A2, B1.

[0123] In the case where each data provider splits the target data held by the data provider into multiple data blocks of the same number, another optional implementation is:

[0124] The blockchain feeds back response information including the same sorting sequence to each data provider, and different data providers adopt different mapping rules. Different data providers adopt different mapping rules for the same sorting sequence, so that after sending data blocks to computing participants, different computing participants can obtain different data block combinations of data blocks from different data providers.

[0125] The following examples illustrate:

[0126] For example, for A*B=(A1+A2)*(B1+B2), the blockchain sends the node sequence (Peer 1, Peer 2, Peer 3, Peer 4) to the provider of data A, Client 1, and the provider of data B, Client 2. Client 1 maps A1 to Peer 1 and Peer 3, and A2 to Peer 2 and Peer 4, according to the mapping rule: {first data block→node number 1, 3, second data block→node number 2, 4}; Client 2 maps B1 to Peer 1 and Peer 4, and B2 to Peer 2 and Peer 3, according to the mapping rule: {first data block→node number 1, 4, second data block→node number 2, 3}. On this basis, each data block is sent to the corresponding computing node.

[0127] If each data provider splits the target data held into multiple data blocks of different numbers, the blockchain can feedback the same or different sorting sequences of multiple computing participants' identifiers to different data providers, and different data providers correspond different data blocks of their target data to different computing participants according to different mapping rules and distribute the data. After distributing the data, it should be ensured that different computing participants can obtain different combinations of data blocks from different data providers. Examples will not be given here one by one.

[0128] In implementation, the mapping rules may be configured in advance at the data provider, or when the blockchain feeds back response information including the computing node sorting sequence to the data provider, the required mapping rules may also be carried in the response information, which is not limited in this embodiment.

[0129] In an optional embodiment of the present application, when the processing type required for the target data is the second type, i.e., the multiplication type, if the multiple data providers participating in the data processing are specifically more than two data providers, then the data processing tasks corresponding to the multiple data providers are pre-split into multiple subtasks.

[0130] Each subtask is used to instruct: performing the second processing type on target data of two data providers, or performing the second processing type on two intermediate results, or performing the second processing type on target data of one data provider and one intermediate result;

[0131] The intermediate result is: a result obtained after performing the processing type on a corresponding part of the target data in each target data of the multiple data providers.

[0132] For example, for a multiplication type data processing task, suppose there are three data providers, each holding target data A, B, and C. Now we need to calculate A*B*C. Then we can split the calculation task A*B*C into two subtasks:

[0133] Subtask 1: A*B;

[0134] Subtask 2: (A*B)*C.

[0135] Each subtask corresponds to two data to be processed. For example, the data to be processed corresponding to subtask 2 is (A*B) and C. Subtask 2 needs to be performed on the basis of the result value of A*B obtained after subtask 1 has been completed.

[0136] During implementation, the computing tasks may be split by one of the multiple data providers, or the agent corresponding to each data provider (such as the terminal where the accountant responsible for data statistics is located), or the task controller or agent on the blockchain. This implementation does not impose any restrictions on this.

[0137] In this way, for a processing task including any number of target data, it can be decomposed into multiple subtasks corresponding to two data to be processed respectively through task splitting. Accordingly, at least 4 computing participants (computing nodes) are required to complete the processing of multiplication tasks of any complexity and including any number of target data. Therefore, based on the processing method of this embodiment, when the number of target data included in the multiplication task is large and the task is complex, the occupation of computing nodes on the blockchain by the task can be reduced, and only a small number of computing nodes can be allocated to meet the processing requirements of multiplication computing tasks of any complexity.

[0138] Optionally, the above data processing method applied to the data provider of the present application may further include:

[0139] Determine verification information of the target data, and store the verification information in a private storage area corresponding to the blockchain of the data provider.

[0140] In this embodiment, each data provider has a corresponding private storage area on the blockchain, which can be implemented in the form of a private database but is not limited to it, and can be identified and distinguished by the data provider information. The data provider information can include but is not limited to the device IP address and / or UUID of the data provider and other information.

[0141] Among them, the data provider can specifically use the hash algorithm to perform hash operations on the target data it holds, use the resulting hash value as verification information of the target data, and store the verification information in the data provider's corresponding private storage area on the blockchain.

[0142] This operation can be performed at any time during the period from when the task initiator applies for the task to the blockchain until the reconstruction party uploads the task processing result to the blockchain.

[0143] The verification information uploaded to the private storage area of ​​the blockchain can be used in the subsequent verification of the final processing results uploaded to the blockchain by the reconstruction party.

[0144] The embodiment of the present application also discloses a blockchain-based data processing method applied to an auditor, where the auditor is an auditor on the blockchain, and specifically may be one or more nodes on the blockchain with an audit processing function.

[0145] See also Figure 4 , the blockchain-based data processing method applied to the auditor may include:

[0146] Step 401: Obtain a second processing result on the blockchain.

[0147] Among them, the second processing result is the result obtained by the reconstruction party on the blockchain performing second processing on multiple first processing results of multiple computing participants, and a computing participant obtains the corresponding first processing result by performing first processing on multiple data blocks obtained from multiple data providers; the data blocks of the data provider are obtained by splitting the target data based on the splitting rules.

[0148] The first processing is consistent with the processing type required by the target data of the data provider. The processing type required by the target data of the data provider can be an addition type or a multiplication type. Correspondingly, the first processing can be an addition operation on the data blocks, such as A1+B1+C1 described above, or a multiplication operation on the data blocks, such as A1*B1 described above.

[0149] The reconstructor collects multiple first processing results of each computing participant, and performs a second processing on the multiple first processing results of each computing participant. The second processing is specifically a reconstruction processing based on accumulation, and corresponding second processing results corresponding to multiple data providers are obtained, such as (A1+B1+C1)+(A2+B2+C2) or A1*B1+A1*B2+A2*B1+A2*B2 mentioned above, and the second processing results are uploaded to the blockchain for acquisition by each data provider, and / or for acquisition and verification by the auditor.

[0150] During implementation, when uploading the second processing result to the blockchain, the corresponding data provider information can be associated and uploaded, such as the device IP address or device UUID of each data provider, so that when the auditor obtains the second processing result, it can also know the corresponding data providers.

[0151] Step 402: Obtain multiple target data from multiple data providers.

[0152] The auditor is trusted by default and has the authority to access the data provider's corresponding private storage area on the blockchain.

[0153] The auditor can specifically access the private storage area corresponding to each data provider on the blockchain based on the information of each data provider corresponding to the second processing result, such as the device IP or device UUID of the data provider, read the verification information uploaded by each data provider, such as a hash value, and obtain the corresponding target data from the data provider based on the read verification information, thereby obtaining multiple target data of multiple data providers.

[0154] Step 403: Perform a third process on the plurality of target data to obtain a third processing result.

[0155] The third processing is consistent with the first processing in terms of processing type, and may be specifically an addition calculation or a multiplication calculation, depending on the processing requirements of the target data of each data provider.

[0156] When the processing type required for the target data of each data provider is the addition type, the auditor will add the target data obtained to obtain the sum of the target data, such as A+B+C; when the processing type required for the target data of each data provider is the multiplication type, the auditor will multiply the target data obtained to obtain the product of the target data, such as A*B.

[0157] Step 404: Verify the consistency between the third processing result and the second processing result.

[0158] The auditor can specifically determine whether the calculated third processing result (such as the sum or product of each target data) is the same as the second processing result uploaded to the blockchain by the reconstruction party. If they are the same, it means that the calculation participants and the reconstruction party have processed the target data of each data provider correctly, and accordingly, the second processing result uploaded to the blockchain is correct and has passed the consistency verification; otherwise, if the two are different, there are errors in the calculation participants and / or the reconstruction party’s processing of the target data of each data provider, and accordingly, the second processing result uploaded to the blockchain by the reconstruction party is wrong, thereby solving the consistency verification problem of input information and output information in secure multi-party computing.

[0159] Since in traditional technology, the information of each data provider (such as the account balance of each subsidiary to be accounted for, or the unit price of goods, the quantity sold, etc.) is obtained by all computing participants (such as multiple endorsement nodes), each computing participant can independently complete the data processing required for the processing task, and the data processing process corresponding to the processing task does not involve the collaboration between multiple nodes. Therefore, in traditional technology, the blockchain only has off-chain computing capabilities; this application splits the data at each data provider and distributes the split data blocks instead of the complete data to each computing participant, so that each computing participant and the reconstruction party can complete the data processing required for the task with the help of mutual collaborative interaction, thereby realizing the on-chain computing capability of the blockchain. For the endorsement processing of the blockchain, an improvement on the existing endorsement mechanism is achieved, and the information security in the endorsement processing is further improved through the on-chain computing capability of the blockchain.

[0160] In addition, since the present application splits data into data blocks based on splitting rules, and realizes secure multi-party computing tasks on data by processing data blocks rather than complete data (such as complete data in plain text form or encrypted ciphertext form, etc.), it has a theoretical basis for information-theoretic security and is difficult to be cracked by brute force, overcoming the non-quantum resistance problem of the oblivious transfer protocol. At the same time, based on the technical solution of the present application, complex operations can be converted into addition and / or multiplication operators through circuit technology, with higher processing performance (such as higher processing rate), and its performance exceeds that of the oblivious transfer extension protocol and zero-knowledge proof technology.

[0161] The following provides an application example of the blockchain-based data processing method of an embodiment of the present application.

[0162] Specifically, examples corresponding to addition and multiplication processing types are provided.

[0163] See also Figure 5 In the addition processing example, the data to be processed provided by multiple data providers are (A, B, C...) (the number is greater than or equal to 2), and the computing nodes are (P1, P2, P3...P m), m≥2, the reconstructed nodes are (D1, D2, D3…D k ), k ≥ 1, the task objective is to calculate the sum of the data under the premise that the computing node and the reconstruction node cannot obtain the data A, B, C...

[0164] The task can be divided into three stages: initialization, secret sharing, and reconstruction, as follows:

[0165] Initialization phase:

[0166] Each data provider will submit the verification information (such as hash value) corresponding to the data (A or B or C...) that needs to be calculated to the corresponding private database in the blockchain network.

[0167] Secret sharing phase:

[0168] 1) The data provider splits the data. Taking the provider of data A as an example, the provider splits data A into multiple data blocks based on random numbers: (A1, A2, A3…A m ), And A i Sent to computing node P i ;

[0169] 2) P i Receive data blocks from each data provider (A i , B i , C i …), and calculate T i =A i +B i +C i …;

[0170] 3) P i T i Send to one or more reconstruction nodes;

[0171] Reconstruction phase:

[0172] 1) One or more reconstruction nodes collect T i And reconstruct (Rec). According to the properties of secret sharing, after reconstruction,

[0173] 2) The reconstruction node submits the reconstruction result (such as directly submitting it, or submitting it after verifying that multiple reconstruction results are consistent when multiple reconstruction nodes participate in the reconstruction) to the blockchain public ledger.

[0174] The auditor can then obtain the data provider's data based on the verification information in the blockchain private database and verify the submitted results.

[0175] See also Figure 6In the multiplication processing example, the data to be processed provided by multiple data providers are (A, B), and the number of data to be processed is 2. If it is greater than 2, the operator can be split in the computing task; the computing nodes are (P1, P2, P3, P4), and the number of computing nodes is 4. If there are more than 4 computing nodes in the cluster, node selection can be performed in the computing task, and the reconstructed nodes are (D1, D2, D3…D k ), k ≥ 1, the task purpose is to calculate the product of A and B under the premise that the computing node and the proxy node cannot obtain the data A and B.

[0176] This task can also be divided into three stages: initialization, secret sharing, and reconstruction, as follows:

[0177] Initialization phase:

[0178] Each data provider submits the verification information (such as hash value) corresponding to the data (A or B) that needs to be calculated to the corresponding private database in the blockchain network.

[0179] Secret sharing phase:

[0180] 1) The provider of data A splits data A into two data blocks based on random numbers: (A1, A2), A=A1+A2, and sends A1 to P1 and P3; and sends A2 to P2 and P4;

[0181] 2) The provider of data B splits data B into two data blocks based on random numbers: (B1, B2), B=B1+B2, and sends B1 to P1 and P4; and sends B2 to P2 and P3;

[0182] 3) P i Perform product operations on the received data blocks. Specifically, P1 calculates T1=A1*B1, P2 calculates T2=A2*B2, P3 calculates T3=A1*B2, and P4 calculates T1=A2*B1;

[0183] 4) P i T i Send to one or more reconstruction nodes;

[0184] Reconstruction phase:

[0185] 1) One or more reconstruction nodes collect T i And reconstruct (Rec). According to the properties of secret sharing, after reconstruction, we can get:

[0186]

[0187] 2) The reconstruction node submits the reconstruction result (such as directly submitting it, or submitting it after verifying that multiple reconstruction results are consistent when multiple reconstruction nodes participate in the reconstruction) to the blockchain public ledger.

[0188] The auditor can then obtain the data provider's data based on the verification value in the blockchain private database and verify the submitted results.

[0189] Corresponding to the above-mentioned blockchain-based data processing method applied to the data provider, the embodiment of the present application also discloses a blockchain-based data processing device, which is applied to the data provider holding the target data, see Figure 7 The schematic diagram of the structure of the device is shown, and the device may include:

[0190] A first acquisition unit 701 is used to obtain computing participant information of multiple computing participants on the blockchain, and a processing type required for the target data;

[0191] A splitting unit 702 is used to split the target data using a splitting rule to obtain multiple data blocks of the target data; the splitting rule corresponds to the processing type and the computing participant information;

[0192] The transmission unit 703 is used to distribute the multiple data blocks of the target data to the multiple computing participants.

[0193] In an optional implementation of the embodiment of the present application, the processing type is the first type;

[0194] The splitting unit 702 is specifically configured to: split the target data into a first number of multiple data blocks;

[0195] The first number is the number of computing participants represented by the computing participant information.

[0196] The transmission unit 703 is specifically used to distribute the multiple data blocks of the target data to the multiple computing participants in a one-to-one manner.

[0197] In an optional implementation of the embodiment of the present application, the processing type is the second type;

[0198] The splitting unit 702 is specifically configured to: split the target data into a second number of data blocks;

[0199] The second number is less than the number of computing participants represented by the computing participant information, the product of multiple second numbers is equal to the number of computing participants, and the multiple second numbers are the number of data blocks obtained by respectively splitting the target data of multiple data providers participating in the processing in the data splitting;

[0200] The transmission unit 703 is specifically configured to: send each data block of the target data to a plurality of computing participants selected from the plurality of computing participants in a one-to-many manner;

[0201] Different data blocks of the target data are sent to different computing participants among the multiple computing participants, and different computing participants obtain different combinations of data blocks from different data providers.

[0202] In an optional implementation of the embodiment of the present application, the computing participant information includes: a target sorting sequence obtained from the controller on the blockchain, the target sorting sequence being a sequence obtained by sorting multiple computing participant identifiers;

[0203] The transmission unit 703 sends each data block of the target data to a plurality of computing participants selected from the plurality of computing participants in a one-to-many manner, including:

[0204] Based on a predetermined mapping rule between different data blocks and different bit numbers in the sorting sequence, determine a plurality of computing participant identifiers corresponding to each data block of the target data in the target sorting sequence;

[0205] Each data block of the target data is sent to multiple computing participants indicated by the corresponding multiple computing participant identifiers.

[0206] In an optional implementation of the embodiment of the present application, if the multiple data providers are more than two data providers, the data processing tasks corresponding to the multiple data providers are pre-split into multiple subtasks;

[0207] Each subtask is used to instruct: performing the second type of processing on target data of two data providers, or performing the second type of processing on two intermediate results, or performing the second type of processing on target data of one data provider and one intermediate result;

[0208] The intermediate result is: a result obtained by performing the second type of processing on a corresponding portion of the target data in each target data of the multiple data providers.

[0209] In an optional implementation of the embodiment of the present application, the transmission unit 703 is also used to: transmit the verification information of the determined target data to the data provider for storage in the private storage area corresponding to the blockchain.

[0210] As for the blockchain-based data processing device applied to the data provider disclosed in the embodiment of the present application, since it corresponds to the blockchain-based data processing method applied to the data provider disclosed in any of the above method embodiments, the description is relatively simple. For relevant similarities, please refer to the description of the blockchain-based data processing method applied to the data provider in the above method embodiments, which will not be described in detail here.

[0211] Corresponding to the above-mentioned blockchain-based data processing method applied to the auditor, the embodiment of the present application also discloses another blockchain-based data processing device, which is applied to the audit on the blockchain, see Figure 8 The schematic diagram of the structure of the device is shown, and the device may include:

[0212] A second acquisition unit 801 is used to obtain a second processing result on the blockchain;

[0213] The second processing result is a result obtained by the reconstruction party on the blockchain performing a second processing on multiple first processing results of multiple computing participants, and a computing participant obtains the corresponding first processing result by performing a first processing on multiple data blocks obtained from multiple data providers; the data blocks of the data providers are obtained by splitting the target data based on the splitting rule;

[0214] The third acquisition unit 802 is used to obtain multiple target data from multiple data providers;

[0215] The processing unit 803 is used to perform a third processing on the plurality of target data to obtain a third processing result; wherein the third processing is consistent with the processing type of the first processing;

[0216] The verification unit 804 is used to verify the consistency between the third processing result and the second processing result.

[0217] In an optional implementation of the embodiment of the present application, the third acquisition unit 802 is specifically configured to:

[0218] Obtain corresponding verification information from the private storage areas corresponding to different data providers on the blockchain; obtain corresponding target data from the corresponding data provider based on the obtained verification information, and obtain multiple target data of the multiple data providers.

[0219] With regard to the blockchain-based data processing device applied to the auditor disclosed in the embodiment of the present application, since it corresponds to the blockchain-based data processing method applied to the auditor disclosed in any of the above method embodiments, the description is relatively simple. For relevant similarities, please refer to the description of the blockchain-based data processing method applied to the auditor in the above method embodiments, which will not be described in detail here.

[0220] In addition, an embodiment of the present application also discloses a blockchain-based data processing system, which includes: multiple data providers, and multiple computing participants, reconstruction parties, and auditors on the blockchain.

[0221] in:

[0222] Each data provider is used to execute the blockchain-based data processing method applied to the data provider as disclosed in any of the above embodiments;

[0223] Each computing participant is configured to: obtain multiple data blocks transmitted by multiple data providers; a data block transmitted by a data provider to a computing participant is one of multiple data blocks obtained by splitting the target data held by the data provider; perform a first process on the obtained multiple data blocks to obtain a first process result; and send the first process result to the reconstruction party;

[0224] The reconstruction party is used to: perform second processing on multiple first processing results sent by multiple computing participants to obtain second processing results, and upload the second processing results to the blockchain;

[0225] The auditor is used to execute the blockchain-based data processing method applied to the auditor as disclosed in the corresponding embodiment above.

[0226] Regarding the collaborative processing process between the data provider, computing participant, reconstruction party and auditor in the system, please refer to the relevant description of the blockchain-based data processing method disclosed in the above method embodiments, which will not be repeated here.

[0227] It should be noted that the various embodiments in this specification are described in a progressive manner, and each embodiment focuses on the differences from other embodiments. The same or similar parts between the various embodiments can be referenced to each other.

[0228] For the convenience of description, the above system or device is described by dividing it into various modules or units according to its functions. Of course, when implementing the present application, the functions of each unit can be implemented in the same or multiple software and / or hardware.

[0229] It can be known from the description of the above implementation methods that those skilled in the art can clearly understand that the present application can be implemented by means of software plus a necessary general hardware platform. Based on such an understanding, the technical solution of the present application can be essentially or partly contributed to the prior art in the form of a software product, which can be stored in a storage medium such as ROM / RAM, a magnetic disk, an optical disk, etc., and includes several instructions for enabling a computer device (which can be a personal computer, a server, or a network device, etc.) to execute the methods described in the various embodiments of the present application or certain parts of the embodiments.

[0230] Finally, it should be noted that, in this article, relational terms such as first, second, third and fourth are only used 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 "include", "comprise" or any other variants thereof are intended to cover non-exclusive inclusion, so that a process, method, article or device including a series of elements includes not only those elements, but also other elements not explicitly listed, or also includes elements inherent to such process, method, article or device. In the absence of further restrictions, the elements defined by the statement "comprise a ..." do not exclude the presence of other identical elements in the process, method, article or device including the elements.

[0231] The above is only a preferred implementation of the present application. It should be pointed out that for ordinary technicians in this technical field, several improvements and modifications can be made without departing from the principles of the present application. These improvements and modifications should also be regarded as the scope of protection of the present application.

Claims

1. A data processing method based on blockchain, applied to a data provider holding target data; The method comprises: Obtain computing participant information of multiple computing participants on the blockchain and the type of processing required for the target data; The processing type includes a first type and a second type, the first type is an addition type, and the second type is a multiplication type; Splitting the target data using a splitting rule to obtain multiple data blocks of the target data; The splitting rule corresponds to the processing type and the computing participant information; Distributing the plurality of data blocks of the target data to the plurality of computing participants; The processing type is the first type; The step of splitting the target data using a splitting rule to obtain a plurality of data blocks of the target data includes: splitting the target data into a first number of data blocks; wherein the first number is the number of computing participants represented by the computing participant information; The processing type is the second type; the target data is split using a splitting rule to obtain multiple data blocks of the target data, including: splitting the target data into multiple data blocks of a second number; wherein the second number is less than the number of computing participants represented by the computing participant information, the product of multiple second numbers is equal to the number of computing participants, and the multiple second numbers are the numbers of data blocks obtained by splitting the target data of multiple data providers participating in the processing in the data splitting.

2. The method according to claim 1, wherein the processing type is a first type; The distributing the multiple data blocks of the target data to the multiple computing participants includes: Distribute the multiple data blocks of the target data to the multiple computing participants in a one-to-one manner.

3. The method according to claim 1, wherein the processing type is the second type; The distributing the multiple data blocks of the target data to the multiple computing participants includes: In a one-to-many manner, each data block of the target data is sent to a plurality of computing participants selected from the plurality of computing participants; Different data blocks of the target data are sent to different computing participants among the multiple computing participants, and different computing participants obtain different combinations of data blocks from different data providers.

4. The method according to claim 3, wherein: If the multiple data providers are more than two data providers, the data processing tasks corresponding to the multiple data providers are pre-divided into multiple subtasks; Each subtask is used to instruct: performing the second type of processing on target data of two data providers, or performing the second type of processing on two intermediate results, or performing the second type of processing on target data of one data provider and one intermediate result; The intermediate result is: a result obtained by performing the second type of processing on a corresponding portion of the target data in each target data of the multiple data providers.

5. The method according to claim 1, further comprising: Determine verification information of the target data, and store the verification information in a private storage area corresponding to the blockchain of the data provider.

6. A data processing method based on blockchain, applied to the auditing party on the blockchain; The method comprises: Obtaining a second processing result on the blockchain; The second processing result is a result obtained by the reconstruction party on the blockchain performing a second processing on multiple first processing results of multiple computing participants, and a computing participant obtains a corresponding first processing result by performing a first processing on multiple data blocks obtained from multiple data providers; the data blocks of the data provider are obtained by splitting the target data based on the splitting rule; the first processing is consistent with the processing type required for the target data of the data provider, and the processing type includes a first type and a second type, the first type is an addition type, and the second type is a multiplication type; the second processing is a reconstruction processing based on accumulation; the processing type is the first type; the target data is split by the splitting rule, including: splitting the target data into a first number of multiple data blocks; wherein the first number is the number of computing participants; the processing type is the second type; the target data is split by the splitting rule, including: splitting the target data into a second number of multiple data blocks; wherein the second number is less than the number of computing participants, the product of multiple second numbers is equal to the number of computing participants, and the multiple second numbers are the number of data blocks obtained by splitting the target data of multiple data providers participating in the processing in the data splitting; Obtain multiple target data from multiple data providers; Performing a third process on the plurality of target data to obtain a third process result; wherein the third process is consistent with the first process in the processing type; Verify the consistency of the third processing result with the second processing result.

7. The method according to claim 6, wherein obtaining a plurality of target data from a plurality of data providers comprises: Obtain corresponding verification information from the private storage areas corresponding to different data providers on the blockchain; Based on the obtained verification information, corresponding target data is obtained from corresponding data providers to obtain a plurality of target data of the plurality of data providers.

8. A data processing device based on blockchain, applied to a data provider holding target data; The device comprises: A first acquisition unit, configured to obtain computing participant information of multiple computing participants on the blockchain, and a processing type required for the target data; The processing type includes a first type and a second type, the first type is an addition type, and the second type is a multiplication type; A splitting unit, used to split the target data using a splitting rule to obtain multiple data blocks of the target data; The splitting rule corresponds to the processing type and the computing participant information; A transmission unit, configured to distribute the plurality of data blocks of the target data to the plurality of computing participants; The processing type is the first type; The step of splitting the target data using a splitting rule to obtain a plurality of data blocks of the target data includes: splitting the target data into a first number of data blocks; wherein the first number is the number of computing participants represented by the computing participant information; The processing type is the second type; the target data is split using a splitting rule to obtain multiple data blocks of the target data, including: splitting the target data into multiple data blocks of a second number; wherein the second number is less than the number of computing participants represented by the computing participant information, the product of multiple second numbers is equal to the number of computing participants, and the multiple second numbers are the numbers of data blocks obtained by splitting the target data of multiple data providers participating in the processing in the data splitting.

9. A data processing device based on blockchain, applied to the auditor on the blockchain; The device comprises: A second acquisition unit, used to obtain a second processing result on the blockchain; The second processing result is a result obtained by the reconstruction party on the blockchain performing a second processing on multiple first processing results of multiple computing participants, and a computing participant obtains a corresponding first processing result by performing a first processing on multiple data blocks obtained from multiple data providers; the data blocks of the data provider are obtained by splitting the target data based on the splitting rule; the first processing is consistent with the processing type required for the target data of the data provider, and the processing type includes a first type and a second type, the first type is an addition type, and the second type is a multiplication type; the second processing is a reconstruction processing based on accumulation; the processing type is the first type; the target data is split by the splitting rule, including: splitting the target data into a first number of multiple data blocks; wherein the first number is the number of computing participants; the processing type is the second type; the target data is split by the splitting rule, including: splitting the target data into a second number of multiple data blocks; wherein the second number is less than the number of computing participants, the product of multiple second numbers is equal to the number of computing participants, and the multiple second numbers are the number of data blocks obtained by splitting the target data of multiple data providers participating in the processing in the data splitting; A third acquisition unit, used to obtain multiple target data from multiple data providers; A processing unit, configured to perform a third processing on the plurality of target data to obtain a third processing result; wherein the third processing is consistent with the processing type of the first processing; A verification unit is used to verify the consistency between the third processing result and the second processing result.

10. A data processing system based on blockchain, comprising: Multiple data providers, as well as multiple computing participants, reconstructors, and auditors on the blockchain; in: Each data provider is used to perform the method according to any one of claims 1 to 5; Each computing participant is configured to: obtain multiple data blocks transmitted by multiple data providers; a data block transmitted by a data provider to a computing participant is one of multiple data blocks obtained by splitting the target data held by the data provider; perform a first process on the obtained multiple data blocks to obtain a first process result; and send the first process result to the reconstruction party; The reconstruction party is used to: perform second processing on multiple first processing results sent by multiple computing participants to obtain second processing results, and upload the second processing results to the blockchain; The auditor is used to execute the method as described in any one of claims 6-7.

Citation Information

Patent Citations

  • Secure multi-party computing method and system based on block chain and storage medium

    CN111064579A