Data processing method, device and system based on blockchain

By splitting the data on the blockchain and only calculating the data blocks processed by the participants on the blockchain rather than the plain text data, the problem that the smart contract chain code cannot protect the privacy of the data provider is solved, and the data is processed in the blockchain. Efficient and secure data comparison on the chain.

CN112685770BActive Publication Date: 2025-01-21LENOVO (BEIJING) LTD
View PDF 1 Cites 0 Cited by

Patent Information

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

Smart Images

  • Figure CN112685770B_ABST
    Figure CN112685770B_ABST
Patent Text Reader

Abstract

The present application relates to a data processing method, device and system based on blockchain. When the method performs data processing, the computing participants on the blockchain obtain and process corresponding first data blocks obtained by splitting multiple first data and corresponding second data blocks obtained by splitting second data. The agent on the blockchain obtains and processes the processing result data of multiple computing participants. Neither the computing participants nor the agent are involved in the acquisition and processing of the original plaintext data held by the data provider, such as the first data and the second data. That is to say, the privacy data of the data provider is invisible to both the computing participants and the agent, thereby avoiding the privacy leakage of the data provider and ensuring the information security during blockchain data processing.
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 blockchain technology is to achieve distributed and reliable data storage. When blockchain is implemented, data is incrementally stored on multiple nodes in the network, and the secure hash function (SHA) is used to ensure that the data on the chain cannot be tampered with. The consensus algorithm and network transmission protocol are used to achieve consistency in data storage on each node.

[0003] Blockchain can generally be divided into public chain and permissioned chain. The smart contracts used by the current major permissioned chain systems, such as Hyperledger's Fabric, are called chaincodes. Users can use chaincodes to perform basic operations, such as transfers and data comparisons. However, the current smart contract chaincodes only support plaintext comparisons, which will expose the plaintext data of each data provider and make it difficult to protect the privacy of each data provider. 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 computing participants on blockchain;

[0007] The method comprises:

[0008] Acquire multiple first data blocks; each of the first data blocks is a sub-data block obtained by splitting a first data, and the multiple first data are distinguishable from each other;

[0009] Acquire a second data block; the second data block is a sub-data block obtained after the second data is split;

[0010] Performing a first process on the second data block and each of the first data blocks respectively to obtain a plurality of first processing results;

[0011] Obtaining first processing results of other computing participants on the blockchain, and obtaining multiple first processing results corresponding to each of the first data;

[0012] A second processing is performed according to each of the multiple first processing results corresponding to the first data to obtain multiple second processing results.

[0013] Optionally, after performing the second processing according to the multiple first processing results corresponding to each of the first data to obtain multiple second processing results, the method further includes:

[0014] Determine, according to the plurality of second processing results corresponding to each of the first data, whether the second data belongs to a data set formed by each of the first data, obtain a determination result, and upload the determination result to the blockchain;

[0015] Among them, the multiple second processing results corresponding to each first data come from different computing participants.

[0016] Optionally, determining whether the second data belongs to a data set consisting of each of the first data according to the plurality of second processing results corresponding to each of the first data includes:

[0017] Performing a third process on the plurality of second processing results corresponding to each first data to obtain a plurality of third processing results;

[0018] According to the plurality of third processing results, it is determined whether the second data belongs to a data set formed by each of the first data.

[0019] Optionally, performing a first process on the second data block and each of the first data blocks respectively includes:

[0020] Determine, based on a preset modulus, a difference between a first data block of the first data and the second data block;

[0021] Determine the value of the intermediate parameter by using the calculation formula of the intermediate parameter and the first shared data block and the second shared data block;

[0022] Processing the value of the intermediate parameter, the random number data block and the difference to obtain a first processing result corresponding to the first data;

[0023] The sum of the first shared data blocks used by different computing participants satisfies the first numerical condition, and the sum of the second shared data blocks used by different computing participants satisfies the second numerical condition;

[0024] The performing second processing according to the plurality of first processing results corresponding to each of the first data to obtain a plurality of second processing results comprises:

[0025] Based on the modulus, determining a first sum value of a plurality of first processing results corresponding to the first data;

[0026] determining whether the first sum value is a quadratic residue of the module;

[0027] If it is a quadratic residue of the module, performing a fourth process on the value of the intermediate parameter;

[0028] If it is not the quadratic remainder of the module, the fifth processing is performed on the value of the intermediate parameter; the result of the fourth processing or the fifth processing is the second processing result corresponding to the first data.

[0029] Optionally, performing a third process on the plurality of second processing results corresponding to each first data includes:

[0030] Based on the modulus, determining a second sum value of a plurality of second processing results corresponding to each of the first data;

[0031] determining, according to the second sum value corresponding to each of the first data, whether the second data is the same as the first data, and obtaining a third processing result corresponding to the first data;

[0032] The step of determining, according to the plurality of third processing results, whether the second data belongs to a data set formed by each of the first data comprises:

[0033] determining whether only one of the plurality of third processing results corresponding to the plurality of first data indicates that the second data is identical to the corresponding first data;

[0034] If so, the second data belongs to a data set consisting of each of the first data;

[0035] If not, the second data does not belong to the data set formed by each of the first data.

[0036] Optionally, before uploading the determination result to the blockchain, the method further includes:

[0037] In the case where multiple computing participants obtain multiple determination results, if the multiple determination results are verified to be consistent with each other, the step of uploading the determination results to the blockchain is triggered.

[0038] A data processing method based on blockchain, applied to agents on blockchain;

[0039] The method comprises:

[0040] Obtaining a plurality of second processing results corresponding to each first data;

[0041] Wherein, the multiple second processing results corresponding to each first data come from different computing participants, each of the second processing results is a result obtained by performing a second processing on multiple first processing results of a first data, and each of the first processing results is a result obtained by performing a first processing on a second data block of the second data and a first data block of the first data; the multiple first data are distinguishable from each other;

