IP Library Granted Patent US 11,334,888
Granted Patent B2
US 11,334,888 · App. 15/927,337 · Granted May 17, 2022

Method and apparatus for consensus verification

Inventor: Ning Li (Hangzhou, CN)
Assignee: ADVANCED NEW TECHNOLOGIES CO., LTD.
G06Q20/401G06Q20/3823G06Q20/3825G06Q20/38215H04L9/0637H04L9/0643G06Q2220/00H04L67/1004
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,334,888
App. No.
15/927,337
Granted
May 17, 2022
Kind
B2
Abstract

A method for consensus verification implementable by a first blockchain node in a consensus network may comprise: receiving a transaction request from a client, and performing a first security verification on the transaction request; in response to determining that the transaction request passes the first security verification, storing the transaction request, and broadcasting the transaction request to each of second blockchain nodes in the consensus network, causing the each second blockchain node to store the transaction request in response to the second blockchain node determining that the transaction request passes a second security verification; performing pre-processing on at least one stored transaction request in response to determining that a preset condition is satisfied, to obtain and store a pre-processed block; and broadcasting the obtained pre-processed block to the second blockchain nodes, causing the second blockchain nodes to perform consensus verification on the obtained pre-processed block.

Claims (99)

1. A method, comprising:

receiving, by a first blockchain node, a blockchain transaction request from a client

performing, by the first blockchain node a security verification on the blockchain transaction request, wherein the security verification comprises a verification of whether account addresses of transaction parties involved in the transaction request are legal accounts, and a verification of whether an amount of asset in one or more accounts of a transaction initiating party of the transaction request is greater than or equal to a transfer amount of the transaction request;

in response to the first blockchain node determining that the blockchain transaction request passes the security verification:

storing, by the first blockchain node, the blockchain transaction request into a memory of the first blockchain node;

broadcasting, by the first blockchain node, the blockchain transaction request to each of a plurality of second blockchain nodes;

receiving, by each of the second blockchain nodes, the broadcast blockchain transaction request;

performing, by each of the second blockchain nodes, the security verification on the received blockchain transaction request; and

storing, by each of the second blockchain nodes, the blockchain transaction request in a memory of the each second blockchain node in response to the each second blockchain node determining that the broadcast blockchain transaction request passes the security verification at the second blockchain node;

generating, by the first blockchain node, a pre-processed data block comprising an identifier of the blockchain transaction request that has passed the security verification at the first blockchain node and has been broadcast to the plurality of second blockchain nodes;

broadcasting, by the first blockchain node, the pre-processed data block to each of the plurality of second blockchain nodes;

receiving, by each of the second blockchain nodes, the broadcast pre-processed data block; and

performing, by the second blockchain nodes, consensus verification on the pre-processed data block based at least on the identifier of the blockchain transaction request that has passed the security verification at the first blockchain node and the second blockchain node.

2. The method according to claim 1 , wherein performing, by the first blockchain node, the security verification on the blockchain transaction request comprises:

obtaining, by the first blockchain node, a public key of a public-private key pair of a user associated with the client, wherein the blockchain transaction request is encrypted with a private key of the public-private key pair;

obtaining, by the first blockchain node, decrypted information of the blockchain transaction request by decrypting the blockchain transaction request with the public key; and

verifying, by the first blockchain node, the decrypted information of the blockchain transaction request.

3. The method according to claim 1 , wherein generating the pre-processed data block comprises:

determining, by the first blockchain node, a plurality of sub-hash values of a plurality of blockchain transaction requests according to a hash algorithm, the plurality of blockchain transaction requests comprising the blockchain transaction request;

generating, by the first blockchain node, a hash value according to an order of a queue of identifiers of the plurality of blockchain transaction requests; and

packaging, by the first blockchain node, the generated hash value and the queue of the plurality of identifiers in the order into the pre-processed data block.

4. The method according to claim 1 , wherein:

the first blockchain node comprises a plurality of servers coupled to the memory of the first blockchain node;

performing the security verification on the blockchain transaction request comprises:

selecting, by the first blockchain node, a first server of the plurality of servers according to load balancing among the plurality of servers, and

performing, by the first server, the security verification on the blockchain transaction request; and

broadcasting the pre-processed data block to each of the plurality of second blockchain nodes comprises:

