Releases: TaceoLabs/co-snarks
Releases · TaceoLabs/co-snarks
ultrahonk: 0.3.0
0.3.0 (2024-12-18)
⚠ BREAKING CHANGES
- Align to upstream bb behavior of calculating the grand product argument only over the relevant trace size, which leads to a different proof being output.
- Bump Noir to v0.38.0, implement range checks, and allow nargo-asserts
- Move builder to new co-builder crate
- The interface of the UltraCircuitVariable trait has change. Thus, also ProvingKey::create() throws an error now.
- co-noir now stores shared inputs in a different format (
BTreeMap<String, Rep3AcvmType<ark_bn254::Fr>>
instead ofBTreeMap<String, Rep3PrimeFieldShare<ark_bn254::Fr>>
) - The produced proofs are now different due to new transcript handling in bb 0.55.1, and they are no longer backwards compatible.
Features
- Add builder for ultrahonk and fix prover (929dd1d)
- Add co-noir binary (#201) (3163aec)
- Add co-oink prover (#194) (b5fbd85)
- Add co-zeromorph to co-ultrahonk (#195) (e7df56e)
- Add first version of a (untested) UltraHonk prover (9f2911f)
- Add MPC tests for co-ultrahonk (#199) (5a36ad5)
- Add sumcheck prover (without relations) (be44986)
- Add the sumcheck relations to the co-ultrahonk prover (#198) (846c4f0)
- Add Ultrahonk verifier (5c5b5d8)
- Add Verifying key serialization and add verification to co-noir binary (#202) (3467425)
- Bump Noir to v0.38.0, implement range checks, and allow nargo-asserts (d1a5d83)
- Bump versions to Nargo v0.39.0 and Barretenberg v0.63.1 (#275) (db255e6)
- Make builder generic for both shares and plain, add shared proving key and start with MPC prover (#193) (e3559a0)
- Replace a panic from the ultracircuitbuilder with an Error (#217) (5d9c870)
- skip creating unnecessary beta products (118f2bf)
- Update UltraHonk to BB v0.62.0, required to replace zeromorph with shplemini (#251) (f35cdd4)
- Upgrade UltraHonk to be compatible with Barretenberg v0.55.1 (#211) (f817d76)
Bug Fixes
- Adapt co-noir binary to handle public noir inputs correctly (#216) (bed3996)
- clippy (e43534a)
- Fix reading ultrahonk proof (f16ef68)
- simplify path handling in co-noir binary (26fae55)
Code Refactoring
- Move builder to new co-builder crate (3cd8955)
mpc-net: v0.2.1
mpc-core: v0.7.0
0.7.0 (2024-12-16)
⚠ BREAKING CHANGES
- !: Added functionality to traits of brillig/acvm
- Added docs for brillig. Also updated the trait to better match the functionallity
- modified traits for ACVM
- Start adding replicated secret sharing for rings
Features
- !: first version of shared if by forking brillig (a25e4a5)
- Add casts bestween different ring-shares, and cast between rings (e680da6)
- Add functionality to reshare a vector of fieldshares from two parties to a 3rd (#292) (65f5be1)
- Add remaing rep3 ring implementations. Untested so far (b8c9a12)
- Add tests for the REP3 ring implementation and fix minor bugs" (ae3408a)
- Allow on-the-fly preprocessing for Shamir (699ea14)
- first plain unconstrained fn working (56e1c80)
- implement a radix sort in MPC and use it for range checks in co-noir (#290) (bc8c458)
- implement many featuers for the co-brillig rep3 backend (#284) (11e0b03)
- Start adding replicated secret sharing for rings (f4dca00)
Bug Fixes
- Fix the GC for the ring-to-ring upcast (b5bf8b1)
Documentation
- Added docs for brillig. Also updated the trait to better match the functionallity (a2df63a)
Dependencies
- The following workspace dependencies were updated
- dependencies
- mpc-net bumped from 0.2.0 to 0.2.1
- dependencies
co-ultrahonk: v0.3.0
0.3.0 (2024-12-16)
⚠ BREAKING CHANGES
- Align to upstream bb behavior of calculating the grand product argument only over the relevant trace size, which leads to a different proof being output.
- Bump Noir to v0.38.0, implement range checks, and allow nargo-asserts
Features
- Add process ROM gate stuff for co-noir and some fixes (9f0a9fa)
- Bump Noir to v0.38.0, implement range checks, and allow nargo-asserts (d1a5d83)
- Bump versions to Nargo v0.39.0 and Barretenberg v0.63.1 (#275) (db255e6)
- implement tool to compare output of upstream BB with our implementation (8af8540)
Dependencies
- The following workspace dependencies were updated
- dependencies
- co-acvm bumped from 0.3.0 to 0.4.0
- co-builder bumped from 0.1.0 to 0.2.0
- mpc-core bumped from 0.6.0 to 0.7.0
- ultrahonk bumped from 0.2.0 to 0.3.0
- dependencies
co-plonk: 0.5.0
0.5.0 (2024-12-18)
⚠ BREAKING CHANGES
- Now the verify impls from groth16/plonk circom return an error indicating whether it was a success or not
- changed the traits for circom bridge. Also modified the from_reader impl for the two Zkeys
- the prover for Groth16/Plonk now expects an Arc. Cleaner than having multiple Arcs in ZKey
- now uses new mpc-core and forked networking but NO rayon
Features
- now can specify whether we want curve checks during zkey deser (e1c03f3)
- prepare functions for compressed rep3 sharing (55bef10)
- refactor to use new mpc-core (43da344)
Code Refactoring
co-noir: 0.4.0
0.4.0 (2024-12-16)
⚠ BREAKING CHANGES
- Align to upstream bb behavior of calculating the grand product argument only over the relevant trace size, which leads to a different proof being output.
- Bump Noir to v0.38.0, implement range checks, and allow nargo-asserts
- Add more commands to co-noir binary to prepare for cases where
- co-noir adapted to ACVMType instead of sharedbuildervariable
- Use ACVMType in co-builder
- MpcNetworkHandler::establish now takes the config with already read certs and key.
- The interface of the UltraCircuitVariable trait has change. Thus, also ProvingKey::create() throws an error now.
- co-noir now stores shared inputs in a different format (
BTreeMap<String, Rep3AcvmType<ark_bn254::Fr>>
instead ofBTreeMap<String, Rep3PrimeFieldShare<ark_bn254::Fr>>
) - The produced proofs are now different due to new transcript handling in bb 0.55.1, and they are no longer backwards compatible.
- Add merging inputs to co-noir binary (#208)
Features
- Add co-noir binary (#201) (3163aec)
- Add merging inputs to co-noir binary (#208) (9365fdc)
- Add more commands to co-noir binary to prepare for cases where (268ebe9)
- Add process ROM gate stuff for co-noir and some fixes (9f0a9fa)
- Add Verifying key serialization and add verification to co-noir binary (#202) (3467425)
- Bump Nargo to version v1.0.0-beta.0 (#286) (f7cbae8)
- Bump Noir to v0.38.0, implement range checks, and allow nargo-asserts (d1a5d83)
- Bump versions to Nargo v0.39.0 and Barretenberg v0.63.1 (#275) (db255e6)
- Do not use the builder in co-noir split witness (d304986)
- implement many featuers for the co-brillig rep3 backend (#284) (11e0b03)
- implement tool to compare output of upstream BB with our implementation (8af8540)
- Replace a panic from the ultracircuitbuilder with an Error (#217) (5d9c870)
- squashed commit of co-noir (b132afc)
- Update UltraHonk to BB v0.62.0, required to replace zeromorph with shplemini (#251) (f35cdd4)
- Upgrade UltraHonk to be compatible with Barretenberg v0.55.1 (#211) (f817d76)
Bug Fixes
- Adapt co-noir binary to handle public noir inputs correctly (#216) (bed3996)
- fixed a bug where the constant for linear terms was ignored (23883ff)
- install rustls default crypto provider in our main binaries & examples (#238) (78757e4)
- simplify path handling in co-noir binary (26fae55)
Code Refactoring
- co-noir adapted to ACVMType instead of sharedbuildervariable (e6518a7)
- split network config into two types (dca1756)
- Use ACVMType in co-builder (e078c22)
Dependencies
- The following workspace dependencies were updated
- dependencies
- co-acvm bumped from 0.3.0 to 0.4.0
- co-ultrahonk bumped from 0.2.0 to 0.3.0
- mpc-core bumped from 0.6.0 to 0.7.0
- mpc-net bumped from 0.2.0 to 0.2.1
- dependencies
co-groth16: 0.7.0
0.7.0 (2024-12-16)
⚠ BREAKING CHANGES
- Now the verify impls from groth16/plonk circom return an error indicating whether it was a success or not
- Removed unnecessary parts of the zkey
- changed the traits for circom bridge. Also modified the from_reader impl for the two Zkeys
- Removes the zkey in the said function signature. We needed it earlier because we had to know domain size, which we now no longer need.
- the prover for Groth16/Plonk now expects an Arc. Cleaner than having multiple Arcs in ZKey
- the public interface of the Groth16MPCProver trait has changed.
- refactors everything that all groth16 specific functionallity is not in MPC-core anymore.
Features
- added plain prover shorthand function (b365fcd)
- now can specify whether we want curve checks during zkey deser (e1c03f3)
- prepare functions for compressed rep3 sharing (55bef10)
- refactors all according to MPC-core + Rayon (44a5d2d)
Bug Fixes
- added a check during groth16 prover for public inputs (76466eb)
Code Refactoring
- make pointshare in Groth16 MPC trait generic over the curve (dc5acd2)
- prove for circom now expect Arc<ZKey> (c2ac465)
- Removed ark_relations deps. Also changed verify impls to not return bool but a common error (b4f4bf1)
- Removed unnecessary parts of the zkey (0713260)
- with_network_config for ShamirGroth16 doesn't need zkey anymore (2052d89)
Dependencies
- The following workspace dependencies were updated
- dependencies
- circom-types bumped from 0.6.0 to 0.7.0
- co-circom-snarks bumped from 0.2.0 to 0.3.0
- mpc-core bumped from 0.6.0 to 0.7.0
- mpc-net bumped from 0.2.0 to 0.2.1
- dependencies
co-circom: 0.7.0
0.7.0 (2024-12-16)
⚠ BREAKING CHANGES
- Now the verify impls from groth16/plonk circom return an error indicating whether it was a success or not
- changed the traits for circom bridge. Also modified the from_reader impl for the two Zkeys
- serialization format of shared inputs has changed to allow for optional values used to indicate missing elements of an array
- MPC accelerator changed public API. Also now stores #output signals in component
- input to compiler now takes PathBuf
- run and run_with_flat methods on WitnessExtension now consume self again
- MpcNetworkHandler::establish now takes the config with already read certs and key.
- Removes the zkey in the said function signature. We needed it earlier because we had to know domain size, which we now no longer need.
- the prover for Groth16/Plonk now expects an Arc. Cleaner than having multiple Arcs in ZKey
- The serialized format of shares is now different.
- Refactor calls to other crates because of API changes
Features
- add support for merging input arrays (#260) (2c72231)
- Add the possibility to share co-circom inputs and witness in compressed form (c3443e1)
- added run_and_get_network to CircomRep3VmWitnessExtension, changed run and run_with_flat back to consume self (b362504)
- allow to set circom simplification level via CLI (b0d64ba)
- also allow circom-compatible way to handle link library via cli (#285) (48e6c0f)
- can now parse bool inputs (#236) (d0147b6)
- now can specify whether we want curve checks during zkey deser (e1c03f3)
- num2bits accelerator working (13cdf10)
Bug Fixes
- added a check during groth16 prover for public inputs (76466eb)
- fixed path in zkey benches (#231) (99ab2de)
- handle inputs that are >= mod in the same way as snarkjs (76f701b)
- install rustls default crypto provider in our main binaries & examples (#238) (78757e4)
Code Refactoring
- input to compiler now takes PathBuf (9f36774)
- prove for circom now expect Arc<ZKey> (c2ac465)
- Refactor calls to other crates because of API changes (6ed7c1a)
- Removed ark_relations deps. Also changed verify impls to not return bool but a common error (b4f4bf1)
- split network config into two types (dca1756)
- with_network_config for ShamirGroth16 doesn't need zkey anymore (2052d89)
Dependencies
- The following workspace dependencies were updated
- dependencies
- circom-mpc-compiler bumped from 0.7.0 to 0.8.0
- circom-mpc-vm bumped from 0.5.0 to 0.6.0
- circom-types bumped from 0.6.0 to 0.7.0
- co-circom-snarks bumped from 0.2.0 to 0.3.0
- co-groth16 bumped from 0.6.0 to 0.7.0
- co-plonk bumped from 0.4.0 to 0.5.0
- mpc-core bumped from 0.6.0 to 0.7.0
- mpc-net bumped from 0.2.0 to 0.2.1
- dependencies
co-circom-snarks: v0.3.0
0.3.0 (2024-12-16)
⚠ BREAKING CHANGES
- Now the verify impls from groth16/plonk circom return an error indicating whether it was a success or not
Bug Fixes
- added a check during groth16 prover for public inputs (76466eb)
- default maybe_shared_inputs field while deserializing (#276) (b029f37)
Code Refactoring
- Removed ark_relations deps. Also changed verify impls to not return bool but a common error (b4f4bf1)
Dependencies
- The following workspace dependencies were updated
- dependencies
- circom-types bumped from 0.6.0 to 0.7.0
- mpc-core bumped from 0.6.0 to 0.7.0
- dependencies
co-builder: v0.2.0
0.2.0 (2024-12-16)
⚠ BREAKING CHANGES
- removed acvm in trait names of solver
- Align to upstream bb behavior of calculating the grand product argument only over the relevant trace size, which leads to a different proof being output.
- Bump Noir to v0.38.0, implement range checks, and allow nargo-asserts
Features
- Add process ROM gate stuff for co-noir and some fixes (9f0a9fa)
- Bump Noir to v0.38.0, implement range checks, and allow nargo-asserts (d1a5d83)
- Bump versions to Nargo v0.39.0 and Barretenberg v0.63.1 (#275) (db255e6)
- implement tool to compare output of upstream BB with our implementation (8af8540)
Code Refactoring
- removed acvm in trait names of solver (6d07de3)
Dependencies
- The following workspace dependencies were updated
- dependencies
- co-acvm bumped from 0.3.0 to 0.4.0
- mpc-core bumped from 0.6.0 to 0.7.0
- dependencies