CN113890744A - Aggregate signature consensus method, computer device, and storage medium - Google Patents

Aggregate signature consensus method, computer device, and storage medium Download PDF

Info

Publication number
CN113890744A
CN113890744A CN202111167249.8A CN202111167249A CN113890744A CN 113890744 A CN113890744 A CN 113890744A CN 202111167249 A CN202111167249 A CN 202111167249A CN 113890744 A CN113890744 A CN 113890744A
Authority
CN
China
Prior art keywords
vote
signature
node
commit
votes
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.)
Pending
Application number
CN202111167249.8A
Other languages
Chinese (zh)
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.)
Nanjing Benchain Information Technology Co ltd
Hangzhou Fuzamei Technology Co Ltd
Original Assignee
Nanjing Benchain Information Technology Co ltd
Hangzhou Fuzamei Technology Co Ltd
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 Nanjing Benchain Information Technology Co ltd, Hangzhou Fuzamei Technology Co Ltd filed Critical Nanjing Benchain Information Technology Co ltd
Priority to CN202111167249.8A priority Critical patent/CN113890744A/en
Publication of CN113890744A publication Critical patent/CN113890744A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/30Decision processes by autonomous network management units using voting and bidding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

The invention provides a polymerization signature consensus method, computer equipment and a storage medium, wherein the method comprises the following steps: in response to the current node determining the proposed node as the current block height, packaging the first block and broadcasting to each verification node; receive the pre-vote after each signature and monitor whether the number of votes for the approved first block exceeds 2/3 of the total number of consensus nodes: if so, aggregating signatures voted by pre-votes of all approved first blocks according to an aggregation signature algorithm, and broadcasting the first aggregation signatures and corresponding voting contents to all verification nodes; receiving pre-commit votes after each signature and monitoring 2/3 whether the number of votes approving the first aggregated signature exceeds the total number of consensus nodes: if yes, confirming the first block; and aggregating the signatures voted for the pre-commit of each approved first aggregated signature according to an aggregated signature algorithm, and broadcasting the second aggregated signature and the corresponding voting content to each verification node. The application improves the consensus efficiency on the premise of ensuring the safety.

Description

Aggregate signature consensus method, computer device, and storage medium
Technical Field
The present application relates to the field of block chain technology, and in particular, to a method, a computer device, and a storage medium for consensus on aggregate signatures.
Background
Many current blockchain consensus methods developed/optimized/variant/derived from byzantine fault-tolerant algorithms employ a "two-round voting scheme":
the first round of voting is pre-vote, i.e. proposing that nodes pack and broadcast a block of blocks0Then, each consensus node verifies and votes for the consensus node and broadcasts the pre-vote of the consensus node to all the consensus nodes;
the second round of voting is pre-commit voting, that is, after each consensus node receives the pre-vote broadcast by other consensus nodes, whether a block recognized by the consensus node above 2/3 exists is judged1: if yes, generating an agreed pre-commit vote; if not, generating an objective pre-commit vote; broadcasting the pre-commit vote of the node to all the consensus nodes;
and finally, each consensus node judges whether more than 2/3 consensus nodes cast the agreed pre-commit votes according to the received pre-commit votes: if yes, the block is finally confirmed1
The disadvantage of the above-mentioned "two-round voting system" is that each consensus node broadcasts its own vote to all consensus nodes in each round of voting, and the time complexity of each round of voting is O (n) taking the total number of consensus nodes as n as an example2) When the value of n is larger, the communication efficiency is lower, and the consensus efficiency is lower.
An aggregated signature is a variant signature scheme used to aggregate any number of signatures into one signature. Taking m users as an example of respectively holding m public and private key pairs, the m users respectively sign the same or different messages through respective private keys to generate m signatures, and then the m signatures can be aggregated into one signature lambda through an aggregated signature algorithm, and the signature lambda can be verified according to the m public keys and the signed messages.
Disclosure of Invention
In view of the above-mentioned drawbacks and deficiencies of the prior art, it is desirable to provide an aggregated signature consensus method, a computer device and a storage medium that improve the consensus efficiency by improving the time complexity of voting without reducing security.
In a first aspect, the present invention provides an aggregated signature consensus method applicable to a consensus node, including:
in response to the current node determining as the proposed node of the current block height, packaging the first block and broadcasting to each verification node of the current block height for each verification node to respectively:
verifying the first block, and voting according to a verification result; and the number of the first and second groups,
signing the pre-vote through an aggregation signature algorithm, and returning the signed pre-vote to the current node;
receive the pre-vote after each signature and monitor whether the number of pre-vote votes for the approved first block exceeds 2/3 of the total number of consensus nodes:
if so, aggregating signatures voted for pre-votes of each approved first block according to an aggregate signature algorithm to generate a first aggregate signature, and broadcasting the first aggregate signature and corresponding voting contents to each verification node so that each verification node respectively:
verifying the first aggregate signature according to an aggregate signature algorithm to judge whether a pre-vote exceeding 2/3 of the total number of the common identification nodes approves the first block or not, and performing the pre-commit voting according to the judgment result; and the number of the first and second groups,
signing the pre-commit votes through a convergence signature algorithm, and returning the signed pre-commit votes to the current node;
receiving the pre-commit votes after each signature and monitoring whether the number of pre-commit votes approving the first aggregate signature exceeds 2/3 of the total number of consensus nodes:
if so, aggregating signatures voted for pre-commit of each approved first aggregated signature according to an aggregated signature algorithm to generate a second aggregated signature, and broadcasting the second aggregated signature and corresponding voting content to each verification node so that each verification node respectively:
the second aggregate signature is verified according to an aggregate signature algorithm to determine if a pre-commit vote of 2/3 that exceeds the total number of consensus nodes approves the first aggregate signature: if yes, the first block is confirmed.
In a second aspect, the present invention provides another aggregated signature consensus method suitable for a consensus node, including:
receiving a first block packed and broadcast by a proposed node of the current block height in response to a verification node of the current node determining the current block height;
verifying the first block, and voting according to a verification result;
signing the pre-vote through an aggregation signature algorithm, and returning the signed pre-vote to the proposal node for the proposal node to:
2/3, monitoring whether the number of pre-vote votes confirming the first block in the received pre-vote votes returned by the verification nodes of the current block height respectively exceeds the total number of the consensus nodes:
if so, aggregating signatures voted by pre-votes of all approved first blocks according to an aggregation signature algorithm to generate a first aggregation signature, and broadcasting the first aggregation signature and corresponding voting contents to all verification nodes;
verifying the first aggregate signature according to an aggregate signature algorithm to judge whether a pre-vote exceeding 2/3 of the total number of the common identification nodes approves the first block or not, and performing the pre-commit voting according to the judgment result;
signing the pre-commit vote through an aggregate signature algorithm, and returning the signed pre-commit vote to the proposal node for the proposal node to:
and monitoring 2/3 whether the number of the pre-commit votes which approve the first aggregation signature in the received pre-commit votes respectively returned by each verification node exceeds the total number of the consensus nodes:
if yes, aggregating signatures of pre-commit votes of all approved first aggregated signatures according to an aggregated signature algorithm to generate second aggregated signatures, and broadcasting the second aggregated signatures and corresponding voting contents to all verification nodes;
the second aggregate signature is verified according to an aggregate signature algorithm to determine if a pre-commit vote of 2/3 that exceeds the total number of consensus nodes approves the first aggregate signature: if yes, the first block is confirmed.
In a third aspect, the present invention also provides a computer device comprising one or more processors and a memory, wherein the memory contains instructions executable by the one or more processors to cause the one or more processors to perform an aggregated signature consensus method provided according to embodiments of the present invention.
In a fourth aspect, the present invention also provides a storage medium storing a computer program for causing a computer to execute the aggregate signature consensus method according to the embodiments of the present invention.
The aggregated signature consensus method, the computer device and the storage medium provided by the embodiments of the present invention modify the broadcasting of votes from consensus nodes to consensus nodes in a two-round voting system into the collection of votes by proposal nodes and the aggregation of signatures of votes, and then broadcast the aggregated votes to verification nodes, thereby realizing the purpose of changing the time complexity of each round of voting from O (n) without reducing the security of the voting system2) The consensus efficiency is improved by reducing the content of the active carbon to O (n);
the aggregated signature consensus method, the computer device and the storage medium provided by some embodiments of the present invention further switch the verification node to the voting broadcast mode when the proposal node does not normally broadcast the aggregated vote, so as to ensure that the consensus process does not stagnate due to the abnormal broadcast of the aggregated vote by the proposal node, thereby improving the robustness of the consensus method;
the aggregated signature consensus method, the computer device and the storage medium provided by some embodiments of the present invention further configure the verification node that does not receive the second aggregated signature after timeout to broadcast the first aggregated signature, thereby ensuring that the consensus process can still continue to be performed normally when some nodes fail to receive the first aggregated signature and some nodes fail to receive the second aggregated signature due to malicious proposal of the nodes, and further improving the robustness of the consensus method.
Drawings
Other features, objects and advantages of the present application will become more apparent upon reading of the following detailed description of non-limiting embodiments thereof, made with reference to the accompanying drawings in which:
fig. 1 is a flowchart of an aggregated signature consensus method according to an embodiment of the present invention.
Fig. 2 is a flowchart of another aggregated signature consensus method according to an embodiment of the present invention.
FIG. 3 is a flow chart of a preferred embodiment of the method shown in FIG. 2.
FIG. 4 is a flow chart of yet another preferred embodiment of the method shown in FIG. 2.
FIG. 5 is a flow chart of a preferred embodiment of the method shown in FIG. 4.
Fig. 6 is a schematic structural diagram of a computer device according to an embodiment of the present invention.
Detailed Description
The present application will be described in further detail with reference to the following drawings and examples. It is to be understood that the specific embodiments described herein are merely illustrative of the relevant invention and not restrictive of the invention. It should be noted that, for convenience of description, only the portions related to the present invention are shown in the drawings.
It should be noted that the embodiments and features of the embodiments in the present application may be combined with each other without conflict. The present application will be described in detail below with reference to the embodiments with reference to the attached drawings.
Fig. 1 is a flowchart of an aggregated signature consensus method according to an embodiment of the present invention.
As shown in fig. 1, in this embodiment, the present invention provides an aggregated signature consensus method applicable to a consensus node, including:
s11: in response to the current node determining as the proposed node of the current block height, packaging the first block and broadcasting to each verification node of the current block height for each verification node to respectively:
verifying the first block, and voting according to a verification result; and the number of the first and second groups,
signing the pre-vote through an aggregation signature algorithm, and returning the signed pre-vote to the current node;
s13: receive the pre-vote after each signature and monitor whether the number of pre-vote votes for the approved first block exceeds 2/3 of the total number of consensus nodes:
if yes, go to step S15: aggregating signatures of pre-vote votes of approved first blocks according to an aggregate signature algorithm to generate first aggregate signatures, and broadcasting the first aggregate signatures and corresponding voting contents to verification nodes so that the verification nodes respectively:
verifying the first aggregate signature according to an aggregate signature algorithm to judge whether a pre-vote exceeding 2/3 of the total number of the common identification nodes approves the first block or not, and performing the pre-commit voting according to the judgment result; and the number of the first and second groups,
signing the pre-commit votes through a convergence signature algorithm, and returning the signed pre-commit votes to the current node;
s17: receiving the pre-commit votes after each signature and monitoring whether the number of pre-commit votes approving the first aggregate signature exceeds 2/3 of the total number of consensus nodes:
if yes, go to step S19: aggregating the signatures voted for the pre-commit of each approved first aggregated signature according to an aggregated signature algorithm to generate a second aggregated signature, and broadcasting the second aggregated signature and the corresponding voting content to each verification node so that each verification node respectively:
the second aggregate signature is verified according to an aggregate signature algorithm to determine if a pre-commit vote of 2/3 that exceeds the total number of consensus nodes approves the first aggregate signature: if yes, the first block is confirmed.
Fig. 2 is a flowchart of another aggregated signature consensus method according to an embodiment of the present invention.
As shown in fig. 2, in this embodiment, the present invention further provides another aggregated signature consensus method suitable for a consensus node, including:
s21: receiving a first block packed and broadcast by a proposed node of the current block height in response to a verification node of the current node determining the current block height;
s22: verifying the first block, and voting according to a verification result;
s23: signing the pre-vote through an aggregation signature algorithm, and returning the signed pre-vote to the proposal node for the proposal node to:
2/3, monitoring whether the number of pre-vote votes confirming the first block in the received pre-vote votes returned by the verification nodes of the current block height respectively exceeds the total number of the consensus nodes:
if so, aggregating signatures voted by pre-votes of all approved first blocks according to an aggregation signature algorithm to generate a first aggregation signature, and broadcasting the first aggregation signature and corresponding voting contents to all verification nodes;
s24: verifying the first aggregate signature according to an aggregate signature algorithm to judge whether a pre-vote exceeding 2/3 of the total number of the common identification nodes approves the first block or not, and performing the pre-commit voting according to the judgment result;
s25: signing the pre-commit vote through an aggregate signature algorithm, and returning the signed pre-commit vote to the proposal node for the proposal node to:
and monitoring 2/3 whether the number of the pre-commit votes which approve the first aggregation signature in the received pre-commit votes respectively returned by each verification node exceeds the total number of the consensus nodes:
if yes, aggregating signatures of pre-commit votes of all approved first aggregated signatures according to an aggregated signature algorithm to generate second aggregated signatures, and broadcasting the second aggregated signatures and corresponding voting contents to all verification nodes;
s27: the second aggregate signature is verified according to an aggregate signature algorithm to determine if a pre-commit vote of 2/3 that exceeds the total number of consensus nodes approves the first aggregate signature: if yes, the first block is confirmed.
Specifically, 100 common nodes Node are configured in a certain blockchain network1-Node100Each consensus node may be determined to be a proposed node or a verification node, configured with the method of FIG. 1 and the method of FIG. 2, at a block height h1Determines the Node1For proposing Node, Node2-Node100Is to testThe method shown in fig. 1 and the method shown in fig. 2 are exemplarily explained by taking the node as an example.
In step S11, the Node1Responsive to the current node determining as the current block height h1The proposed node of (2), packing the block1And broadcast to each verification Node of the current block height2-Node100
Each verification Node2-Node100Received block1Then respectively making pre-vote to make Node2For example, the following steps are carried out:
Node2step S21 is executed to receive the block1And executing step S22 to block1Validation is performed (those skilled in the art will understand which validation is specifically performed and is not expanded here):
if the verification is successful, generating an authorized block1Pre-vote V ofpv-0
If the verification fails, a non-approved block is generated1Pre-vote V ofpv-1
Step S23 is executed again: by aggregating signature algorithms and held private keys p2Signing the generated pre-vote to generate signature data sign2(Vpv-0) The signed vote (V)pv-0,sign2(Vpv-0) Return to Node)1
In step S13, Node1Respectively receiving each verification Node2-Node100Returning pre-votes after each signature, and monitoring the acceptance block in each received pre-votes1Whether the number of pre-votes exceeds 2/3 of the total number of consensus nodes (100):
recognizing block blocks in received pre-votes when detecting1When the number of pre-votes is not less than 67, step S15 is executed to sign at least 67 signature votes for the pre-votes of each approved first block according to the aggregate signature algorithm2(Vpv-0)、sign4(Vpv-0)、…、sign96(Vpv-0) The polymerization is carried out, and the polymerization,generating a first aggregate signature λ1Signing the first aggregate with a1And corresponding voting content Vpv-0Broadcast to the verification nodes.
Each verification Node2-Node100Receiving a first aggregate signature λ1And corresponding voting content Vpv-0Post-verification of the first aggregate signature λ1To perform pre-commit voting, and also to Node2For example, the following steps are carried out:
Node2step S24 is executed, according to the verification method of the aggregate signature algorithm, according to each verification Node2-Node100Public key P of2-P100Voting content Vpv-0Sign lambda to the first aggregate1A verification is made to determine if there is a pre-vote exceeding 2/3 of the total number of consensus nodes to approve the first block:
if yes, then generate the approved first aggregate signature λ1Pre-commit vote V ofpc-0
Otherwise, generating a non-approved first aggregated signature lambda1Pre-commit vote V ofpc-1
Then, step S25 is executed to aggregate the signature algorithm and the held private key p2Signing the generated pre-commit votes to generate signature data sign2(Vpc-0) The signed vote (V)pc-0,sign2(Vpc-0) Return to Node)1
In step S17, Node1Respectively receiving each verification Node2-Node100The returned pre-commit votes after each signature are separated, and the acceptance of the first aggregate signature lambda in the received pre-commit votes is monitored1Whether the number of pre-commit votes exceeds 2/3 for the total number of consensus nodes (100):
the first aggregate signature lambda is approved in each pre-commit vote received when monitored1If the pre-commit vote number is not less than 67, step S19 may be executed to identify the first aggregate signature λ according to the aggregate signature algorithm1At least 67 signature sign of pre-commit vote of2(Vpc-0)、sign4(Vpc-0)、…、sign98(Vpc-0) Performing polymerization to generate a second polymerization signature lambda2Second aggregate signature λ2And corresponding voting content Vpc-0Broadcast to the verification nodes.
Each verification Node2-Node100Receiving a second aggregate signature λ2And corresponding voting content Vpc-0Post-separately verifying second aggregate signature λ2Node is also used2For example, the following steps are carried out:
Node2step S27 is executed, according to the verification method of the aggregate signature algorithm, according to each verification Node2-Node100Public key P of2-P100Voting content Vpc-0For the second polymerization signature lambda2Verifying whether the first aggregate signature lambda is approved by pre-commit voting for 2/3 which exceeds the total number of the consensus nodes1
If yes, the block is confirmed1And enter the next block height h1+1。
Enter the next block height h1After +1, the proposed node and each of the verification nodes (which may have been determined in advance) are re-determined, and consensus continues in the same way.
In the above embodiment, in the process of two rounds of voting, only the proposed Node exists1And verifying the Node2-Node100Without the existence of the verification Node2-Node100Compared with the time complexity O (n) of the prior communication of the two-round voting system in the broadcast communication2) The time complexity of the vote of this embodiment is only o (n).
In the above embodiment, the methods shown in fig. 1 and 2 are exemplarily illustrated by taking as an example that each consensus node may be determined as a proposed node or a verification node, and the method shown in fig. 1 and the method shown in fig. 2 are configured at the same time;
in another embodiment, according to actual requirements, a plurality of verification nodes dedicated to executing the method shown in fig. 2 may be configured in the blockchain network, that is, the type of node is fixed as a verification node, and the method shown in fig. 1 does not need to be configured;
in yet another embodiment, it is also possible to configure several proposed nodes dedicated to perform the method shown in fig. 1 in the blockchain network according to actual requirements, that is, such nodes do not participate in consensus when the proposed nodes are not determined to be a certain blockheight, and the method shown in fig. 2 need not be configured;
and so on.
The above embodiments can achieve the same technical effect without being influenced by the aforementioned common Node1-Node100The examples given are for the purpose of illustration.
In the embodiment, the broadcasting of the votes to the consensus nodes in the two-round voting system is modified into the collection of the votes by the proposal nodes, the aggregation of the signatures of the votes and the broadcasting of the aggregated votes to the verification nodes, so that the time complexity of each round of voting is increased from O (n) without reducing the safety of the voting system2) Lowering to o (n) improves consensus efficiency.
Although the method shown in fig. 2 successfully reduces the time complexity of two rounds of voting, the robustness of the consensus system is slightly sacrificed, which is particularly characterized in that the proposed node plays a role in aggregating the signatures of the verification nodes and broadcasting the aggregated signature, and when the proposed node is disconnected due to unexpected factors, or the proposed node maliciously does not broadcast the aggregated signature, even when the proposed node maliciously broadcasts the aggregated signature to the partial verification nodes and does not broadcast the aggregated signature to the partial nodes, the consensus process is stalled.
For the problem, the methods shown in fig. 3 to 5 optimize the method shown in fig. 2, and improve the robustness of the block chain network to ensure that the consensus process does not stop.
FIG. 3 is a flow chart of a preferred embodiment of the method shown in FIG. 2. As shown in fig. 3, in a preferred embodiment, the method further includes:
s261: in response to not receiving the first aggregated signature broadcast by the proposed node over time, broadcasting the pre-vote after the signature and receiving the pre-vote broadcast by other verification nodes of the current block height;
s262: monitoring 2/3 whether the number of the pre-votes approved by the first block in each pre-vote exceeds the total number of the common identification nodes or not within a first time limit, and performing the pre-commit voting according to the monitoring result;
s263: signing the pre-commit votes through an aggregate signature algorithm, broadcasting the signed pre-commit votes, and receiving the pre-commit votes broadcast by other verification nodes of the current block height;
s264: monitoring for a second time period whether the number of pre-commit votes casting a non-reputable vote in each pre-commit vote exceeds 2/3 of the total number of consensus nodes: if yes, the first block is confirmed.
Specifically, when the proposed node is disconnected due to an unexpected factor or maliciously does not broadcast the first aggregated signature, each verification node cannot receive the first aggregated signature, and then after waiting for timeout, broadcasts the pre-vote generated and signed by itself (and then broadcasts the pre-vote), that is, switches to the existing voting broadcast method, thereby ensuring that consensus continues to be performed when the proposed node does not act as a target.
FIG. 4 is a flow chart of yet another preferred embodiment of the method shown in FIG. 2. As shown in fig. 4, in a preferred embodiment, the method further includes:
s281: in response to not receiving the second aggregate signature broadcast by the proposed node over time, broadcasting a pre-commit vote after the signature and receiving pre-commit votes broadcast by other verification nodes for the current block height;
s282: monitoring for a third time period whether the number of pre-commit votes in each pre-commit vote that agree with the first aggregated signature exceeds 2/3 of the total number of consensus nodes: if yes, the first block is confirmed.
Specifically, when the proposed node is disconnected due to an unexpected factor after broadcasting the first aggregate signature, or does not broadcast the second aggregate signature maliciously, each verification node cannot receive the second aggregate signature, and the pre-commit vote generated and signed by the verification node is broadcast after waiting for timeout, so that consensus is continued under the condition that the proposed node does not broadcast the second aggregate signature.
The methods shown in fig. 3 and fig. 4 further ensure that the consensus process does not stagnate due to the fact that the proposal node does not normally broadcast the aggregated vote by switching the verification node to the voting broadcast mode when the proposal node does not normally broadcast the aggregated vote, thereby improving the robustness of the consensus method.
FIG. 5 is a flow chart of a preferred embodiment of the method shown in FIG. 4. As shown in fig. 5, it is further preferable that S281' further includes, in addition to S281: a first aggregated signature is broadcast.
Specifically, for example, when the proposed node maliciously broadcasts the first aggregate signature to 50% of the verification nodes and does not broadcast the first aggregate signature to the other 50% of the verification nodes, 50% of the verification nodes that receive the first aggregate signature may enter the pre-commit voting link, and 50% of the verification nodes that do not receive the first aggregate signature may not enter the pre-commit voting link.
At this time, even if the verification node which does not receive 50% of the first aggregated signature broadcasts its pre-vote by the method shown in fig. 3, the pre-vote voting link cannot be entered because the number of the pre-vote votes does not exceed 2/3 of the total number of the consensus nodes.
The verification nodes that receive 50% of the first aggregate signature are also unable to validate the first block because the pre-commit vote count fails to reach 2/3 of the total number of consensus nodes.
Therefore, in the embodiment, the verification node which does not receive the second aggregate signature broadcasted by the proposed node after the timeout broadcasts the signed pre-commit vote, and simultaneously broadcasts the first aggregate signature, so as to help each verification node (which may exist) which cannot enter the pre-commit voting link to enter the pre-commit voting link, thereby realizing the continuation of the consensus.
The method shown in fig. 5 further ensures that the consensus process can still continue to be performed normally when the proposed node maliciously makes some nodes unable to receive the first aggregated signature and some nodes unable to receive the second aggregated signature by configuring the verifying node that does not receive the second aggregated signature after timeout to broadcast the first aggregated signature, thereby further improving the robustness of the consensus method.
Fig. 6 is a schematic structural diagram of a computer device according to an embodiment of the present invention.
As shown in fig. 6, as another aspect, the present application also provides a computer apparatus including one or more Central Processing Units (CPUs) 601 that can perform various appropriate actions and processes according to a program stored in a Read Only Memory (ROM)602 or a program loaded from a storage section 608 into a Random Access Memory (RAM) 603. In the RAM603, various programs and data necessary for the operation of the apparatus 600 are also stored. The CPU601, ROM602, and RAM603 are connected to each other via a bus 604. An input/output (I/O) interface 605 is also connected to bus 604.
The following components are connected to the I/O interface 605: an input portion 606 including a keyboard, a mouse, and the like; an output portion 607 including a display such as a Cathode Ray Tube (CRT), a Liquid Crystal Display (LCD), and the like, and a speaker; a storage section 608 including a hard disk and the like; and a communication section 609 including a network interface card such as a LAN card, a modem, or the like. The communication section 609 performs communication processing via a network such as the internet. The driver 610 is also connected to the I/O interface 605 as needed. A removable medium 611 such as a magnetic disk, an optical disk, a magneto-optical disk, a semiconductor memory, or the like is mounted on the drive 610 as necessary, so that a computer program read out therefrom is mounted in the storage section 608 as necessary.
In particular, according to an embodiment of the present disclosure, the method described in any of the above embodiments may be implemented as a computer software program. For example, embodiments of the present disclosure include a computer program product comprising a computer program tangibly embodied on a machine-readable medium, the computer program comprising program code for performing any of the methods described above. In such an embodiment, the computer program may be downloaded and installed from a network through the communication section 609, and/or installed from the removable medium 611.
As yet another aspect, the present application also provides a computer-readable storage medium, which may be the computer-readable storage medium included in the apparatus of the above-described embodiment; or it may be a separate computer readable storage medium not incorporated into the device. The computer readable storage medium stores one or more programs for use by one or more processors in performing the methods described in the present application.
The flowchart and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems which perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
The units or modules described in the embodiments of the present application may be implemented by software or hardware. The described units or modules may also be provided in a processor, for example, each unit may be a software program provided in a computer or a mobile intelligent device, or may be a separately configured hardware device. Wherein the designation of a unit or module does not in some way constitute a limitation of the unit or module itself.
The above description is only a preferred embodiment of the application and is illustrative of the principles of the technology employed. It will be appreciated by those skilled in the art that the scope of the invention herein disclosed is not limited to the particular combination of features described above, but also encompasses other arrangements formed by any combination of the above features or their equivalents without departing from the spirit of the present application. For example, the above features may be replaced with (but not limited to) features having similar functions disclosed in the present application.