[0042] Performing a third process on the plurality of second processing results corresponding to each first data to obtain a third processing result corresponding to each first data;

[0043] determining, according to the third processing result corresponding to each first data, whether the second data belongs to a data set formed by each first data, to obtain a determination result;

[0044] The determination result is uploaded to the blockchain.

[0045] A data processing device based on blockchain, applied to computing participants on blockchain;

[0046] The device comprises:

[0047] A first acquisition unit is used to acquire multiple first data blocks and acquire second data blocks; each of the first data blocks is a sub-data block obtained by splitting the first data, and the multiple first data are different from each other; the second data block is a sub-data block obtained by splitting the second data;

[0048] A first processing unit, configured to perform a first processing on the second data block and each of the first data blocks respectively, to obtain a plurality of first processing results;

[0049] A second acquisition unit is used to acquire first processing results of other computing participants on the blockchain, and obtain multiple first processing results corresponding to each of the first data;

[0050] The second processing unit is used to perform second processing according to the multiple first processing results corresponding to each of the first data to obtain multiple second processing results.

[0051] A data processing device based on blockchain, applied to an agent on the blockchain;

[0052] The device comprises:

[0053] A third acquisition unit, used to obtain a plurality of second processing results corresponding to each first data;

[0054] Wherein, the multiple second processing results corresponding to each first data come from different computing participants, each of the second processing results is a result obtained by performing a second processing on multiple first processing results of a first data, and each of the first processing results is a result obtained by performing a first processing on a second data block of the second data and a first data block of the first data; the multiple first data are distinguishable from each other;

[0055] A third processing unit, configured to perform a third processing on the plurality of second processing results corresponding to each first data, to obtain a third processing result corresponding to each first data;

[0056] a determination unit, configured to determine, according to a third processing result corresponding to each first data, whether the second data belongs to a data set consisting of each first data, to obtain a determination result;

[0057] A transmission unit is used to upload the determination result to the blockchain.

[0058] A data processing system based on blockchain, comprising:

[0059] A first data provider holds a plurality of first data;

[0060] A second data provider, holding the second data;

[0061] Multiple computing participants and agents on the blockchain;

[0062] Among them, the computing participant is used to execute the blockchain-based data processing method applied to the computing participant as described in any of the above items; the agent is used to execute the blockchain-based data processing method applied to the agent as described in any of the above items.

[0063] It can be seen from the above scheme that the blockchain-based data processing method, device and system provided by the present application, when performing data processing, the computing participants on the blockchain obtain and process the corresponding first data blocks obtained by splitting multiple first data, and the corresponding second data blocks obtained by splitting the second data, and the agent on the blockchain obtains and processes the processing result data of multiple computing participants. Neither the computing participants nor the agent are involved in the acquisition and processing of the original plaintext data held by the data provider, such as the first data and the second data. In other words, the privacy data of the data provider is invisible to both the computing participants and the agent, thereby avoiding the privacy leakage of the data provider and ensuring the information security during blockchain data processing. BRIEF DESCRIPTION OF THE DRAWINGS

[0064] 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.

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

[0066] Figure 2 It is a schematic diagram of the prover provided in the embodiment of the present application performing data splitting and distributing data blocks to each computing participant;

[0067] Figure 3 It is a schematic diagram of the query party performing data splitting and distributing data blocks to various computing participants provided by an embodiment of the present application;

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

[0069] Figure 5 is a schematic diagram of executing an equal algorithm once on each first data provided by an embodiment of the present application;

[0070] Figure 6 It is an implementation code of the equal algorithm provided in the embodiment of the present application;

[0071] Figure 7 It is another flowchart of a blockchain-based data processing method applied to a computing participant provided in an embodiment of the present application;

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

[0073] Fig. 9 It is a structural diagram of a blockchain-based data processing device applied to a computing participant provided in an embodiment of the present application;

[0074] Fig.10 It is a structural diagram of a blockchain-based data processing device applied to an agent provided in an embodiment of the present application. DETAILED DESCRIPTION

[0075] 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.

[0076] The current smart contract chaincode only supports comparison of the plaintext data of the data provider, that is, the blockchain node that accepts the delegation simultaneously obtains the plaintext of different data to be compared, processes it locally, and transmits the result back to the blockchain. There is no operator that supports data comparison under the condition of protecting the privacy of the data provider.

[0077] In order to solve the above technical problems, the present application provides a blockchain-based data processing method, device and system, which provides on-chain computing capabilities, and processes the data blocks obtained by splitting the data held by the data owner instead of the original plaintext data based on the on-chain computing capabilities, thereby realizing data comparison while protecting the privacy of the data provider, so as to avoid the leakage of the data provider's privacy data and ensure the information security during blockchain data processing.

[0078] See also Figure 1 , 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 computing participant on the blockchain, and the computing participant can be a node with data processing function on the blockchain. There are multiple computing participants, and multiple computing participants collaborate to perform the data processing required in the data comparison process.

[0079] As a computing participant, a node 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).

[0080] 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, in traditional technology, 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 transactions (such as data comparison).

[0081] like Figure 1 As shown, the blockchain-based data processing method of this embodiment may include:

[0082] Step 101, obtaining a plurality of first data blocks; each of the first data blocks is a sub-data block obtained by splitting a first data, and the plurality of first data are distinguishable from each other.

[0083] The purpose of this application is to realize a data comparison operator based on privacy protection, which can be specifically applied to index query proof. It determines whether index K is in directory L through data comparison based on privacy protection (that is, proves whether index K belongs to the data set corresponding to directory L). It can also expand the application scenarios of smart contracts based on the technical solution of this application, and develop smart contract applications related to privacy protection, such as developing a privacy retrieval system based on index query proof.

[0084] Step 102: Obtain a second data block; the second data block is a sub-data block obtained after splitting the second data.

