IP Library Granted Patent US 12,126,741
Granted Patent B2
US 12,126,741 · App. 17/610,286 · Granted Oct 22, 2024

Systems and methods for non-parallelised mining on a proof-of-work blockchain network

Inventors: Craig Steven Wright (London, GB); Jack Owen Davies (London, GB); Alexander Tennyson Mackay (London, GB); Chloe Ceren Tartan (London, GB); Wei Zhang (London, GB)
Assignee: nChain Licensing AG
H04L9/3297G06F7/466G06F7/723H04L9/3006H04L9/3236H04L9/3247H04L9/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,126,741
App. No.
17/610,286
Granted
Oct 22, 2024
Kind
B2
Abstract

The present disclosure provides methods and systems for ensuring the security of a blockchain and associated network, and for enabling the establishment of consensus regarding the state of the blockchain. A method of the disclosure may be implemented by one or more nodes on a blockchain network, using a non-parallelisable algorithm to calculate an output based on a computational difficulty parameter, a hash of at least one blockchain transaction; and/or a hash of at least one blockchain block header. The non-parallelisable, inherently sequential algorithm comprises at least one of the following operations or a combination thereof: a recursive operation, a modular exponentiation and/or a repeated squaring operation.

Claims (53)

1. A computer implemented method comprising the step of:

mining the block of blockchain transactions, wherein the block comprises:

i) a set S of N blockchain transactions, where the set S is agreed by blockchain network nodes on a blockchain network; and

ii) a proof-of-computation solution for the block of blockchain transactions that has been calculated as an output of a non-parallelisable algorithm that has been provided with inputs, the inputs comprising:

a computational difficulty parameter which influences or controls a number of operations required by the non-parallelisable algorithm to calculate the output;

a hash of at least one blockchain transaction; and/or

a hash of at least one blockchain block header.

2. The method of claim 1 , further comprising the step of:

sending the output, or a representation of the output, to the blockchain network nodes.

3. The method of claim 1 wherein the non-parallelisable algorithm comprises at least one of the following operations:

a recursive operation;

a modular exponentiation; and

a repeated squaring operation.

4. The method of claim 1 , further comprising the step of:

selecting at least one blockchain transaction from a set of blockchain transactions, wherein the at least one blockchain transaction is selected based on a timestamp provided in the at least one blockchain transaction.

5. The method of claim 4 , wherein the at least one selected blockchain transaction comprises a timestamp that is derivable or identifiable from a state of the blockchain.

6. The method of claim 4 , wherein the at least one selected transaction comprises a timestamp that is later than the timestamp of a block or a blockchain transaction that is recorded on a blockchain.

7. The method of claim 4 , further comprising the step of:

calculating a representation of the at least one selected blockchain transaction.

8. The method of claim 1 , further comprising the step of:

receiving a representation of the output at a second blockchain network node from a first blockchain network node and verifying the output at the second blockchain network node.

9. The method of claim 8 wherein the step of verifying the output at the second blockchain network node comprises:

calculating the output at the second blockchain network node;

generating a representation of the output at the second blockchain network node; and

comparing the representation generated at the second blockchain network node with the representation received from the first blockchain network node.

10. The method of claim 1 , wherein the non-parallelisable algorithm:

requires the calculation of one or more intermediary values in order to calculate the i) output; and/or

ii) cannot be executed by a plurality of parallelised computing resources.

11. A blockchain network comprising a plurality of nodes, wherein each node in the blockchain network comprises: a processor; and memory including executable instructions that, as a result of execution by the processor, causes the blockchain network to perform the computer-implemented steps of: mining the block of blockchain transactions, wherein the block comprises:

i) a set S of N blockchain transactions, where the set S is agreed by blockchain network nodes on a blockchain network; and ii) a proof-of-computation solution for the block of blockchain transactions that has been calculated as an output of a non-parallelisable algorithm that has been provided with inputs, the inputs comprising: a computational difficulty parameter which influences or controls a number of operations required by the non-parallelisable algorithm to calculate the output; a hash of at least one blockchain transaction; and/or a hash of at least one blockchain block header.

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 the computer-implemented steps of:

mining the block of blockchain transactions, wherein the block comprises:

i) a set S of N blockchain transactions, where the set S is agreed by blockchain network nodes on a blockchain network; and

ii) a proof-of-computation solution for the block of blockchain transactions that has been calculated as an output of a non-parallelisable algorithm that has been provided with inputs, the inputs comprising:

a computational difficulty parameter which influences or controls a number of operations required by the non-parallelisable algorithm to calculate the output;

a hash of at least one blockchain transaction; and/or a hash of at least one blockchain block header.

13. The blockchain network of claim 11 , wherein the executable instructions, as a result of execution by the processor, causes the blockchain network to perform the computer-implemented step of:

sending the output, or a representation of the output, to the a network of blockchain network nodes.

14. The blockchain network of claim 11 , wherein the non-parallelisable algorithm comprises at least one of the following operations:

a recursive operation;

a modular exponentiation; and

a repeated squaring operation.

15. The blockchain network of claim 11 , wherein the executable instructions, as a result of execution by the processor, causes the blockchain network to perform the computer-implemented step of:

selecting at least one blockchain transaction from a set of blockchain transactions, wherein the at least one blockchain transaction is selected based on a timestamp provided in the at least one blockchain transaction.

16. The blockchain network of claim 15 , wherein the at least one selected blockchain transaction comprises a timestamp that is derivable or identifiable from a state of the blockchain.

17. The non-transitory computer-readable storage medium of claim 12 , wherein the executable instructions that, a result of being executed by a processor of a computer system, cause the computer system to perform the step of:

sending the output, or a representation of the output, to a network of blockchain nodes.

18. The non-transitory computer-readable storage medium of claim 12 , wherein the non-parallelisable algorithm comprises at least one of the following operations:

a recursive operation;

a modular exponentiation; and

a repeated squaring operation.

19. The non-transitory computer-readable storage medium of claim 12 , wherein the executable instructions, as a result of being executed by the processor of the computer system, cause the computer system to perform the step of:

selecting at least one blockchain transaction from a set of blockchain transactions, wherein the at least one blockchain transaction is selected based on a timestamp provided in the at least one blockchain transaction.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 15, 2023
From: ZHANG, WEI; WRIGHT, CRAIG STEVEN; DAVIES, JACK OWEN
To: NCHAIN LICENSING AG
Reel/Frame 062987/0139 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 15, 2023
From: MACKAY, ALEXANDER TENNYSON; TARTAN, CHLOE CEREN
To: NCHAIN LICENSING AG
Reel/Frame 063099/0914 →
CHANGE OF NAME Recorded Aug 8, 2022
From: NCHAIN HOLDINGS LIMITED
To: NCHAIN LICENSING AG
Reel/Frame 061118/0671 →
Priority Claims (1)
GB 1906893 · May 16, 2019 · national
Continuity (1)
Related Publication 20220217004A1 · Jul 7, 2022