CN114782047B - Data consensus method and distributed system - Google Patents

Data consensus method and distributed system Download PDF

Info

Publication number
CN114782047B
CN114782047B CN202111642220.0A CN202111642220A CN114782047B CN 114782047 B CN114782047 B CN 114782047B CN 202111642220 A CN202111642220 A CN 202111642220A CN 114782047 B CN114782047 B CN 114782047B
Authority
CN
China
Prior art keywords
node
data
signature
data set
nodes
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202111642220.0A
Other languages
Chinese (zh)
Other versions
CN114782047A (en
Inventor
张海滨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to CN202111642220.0A priority Critical patent/CN114782047B/en
Publication of CN114782047A publication Critical patent/CN114782047A/en
Application granted granted Critical
Publication of CN114782047B publication Critical patent/CN114782047B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/401Transaction verification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3825Use of electronic signatures
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

One or more embodiments of the present specification provide a data consensus method and a distributed system. Each node may broadcast the data proposed by itself (which may be understood as being sent to each other node in the distributed system), then each node forms the data proposed by each node collected by itself into a data set, and the data sets formed by different nodes may be different, so each node may re-use the data set formed by itself as its own proposal, and apply erasure coding technology to the data set, so as to implement a data distribution method, and further implement data consensus. The present specification further proposes an MVBA protocol and a BFT protocol.

Description

Data consensus method and distributed system
Technical Field
One or more embodiments of the present disclosure relate to the field of information technology, and in particular, to a data consensus method and a distributed system.
Background
At present, under various service scenarios based on a distributed system, data consensus among nodes in the distributed system is often required to be realized. The data consensus refers to that each node in the distributed system achieves consensus on the consistency of the data acquired by each node under the premise of fault tolerance. Or colloquially, data consensus can be understood as taking into account that some nodes in a distributed system may crash or disqualify, and that most nodes in a distributed system may still acquire consistent data.
For example, a data consensus is often required between nodes in a blockchain system, where the data to be consensus is a block packed from several transactions, and after the block is agreed, each node may execute the same transaction in the same block to satisfy the consistency of the blockchain state on each node.
In addition, in another application, the inventors have proposed a data distribution method based on application to a distributed system (see another application or the detailed description section of the present specification for a specific description).
The inventors have realized that a more efficient data consensus method can be further implemented based on this data storage method.
Disclosure of Invention
In view of this, one or more embodiments of the present disclosure provide a data consensus method and a distributed system.
In order to achieve the above object, one or more embodiments of the present disclosure provide the following technical solutions:
according to a first aspect of one or more embodiments of the present specification, a data consensus method is presented for implementing a consensus of consistency of data proposed for a same transaction among N nodes of a distributed system, the method comprising:
The node i determines the data Di proposed for the same item, and distributes the data block Dij corresponding to Di to the node j based on the existing data distribution method; where i=1, …, N, j=1, …, N, dij is the data block into which Di is converted based on erasure coding techniques;
after validating Dij, node j triggers an aggregate signature flow for Di, including: signing is carried out on the unique identifier corresponding to Di to obtain a signature Ei, and the Ei is returned to the node i; the node i obtains an aggregate signature based on the collected at least N-f Ei and sends the aggregate signature to the node j; after acquiring an aggregation signature corresponding to the node i, the node j adds the node i into a local node list;
the node j performs public random ordering on the local node list based on a fair coin-casting protocol;
the node j judges whether the node confirms the data block of the data proposed by the first node in the ordering or not, if so, the aggregation signature corresponding to the node is broadcasted; if the acquisition of at least one aggregation signature corresponding to the node is determined, determining the proposal of the node as the proposal accepted by the node j; if the aggregate signature corresponding to the node is not obtained, continuing to judge whether the data block of the data proposed by the next node in the sequence is confirmed or not until the proposal accepted by the node j is determined;
The node j broadcasts the data block corresponding to the proposal accepted by the node j, and restores the data corresponding to the proposal to be obtained based on at least f+1 different data blocks corresponding to the same proposal acquired by the node j, and the data is taken as the data achieving the consensus.
In some embodiments, the unique identification corresponding to Di includes: the distribution flow identifier corresponding to Di and the aggregation signature flow identifier corresponding to Di.
According to a second aspect of one or more embodiments of the present specification, there is provided a data consensus method for implementing a consensus among N nodes of a distributed system of proposed data for a same transaction, the method comprising:
node i determines the proposed data Di for that same item and broadcasts it;
the node i distributes the data block Bij corresponding to Bi to the node j based on the existing data distribution method; where i=1, …, N, j=1, …, N, bij is a data block into which Bi is converted based on erasure coding techniques;
after confirming Bij, the node j triggers an aggregate signature flow for Bi, including: signing is carried out on the unique identifier corresponding to Bi to obtain a signature Ei, and the Ei is returned to the node i; the node i obtains an aggregate signature based on the collected at least N-f Ei and sends the aggregate signature to the node j; after acquiring an aggregation signature corresponding to the node i, the node j adds the node i into a local node list;
The node j performs public random ordering on the local node list based on a fair coin-casting protocol;
the node j judges whether the node confirms the data block of the data set formed by the first node in the ordering or not, if so, the aggregation signature corresponding to the node is broadcasted; if the acquisition of at least one aggregation signature corresponding to the node is determined, determining a data set formed by the node as a data set accepted by the node j; if the aggregate signature corresponding to the node is not obtained, continuing to judge whether the data block of the data set formed by the next node in the sequence is confirmed or not until the data set accepted by the node j is determined;
the node j broadcasts the data block corresponding to the data set received by the node j, and recovers the data set based on at least f+1 different data blocks corresponding to the same data set acquired by the node j, and the data set is used as the data set achieving the consensus.
In some embodiments, node i determines and broadcasts proposed data Di for the same transaction, including:
node i determines the proposed data Di for the same item, signs Di and broadcasts it;
the data set Bi formed by the data proposed by the different acquired nodes by the node i comprises:
Node i forms a data set Bi of data that is acquired and proposed by different nodes that pass signature verification.
According to a third aspect of one or more embodiments of the present specification, there is provided a data consensus method for implementing a consensus among N nodes of a distributed system of proposed data for a same transaction, the method comprising:
node i determines the proposed data Di for that same item and broadcasts it;
the node i forms a data set Bi by using acquired data proposed by different nodes, and converts data Dk in Bi into N data blocks based on erasure coding technology, wherein the N data blocks of Dk comprise Dki, k=1, … and Ki, ki is the number of data in Bi, i=1, … and N, M data blocks in the N data blocks of Dk can obtain Dk, M is less than N, N=M+2f, M > f and f is the number of nodes of a distributed system comprising N nodes;
node i generates feature cross-check information fpcc for verifying whether a data block belongs to N data blocks of Dk k
Node j obtains a distribution message constructed by node i, the distribution message comprising Dki, fpcc k And L is equal to k
Node j is based on fpcc in the distribution message k Verify Dki if it belongs to N data blocks of Dk and verify L k Whether or not based on fpcc k If the obtained signature is verified to be positive, based on the preset generation rule, using fpcc in the distributed message k Generating verified information and for fpcc k Corresponding checked information is signed to obtain a signature Sj k
Node j constructs a prepare message comprising the checked information and Sj k The method comprises the steps of carrying out a first treatment on the surface of the And, for Sj in the ready message k Verifying;
if the node i determines that at least (n+f)/2 preparation messages which are greater than (n+f)/2 preparation messages contain the same checked information are acquired, and the at least (n+f)/2 preparation messages pass signature verification, based on signatures in the at least (n+f)/2 preparation messages, constructing an ending message containing the signatures and sending the ending message to the node j;
after acquiring the end message constructed by node i, node j verifies the signature contained in the end message, and if verification is passed, confirms Dki and fpcc k And L is equal to k And confirms Bij; bij includes Dki for all values of k;
after confirming Bij, the node j triggers an aggregate signature flow for Bi, including: signing is carried out on the unique identifier corresponding to Bi to obtain a signature Ei, and the Ei is returned to the node i; the node i obtains an aggregate signature based on the collected at least N-f Ei and sends the aggregate signature to the node j; after acquiring an aggregation signature corresponding to the node i, the node j adds the node i into a local node list;
The node j performs public random ordering on the local node list based on a fair coin-casting protocol;
the node j judges whether the node confirms the data block of the data set formed by the first node in the ordering or not, if so, the aggregation signature corresponding to the node is broadcasted; if the acquisition of at least one aggregation signature corresponding to the node is determined, determining a data set formed by the node as a data set accepted by the node j; if the aggregate signature corresponding to the node is not obtained, continuing to judge whether the data block of the data set formed by the next node in the sequence is confirmed or not until the data set accepted by the node j is determined;
the node j broadcasts the data block corresponding to the data set received by the node j, and recovers the data set based on at least f+1 different data blocks corresponding to the same data set acquired by the node j, and the data set is used as the data set achieving the consensus.
In some embodiments, further comprising:
the nodes are pre-based on a threshold signature protocol, and a public key PK common to the nodes and a private key SKj of the node j are agreed; wherein the threshold value of the threshold signature protocol is at least greater than (n+f)/2;
node j pair fpc c k Corresponding checked information is signed to obtain a signature Sj k j, including:
fpcc using private key SKi k Corresponding checked information is signed to obtain a signature Sj k
Node i constructs an end message containing a signature based on the signature in the at least (n+f)/2 preparation messages, comprising:
combining the signatures in the at least (n+f)/2 preparation messages into a threshold signature S based on a threshold signature protocol k And construct and contain S k End message of (2);
node j verifies the signature contained in the end message, comprising:
authentication S of node j using public key PK k
In some embodiments, the distributed system is a blockchain system; data Di is the chunk that node i packages based on transactions in its own cache.
In some embodiments, node j performs a transaction in each chunk of the data set after the data set is obtained, and writes each chunk of the data set to the blockchain after each transaction is performed.
According to a fourth aspect of one or more embodiments of the present description, there is provided a distributed system for use in any of the methods described above. In some embodiments, the distributed system is a blockchain system.
In the technical scheme, the data distribution method provided by the inventor is applied to the field of data consensus, and a data consensus method with a small step number is designed.
Further, considering that the above-mentioned data consensus method actually belongs to a multiple consensus method, that is, the master node and the non-master node are not distinguished in the consensus process (unlike the PBFT protocol), this means that in implementing the above-mentioned data consensus method process once, although each node in the distributed system can propose self-approved data, each node in the distributed system can only reach consensus on the data proposed by one node, so that the data proposed by other nodes are equivalent to being "wasted".
Thus, further improvements may be proposed based on the consensus method described above. Specifically, each node may broadcast its own proposed data (which may be understood as being sent to each other node in the distributed system), then each node forms the data proposed by each node collected by itself into a data set, and the data sets formed by different nodes may be different, so each node may re-use the data set formed by itself as its own proposal, apply erasure coding technology to the data set, implement a data distribution method, and further implement data consensus.
Further, considering that the principle of the improved data consensus method is essentially that small proposals made by a group of different nodes are aggregated into one big proposal, a data set corresponding to the big proposal is regarded as a whole data, and the erasure coding technology is applied to distribute the data, which results in that the existing data distribution method invented by the inventor only regards the data set as a whole data, only verifies the signature of fpcc corresponding to the data set, but does not apply the erasure coding technology to each data in the data set, that is, there is no fpcc corresponding to each data, and the signature of fpcc corresponding to each data is not verified, which means that authority control cannot be realized on the originating node of proposal corresponding to each data in the data set in the data distribution stage, but only can restore the data set after temporarily recognizing a certain data set as a data set in the data consensus stage, and the data set can only be restored to the data set in the data consensus stage, if verification fails, and the data consensus efficiency is reduced again.
For this purpose, a more improved data consensus method can be proposed. When the existing data distribution method is changed and the data set is used as a proposal for data distribution, nodes do not apply erasure coding technology to the whole data set, but go deep into the interior of the set, apply erasure coding technology to each data respectively, and generate fpcc corresponding to each data. The data blocks of a set of different data are then formed into a subset, and the different subsets are distributed to different nodes. In this way, the node can perform validity verification on each data block in the subset acquired by the node, verify whether the data block is matched with the corresponding fpcc, and also verify whether the signature of the fpcc is correct, so that a data set distributed by the node which does not pass verification can be removed in the data distribution flow, and the data set cannot enter a subsequent consensus flow.
Drawings
Fig. 1 exemplarily provides an implementation procedure of the AVID protocol.
Fig. 2 exemplarily provides an implementation procedure of the VCID protocol.
Fig. 3 exemplarily provides a flow of a data distribution method.
Fig. 4 illustrates a flow of another data distribution method.
Fig. 5 illustrates a flow of a data consensus method.
Fig. 6 illustrates a flow of a method of multiple consensus.
Fig. 7 illustrates a flow of another data consensus method.
Fig. 8 illustrates a flow of another data consensus method.
Detailed Description
Reference will now be made in detail to exemplary embodiments, examples of which are illustrated in the accompanying drawings. When the following description refers to the accompanying drawings, the same numbers in different drawings refer to the same or similar elements, unless otherwise indicated. The implementations described in the following exemplary embodiments do not represent all implementations consistent with one or more embodiments of the present specification. Rather, they are merely examples of apparatus and methods consistent with aspects of one or more embodiments of the present description as detailed in the accompanying claims.
It should be noted that: in other embodiments, the steps of the corresponding method are not necessarily performed in the order shown and described in this specification. In some other embodiments, the method may include more or fewer steps than described in this specification. Furthermore, individual steps described in this specification, in other embodiments, may be described as being split into multiple steps; while various steps described in this specification may be combined into a single step in other embodiments.
Data consensus generally refers to the so-called BFT (Byzantine faulttolerance) problem in the academia.
In the data consensus process, the node is often involved in proposing self-approved data, the self-approved data is distributed to other nodes, and then each node performs consensus on the data based on a consensus algorithm.
In addition, as described in the background art, the inventor proposes a data distribution method in another application document, and based on the method alone, the problem of data consistency (i.e. the problem of data consensus) when the user requests are concurrent is not solved, but the inventor finds that when the data distribution method is applied to a data distribution stage at the beginning of the data consensus process, a Multi-component consensus method MVBA (Multi-valuedValidatedByzantine Agreement) can be realized, and the number of steps required by the data consensus process can be greatly reduced. The common binary consensus such as Cobalt or tachin is used, the number of steps required by the common multiple consensus method Dumbo-MVBA is 34 steps, and the number of steps required by the multiple consensus method VCID-MVBA or VVVCD-MVBA provided by the present disclosure can be 17.5 steps, so that the consensus efficiency is improved obviously.
The existing data distribution method proposed by the inventor is presented herein. The data distribution method proposed by the inventor is a data distribution protocol which can save bandwidth and has linear message complexity, and the data distribution protocol can be called verifiable consistent information distribution (Verifiable Consistent Information Dispersal, VCID). The linear complexity here means that the number of nodes in the distributed system grows linearly, and the corresponding message complexity only grows linearly.
However, the specific implementation details of the data distribution protocol are not described herein, but it should be emphasized that in the implementation process of the AVID protocol, the number of messages that need to be interacted between nodes is large (this means that more bandwidth is occupied, and also great message complexity is brought, and the message complexity is not linear).
Fig. 1 exemplarily provides an implementation procedure of the AVID protocol. As shown in fig. 1, each horizontal line represents a node in the distributed system, and the solid dots on one horizontal line represent the identities of the same node at different stages. Assume that there are 4 nodes in a distributed system. In the AVID protocol implementation, there are mainly three phases SEND, ECHO, READY, each message interaction between nodes is represented by an arrow in fig. 1. It can be seen that in the implementation process of the AVID protocol, the number of messages to be interacted between nodes is relatively large, the message complexity is not linear, and O (N 2 ) To indicate that N is the number of nodes.
Fig. 2 exemplarily provides an implementation procedure of the VCID protocol. As shown in fig. 2, the number of messages that need to be interacted between nodes is small and the message complexity is linear in the implementation of the VCID protocol, compared to the implementation of the AVID protocol shown in fig. 1.
Furthermore, it is emphasized that the VCID protocol belongs to an asynchronous protocol, which is not implemented in dependence on time assumptions.
In addition, the VCID protocol may implement the following 4-point security feature:
1. if a correct node in the distributed system distributes data D as a distribution requester, then all correct nodes in the distributed system will acknowledge a block of data D (a block of data generated based on erasure coding techniques).
2. The data blocks output by any f+1 correct nodes in the distributed system can be restored into the original data D.
3. If the data reader takes the security certificate generated after the data D is distributed in the distributed system, the data reader can certainly read the data D from the distributed system.
4. If a correct node in the distributed system transmits data D as a data sender through the distributed system, the data receiver must receive data D through the distributed system.
The following specifically describes a data distribution method based on the VCID protocol.
The distributed system in various embodiments provided by the present disclosure includes N nodes, and in general, in order for the distributed system to have node fault tolerance capability, it is generally necessary to assume the number of nodes to be fault-tolerant, f, and then determine the number of nodes in the distributed system, i.e., N, based on f. For the bayer fault tolerance, n=m+2f, N is at least 4. In addition, the distributed system may not have the capacity of Bayesian fault tolerance (which is compatible with a certain number of down nodes and a certain number of bad nodes), but only has the capacity of normal fault tolerance, which is compatible with a certain number of down nodes and cannot be compatible with a certain number of bad nodes, where N is greater than 2f and N is at least 3. For convenience of description, the following description will be given by taking the case of the bayer fault tolerance as an example, and on the basis thereof, those skilled in the art will easily recognize an embodiment of the case of the normal fault tolerance.
It should also be noted that the node described herein may be specifically a device or a device cluster, and the device may be a server, for example. In the following description, a node that is down or dead will be referred to as an erroneous node, and a non-erroneous node will be referred to as a correct node.
Fig. 3 exemplarily provides a flow of a data distribution method, which includes the following steps:
s300: the distribution demander converts the data D to be distributed into N data blocks based on erasure coding techniques.
It should be noted that, in the following, the following description rule is adopted:
f represents the number of nodes to which the distributed system is tolerant, and N represents the number of nodes of the distributed system. Capital letters including N represent fixed data or fixed values, and lower case letters represent variables (except f, which is a special case). When describing a variable represented by a lowercase letter, it is meant that the variable needs to be assigned each of its possible values separately. For example, node i represents each node in the distributed system, and the value of i includes a plurality of values or each value from 1 to N.
The distribution requirement party refers to a party with a requirement for data distribution, and the data distribution party can be a client of a user or any node in a distributed system.
Existing erasure coding techniques can be understood as converting one data block into N different data blocks, based on which the original data can be recovered. The data to be distributed is recorded as D, the N data blocks include Di, i=1, …, N, and D, M < N, n=m+2f, and M > f can be obtained based on M data blocks in the N data blocks. It should be emphasized that when the data distribution protocol VCID or VVCID is applied to implement the consensus protocol, in some preferred embodiments, the number of data blocks M of the recoverable original data in the erasure coding technique may be set to f+1, and the number of nodes N of the distributed system may be set to be greater than m+2f.
S301: the distribution requester generates feature cross-check information fpcc for verifying whether the data block is legitimate.
The existing fpcc technology can realize that for any data block, whether the data block belongs to the data block which is removed from the original data by using the erasure code technology or not is verified. For convenience of description herein, a data block is legally defined as one of N data blocks, to which the data block belongs, of the original data D. fpcc is the abbreviation for finger-printed cross-check sum. fpcc contains a hash of N erasure coded data blocks and a global hash of M erasure coded data blocks (universal hash function). The global hash of M blocks of data requires maintaining a linear transformation (linear combination) relationship between erasure coded blocks of data.
fpcc is a data structure that a distribution requester can generate fpcc when processing data D using erasure coding techniques.
S302: the node i of the distributed system acquires the distribution message constructed by the distribution demander.
It should be noted here that not every node in the distributed system necessarily obtains the distribution message sent by the distribution requester, but at least N-f correct nodes may receive the distribution message, so that node i herein may represent each correct node.
The distribution message may include Di and fpcc, where Di received by different correct nodes is different.
S303: the node i verifies whether Di is legal or not based on fpcc in the distributed message, if so, based on a preset generation rule, the node i generates checked information by using fpcc in the distributed message, and signs the checked information to obtain a signature Si.
In some embodiments, the messaging may also include a distribution flow identifier for distinguishing between different distribution flows of data to be stored.
The preset generation rule may be that fpcc in the distributed message is taken as checked information; or the hash value of fpcc in the distributed message is used as checked information.
If the verification is illegal, the node i may not generate the verified information, and the signature Si may not be obtained.
It is easy to understand that i in the signature Si obtained by different correct nodes is different, and thus the signature Si is also different.
S304: the distribution demand side acquires a node i to construct a preparation message, wherein the preparation message comprises checked information and Si; si in the preparation message is verified.
Each ready message may also contain a distribution flow identifier if the distribution message previously described also contains a distribution flow identifier.
S305: if the distribution requirement party determines that at least (n+f)/2 preparation messages which are greater than (n+f) contain the same verified information are acquired, and the at least (n+f)/2 preparation messages pass signature verification, an ending message containing the signature is constructed based on the signature in the at least (n+f)/2 preparation messages and sent to the node i.
If the distribution message described above further contains a distribution flow identifier, each end message further includes a distribution flow identifier.
S306: after acquiring the end message constructed by the distribution demand party, the node i verifies the signature contained in the end message, and if the verification is passed, confirms Di and fpcc.
In addition, the signature algorithm adopted for the verified information can be a threshold signature, a common signature or an aggregate signature.
In some embodiments, the public key PK common to the private key SKi of node i may be agreed in advance based on a threshold signature protocol between the nodes; wherein, the threshold value of the threshold signature protocol is more than or equal to (N+f)/2. The node i may sign the verified information using the private key SKi to obtain a signature Si. The dispensing party may combine the signatures in the at least (n+f)/2 preparation messages into a threshold signature S based on a threshold signature protocol and construct an end message containing S. Node i may verify S using public key PK.
In addition, a rights control function of the distribution demander may be added on the basis of the data distribution method shown in fig. 3. Data can be written to the distributed system only by the distribution desiring party who owns the rights.
Fig. 4 exemplarily provides a flow of another data distribution method, which includes the following steps:
s400: the distribution demander converts the data D to be distributed into N data blocks based on erasure coding techniques.
S401: the distribution requester generates feature cross-check information fpcc for verifying whether the data block is legitimate.
S402: the node i of the distributed system acquires the distribution message constructed by the distribution demander.
S403: node i verifies whether Di is legal or not based on fpcc in the distributed message, verifies whether L is a signature obtained based on fpcc, and if both verification results are true, generates verified information based on a preset generation rule based on fpcc in the distributed message, and signs the verified information to obtain signature Si.
S404: the distribution demand side acquires a node i to construct a preparation message, wherein the preparation message comprises checked information and Si; si in the preparation message is verified.
S405: if the distribution requirement party determines that at least (n+f)/2 preparation messages which are greater than (n+f) contain the same verified information are acquired, and the at least (n+f)/2 preparation messages pass signature verification, an ending message containing the signature is constructed based on the signature in the at least (n+f)/2 preparation messages and sent to the node i.
S406: after acquiring the end message constructed by the distribution demand party, the node i verifies the signature contained in the end message, and if the verification is passed, confirms Di, fpcc and L.
The main difference between the method shown in fig. 4 and the method shown in fig. 3 is that the method shown in fig. 4 can implement rights control for the distributing demand side.
The distribution message constructed by the distribution demander needs to contain L, which is a signature of the distribution demander, in addition to at least Di and fpcc. In some embodiments, L is a signature generated by the distribution consumer on fpcc. It is readily understood that L cannot be a signature of D by the distribution requester because each node cannot take the complete data D and verification of such a signature cannot be achieved.
By the method shown in fig. 3 or fig. 4, in the process of implementing data distribution in a distributed system, less network bandwidth can be occupied, and the number of messages needing to be interacted between nodes is less, so that lower message complexity is brought, and in fact, the message complexity implemented by the technical scheme is linear.
Fig. 5 exemplarily provides a flow of a data consensus method, comprising the steps of:
s501: the node i determines the data Di proposed for the same item and distributes the data block Dij corresponding to Di to the node j based on the existing data distribution method.
Where i=1, …, N, j=1, …, N, dij is the data block into which Di is converted based on erasure coding techniques.
S502: node j triggers the aggregate signature flow for Di after validating Dij.
The aggregate signature flow may include: signing is carried out on the unique identifier corresponding to Di to obtain a signature Ei, and the Ei is returned to the node i; the node i obtains an aggregate signature based on the collected at least N-f Ei and sends the aggregate signature to the node j; after the node j obtains the aggregate signature corresponding to the node i, the node i is added into a local node list.
S503: the node j performs public random ordering on the local node list based on a fair coin-freed protocol.
S504: the node j judges whether the node confirms the data block of the data proposed by the first node in the ordering or not, if so, the aggregation signature corresponding to the node is broadcasted; if the acquisition of at least one aggregation signature corresponding to the node is determined, determining the proposal of the node as the proposal accepted by the node j; if the aggregate signature corresponding to the node is not acquired, continuing to judge whether the data block of the data proposed by the next node in the sequence is confirmed or not until the proposal accepted by the node j is determined.
S505: the node j broadcasts the data block corresponding to the proposal accepted by the node j, and restores the data corresponding to the proposal to be obtained based on at least f+1 different data blocks corresponding to the same proposal acquired by the node j, and the data is taken as the data achieving the consensus.
In some embodiments, the unique identification corresponding to Di may be: the distribution flow identifier corresponding to Di and the aggregation signature flow identifier corresponding to Di.
Fig. 6 illustrates a flow of a method of multiple consensus. As shown in fig. 6, taking a distributed system including 4 nodes as an example, taking an applied data Distribution protocol as a VVCID as an example, the 4 nodes p1, p2, p3 and p4 respectively propose their own approved data, initiate their own VVCID flows (step number is 3 step), enter an ECHO flow (i.e. the aggregation signature flow described above, step number is 2) corresponding to each VVCID flow after each VVCID flow is completed, enter a Per stage (i.e. step S503, step number is 1) after the aggregation signature flow is completed, enter a cyclic repeat stage (i.e. step S504) after the Per stage, the cyclic repeat stage includes a Distribution step (step number is 1) and an ABA step (step number is 2*3 =6), and the expected number of cycles of a general cycle is 1.5. After the repeat phase, the repeat phase is entered (i.e., step S505).
As can be seen, the expected number of steps corresponding to the method shown in fig. 5 is 3+2+1+1.5 (1+2×3) +1=17.5.
Further, considering that the above-mentioned data consensus method actually belongs to a multiple consensus method, that is, the master node and the non-master node are not distinguished in the consensus process (unlike the PBFT protocol), this means that in implementing the above-mentioned data consensus method process once, although each node in the distributed system can propose self-approved data, each node in the distributed system can only reach consensus on the data proposed by one node, so that the data proposed by other nodes are equivalent to being "wasted".
Thus, further improvements may be proposed based on the consensus method described above. Specifically, each node may broadcast its own proposed data (which may be understood as being sent to each other node in the distributed system), then each node forms the data proposed by each node collected by itself into a data set, and the data sets formed by different nodes may be different, so each node may re-use the data set formed by itself as its own proposal, apply erasure coding technology to the data set, implement a data distribution method, and further implement data consensus.
Fig. 7 illustrates a flow of another data consensus method comprising the steps of:
s701: node i determines the proposed data Di for that same item and broadcasts it.
S702: the node i forms a data set Bi by the acquired data proposed by different nodes, and distributes the data block Bij corresponding to Bi to the node j based on the existing data distribution method.
Where i=1, …, N, j=1, …, N, bij is a data block into which Bi is converted based on erasure coding techniques.
S703: after confirming Bij, node j triggers the aggregate signature flow for Bi.
The aggregate signature flow includes: signing is carried out on the unique identifier corresponding to Bi to obtain a signature Ei, and the Ei is returned to the node i; the node i obtains an aggregate signature based on the collected at least N-f Ei and sends the aggregate signature to the node j; after the node j obtains the aggregate signature corresponding to the node i, the node i is added into a local node list.
S704: the node j performs public random ordering on the local node list based on a fair coin-freed protocol.
S705: the node j judges whether the node confirms the data block of the data set formed by the first node in the ordering or not, if so, the aggregation signature corresponding to the node is broadcasted; if the acquisition of at least one aggregation signature corresponding to the node is determined, determining a data set formed by the node as a data set accepted by the node j; if the aggregate signature corresponding to the node is not acquired, continuing to judge whether the data block of the data set formed by the next node in the sequence is confirmed or not until the data set accepted by the node j is determined.
S706: the node j broadcasts the data block corresponding to the data set received by the node j, and recovers the data set based on at least f+1 different data blocks corresponding to the same data set acquired by the node j, and the data set is used as the data set achieving the consensus.
In some embodiments, the node i determines and broadcasts the proposed data Di for the same transaction, which may specifically include: node i determines the proposed data Di for that same item, signs Di and broadcasts it. Accordingly, the data set Bi formed by the data proposed by the different acquired nodes by the node i may specifically include: node i forms a data set Bi of data that is acquired and proposed by different nodes that pass signature verification.
Further, considering that the principle of the improved data consensus method is essentially that small proposals made by a group of different nodes are aggregated into one big proposal, a data set corresponding to the big proposal is regarded as a whole data, and the erasure coding technology is applied to distribute the data, which results in that the existing data distribution method invented by the inventor only regards the data set as a whole data, only verifies the signature of fpcc corresponding to the data set, but does not apply the erasure coding technology to each data in the data set, that is, there is no fpcc corresponding to each data, and the signature of fpcc corresponding to each data is not verified, which means that authority control cannot be realized on the originating node of proposal corresponding to each data in the data set in the data distribution stage, but only can restore the data set after temporarily recognizing a certain data set as a data set in the data consensus stage, and the data set can only be restored to the data set in the data consensus stage, if verification fails, and the data consensus efficiency is reduced again.
For this purpose, a more improved data consensus method can be proposed. When the existing data distribution method is changed and the data set is used as a proposal for data distribution, nodes do not apply erasure coding technology to the whole data set, but go deep into the interior of the set, apply erasure coding technology to each data respectively, and generate fpcc corresponding to each data. The data blocks of a set of different data are then formed into a subset, and the different subsets are distributed to different nodes. In this way, the node can perform validity verification on each data block in the subset acquired by the node, verify whether the data block is matched with the corresponding fpcc, and also verify whether the signature of the fpcc is correct, so that a data set distributed by the node which does not pass verification can be removed in the data distribution flow, and the data set cannot enter a subsequent consensus flow.
Fig. 8 illustrates a flow of another data consensus method comprising the steps of:
s801: node i determines the proposed data Di for that same item and broadcasts it.
S802: the node i forms a data set Bi by the acquired data proposed by different nodes, and converts the data Dk in the Bi into N data blocks based on erasure coding technology.
Where Dk N data blocks include Dki, k=1, …, ki is the number of data in Bi, i=1, …, N, dk is available based on M data blocks in Dk N data blocks, M < N, n=m+2f, M > f, f is the number of nodes fault-tolerant to a distributed system including N nodes.
S803: node i generates feature cross-check information fpcc for verifying whether a data block belongs to N data blocks of Dk k
S804: node j obtains a distribution message constructed by node i, the distribution message comprising Dki, fpcc k And L is equal to k
S805: node j is based on fpcc in the distribution message k Verify Dki if it belongs to N data blocks of Dk and verify L k Whether or not based on fpcc k If the obtained signature is verified to be positive, based on the preset generation rule, using fpcc in the distributed message k Generating verified information and for fpcc k Corresponding checked information is signed to obtain a signature Sj k
S806: node j constructs a prepare message comprising the checked information and Sj k The method comprises the steps of carrying out a first treatment on the surface of the And, for Sj in the ready message k And (5) performing verification.
S807: if the node i determines that at least (n+f)/2 preparation messages containing the same checked information are acquired, and the at least (n+f)/2 preparation messages pass signature verification, an ending message containing a signature is constructed based on the signature in the at least (n+f)/2 preparation messages and sent to the node j.
S808: after acquiring the end message constructed by node i, node j verifies the signature contained in the end message, and if verification is passed, confirms Dki and fpcc k And L is equal to k And confirms Bij; bij includes Dki for all values of k.
S809: after confirming Bij, node j triggers the aggregate signature flow for Bi.
The aggregate signature flow includes: signing is carried out on the unique identifier corresponding to Bi to obtain a signature Ei, and the Ei is returned to the node i; the node i obtains an aggregate signature based on the collected at least N-f Ei and sends the aggregate signature to the node j; after the node j obtains the aggregate signature corresponding to the node i, the node i is added into a local node list.
S810: the node j performs public random ordering on the local node list based on a fair coin-freed protocol.
S811: the node j judges whether the node confirms the data block of the data set formed by the first node in the ordering or not, if so, the aggregation signature corresponding to the node is broadcasted; if the acquisition of at least one aggregation signature corresponding to the node is determined, determining a data set formed by the node as a data set accepted by the node j; if the aggregate signature corresponding to the node is not acquired, continuing to judge whether the data block of the data set formed by the next node in the sequence is confirmed or not until the data set accepted by the node j is determined.
S812: the node j broadcasts the data block corresponding to the data set received by the node j, and recovers the data set based on at least f+1 different data blocks corresponding to the same data set acquired by the node j, and the data set is used as the data set achieving the consensus.
In some embodiments, the public key PK common to the private key SKj of node j may be agreed with each other in advance based on a threshold signature protocol; wherein the threshold value of the threshold signature protocol is at least greater than (n+f)/2. Thus, node j can use private key SKi for fpcc k Corresponding checked information is signed to obtain a signature Sj k . Further, node i may combine the signatures in the at least (n+f)/2 preparation messages to a threshold signature S based on a threshold signature protocol k And construct and contain S k End message of (2). Node j may verify S using public key PK k
In some embodiments, the distributed system is a blockchain system; data Di is the chunk that node i packages based on transactions in its own cache.
In some embodiments, node j performs a transaction in each chunk of the data set after the data set is obtained, and writes each chunk of the data set to the blockchain after each transaction is performed.
The system, apparatus, module or unit set forth in the above embodiments may be implemented in particular by a computer chip or entity, or by a product having a certain function. One typical implementation is a computer. In particular, the computer may be, for example, a personal computer, a laptop computer, a cellular telephone, a camera phone, a smart phone, a personal digital assistant, a media player, a navigation device, an email device, a game console, a tablet computer, a wearable device, or a combination of any of these devices.
For convenience of description, the above devices are described as being functionally divided into various units, respectively. Of course, the functions of each element may be implemented in one or more software and/or hardware elements when implemented in the present specification.
It will be appreciated by those skilled in the art that embodiments of the present invention may be provided as a method, system, or computer program product. Accordingly, the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment combining software and hardware aspects. Furthermore, the present invention may take the form of a computer program product embodied on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, and the like) having computer-usable program code embodied therein.
The present invention is described with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each flow and/or block of the flowchart illustrations and/or block diagrams, and combinations of flows and/or blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.
The description may be described in the general context of computer-executable instructions, such as program modules, being executed by a computer. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. The specification may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote computer storage media including memory storage devices.
These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instruction means which implement the function specified in the flowchart flow or flows and/or block diagram block or blocks.
These computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks. In a typical configuration, a computer includes one or more processors (CPUs), input/output interfaces, network interfaces, and memory.
The memory may include volatile memory in a computer-readable medium, random Access Memory (RAM) and/or nonvolatile memory, such as Read Only Memory (ROM) or flash memory (flash RAM). Memory is an example of computer-readable media.
Computer readable media, including both non-transitory and non-transitory, removable and non-removable media, may implement information storage by any method or technology. The information may be computer readable instructions, data structures, modules of a program, or other data. Examples of storage media for a computer include, but are not limited to, phase change memory (PRAM), static Random Access Memory (SRAM), dynamic Random Access Memory (DRAM), other types of Random Access Memory (RAM), read Only Memory (ROM), electrically Erasable Programmable Read Only Memory (EEPROM), flash memory or other memory technology, read only compact disc read only memory (CD-ROM), digital Versatile Discs (DVD) or other optical storage, magnetic cassettes, magnetic disk storage, quantum memory, graphene-based storage or other magnetic storage devices, or any other non-transmission medium, which can be used to store information that can be accessed by the computing device. Computer-readable media, as defined herein, does not include transitory computer-readable media (transmission media), such as modulated data signals and carrier waves.
It should also be noted that the terms "comprises," "comprising," or any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements does not include only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus. Without further limitation, an element defined by the phrase "comprising one … …" does not exclude the presence of other like elements in a process, method, article or apparatus that comprises the element.
The foregoing describes specific embodiments of the present disclosure. Other embodiments are within the scope of the following claims. In some cases, the actions or steps recited in the claims can be performed in a different order than in the embodiments and still achieve desirable results. In addition, the processes depicted in the accompanying figures do not necessarily require the particular order shown, or sequential order, to achieve desirable results. In some embodiments, multitasking and parallel processing are also possible or may be advantageous.
The terminology used in the one or more embodiments of the specification is for the purpose of describing particular embodiments only and is not intended to be limiting of the one or more embodiments of the specification. As used in this specification, one or more embodiments and the appended claims, the singular forms "a," "an," and "the" are intended to include the plural forms as well, unless the context clearly indicates otherwise. It should also be understood that the term "and/or" as used herein refers to and encompasses any or all possible combinations of one or more of the associated listed items.
It should be understood that although the terms first, second, third, etc. may be used in one or more embodiments of the present description to describe various information, these information should not be limited to these terms. These terms are only used to distinguish one type of information from another. For example, first information may also be referred to as second information, and similarly, second information may also be referred to as first information, without departing from the scope of one or more embodiments of the present description. The word "if" as used herein may be interpreted as "at … …" or "at … …" or "responsive to a determination", depending on the context.
The foregoing description of the preferred embodiment(s) is (are) merely intended to illustrate the embodiment(s) of the present invention, and it is not intended to limit the embodiment(s) of the present invention to the particular embodiment(s) described.

