IP Library Granted Patent US 11,973,869
Granted Patent B2
US 11,973,869 · App. 17/051,075 · Granted Apr 30, 2024

Maintaining blocks of a blockchain in a partitioned blockchain network

Inventors: Dean Kramer (London, GB); Martin Sewell (London, GB); Bassem Ammar (Lancaster, GB)
Assignee: nChain Licensing AG
H04L9/32G06F9/3836G06F16/2246G06F16/2379G06F16/278G06F16/9027G06Q20/065G06Q20/0658G06Q20/223G06Q20/3674G06Q20/3678G06Q20/3827H04L9/0618H04L9/0643H04L9/3239H04L9/50H04L2209/56
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,973,869
App. No.
17/051,075
Granted
Apr 30, 2024
Kind
B2
Abstract

A computer-implemented method and system is provided that maintains blocks of a blockchain across nodes of a sharded blockchain network, wherein each node is a member of one or more shards of a plurality of active shards. The method and system employ a given node that is a member of a particular subset of the plurality of active shards to generate data representing a new block of the blockchain and store the data representing the new block. Such data includes i) a list of transaction identifiers for transactions that are part of the new block and associated with the particular subset of the plurality of active shards, and/or ii) a Partial Merkle Tree for the new block.

Claims (38)

1. A computer-implemented method for maintaining blocks of a blockchain across nodes of a sharded blockchain network, wherein each node is a member of one or more shards of a plurality of active shards, the method comprising:

generating data representing a new block of the blockchain by a given node that is a member of a particular subset of the plurality of active shards; and

storing the data representing the new block by the given node,

wherein the data representing the new block includes i) a list of transaction identifiers for transactions that are part of the new block and associated with the particular subset of the plurality of active shards, and ii) a Partial Merkle Tree for the new block, and

wherein the Partial Merkle Tree of ii) includes hash values derived from transactions that are part of the new block and not associated with the particular subset of the plurality of active shards, while omitting hash values derived from transactions that are part of the new block and associated with the particular subset of the plurality of active shards.

2. The computer-implemented method according to claim 1 , wherein:

the list of transaction identifiers of i) does not include transaction identifiers for transactions that are part of the new block and not associated with the particular subset of the plurality of active shards.

3. The computer-implemented method according to claim 2 , wherein:

the list of transaction identifiers of i) is generated by constructing an initial list of transaction identifiers for the new block based upon data included in the new block, and processing the initial list of transaction identifiers to remove any transaction identifier corresponding to a transaction that is not associated with the particular subset of the plurality of active shards.

4. The computer-implemented method according to claim 1 , wherein:

the Partial Merkle Tree of ii) is generated by constructing a Full Merkle Tree for the new block based upon data included in the new block, and processing the Full Merkle Tree to substitute placeholders for hash values derived from transactions that are part of the new block and associated with the particular subset of the plurality of active shards.

5. The computer-implemented method according to claim 4 , wherein:

processing the Full Merkle Tree further includes iterating from a bottom level to root level of the Full Merkle Tree and removing two hash values for an adjacent-node pair and leaving a parent hash value.

6. The computer-implemented method according to claim 4 , wherein:

processing the Full Merkle Tree further includes iterating from a bottom level to root level of the Full Merkle Tree and substituting a placeholder for a hash value of a parent tree node that has two child nodes that do not both represent a hash value derived from transactions that are not associated with the particular subset of the plurality of active shards.

7. The computer-implemented method according to claim 1 , further comprising:

operating the given node to process the Partial Merkle Tree to compute a Merkle root hash value for block validation of a block without requiring access to the transactions that are part of the block and not associated with the particular subset of the plurality of active shards.

8. The computer-implemented method according to claim 7 , wherein:

processing of the Partial Merkle Tree to compute the Merkle root hash value iterating from a lower level to root level of the Partial Merkle Tree and replacing a placeholder with a hash value calculated from corresponding child hash values of the Partial Merkle Tree.

9. The computer-implemented method according to claim 1 , wherein:

the list of transaction identifiers of i) and the Partial Merkle Tree of ii) vary amongst the nodes based on node membership and allocation of the transactions amongst the shards.

10. The computer-implemented method according to claim 1 , wherein:

in generating the data representing the new block, the given node validates transactions that are part of the new block and associated with the particular subset of the plurality of active shards, while bypassing validation of transactions that are part of the new block and not associated with the particular subset of the plurality of active shards.

11. The computer-implemented method according to claim 1 , wherein:

the transactions that are part of the new block are associated with shards of the plurality of active shards based on transaction identifiers.

12. The computer-implemented method according to claim 1 , wherein:

the transactions that are part of the new block are associated with shards of the plurality of active shards based on a parent blockchain transaction, wherein the parent blockchain transaction is defined by an output which corresponds to an input of a child blockchain transaction, and wherein the parent blockchain transaction and the child blockchain transaction are associated with the same shard.

13. A system, comprising:

a processor; and

memory including executable instructions that, as a result of execution by the processor, cause the system to perform at least part of the computer-implemented method of claim 1 .

14. A non-transitory computer-readable storage medium having stored thereon executable instructions that, as a result of being executed by a processor of a computer system, cause the computer system to perform at least part of the computer-implemented method of claim 1 .

15. A system, comprising:

a processor; and

memory including executable instructions that, as a result of execution by the processor, cause the system to perform at least part of the computer-implemented method of claim 2 .

16. A system, comprising:

a processor; and

memory including executable instructions that, as a result of execution by the processor, cause the system to perform at least part of the computer-implemented method of claim 4 .

17. A non-transitory computer-readable storage medium having stored thereon executable instructions that, as a result of being executed by a processor of a computer system, cause the computer system to perform at least part of the computer-implemented method of claim 2 .

Assignments (7)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 23, 2024
From: KRAMER, DEAN; SEWELL, MARTIN
To: NCHAIN LICENSING AG
Reel/Frame 066545/0954 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 23, 2024
From: AMMAR, BASSEM
To: NCHAIN HOLDINGS LTD
Reel/Frame 066550/0083 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 23, 2024
From: AMMAR, BASSEM
To: NCHAIN HOLDINGS LTD
Reel/Frame 066550/0127 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 23, 2024
From: AMMAR, BASSEM
To: NCHAIN HOLDINGS LTD
Reel/Frame 066550/0144 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 23, 2024
From: AMMAR, BASSEM
To: NCHAIN HOLDINGS LTD
Reel/Frame 066550/0164 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 23, 2024
From: AMMAR, BASSEM
To: NCHAIN HOLDINGS LTD
Reel/Frame 066550/0186 →
CHANGE OF NAME Recorded Mar 8, 2023
From: NCHAIN HOLDINGS LTD
To: NCHAIN LICENSING AG
Reel/Frame 063025/0093 →
Priority Claims (5)
GB 1806907 · Apr 27, 2018 · national
GB 1806909 · Apr 27, 2018 · national
GB 1806911 · Apr 27, 2018 · national
GB 1806914 · Apr 27, 2018 · national
GB 1806930 · Apr 27, 2018 · national
Continuity (1)
Related Publication 20210243007A1 · Aug 5, 2021