mirror of
https://github.com/arnaucube/sonobe.git
synced 2026-01-08 15:01:30 +01:00
* Move r1cs and ccs to standalone folders * Simplify type bounds of SparseMatrixVar * Implement `EquivalenceGadget` trait for `FpVar` and `NonNativeUintVar`. Together with the existing `MatrixGadget` and `VectorGadget`, we can now use the same logic for checking R1CS satisfiability of `R1CSVar` both natively and non-natively. * Simplify trait bounds * Implement `ArithGadget` for `R1CSMatricesVar` and `CCSMatricesVar` * `PedersenGadget::commit` now takes slices as input * Structs for proofs and auxiliary values in protogalaxy * `u` in LCCCS should be `z[0]` * `Inputize` trait * Generic decider circuits * Verifier should check the commitments in committed instances * Update the comments according to the new docs * Fix examples * Add `DeciderEnabledNIFS::fold_group_elements_native` to wrap code for folding commitments * Fix incorrect endian * Format * Get rid of `unwrap` when possible
frontends
This crate contains experimental frontends for Sonobe.
The recommended frontend is to directly use arkworks to define the FCircuit, just following the FCircuit trait.
Experimental frontends
Warning: the following frontends are experimental and some computational and time overhead is expected when using them compared to directly using the arkworks frontend.
Available experimental frontends:
- Circom, iden3, 0Kims Association. Supported version
<=v2.1.9. - Noir, Aztec.
- Noname, zkSecurity. Partially supported.
Documentation about frontend interface and experimental frontends: https://privacy-scaling-explorations.github.io/sonobe-docs/usage/frontend.html
Implementing new frontends
Support for new frontends can be added (even from outside this repo) by implementing the FCircuit trait.