taiga
taiga copied to clipboard
Integrate Vamp-IR into Taiga
- [x] Import trivial VPs (
1=1and1=0) and attempt to prove them within taiga codebase; adjust taiga if necessary. - [x] List questions for Vamp-IR team and functional requirements for Vamp-IR to be integrated into Taiga (e.g., I think currently Vamp-IR is only available as a separate binary, but we’d probably like to see it as a library we can import into taiga code; we need vampir to output a VK, which I am not sure it currently does)
- [x] Further determine scope of this task and add more items below
Currently blocked by https://github.com/anoma/vamp-ir/issues/74
Also blocked by https://github.com/anoma/vamp-ir/issues/57 If this issue is resolved, then the other blocker disappears as well.
Some problems needed to discuss with Vampir Team: https://github.com/anoma/taiga/pull/157#issuecomment-1519080215
The basic underlying gadgets we need to create Taiga Predicate(mandatory/basic constraints): Poseidon hash, Elliptic curve operation(addition and multiplication), sinsemilla commitment
Some improvements to be made:
- [x] Export the instances(public inputs) from vamp_ir. fixed by #166
- [x] Correctly handle the instances(public inputs) from vamp_ir. There might be a bug about instances handling based on Halo2 in vamp_ir. fixed by #166
- [ ] Remove the
paramsfrom theVampIRValidityPredicateCircuitwhen vamp_ir supports setting the params size manually. - [ ] Add an interface to create VP from proof and verifying key when vamp_ir can export the verifying key
Remove the
paramsfrom theVampIRValidityPredicateCircuitwhen vamp_ir supports setting the params size manually.
Some VampIR VP circuit tests failed because of the small params. It will be solved by setting bigger params manually. We need the feature in VampIR as above.
The failed tests are ignored. Retest them when we have the feature.
Proposed prove and verify vamp-ir API that exports the verifying key https://github.com/anoma/vamp-ir/pull/120