It is observed in https://eprint.iacr.org/2024/1436 that, thanks to CP-SNARKs, we can use Pedersen commitment in the decider without blowing up the size of decider circuits.
I already have a working implementation, but the code is messy, contains unsafe workarounds, and relies on forks of arkworks. Below I list several tasks that need to be completed before getting it merged into Sonobe:
Also, CP-SNARKs may make it possible to support commitment schemes other than Pedersen and KZG in decider, although I don't have any concrete idea yet.
It is observed in https://eprint.iacr.org/2024/1436 that, thanks to CP-SNARKs, we can use Pedersen commitment in the decider without blowing up the size of decider circuits.
I already have a working implementation, but the code is messy, contains unsafe workarounds, and relies on forks of arkworks. Below I list several tasks that need to be completed before getting it merged into Sonobe:
arkworks/snarkto upstream, which allows the constraint system to store witnesses that are being committed to.arkworks/r1cs-stdto upstream, which supports the creation of a committed variable in R1CS.arkworks/groth16to upstream, which modifies the original LegoGroth16 implementation and adds some minor improvements.Also, CP-SNARKs may make it possible to support commitment schemes other than Pedersen and KZG in decider, although I don't have any concrete idea yet.