Browse Source

Rust limitation no longer applies; warning about circom/arkworks diff

pull/4/head
mmagician 5 months ago
parent
commit
d8d18f8f31
No known key found for this signature in database GPG Key ID: BDEF1AAE14CCE516
1 changed files with 5 additions and 2 deletions
  1. +5
    -2
      README.md

+ 5
- 2
README.md

@ -65,9 +65,12 @@ Tests require the following installed:
- [x] Proof generations and verification using Arkworks
- [ ] CLI for common operations
## Known limitations
## Notes
Currently, due to an issue in our upstream (https://github.com/wasmerio/wasmer/issues/4072), this crate works as expected only up to Rust version `1.67.0`; in newer Rust versions, `wasmer` is currently unsound.
The prover key generated by circom differs from the one generated by arkworks' groth16 library. While the format is the same, it represents different values.
Circom 'prepares' the powers of tau by converting them to Lagrange base, i.e. from `s^i.G` -> `L_i(s).G`. This affects the witness generation process, and the caller needs to ensure the correct `R1CSToQAP` implementer is used:
- use [`CircomReduction`](https://github.com/arkworks-rs/circom-compat/blob/b892c62597687c23341cda1e8e89d58bb6428f36/src/circom/qap.rs#L12) for working with circom-generated files,
- use [`LibsnarkReduction`](https://github.com/arkworks-rs/groth16/blob/5272c935bda290a24cd18d0a3f994b0af70d5f27/src/r1cs_to_qap.rs#L101) for setup produced using the arkworks backend.
## Acknowledgements

Loading…
Cancel
Save