IP Library Granted Patent US 11,863,624
Granted Patent B2
US 11,863,624 · App. 17/887,448 · Granted Jan 2, 2024

Fast propagation of recent transactions over a blockchain network

Inventors: Giuseppe Destefanis (London, GB); Patrick Motylinski (London, GB); Stephane Vincent (Luxembourg, LU); Craig Steven Wright (London, GB)
Assignee: nChain Licensing AG
H04L67/1097H04L9/0637H04L9/0643H04L63/123H04L67/1065H04L67/1093H04L67/1095H04L67/12H04L9/50
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,863,624
App. No.
17/887,448
Granted
Jan 2, 2024
Kind
B2
Abstract

A specialized network (“merchant”) node to facilitate fast distribution of blockchain transactions over a network of interconnected nodes, as subset of which are merchant nodes interconnected by an overlay network. The merchant node includes a memory storing an assigned portion of a distributed mempool structured as a distributed hash table, the distributed mempool containing pending transactions awaiting confirmation. The merchant node operates by receiving a transaction, including a transaction identifier; hashing the new transaction identifier to obtain a key; determining, using the key, whether the transaction is stored in the distributed mempool or not and, if not, then storing the transaction in the distributed mempool as a pending transaction; and sending the transaction to a set of nodes other than merchant nodes using peer-to-peer connections. The invention may be used in conjunction with the Bitcoin blockchain or an alternative.

Claims (34)

1. A computer-implemented method for storing a new transaction in a distributed memory pool to facilitate blockchain transfers involving a plurality of nodes coupled to a network used to implement a blockchain, wherein a subset of the plurality of nodes are specialized network nodes, the specialized network nodes storing the distributed memory pool containing pending transactions awaiting confirmation, the distributed memory pool being implemented as a distributed hash table among the specialized network nodes, wherein the method comprises:

receiving, at a first node, the new transaction, including a transaction identifier and specifying a number of confirmations required before the transaction can be removed from the memory pool;

hashing the transaction identifier to obtain a key value which indicates one or more of the specialized network nodes of the network at which the new transaction is to be stored;

routing the new transaction to the one or more specialized network nodes of the network that it is to be stored at; and

storing the new transaction in the distributed memory pool at the one or more specialised network nodes.

2. The computer-implemented method claimed in claim 1 , wherein the one or more specialized network nodes send an acknowledgement.

3. The computer-implemented method claimed in claim 1 , further comprising determining a number of confirmations of a block containing the transaction and included in the blockchain and, when the number of confirmations reaches the specified number, removing the transaction from the distributed memory pool.

4. The computer-implemented method claimed in claim 3 , wherein storing the transaction in the memory pool includes storing the transaction in association with the number of confirmations of the block in which it is included, and wherein the number of confirmations stored in the memory pool for that transaction is updated with each new block added to the blockchain; and/or

wherein storing the transaction in the memory pool includes storing the transaction in association with a block number of the block in which the transaction is included, and wherein determining the number of confirmations comprises determining a current block number for the blockchain and comparing the current block number to the block number of the block in which the transaction is included.

5. The computer-implemented method claimed in claim 1 , further comprising detecting a new neighbouring specialized network node, storing an identifier for the new neighbouring specialized network node in a specialized network node reputation table, and updating a score of the new neighbouring merchant node in the specialized network node reputation table based on detected activity of the new neighbouring specialized network node; and/or

further comprising determining that the score of the new neighbouring specialized network node has fallen below a threshold and, as a result, designating the new neighbouring specialized network node as a malicious node and isolating the new neighbouring specialized network node.

6. The computer-implemented method claimed in claim 1 , wherein said one of the specialized network nodes stores a portion of the distributed memory pool, and wherein the portion of the distributed memory pool stored at said one of the specialized network nodes partially overlaps a second portion of the distributed memory pool stored at another of the specialized network nodes.

7. The computer-implemented method claimed in claim 1 , wherein each of the specialized network nodes stores a respective portion of the distributed memory pool, and wherein the respective portions partly overlap such that each of the pending transactions is stored in at least two of the specialized network nodes, but not all of the specialized network nodes, and optionally, wherein each of the pending transactions is included in no more than two of the respective portions of the distributed memory pool.

