argumentcomputer/lurk-beta

[LUR-36] Support Arecibo's ppsnark/batched ppsnark

huitseeker opened this issue · 0 comments

We currently use Arecibo's Spartan SNARK w/o pre-processing in Nova:
https://github.com/lurk-lab/lurk-rs/blob/bea2d023063b68f4e43c3da3c172cc4cb7026091/src/proof/nova.rs#L86-L93
which resolves to :
https://github.com/lurk-lab/arecibo/blob/dev/src/spartan/snark.rs#L81-L90

in Supernova:
https://github.com/lurk-lab/lurk-rs/blob/bea2d023063b68f4e43c3da3c172cc4cb7026091/src/proof/supernova.rs#L106-L113
which resolves to:
https://github.com/lurk-lab/arecibo/blob/42a9f16d4919aeafd48ed9ee08cf8dcf332e86c6/src/spartan/batched.rs#L45-L58

Arecibo also supports a pre-processing variant of those SNARKs, which has a different cost profile (smaller proof, longer proving/compression time. For Nova:
https://github.com/lurk-lab/arecibo/blob/dev/src/spartan/ppsnark.rs#L278-L326
For SuperNova:
https://github.com/lurk-lab/arecibo/blob/42a9f16d4919aeafd48ed9ee08cf8dcf332e86c6/src/spartan/batched_ppsnark.rs#L99-L124

We should offer, at least as an option, access to that different pre-processing side of the proving/succintness trade-off .

LUR-36