Claims (7)

1. An aggregated signature consensus method, applied to a consensus node, the method comprising:
in response to the current node determining as the proposed node of the current block height, packaging the first block and broadcasting to each verification node of the current block height for each verification node to respectively:
verifying the first block, and performing pre-vote according to a verification result; and the number of the first and second groups,
signing the pre-vote through an aggregation signature algorithm, and returning the signed pre-vote to the current node;
receiving the pre-vote after each signature, and monitoring whether the number of pre-vote votes for approving the first block exceeds 2/3 of the total number of consensus nodes:
if so, aggregating signatures voted for pre-votes of each approved first block according to the aggregate signature algorithm to generate a first aggregate signature, and broadcasting the first aggregate signature and corresponding voting content to each verification node, so that each verification node respectively:
verifying the first aggregate signature according to the aggregate signature algorithm to judge whether a pre-vote exceeding 2/3 of the total number of the common identification nodes approves the first block, and performing the pre-commit vote according to a judgment result; and the number of the first and second groups,
signing the pre-commit vote through the aggregation signature algorithm, and returning the signed pre-commit vote to the current node;
receiving pre-commit votes after each of said signatures and monitoring for a number of pre-commit votes approving said first aggregate signature exceeding 2/3 of a total number of consensus nodes:
if yes, aggregating signatures of pre-commit votes approved by the first aggregated signature according to the aggregated signature algorithm to generate a second aggregated signature, and broadcasting the second aggregated signature and corresponding voting content to each verification node, so that each verification node respectively:
verifying the second aggregate signature according to the aggregate signature algorithm to determine whether a pre-commit vote of 2/3 that exceeds the total number of consensus nodes approves the first aggregate signature: if yes, the first block is confirmed.
2. An aggregated signature consensus method, applied to a consensus node, the method comprising:
receiving a first block packed and broadcast by a proposed node of the current block height in response to a verification node of the current node determining the current block height;
verifying the first block, and performing pre-vote according to a verification result;
signing the pre-vote by an aggregate signature algorithm and returning the signed pre-vote to the proposal node for the proposal node to:
2/3 for monitoring whether the number of pre-vote votes for the first block in the received pre-vote votes returned by the verification nodes for the current block height exceeds the total number of consensus nodes:
if yes, aggregating signatures of pre-votes voted for each approved first block according to the aggregate signature algorithm to generate a first aggregate signature, and broadcasting the first aggregate signature and corresponding voting content to each verification node;
verifying the first aggregate signature according to the aggregate signature algorithm to judge whether a pre-vote exceeding 2/3 of the total number of the common identification nodes approves the first block, and performing the pre-commit vote according to a judgment result;
signing the pre-commit vote by the aggregate signature algorithm and returning the signed pre-commit vote to the proposal node for the proposal node to:
2/3 for monitoring whether the number of pre-commit votes approving the first aggregated signature in the received pre-commit votes returned by the respective verification nodes exceeds the total number of consensus nodes:
if yes, aggregating signatures of pre-commit votes approved by the first aggregated signature according to the aggregated signature algorithm to generate second aggregated signatures, and broadcasting the second aggregated signatures and corresponding voting contents to verification nodes;
verifying the second aggregate signature according to the aggregate signature algorithm to determine whether a pre-commit vote of 2/3 that exceeds the total number of consensus nodes approves the first aggregate signature: if yes, the first block is confirmed.
3. The method of claim 2, further comprising:
in response to not receiving the first aggregated signature broadcast by the proposed node over time, broadcasting the signed pre-vote and receiving pre-vote votes broadcast by other verification nodes for the current block height;
monitoring 2/3 whether the number of the pre-votes approved by the first block in each pre-vote exceeds the total number of the consensus nodes or not within a first time limit, and performing the pre-commit voting according to the monitoring result;
signing the pre-commit votes through the aggregation signature algorithm, broadcasting the signed pre-commit votes, and receiving the pre-commit votes broadcast by other verification nodes of the current block height;
monitoring for a second time period whether the number of pre-commit votes casting a non-reputable vote in each pre-commit vote exceeds 2/3 of the total number of consensus nodes: if yes, the first block is confirmed.
4. The method of claim 2, further comprising:
in response to not receiving a second aggregate signature broadcast by the proposed node over a timeout, broadcasting a pre-commit vote after the signature and receiving pre-commit votes broadcast by other verification nodes for the current tile height;
monitoring for a third time period whether the number of pre-commit votes in each pre-commit vote that agree with the first aggregated signature exceeds 2/3 of the total number of consensus nodes: if yes, the first block is confirmed.
5. The method of claim 4, wherein the broadcasting the signed pre-commit vote further comprises: broadcasting the first aggregated signature.
6. A computer device, the device comprising:
one or more processors;
a memory for storing one or more programs,
the one or more programs, when executed by the one or more processors, cause the one or more processors to perform the method recited in any of claims 1-5.
7. A storage medium storing a computer program, characterized in that the program, when executed by a processor, implements the method according to any one of claims 1-5.
CN202111167249.8A 2021-10-04 2021-10-04 Aggregate signature consensus method, computer device, and storage medium Pending CN113890744A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111167249.8A CN113890744A (en) 2021-10-04 2021-10-04 Aggregate signature consensus method, computer device, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111167249.8A CN113890744A (en) 2021-10-04 2021-10-04 Aggregate signature consensus method, computer device, and storage medium

