Skip to content

Conversation

jfrank-summit
Copy link
Member

Updates

  • Add more detailed validation steps for Proof of Time new block imports. This brings the spec into alignment with changes implemented in PR #3585.


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. Compare the PoT values in the header to the local view of the PoT chain.
Copy link
Member

Choose a reason for hiding this comment

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

I don't understand what this is supposed to mean


If the proof-of-time included in the block header covers local proofs that have already been verified, the block's PoT passes validation.

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.
Copy link
Member

Choose a reason for hiding this comment

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

This is a strange way of writing it, what is "not consistent with local view" supposed to mean? The fact that we already have some proofs pre-verified due to them been seen and verified earlier can be though as an important implementation-level optimization, but I wouldn't make it the core part of the workflow.

Copy link
Collaborator

Choose a reason for hiding this comment

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

I would remove this detail, and sum it up by saying "some proofs may be cached locally" in a note at the end.

@jfrank-summit jfrank-summit requested a review from nazar-pc July 22, 2025 20:28
Comment on lines +314 to +316
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.
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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants