Add CompoundProof Requirements + ChallengeRequirements #605
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.
This lays the groundwork for ensuring proofs meets some minimum challenge requirement, regardless of how many partitions are used. Previously we had no way of enforcing aggregate requirements. This corrects that.
It adds a general mechanism allowing
Requirements
to be specified to anyProofScheme
. These requirements are passed as a parameter to a newsatisifies_requirements
trait method. This method also receives public parameters and number of partitions. This allows it to determine whether the proof's public parameters meet requirements when divided into a given number of partitions.Also included is a simple
ChallengeRequirements
impelementation for layered proofs. This ensures that the total number of challenges across all partitions is at least some minimum. For now, I set the minimum for all PoReps created from the API at 1. So this should never fail. Eventually, this should prevent us from creating configurations (or somehow accidentally attempting to verify proofs) which don't meet challenge security.Testing this will be a bit annoying, so I leave that for later when we have something meaningful to test.