# US 12,182,103 B2 · Methods for extending a proof-of-space-time blockchain

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,182,103 B2
- Document ID: US12182103B2
- Status: Granted
- Kind: B2
- Application number: 17/973,263
- Filed: 2022-10-25
- Published: 2023-02-09
- Granted: 2024-12-31
- Earliest claimed: 2019-05-20
- Assignees: Chia Network Inc.
- Applicants: Chia Network, Inc.
- Inventors: Bram Cohen; Krzystof Pietrzak; Mariano Sorgente
- Web page: https://patentgrep.com/patent/US12182103B2

## CPC

- G06F 16/2379: {Updates performed during online database operations; commit processing}
- H04L 9/3239: {involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD}
- H04L 9/3247: {involving digital signatures}
- H04L 9/3297: {involving time stamps, e.g. generation of time stamps}
- H04L 9/50: {using hash chains, e.g. blockchains or hash trees}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## 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

### Claim 1

A method for extending a blockchain, the method comprising:
generating a plot file based on a plot seed, the plot file comprising a set of tables representing proofs-of-space;
accessing a challenge based on a prior block of the blockchain;
generating a proof-of-space based on the challenge and the plot file by identifying the proof-of-space responsive to the challenge in the set of tables;
generating a new block comprising the proof-of-space; and
broadcasting the new block over a distributed network.

### Claim 2 (depends on 1)

The method of claim 1:
further comprising accessing a proof-of-time; and
wherein generating the new block comprises generating the new block comprising:
the proof-of-space; and
the proof-of-time.

### Claim 3 (depends on 2)

The method of claim 2, wherein:
generating the new block comprises:
generating a new canonical block comprising:
the proof-of-space; and
the proof-of-time; and
generating a new data block associated with the new canonical block, the new data block comprising a data payload; and
broadcasting the new block over the distributed network comprises:
broadcasting the new canonical block over the distributed network; and
broadcasting the new data block over the distributed network.

### Claim 4 (depends on 3)

The method of claim 3, wherein generating the new data block comprises generating the new data block comprising the data payload comprising:
transaction data; and
reward data.

### Claim 5 (depends on 2)

The method of claim 2, wherein:
accessing the proof-of-time comprises accessing a verifiable delay function output characterized by a number of verifiable delay function iterations corresponding to a time delay; and
generating the new block further comprises generating the new block in response to accessing the verifiable delay function output.

### Claim 6 (depends on 2)

The method of claim 2, wherein accessing the proof-of-time comprises generating the proof-of-time based on a verifiable delay function.

### Claim 7 (depends on 2)

The method of claim 2:
further comprising calculating a quality corresponding to the proof-of-space;
further comprising calculating a time delay based on the quality; and
wherein accessing the proof-of-time comprises accessing the proof-of-time based on the time delay.

### Claim 8 (depends on 1)

The method of claim 1:
wherein generating the plot file comprises generating the plot file characterized by an amount of drive storage allocated for generating proofs-of-space.

### Claim 9 (depends on 1)

The method of claim 1, further comprising generating the plot seed based on a cryptographic hash of a combination of values, the combination of values comprising a private key of a space server and a pseudorandom value.

### Claim 10 (depends on 1)

The method of claim 1, wherein accessing the challenge comprises calculating the challenge based on a cryptographic hash of the prior block.

### Claim 11

A method for extending a blockchain, the method comprising:
accessing a challenge based on a prior block of the blockchain;
generating a proof-of-space based on the challenge, the proof-of-space indicating allocation of an amount of drive storage at a space server;
initiating a first thread of a verifiable delay function based on the prior block;
in response to executing a first number of iterations of the first thread, generating a verifiable delay function output;
generating a new block comprising:
the proof-of-space; and
a proof-of-time based on the verifiable delay function output; and
broadcasting the new block over a distributed network.

### Claim 12 (depends on 11)

The method of claim 11:
wherein initiating the first thread comprises initiating, at a time server, the first thread of the verifiable delay function based on the prior block;
wherein generating the verifiable delay function output comprises generating, at the time server, the verifiable delay function output in response to executing the first number of iterations of the first thread;
further comprising broadcasting, at the time server, the proof-of-time over the distributed network;
further comprising receiving, at the space server, the proof-of-time;
wherein generating the new block comprises generating, at the space server, the new block; and
wherein broadcasting the new block comprises broadcasting, at the space server, the new block over the distributed network.