[0085] Each first data block among the multiple first data blocks obtained by the computing participant is a corresponding data block in the data block set obtained by the first data provider splitting each first data among the different first data held by the computing participant; the second data block obtained by the computing participant is a data block in the data block set obtained by the second data provider splitting the second data held by the computing participant.

[0086] The first data provider may be a certifier, which owns a directory L, where L includes N entries: L1, L2, ..., L N, each entry is a first data; the second data provider can be the query party, which has index K, that is, the second data, and wants to know whether K is in directory L. Multiple computing participants participate in the operation to determine or prove whether index K is in directory L, but the premise is that the computing participants cannot know the plaintext data of directory L and index K.

[0087] In implementation, optionally, the index K and each entry in the directory L can be but not limited to numerical data or text data. For example, the querying party has a numerical value K (such as an account balance, qualification level, etc.) and wants to know whether the numerical value K belongs to the set of numerical values ​​included in the proving party's directory; or, the querying party has text data K (such as a paper title or keywords) and wants to know whether the text K belongs to the set of texts included in the proving party's directory, etc.

[0088] In order to achieve data comparison based on privacy protection, the first data provider splits each entry in the directory L, that is, each first data, into multiple data blocks based on the splitting rule in advance, obtains multiple first data blocks corresponding to each first data, and distributes the multiple first data blocks corresponding to each first data to multiple computing parties; similarly, the second data provider splits the index K, that is, the second data, into multiple data blocks based on the splitting rule, obtains multiple second data blocks corresponding to the second data, and distributes the multiple second data blocks corresponding to the second data to multiple computing parties.

[0089] Optionally, in the embodiment of the present application, a large prime number P is predefined as a system parameter of the blockchain, so that all operations in the system are mapped to operations on a finite field Fp (i.e., {0, 2, 3…p-1}). In view of this, the first data provider, when performing each entry L as the first data, i Before splitting, first encode it to get L' i =E(L i ), before splitting the index K as the second data, the second data provider encodes K accordingly to obtain K'=E(K). The encoding method is not unique. One feasible encoding method is to first perform a hash operation on the data, and then perform a modulo operation on P based on the hash operation result, that is:

[0090] E(L i )=Hash(L i )modp;

[0091] E(K)=Hash(K)modp.

[0092] Afterwards, the first data provider generates each encoded first data item L' iThe first data is split according to the splitting rule to obtain a plurality of first data blocks corresponding to the first data, and the second data provider correspondingly splits the encoded second data, namely K', according to the splitting rule to obtain a plurality of second data blocks corresponding to the second data.

[0093] The splitting method is not unique, and can be a splitting based on addition or a splitting based on a polynomial, and in the splitting based on addition or polynomial, a splitting oriented to redundant calculation or a splitting oriented to non-redundant calculation can be further adopted. The embodiment of the present application will mainly take the splitting based on addition and oriented to non-redundant calculation as an example to illustrate the method of the present application.

[0094] In the addition-based and non-redundant computation-oriented splitting, the splitting rule can be set to, but is not limited to:

[0095] The data is split according to random numbers based on the number of computing participants on the blockchain, so that the number of data blocks obtained by splitting is related to the number of computing participants, and the value size of the data blocks obtained by splitting is related to the size of the random number.

[0096] Specifically, assuming that the number of computing participants is M, based on the above splitting rule, the first data provider (prover) divides each encoded first data L' into i Split into M first data blocks: L' i1 , L' i2 …L' iM , and L' ij Send to the jth computing participant to achieve the distribution of different first data blocks of each first data to different computing participants, as follows Figure 2 shown.

[0097] The following is an example of how to split data based on random numbers and the number of participants. Take the data 100 as an example. Assuming it needs to be split into two data blocks, and assuming the random number used is 37, the data 100 can be split into 37 and 73. If the data needs to be split into more than two data blocks, the data splitting can be completed based on multiple random numbers.

[0098] Similarly, the second data provider (querying party) splits the encoded second data K' into M second data blocks according to the random number: K'1, K'2...K' M , and K' j Send to the jth computing participant to achieve the distribution of different second data blocks of the second data to different computing participants, as follows Figure 3 shown.

[0099] The computing participants correspondingly obtain a plurality of corresponding first data blocks of the plurality of first data and a corresponding second data block of the second data.

[0100] 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.

[0101] In implementation, optionally, the process of encoding, splitting and distributing the first data block of each first data held by the first data provider to the computing participants can be used as the initialization process. When each computing participant obtains and saves the corresponding first data block of each first data transmitted by the first data provider (such as saving it to the computing participant's local database), the initialization is considered to be completed, and the initialization completion status is saved to the blockchain network. Subsequently, when the second data provider queries the blockchain network to ensure that it is in the initialization completion state, it will perform the encoding, splitting and data block transmission process of the second data held by it to the blockchain; but it is not limited to this, and the first data provider and the second data provider can also perform the encoding, splitting and transmission of the data in parallel at the same time, which is not limited in this embodiment.

[0102] Step 103: Perform a first process on the second data block and each of the first data blocks respectively to obtain a plurality of first processing results.

[0103] Afterwards, the computing participants perform the first processing on the second data block obtained and each first data block obtained. For example, the jth computing participant performs the first processing on the second data block K obtained. j Respectively with the first data block L 1j , L 2j …L Nj Perform the first process.

[0104] The first process may specifically include:

[0105] 1) Based on a preset modulus, determine a difference between a first data block of first data and the second data block.

[0106] The preset modulus is the large prime number P.

[0107] The difference between the first data block and the second data block of the first data determined based on a preset modulus refers to the result obtained by performing a modulo operation on the difference between the first data block and the second data block with respect to p, so as to map the difference between the first data block and the second data block of the first data to a corresponding numerical value on the finite field Fp.

[0108] 2) Determine the value of the intermediate parameter using the calculation formula of the intermediate parameter and the first shared data block and the second shared data block.

