IP Library Granted Patent US 12,277,552
Granted Patent B2
US 12,277,552 · App. 17/602,168 · Granted Apr 15, 2025

Methods and devices for propagating blocks in a blockchain network

Inventors: Alex MacKay (London, GB); Wei Zhang (London, GB); Craig Wright (London, GB); Steven Patrick Coughlan (London, GB)
Assignee: nChain Licensing AG
G06Q20/3827G06Q20/065G06Q20/223G06Q20/3825H04L9/3239H04L9/3247H04L9/3265H04L9/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,277,552
App. No.
17/602,168
Granted
Apr 15, 2025
Kind
B2
Abstract

Methods and devices for propagating blocks in a blockchain network. At a mining node, while hashing a first block header of a first candidate block, the mining node sends, to other mining nodes, a first message specifying transactions and their order in a first ordered set of transactions contained in the first candidate block. The mining also receives a second message specifying transactions and their order in a second ordered set of transactions contained in a second candidate block being mined by a second mining node. If the mining node succeeds in mining the candidate block it notifies other mining nodes by providing them with a coinbase transaction, hash value, and timestamp. If another mining node is successful, then the mining node receives information from the other mining node from which, in conjunction with the second message, it can assemble the second candidate block and validate it.

Claims (65)

1. A computer-implemented method of block propagation in a blockchain network, comprising:

while hashing a first block header of a first candidate block at a first mining node,

sending, to other mining nodes, a first message specifying transactions and an order of the specified transactions in a first ordered set contained in the first candidate block;

receiving a second message identifying transactions and an order of the identified transactions in a second ordered set contained in a second candidate block being mined by a second mining node;

receiving a transaction and second block header information from the second mining node indicating successful completion of a proof-of-work with regard to the second candidate block, wherein the second block header information includes at least a timestamp and a nonce;

assembling a second block header based on the second ordered set of transactions, the transaction, and the second block header information; and

validating the second candidate block by hashing the second block header to validate the proof-of-work.

2. The method of claim 1 wherein receiving the second message includes storing the second ordered set of transactions in association with a second mining node identifier in memory at the first mining node.

3. The method of claim 1 , wherein assembling the second block header includes determining a Merkle root from the second ordered set of transactions and the transaction.

4. The method of claim 1 , further comprising first building the first candidate block by selecting and ordering transactions from a mempool to create the first ordered set of transactions and adding a coinbase transaction.

5. The method of claim 1 , wherein the first message includes a first template identifier that is based on a first mining node identifier and a block level indicator.

6. The method of claim 5 , wherein the first template identifier is obtained from a hash of a concatenation of (a) the first mining node identifier and (b) a hash value associated with a previous block in the blockchain.

7. The method of claim 1 , wherein the first message and the second message contain compressed transaction identifiers for specifying the transactions in the first ordered set of transactions and the transactions in the second ordered set of transactions.

8. The method of claim 7 , wherein the compressed transaction identifiers are truncated transaction identifiers.

9. The method of claim 1 , wherein the first ordered set of transactions in the first message is encrypted, and wherein a decryption key for decrypting the first ordered set of transactions is provided to the other miners only if the first mining node finds a proof-of-work for the first candidate block.

10. A computer-implemented method of block propagation in a blockchain network, comprising:

while hashing a first block header of a first candidate block at a first mining node,

sending, to other mining nodes, a first message specifying transactions and an order of the specified transactions their order in a first ordered set contained in the first candidate block;

receiving a second message identifying transactions and an order of the identified transactions their order in a second ordered set contained in a second candidate block being mined by a second mining node; and

finding a proof-of-work in association with a nonce in the first block header of the first candidate block by hashing the first block header to produce a hash value below a difficulty threshold and, as a result,

sending the other mining nodes a coinbase transaction from the first candidate block and first block header information, wherein the first block header information includes at least a timestamp and the nonce; and

adding the first candidate block to a local copy of the blockchain.

11. The method of claim 10 , wherein the first block header information excludes at least some header fields.

12. The method of claim 10 , wherein the first mining node does not resend the first ordered set of transactions to the other mining nodes after finding the proof-of-work.

13. The method of claim 10 , wherein the first message includes a first template identifier that is based on a first mining node identifier and a block level indicator.

14. The method of claim 13 , wherein the first template identifier is obtained from a hash of a concatenation of (a) the first mining node identifier and (b) a hash value associated with a previous block in the blockchain.

15. The method of claim 10 , wherein the first message and the second message contain compressed transaction identifiers for specifying the transactions in the first ordered set of transactions and the transactions in the second ordered set of transactions.

16. The method of claim 15 , wherein the compressed transaction identifiers are truncated transaction identifiers.

17. A computing device implementing a first mining node for mining blocks on a blockchain network, the computing device including:

one or more processors;

memory;

computer-executable instructions stored in the memory that, when executed by the one or more processors, cause the processors to perform the steps of:

while hashing a first block header of a first candidate block at a first mining node,

sending, to other mining nodes, a first message specifying transactions and an order of the specified transactions in a first ordered set contained in the first candidate block;

