Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Safrole STF Test Vectors (GP Section 6) - Update #8

Open
wants to merge 18 commits into
base: master
Choose a base branch
from

Conversation

davxy
Copy link
Contributor

@davxy davxy commented Jul 29, 2024

README



NOTE

This is not critical for the test-vectors correctness as the aforementioned nonce is supposed to be (pseudo-)random and secret (i.e., only known to the prover). Follows that the old ring signatures are still valid wrt to the verification procedure.
But IMO is better to keep the test vectors aligned to what is currently generated by the reference implementation.

@davxy
Copy link
Contributor Author

davxy commented Aug 8, 2024

Added "Offenders" STF input (ref GP 0.3.1, eq. 58, 59).
Currently not used by the provided vectors (some additional vectors with offenders will be provided soon)

@davxy davxy changed the title Align to the recent Bandersnatch specification update Safrole STF Test Vectors (GP Section 6) - Update Aug 16, 2024
@davxy davxy mentioned this pull request Aug 30, 2024
2 tasks
@emielsebastiaan
Copy link

One suggestion for a complementary test vector is the case of including a set of 17 tickets during the lottery phase.
This would cover GP-0.3.6-eq:74 (|E_T|<=K).
This would result in a not yet covered error.

@ggwpez
Copy link

ggwpez commented Sep 24, 2024

Graymatter client passes all updated JSON tests (did not try the Codec stuff yet, but other CODEC stuff passes). Some comments:

  • It looks like the tiny contest duration is 10 blocks, but i dont see this mentioned in the README.
  • From what i understood, the keys that are passed to the ring setup need to use the padding point, but the ones that make it into the SAFROLE state should use zero.
  • The punish test revealed mistakes in our implementation. Thanks for adding it.

@ggwpez
Copy link

ggwpez commented Sep 29, 2024

These tests also use tickets_per_validator = 2 , or?
It just occurred to me now that this implies that 2/3+1 majority does not lead to a successful contest anymore, since (6*(2/3)+1) * 2 = 10, missing two tickets.
Maybe we should increase the tickets per validator to three for the tiny spec?

I will post the final numbers onto the jamchain website to have the unambiguous for all future tests, currently we have this.

@davxy davxy mentioned this pull request Nov 19, 2024
14 tasks
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