[0109] The sum of the first shared data blocks used by different computing participants satisfies a first numerical condition, and the sum of the second shared data blocks used by different computing participants satisfies a second numerical condition.

[0110] Specifically, the value of the intermediate parameter _b can be calculated using the following formula:

[0111] _b=-4*share_bit+share(5);

[0112] in:

[0113] share_bit indicates the first shared data block used by the computing participants. The sum of the first shared data blocks used by different computing participants is 0 or 1;

[0114] share(5) indicates the second shared data block used by the computing participants, and the sum of the second shared data blocks used by different computing participants is 5.

[0115] 3) Processing the value of the intermediate parameter, the random number data block and the difference to obtain a first processing result corresponding to the first data;

[0116] Specifically, the first processing result_c is calculated using the following formula:

[0117] _c=diff*_r+(_b*rp*rp);

[0118] Wherein: diff represents the difference between the first data block and the second data block; the tuple (r, rp) represents the random number data block.

[0119] Step 104: Obtain the first processing results of other computing participants on the blockchain, and obtain multiple first processing results corresponding to each of the first data.

[0120] After the computing participant performs the above-mentioned first processing, a first processing result corresponding to each first data is obtained. On this basis, the first processing result obtained by executing the above-mentioned first processing on each first data of other computing participants can be obtained by broadcasting or other means, and multiple first processing results corresponding to each first data can be obtained. For example, for the first data L i , correspondingly, M first processing results _c obtained by the M computing nodes respectively executing the first processing can be obtained.

[0121] Step 105: Perform a second process according to each of the multiple first processing results corresponding to the first data to obtain multiple second processing results.

[0122] Afterwards, the computing participants perform second processing according to the multiple first processing results corresponding to each first data, specifically including:

[0123] 1) determining a first sum value of a plurality of first processing results corresponding to the first data based on the modulus;

[0124] Based on the modulus, the first sum value of the multiple first processing results corresponding to the first data determined refers to the result obtained by performing a modulo operation on the sum value of the multiple first processing results corresponding to the first data with respect to p, so that the sum value of the multiple first processing results corresponding to the first data is mapped to a corresponding numerical value on the finite field Fp.

[0125] 2) Determine whether the first sum value is a quadratic residue of the module.

[0126] Specifically, the value of the quadratic characteristic of the first sum, that is, the Legendre symbol legendre (c), can be calculated, and based on the value of the quadratic characteristic of the first sum, it can be determined whether the first sum is a quadratic residue modulo p.

[0127] The calculation formula of the Legendre symbol legendre(c) of the first sum is as follows:

[0128]

[0129] In this formula, c represents the first sum value.

[0130] If the value of this formula is 1 after calculation, then the first sum is a quadratic residue modulo p; if the value of this formula is -1, then the first sum is not a quadratic residue modulo p.

[0131] 3) If it is a quadratic remainder of the module, perform a fourth processing on the value of the intermediate parameter.

[0132] The fourth process specifically includes:

[0133] The second processing result x corresponding to the first data is obtained by using the following calculation formula:

[0134] x = (_b + share(1)) / 2;

[0135] Wherein: share(1) represents the third shared data block used by the computing participants, and the sum of the third shared data blocks used by each computing participant is 1.

[0136] 4) If it is not the quadratic residue of the module, the fifth processing is performed on the value of the intermediate parameter.

[0137] The fifth process specifically includes:

[0138] The second processing result x' corresponding to the first data is obtained by using the following calculation formula:

[0139] x'=(share(1)-_b) / 2.

[0140] The result of the fourth processing or the fifth processing is the second processing result corresponding to the first data.

[0141] Subsequently, the computing participant or agent may further determine whether the second data belongs to the data set composed of each first data according to the multiple second processing results corresponding to each first data, obtain a determination result, and upload the determination result to the blockchain;

[0142] Among them, the multiple second processing results corresponding to each first data come from different computing participants.

[0143] The blockchain-based data processing method provided in this embodiment, when performing data processing, the computing participants on the blockchain obtain and process the corresponding first data blocks obtained by splitting multiple first data, and the corresponding second data blocks obtained by splitting the second data, and do not involve the acquisition and processing of the original plaintext data held by the data provider, such as the first data and the second data. In other words, the private data of the data provider is invisible to the computing participants, thereby avoiding the privacy leakage of the data provider and ensuring the information security during blockchain data processing.

[0144] In addition, since in traditional technology, the information of each data provider (such as the data of the prover and the queryer) is obtained by all computing participants (such as multiple endorsement nodes), each computing participant can independently complete the data processing required for the transaction task, and the data processing process corresponding to the transaction task does not involve 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 to each computing participant instead of the complete data, so that each computing participant (or the agent introduced subsequently) can complete the data processing required for the transaction 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.

[0145] In an optional embodiment of the present application, after the computing participants perform the second processing according to the multiple first processing results corresponding to each first data and obtain the multiple second processing results, the computing participants continue to act as the execution subject to determine whether the second data belongs to the data set composed of each first data according to the multiple second processing results corresponding to each first data, and upload the determined result to the blockchain.

[0146] In view of this, see Figure 4The flowchart of the data processing method based on blockchain is shown. In the data processing method applied to the computing participant of the present application, after step 105, the computing participant can further perform the following steps 106-108 to determine whether the second data belongs to the data set composed of each first data, and upload the determination result to the blockchain:

[0147] Step 106: Perform a third process on the multiple second processing results corresponding to each first data to obtain multiple third processing results.

[0148] Among them, the multiple second processing results corresponding to each first data come from different computing participants.

[0149] During implementation, for multiple computing participants, some or all of them can be selected as execution entities to perform the processing of steps 106-108, and based on broadcasting and other means, the computing participants serving as execution entities can obtain the second processing results of other computing participants, and accordingly obtain multiple second processing results corresponding to each first data, and perform third processing on the multiple second processing results corresponding to each first data to obtain multiple third processing results.

