Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 8 additions & 5 deletions docs/consensus/proof_of_time.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ keywords:
- timekeeper
- randomness
last_update:
date: 04/17/2025
author: Teor
date: 07/22/2025
author: Jeremy Frank
---
import Collapsible from '@site/src/components/Collapsible/Collapsible';

Expand Down Expand Up @@ -309,7 +309,10 @@ Generate a random number `n` in the range `0..=(diff)` and if `n<sample_size` re

(Extends [Verification](proof_of_archival_storage.md#verification))

When a new block is received, in addition to PoS and consensus log checks, compare the PoT values in the header to the local view of the PoT chain.
If the proof-of-time included in the block header covers local proofs that have already been verified, the block’s PoT passes validation.
When a new block is received, in addition to PoS and consensus log checks, validate the PoT relative to the parent block:

If the proof-of-time is not consistent with local view or the local view is missing some required slots — do necessary verification, including proving.
1. Retrieve the parent block's PoT parameters and derive the expected PoT input for the current slot.
2. Verify that the current block's proof-of-time output is valid according to the parent-derived input and parameters.
3. If the proof-of-time verification passes, the block's PoT is considered valid.
Comment on lines +314 to +316
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are two PoT proofs in the block: for block's slot (which I think is what this revision of the text talks about) and future PoT (which is seems to be missing currently). Both need to be valid descendants of the parent block's PoT.


Some proofs may be cached locally from previous gossip or evaluation, allowing nodes to skip redundant verification for already-validated PoT values.