Why
The recursive (IVC) and non-recursive SNARK stacks were built incrementally and drifted apart. Naming, module layout and preimage types differ for concepts that are the same, which makes the library harder to read, to review and to extend.
What
Align the two stacks on a single set of names, a single module structure and a single preimage representation, without changing the proving or verifying behavior.
How
Why
The recursive (IVC) and non-recursive SNARK stacks were built incrementally and drifted apart. Naming, module layout and preimage types differ for concepts that are the same, which makes the library harder to read, to review and to extend.
What
Align the two stacks on a single set of names, a single module structure and a single preimage representation, without changing the proving or verifying behavior.
How
IvcTransitionTypeand the IVC state transitions (proof_system/ivc_halo2_snark/prover_input_helpers.rs,rolling_state.rs)IvcCircuitData(circuits/halo2_ivc/circuit.rs) andStmCertificateCircuit(circuits/halo2/circuit.rs)circuits/halo2vscircuits/halo2_ivc,proof_system/halo2_snarkvsproof_system/ivc_halo2_snark: prefix vs suffix,modvspub(crate) mod)ProtocolMessagePreimage(circuits/halo2_ivc/types.rs) andGenesisMessagePreimage(protocol/aggregate_signature/preimage.rs) into a consistent representation#[allow(dead_code)]markers left onIvcCircuitDataonce the recursive keys are wired