receiving a second message identifying transactions and an order of the identified transactions in a second ordered set contained in a second candidate block being mined by a second mining node;

receiving a transaction and second block header information from the second mining node indicating successful completion of a proof-of-work with regard to the second candidate block, wherein the second block header information includes at least a timestamp and a nonce;

assembling a second block header based on the second ordered set of transactions, the transaction, and the second block header information; and

validating the second candidate block by hashing the second block header to validate the proof-of-work.

18. The computing device of claim 17 , wherein receiving the second message includes storing the second ordered set of transactions in association with a second mining node identifier in memory at the first mining node.

19. The computing device of claim 14 , wherein assembling the second block header includes determining a Merkle root from the second ordered set of transactions and the transaction.

20. A non-transitory computer-readable medium storing processor-executable instructions for implementing a first mining node for mining blocks on a blockchain network, the processor-executable instructions including instructions that, when executed by one or more processors, cause the processors to perform the steps of:

while hashing a first block header of a first candidate block at a first mining node,

sending, to other mining nodes, a first message specifying transactions and an order of the specified transactions in a first ordered set contained in the first candidate block;

receiving a second message identifying transactions and an order of the identified transactions in a second ordered set contained in a second candidate block being mined by a second mining node;

receiving a transaction and second block header information from the second mining node indicating successful completion of a proof-of-work with regard to the second candidate block, wherein the second block header information includes at least a timestamp and a nonce;

assembling a second block header based on the second ordered set of transactions, the transaction, and the second block header information; and

validating the second candidate block by hashing the second block header to validate the proof-of-work.

21. The non-transitory computer-readable medium of claim 20 , wherein receiving the second message includes storing the second ordered set of transactions in association with a second mining node identifier in memory at the first mining node.

22. A computing device implementing a first mining node for mining blocks on a blockchain network, the computing device including:

one or more processors;

memory;

computer-executable instructions stored in the memory that, when executed by the one or more processors, cause the processors to perform the steps of:

while hashing a first block header of a first candidate block at a first mining node,

sending, to other mining nodes, a first message specifying transactions and an order of the specified transactions their order in a first ordered set contained in the first candidate block;

receiving a second message identifying transactions and an order of the identified transactions their order in a second ordered set contained in a second candidate block being mined by a second mining node; and

finding a proof-of-work in association with a nonce in the first block header of the first candidate block by hashing the first block header to produce a hash value below a difficulty threshold and, as a result,

sending the other mining nodes a coinbase transaction from the first candidate block and first block header information, wherein the first block header information includes at least a timestamp and the nonce; and

adding the first candidate block to a local copy of the blockchain.

23. A non-transitory computer-readable medium storing processor-executable instructions for implementing a first mining node for mining blocks on a blockchain network, the processor-executable instructions including instructions that, when executed by one or more processors, cause the processors to perform the steps of:

while hashing a first block header of a first candidate block at a first mining node,

sending, to other mining nodes, a first message specifying transactions and an order of the specified transactions their order in a first ordered set contained in the first candidate block;

receiving a second message identifying transactions and an order of the identified transactions their order in a second ordered set contained in a second candidate block being mined by a second mining node; and

finding a proof-of-work in association with a nonce in the first block header of the first candidate block by hashing the first block header to produce a hash value below a difficulty threshold and, as a result,

sending the other mining nodes a coinbase transaction from the first candidate block and first block header information, wherein the first block header information includes at least a timestamp and the nonce; and

adding the first candidate block to a local copy of the blockchain.

