IP Library Granted Patent US 12,298,968
Granted Patent B2
US 12,298,968 · App. 18/442,653 · Granted May 13, 2025

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 12,298,968
App. No.
18/442,653
Granted
May 13, 2025
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 (80)

1. A method comprising:

generating a first set of entries in a first table based on a set of initial entries via a deterministic function and a plot seed;

identifying a first matching pair of entries in the first set of entries;

generating a first forward-propagated entry in a second table in a series of tables based on the first matching pair of entries and a cryptographic hash function;

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 based on the matching pair of entries and the cryptographic hash function;

generating a plot file representing:

the series of tables; and

a final table comprising a set of final entries comprising forward-propagated entries based on a preceding table in the series of tables; and

storing the plot file in a memory device.

2. The method of claim 1 , wherein generating the first set of entries comprises generating a first entry in the first set of entries by executing the deterministic function based on the plot seed and a first initial entry in the first set of initial entries.

3. The method of claim 1 , wherein generating the first set of entries comprises generating the first set of entries based on the set of initial entries via the deterministic function and the plot seed representing a cryptographic hash of a cryptographic key.

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

accessing a pair of initial entries in the set of initial entries and corresponding to the first matching pair of entries; and

generating the first forward-propagated entry based on the pair of initial entries and the cryptographic hash function.

5. The method of claim 1 :

further comprising, for each table in the series of tables and for each matching pair of entries in the set of matching pairs of entries, accessing a subset of initial entries in the set of initial entries and corresponding to the matching pair of entries; and

wherein generating the forward-propagated entry comprises generating the forward-propagated entry in the succeeding table in the series of tables based on the subset of initial entries and the cryptographic hash function.

6. The method of claim 1 , wherein identifying the first matching pair of entries comprises identifying the first matching pair of entries in the first set of entries in response to soring entries in the first set of entries.

7. The method of claim 1 :

further comprising:

identifying a first entry, in the first set of entries, associated with a first bucket in a set of buckets; and

identifying a second entry, in the first set of entries, associated with a second bucket in the set of buckets, the first bucket corresponding to the second bucket; and

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

8. The method of claim 7 , further comprising defining the set of buckets comprising:

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

the second bucket corresponding to a second range of entry values.

9. The method of claim 7 , further comprising defining the set of buckets comprising:

the first bucket associated with a subset of buckets in the set of buckets; and

the second bucket in the subset of buckets.

10. The method of claim 1 , further comprising calculating a quality of a proof-of-space based on a branch of a binary tree associated with the proof-of-space.

11. The method of claim 10 , further comprising generating the proof-of-space in response to detecting the quality exceeding a threshold quality.

12. The method of claim 1 , further comprising compressing a pointer representing propagation of an entry in the series of tables.

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

14. The method of claim 13 , wherein generating the proof-of-space comprises identifying a matching entry in the plot file corresponding to the challenge.

15. The method of claim 1 , further comprising:

accessing a first challenge;

waiting for a second challenge in response to failure to generate a first proof-of space responsive to the first challenge based on the plot file; and

generating a second proof-of-space responsive to the second challenge based on the plot file.

16. The method of claim 1 , wherein generating the plot file comprises generating the plot file representing the final table comprising the set of final entries comprising a first final entry representing a binary tree extending through the series of tables.

17. A method comprising:

generating a first set of entries in a first table based on a set of initial entries;

identifying a first matching pair of entries in the first set of entries;

accessing a pair of initial entries in the set of initial entries and corresponding to the first matching pair of entries;

generating a first forward-propagated entry in a second table in a series of tables based on the pair of initial entries and a cryptographic hash function;

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:

accessing a subset of initial entries in the set of initial entries and corresponding to the matching pair of entries; and

generating a forward-propagated entry in a succeeding table based on the subset of initial entries and the cryptographic hash function;

generating a plot file representing:

the series of tables; and

a final table comprising a set of final entries comprising forward-propagated entries based on a preceding table in the series of tables;

storing the plot file in a memory device; and

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

18. The method of claim 17 :

further comprising:

accessing the proof-of-space challenge; and

calculating a quality of the proof-of-space responsive to the proof-of-space challenge; and

wherein generating the proof-of-space comprises generating the proof-of-space based on the plot file in response to the quality exceeding a threshold quality.

19. A method comprising:

generating a first set of entries in a first table based on a set of initial entries via a deterministic function and a plot seed;

identifying a first matching pair of entries in the first set of entries;

generating a first forward-propagated entry in a second table in a series of tables based on the first matching pair of entries;

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 based on the matching pair of entries;

storing a plot file representing:

the series of tables; and

a final table comprising a set of final entries comprising forward-propagated entries based on a preceding table in the series of tables; and

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

20. The method of claim 19 :

further comprising:

identifying a first entry, in the first set of entries, associated with a first bucket in a set of buckets; and

identifying a second entry, in the first set of entries, associated with a second bucket in the set of buckets, the first bucket corresponding to the second bucket;

wherein identifying the first matching pair of entries comprises identifying the first matching pair of entries comprising the first entry and the second entry; and

wherein generating the first forward-propagated entry comprises:

accessing a pair of initial entries in the set of initial entries and corresponding to the first matching pair of entries; and

generating the first forward-propagated entry based on the pair of initial entries.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 6, 2024
From: COHEN, BRAM; PIETRZAK, KRZYSZTOF; SORGENTE, MARIANO
To: CHIA NETWORK INC.
Reel/Frame 066664/0951 →
Continuity (7)
Continuation 18118440 · Mar 7, 2023
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 20240265004A1 · Aug 8, 2024
References Cited (9)
US 10554407B1 · Greco · 2020 [cited by examiner]
US 10938567B2 · Martino · 2021 [cited by examiner]
US 20160292672A1 · Fay · 2016 [cited by examiner]
US 20180025181A1 · Barinov · 2018 [cited by examiner]
US 20180097779A1 · Karame · 2018 [cited by examiner]
US 20190020629A1 · Baird, III · 2019 [cited by examiner]
US 20190081793A1 · Martino · 2019 [cited by examiner]
US 20190129895A1 · Middleton · 2019 [cited by examiner]
US 20200142984A1 · Miyamoto · 2020 [cited by examiner]