[0150] The third process specifically includes:

[0151] 1) Based on the module, determine a second sum value of a plurality of second processing results corresponding to each first data.

[0152] Based on the modulus, the second sum value of the multiple second processing results corresponding to each first data is determined, which refers to the result obtained by performing a modulo operation on p for the sum value of the multiple second processing results corresponding to each first data, so that the sum value of the multiple second processing results corresponding to each first data is mapped to a corresponding numerical value on the finite field Fp.

[0153] 2) determining whether the second data is the same as the first data according to the second sum value corresponding to each first data, and obtaining a third processing result corresponding to the first data;

[0154] Specifically, if the last bit of the binary data corresponding to the second sum value is 1, it is determined that the second data is the same as the first data; otherwise, if the last bit of the binary data corresponding to the second sum value is 0, it is determined that the second data is different from the first data.

[0155] Corresponding to the multiple first data of the first data provider, multiple third processing results will be obtained respectively, and the third processing result corresponding to each first data can be used to indicate whether the second data is the same as the first data. In essence, the embodiment of the present application is equivalent to each first data of the multiple first data of the first data provider, such as each entry L in the directory L. i, respectively executing the data comparison process including the first process, the second process, and the third process. This embodiment refers to this process as the algorithm process of the equal algorithm. For details, please refer to Figure 5 shown.

[0156] in addition, Figure 6 An implementation code of the equal algorithm is also provided as an example.

[0157] Step 107: Determine whether the second data belongs to a data set consisting of each of the first data based on the multiple third processing results, and obtain a determination result.

[0158] Step 108: Upload the determination result to the blockchain.

[0159] On this basis, the computing participant as the execution subject determines whether only one third processing result among the multiple third processing results corresponding to the multiple first data indicates that the second data is the same as the corresponding first data; if so, the second data belongs to the data set composed of the various first data; if not, the second data does not belong to the data set composed of the various first data.

[0160] Finally, the determination result of whether the second data belongs to the data set composed of each first data is uploaded to the blockchain, such as the on-chain ledger of the blockchain, for query by the first data provider (prover) and / or the second data provider (queryer), and corresponding applications are launched based on the query results. For example, the prover performs a result query, and when the determination result shows that the second data (such as paper title, keywords) of the second data provider belongs to the directory of the first data provider (such as paper title set, keyword set), the queryer is fed back with each object matching the second data (such as returning a paper set matching the paper title or keyword provided by the queryer). When the determination result shows that the second data does not belong to the directory of the first data provider, corresponding response information indicating the failure of the query can be returned to the queryer.

[0161] In this embodiment, since the equal algorithm is executed to compare the second data with each first data to determine whether the second data belongs to a data set composed of multiple first data, the computing participant as the execution subject does not involve the acquisition and processing of the original plaintext data held by the data provider, such as the first data and the second data. In other words, the privacy data of the data provider is invisible to the computing participant, thereby avoiding the privacy leakage of the data provider, realizing data comparison while protecting the privacy of the data provider, and ensuring the information security during blockchain data processing.

[0162] The inventor has verified that the equal algorithm of the embodiment of the present application (including the above-mentioned first processing, second processing, and third processing) can ensure that when the second data is equal to the first data, the third processing result of 1 will be obtained, and when the second data is not equal to the first data, there is a probability that the third processing result of 0 or 1 will be obtained.

[0163] Therefore, the determination method of the above embodiment (determining that the second data is equal to the first data when the corresponding third processing result is 1, and determining that the second data is not equal to the first data when the corresponding third processing result is 0) may have certain errors, which will result in the final determination result of "whether the second data belongs to a data set composed of multiple first data" being not accurate enough.

[0164] To solve this technical problem, for each first data, the equal algorithm can be executed multiple times in a loop, such as 32 times or other times, to obtain multiple third processing results corresponding to each first data. In the process of executing the equal algorithm multiple times in a loop for each first data, different random numbers (such as (r, rp)) are repeatedly generated and / or different shared data blocks (such as share_bit, share(5), share(1)) are used for judgment. If a third processing result of 1 is obtained each time, it is determined that the second data is the same as the first data. Otherwise, if there is a third processing result of 0 in the loop processing, it is determined that the second data is not the same as the first data.

[0165] Through the above-mentioned loop processing, the misjudgment rate in the processing process based on the equal algorithm can be greatly reduced, and accordingly the final determination result of "whether the second data belongs to a data set composed of multiple first data" can have higher accuracy.

[0166] In an alternative embodiment, see Figure 7 The data processing method applied to the computing participants in this embodiment may further include the following processing between step 107 and step 108:

[0167] Step 107': when multiple computing participants obtain multiple determination results, determine whether the multiple determination results are consistent. If the multiple determination results are verified to be consistent with each other, trigger the processing of uploading the determination results to the blockchain in step 108.

[0168] Specifically, the determination result is used to indicate whether the second data belongs to a data set consisting of a plurality of first data.

[0169] When multiple computing participants on the blockchain respectively serve as execution entities and obtain multiple determination results, before uploading the determination results to the chain, it is possible to first verify whether the multiple determination results are consistent with each other.

[0170] During implementation, the computing participants can specifically collect multiple determination results together based on broadcasting and other means, and determine whether the multiple determination results are the same, for example, whether they all indicate that the second data belongs to a data set composed of multiple first data, or whether they all indicate that the second data does not belong to a data set composed of multiple first data. If the multiple determination results are the same, the determination results will be uploaded to the chain. Otherwise, if there are different situations in which the multiple determination results are different, it can be known that there must be an error in the processing process of at least one computing participant. In this case, the determination result will be refused to be uploaded to the chain. Subsequently, the data comparison process and verification process can be re-executed, and the operation of uploading the determination result to the chain can be performed after the verification is passed, so as to ensure the correctness of the uploaded data as much as possible.

