CN114782047A - Data consensus method and distributed system - Google Patents

Data consensus method and distributed system Download PDF

Info

Publication number
CN114782047A
CN114782047A CN202111642220.0A CN202111642220A CN114782047A CN 114782047 A CN114782047 A CN 114782047A CN 202111642220 A CN202111642220 A CN 202111642220A CN 114782047 A CN114782047 A CN 114782047A
Authority
CN
China
Prior art keywords
node
data
signature
data set
proposed
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.)
Granted
Application number
CN202111642220.0A
Other languages
Chinese (zh)
Other versions
CN114782047B (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

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Computer Security & Cryptography (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

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

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 scenes based on a distributed system, data consensus among nodes in the distributed system is often needed to be realized. The data consensus refers to that each node in the distributed system agrees on the consistency of the data acquired by each node on the premise of fault tolerance. Or colloquially, data consensus may be understood as that most nodes in a distributed system may still obtain consistent data given that some nodes in the distributed system may be down or rogue.
For example, data consensus is often required between nodes in a blockchain system, where the data to be consensus is a block packed by several transactions, and after the nodes agree on the block, the nodes can execute the same transaction in the same block to satisfy the consistency of the blockchain state at the nodes.
In addition, in another application, the inventor has proposed a data distribution method based on application to a distributed system (see another application or detailed description section of this specification for specific introduction).
The inventor has realized that a more efficient data consensus method can further be achieved 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.
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, there is provided a data consensus method for achieving a consistent consensus of proposed data for a same matter among N nodes of a distributed system, the method including:
the node i determines the data Di proposed for the same item, and distributes the data Dij corresponding to the Di to the node j based on the existing data distribution method; wherein i is 1, …, N, j is 1, …, N, Dij is a data block into which Di is converted based on erasure coding technique;
after confirming Dij, the node j triggers an aggregation signature process aiming at Di, and the process comprises the following steps: signing the unique identifier corresponding to the Di to obtain a signature Ei, and returning the Ei to the node i; the node i obtains a polymerization signature based on the collected at least N-f Ei and sends the polymerization signature to the node j; after acquiring the aggregation signature corresponding to the node i, the node j adds the node i into a local node list;
the node j carries out public random sequencing on a local node list based on a public flat coin throwing protocol;
the node j judges whether the node j confirms the data block of the data proposed by the first node in the sequence, if so, the node j broadcasts the aggregation signature corresponding to the node; if the aggregate signature corresponding to at least one node is determined to be acquired, 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, whether the data block of the data proposed by the next node in the sequence is confirmed or not is continuously judged until the proposal accepted by the node j is determined;
and the node j broadcasts the data blocks corresponding to the proposals received by the node j, and recovers to obtain the data corresponding to the proposals as the data achieving the consensus of consistency based on at least f +1 different data blocks corresponding to the same proposal obtained by the node j.
In some embodiments, Di corresponds to a unique identifier, including: and the distribution process identification corresponding to the Di and the aggregation signature process identification corresponding to the Di.
According to a second aspect of one or more embodiments of the present specification, there is provided a data consensus method for achieving a consistent consensus of proposed data for a same matter among N nodes of a distributed system, the method including:
the node i determines and broadcasts the proposed data Di for the same matter;
the node i distributes a data set Bi formed by the acquired data proposed by different nodes to a node j based on an existing data distribution method, wherein the data set Bi corresponds to the data block Bij; wherein i is 1, …, N, j is 1, …, N, Bij is a data block into which Bi is converted based on an erasure coding technique;
after confirming the Bij, the node j triggers an aggregation signature process aiming at the Bi, and the process comprises the following steps: signing the unique identifier corresponding to the Bi to obtain a signature Ei, and returning the Ei to the node i; the node i obtains a polymerization signature based on the collected at least N-f Ei and sends the polymerization signature to the node j; after acquiring the aggregation signature corresponding to the node i, the node j adds the node i into a local node list;
the node j carries out public random sequencing on a local node list based on a public flat coin throwing protocol;
judging whether the node j confirms the data block of the data set formed by the first node in the sequence, if so, broadcasting the aggregation signature corresponding to the node; if the aggregate signature corresponding to at least one 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, continuously judging 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;
and the node j broadcasts the data blocks corresponding to the data set received by the node j, and recovers to obtain the data set as the data set achieving consistency consensus based on at least f +1 different data blocks corresponding to the same data set obtained by the node j.
In some embodiments, node i determines and broadcasts the proposed data Di for that same transaction, including:
the node i determines the data Di proposed for the same item, signs the data Di and broadcasts the signed data Di;
the node i forms a data set Bi with the acquired data proposed by different nodes, and the data set Bi comprises:
and the node i forms a data set Bi by the data which are acquired and proposed by different nodes and 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 achieving consistent consensus among N nodes of a distributed system on proposed data for the same matter, the method including:
the node i determines and broadcasts the proposed data Di for the same matter;
the node i converts data Dk in the Bi into N data blocks based on an erasure code technology, wherein the N data blocks of the Dk comprise Dki, k is 1, … and Ki, Ki is the number of data in the Bi, i is 1, … and N, Dk can be obtained based on M data blocks in the N data blocks of the Dk, M is less than N, N is M +2f, M is greater than f, and f is the number of nodes which are fault-tolerant for a distributed system comprising the N nodes;
the node i generates characteristic cross check information fpcc for verifying whether the data block belongs to the N data blocks of Dkk
Node j acquisition nodeThe distribution message constructed by the point i comprises Dki and fpcckAnd Lk
Node j bases its fpcc in the dispatch messagekIt is verified Dki whether it belongs to the N data blocks of Dk, and LkWhether fpcc based or notkIf the obtained signatures are all yes, based on the preset generation rule, the fpcc in the distribution message is utilizedkGenerating verified information and aligning fpcckCorresponding verified information is signed to obtain a signature Sjk
Node j constructs a prepare message comprising the verified information and Sjk(ii) a And, for Sj in the preparation messagekCarrying out verification;
if the node i determines that the obtained at least more than (N + f)/2 preparation messages contain the same verified information and the at least more than (N + f)/2 preparation messages pass signature verification, constructing an end message containing a signature based on the signature in the at least more than (N + f)/2 preparation messages and sending the end message to the node j;
after acquiring the end message constructed by the node i, the node j verifies the signature contained in the end message, and if the verification is passed, Dki and fpcc are confirmedkAnd LkAnd confirming Bij; bij comprises Dki of all values of k;
after confirming the Bij, the node j triggers an aggregation signature process aiming at the Bi, and the process comprises the following steps: signing the unique identifier corresponding to the Bi to obtain a signature Ei, and returning the Ei to the node i; the node i obtains a polymerization signature based on the collected at least N-f Ei and sends the polymerization signature to the node j; after acquiring the aggregation signature corresponding to the node i, the node j adds the node i into a local node list;
the node j carries out public random sequencing on a local node list based on a public flat coin throwing protocol;
judging whether the node j confirms the data block of the data set formed by the first node in the sequence, if so, broadcasting the aggregation signature corresponding to the node; if the aggregation signature corresponding to at least one node is determined to be obtained, determining a data set formed by the node as a data set accepted by a node j; if the aggregate signature corresponding to the node is not obtained, continuously judging 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;
and the node j broadcasts the data blocks corresponding to the data set received by the node j, and recovers the data set to obtain the data set as the data set achieving consistency consensus based on at least f +1 different data blocks corresponding to the same data set obtained by the node j.
In some embodiments, further comprising:
a common public key PK and a private key SKj of a node j are agreed among all nodes 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;
node j pairs fpcckSigning the corresponding verified information to obtain a signature Sjkj, comprising:
using private Key SKi for fpcckCorresponding verified information is signed to obtain a signature Sjk
Based on the signature in the at least more than (N + f)/2 preparation messages, the node i constructs a finish message containing the signature, including:
combining signatures in the at least greater than (N + f)/2 ready messages into a threshold signature S based on a threshold signature protocolkAnd constructing a structure containing SkThe end message of (2);
node j verifies the signature contained in the end message, including:
node j verifies S using public key PKk
In some embodiments, the distributed system is a blockchain system; data Di is a block packed by node i based on transactions in its own cache.
In some embodiments, node j performs a transaction in each chunk of the data set after obtaining the data set, and writes each chunk of the data set to the chain of chunks after performing each transaction.
According to a fourth aspect of one or more embodiments of the present specification, there is provided a distributed system for use in any one 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 number of steps is designed.
Further, considering that the data consensus method described above actually belongs to a multiple consensus method, i.e. it does not distinguish between a primary node and a non-primary node in the consensus process (unlike the PBFT protocol), this means that in implementing the data consensus method described above once, although each node in the distributed system can propose data that is recognized by itself, each node in the distributed system can usually only agree with the data proposed by one of the nodes, so that the data proposed by the other nodes is "wasted".
Therefore, further improvements can be proposed based on the above-described consensus method. Specifically, each node may broadcast data proposed by itself (which may be understood as being sent to each other node in the distributed system), and then each node forms a data set from the data proposed by each node collected by itself, where the data sets formed by different nodes may be different, and then each node may take the data set formed by itself as its own proposal again, apply an erasure code technique to the data set, implement a data distribution method, and further implement data consensus.
Furthermore, in view of the principle of the improved data consensus method, the essence of the improved data consensus method is that small proposals made by a group of different nodes are aggregated into a large proposal, a data set corresponding to the large proposal is regarded as a data whole, and an erasure code technique is applied to data distribution, which results in that the existing data distribution method invented by the inventor only regards the data set as a data whole and only verifies the signature of the fpcc corresponding to the data set, but does not apply the erasure code technique to each data in the data set, and there is no fpcc corresponding to each data, and does not verify the signature of the fpcc corresponding to each data, which means that the authority control of the initiating node corresponding to each proposal in the data set cannot be realized in the data distribution stage, and only in the data consensus stage, after a certain data set is tentatively recognized as a data set, each node recovers the data set, performs signature verification on each data in the data set, and if the verification fails, the node needs to return to the consensus stage to re-identify the consensus data set, so that a large number of consensus rounds are increased, and the consensus efficiency is reduced.
For this reason, a more improved data consensus method can be proposed. And when the node distributes the data set as a proposal, the node does not apply erasure coding technology to the whole data set but extends into the set, applies erasure coding technology to each data respectively and generates fpcc corresponding to each data. A set of blocks of different data is then formed into a subset, and the different subsets are distributed to different nodes. Therefore, the node can verify the legality of each data block in the subset acquired by the node, verify whether the data block is matched with the corresponding fpcc, and verify whether the signature of the fpcc is correct, so that the data sets distributed by the nodes which do not pass the verification can be excluded in the data distribution process, and the data sets cannot enter a subsequent consensus process.
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 exemplarily provides a flow of another data distribution method.
Fig. 5 exemplarily provides a flow of a data consensus method.
Fig. 6 exemplarily provides a flow of a multivariate consensus method.
FIG. 7 illustrates another flow chart of a data consensus method.
FIG. 8 illustrates another flow chart of a data consensus method.
Detailed Description
Reference will now be made in detail to the exemplary embodiments, examples of which are illustrated in the accompanying drawings. The following description refers to the accompanying drawings in which the same numbers in different drawings represent 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 certain aspects of one or more embodiments of the specification, as detailed in the claims that follow.
It should be noted that: in other embodiments, the steps of the corresponding methods are not necessarily performed in the order shown and described in this specification. In some other embodiments, the methods may include more or fewer steps than those described herein. Moreover, a single step described in this specification may be broken down into multiple steps in other embodiments; multiple 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 academia.
In the data consensus process, the nodes are usually involved to propose data approved by the nodes, the data approved by the nodes are distributed to other nodes, and then each node can perform consensus on the data based on the consensus algorithm.
In addition, as described in the background art, the inventor proposes a data distribution method in another application document, which does not solve the problem of data consistency (i.e. the problem of data consensus) when a user requests concurrently based on the method, but the inventor finds that applying the data distribution method to the data distribution stage at the beginning of the data consensus process can realize a Multi-value valid dbyzantine agent (MVBA), which can greatly reduce the number of steps required by the data consensus process. Using the commonly used binary consensus such as the binary consensus of Cobalt or cacin, etc., the number of steps required by the common multivariate consensus method Dumbo-MVBA is 34 steps, while the number of steps required by the multivariate consensus method VCID-MVBA or VVCID-MVBA proposed by the present disclosure may be 17.5 steps, and the improvement of the consensus efficiency is significant.
The existing data distribution method proposed by the inventor is introduced here. The data distribution method proposed by the inventor is a data distribution protocol which can save bandwidth and has linear message complexity, and this data distribution protocol may be referred to as Verifiable Consistent Information Distribution (VCID). The linear complexity here means that the number of nodes in the distributed system increases linearly, and the corresponding message complexity only increases linearly.
While an existing storage scheme based on the technology erasure code technology is implemented based on the data distribution protocol AVID, details of the implementation of the data distribution protocol are not described herein, but it is emphasized that, in the implementation process of the AVID protocol, the number of messages that need to be interacted between nodes is large (which means that more bandwidth is occupied, and great message complexity is also 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 a horizontal line represent the identity of the same node at different stages. Assume that there are 4 nodes in the distributed system. In the implementation process of the AVID protocol, three stages of SEND, ECHO and READY mainly exist, and each message interaction among the 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 needing interaction between nodes is relatively large, the message complexity is not linear, and the message complexity of the AVID can be O (N)2) To indicate, N is the number of nodes.
Fig. 2 exemplarily provides an implementation procedure of the VCID protocol. As shown in fig. 2, compared to the implementation process of the AVID protocol shown in fig. 1, in the implementation process of the VCID protocol, the number of messages that need to interact between nodes is small, and the message complexity is linear.
It is furthermore emphasized that the VCID protocol belongs to an asynchronous protocol, which is not implemented in dependence on a time assumption.
In addition, the VCID protocol may implement the following 4-point security features:
1. if a correct node in the distributed system distributes the data D as a distribution demanding party, all correct nodes in the distributed system will acknowledge one data block (data block generated based on erasure coding technique) of the data D.
2. The data blocks output by any f +1 correct nodes in the distributed system can be restored to the original data D.
3. If the data reader receives the security certificate generated after the data D is distributed in the distributed system, the data reader can read the data D from the distributed system.
4. If a correct node in the distributed system as a data sender sends data D through the distributed system, the data receiver can necessarily receive the data D through the distributed system.
The following 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 to make the distributed system have node fault tolerance capability, it is generally required to assume the number f of fault-tolerant nodes and then determine the number of nodes in the distributed system, i.e., N, based on f. For byzantine fault tolerance, N is M +2f, N is at least 4. In addition, the distributed system may not have a byzantine fault tolerance capability (both compatible with a certain number of downtime nodes and a certain number of malicious nodes), but only has a common fault tolerance capability, and is compatible with the existence of a certain number of downtime nodes and not compatible with the existence of a certain number of malicious nodes, in which case, N is greater than 2f, and N is at least 3. For convenience of description, the byzantine fault-tolerant case is described as an example, and on this basis, a person skilled in the art can easily think of an example of a case of general fault tolerance.
It should also be noted that the node described herein may be embodied as a device or a device cluster, and the device may be a server, for example. In the following description, a downed or badly node is referred to as a faulty node, and a non-faulty node is referred to as a correct node.
Fig. 3 exemplarily provides a flow of a data distribution method, including the following steps:
s300: the distribution demander converts the data D to be distributed into N data blocks based on an erasure coding technology.
It should be noted that, in the following, the following description rules are used:
f represents the number of nodes fault-tolerant to the distributed system, and N represents the number of nodes of the distributed system. Capital letters including N denote fixed data or fixed values, and lower case letters denote variables (except f, which is a special case). When describing a variable represented by a lower case letter, it means 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 data distribution demander refers to a party with a demand on data distribution, and the data distribution demander can be a client of a user or any node in a distributed system.
Existing erasure coding techniques can be understood as converting a data into N different data blocks, and recovering the original data based on M of the N data blocks. The data to be distributed is recorded as D, N data blocks comprise Di, i is 1, … and N, D can be obtained based on M data blocks in the N data blocks, M is less than N, N is M +2f, and M is greater than f. It is 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 in the erasure coding technique that can recover the original data may be set to f +1, and the number of nodes N in the distributed system may be set to be greater than M +2 f.
S301: the distribution demander generates characteristic cross-check information fpcc for verifying whether the data block is legal.
The existing fpcc technology can verify whether any data block belongs to a data block which is removed from original data by using erasure coding technology. For convenience of description herein, a data block is legally defined as a data block belonging to one of N data blocks of original data D. fpcc is short for finger-printed cross-check sum. The fpcc contains hashes of N erasure-coded data blocks, and global hash (univeral hash function) of M erasure-coded data blocks. Global hashing of M data blocks requires maintaining a linear combination relationship between erasure coded data blocks.
The fpcc is a data structure, and when the distribution demand side applies erasure coding technology to process data D, the distribution demand side can generate the fpcc.
S302: and 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 acquires the distribution message sent by the distribution demander, but at least N-f correct nodes may receive the distribution message, and therefore, the node i here may represent each correct node.
The distribution message may include Di and fpcc, with different Di received by different correct nodes.
S303: and the node i verifies whether Di is legal or not based on fpcc in the distribution message, if so, verified information is generated by using fpcc in the distribution message based on a preset generation rule, and the verified information is signed to obtain a signature Si.
In some embodiments, the sending message may further include a distribution flow identifier for distinguishing distribution flows of different data to be stored.
The preset generation rule here may be that the fpcc in the distribution message is used as checked information; or the hash value of fpcc in the distribution message is used as the 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 the signatures Si obtained by different correct nodes are different from each other, and therefore the signatures Si are also different.
S304: a distribution demand side acquires a node i to construct a preparation message, wherein the preparation message comprises verified information and Si; then, Si in the preparation message is verified.
If the aforementioned distribution message further contains a distribution flow identification, each preparation message may further contain a distribution flow identification.
S305: if the distribution demand side determines that the acquired at least more than (N + f)/2 preparation messages contain the same verified information and the at least more than (N + f)/2 preparation messages pass signature verification, an end message containing a signature is constructed and sent to the node i based on the signature in the at least more than (N + f)/2 preparation messages.
If the aforementioned distribution message further contains a distribution flow identifier, each end message further includes a distribution flow identifier.
S306: and 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 signature passes verification, the Di and the fpcc are confirmed.
In addition, the signature algorithm adopted for the verified information may be a threshold signature, a common signature or an aggregate signature.
In some embodiments, a common public key PK and a private key SKi of a node i may be agreed in advance based on a threshold signature protocol between nodes; wherein, the threshold value of the threshold signature protocol is more than or equal to (N + f)/2. The node i can sign the verified information by using a private key SKi to obtain a signature Si. The distribution demander may combine signatures in the at least greater than (N + f)/2 ready messages into a threshold signature S based on a threshold signature protocol and construct a stop message containing S. Node i may verify S using the public key PK.
In addition, an authority control function for distributing a demander may be added to the data distribution method shown in fig. 3. Only the distributor with the authority can write data into the distributed system.
Fig. 4 exemplarily provides a flow of another data distribution method, including the steps of:
s400: the distribution demander converts the data D to be distributed into N data blocks based on an erasure code technology.
S401: the distribution demander generates characteristic cross-check information fpcc for verifying whether the data block is legal.
S402: and the node i of the distributed system acquires the distribution message constructed by the distribution demander.
S403: and the node i verifies whether Di is legal or not based on fpcc in the distribution message, verifies whether L is a signature obtained based on fpcc or not, and if the verification results are yes, generates verified information by using fpcc in the distribution message based on a preset generation rule, and signs the verified information to obtain a signature Si.
S404: a distribution demand side acquires a node i to construct a preparation message, wherein the preparation message comprises verified information and Si; and, Si in the preparation message is verified.
S405: if the distribution demand side determines that the acquired at least more than (N + f)/2 preparation messages contain the same verified information and the at least more than (N + f)/2 preparation messages pass signature verification, an end message containing a signature is constructed and sent to the node i based on the signature in the at least more than (N + f)/2 preparation messages.
S406: and 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, the Di, the fpcc and the L are confirmed.
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 the authority control for distributing the demander.
The distribution message constructed by the distribution demander needs to contain L in addition to at least Di and fpcc, wherein L is the signature of the distribution demander. In some embodiments, L is a signature generated by the distributor-demander for fpcc. It is easy to understand that L cannot be the signature of D by the distribution demander, because each node cannot get the complete data D, and cannot verify such a signature.
By the method shown in fig. 3 or fig. 4, in the process of implementing data distribution in the distributed system, less network bandwidth may be occupied, and the number of messages that need to be interacted between nodes is less, resulting in lower message complexity.
Fig. 5 exemplarily provides a flow of a data consensus method, including the following steps:
s501: the node i determines the proposed data Di for the same matter, and distributes the data block Dij corresponding to Di to the node j based on the existing data distribution method.
Where i is 1, …, N, j is 1, …, N, and Dij is a data block into which Di is converted based on an erasure coding technique.
S502: after confirming Dij, node j triggers an aggregate signature flow for Di.
The aggregated signature flow may include: signing the unique identifier corresponding to the Di to obtain a signature Ei, and returning the Ei to the node i; the node i obtains a polymerization signature based on the collected at least N-f Ei and sends the polymerization signature to the node j; and after the node j acquires the aggregation signature corresponding to the node i, adding the node i into a local node list.
S503: and the node j performs public random sequencing on the local node list based on a common flat coin throwing protocol.
S504: the node j judges whether the node j confirms the data block of the data proposed by the first node in the sequence, if so, the node j broadcasts the aggregation signature corresponding to the node; if the aggregate signature corresponding to at least one node is determined to be acquired, determining the proposal of the node as the proposal accepted by the node j; and if the aggregate signature corresponding to the node is not obtained, continuously judging 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: and the node j broadcasts the data blocks corresponding to the proposals received by the node j, and recovers to obtain the data corresponding to the proposals as the data achieving the consensus of consistency based on at least f +1 different data blocks corresponding to the same proposal obtained by the node j.
In some embodiments, Di may correspond to a unique identifier: and the distribution process identification corresponding to the Di and the aggregation signature process identification corresponding to the Di.
Fig. 6 illustrates a flow of a multivariate consensus method. As shown in fig. 6, taking an example that a distributed system includes 4 nodes, taking an applied data Distribution protocol as a VVCID, the 4 nodes p1, p2, p3, and p4 propose data approved by themselves, respectively, initiate their VVCID flows (step number is 3 steps), after each VVCID flow is completed, enter an ECHO flow corresponding to each VVCID flow (i.e., the aggregation signature flow described above, step number is 2), after the aggregation signature flow is completed, enter a Per stage (i.e., step S503, step number is 1), after the Per stage, enter a cycle repeat stage (i.e., step S504), where the cycle 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 rounds of a general cycle is 1.5. After the repeat phase, the retrieve phase is entered (i.e., step S505).
It can be seen that the method shown in fig. 5 corresponds to the desired number of steps of 3+2+1+1.5 (1+2 × 3) +1 ═ 17.5.
Further, considering that the data consensus method described above actually belongs to a multiple consensus method, i.e. it does not distinguish between a primary node and a non-primary node in the consensus process (unlike the PBFT protocol), this means that in implementing the data consensus method described above once, although each node in the distributed system can propose data that is recognized by itself, each node in the distributed system can usually only agree with the data proposed by one of the nodes, so that the data proposed by the other nodes is "wasted".
Therefore, further improvements can be proposed based on the above-described consensus method. Specifically, each node may broadcast data proposed by itself (which may be understood as being sent to each other node in the distributed system), and then each node forms a data set from the data proposed by each node collected by itself, where the data sets formed by different nodes may be different, and then each node may re-use the data set formed by itself as its proposal, apply an erasure coding technique to the data set, implement a data distribution method, and further implement data consensus.
Fig. 7 exemplarily provides a flow of another data consensus method, including the following steps:
s701: the node i determines and broadcasts the proposed data Di for that same matter.
S702: and the node i distributes a data set Bi formed by the acquired data proposed by different nodes to the node j based on the existing data distribution method and the data block Bij corresponding to the Bi.
Where i is 1, …, N, j is 1, …, N, and Bij is a data block into which Bi is converted based on an erasure coding technique.
S703: and after confirming the Bij, the node j triggers an aggregation signature process aiming at the Bi.
The aggregation signature process comprises the following steps: signing the unique identifier corresponding to the Bi to obtain a signature Ei, and returning the Ei to the node i; the node i obtains a polymerization signature based on the collected at least N-f Ei and sends the polymerization signature to the node j; and after acquiring the aggregation signature corresponding to the node i, the node j adds the node i into a local node list.
S704: and the node j performs public random sequencing on a local node list based on a public flat coin throwing protocol.
S705: the node j judges whether the node j confirms a data block of a data set formed by a first node in the sequence, if so, the node j broadcasts an aggregation signature corresponding to the node; if the aggregate signature corresponding to at least one node is determined to be acquired, determining a data set formed by the node as a data set accepted by the node j; and if the aggregate signature corresponding to the node is not obtained, continuously judging 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: and the node j broadcasts the data blocks corresponding to the data set received by the node j, and recovers the data set to obtain the data set as the data set achieving consistency consensus based on at least f +1 different data blocks corresponding to the same data set obtained by the node j.
In some embodiments, the node i determines and broadcasts the proposed data Di for the same event, which may specifically include: and the node i determines the data Di proposed for the same matter, signs the data Di and broadcasts the signed data Di. Correspondingly, the data set Bi formed by the data proposed by the different nodes and acquired by the node i may specifically include: and the node i forms a data set Bi by the data which are acquired and proposed by different nodes and pass signature verification.
Furthermore, in view of the principle of the improved data consensus method, the essence of the improved data consensus method is that small proposals made by a group of different nodes are aggregated into a large proposal, a data set corresponding to the large proposal is regarded as a data whole, and an erasure code technique is applied to data distribution, which results in that the existing data distribution method invented by the inventor only regards the data set as a data whole and only verifies the signature of the fpcc corresponding to the data set, but does not apply the erasure code technique to each data in the data set, and there is no fpcc corresponding to each data, and does not verify the signature of the fpcc corresponding to each data, which means that the authority control of the initiating node corresponding to each proposal in the data set cannot be realized in the data distribution stage, and only in the data consensus stage, after a certain data set is tentatively recognized as a data set, each node recovers the data set, performs signature verification on each data in the data set, and if the verification fails, the node needs to return to the consensus stage to re-identify the consensus data set, so that a large number of consensus rounds are increased, and the consensus efficiency is reduced.
For this reason, a more improved data consensus method can be proposed. When the existing data distribution method is changed, when the node distributes the data set as a proposal, the node does not apply erasure coding technology to the whole data set, but extends into the set, applies erasure coding technology to each data respectively, and generates fpcc corresponding to each data. A set of blocks of different data is then formed into a subset, and the different subsets are distributed to different nodes. Therefore, the node can verify the legality of each data block in the subset acquired by the node, verify whether the data block is matched with the corresponding fpcc, and verify whether the signature of the fpcc is correct, so that the data sets distributed by the nodes which do not pass the verification can be excluded in the data distribution process, and the data sets cannot enter a subsequent consensus process.
Fig. 8 exemplarily provides a flow of another data consensus method, including the following steps:
s801: the node i determines and broadcasts the proposed data Di for that same matter.
S802: the node i acquires a data set Bi formed by data proposed by different nodes, and converts data Dk in the Bi into N data blocks based on an erasure code technology.
The N data blocks of Dk include Dki, k is 1, …, Ki is the number of data in Bi, i is 1, …, N, Dk is obtained based on M data blocks of the N data blocks of Dk, M < N, N is M +2f, M > f, f is the number of nodes that the distributed system including N nodes can tolerate.
S803: the node i generates characteristic cross check information fpcc for verifying whether the data block belongs to the N data blocks of Dkk
S804: the node j obtains a distribution message constructed by the node i, wherein the distribution message comprises Dki and fpcckAnd Lk
S805: node j bases its fpcc in the dispatch messagekIt is verified Dki whether it belongs to the N data blocks of Dk, and LkWhether fpcc based or notkIf the obtained signatures are all yes, based on the preset generation rule, the fpcc in the distribution message is utilizedkGenerating verified information and aligning fpcckSigning the corresponding verified information to obtain a signature Sjk
S806: node j constructs a prepare message comprising the verified information and Sjk(ii) a And, for Sj in the preparation messagekAnd (6) carrying out verification.
S807: if the node i determines that at least more than (N + f)/2 acquired preparation messages contain the same verified information and the at least more than (N + f)/2 acquired preparation messages pass signature verification, constructing a finish message containing a signature based on the signature in the at least more than (N + f)/2 acquired preparation messages and sending the finish message to the node j.
S808: after acquiring the end message constructed by the node i, the node j verifies the signature contained in the end message, and if the verification is passed, Dki and fpcc are confirmedkAnd LkAnd confirming Bij; bij includes Dki for all values of k.
S809: after confirming Bij, the node j triggers an aggregation signature process aiming at Bi.
The aggregation signature process comprises the following steps: signing the unique identifier corresponding to the Bi to obtain a signature Ei, and returning the Ei to the node i; the node i obtains a polymerization signature based on the collected at least N-f Ei and sends the polymerization signature to the node j; and after acquiring the aggregation signature corresponding to the node i, the node j adds the node i into a local node list.
S810: and the node j performs public random sequencing on a local node list based on a public flat coin throwing protocol.
S811: the node j judges whether the node j confirms a data block of a data set formed by a first node in the sequence, if so, the node j broadcasts an aggregation signature corresponding to the node; if the aggregation signature corresponding to at least one node is determined to be obtained, determining a data set formed by the node as a data set accepted by a node j; and if the aggregate signature corresponding to the node is not acquired, continuously judging 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: and the node j broadcasts the data blocks corresponding to the data set received by the node j, and recovers to obtain the data set as the data set achieving consistency consensus based on at least f +1 different data blocks corresponding to the same data set obtained by the node j.
In some embodiments, the common public key PK and the private key SKj of the node j may be agreed in advance based on a threshold signature protocol between the nodes; wherein the threshold isThe threshold value of the signature protocol is at least greater than (N + f)/2. Thus, node j may use private key SKi for fpcckCorresponding verified information is signed to obtain a signature Sjk. Further, the node i may combine the signatures in the at least more than (N + f)/2 prepare messages into a threshold signature S based on a threshold signature protocolkAnd constructing a structure containing SkThe end message of (2). Node j may verify S using public key PKk
In some embodiments, the distributed system is a blockchain system; data Di is a block packed by node i based on transactions in its own cache.
In some embodiments, node j performs a transaction in each block of the data set after obtaining the data set, and writes each block of the data set to a block chain after performing each transaction.
The systems, apparatuses, modules or units described in the above embodiments may be specifically implemented by a computer chip or an entity, or implemented by a product with certain functions. One typical implementation device is a computer. In particular, the computer may be, for example, a personal computer, a laptop computer, a cellular telephone, a camera phone, a smartphone, 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 divided into various units by function, respectively. Of course, the functionality of the various elements may be implemented in the same one or more pieces of software and/or hardware in the practice of this description.
As will be appreciated by one skilled in the art, 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 has been 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 flow diagrams and/or block diagrams, and combinations of flows and/or blocks in the flow diagrams 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.
This 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 forms of volatile memory in a computer readable medium, Random Access Memory (RAM) and/or non-volatile memory, such as Read Only Memory (ROM) or flash memory (flash RAM). Memory is an example of a computer-readable medium.
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 computer storage media 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, 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 media or other magnetic storage devices, or any other non-transmission medium that can be used to store information that can be accessed by a computing device. As defined herein, a computer readable medium does not include a transitory computer readable medium such as a modulated data signal and a carrier wave.
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 an … …" does not exclude the presence of other like elements in a process, method, article, or apparatus that comprises the element.
The foregoing description of specific embodiments has been presented for purposes of illustration and description. 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 may also be possible or may be advantageous.
The terminology used in the description of the one or more embodiments is for the purpose of describing the particular embodiments only and is not intended to be limiting of the description of the one or more embodiments. As used in this specification 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 and 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, such 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 herein. The word "if," as used herein, may be interpreted as "at … …" or "when … …" or "in response to a determination," depending on the context.
The above description is intended only to be exemplary of the one or more embodiments of the present disclosure, and should not be taken as limiting the one or more embodiments of the present disclosure, as any modifications, equivalents, improvements, etc. that come within the spirit and scope of the one or more embodiments of the present disclosure are intended to be included within the scope of the one or more embodiments of the present disclosure.

Claims (10)

1. A data consensus method for achieving consistent consensus among N nodes of a distributed system of data proposed for the same transaction, the method comprising:
the node i determines the proposed data Di for the same item, and distributes a data block Dij corresponding to the data Di to a node j based on an existing data distribution method; wherein i is 1, …, N, j is 1, …, N, Dij is a data block into which Di is converted based on an erasure coding technique;
after confirming Dij, the node j triggers an aggregation signature process for Di, and the process comprises the following steps: signing the unique identifier corresponding to the Di to obtain a signature Ei, and returning the Ei to the node i; the node i obtains a polymerization signature based on the collected at least N-f Ei and sends the polymerization signature to the node j; after acquiring the aggregation signature corresponding to the node i, the node j adds the node i into a local node list;
the node j carries out public random sequencing on a local node list based on a public flat coin throwing protocol;
the node j judges whether the node j confirms the data block of the data proposed by the first node in the sequence, if so, the node j broadcasts the aggregation signature corresponding to the node; if the aggregate signature corresponding to at least one node is determined to be acquired, 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, whether the data block of the data proposed by the next node in the sequence is confirmed or not is continuously judged until the proposal accepted by the node j is determined;
and the node j broadcasts the data block corresponding to the proposal received by the node j, and recovers and obtains the data corresponding to the proposal as the data which achieves the consensus based on at least f +1 different data blocks corresponding to the same proposal obtained by the node j.
2. The method of claim 1, the unique identifier corresponding to Di, comprising: and the distribution process identification corresponding to the Di and the aggregation signature process identification corresponding to the Di.
3. A data consensus method for achieving consistent consensus among N nodes of a distributed system of data proposed for the same transaction, the method comprising:
the node i determines and broadcasts the proposed data Di for the same matter;
the node i distributes a data set Bi formed by the acquired data proposed by different nodes to a node j based on an existing data distribution method, wherein the data set Bi corresponds to the data block Bij; wherein i is 1, …, N, j is 1, …, N, Bij is a data block into which Bi is converted based on an erasure coding technique;
after confirming the Bij, the node j triggers an aggregation signature process aiming at the Bi, and the process comprises the following steps: signing the unique identifier corresponding to the Bi to obtain a signature Ei, and returning the Ei to the node i; the node i obtains a polymerization signature based on the collected at least N-f Ei and sends the polymerization signature to the node j; after acquiring the aggregation signature corresponding to the node i, the node j adds the node i into a local node list;
the node j carries out public random sequencing on a local node list based on a public flat coin throwing protocol;
judging whether the node j confirms the data block of the data set formed by the first node in the sequence, if so, broadcasting the aggregation signature corresponding to the node; if the aggregation signature corresponding to at least one node is determined to be obtained, determining a data set formed by the node as a data set accepted by a node j; if the aggregate signature corresponding to the node is not obtained, continuously judging 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;
and the node j broadcasts the data blocks corresponding to the data set received by the node j, and recovers the data set to obtain the data set as the data set achieving consistency consensus based on at least f +1 different data blocks corresponding to the same data set obtained by the node j.
4. The method as recited in claim 3, wherein the node i determines and broadcasts the proposed data Di for the same transaction, comprising:
the node i determines the data Di proposed for the same item, signs the data Di and broadcasts the signed data Di;
the node i forms a data set Bi with the acquired data proposed by different nodes, and the data set Bi comprises:
and the node i forms a data set Bi by the data which are acquired and proposed by different nodes and pass signature verification.
5. A data consensus method for achieving consistent consensus among N nodes of a distributed system of data proposed for the same transaction, the method comprising:
the node i determines and broadcasts the proposed data Di for the same matter;
the node i converts data Dk in the Bi into N data blocks based on an erasure code technology, wherein the N data blocks of the Dk comprise Dki, k is 1, … and Ki, Ki is the number of data in the Bi, i is 1, … and N, Dk can be obtained based on M data blocks in the N data blocks of the Dk, M is less than N, N is M +2f, M is greater than f, and f is the number of nodes which are fault-tolerant for a distributed system comprising the N nodes;
the node i generates characteristic cross check information fpcc for verifying whether the data block belongs to the N data blocks of Dkk
The node j obtains a distribution message constructed by the node i, wherein the distribution message comprises Dki and fpcckAnd Lk
Node j bases its fpcc in the dispatch messagekIt is verified Dki whether it belongs to the N data blocks of Dk, and LkWhether fpcc based or notkIf the obtained signatures are all yes, based on the preset generation rule, the fpcc in the distribution message is utilizedkGenerating verified information and aligning fpcckSigning the corresponding verified information to obtain a signature Sjk
Node j constructs a prepare message comprising the verified information and Sjk(ii) a And, for Sj in the preparation messagekCarrying out verification;
if the node i determines that the obtained at least more than (N + f)/2 preparation messages contain the same verified information and the at least more than (N + f)/2 preparation messages pass signature verification, constructing an end message containing a signature based on the signature in the at least more than (N + f)/2 preparation messages and sending the end message to the node j;
after acquiring the end message constructed by the node i, the node j verifies the signature contained in the end message, and if the verification is passed, Dki and fpcc are confirmedkAnd LkAnd confirming Bij; bij comprises Dki of all values of k;
after confirming the Bij, the node j triggers an aggregation signature process aiming at the Bi, and the process comprises the following steps: signing the unique identifier corresponding to the Bi to obtain a signature Ei, and returning the Ei to the node i; the node i obtains a polymerization signature based on the collected at least N-f Ei and sends the polymerization signature to the node j; after acquiring the aggregation signature corresponding to the node i, the node j adds the node i into a local node list;
the node j carries out public random sequencing on a local node list based on a public flat coin throwing protocol;
the node j judges whether the node j confirms a data block of a data set formed by a first node in the sequence, if so, the node j broadcasts an aggregation signature corresponding to the node; if the aggregation signature corresponding to at least one node is determined to be obtained, determining a data set formed by the node as a data set accepted by a node j; if the aggregate signature corresponding to the node is not obtained, continuously judging 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;
and the node j broadcasts the data blocks corresponding to the data set received by the node j, and recovers the data set to obtain the data set as the data set achieving consistency consensus based on at least f +1 different data blocks corresponding to the same data set obtained by the node j.
6. The method of claim 5, further comprising:
appointing a common public key PK and a private key SKj of a node j based on a threshold signature protocol in advance among the nodes; wherein, the threshold value of the threshold signature protocol is more than or equal to (N + f)/2;
node j pairs fpcckCorresponding verified information is signed to obtain a signature Sjkj, comprising:
using private Key SKi for fpcckCorresponding verified information is signed to obtain a signature Sjk
Based on the signature in the at least more than (N + f)/2 preparation messages, the node i constructs a finish message containing the signature, including:
combining signatures in the at least more than (N + f)/2 preparation messages into a threshold signature S based on a threshold signature protocolkAnd constructing a structure containing SkThe end message of (2);
node j verifies the signature contained in the end message, including:
node j verifies S using public key PKk
7. The method of claim 5, wherein the distributed system is a blockchain system; data Di is a block packed by node i based on transactions in its own cache.
8. The method of claim 7, wherein node j performs a transaction in each chunk of the data set after obtaining the data set, and writes each chunk of the data set to a blockchain after performing each transaction.
9. A distributed system for use in the method of any one of claims 1 to 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 true CN114782047A (en) 2022-07-22
CN114782047B 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
CN113609515A (en) * 2021-10-09 2021-11-05 支付宝(杭州)信息技术有限公司 Consensus method and block chain system
CN113610531A (en) * 2021-10-09 2021-11-05 支付宝(杭州)信息技术有限公司 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
CN113630259A (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
CN113609515A (en) * 2021-10-09 2021-11-05 支付宝(杭州)信息技术有限公司 Consensus method and block chain system
CN113610531A (en) * 2021-10-09 2021-11-05 支付宝(杭州)信息技术有限公司 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
CN113630259A (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
CN114782047B (en) 2023-06-30

Similar Documents

Publication Publication Date Title
CN110046996B (en) Data processing method and device
CN111625593B (en) Block chain-based data processing method and device and computer equipment
US20190075160A1 (en) System and method for announcing cryptographic keys on a blockchain
CN111066285A (en) Method for recovering public key based on SM2 signature
CN110597489B (en) Random number generation method, equipment and medium
CN111698094B (en) Common identification method based on block chain system and block chain system
CN111046411B (en) Power grid data safe storage method and system
CN112348518B (en) Block chain transaction certification method and device
CN111522874B (en) Block chain consensus method, apparatus, computer device and storage medium
CN113810465B (en) Asynchronous binary consensus method and device
CN110336779B (en) Block chain construction method and device and electronic equipment
CN113055188A (en) Data processing method, device, equipment and storage medium
CN112686672B (en) Endorsement signature compression method on blockchain, electronic equipment and storage medium
CN112307504B (en) Secure multiparty computing method, device, electronic equipment and storage medium
CN113783708A (en) Re-voting binary consensus method and device based on reliable broadcast
CN111292190A (en) Transaction generation method, block creation method, related device and equipment
US20150023498A1 (en) Byzantine fault tolerance and threshold coin tossing
CN113988831A (en) Transfer method based on alliance chain
CN114398651B (en) Secret data sharing method and distributed system
CN113051622A (en) Index construction method, device, equipment and storage medium
CN112995167A (en) Kafka mechanism-based power utilization information acquisition method, block chain network and user side
CN110585727B (en) Resource acquisition method and device
CN114782047A (en) Data consensus method and distributed system
CN114780987B (en) Data distribution, storage, reading and transmission method and distributed system
Xie et al. A raft algorithm with byzantine fault-tolerant performance

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