selecting, by the first blockchain node, a second server of the plurality of servers according to load balancing among the plurality of servers, and

broadcasting, by the second server, the pre-processed data block to each of the plurality of second blockchain nodes.

5. The method according to claim 4 , wherein the plurality of servers share one or more of the following: one node identity (ID) corresponding to the first blockchain node, a point-to-point routing table, and a pair of asymmetric public and private keys corresponding to the first blockchain node.

6. The method according to claim 4 , wherein the first blockchain node further comprises a routing device coupled to the plurality of servers;

selecting, by the first blockchain node, the first server of the plurality of servers according to load balancing among the plurality of servers comprises selecting, by the routing device, the first server of the plurality of servers according to load balancing among the plurality of servers; and

selecting, by the first blockchain node, the second server of the plurality of servers according to load balancing among the plurality of servers comprises selecting, by the routing device, the second server of the plurality of servers according to load balancing among the plurality of servers.

7. The method according to claim 6 , wherein the routing device comprises a load-balancing device.

8. The method according to claim 4 , wherein:

the first blockchain node further comprises a gateway;

selecting, by the first blockchain node, the first server of the plurality of servers according to load balancing among the plurality of servers comprises selecting, by the gateway, the first server of the plurality of servers according to load balancing among the plurality of servers; and

selecting, by the first blockchain node, the second server of the plurality of servers according to load balancing among the plurality of servers comprises selecting, by the gateway, the second server of the plurality of servers according to load balancing among the plurality of servers.

9. The method according to claim 4 , wherein:

before generating, by the first blockchain node, the pre-processed data block, the method further comprises transferring the blockchain transaction request from the memory to a third server of the plurality of servers, or marking the blockchain transaction request in the memory; and

generating, by the first blockchain node, the pre-processed data block comprises generating, by the third server, the pre-processed data block.

10. A system, comprising a first blockchain node and a plurality of second blockchain nodes, wherein:

the first blockchain node comprises: (i) one or more first processors and (ii) a first memory storing first computer-readable instructions that, when executed by the one or more first processors, cause the first blockchain node to perform first operations comprising:

receiving a blockchain transaction request from a client;

performing a security verification on the blockchain transaction request, wherein the security verification comprises a verification of whether account addresses of transaction parties involved in the transaction request are legal accounts, and a verification of whether an amount of asset in one or more accounts of a transaction initiating party of the transaction request is greater than or equal to a transfer amount of the transaction request;

in response to the first blockchain node determining that the blockchain transaction request passes the security verification:

storing the blockchain transaction request into a storage space of the first blockchain node; and

broadcasting the blockchain transaction request to each of the plurality of second blockchain nodes;

the plurality of second blockchain nodes each comprising: (i) one or more second processors and (ii) a second memory storing second computer-readable instructions that, when executed by the one or more second processors, cause the corresponding second blockchain node to perform second operations comprising:

receiving the broadcast blockchain transaction request;

performing the security verification on the received blockchain transaction request; and

storing the blockchain transaction request in a storage space of the each second blockchain node in response to determining that the broadcast blockchain transaction request passes the security verification at the corresponding second blockchain node;

the first operations further comprise:

generating a pre-processed data block comprising an identifier of the blockchain transaction request that has passed the security verification at the first blockchain node and has been broadcast to the plurality of second blockchain nodes;

broadcasting the pre-processed data block to each of the plurality of second blockchain nodes; and

the second operations further comprise:

receiving the broadcast pre-processed data block; and

performing consensus verification on the pre-processed data block based at least on the identifier of the blockchain transaction request that has passed the security verification at the first blockchain node and the corresponding second blockchain node.

11. The system according to claim 10 , wherein:

the first blockchain node comprises a plurality of servers coupled to the first memory;

performing the security verification on the blockchain transaction request comprises:

selecting a first server of the plurality of servers according to load balancing among the plurality of servers, and

performing, at the first server, the security verification on the blockchain transaction request; and

broadcasting the pre-processed data block to each of the plurality of second blockchain nodes comprises:

selecting a second server of the plurality of servers according to load balancing among the plurality of servers, and

broadcasting, at the second server, the pre-processed data block to each of the plurality of second blockchain nodes.

12. The system according to claim 11 , wherein the plurality of servers share one or more of the following: one node identity (ID) corresponding to the first blockchain node, a point-to-point routing table, and a pair of asymmetric public and private keys corresponding to the first blockchain node.

