IP Library Granted Patent US 12,256,004
Granted Patent B2
US 12,256,004 · App. 18/610,073 · Granted Mar 18, 2025

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 12,256,004
App. No.
18/610,073
Granted
Mar 18, 2025
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 (32)

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.

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

the list of transaction identifiers 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 shards.

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

the list of transaction identifiers 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 shards.

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

the Partial Merkle Tree includes hash values derived from transactions that are part of the new block and not associated with the particular subset of the plurality of 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 shards.

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

the Partial Merkle Tree 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 shards.

6. The computer-implemented method according to claim 5 , 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.

7. The computer-implemented method according to claim 5 , 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 which do not both represent a hash value derived from transactions that are not associated with the particular subset of the plurality of shards.

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

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

9. The computer-implemented method according to claim 8 , 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.

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

the transaction identifier list and the Partial Merkle Tree vary amongst the nodes based on node membership and an allocation of the transactions amongst the shards.

11. 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 .

12. 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 .

Assignments (7)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 31, 2024
From: AMMAR, BASSEM
To: NCHAIN HOLDINGS LTD
Reel/Frame 067582/0795 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 31, 2024
From: AMMAR, BASSEM
To: NCHAIN HOLDINGS LTD
Reel/Frame 067583/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 31, 2024
From: AMMAR, BASSEM
To: NCHAIN HOLDINGS LTD
Reel/Frame 067583/0068 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 31, 2024
From: AMMAR, BASSEM
To: NCHAIN HOLDINGS LTD
Reel/Frame 067583/0116 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 31, 2024
From: AMMAR, BASSEM
To: NCHAIN HOLDINGS LTD
Reel/Frame 067583/0201 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 31, 2024
From: KRAMER, DEAN; SEWELL, MARTIN
To: NCHAIN LICENSING AG
Reel/Frame 067583/0292 →
CHANGE OF NAME Recorded May 31, 2024
From: NCHAIN HOLDINGS LTD
To: NCHAIN LICENSING AG
Reel/Frame 067597/0035 →
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 (2)
Continuation 17051075
Related Publication 20240348442A1 · Oct 17, 2024
References Cited (73)
US 7702614B1 · Shah et al. · 2010 [cited by applicant]
US 10250708B1 · Carver et al. · 2019 [cited by applicant]
US 10396997B2 · Brady et al. · 2019 [cited by applicant]
US 10491378B2 · Binning et al. · 2019 [cited by applicant]
US 10616324B1 · Kaddoura · 2020 [cited by applicant]
US 10740733B2 · Moir et al. · 2020 [cited by applicant]
US 10826705B2 · Suen et al. · 2020 [cited by applicant]
US 20090234878A1 · Herz et al. · 2009 [cited by applicant]
US 20110029376A1 · Mills et al. · 2011 [cited by applicant]
US 20160224951A1 · Hoffberg · 2016 [cited by applicant]
US 20170048235A1 · Lohe et al. · 2017 [cited by applicant]
US 20170116693A1 · Rae et al. · 2017 [cited by applicant]
US 20170250972A1 · Ronda et al. · 2017 [cited by applicant]
US 20170293669A1 · Madhavan et al. · 2017 [cited by applicant]
US 20170295023A1 · Madhavan et al. · 2017 [cited by applicant]
US 20180019867A1 · Davis · 2018 [cited by applicant]
US 20180039667A1 · Pierce et al. · 2018 [cited by applicant]
US 20180049043A1 · Hoffberg · 2018 [cited by applicant]
US 20180145836A1 · Saur et al. · 2018 [cited by applicant]
US 20180189312A1 · Alas et al. · 2018 [cited by applicant]
US 20180336552A1 · Bohli et al. · 2018 [cited by applicant]
US 20180341930A1 · Moir et al. · 2018 [cited by applicant]
US 20190140935A1 · Kikinis · 2019 [cited by applicant]
US 20190149325A1 · Garagiola et al. · 2019 [cited by applicant]
US 20190163672A1 · Shmueli · 2019 [cited by applicant]
US 20190182313A1 · Yoo et al. · 2019 [cited by applicant]
US 20190272337A1 · Stewart et al. · 2019 [cited by applicant]
US 20190332608A1 · Qiu · 2019 [cited by applicant]
US 20200119926A1 · Buki · 2020 [cited by examiner]
US 20200162264A1 · Zamani et al. · 2020 [cited by applicant]
US 20200211011A1 · Anderson · 2020 [cited by examiner]
CN 107766540A · 2018 [cited by applicant]
CN 108399572A · 2018 [cited by applicant]
CN 108596613A · 2018 [cited by applicant]
CN 108769264A · 2018 [cited by applicant]
CN 108900321A · 2018 [cited by applicant]
CN 108920723A · 2018 [cited by applicant]
JP 2009000708A · 2009 [cited by applicant]
WO 2018050222A1 · 2018 [cited by applicant]
WO 2018217804A1 · 2018 [cited by applicant]
Anonymous, “Distributed Hash Tables and Consistent Hashing,” CloudFundoo, https://cloudfundoo.wordpress.com/2012/05/28/distributed-hash-tables-and-consistent-hashing, May 28, 2012, 7 pages. [cited by applicant]
Antonopoulos, “Mastering Bitcoin—Unlocking Digital Cryptocurrencies,” O'Reilly Media, Inc., Dec. 20, 2014, 282 pages. [cited by applicant]
Basescu et al., “Poster: Low-latency Blockchain Consensus”, Nov. 14, 2017, 2 pages. [cited by applicant]
Danda et al., “Why Aren't We as a Community Talking About Sharding ss a Scaling Solution?,” retrieved from https://www.reddit.com/r/Bitcoin/comments/3u1m36/why_arent_we_as_a_community_talking_about/cxbamhn/, Nov. 23, 20… [cited by applicant]
Danezis et al., “Centrally Banked Cryptocurrencies” NDSS, Feb. 2016, San Diego, CA, Internet Society, 14 pages. [cited by applicant]
Dang et al., “Towards Scaling Blockchain Systems via Sharding,” National University of Singapore, Mar. 12, 2019, 16 pages. [cited by applicant]
Delgado-Segura, et al. “Analysis of the Bitcoin UTXO Set”, Lecture Notes in Computer Science book series (LNSC, vol. 10958, Feb. 2019, 15 pages. [cited by applicant]
Eyeofpython et al., “Does CTOR (Canonical Transaction Ordering) Help Sharding? I had a Closer Look,” Reddit, Sep. 20, 2018 [retrieved Mar. 28, 2022], https://www.reddit.com/r/btc/comments/9hfouo/does_ctor_canonical_tran… [cited by applicant]
Franco, “Understanding Bitcoin: Cryptography, Engineering and Economics,” Wiley, ISBN: 978-1-119-01916-9, Oct. 2014, 144 pages. [cited by applicant]
Frey et al., “Bringing Secure Bitcoin Transactions to Your Smartphone,” Hal Open Science, Nov. 3, 2016, 7 pages. [cited by applicant]
Harrison, “Next Generation Databases,” Apress, 2015, 244 pages. [cited by applicant]
Heilman et al., “TumbleBit: An Untrusted Tumbler for Bitcoin-Compatible Anonymous Payments,” International Association for Cryptologic Research, Jun. 3, 2016, 14 pages. [cited by applicant]
Hughes, “Radix—Tempo,” Sep. 25, 2017, 15 pages. [cited by applicant]
International Search Report and Written Opinion mailed Jul. 30, 2019, Patent Application No. PCT/IB2019/053378, 10 pages. [cited by applicant]
International Search Report and Written Opinion mailed Jul. 30, 2019, Patent Application No. PCT/IB2019/053382, 11 pages. [cited by applicant]
International Search Report and Written Opinion mailed Jul. 30, 2019, Patent Application No. PCT/IB2019/053383, 12 pages. [cited by applicant]
International Search Report and Written Opinion mailed Jul. 30, 2019, Patent Application No. PCT/IB2019/053381, 11 pages. [cited by applicant]
Kim et al., “Dynamically Adjusting the Minig Capacity in Cryptocurrency With Binary Blockchain,” University of Nevada, Las Vegas, Computer Science Faculty Publications, Jan. 1, 2018, 11 pages. [cited by applicant]
Kokoris-Kogias et al., “OmniLedger: A Secure, Scale-Out, Decentralized Ledger via Sharding,” 2017, 16 pages. [cited by applicant]
Kreder, “BlockReduce: Scaling Blockchain to Human Commerce,” Oct. 31, 2018, 9 pages. [cited by applicant]
Luu et al., “A Secure Sharding Protocol for Open Blockchains,” 2016, retrieved from https://web.archive.org/web/20190228023146/https://www.comp.nus.edu.sg/˜loiluu/papers/elastico.pdf [Archive Date Feb. 28, 2019], 14 pag… [cited by applicant]
Nakamoto, “Bitcoin: A Peer-to-Peer Electronic Cash System,” Bitcoin, Oct. 31, 2008, https://bitcoin.org/bitcoin.pdf, 9 pages. [cited by applicant]
Nyffenegger, “Scaling Bitcoin,” Master's Thesis, Chair of Economic Theory, Universitat Basel, Aug. 9, 2018, 99 pages. [cited by applicant]
Ruffing et al., “CoinShuffle: Practical Decentralized Coin Mixing for Bitcoin”, ESORICS, 2014, 20 pages. [cited by applicant]
Satoshi et al., “Connection Limits,” Bitcoin Forum, Aug. 9, 2010, https://bitcointalk.org/index.php?topic=741.0;prev_next=prev, 2 pages. [cited by applicant]
Stevenroose et al., “IRC Chat Log Feb. 9, 2016,” Bitcoin Wizards, Feb. 9, 2016, https://irclog.whitequark.org/bitcoin-wizards/2016-02-09, 8 pages. [cited by applicant]
The Zilliqa Team, “The Technical Whitepaper”, Version 0.1, Aug. 10, 2017, 14 pages. [cited by applicant]
Todd et al., “Why Aren't We as a Community Talking About Sharding as a Scaling Solution,” Reddit, https://www.reddit.com/r/Bitcoin/comments/3u1m36/why_arent_we_as_a_community_talking_about/, Nov. 24, 2015, 8 pages. [cited by applicant]
Todd, “Re: [Bitcoin-development] Tree-chains Preliminary Summary,” https://www.mail-archive.com/[email protected]/msg04388.html, Mar. 24, 2014, 9 pages. [cited by applicant]
UK Commercial Search Report mailed Dec. 14, 2018, Patent Application No. GB1806930.2, 12 pages. [cited by applicant]
UK IPO Search Report mailed Oct. 23, 2018, Patent Application No. GB1806907.0, 7 pages. [cited by applicant]
UK IPO Search Report mailed Oct. 23, 2018, Patent Application No. GB1806914.6, 9 pages. [cited by applicant]
UK IPO Search Report mailed Oct. 24, 2018 Patent Application No. GB1806911.2 8 pages. [cited by applicant]