IP Library Granted Patent US 12,052,342
Granted Patent B2
US 12,052,342 · App. 17/788,277 · Granted Jul 30, 2024

Mapping keys to a blockchain overlay network

Inventors: Jack Davies (London, GB); Craig Steven Wright (London, GB)
Assignee: nChain Licensing AG
H04L9/0819H04L9/0836H04L9/0869H04L9/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 12,052,342
App. No.
17/788,277
Granted
Jul 30, 2024
Kind
B2
Abstract

A method of managing an overlay network overlaid on data-storage transactions of a blockchain, whereby data content of the overlay network is stored in payloads of the data-storage transactions and overlay-layer links are defined between the data-storage transactions. The method comprises identifying a graph structure of the overlay network, wherein nodes corresponds to different ones of the data-storage transactions and edges correspond to the links. Each node is associated with a respective first key for signing an input of a child data-storage transaction to authorise writing the child to the blockchain. The method further comprises using a child key derivation, CKD, function to determine a hierarchical set of second keys having the same graph structure as the overlay network, wherein the second keys enable an additional function other than signing inputs of the data-storage transactions.

Claims (37)

1. A method of managing an overlay network overlaid on data-storage transactions of a blockchain, whereby data content of the overlay network is stored in payloads of the data-storage transactions and overlay-layer links are defined between the data-storage transactions, the method comprising, by a first software module run on first computer equipment:

identifying a graph structure of the overlay network, the graph structure comprising a plurality of nodes and edges between nodes, wherein each of the nodes corresponds to a different respective one of the data-storage transactions and each of the edges corresponds to a different respective one of the links, and wherein each node is associated with a respective first key for signing an input of a child data-storage transaction in the graph structure of the overlay network in order to authorize writing the child data-storage transaction to the blockchain, the first keys being generated from a first seed; and

using a child key derivation (CKD) function applied to a second seed in order to determine a hierarchical set of second keys having the same graph structure as the overlay network, each second key corresponding to a different respective one of the nodes at a same position in the graph structure as the respective data-storage transaction, wherein the second keys are not used to sign inputs of the data-storage transactions but instead are provided to enable an additional function.

2. The method of claim 1 , further comprising:

using a CKD function applied to the first seed in order to determine the first keys as keys of a hierarchical key set having the same graph structure as the overlay network and the second key set, each first key corresponding to a different respective one of the nodes at a same position in the graph structure as the respective node.

3. The method of claim 1 , further comprising:

from the first software module, communicating an indication of one of the positions in the graph structure to a second software module, thus enabling the second software module to determine the respective first key for the node at that position based on the communicated position, and on the first seed and the CKD function used for the first keys.

4. The method of claim 1 , wherein the second software module is not given access to the second seed.

5. The method of claim 1 , wherein the second keys are obfuscation keys and said additional function comprises obfuscating and/or de-obfuscating data content of the respective data-storage transactions of the respective nodes.

6. The method of claim 1 , wherein the second keys are funding keys and said additional function comprises funding the respective data-storage transactions of the respective nodes to be recorded on the blockchain.

7. The method of claim 1 , wherein the second keys are application layer keys and said additional function comprises an application layer function to be performed in association with the respective data-storage transactions of the respective nodes.

8. The method of claim 1 , further comprising:

using a CKD algorithm applied to a third seed in order to determine a hierarchical set of third keys having the same graph structure as the overlay network and set of second keys, each third key corresponding to a different respective one of the nodes at a same position in the graph structure as the respective node, the third keys being for enabling a third function.

9. The method of claim 1 , wherein at least the first seed and second seed are derived from a same master seed.

10. The method of claim 1 , wherein the second software module is run on second computer equipment separate to the first computer equipment.

11. The method of claim 10 , wherein the first computer equipment is computer equipment of a first party and the second computer equipment is computer equipment of a second party separate to the first party.

12. The method of claim 11 , wherein the method is used by the first party to commission the second party to have one or more of the data storage transactions recorded on the blockchain without revealing the second keys to the second party.

13. The method of claim 12 , wherein;

the second keys are obfuscation keys and said additional function comprises obfuscating and/or de-obfuscating data content of the respective data-storage transactions of the respective nodes; and

