Closed IlyasRidhuan closed 1 year ago
Not sure if related, or should go under a different issue, but for the client we should allow to use rapid snark on multiple servers
Yeah that is a good point, we could either have it as a toggle as part of the config
(e.g. PROVING_CONFIG = ${rapidsnark_url} or zokrates-worker
.
So either
snarkjs
is used.rapidsnark seems to be perfect for big machines with multi-cores, so we should be fine with snarkjs local
We currently use bellman for proof generation in ZoKrates-worker and zokrates-js. Since 0.8.2, ZoKrates can generate compiled circuits and witness that are compatible with the circom-ecosystem.
This should also significantly clean up the code in ZoKrates worker by removing the need for
spawn
-ing system processes.Finally this opens the opportunity for us to utilise the impressively quick
rapidsnark
prover. Early benchmarks forrapidsnark
show it is 30x faster than bellman.Task list (all wallet updates will replace zokrates-js calls)
zokrates setup
+mpc
process withsnarkjs
phase 1 & 2 setups.zokrates compile
to also generate the relevantcircom.r1cs
output.ZoKrates compute-witness
to also generatecircom.wtns
output.snarkjs groth16 prove
.Key Registry.sol