# US 11,310,032 B2 · System and method for parallel-processing blockchain transactions

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 11,310,032 B2
- Document ID: US11310032B2
- Status: Granted
- Kind: B2
- Application number: 16/490,834
- Filed: 2019-03-28
- Published: 2020-02-06
- Granted: 2022-04-19
- Earliest claimed: 2019-03-28
- Assignees: Advanced New Technologies Co., Ltd.
- Applicants: Advanced New Technologies Co., Ltd.
- Inventors: Guilu Xie; Ning Xia
- Web page: https://patentgrep.com/patent/US11310032B2

## CPC

- G06F 9/5066: {Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs (mappping at compile time, see G06F8/451)}
- H04L 9/0637: {Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]}
- G06F 16/9027: {Trees}
- G06Q 20/065: {using e-cash}
- G06Q 20/10: specially adapted for electronic funds transfer [EFT] systems; specially adapted for home banking systems
- H04L 9/0643: {Hash functions, e.g. MD5, SHA, HMAC or f9 MAC}
- H04L 9/3239: {involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD}
- G06Q 2220/00: Business processing using cryptography
- H04L 9/50: {using hash chains, e.g. blockchains or hash trees}
- H04L 2209/56: Financial cryptography, e.g. electronic payment or e-cash
- H04L 2209/805: Lightweight hardware, e.g. radio-frequency identification [RFID] or sensor
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06Q: INFORMATION 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

## Abstract

Methods, systems, and apparatus, including computer programs encoded on computer storage media, for parallel-processing blockchain transactions are provided. One of the methods includes: obtaining a plurality of candidate transactions for adding to a blockchain; grouping the candidate transactions into one or more transaction groups; creating one or more copies of at least a portion of a data structure of a latest block of the blockchain; associating the one or more transaction groups respectively with the one or more copies of the data structure; executing the candidate transactions in each of the transaction groups and updating the associated copies of the data structure; and merging the updated copies of the data structure to obtain at least a portion of a new data structure of a new block to add to the blockchain.

## Claims

### Claim 1

A computer-implemented method for parallel-processing blockchain transactions, comprising:
obtaining, at a blockchain node, a plurality of candidate transactions for adding to a blockchain;
grouping, at the blockchain node, the candidate transactions into a plurality of transaction groups;
creating, at the blockchain node, a plurality of copies of at least a portion of a state tree data structure of a newest block of the blockchain;
associating, at the blockchain node, the plurality of transaction groups respectively with the plurality of copies of the state tree data structure of the newest block of the blockchain, wherein the plurality of candidate transactions in the plurality of transaction groups have not yet been added the blockchain;
executing, at the blockchain node, the candidate transactions in each of the transaction groups;
respectively updating, at the blockchain node, the associated copies of the state tree data structure based on the execution of the candidate transactions in each of the transaction groups; and
generating, at the blockchain node, a new state root node of a new block by at least merging the updated associated copies of the state tree data structure and propagating the updates to the new state root node.

### Claim 2 (depends on 1)

The method of claim 1, wherein:
the plurality of transaction groups are independent transaction groups.

### Claim 3 (depends on 1)

The method of claim 1, wherein grouping the candidate transactions into the plurality of transaction groups comprises:
grouping two or more of the candidate transactions each involving at least one common transaction account under a same transaction group of the plurality of transaction groups.

### Claim 4 (depends on 1)

The method of claim 1, wherein grouping the candidate transactions into the plurality of transaction groups comprises:
grouping two or more of the candidate transactions that do not involve any common transaction account under different transaction groups of the plurality of transaction groups.

### Claim 5 (depends on 1)

The method of claim 1, wherein:
the state tree data structure comprises a Merkle Patricia tree comprising a single state root node stored in the newest block and a plurality of intermediate nodes and leaf nodes not stored in the newest block.

### Claim 6 (depends on 1)

The method of claim 1, wherein executing the candidate transactions in each of the transaction groups and updating the associated copies of the state tree data structure comprises:
executing the candidate transactions in each of the transaction groups and updating the associated copies of the state tree data structure in parallel.