Claims (10)

1. A method of data consensus for achieving a consensus among N nodes of a distributed system of proposed data for a same transaction, the method comprising:
the node i determines the data Di proposed for the same item, and distributes the data block Dij corresponding to Di to the node j based on the existing data distribution method; where i=1, …, N, j=1, …, N, dij is the data block into which Di is converted based on erasure coding techniques;
after validating Dij, node j triggers an aggregate signature flow for Di, including: signing is carried out on the unique identifier corresponding to Di to obtain a signature Ei, and the Ei is returned to the node i; the node i obtains an aggregate signature based on the collected N-f Ei and sends the aggregate signature to the node j, wherein f is the number of nodes fault-tolerant by the distributed system comprising N nodes; after acquiring an aggregation signature corresponding to the node i, the node j adds the node i into a local node list;
The node j performs public random ordering on the local node list based on a fair coin-casting protocol;
the node j judges whether the node confirms the data block of the data proposed by the first node in the ordering or not, if so, the aggregation signature corresponding to the node is broadcasted; if the aggregate signature corresponding to the node is obtained, determining the proposal of the node as the proposal accepted by the node j; if the aggregate signature corresponding to the node is not obtained, continuing to judge whether the data block of the data proposed by the next node in the sequence is confirmed or not until the proposal accepted by the node j is determined;
the node j broadcasts the data block corresponding to the proposal accepted by the node j, and restores the data corresponding to the proposal to be obtained based on f+1 different data blocks corresponding to the same proposal acquired by the node j, and the data is taken as the data for achieving the consensus.
2. The method of claim 1, the unique identifier corresponding to Di comprising: the distribution flow identifier corresponding to Di and the aggregation signature flow identifier corresponding to Di.
3. A method of data consensus for achieving a consensus among N nodes of a distributed system of proposed data for a same transaction, the method comprising:
Node i determines the proposed data Di for that same item and broadcasts it;
the node i distributes the data block Bij corresponding to Bi to the node j based on the existing data distribution method; where i=1, …, N, j=1, …, N, bij is a data block into which Bi is converted based on erasure coding techniques;
after confirming Bij, the node j triggers an aggregate signature flow for Bi, including: signing is carried out on the unique identifier corresponding to Bi to obtain a signature Ei, and the Ei is returned to the node i; the node i obtains an aggregate signature based on the collected N-f Ei and sends the aggregate signature to the node j, wherein f is the number of nodes fault-tolerant by the distributed system comprising N nodes; after acquiring an aggregation signature corresponding to the node i, the node j adds the node i into a local node list;
the node j performs public random ordering on the local node list based on a fair coin-casting protocol;
the node j judges whether the node confirms the data block of the data set formed by the first node in the ordering or not, if so, the aggregation signature corresponding to the node is broadcasted; if the aggregate signature corresponding to the node is determined to be acquired, determining a data set formed by the node as a data set accepted by the node j; if the aggregate signature corresponding to the node is not obtained, continuing to judge whether the data block of the data set formed by the next node in the sequence is confirmed or not until the data set accepted by the node j is determined;
The node j broadcasts the data block corresponding to the data set received by the node j, and recovers the data set based on f+1 different data blocks corresponding to the same data set acquired by the node j, and the data set is used as the data set achieving the consensus.
4. A method as claimed in claim 3, node i determining and broadcasting data Di proposed for the same transaction, comprising:
node i determines the proposed data Di for the same item, signs Di and broadcasts it;
the data set Bi formed by the data proposed by the different acquired nodes by the node i comprises:
node i forms a data set Bi of data that is acquired and proposed by different nodes that pass signature verification.
5. A method of data consensus for achieving a consensus among N nodes of a distributed system of proposed data for a same transaction, the method comprising:
node i determines the proposed data Di for that same item and broadcasts it;
the node i forms a data set Bi by using acquired data proposed by different nodes, and converts data Dk in Bi into N data blocks based on erasure coding technology, wherein the N data blocks of Dk comprise Dki, k=1, … and Ki, ki is the number of data in Bi, i=1, … and N, M data blocks in the N data blocks of Dk can obtain Dk, M is less than N, N=M+2f, M > f and f is the number of nodes of a distributed system comprising N nodes;
Node i generates feature cross-check information fpcc for verifying whether a data block belongs to N data blocks of Dk k
Node j obtains a distribution message constructed by node i, the distribution message comprising Dki, fpcc k And L is equal to k ,L k Based on fpcc k The signature obtained;
node j is based on fpcc in the distribution message k Verify Dki if it belongs to N data blocks of Dk and verify L k Whether or not based on fpcc k If the obtained signature is verified to be positive, based on the preset generation rule, using fpcc in the distributed message k Generating verified information and for fpcc k Corresponding checked information is signed to obtain a signature Sj k
Node j constructs a prepare message comprising the checked information and Sj k The method comprises the steps of carrying out a first treatment on the surface of the And, for Sj in the ready message k Verifying;
if the node i determines that the obtained (n+f)/2 preparation messages contain the same checked information and the (n+f)/2 preparation messages pass the signature verification, constructing an ending message containing the signature based on the signature in the (n+f)/2 preparation messages and sending the ending message to the node j;
after acquiring the end message constructed by node i, node j verifies the signature contained in the end message, and if verification is passed, confirms Dki and fpcc k And L is equal to k And confirms Bij; bij includes Dki for all values of k;
After confirming Bij, the node j triggers an aggregate signature flow for Bi, including: signing is carried out on the unique identifier corresponding to Bi to obtain a signature Ei, and the Ei is returned to the node i; the node i obtains an aggregate signature based on the collected N-f Ei and sends the aggregate signature to the node j; after acquiring an aggregation signature corresponding to the node i, the node j adds the node i into a local node list;
the node j performs public random ordering on the local node list based on a fair coin-casting protocol;
the node j judges whether the node confirms the data block of the data set formed by the first node in the ordering or not, if so, the aggregation signature corresponding to the node is broadcasted; if the aggregate signature corresponding to the node is determined to be acquired, determining a data set formed by the node as a data set accepted by the node j; if the aggregate signature corresponding to the node is not obtained, continuing to judge whether the data block of the data set formed by the next node in the sequence is confirmed or not until the data set accepted by the node j is determined;
the node j broadcasts the data block corresponding to the data set received by the node j, and recovers the data set based on f+1 different data blocks corresponding to the same data set acquired by the node j, and the data set is used as the data set achieving the consensus.
6. The method of claim 5, further comprising:
the nodes are pre-based on a threshold signature protocol, and a public key PK common to the nodes and a private key SKj of the node j are agreed; wherein the threshold value of the threshold signature protocol is (n+f)/2;
node j vs fpcc k Corresponding checked information is signed to obtain a signature Sj k j, including:
fpcc using private key SKi k Corresponding checked information is signed to obtain a signature Sj k
Node i constructs an end message containing a signature based on the signature in the (n+f)/2 preparation messages, comprising:
based on the threshold signature protocol, the signatures in the (n+f)/2 preparation messages are combined into a threshold signature S k And construct and contain S k End message of (2);
node j verifies the signature contained in the end message, comprising:
authentication S of node j using public key PK k
7. The method of claim 5, wherein the distributed system is a blockchain system; data Di is the chunk that node i packages based on transactions in its own cache.
8. The method of claim 7, node j executing transactions in each chunk of the data set after the data set is obtained, and writing each chunk of the data set to the blockchain after each transaction is executed.
9. A distributed system for use in the method of any one of claims 1-8.
10. The distributed system of claim 9, being a blockchain system.
CN202111642220.0A 2021-12-29 2021-12-29 Data consensus method and distributed system Active CN114782047B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111642220.0A CN114782047B (en) 2021-12-29 2021-12-29 Data consensus method and distributed system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111642220.0A CN114782047B (en) 2021-12-29 2021-12-29 Data consensus method and distributed system

