US 12,256,004 B2
Maintaining blocks of a blockchain in a partitioned blockchain network
Dean Kramer, London (GB); Martin Sewell, London (GB); and Bassem Ammar, Lancaster (GB)
Assigned to NCHAIN LICENSING AG, Zug (CH)
Filed by nChain Licensing AG, Zug (CH)
Filed on Mar. 19, 2024, as Appl. No. 18/610,073.
Application 18/610,073 is a continuation of application No. 17/051,075, granted, now 11,973,869, previously published as PCT/IB2019/053383, filed on Apr. 24, 2019.
Claims priority of application No. 1806907 (GB), filed on Apr. 27, 2018; application No. 1806909 (GB), filed on Apr. 27, 2018; application No. 1806911 (GB), filed on Apr. 27, 2018; application No. 1806914 (GB), filed on Apr. 27, 2018; and application No. 1806930 (GB), filed on Apr. 27, 2018.
Prior Publication US 2024/0348442 A1, Oct. 17, 2024
Int. Cl. G06F 16/27 (2019.01); G06F 9/38 (2018.01); G06F 16/22 (2019.01); G06F 16/23 (2019.01); G06F 16/901 (2019.01); G06Q 20/06 (2012.01); G06Q 20/22 (2012.01); G06Q 20/36 (2012.01); G06Q 20/38 (2012.01); H04L 9/06 (2006.01); H04L 9/32 (2006.01); H04L 9/00 (2022.01)
CPC H04L 9/32 (2013.01) [G06F 9/3836 (2013.01); G06F 16/2246 (2019.01); G06F 16/2379 (2019.01); G06F 16/278 (2019.01); G06F 16/9027 (2019.01); G06Q 20/065 (2013.01); G06Q 20/0658 (2013.01); G06Q 20/223 (2013.01); G06Q 20/3674 (2013.01); G06Q 20/3678 (2013.01); G06Q 20/3827 (2013.01); H04L 9/0618 (2013.01); H04L 9/0643 (2013.01); H04L 9/3239 (2013.01); H04L 9/50 (2022.05); H04L 2209/56 (2013.01)] 12 Claims
OG exemplary drawing
 
1. A computer-implemented method for maintaining blocks of a blockchain across nodes of a sharded blockchain network comprising a plurality of shards, wherein:
each node is a member of one or more shards, and each node stores a UTXO set for each shard of which it is a member and block data for all shards of which it is a member;
the method comprising, at a given node that is a member of a particular subset of the plurality of shards:
receiving a new block of the blockchain including a plurality of transactions;
generating data representing the new block, by:
generating a list of transaction identifiers for a first plurality of transactions that are part of the new block and associated with the particular subset of the plurality of shards; and
generating a Partial Merkle Tree from transaction identifiers for a second plurality of transactions that are part of the new block;
storing the data representing the new block in the block data for the shard; and
propagating the block data to other nodes in the shard;
wherein in generating the data representing the new block, the node validates transactions having an input that relates to a UTXO stored in one of its stored UTXO sets, while bypassing validation of transactions that are part of the new block and not having an input that relates to a UTXO stored in one of its stored UTXO sets.