zcash / halo2

The Halo2 zero-knowledge proving system
https://zcash.github.io/halo2/
Other
712 stars 487 forks source link

Split `ConstraintSystem` into a builder type and a verifying key type #781

Open str4d opened 1 year ago

str4d commented 1 year ago

This is an initial refactor performed during Halo 2 Office Hours, to explore the effects of this split on the wider codebase.

At the end, we discussed the result, and noted that the verifying key type still contains data in sub-types that is irrelevant to the actual verifying key. The verifying key type is also never exposed in the public API of the verifying key; ConstraintSystem was only public for its use in Circuit::configure.

The likely next steps are: