IP Library Granted Patent US 12,073,391
Granted Patent B2
US 12,073,391 · App. 17/602,174 · Granted Aug 27, 2024

Short transaction identifier collision detection and reconciliation

Inventor: 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,073,391
App. No.
17/602,174
Granted
Aug 27, 2024
Kind
B2
Abstract

Methods and devices for resolving a collision in short transaction identifiers in a blockchain network. The method may include receiving a set of short transaction identifiers from a sending node. The receiving node locates a corresponding full transaction identifier for each short transaction identifier in a mempool. For at least one short transaction identifier, the receiver identifies a collision. It then sends a message to the sending node requesting resolution of the collision regarding the at least one short transaction identifier, and receives collision resolution data from the sending node to enable identification of a valid corresponding full transaction identifier for the at least one short transaction identifier. The receiver may send intermediate Merkle tree hashes with its request for resolution, and the collision resolution data may include information identifying which of the hashes is incorrect.

Claims (31)

1. A computer-implemented method of resolving short transaction identifier collision in a blockchain network, comprising:

receiving block data from a sending node, including a block Merkle root and a set of short transaction identifiers from a sending node;

for each short transaction identifier, locating a corresponding full transaction identifier in a mempool;

calculating a Merkle tree based on the full transaction identifiers, the Merkle tree having a Merkle root;

determining that the calculated Merkle root does not match the block Merkle root;

sending, to the sending node, Merkle tree hashes from an intermediate layer of the Merkle tree;

receiving, from the sending node, resolution data identifying which of the Merkle tree hashes is incorrect; and

repeating the sending of Merkle tree hashes and receiving of resolution data until a collision is resolved.

2. The method of claim 1 , wherein each short transaction identifier is a truncation of its corresponding full transaction identifier.

3. The method of claim 1 , wherein the resolution data includes a flag for each of the Merkle tree hashes for the intermediate layer indicating whether that Merkle tree hash is valid.

4. The method of claim 1 , wherein the resolution data includes full transaction identifiers for a portion of a bottom layer of the Merkle tree.

5. The method of claim 1 , wherein the intermediate layer is a layer of the Merkle tree between an identified unmatched Merkle hash and a bottom layer of the Merkle tree.

6. The method of claim 5 , further comprising selecting the intermediate layer.

7. The method of claim 1 , wherein the Merkle tree hashes include partial Merkle tree hashes.

8. The method of claim 1 , wherein receiving block data includes receiving, from the sending node, a pre-emptive set of Merkle tree hashes from a selected layer of the Merkle tree.

9. A computing device to resolve short transaction identifier collision in a blockchain network, the computing device including:

one or more processors;

memory; and

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

receiving block data from a sending node, including a block Merkle root and a set of short transaction identifiers from a sending node;

for each short transaction identifier, locating a corresponding full transaction identifier in a mempool;

calculating a Merkle tree based on the full transaction identifiers, the Merkle tree having a Merkle root;

determining that the calculated Merkle root does not match the block Merkle root;

sending, to the sending node, Merkle tree hashes from an intermediate layer of the Merkle tree;

receiving, from the sending node, resolution data identifying which of the Merkle tree hashes is incorrect; and

repeating the sending of Merkle tree hashes and receiving of resolution data until a collision is resolved.

10. The computing device of claim 9 , wherein each short transaction identifier is a truncation of its corresponding full transaction identifier.

11. The computing device of claim 9 , wherein the resolution data includes a flag for each of the Merkle tree hashes for the intermediate layer indicating whether that Merkle tree hash is valid.

12. The computing device of claim 9 , wherein the resolution data includes full transaction identifiers for a portion of a bottom layer of the Merkle tree.

13. The computing device of claim 9 , wherein the intermediate layer is a layer of the Merkle tree between an identified unmatched Merkle hash and a bottom layer of the Merkle tree.

14. The computing device of claim 9 , wherein the computer-executable instructions include instructions that, when executed by one or more processors, cause the processors to perform the step of selecting the intermediate layer.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 27, 2022
From: COUGHLAN, STEVEN PATRICK
To: NCHAIN LICENSING AG
Reel/Frame 061224/0493 →
CHANGE OF NAME Recorded Aug 8, 2022
From: NCHAIN HOLDINGS LIMITED
To: NCHAIN LICENSING AG
Reel/Frame 061118/0671 →
Priority Claims (1)
GB 1905221 · Apr 12, 2019 · national
Continuity (1)
Related Publication 20220182241A1 · Jun 9, 2022