the method is used by the first party to commission the second party to have one or more of the data storage transactions recorded on the blockchain without enabling the second party to de-obfuscate the data content stored therein.

14. The method of claim 1 , wherein the second software module is run on the same, first computer equipment as the first software module.

15. The method of claim 1 , wherein the data content is stored in an unspendable output of one or more of the data-storage transactions.

16. The method of claim 1 , wherein the overlay-layer links are stored amongst the payloads of the data-storage transactions.

17. The method of claim 1 , wherein the graph structure is a tree structure.

18. A computer program product, comprising a non-transitory computer readable medium including computer program code that, when executed by a first computer equipment, causes the first computer equipment to perform a method for managing an overlay network overlaid on data-storage transactions of a blockchain, whereby data content of the overlay network is stored in payloads of the data-storage transactions and overlay-layer links are defined between the data-storage transactions the method comprising the steps of:

identifying a graph structure of the overlay network, the graph structure comprising a plurality of nodes and edges between nodes, wherein each of the nodes corresponds to a different respective one of the data-storage transactions and each of the edges corresponds to a different respective one of the links, and wherein each node is associated with a respective first key for signing an input of a child data-storage transaction in the graph structure of the overlay network in order to authorize writing the child data-storage transaction to the blockchain, the first keys being generated from a first seed; and

using a child key derivation (CKD) function applied to a second seed in order to determine a hierarchical set of second keys having the same graph structure as the overlay network, each second key corresponding to a different respective one of the nodes at a same position in the graph structure as the respective data-storage transaction, wherein the second keys are not used to sign inputs of the data-storage transactions but instead are provided to enable an additional function.

19. Computer equipment for managing an overlay network overlaid on data-storage transactions of a blockchain, whereby data content of the overlay network is stored in payloads of the data-storage transactions and overlay-layer links are defined between the data-storage transactions, the computer equipment comprising:

memory comprising one or more memory units, and

processing apparatus comprising one or more processing units;

wherein the memory stores a first software module arranged to run on the one or more processing units, wherein the first software module is configured so as when run on the one or more processing units, the one or more processing units perform a method comprising:

identifying a graph structure of the overlay network, the graph structure comprising a plurality of nodes and edges between nodes, wherein each of the nodes corresponds to a different respective one of the data-storage transactions and each of the edges corresponds to a different respective one of the links, and wherein each node is associated with a respective first key for signing an input of a child data-storage transaction in the graph structure of the overlay network in order to authorize writing the child data-storage transaction to the blockchain, the first keys being generated from a first seed; and

using a child key derivation (CKD) function applied to a second seed in order to determine a hierarchical set of second keys having the same graph structure as the overlay network, each second key corresponding to a different respective one of the nodes at a same position in the graph structure as the respective data-storage transaction, wherein the second keys are not used to sign inputs of the data-storage transactions but instead are provided to enable an additional function.

20. A computer program product, comprising code embodied on a non-transitory computer-readable storage medium, the code comprising a second software module configured so as when run to perform operations of:

receiving from a first software module an indication of a position of a node in a graph structure representing an overlay network, wherein data content of the overlay network is stored in payloads of the data-storage transactions on a blockchain and overlay-layer links are defined between the data-storage transactions, and wherein the graph structure comprises a plurality of nodes and edges between nodes, each of the nodes corresponding to a different respective one of the data-storage transactions and each of the edges corresponding to a different respective one of the links;

using the indicated position to determine a key from amongst a hierarchical set of first keys, the hierarchical set of keys having the same graph structure as the overlay network, each first key corresponding to a different respective one of the nodes at a same position in the graph structure as the respective data-storage transaction, wherein said determining comprises determining the respective key for the node at the indicated position based on that position, and on a seed and a CKD function used for said set keys; and

using the determined key to perform a function in relation to the respective data-storage transaction other than signing an input of that data-storage transaction.

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 Jun 24, 2022
From: DAVIES, JACK OWEN; WRIGHT, CRAIG STEVEN
To: NCHAIN HOLDINGS LIMITED
Reel/Frame 060306/0613 →
Priority Claims (1)
GB 1919295 · Dec 24, 2019 · national
Continuity (1)
Related Publication 20230046315A1 · Feb 16, 2023