13. The system according to claim 11 , wherein the first blockchain node further comprises a routing device coupled to the plurality of servers;

selecting the first server of the plurality of servers according to load balancing among the plurality of servers comprises selecting, at the routing device, the first server of the plurality of servers according to load balancing among the plurality of servers; and

selecting the second server of the plurality of servers according to load balancing among the plurality of servers comprises selecting, at the routing device, the second server of the plurality of servers according to load balancing among the plurality of servers.

14. The system according to claim 13 , wherein the routing device comprises a load-balancing device.

15. The system according to claim 11 , wherein:

the first blockchain node further comprises a gateway;

selecting the first server of the plurality of servers according to load balancing among the plurality of servers comprises selecting, at the gateway, the first server of the plurality of servers according to load balancing among the plurality of servers; and

selecting the second server of the plurality of servers according to load balancing among the plurality of servers comprises selecting, at the gateway, the second server of the plurality of servers according to load balancing among the plurality of servers.

16. The system according to claim 10 , wherein, for the first operations, performing the security verification on the blockchain transaction request comprises:

obtaining a public key of a public-private key pair of a user associated with the client, wherein the blockchain transaction request is encrypted with a private key of the public-private key pair;

obtaining decrypted information of the blockchain transaction request by decrypting the blockchain transaction request with the public key; and

verifying the decrypted information of the blockchain transaction request.

17. The system according to claim 10 , wherein generating the pre-processed data block comprises:

determining a plurality of sub-hash values of a plurality of blockchain transaction requests according to a hash algorithm, the plurality of blockchain transaction requests comprising the blockchain transaction request;

generating a hash value according to an order of a queue of identifiers of the plurality of blockchain transaction requests; and

packaging the generated hash value and the queue of the plurality of identifiers in the order into the pre-processed data block.

18. One or more non-transitory computer-readable storage media storing first instructions that, when executed by one or more first processors of a first blockchain node, cause the first blockchain node to perform first operations comprising:

receiving a blockchain transaction request from a client;

performing a security verification on the blockchain transaction request, wherein the security verification comprises a verification of whether account addresses of transaction parties involved in the transaction request are legal accounts, and a verification of whether an amount of asset in one or more accounts of a transaction initiating party of the transaction request is greater than or equal to a transfer amount of the transaction request;

in response to the first blockchain node determining that the blockchain transaction request passes the security verification:

storing the blockchain transaction request into a storage space of the first blockchain node; and

broadcasting the blockchain transaction request to each of a plurality of second blockchain nodes;

wherein the one or more storage media further store second instructions that, when executed by one or more second processors of each of the plurality of second blockchain nodes, cause the second blockchain node to perform second operations comprising:

receiving the broadcast blockchain transaction request;

performing the security verification on the received blockchain transaction request; and

storing the blockchain transaction request in a storage space of the each second blockchain node in response to determining that the broadcast blockchain transaction request passes the security verification at the corresponding second blockchain node;

wherein the first operations further comprise:

generating a pre-processed data block comprising an identifier of the blockchain transaction request that has passed the security verification at the first blockchain node and has been broadcast to the plurality of second blockchain nodes;

broadcasting the pre-processed data block to each of the plurality of second blockchain nodes; and

wherein the second operations further comprise:

receiving the broadcast pre-processed data block; and

performing consensus verification on the pre-processed data block based at least on the identifier of the blockchain transaction request that has passed the security verification at the first blockchain node and the corresponding second blockchain node.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 18, 2025
From: ADVANCED NEW TECHNOLOGIES CO., LTD.
To: ADVANCED INNOVATION PTE. LTD.
Reel/Frame 070550/0846 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 16, 2020
From: ADVANTAGEOUS NEW TECHNOLOGIES CO., LTD.
To: ADVANCED NEW TECHNOLOGIES CO., LTD.
Reel/Frame 053796/0281 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 3, 2020
From: ALIBABA GROUP HOLDING LIMITED
To: ADVANTAGEOUS NEW TECHNOLOGIES CO., LTD.
Reel/Frame 053702/0392 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 21, 2018
From: LI, NING
To: ALIBABA GROUP HOLDING LIMITED
Reel/Frame 045660/0776 →