pub fn gen_snark<'params, ConcreteCircuit, P, V>(
params: &'params ParamsKZG<Bn256>,
pk: &ProvingKey<G1Affine>,
circuit: ConcreteCircuit,
path: Option<impl AsRef<Path>>,
) -> Snarkwhere
ConcreteCircuit: CircuitExt<Fr>,
P: Prover<'params, KZGCommitmentScheme<Bn256>>,
V: Verifier<'params, KZGCommitmentScheme<Bn256>, Guard = GuardKZG<'params, Bn256>, MSMAccumulator = DualMSM<'params, Bn256>>,
Expand description
Generates a SNARK using either SHPLONK or GWC multi-open scheme. Uses Poseidon for Fiat-Shamir.
Tries to first deserialize from / later serialize the entire SNARK into path
if specified.
Serialization is done using bincode
.