Publications (1)

Publication Number Publication Date
CN113890744A true CN113890744A (en) 2022-01-04

Family

ID=79005347

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111167249.8A Pending CN113890744A (en) 2021-10-04 2021-10-04 Aggregate signature consensus method, computer device, and storage medium

Country Status (1)

Country Link
CN (1) CN113890744A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114615281A (en) * 2022-03-07 2022-06-10 中国科学院软件研究所 Block chaining-out method and PoS protocol confirmation method based on small-scale committee

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110300172A (en) * 2019-06-28 2019-10-01 深圳市网心科技有限公司 A kind of the common recognition method and relevant device of block chain data
CN110943838A (en) * 2018-09-21 2020-03-31 上海派链信息科技有限公司 Method, apparatus and storage medium for determining consensus of blocks in a blockchain network
CN112532396A (en) * 2020-12-04 2021-03-19 广东工业大学 Optimized Byzantine fault-tolerant method based on aggregated signature and storage medium
CN112600678A (en) * 2021-03-02 2021-04-02 腾讯科技(深圳)有限公司 Data processing method, device, equipment and storage medium
US20210297238A1 (en) * 2020-03-23 2021-09-23 Dora Network Limited Blockchain consensus method and system, and computer-readable storage medium

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110943838A (en) * 2018-09-21 2020-03-31 上海派链信息科技有限公司 Method, apparatus and storage medium for determining consensus of blocks in a blockchain network
CN110300172A (en) * 2019-06-28 2019-10-01 深圳市网心科技有限公司 A kind of the common recognition method and relevant device of block chain data
US20210297238A1 (en) * 2020-03-23 2021-09-23 Dora Network Limited Blockchain consensus method and system, and computer-readable storage medium
CN112532396A (en) * 2020-12-04 2021-03-19 广东工业大学 Optimized Byzantine fault-tolerant method based on aggregated signature and storage medium
CN112600678A (en) * 2021-03-02 2021-04-02 腾讯科技(深圳)有限公司 Data processing method, device, equipment and storage medium

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114615281A (en) * 2022-03-07 2022-06-10 中国科学院软件研究所 Block chaining-out method and PoS protocol confirmation method based on small-scale committee
CN114615281B (en) * 2022-03-07 2023-02-28 中国科学院软件研究所 Block chaining and block outputting method based on small-scale committee and PoS protocol confirmation method