[0171] When the computing parties perform the second processing according to the multiple first processing results corresponding to each first data and obtain multiple second processing results, optionally, the agent on the blockchain rather than the computing party can serve as the executor to determine whether the second data belongs to the data set composed of each first data according to the multiple second processing results corresponding to each first data, and upload the determination result to the blockchain.

[0172] Therefore, the embodiment of the present application also discloses a blockchain-based data processing method applied to an agent on the blockchain, and the agent may include one or more nodes on the blockchain.

[0173] See also Figure 8 The flowchart of the data processing method based on blockchain is shown, and the data processing method applied to the agent may include:

[0174] Step 801, obtaining a plurality of second processing results corresponding to each first data;

[0175] Among them, the multiple second processing results corresponding to each first data come from different computing participants, each of the second processing results is the result obtained by performing a second processing on multiple first processing results of a first data, and each of the first processing results is the result obtained by performing a first processing on a second data block of the second data and a first data block of the first data; the multiple first data are distinguished from each other.

[0176] Step 802: Perform a third process on the multiple second processing results corresponding to each first data to obtain a third processing result corresponding to each first data.

[0177] The third process may include:

[0178] Based on a pre-set modulus, such as the modulus p above, determine the second sum value of multiple second processing results corresponding to each first data; and based on the second sum value corresponding to each first data, determine whether the second data is the same as the first data, and obtain a third processing result corresponding to the first data.

[0179] Step 803: Determine whether the second data belongs to a data set consisting of each first data according to the third processing result corresponding to each first data, and obtain a determination result.

[0180] Among them, it can be specifically determined whether only one third processing result among multiple third processing results corresponding to multiple first data indicates that the second data is the same as the corresponding first data; if so, the second data belongs to the data set composed of each first data; if not, the second data does not belong to the data set composed of each first data.

[0181] Step 804: Upload the determination result to the blockchain.

[0182] Optionally, in order to improve the accuracy of the final determination result of "whether the second data belongs to a data set composed of multiple first data", the agent may also, for each first data, repeatedly execute the process of obtaining the second processing results from each computing participant, and performing the third processing on the multiple second processing results corresponding to each first data.

[0183] The process by which the agent obtains a determination result indicating whether the second data belongs to a data set composed of each of the first data by executing the third processing, and the process by which the third processing is executed multiple times in a loop to improve the accuracy of the final determination result are consistent with the corresponding processing when the computing participant is the execution subject. For details, please refer to the corresponding processing part of the computing party and will not be described in detail here.

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

[0185] In this example, it is assumed that the modulus p=17, the number of computing nodes selected on the blockchain is 3, and it is assumed that an entry in the prover's directory is encoded to obtain A=13, and the query party data is encoded to obtain B=14. Now, taking the privacy-based comparison processing of A and B as an example, the main processing part of the method of this application is explained.

[0186] Each data in A and B will be split into three data blocks, for example, A = 3 + 6 + 4, B = 2 + 8 + 4 and distributed to three computing nodes respectively. At this time, there are:

[0187] Node 1: A1=3, B1=2;

[0188] Node 2: A2=6, B2=8;

[0189] Node 3: A3=4, B3=4.

[0190] Diff is used to represent the difference obtained by subtracting the corresponding data blocks of A and B at each node. By calculating A1-B1, A2-B2, and A3-B3 at each computing node, we can get:

[0191] Diff = 1 Diff = 15 Diff=0

[0192] Assume that the share_bit used by the three nodes (the sum of the share_bit of the three nodes is 0 or 1) are:

[0193] 6 7 5

[0194] At the same time, assume that the Share(5) used by the three nodes (the sum of the Share(5) of the three nodes is 5) are:

[0195] 2 2 1

[0196] Based on the calculation formula _b = -4*share_bit + share (5), the intermediate parameter _b of each node can be obtained as:

[0197] _b=-4*6+2=12 _b=-4*7+2=8 _b=-4*5+1=15

[0198] The random number data block Rand_share used by the three nodes can take any value, assuming it is:

[0199] _r=1 _r=6 _r=3 Rp=4 Rp=3 Rp=8

[0200] According to the calculation formula _c=diff*_r+(_b*rp*rp), each node can get:

[0201] _c=1*1+(12*4*4)=6 _c=15*6+(8*3*3)=9 _c=0*3+(2*8*8)=9

[0202] Then, based on broadcasting, the values ​​of the three parties _c are obtained at each node, and the sum of the three parties _c is calculated based on the modulus p, Open(_c), to obtain the first sum c, that is, 6+9+9=7mod17;

[0203] Next, based on the formula Calculate the Legendre symbol legendre(c) of c, and determine whether c is a quadratic residue modulo p based on the Legendre symbol legendre(c);

[0204] There are 7 8mod17=16, that is, -1mod17, and -1 indicates that the first sum is not a quadratic residue modulo p, so the second processing result of each node is calculated using the formula x'=(share(1)-_b) / 2. Here, it is assumed that the Share(1) of each node (the sum of the Share(1) of the three nodes is 1) is as follows:

[0205] 7 8 3

[0206] Then according to x'=(share(1)-_b) / 2, each node can obtain:

[0207]

