Closed mimoo closed 4 months ago
I think these are the steps we should take:
pub struct CircuitWriter<F> where F: ark_ff::Field
is probably a good start.unimplemented!()
. Try to compile simple examples like arithmetic.no
with R1CS arithmetizationcurrent progress: @katat has a nice trait for Backend
that different backends can implement. We now realize the goal is to move as little as possible to the backend trait, so that most code remain the same between backends. There's some refactors needed in builtins, as well as fields, to make things generic on the backend or field
Currently only plonk (specifically kimchi) is supported. I'd be cool to be able to support different backends, specifically snarkjs which has quite the amount of traction.
I'm wondering about several potential paths here, and I'm not sure which would make more sense:
--r1cs
flag) and noname would dump r1cs constraints/witness instead (I think it shouldn't be too hard, as in: the public input should have the value 1 be the first value, the witness symbolic table would have a single column (z
), constraints would add to matrices a, b, c instead of adding plonk custom gates to the gates array