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.
Describe what you want implemented
A circuit shouldn't be required to be
Defaultto satisfy theCircuittrait. 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::compilewill 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.