[0208] Then, based on broadcasting, the values ​​of the three x's are obtained at at least one node, and the sum of the three x's is calculated as Open(x')=17=0. Taking the last bit 0, it can be known that A≠B.

[0209] Corresponding to the above-mentioned blockchain-based data processing method applied to a computing participant, the present application embodiment further discloses a blockchain-based data processing device, which is applied to a computing participant on a blockchain, see Fig. 9 The schematic diagram of the structure of the device is shown, and the device may include:

[0210] The first acquisition unit 901 is used to acquire multiple first data blocks and acquire second data blocks; each of the first data blocks is a sub-data block obtained by splitting the first data, and the multiple first data are different from each other; the second data block is a sub-data block obtained by splitting the second data;

[0211] A first processing unit 902 is used to perform a first processing on the second data block and each of the first data blocks respectively to obtain a plurality of first processing results;

[0212] The second acquisition unit 903 is used to acquire the first processing results of other computing participants on the blockchain, and obtain multiple first processing results corresponding to each of the first data;

[0213] The second processing unit 904 is used to perform second processing according to the multiple first processing results corresponding to each of the first data to obtain multiple second processing results.

[0214] In an optional implementation of the embodiment of the present application, after the second processing unit 904 performs the second processing according to the multiple first processing results corresponding to each of the first data to obtain the multiple second processing results, it is further configured to:

[0215] Determine, according to the plurality of second processing results corresponding to each of the first data, whether the second data belongs to a data set formed by each of the first data, obtain a determination result, and upload the determination result to the blockchain;

[0216] Among them, the multiple second processing results corresponding to each first data come from different computing participants.

[0217] In an optional implementation of the embodiment of the present application, the second processing unit 904 determines whether the second data belongs to a data set consisting of each of the first data according to multiple second processing results corresponding to each of the first data, including:

[0218] Performing a third process on the plurality of second processing results corresponding to each first data to obtain a plurality of third processing results;

[0219] According to the plurality of third processing results, it is determined whether the second data belongs to a data set formed by each of the first data.

[0220] In an optional implementation of the embodiment of the present application, the first processing unit 902 is specifically configured to:

[0221] Determine, based on a preset modulus, a difference between a first data block of the first data and the second data block;

[0222] Determine the value of the intermediate parameter by using the calculation formula of the intermediate parameter and the first shared data block and the second shared data block;

[0223] Processing the value of the intermediate parameter, the random number data block and the difference to obtain a first processing result corresponding to the first data;

[0224] The sum of the first shared data blocks used by different computing participants satisfies the first numerical condition, and the sum of the second shared data blocks used by different computing participants satisfies the second numerical condition;

[0225] The second processing unit 904 performs second processing according to the multiple first processing results corresponding to each of the first data to obtain multiple second processing results, including:

[0226] Based on the modulus, determining a first sum value of a plurality of first processing results corresponding to the first data;

[0227] determining whether the first sum value is a quadratic residue of the module;

[0228] If it is a quadratic residue of the module, performing a fourth process on the value of the intermediate parameter;

[0229] If it is not the quadratic remainder of the module, the fifth processing is performed on the value of the intermediate parameter; the result of the fourth processing or the fifth processing is the second processing result corresponding to the first data.

[0230] In an optional implementation of the embodiment of the present application, the second processing unit 904 performs a third processing on the plurality of second processing results corresponding to each first data, including:

[0231] Based on the modulus, determining a second sum value of a plurality of second processing results corresponding to each of the first data;

[0232] determining, according to the second sum value corresponding to each of the first data, whether the second data is the same as the first data, and obtaining a third processing result corresponding to the first data;

[0233] The second processing unit 904 determines whether the second data belongs to a data set consisting of each of the first data according to the plurality of third processing results, including:

[0234] determining whether only one of the plurality of third processing results corresponding to the plurality of first data indicates that the second data is identical to the corresponding first data;

[0235] If so, the second data belongs to a data set consisting of each of the first data;

[0236] If not, the second data does not belong to the data set formed by each of the first data.

[0237] In an optional implementation of the embodiment of the present application, before uploading the determination result to the blockchain, the second processing unit 904 is further configured to:

[0238] In the case where multiple computing participants obtain multiple determination results, if the multiple determination results are verified to be consistent with each other, the process of uploading the determination results to the blockchain is triggered.

[0239] As for the blockchain-based data processing device applied to computing participants disclosed in the embodiments of the present application, since it corresponds to the blockchain-based data processing method applied to computing participants 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 computing participants in the above method embodiments, which will not be described in detail here.

[0240] Corresponding to the above-mentioned blockchain-based data processing method applied to the agent, the embodiment of the present application also discloses another blockchain-based data processing device, which is applied to the agent on the blockchain, see Fig.10 The schematic diagram of the structure of the device is shown, and the device may include:

[0241] The third acquisition unit 1001 is used to obtain a plurality of second processing results corresponding to each first data;

[0242] Wherein, the multiple second processing results corresponding to each first data come from different computing participants, each of the second processing results is a result obtained by performing a second processing on multiple first processing results of a first data, and each of the first processing results is a result obtained by performing a first processing on a second data block of the second data and a first data block of the first data; the multiple first data are distinguishable from each other;

[0243] A third processing unit 1002 is used to perform a third processing on the plurality of second processing results corresponding to each first data to obtain a third processing result corresponding to each first data;

[0244] A determination unit 1003, configured to determine whether the second data belongs to a data set consisting of each of the first data according to a third processing result corresponding to each of the first data, to obtain a determination result;

[0245] The transmission unit 1004 is used to upload the determination result to the blockchain.

[0246] With regard to the blockchain-based data processing device applied to the agent disclosed in the embodiment of the present application, since it corresponds to the blockchain-based data processing method applied to the agent 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 agent in the above method embodiments, which will not be described in detail here.

[0247] In addition, an embodiment of the present application also discloses a blockchain-based data processing system, which includes: a data provider, multiple computing participants and an agent on the blockchain.

[0248] The data providers include a first data provider and a second data provider; the first data provider holds a plurality of first data and is used as a proving party; the second data provider holds a second data and is used as a querying party to learn whether the second data belongs to a data set consisting of a plurality of first data of the first data provider;

[0249] Each computing participant is used to execute the blockchain-based data processing method applied to the computing participant as provided in any of the above embodiments;

[0250] An agent is used to execute the blockchain-based data processing method applied to the agent as provided in any of the above embodiments.

[0251] Regarding the data interaction between the data providers, computing participants and agents in the system, as well as the collaborative processing process between the computing participants and agents on the blockchain, 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.

[0252] 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.

[0253] 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.

[0254] 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.

[0255] 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.

[0256] 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 computing participants on blockchain; The method comprises: Acquire multiple first data blocks; Each of the first data blocks is a sub-data block obtained by splitting a first data, and the plurality of first data are distinguishable from each other; Obtaining a second data block; The second data block is a sub-data block obtained after splitting the second data; Performing a first process on the second data block and each of the first data blocks respectively to obtain a plurality of first processing results; Obtaining first processing results of other computing participants on the blockchain, and obtaining multiple first processing results corresponding to each of the first data; A second processing is performed according to each of the multiple first processing results corresponding to the first data to obtain multiple second processing results.

2. The method according to claim 1, after performing second processing according to the plurality of first processing results corresponding to each of the first data to obtain a plurality of second processing results, further comprising: Determine, according to the plurality of second processing results corresponding to each of the first data, whether the second data belongs to a data set formed by each of the first data, obtain a determination result, and upload the determination result to the blockchain; Among them, the multiple second processing results corresponding to each first data come from different computing participants.

3. The method according to claim 2, wherein determining whether the second data belongs to a data set consisting of each of the first data according to the plurality of second processing results corresponding to each of the first data comprises: Performing a third process on the plurality of second processing results corresponding to each first data to obtain a plurality of third processing results; According to the plurality of third processing results, it is determined whether the second data belongs to a data set formed by each of the first data.

4. The method according to claim 3, wherein the step of performing a first process on the second data block and each of the first data blocks respectively comprises: Determine, based on a preset modulus, a difference between a first data block of the first data and the second data block; Determine the value of the intermediate parameter by using the calculation formula of the intermediate parameter and the first shared data block and the second shared data block; Processing the value of the intermediate parameter, the random number data block and the difference to obtain a first processing result corresponding to the first data; The sum of the first shared data blocks used by different computing participants satisfies the first numerical condition, and the sum of the second shared data blocks used by different computing participants satisfies the second numerical condition; The performing second processing according to the plurality of first processing results corresponding to each of the first data to obtain a plurality of second processing results comprises: Based on the modulus, determining a first sum value of a plurality of first processing results corresponding to the first data; determining whether the first sum value is a quadratic residue of the module; If it is a quadratic residue of the module, performing a fourth process on the value of the intermediate parameter; If it is not the quadratic remainder of the module, the fifth processing is performed on the value of the intermediate parameter; the result of the fourth processing or the fifth processing is the second processing result corresponding to the first data.

5. The method according to claim 4, wherein the performing third processing on the plurality of second processing results corresponding to each first data comprises: Based on the modulus, determining a second sum value of a plurality of second processing results corresponding to each of the first data; determining, according to the second sum value corresponding to each of the first data, whether the second data is the same as the first data, and obtaining a third processing result corresponding to the first data; The step of determining, according to the plurality of third processing results, whether the second data belongs to a data set formed by each of the first data comprises: determining whether only one of the plurality of third processing results corresponding to the plurality of first data indicates that the second data is identical to the corresponding first data; If so, the second data belongs to a data set consisting of each of the first data; If not, the second data does not belong to the data set formed by each of the first data.

6. The method according to claim 2, before uploading the determination result to the blockchain, further comprises: In the case where multiple computing participants obtain multiple determination results, if the multiple determination results are verified to be consistent with each other, the step of uploading the determination results to the blockchain is triggered.

7. A data processing method based on blockchain, applied to agents on blockchain; The method comprises: Obtaining a plurality of second processing results corresponding to each first data; Wherein, the multiple second processing results corresponding to each first data come from different computing participants, each of the second processing results is a result obtained by performing a second processing on multiple first processing results of a first data, and each of the first processing results is a result obtained by performing a first processing on a second data block of the second data and a first data block of the first data; the multiple first data are distinguishable from each other; Performing a third process on the plurality of second processing results corresponding to each first data to obtain a third processing result corresponding to each first data; determining, according to the third processing result corresponding to each first data, whether the second data belongs to a data set formed by each first data, to obtain a determination result; The determination result is uploaded to the blockchain.

8. A data processing device based on blockchain, applied to computing participants on blockchain; The device comprises: A first acquisition unit, used to acquire a plurality of first data blocks and acquire a second data block; Each of the first data blocks is a sub-data block obtained by splitting the first data, and the first data are distinguished from each other; the second data block is a sub-data block obtained by splitting the second data; A first processing unit, configured to perform a first processing on the second data block and each of the first data blocks respectively, to obtain a plurality of first processing results; A second acquisition unit is used to acquire first processing results of other computing participants on the blockchain, and obtain multiple first processing results corresponding to each of the first data; The second processing unit is used to perform second processing according to the multiple first processing results corresponding to each of the first data to obtain multiple second processing results.

9. A data processing device based on blockchain, applied to agents on blockchain; The device comprises: A third acquisition unit, used to obtain a plurality of second processing results corresponding to each first data; Wherein, the multiple second processing results corresponding to each first data come from different computing participants, each of the second processing results is a result obtained by performing a second processing on multiple first processing results of a first data, and each of the first processing results is a result obtained by performing a first processing on a second data block of the second data and a first data block of the first data; the multiple first data are distinguishable from each other; A third processing unit, configured to perform a third processing on the plurality of second processing results corresponding to each first data, to obtain a third processing result corresponding to each first data; a determination unit, configured to determine, according to a third processing result corresponding to each first data, whether the second data belongs to a data set consisting of each first data, to obtain a determination result; A transmission unit is used to upload the determination result to the blockchain.

10. A data processing system based on blockchain, comprising: A first data provider holds a plurality of first data; A second data provider, holding second data; Multiple computing participants and agents on the blockchain; The computing participant is used to execute the method described in any one of claims 1 to 6; and the agent is used to execute the method described in claim 7.

Citation Information

Patent Citations

  • Conditional receipt storage method combining code labeling and type dimension and node

    CN110245490A