dusk-network/plonk

`Circuit` shouldn't be required to be `Default`

ureeves opened this issue · 0 comments

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.