Similar Documents

Publication Publication Date Title
US20050132154A1 (en) Reliable leader election in storage area network
CN111478772B (en) Assembly line friendly signature and signature verification method, device and storage medium
US11200123B2 (en) Consensus process recovery method and related node
CN108989052B (en) Transaction request processing method and system
CN112492016B (en) Cross-process extensible consensus method and system
CN114422155B (en) Proposal consensus execution method, block chain system, device and storage medium
CN112422621A (en) Multi-station fusion power data consensus method and device based on PBFT block chain technology
CN112134762A (en) Test method, device, terminal and storage medium for block chain network structure
CN113837758A (en) Consensus method and device for block chain system
CN109919760A (en) Byzantine failure tolerance common recognition algorithm based on voting mechanism
CN111555858B (en) Practical Byzantine fault-tolerant consensus method based on block chain type storage
CN110309160A (en) Data enter chain transaction methods, device, computer equipment and storage medium
CN111478775A (en) Interactive aggregated signature method, equipment and storage medium
CN113890744A (en) Aggregate signature consensus method, computer device, and storage medium
CN116094721A (en) Clustering-based extensible shard consensus algorithm
CN113781218A (en) Grouping PBFT consensus algorithm based on feature trust
CN113660125A (en) Consensus method and device based on random credible committee
CN115834579A (en) Block chain consensus method, device and system and electronic equipment
CN114936253A (en) Block chain consensus method and device, electronic equipment and storage medium
CN114140233A (en) Safe cross-slice view conversion method and device for partitioned block chain
Ji et al. A blockchain-based vehicle platoon leader updating scheme
US20230409450A1 (en) Consensus processing method and apparatus for blockchain network
CN112398930A (en) Block chain consensus method, node device, system and storage medium
CN109274674A (en) A kind of block chain isomerism common recognition method and terminal with high security
CN112953897B (en) Train control system edge security node implementation method based on cloud computing equipment

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
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20220104

WD01 Invention patent application deemed withdrawn after publication