IP Library Granted Patent US 11,934,387
Granted Patent B2
US 11,934,387 · App. 18/118,440 · Granted Mar 19, 2024

Methods for extending a proof-of-space-time blockchain

Inventors: Bram Cohen (San Francisco, CA); Krzysztof Pietrzak (San Francisco, CA); Mariano Sorgente (San Francisco, CA)
Assignee: Chia Network Inc.
G06F16/2379G06F12/0223H04L9/3239G06F2212/1048H04L9/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,934,387
App. No.
18/118,440
Granted
Mar 19, 2024
Kind
B2
Abstract

A method for extending a blockchain comprises, at a space server: allocating an amount of drive storage for generating proofs-of-space; or accessing a first challenge based on a prior block of the blockchain, the prior block comprising a first proof-of-space and a first proof-of-time; in response to accessing the first challenge, generating a second proof-of-space based on the first challenge and the amount of drive storage, the second proof-of-space indicating allocation of the amount of drive storage; accessing a second proof-of-time based on the prior block and indicating a first time delay elapsed after extension of the blockchain with the prior block; generating a new block comprising the second proof-of-space and the second proof-of-time; and broadcasting the new block over a distributed network.

Claims (78)

1. A method comprising:

generating a first series of entries, in a first table in a series of tables, based on a series of initial entries and a plot seed, the plot seed generated based on a cryptographic hash of a cryptographic key and a value;

for each table in the series of tables:

identifying a set of matching pairs of entries in the table; and

for each matching pair of entries in the set of matching pairs of entries, generating a forward-propagated entry in a succeeding table in the series of tables; and

storing a plot file comprising:

the series of tables; and

a final table comprising a series of final entries comprising forward-propagated entries from a preceding table in the series of tables, each entry in the series of final entries representing a binary tree of entries extending through the series of tables.

2. The method of claim 1 :

further comprising:

defining a first bucket corresponding to a first range of entry values;

identifying a first entry in the first table as corresponding to the first bucket; and

identifying a second entry in the first table as corresponding to the first bucket; and

wherein identifying the set of matching pairs of entries comprises identifying a first matching pair of entries comprising the first entry and the second entry.

3. The method of claim 1 :

further comprising:

defining a series of buckets comprising:

a first bucket corresponding to a first range of entry values; and

a second bucket corresponding to a second range of entry values adjacent to the first range of entry values;

identifying a first entry in the first table as corresponding to the first bucket; and

identifying a second entry in the first table as corresponding to the second bucket; and

wherein identifying the set of matching pairs of entries comprises identifying a first matching pair of entries comprising the first entry and the second entry.

4. The method of claim 1 :

further comprising:

defining a graph of buckets comprising:

a first bucket corresponding to a first range of entry values and associated with a second bucket;

the second bucket corresponding to a second range of entry values and associated with the first bucket;

identifying a first entry, in the first table, as corresponding to the first bucket; and

identifying a second entry, in the first table, as corresponding to the second bucket; and

wherein identifying the set of matching pairs of entries comprises identifying a first matching pair of entries comprising the first entry and the second entry.

5. The method of claim 1 , wherein generating the forward-propagated entry comprises:

for a first matching pair of entries, in the set of matching pairs of entries, comprising a first entry and a second entry:

generating a first forward-propagated entry based on the first entry, the second entry, and a cryptographic hash function.

6. The method of claim 1 :

further comprising sorting entries in the first series of entries; and

wherein identifying the set of matching pairs of entries comprises identifying a first set of matching pairs of entries in the first table in response to sorting the entries in the first series of entries.

7. The method of claim 1 :

identifying a first set of entries, in the series of tables, represented by the series of final entries;

identifying a second set of entries, in the series of tables, absent from the first set of entries; and

removing the second set of entries from the series of tables.

8. The method of claim 1 , wherein storing the plot file comprises:

storing a set of entries, in the series of tables, in a first format; and

for each entry in the set of entries, reformatting the entry from the first format to a second format.

9. The method of claim 1 , further comprising generating a proof-of-space based on a proof-of-space challenge and the plot file.

10. The method of claim 9 , wherein generating the proof-of-space comprises identifying a matching final entry, in the series of final entries, corresponding to the proof-of-space challenge.

11. The method of claim 10 , wherein generating the proof-of-space comprises:

calculating a first quality of the matching final entry based on a first portion of a binary tree of entries corresponding to the matching final entry; and

in response to the first quality exceeding a threshold quality:

accessing a second portion of the binary tree of entries; and

generating the proof-of-space based on the first portion of the binary tree of entries and the second portion of the binary tree of entries.

12. The method of claim 9 , further comprising accessing the proof-of-space challenge based on a block in a blockchain.

13. The method of claim 1 , further comprising:

identifying a first matching final entry, in the series of final entries, corresponding to a proof-of-space challenge;

calculating a first quality of the first matching final entry based on a first binary tree of entries corresponding to the first matching final entry; and

in response to the first quality exceeding a threshold quality, generating a proof-of-space based on the first binary tree of entries corresponding to the first matching final entry.

14. The method of claim 13 :

further comprising:

identifying a second matching final entry, in the series of final entries, corresponding to the proof-of-space challenge; and

calculating a second quality of the second matching final entry based on a second binary tree of entries corresponding to the second matching final entry;

wherein identifying the first matching final entry comprises identifying the first matching final entry in response to the second quality falling below the threshold quality.

15. The method of claim 1 , further comprising:

accessing a first proof-of-space challenge; and

waiting for a second proof-of-space challenge in response to absence of a matching final entry, in the series of final entries, corresponding to the first proof-of-space challenge.

16. A method comprising:

generating a plot file comprising:

a series of tables comprising:

a first table comprising a first series of entries generated based on a series of initial entries and a plot seed, the plot seed generated based on a cryptographic hash of a cryptographic key and a value; and

a second table comprising forward-propagated entries corresponding to matching pairs of entries in the first table; and

a final table comprising a series of final entries comprising forward-propagated entries from a preceding table in the series of tables, each entry in the series of final entries representing a binary tree of entries extending through the series of tables; and

storing the plot file.

17. The method of claim 16 , further comprising generating a proof-of-space based on a proof-of-space challenge and the plot file.

18. A method comprising:

accessing a plot file comprising:

a series of tables comprising:

a first table comprising a first series of entries generated based on a series of initial entries and a plot seed, the plot seed generated based on a cryptographic hash of a cryptographic key and a value; and

a second table comprising forward-propagated entries corresponding to matching pairs of entries in the first table; and

a final table comprising a series of final entries comprising forward-propagated entries from a preceding table in the series of tables, each entry in the series of final entries representing a binary tree of entries extending through the series of tables; and

generating a proof-of-space based on a proof-of-space challenge and the plot file.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 28, 2023
From: COHEN, BRAM; PIETRZAK, KRZYSZTOF; SORGENTE, MARIANO
To: CHIA NETWORK INC.
Reel/Frame 063131/0081 →
Continuity (6)
Continuation 17496405 · Oct 7, 2021
Continuation 17320114 · May 13, 2021
Continuation In Part 15931463 · May 13, 2020
Provisional Application 63177286 · Apr 20, 2021
Provisional Application 62850221 · May 20, 2019
Related Publication 20230214380A1 · Jul 6, 2023