zksecurity / noname

Noname: a programming language to write zkapps
https://zksecurity.github.io/noname/
179 stars 46 forks source link

implement proving/verifying of R1CS using arkworks #135

Open mimoo opened 3 months ago

mimoo commented 3 months ago

using ark-noname to translate our R1CS to arkworks R1CS, we should be able to use arkworks to create proofs and verify proofs using Groth16!

https://github.com/dmpierre/ark-noname/blob/7b03d3afb71761f7049d2249212745aa9fe4a65b/src/lib.rs#L113

(the same way we use kimchi to prove/verify, see https://github.com/zksecurity/noname/blob/main/src/cli/cmd_prove_and_verify.rs)

probably we don't need to integrate it with the CLI right away, but adding the code in the R1CS backend (the asme way we have the code in the kimchi backend https://github.com/zksecurity/noname/blob/main/src/backends/kimchi/prover.rs)

and make it use in tests (see how kimchi uses it https://github.com/zksecurity/noname/blob/main/src/tests/examples.rs#L72)

mimoo commented 3 months ago

^ still remains to add it to the prove/verify CLI