8. A specialized network node arranged for storing a new transaction in a distributed memory pool to facilitate distribution of blockchain transactions over a network of interconnected nodes used to implement a blockchain, a subset of which are specialized network nodes interconnected by an overlay network, the specialized network node comprising:

a processor;

memory storing an assigned portion of a distributed memory pool structured as a distributed hash table, the distributed memory pool containing pending transactions awaiting confirmation;

a network interface; and

a blockchain specialized network node application containing processor-executable instructions that, when executed by the processor, cause the processor to:

receive a transaction, including a transaction identifier;

hash the transaction identifier to obtain a key;

route the new transaction to the one or more specialized network nodes of the network that it is to be stored at; and

store the new transaction in the distributed memory pool at the one or more specialised network nodes.

9. The specialized network node claimed in claim 8 , further comprising sending an acknowledgement.

10. The specialized network node claimed in claim 8 , wherein the memory further stores data regarding a number of confirmations of a block containing the transaction and included in the blockchain and wherein the instructions are to cause the processor to remove the transaction from the distributed memory pool when the number of confirmations reaches a minimum number; and/or

wherein the data regarding the number of confirmations is either a count of the number of confirmations that is updated with each new block added to the blockchain or is a block number of the block in which the transaction is included.

11. The specialized network node claimed in claim 8 , wherein the memory further stores a specialized network node reputation table that includes an identifier for any detected new neighbouring merchant nodes and an associated score for that new neighbouring specialized network node based on detected activity of the new neighbouring specialized network node.

12. The specialized network node claimed in claim 11 , wherein the instructions are arranged to cause the processor to update the score of the new neighbouring specialized network node and to determine that the score of the new neighbouring specialized network node has fallen below a threshold and, as a result, designate the new neighbouring specialized network node as a malicious node and isolate the new neighbouring specialized network node.

13. The specialized network node claimed in claim 8 , wherein said assigned portion of the distributed memory pool partially overlaps a second portion of the distributed memory pool stored at another of the specialized network nodes.

14. The specialized network node claimed in claim 8 , wherein each of the specialized network nodes stores a respective assigned portion of the distributed memory pool, and wherein the respective assigned portions partly overlap such that each of the pending transactions is stored in at least two of the specialized network nodes, but not all of the specialized network nodes, and optionally, wherein each of the pending transactions is included in no more than two of the respective assigned portions of the distributed memory pool.

15. A non-transitory medium storing processor-executable instructions to participate in a blockchain transaction among a plurality of participating nodes, wherein the processor-executable instructions, when executed by a processor in one of the participating nodes, cause the processor to carry out at least a method for storing a new transaction in a distributed memory pool to facilitate blockchain transfers involving a plurality of nodes coupled to a network used to implement a blockchain, wherein a subset of the plurality of nodes are specialized network nodes, the specialized network nodes storing the distributed memory pool containing pending transactions awaiting confirmation, the distributed memory pool being implemented as a distributed hash table among the specialized network nodes, wherein the method comprises:

receiving, at a first node, the new transaction, including a transaction identifier;

hashing the transaction identifier to obtain a key value which indicates one or more of the specialized network nodes of the network at which the new transaction is to be stored;

routing the new transaction to the one or more specialized network nodes of the network that it is to be stored at; and

storing the new transaction in the distributed memory pool at the one or more specialised network nodes.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 13, 2022
From: DESTEFANIS, GIUSEPPE; MOTYLINSKI, PATRICK; VINCENT, STEPHANE
To: NCHAIN HOLDINGS LTD.
Reel/Frame 060801/0535 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 13, 2022
From: WRIGHT, CRAIG STEVEN
To: NCHAIN HOLDINGS LTD.
Reel/Frame 060801/0546 →
CHANGE OF NAME Recorded Aug 13, 2022
From: NCHAIN HOLDINGS LTD
To: NCHAIN LICENSING AG
Reel/Frame 061165/0596 →
Priority Claims (1)
GB 1709848 · Jun 20, 2017 · national
Continuity (2)
Continuation 16625641
Related Publication 20230082444A1 · Mar 16, 2023