Assignments (2)
CHANGE OF NAME Recorded Aug 8, 2022
From: NCHAIN HOLDINGS LIMITED
To: NCHAIN LICENSING AG
Reel/Frame 061118/0671 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 18, 2021
From: WRIGHT, CRAIG STEVEN; MACKAY, ALEX; ZHANG, WEI; COUGHLAN, STEVEN PATRICK
To: NCHAIN HOLDINGS LTD.
Reel/Frame 057842/0782 →
Priority Claims (1)
GB 1905221 · Apr 12, 2019 · national
Continuity (1)
Related Publication 20220156735A1 · May 19, 2022
References Cited (58)
US 8706701B1 · Stefanov et al. · 2014 [cited by applicant]
US 10250708B1 · Carver et al. · 2019 [cited by applicant]
US 10372943B1 · Rodriguez De Castro · 2019 [cited by examiner]
US 10742421B1 · Wentz et al. · 2020 [cited by applicant]
US 11038685B1 · Dennis · 2021 [cited by examiner]
US 11487886B2 · Koorella · 2022 [cited by examiner]
US 20080195583A1 · Hsu et al. · 2008 [cited by applicant]
US 20100217798A1 · Asami · 2010 [cited by examiner]
US 20120030468A1 · Papamanthou et al. · 2012 [cited by applicant]
US 20120222130A1 · Lee · 2012 [cited by examiner]
US 20150317748A1 · Roberts · 2015 [cited by examiner]
US 20170178072A1 · Poornachandran · 2017 [cited by examiner]
US 20170243176A1 · Hanke · 2017 [cited by examiner]
US 20170316497A1 · Song et al. · 2017 [cited by applicant]
US 20170344435A1 · Davis · 2017 [cited by applicant]
US 20170344987A1 · Davis · 2017 [cited by applicant]
US 20180013567A1 · Davis · 2018 [cited by applicant]
US 20180323980A1 · Ahn · 2018 [cited by examiner]
US 20190034465A1 · Shimamura · 2019 [cited by examiner]
US 20190054836A1 · Haneda · 2019 [cited by examiner]
US 20190156301A1 · Bentov et al. · 2019 [cited by applicant]
US 20190199515A1 · Carver et al. · 2019 [cited by applicant]
US 20190273733A1 · Kawabata · 2019 [cited by examiner]
US 20190349733A1 · Nolan et al. · 2019 [cited by applicant]
US 20200119936A1 · Balasaygun · 2020 [cited by examiner]
US 20200127834A1 · Westland · 2020 [cited by examiner]
US 20200136808A1 · Chasko · 2020 [cited by examiner]
US 20200162473A1 · Mercuri · 2020 [cited by examiner]
US 20200210451A1 · Wang · 2020 [cited by examiner]
US 20200234293A1 · Lee · 2020 [cited by examiner]
US 20200285634A1 · Jho · 2020 [cited by examiner]
US 20200366495A1 · Mahoney · 2020 [cited by examiner]
US 20210326442A1 · Campagna et al. · 2021 [cited by applicant]
US 20210365867A1 · Kim · 2021 [cited by examiner]
US 20220094791A1 · Moller · 2022 [cited by examiner]
US 20220100724A1 · Zhang · 2022 [cited by examiner]
WO 2018224955A1 · 2018 [cited by applicant]
WO 2018229633A1 · 2018 [cited by applicant]
WO 20180224954 · 2018 [cited by applicant]
WO 2019003083A1 · 2019 [cited by applicant]
WO 2019021107 · 2019 [cited by applicant]
WO 2019077126 · 2019 [cited by applicant]
WO 2020208596A1 · 2020 [cited by applicant]
Decker et al., Information propagation in the Bitcoin network, Sep. 1, 2013, IEEE P2P 2013 Proceedings (pp. 1-10) (Year: 2013). [cited by examiner]
Sarda et al., NoCo: An Efficient Transaction Propagation Protocol for Open Blockchains, Sep. 1, 2018, 2018 Second International Conference on Advances in Computing, Control and Communication Technology (IAC3T) (pp. 41-4… [cited by examiner]
Sudhan et al., Peer Selection Techniques for Enhanced Transaction Propagation in Bitcoin Peer-to-Peer Network, Jun. 1, 2018, 2018 Second International Conference on Intelligent Computing and Control Systems (ICICCS) (Ye… [cited by examiner]
A. Pinar Ozisik et al., Graphene: A New Protocol for Block Propagation Using Set Reconciliation, UMASS Amherst, pp. 1-65, Massachusetts, USA. [cited by applicant]
Ding D., et al., “Txilm: Lossy Block Compression with Salted Short Hashing,” arXiv:1906.06500, Jun. 15, 2019, 5 pages. [cited by applicant]
Han Y., et al., “Shrec: Bandwidth-Efficient Transaction Relay in High-Throughput Blockchain Systems,” Proceedings of the 11th ACM Symposium on Cloud Computing (SoCC 20), Oct. 19-21, 2020, pp. 238-252. [cited by applicant]
International Search Report and Written Opinion for Application No. PCT/EP2021/082871 mailed on Feb. 25, 2022, 14 pages. [cited by applicant]
Katkuri S., “A Survey of Data Transfer and Storage Techniques in Prevalent Cryptocurrencies and Suggested Improvements,” arXiv:1808.03380, Aug. 10, 2018, 72 pages. [cited by applicant]
GB 1905221.6 Search Report dated Oct. 9, 2019. [cited by applicant]
Matt Corallo, “Compact Block Relay”, Apr. 27, 2016, Retrieved from the Internet: URL: https://github.com/bitcoin/bips/blob/master/bip-0152.mediawiki. [cited by applicant]
PCT/IB2020/053436, International Searching Authority, International Search Report dated Jul. 3, 2020. [cited by applicant]
PCT/IB2020/053416, International Searching Authority, International Search Report dated Jun. 26, 2020. [cited by applicant]
Pinar Ozisik A et al., “Graphene: A New Protocol for Block Propagation Using Set Reconciliation”, Sep. 13, 2017, Pervasive: International Conference on Pervasive Computing; Springer, Berlin Heidelberg, pp. 420-428. [cited by applicant]
Antonopoulos A.M., et al., “Bitcoin and a Blockchain,” First Edition, NTT Publication Incorporated company, Apr. 18, 2018, 11 Pages. [cited by applicant]
Office Action for Japanese Patent Application No. 2021-560040, mailed on May 21, 2024, 5 pages. [cited by applicant]