Publications (2)

Publication Number Publication Date
CN114782047A CN114782047A (en) 2022-07-22
CN114782047B true CN114782047B (en) 2023-06-30

Family

ID=82423265

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111642220.0A Active CN114782047B (en) 2021-12-29 2021-12-29 Data consensus method and distributed system

Country Status (1)

Country Link
CN (1) CN114782047B (en)

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110941859A (en) * 2018-09-21 2020-03-31 上海派链信息科技有限公司 Method, apparatus, computer-readable storage medium, and computer program product for block chain formation consensus
CN112003820A (en) * 2020-07-13 2020-11-27 南京邮电大学 Block chain consensus optimization method based on ring signature and aggregated signature
CN112689848A (en) * 2019-06-28 2021-04-20 深圳市网心科技有限公司 Consensus method of block chain data and related equipment
CN113169859A (en) * 2019-04-05 2021-07-23 谷歌有限责任公司 Method for protecting privacy
CN113610531A (en) * 2021-10-09 2021-11-05 支付宝(杭州)信息技术有限公司 Consensus method, block chain system and consensus node
CN113609515A (en) * 2021-10-09 2021-11-05 支付宝(杭州)信息技术有限公司 Consensus method and block chain system
CN113630259A (en) * 2021-10-09 2021-11-09 支付宝(杭州)信息技术有限公司 Consensus method, block chain system and consensus node
CN113630258A (en) * 2021-10-09 2021-11-09 支付宝(杭州)信息技术有限公司 Consensus method, block chain system and consensus node
CN113630257A (en) * 2021-10-09 2021-11-09 支付宝(杭州)信息技术有限公司 Consensus method, block chain system and consensus node
CN113645044A (en) * 2021-10-09 2021-11-12 支付宝(杭州)信息技术有限公司 Consensus method, block chain system and consensus node
CN113761071A (en) * 2021-10-09 2021-12-07 支付宝(杭州)信息技术有限公司 Consensus method, block chain system and consensus node

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110941859A (en) * 2018-09-21 2020-03-31 上海派链信息科技有限公司 Method, apparatus, computer-readable storage medium, and computer program product for block chain formation consensus
CN113169859A (en) * 2019-04-05 2021-07-23 谷歌有限责任公司 Method for protecting privacy
CN112689848A (en) * 2019-06-28 2021-04-20 深圳市网心科技有限公司 Consensus method of block chain data and related equipment
CN112003820A (en) * 2020-07-13 2020-11-27 南京邮电大学 Block chain consensus optimization method based on ring signature and aggregated signature
CN113610531A (en) * 2021-10-09 2021-11-05 支付宝(杭州)信息技术有限公司 Consensus method, block chain system and consensus node
CN113609515A (en) * 2021-10-09 2021-11-05 支付宝(杭州)信息技术有限公司 Consensus method and block chain system
CN113630259A (en) * 2021-10-09 2021-11-09 支付宝(杭州)信息技术有限公司 Consensus method, block chain system and consensus node
CN113630258A (en) * 2021-10-09 2021-11-09 支付宝(杭州)信息技术有限公司 Consensus method, block chain system and consensus node
CN113630257A (en) * 2021-10-09 2021-11-09 支付宝(杭州)信息技术有限公司 Consensus method, block chain system and consensus node
CN113645044A (en) * 2021-10-09 2021-11-12 支付宝(杭州)信息技术有限公司 Consensus method, block chain system and consensus node
CN113761071A (en) * 2021-10-09 2021-12-07 支付宝(杭州)信息技术有限公司 Consensus method, block chain system and consensus node

