plonk
plonk copied to clipboard
`Circuit` shouldn't be required to be `Default`
Describe what you want implemented
A circuit shouldn't be required to be Default
to satisfy the Circuit
trait. The proposal is to remove said bound, and adjust accordingly.
Describe "Why" this is needed
First this semantically makes no sense - why should a circuit need to have a default to be a circuit? - but it also leads to some dangerous uses.
Some circuits downstream, namely the execute circuits, actually shouldn't have a default implementation since they require padding to be performed prior to their compilation, and compiling with Compiler::compile
will result in the wrong keys being generated.
Describe alternatives you've considered N/A
Additional context This shouldn't be a breaking change, as it it a lifting of bounds, rather than a restriction.