Open sragss opened 8 months ago
The final batching sumcheck of Snark::prove is unneeded for us as we only need to support R1CS rather than Relaxed R1CS. This final sumcheck accounts for ~25% of Spartan e2e prover time.
Snark::prove
We can cut all of the following: https://github.com/a16z/Spartan2/blob/d78a5044b16ff6b60341785829539f5d0ba2961b/src/spartan/snark.rs#L289-L353
let eval_arg = EE::prove(...)
eval_W
Looks like we can remove w_u_vec and associated expensive cloning as well.
w_u_vec
Arasu is handling here: https://github.com/a16z/Spartan2/pull/17
The final batching sumcheck of
Snark::prove
is unneeded for us as we only need to support R1CS rather than Relaxed R1CS. This final sumcheck accounts for ~25% of Spartan e2e prover time.We can cut all of the following: https://github.com/a16z/Spartan2/blob/d78a5044b16ff6b60341785829539f5d0ba2961b/src/spartan/snark.rs#L289-L353
let eval_arg = EE::prove(...)
to useeval_W
instead.