Remove the RNG argument from Round::receive_message()
#83
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Originally it was added to support a single ZK proof in
synedrion
where the verification required an RNG. The reason it did was to only pass it tocrypto_primes::is_prime_with_rng()
. After some consideration, I think it was not a correct way to handle that.Since we want to be able to generate verifiable evidence for every
receive_message()
error, the outcome ofreceive_message()
cannot be random (or we would have to store the RNG state which we don't have access to). If some of its internals need an RNG, it should construct one usingshared_randomness
,AssociatedData
, or whatever else would be available during evidence verification, as a seed.Specifically for primality checking, it seems that there is no need for an RNG at all (see entropyxyz/crypto-primes#21), although this method is too new and is not included in FIPS recommendations.