### Claim 7 (depends on 1)

The method of claim 1, wherein executing the candidate transactions in each of the transaction groups comprises:
executing the candidate transactions in each of the transaction groups by a multi-core processor.

### Claim 8 (depends on 1)

The method of claim 1, wherein updating the associated copies of the state tree data structure comprises at least one of:
updating a balance of a transaction account in one of the associated copies of the state tree data structure;
removing the transaction account; or
adding a new transaction account.

### Claim 9 (depends on 1)

The method of claim 1, wherein merging the updated copies of the state tree data structure comprises:
updating at least the portion of the state tree data structure of the newest block of the blockchain by combining and incorporating updates made in the updated copies of the state tree data structure.

### Claim 10 (depends on 1)

The method of claim 1, further comprising:
adding the new block to the blockchain.

### Claim 11

A system for parallel-processing blockchain transactions, comprising one or more processors and one or more non-transitory computer-readable memories coupled to the one or more processors and configured with instructions executable by the one or more processors to cause the system to perform operations comprising:
obtaining a plurality of candidate transactions for adding to a blockchain;
grouping the candidate transactions into a plurality of transaction groups;
creating a plurality of copies of at least a portion of a state tree data structure of a newest block of the blockchain;
associating the plurality of transaction groups respectively with the plurality of copies of the state tree data structure of the newest block of the blockchain, wherein the plurality of candidate transactions in the plurality of transaction groups have not yet been added the blockchain;
executing the candidate transactions in each of the transaction groups;
respectively updating the associated copies of the state tree data structure based on the execution of the candidate transactions in each of the transaction groups; and
generating a new state root node of a new block by at least merging the updated associated copies of the state tree data structure and propagating the updates to the new state root node.

### Claim 12 (depends on 11)

The system of claim 11, wherein grouping the candidate transactions into the plurality of transaction groups comprises:
grouping two or more of the candidate transactions each involving at least one common transaction account under a same transaction group of the plurality of transaction groups.

### Claim 13 (depends on 11)

The system of claim 11, wherein grouping the candidate transactions into the plurality of transaction groups comprises:
grouping two or more of the candidate transactions that do not involve any common transaction account under different transaction groups of the plurality of transaction groups.

### Claim 14 (depends on 11)

The system of claim 11, wherein updating the associated copies of the state tree data structure comprises at least one of:
updating a balance of a transaction account in one of the associated copies of the state tree data structure;
removing the transaction account; or
adding a new transaction account.

### Claim 15

A non-transitory computer-readable storage medium configured with instructions executable by one or more processors to cause the one or more processors to perform operations comprising:
obtaining a plurality of candidate transactions for adding to a blockchain;
grouping the candidate transactions into a plurality of transaction groups;
creating a plurality of copies of at least a portion of a state tree data structure of a newest block of the blockchain;
associating the plurality of transaction groups respectively with the plurality of copies of the state tree data structure of the newest block of the blockchain, wherein the plurality of candidate transactions in the plurality of transaction groups have not yet been added the blockchain;
executing the candidate transactions in each of the transaction groups;
respectively updating the associated copies of the state tree data structure based on the execution of the candidate transactions in each of the transaction groups; and
generating a new state root node of a new block by at least merging the updated associated copies of the state tree data structure and propagating the updates to the new state root node.

### Claim 16 (depends on 15)

The storage medium of claim 15, wherein grouping the candidate transactions into the plurality of transaction groups comprises:
grouping two or more of the candidate transactions each involving at least one common transaction account under a same transaction group of the plurality of transaction groups.

### Claim 17 (depends on 15)

The storage medium of claim 15, wherein grouping the candidate transactions into the plurality of transaction groups comprises:
grouping two or more of the candidate transactions that do not involve any common transaction account under different transaction groups of the plurality of transaction groups.

### Claim 18 (depends on 15)

The storage medium of claim 15, wherein updating the associated copies of the state tree data structure comprises at least one of:
updating a balance of a transaction account in one of the associated copies of the state tree data structure;
removing the transaction account; or
adding a new transaction account.