Also Published As

Publication number Publication date
CN114782047A (en) 2022-07-22

Similar Documents

Publication Publication Date Title
CN110046996B (en) Data processing method and device
CN109379397B (en) Transaction consensus processing method and device based on block chain and electronic equipment
US10341431B2 (en) System and method for announcing cryptographic keys on a blockchain
CN110351096B (en) Multiple signature method, signature center, program medium, and electronic device
CN113095749A (en) Logistics information transmission method, system and device based on block chain
EP3763098A1 (en) Methods and systems for controlling access to, and integrity of, resources on a blockchain
CN111526217A (en) Consensus method and system in block chain
CN113810465B (en) Asynchronous binary consensus method and device
CN111800257A (en) 3D model encryption transmission method and decryption method
CN113783708A (en) Re-voting binary consensus method and device based on reliable broadcast
WO2023185045A1 (en) Method and system for generating random seed on blockchain, and consensus node
WO2023185046A1 (en) Method for rotating consensus nodes in blockchain system, and nodes and blockchain system
US20150023498A1 (en) Byzantine fault tolerance and threshold coin tossing
CN114884652A (en) Method, system and consensus node for generating random number seed on block chain
CN114398651B (en) Secret data sharing method and distributed system
CN114782047B (en) Data consensus method and distributed system
CN113794576A (en) Re-voting binary consensus method and device
CN112995167A (en) Kafka mechanism-based power utilization information acquisition method, block chain network and user side
CN111080296A (en) Verification method and device based on block chain system
CN111769945A (en) Auction processing method based on block chain and block chain link point
CN114780987B (en) Data distribution, storage, reading and transmission method and distributed system
CN115174048A (en) Consensus method, system and consensus node
Krasnoselskii et al. Distributed Random Number Generator on Hedera Hashgraph
CN113783946A (en) Re-voting binary consensus method and device based on threshold signature
CN113051622A (en) Index construction method, device, equipment and storage medium

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant