From cee72d8b4d18c952c8630ea44fecf10f589a97cb Mon Sep 17 00:00:00 2001 From: taceo-bot Date: Tue, 26 Nov 2024 13:15:27 +0100 Subject: [PATCH] chore: release main --- .release-please-manifest.json | 30 +++++------ co-circom/circom-mpc-compiler/CHANGELOG.md | 8 +++ co-circom/circom-mpc-compiler/Cargo.toml | 10 ++-- co-circom/circom-mpc-vm/CHANGELOG.md | 16 ++++++ co-circom/circom-mpc-vm/Cargo.toml | 6 +-- co-circom/circom-types/CHANGELOG.md | 11 ++++ co-circom/circom-types/Cargo.toml | 2 +- co-circom/co-circom-snarks/CHANGELOG.md | 15 ++++++ co-circom/co-circom-snarks/Cargo.toml | 6 +-- co-circom/co-circom/CHANGELOG.md | 55 ++++++++++++++++++++ co-circom/co-circom/Cargo.toml | 16 +++--- co-circom/co-groth16/CHANGELOG.md | 34 +++++++++++++ co-circom/co-groth16/Cargo.toml | 8 +-- co-circom/co-plonk/CHANGELOG.md | 29 +++++++++++ co-circom/co-plonk/Cargo.toml | 8 +-- co-noir/co-acvm/CHANGELOG.md | 59 ++++++++++++++++++++++ co-noir/co-acvm/Cargo.toml | 4 +- co-noir/co-brillig/CHANGELOG.md | 40 +++++++++++++++ co-noir/co-brillig/Cargo.toml | 2 +- co-noir/co-builder/CHANGELOG.md | 23 +++++++++ co-noir/co-builder/Cargo.toml | 6 +-- co-noir/co-noir/CHANGELOG.md | 55 ++++++++++++++++++++ co-noir/co-noir/Cargo.toml | 8 +-- co-noir/co-ultrahonk/CHANGELOG.md | 25 +++++++++ co-noir/co-ultrahonk/Cargo.toml | 10 ++-- co-noir/ultrahonk/CHANGELOG.md | 52 +++++++++++++++++++ co-noir/ultrahonk/Cargo.toml | 4 +- mpc-core/CHANGELOG.md | 28 ++++++++++ mpc-core/Cargo.toml | 2 +- tests/Cargo.toml | 20 ++++---- 30 files changed, 521 insertions(+), 71 deletions(-) create mode 100644 co-noir/co-brillig/CHANGELOG.md diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 5f6d35a68..c621957ac 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,18 +1,18 @@ { - "co-circom/circom-mpc-compiler": "0.7.0", - "co-circom/circom-mpc-vm": "0.5.0", - "co-circom/circom-types": "0.6.0", - "co-circom/co-circom-snarks": "0.2.0", - "co-circom/co-circom": "0.6.0", - "co-circom/co-groth16": "0.6.0", - "co-circom/co-plonk": "0.4.0", - "co-noir/co-acvm": "0.3.0", - "co-noir/co-builder": "0.1.0", - "co-noir/co-brillig": "0.0.1", - "co-noir/co-noir": "0.3.0", - "co-noir/co-ultrahonk": "0.2.0", - "co-noir/ultrahonk": "0.2.0", - "mpc-core": "0.6.0", + "co-circom/circom-mpc-compiler": "0.7.1", + "co-circom/circom-mpc-vm": "0.6.0", + "co-circom/circom-types": "0.7.0", + "co-circom/co-circom-snarks": "0.2.1", + "co-circom/co-circom": "0.7.0", + "co-circom/co-groth16": "0.7.0", + "co-circom/co-plonk": "0.5.0", + "co-noir/co-acvm": "0.4.0", + "co-noir/co-builder": "0.2.0", + "co-noir/co-brillig": "0.1.0", + "co-noir/co-noir": "0.4.0", + "co-noir/co-ultrahonk": "0.3.0", + "co-noir/ultrahonk": "0.3.0", + "mpc-core": "0.7.0", "mpc-net": "0.2.0", - "tests": "0.1.8" + "tests": "0.1.9" } diff --git a/co-circom/circom-mpc-compiler/CHANGELOG.md b/co-circom/circom-mpc-compiler/CHANGELOG.md index 2a22278f2..0ccc4a606 100644 --- a/co-circom/circom-mpc-compiler/CHANGELOG.md +++ b/co-circom/circom-mpc-compiler/CHANGELOG.md @@ -7,6 +7,14 @@ * co-groth16 bumped from 0.5.0 to 0.5.1 * mpc-core bumped from 0.4.0 to 0.5.0 +* The following workspace dependencies were updated + * dependencies + * circom-types bumped from 0.6.0 to 0.7.0 + * circom-mpc-vm bumped from 0.5.0 to 0.6.0 + * dev-dependencies + * co-groth16 bumped from 0.6.0 to 0.7.0 + * mpc-core bumped from 0.6.0 to 0.7.0 + ## [0.7.0](https://github.com/TaceoLabs/co-snarks/compare/circom-mpc-compiler-v0.6.1...circom-mpc-compiler-v0.7.0) (2024-11-12) diff --git a/co-circom/circom-mpc-compiler/Cargo.toml b/co-circom/circom-mpc-compiler/Cargo.toml index d1a32b69d..1f429b3c6 100644 --- a/co-circom/circom-mpc-compiler/Cargo.toml +++ b/co-circom/circom-mpc-compiler/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "circom-mpc-compiler" -version = "0.7.0" +version = "0.7.1" edition.workspace = true rust-version.workspace = true authors.workspace = true @@ -17,8 +17,8 @@ circom-type_analysis = { version = "2.1.9", git = "https://github.com/TaceoLabs/ circom-constraint_generation = { version = "2.1.9", git = "https://github.com/TaceoLabs/circom", package = "constraint_generation", rev = "1cc17fb" } circom-parser = { version = "2.1.9", git = "https://github.com/TaceoLabs/circom", package = "parser", rev = "1cc17fb" } circom-compiler = { version = "2.1.9", git = "https://github.com/TaceoLabs/circom", package = "compiler", rev = "1cc17fb" } -circom-types = { version = "0.6.0", path = "../circom-types" } -circom-mpc-vm = { version = "0.5.0", path = "../circom-mpc-vm" } +circom-types = { version = "0.7.0", path = "../circom-types" } +circom-mpc-vm = { version = "0.6.0", path = "../circom-mpc-vm" } circom-program_structure = { version = "2.1.9", git = "https://github.com/TaceoLabs/circom", package = "program_structure", rev = "1cc17fb" } clap.workspace = true eyre.workspace = true @@ -29,6 +29,6 @@ tracing.workspace = true [dev-dependencies] ark-bn254.workspace = true -co-groth16 = { version = "0.6.0", path = "../co-groth16" } -mpc-core = { version = "0.6.0", path = "../../mpc-core" } +co-groth16 = { version = "0.7.0", path = "../co-groth16" } +mpc-core = { version = "0.7.0", path = "../../mpc-core" } tracing.workspace = true diff --git a/co-circom/circom-mpc-vm/CHANGELOG.md b/co-circom/circom-mpc-vm/CHANGELOG.md index 7363cce23..7922145e6 100644 --- a/co-circom/circom-mpc-vm/CHANGELOG.md +++ b/co-circom/circom-mpc-vm/CHANGELOG.md @@ -10,6 +10,22 @@ * co-circom-snarks bumped from 0.1.1 to 0.1.2 * mpc-core bumped from 0.4.0 to 0.5.0 +## [0.6.0](https://github.com/TaceoLabs/co-snarks/compare/circom-mpc-vm-v0.5.0...circom-mpc-vm-v0.6.0) (2024-11-26) + + +### Features + +* implement new accelerators for IsZero and AddBits ([bbccad1](https://github.com/TaceoLabs/co-snarks/commit/bbccad18e2382a8141286189c7c7349423788f85)) +* make the application of MPC accelerators configurable ([9f67c9a](https://github.com/TaceoLabs/co-snarks/commit/9f67c9accc4ca52c9c270ea48ca8bb28d724af5a)) + + +### Dependencies + +* The following workspace dependencies were updated + * dependencies + * co-circom-snarks bumped from 0.2.0 to 0.2.1 + * mpc-core bumped from 0.6.0 to 0.7.0 + ## [0.5.0](https://github.com/TaceoLabs/co-snarks/compare/circom-mpc-vm-v0.4.2...circom-mpc-vm-v0.5.0) (2024-11-12) diff --git a/co-circom/circom-mpc-vm/Cargo.toml b/co-circom/circom-mpc-vm/Cargo.toml index c0bcc0fd8..0b40eedf7 100644 --- a/co-circom/circom-mpc-vm/Cargo.toml +++ b/co-circom/circom-mpc-vm/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "circom-mpc-vm" -version = "0.5.0" +version = "0.6.0" edition.workspace = true rust-version.workspace = true authors.workspace = true @@ -16,10 +16,10 @@ ark-serialize.workspace = true bincode.workspace = true num-bigint.workspace = true num-traits.workspace = true -co-circom-snarks = { version = "0.2.0", path = "../co-circom-snarks" } +co-circom-snarks = { version = "0.2.1", path = "../co-circom-snarks" } eyre.workspace = true itertools.workspace = true -mpc-core = { version = "0.6.0", path = "../../mpc-core" } +mpc-core = { version = "0.7.0", path = "../../mpc-core" } mpc-net = { version = "0.2.0", path = "../../mpc-net" } serde.workspace = true tracing.workspace = true diff --git a/co-circom/circom-types/CHANGELOG.md b/co-circom/circom-types/CHANGELOG.md index 36725c424..20bf89192 100644 --- a/co-circom/circom-types/CHANGELOG.md +++ b/co-circom/circom-types/CHANGELOG.md @@ -1,5 +1,16 @@ # Changelog +## [0.7.0](https://github.com/TaceoLabs/co-snarks/compare/circom-types-v0.6.0...circom-types-v0.7.0) (2024-11-26) + + +### ⚠ BREAKING CHANGES + +* changed the traits for circom bridge. Also modified the from_reader impl for the two Zkeys + +### Features + +* now can specify whether we want curve checks during zkey deser ([e1c03f3](https://github.com/TaceoLabs/co-snarks/commit/e1c03f3ba979bface5ea79062d95ffc088fdfda0)) + ## [0.6.0](https://github.com/TaceoLabs/co-snarks/compare/circom-types-v0.5.0...circom-types-v0.6.0) (2024-11-12) diff --git a/co-circom/circom-types/Cargo.toml b/co-circom/circom-types/Cargo.toml index 02d50bb13..2e7ae48aa 100644 --- a/co-circom/circom-types/Cargo.toml +++ b/co-circom/circom-types/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "circom-types" -version = "0.6.0" +version = "0.7.0" publish.workspace = true authors.workspace = true edition.workspace = true diff --git a/co-circom/co-circom-snarks/CHANGELOG.md b/co-circom/co-circom-snarks/CHANGELOG.md index 508141fa8..14d78ea11 100644 --- a/co-circom/co-circom-snarks/CHANGELOG.md +++ b/co-circom/co-circom-snarks/CHANGELOG.md @@ -9,6 +9,21 @@ * dependencies * mpc-core bumped from 0.4.0 to 0.5.0 +## [0.2.1](https://github.com/TaceoLabs/co-snarks/compare/co-circom-snarks-v0.2.0...co-circom-snarks-v0.2.1) (2024-11-26) + + +### Bug Fixes + +* default maybe_shared_inputs field while deserializing ([#276](https://github.com/TaceoLabs/co-snarks/issues/276)) ([b029f37](https://github.com/TaceoLabs/co-snarks/commit/b029f3778cf3d0be7ef00c51dbcffbb59e61a305)) + + +### 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 + ## [0.2.0](https://github.com/TaceoLabs/co-snarks/compare/co-circom-snarks-v0.1.2...co-circom-snarks-v0.2.0) (2024-11-12) diff --git a/co-circom/co-circom-snarks/Cargo.toml b/co-circom/co-circom-snarks/Cargo.toml index 3a4e76f26..c67774f0f 100644 --- a/co-circom/co-circom-snarks/Cargo.toml +++ b/co-circom/co-circom-snarks/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "co-circom-snarks" -version = "0.2.0" +version = "0.2.1" publish.workspace = true authors.workspace = true edition.workspace = true @@ -15,9 +15,9 @@ rust-version.workspace = true [dependencies] ark-ff = { workspace = true } ark-serialize = { workspace = true } -circom-types = { version = "0.6.0", path = "../circom-types" } +circom-types = { version = "0.7.0", path = "../circom-types" } eyre = { workspace = true } -mpc-core = { version = "0.6.0", path = "../../mpc-core" } +mpc-core = { version = "0.7.0", path = "../../mpc-core" } num-traits = { workspace = true } rand = { workspace = true } serde = { workspace = true } diff --git a/co-circom/co-circom/CHANGELOG.md b/co-circom/co-circom/CHANGELOG.md index 14bd09e60..25c100204 100644 --- a/co-circom/co-circom/CHANGELOG.md +++ b/co-circom/co-circom/CHANGELOG.md @@ -9,6 +9,61 @@ * co-plonk bumped from 0.3.0 to 0.3.1 * mpc-core bumped from 0.4.0 to 0.5.0 +## [0.7.0](https://github.com/TaceoLabs/co-snarks/compare/co-circom-v0.6.0...co-circom-v0.7.0) (2024-11-26) + + +### ⚠ BREAKING CHANGES + +* 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](https://github.com/TaceoLabs/co-snarks/issues/260)) ([2c72231](https://github.com/TaceoLabs/co-snarks/commit/2c722317efee4b07fef92dcc7c6218033a25f04b)) +* Add the possibility to share co-circom inputs and witness in compressed form ([c3443e1](https://github.com/TaceoLabs/co-snarks/commit/c3443e1d6118f18c98c260b426307a16a2de9f76)) +* added run_and_get_network to CircomRep3VmWitnessExtension, changed run and run_with_flat back to consume self ([b362504](https://github.com/TaceoLabs/co-snarks/commit/b362504d8a5affa8a5e8eca3f214c04951ad5b50)) +* allow to set circom simplification level via CLI ([b0d64ba](https://github.com/TaceoLabs/co-snarks/commit/b0d64ba683c1dbab67102d31f1e1ab80108fb7d9)) +* can now parse bool inputs ([#236](https://github.com/TaceoLabs/co-snarks/issues/236)) ([d0147b6](https://github.com/TaceoLabs/co-snarks/commit/d0147b60810545d1a8796370b82c50eac1d7739d)) +* now can specify whether we want curve checks during zkey deser ([e1c03f3](https://github.com/TaceoLabs/co-snarks/commit/e1c03f3ba979bface5ea79062d95ffc088fdfda0)) +* num2bits accelerator working ([13cdf10](https://github.com/TaceoLabs/co-snarks/commit/13cdf100b79c642649d31501833ed182dd7e8b90)) + + +### Bug Fixes + +* fixed path in zkey benches ([#231](https://github.com/TaceoLabs/co-snarks/issues/231)) ([99ab2de](https://github.com/TaceoLabs/co-snarks/commit/99ab2de32db9b27ca219fd93d7f8f17ab9692984)) +* handle inputs that are >= mod in the same way as snarkjs ([76f701b](https://github.com/TaceoLabs/co-snarks/commit/76f701b63fc94e9643aefb3ded9670843a0e716f)) +* install rustls default crypto provider in our main binaries & examples ([#238](https://github.com/TaceoLabs/co-snarks/issues/238)) ([78757e4](https://github.com/TaceoLabs/co-snarks/commit/78757e46d8622360377d27c5d475d417bed95c5a)) + + +### Code Refactoring + +* input to compiler now takes PathBuf ([9f36774](https://github.com/TaceoLabs/co-snarks/commit/9f36774f0ff93c3c3abd28efae6599fc531bb1fb)) +* prove for circom now expect Arc<ZKey> ([c2ac465](https://github.com/TaceoLabs/co-snarks/commit/c2ac465ebf6f3a28b902d9f0489e3f57c0843d7f)) +* Refactor calls to other crates because of API changes ([6ed7c1a](https://github.com/TaceoLabs/co-snarks/commit/6ed7c1ad34e5dabd3ba1464cc805d5427d543f68)) +* split network config into two types ([dca1756](https://github.com/TaceoLabs/co-snarks/commit/dca175603a5d6a2f75ccd987cb0b19cc3d965b00)) +* with_network_config for ShamirGroth16 doesn't need zkey anymore ([2052d89](https://github.com/TaceoLabs/co-snarks/commit/2052d89cc4abb531702886daf70c47ee3b1ecf1a)) + + +### Dependencies + +* The following workspace dependencies were updated + * dependencies + * circom-mpc-compiler bumped from 0.7.0 to 0.7.1 + * 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.2.1 + * 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 + ## [0.6.0](https://github.com/TaceoLabs/co-snarks/compare/co-circom-v0.5.1...co-circom-v0.6.0) (2024-11-12) diff --git a/co-circom/co-circom/Cargo.toml b/co-circom/co-circom/Cargo.toml index a073ddc67..78aca305c 100644 --- a/co-circom/co-circom/Cargo.toml +++ b/co-circom/co-circom/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "co-circom" -version = "0.6.0" +version = "0.7.0" publish.workspace = true authors.workspace = true @@ -19,18 +19,18 @@ ark-ec.workspace = true ark-ff.workspace = true ark-serialize.workspace = true bincode.workspace = true -circom-mpc-compiler = { version = "0.7.0", path = "../circom-mpc-compiler" } -circom-mpc-vm = { version = "0.5.0", path = "../circom-mpc-vm" } -circom-types = { version = "0.6.0", path = "../circom-types" } +circom-mpc-compiler = { version = "0.7.1", path = "../circom-mpc-compiler" } +circom-mpc-vm = { version = "0.6.0", path = "../circom-mpc-vm" } +circom-types = { version = "0.7.0", path = "../circom-types" } clap.workspace = true -co-circom-snarks = { version = "0.2.0", path = "../co-circom-snarks" } -co-groth16 = { version = "0.6.0", path = "../co-groth16", features = [ +co-circom-snarks = { version = "0.2.1", path = "../co-circom-snarks" } +co-groth16 = { version = "0.7.0", path = "../co-groth16", features = [ "verifier", ] } -co-plonk = { version = "0.4.0", path = "../co-plonk" } +co-plonk = { version = "0.5.0", path = "../co-plonk" } color-eyre.workspace = true figment.workspace = true -mpc-core = { version = "0.6.0", path = "../../mpc-core" } +mpc-core = { version = "0.7.0", path = "../../mpc-core" } mpc-net = { version = "0.2.0", path = "../../mpc-net" } num-bigint.workspace = true num-traits.workspace = true diff --git a/co-circom/co-groth16/CHANGELOG.md b/co-circom/co-groth16/CHANGELOG.md index 946e6f059..6741bcd46 100644 --- a/co-circom/co-groth16/CHANGELOG.md +++ b/co-circom/co-groth16/CHANGELOG.md @@ -11,6 +11,40 @@ * co-circom-snarks bumped from 0.1.1 to 0.1.2 * mpc-core bumped from 0.4.0 to 0.5.0 +## [0.7.0](https://github.com/TaceoLabs/co-snarks/compare/co-groth16-v0.6.0...co-groth16-v0.7.0) (2024-11-26) + + +### ⚠ BREAKING CHANGES + +* 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](https://github.com/TaceoLabs/co-snarks/commit/b365fcd89390dad585933f39a2db32473081d060)) +* now can specify whether we want curve checks during zkey deser ([e1c03f3](https://github.com/TaceoLabs/co-snarks/commit/e1c03f3ba979bface5ea79062d95ffc088fdfda0)) +* prepare functions for compressed rep3 sharing ([55bef10](https://github.com/TaceoLabs/co-snarks/commit/55bef10313378e8ca14f2f22f312c84462a92a7e)) +* refactors all according to MPC-core + Rayon ([44a5d2d](https://github.com/TaceoLabs/co-snarks/commit/44a5d2d4f1e406331f127cd89de369a66d41b105)) + + +### Code Refactoring + +* make pointshare in Groth16 MPC trait generic over the curve ([dc5acd2](https://github.com/TaceoLabs/co-snarks/commit/dc5acd28db03920982de623f51dd4df236ff7381)) +* prove for circom now expect Arc<ZKey> ([c2ac465](https://github.com/TaceoLabs/co-snarks/commit/c2ac465ebf6f3a28b902d9f0489e3f57c0843d7f)) +* with_network_config for ShamirGroth16 doesn't need zkey anymore ([2052d89](https://github.com/TaceoLabs/co-snarks/commit/2052d89cc4abb531702886daf70c47ee3b1ecf1a)) + + +### 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.2.1 + * mpc-core bumped from 0.6.0 to 0.7.0 + ## [0.6.0](https://github.com/TaceoLabs/co-snarks/compare/co-groth16-v0.5.1...co-groth16-v0.6.0) (2024-11-12) diff --git a/co-circom/co-groth16/Cargo.toml b/co-circom/co-groth16/Cargo.toml index bbcb4e734..6ef8ba77f 100644 --- a/co-circom/co-groth16/Cargo.toml +++ b/co-circom/co-groth16/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "co-groth16" -version = "0.6.0" +version = "0.7.0" publish.workspace = true authors.workspace = true edition.workspace = true @@ -26,10 +26,10 @@ ark-groth16 = { version = "=0.4.0", default-features = false, features = [ ark-poly = { workspace = true } ark-relations = { workspace = true } ark-serialize = { workspace = true } -circom-types = { version = "0.6.0", path = "../circom-types" } -co-circom-snarks = { version = "0.2.0", path = "../co-circom-snarks" } +circom-types = { version = "0.7.0", path = "../circom-types" } +co-circom-snarks = { version = "0.2.1", path = "../co-circom-snarks" } eyre = { workspace = true } -mpc-core = { version = "0.6.0", path = "../../mpc-core" } +mpc-core = { version = "0.7.0", path = "../../mpc-core" } mpc-net = { version = "0.2.0", path = "../../mpc-net" } num-traits = { workspace = true } rand = { workspace = true } diff --git a/co-circom/co-plonk/CHANGELOG.md b/co-circom/co-plonk/CHANGELOG.md index 7d0e5690c..642af3dd6 100644 --- a/co-circom/co-plonk/CHANGELOG.md +++ b/co-circom/co-plonk/CHANGELOG.md @@ -5,6 +5,35 @@ * co-circom-snarks bumped from 0.1.1 to 0.1.2 * mpc-core bumped from 0.4.0 to 0.5.0 +## [0.5.0](https://github.com/TaceoLabs/co-snarks/compare/co-plonk-v0.4.0...co-plonk-v0.5.0) (2024-11-26) + + +### ⚠ BREAKING CHANGES + +* 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](https://github.com/TaceoLabs/co-snarks/commit/e1c03f3ba979bface5ea79062d95ffc088fdfda0)) +* prepare functions for compressed rep3 sharing ([55bef10](https://github.com/TaceoLabs/co-snarks/commit/55bef10313378e8ca14f2f22f312c84462a92a7e)) +* refactor to use new mpc-core ([43da344](https://github.com/TaceoLabs/co-snarks/commit/43da344be00f00a46849508cea1d279cf29a95b2)) + + +### Code Refactoring + +* prove for circom now expect Arc<ZKey> ([c2ac465](https://github.com/TaceoLabs/co-snarks/commit/c2ac465ebf6f3a28b902d9f0489e3f57c0843d7f)) + + +### 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.2.1 + * mpc-core bumped from 0.6.0 to 0.7.0 + ## [0.4.0](https://github.com/TaceoLabs/co-snarks/compare/co-plonk-v0.3.1...co-plonk-v0.4.0) (2024-11-12) diff --git a/co-circom/co-plonk/Cargo.toml b/co-circom/co-plonk/Cargo.toml index 2a01ef01b..f6589fea2 100644 --- a/co-circom/co-plonk/Cargo.toml +++ b/co-circom/co-plonk/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "co-plonk" -version = "0.4.0" +version = "0.5.0" publish.workspace = true authors.workspace = true edition.workspace = true @@ -16,12 +16,12 @@ ark-ec = { workspace = true } ark-ff = { workspace = true } ark-poly = { workspace = true } ark-serialize = { workspace = true } -circom-types = { version = "0.6.0", path = "../circom-types" } -co-circom-snarks = { version = "0.2.0", path = "../co-circom-snarks" } +circom-types = { version = "0.7.0", path = "../circom-types" } +co-circom-snarks = { version = "0.2.1", path = "../co-circom-snarks" } eyre = { workspace = true } itertools = { workspace = true } mpc-net = { version = "0.2.0", path = "../../mpc-net" } -mpc-core = { version = "0.6.0", path = "../../mpc-core" } +mpc-core = { version = "0.7.0", path = "../../mpc-core" } num-traits = { workspace = true } rand = { workspace = true } rayon = { workspace = true } diff --git a/co-noir/co-acvm/CHANGELOG.md b/co-noir/co-acvm/CHANGELOG.md index 33f6ea9eb..4a96fd09b 100644 --- a/co-noir/co-acvm/CHANGELOG.md +++ b/co-noir/co-acvm/CHANGELOG.md @@ -1,5 +1,64 @@ # Changelog +## [0.4.0](https://github.com/TaceoLabs/co-snarks/compare/co-acvm-v0.3.0...co-acvm-v0.4.0) (2024-11-26) + + +### ⚠ BREAKING CHANGES + +* Added docs for brillig. Also updated the trait to better match the functionallity +* added more impls to brillig trait +* modified traits for ACVM +* Moved MPC impl for NoirWitnessExtension to co-brillig. This is SubjectToChange! +* Bump Noir to v0.38.0, implement range checks, and allow nargo-asserts +* Use ACVMType in co-builder +* co-noir now stores shared inputs in a different format (`BTreeMap>` instead of `BTreeMap>`) +* Add merging inputs to co-noir binary ([#208](https://github.com/TaceoLabs/co-snarks/issues/208)) +* removed acvm_impl. now uses old driver for ACVM +* added mpc-core trait for Acvm witness extension. Therfore, we changed trait bounds for Rep3Protocol + +### Features + +* Add co-noir binary ([#201](https://github.com/TaceoLabs/co-snarks/issues/201)) ([3163aec](https://github.com/TaceoLabs/co-snarks/commit/3163aec0795dd7b357f532e4da9e232ea164f064)) +* Add merging inputs to co-noir binary ([#208](https://github.com/TaceoLabs/co-snarks/issues/208)) ([9365fdc](https://github.com/TaceoLabs/co-snarks/commit/9365fdc1d3111cb7d17873e14fe7b5ee4b7db4fe)) +* Added co-brillig crate and first impl ([94d5978](https://github.com/TaceoLabs/co-snarks/commit/94d5978454f8b9f1b278ef1d7ad42e58361b2c11)) +* added LUT provider stub and plain impl for MemOps ([3d2377f](https://github.com/TaceoLabs/co-snarks/commit/3d2377f073a7a6b1c4b88e1d752ebc3ef60724ed)) +* added more functionality for Brillig-VM, two tests working ([b9778a0](https://github.com/TaceoLabs/co-snarks/commit/b9778a0b1f346f7a3160456f06e71d4173a9d616)) +* added predicate handling in memory op ([220414f](https://github.com/TaceoLabs/co-snarks/commit/220414fbc1084658ffa73f0171a4c4493a97d7ca)) +* added rep3 implementation for AssertZeroOpCode ([8e51505](https://github.com/TaceoLabs/co-snarks/commit/8e515052539227cf44860390a8d6736f9e456c91)) +* added sanity checks for memopcodes ([6914611](https://github.com/TaceoLabs/co-snarks/commit/6914611ad5a7597e4785f8ef67ecfbf479f3dd7c)) +* added trivial LUT impl for Rep3. Also modified some code in MPC-core ([bcb4749](https://github.com/TaceoLabs/co-snarks/commit/bcb4749e168807f5f16ae80bd1aeaa6e1f9da157)) +* Bump Noir to v0.38.0, implement range checks, and allow nargo-asserts ([d1a5d83](https://github.com/TaceoLabs/co-snarks/commit/d1a5d83d4b17f1e1a5ad2ffcb6e2dba40733a0c9)) +* first plain unconstrained fn working ([56e1c80](https://github.com/TaceoLabs/co-snarks/commit/56e1c801e6d51c8e35f1f1b1b2b007d80f050999)) +* Make builder generic for both shares and plain, add shared proving key and start with MPC prover ([#193](https://github.com/TaceoLabs/co-snarks/issues/193)) ([e3559a0](https://github.com/TaceoLabs/co-snarks/commit/e3559a0a38a61b1de4b29ea9fa820066ed00ddc0)) +* noir witness extension works for our poseidon impl ([92800d3](https://github.com/TaceoLabs/co-snarks/commit/92800d3a272a22c080ffd9bb51bd9cbd6ac9b256)) +* predicate check for brillig, all tests working now ([64b88ce](https://github.com/TaceoLabs/co-snarks/commit/64b88cee4f6e437e8eb32f453410030231fab7c6)) +* some more opcodes and started bin int ops ([e99d9a4](https://github.com/TaceoLabs/co-snarks/commit/e99d9a4af52c84b0f54864c06218b2b23154df85)) +* squashed commit of co-noir ([b132afc](https://github.com/TaceoLabs/co-snarks/commit/b132afcadb96914cd85070f87d7aa03bf9f87bfd)) +* started witness extension Noir ([43e6535](https://github.com/TaceoLabs/co-snarks/commit/43e653545cd6e797becefbb76f7757dde43a5030)) + + +### Bug Fixes + +* Adapt co-noir binary to handle public noir inputs correctly ([#216](https://github.com/TaceoLabs/co-snarks/issues/216)) ([bed3996](https://github.com/TaceoLabs/co-snarks/commit/bed399621558ca5d2ee22e9bdaa42f14f66b74d9)) + + +### Documentation + +* Added docs for brillig. Also updated the trait to better match the functionallity ([a2df63a](https://github.com/TaceoLabs/co-snarks/commit/a2df63aa1048364e484bde31013a1c5bbe4a9da3)) + + +### Code Refactoring + +* removed acvm_impl. now uses old driver for ACVM ([d37c5bb](https://github.com/TaceoLabs/co-snarks/commit/d37c5bbd00e932a97d64a6e924b8c092b71f30d2)) +* Use ACVMType in co-builder ([e078c22](https://github.com/TaceoLabs/co-snarks/commit/e078c22e4d19580b4a0531c0ac4232e7dd9f3bae)) + + +### Dependencies + +* The following workspace dependencies were updated + * dependencies + * mpc-core bumped from 0.6.0 to 0.7.0 + ## [0.3.0](https://github.com/TaceoLabs/co-snarks/compare/co-acvm-v0.2.0...co-acvm-v0.3.0) (2024-11-12) diff --git a/co-noir/co-acvm/Cargo.toml b/co-noir/co-acvm/Cargo.toml index 7e689284e..756d02dde 100644 --- a/co-noir/co-acvm/Cargo.toml +++ b/co-noir/co-acvm/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "co-acvm" -version = "0.3.0" +version = "0.4.0" publish.workspace = true authors.workspace = true edition.workspace = true @@ -18,7 +18,7 @@ co-brillig= { version = "0.1.0", path = "../co-brillig" } eyre.workspace = true intmap.workspace = true itertools.workspace = true -mpc-core = { version = "0.6.0", path = "../../mpc-core" } +mpc-core = { version = "0.7.0", path = "../../mpc-core" } noirc-abi.workspace = true noirc-artifacts.workspace = true serde.workspace = true diff --git a/co-noir/co-brillig/CHANGELOG.md b/co-noir/co-brillig/CHANGELOG.md new file mode 100644 index 000000000..ca82cfb9c --- /dev/null +++ b/co-noir/co-brillig/CHANGELOG.md @@ -0,0 +1,40 @@ +# Changelog + +## [0.1.0](https://github.com/TaceoLabs/co-snarks/compare/co-brillig-v0.0.1...co-brillig-v0.1.0) (2024-11-26) + + +### ⚠ BREAKING CHANGES + +* Added docs for brillig. Also updated the trait to better match the functionallity +* Moved the brillig VM from lib to seperate module +* modified brillig driver trait +* added more impls to brillig trait +* modified traits for ACVM +* Moved MPC impl for NoirWitnessExtension to co-brillig. This is SubjectToChange! + +### Features + +* Added co-brillig crate and first impl ([94d5978](https://github.com/TaceoLabs/co-snarks/commit/94d5978454f8b9f1b278ef1d7ad42e58361b2c11)) +* added more functionality for Brillig-VM, two tests working ([b9778a0](https://github.com/TaceoLabs/co-snarks/commit/b9778a0b1f346f7a3160456f06e71d4173a9d616)) +* first plain unconstrained fn working ([56e1c80](https://github.com/TaceoLabs/co-snarks/commit/56e1c801e6d51c8e35f1f1b1b2b007d80f050999)) +* get_bytes test works with plain driver ([3f28bc5](https://github.com/TaceoLabs/co-snarks/commit/3f28bc576f13f700d6d9628968b00d4eaf6350f4)) +* predicate check for brillig, all tests working now ([64b88ce](https://github.com/TaceoLabs/co-snarks/commit/64b88cee4f6e437e8eb32f453410030231fab7c6)) +* some more opcodes and started bin int ops ([e99d9a4](https://github.com/TaceoLabs/co-snarks/commit/e99d9a4af52c84b0f54864c06218b2b23154df85)) +* start bin_field_ops and add more test vectors ([736a6bd](https://github.com/TaceoLabs/co-snarks/commit/736a6bde98836614416e7f7b1d45efc417e15b43)) + + +### Documentation + +* Added docs for brillig. Also updated the trait to better match the functionallity ([a2df63a](https://github.com/TaceoLabs/co-snarks/commit/a2df63aa1048364e484bde31013a1c5bbe4a9da3)) + + +### Code Refactoring + +* Moved the brillig VM from lib to seperate module ([36f241b](https://github.com/TaceoLabs/co-snarks/commit/36f241b46c6a973b3a43e24872e38da9605011fa)) + + +### Dependencies + +* The following workspace dependencies were updated + * dependencies + * mpc-core bumped from 0.6.0 to 0.7.0 diff --git a/co-noir/co-brillig/Cargo.toml b/co-noir/co-brillig/Cargo.toml index 8010b0065..e56116abc 100644 --- a/co-noir/co-brillig/Cargo.toml +++ b/co-noir/co-brillig/Cargo.toml @@ -18,7 +18,7 @@ brillig.workspace = true eyre.workspace = true intmap.workspace = true itertools.workspace = true -mpc-core = { version = "0.6.0", path = "../../mpc-core" } +mpc-core = { version = "0.7.0", path = "../../mpc-core" } noirc-abi.workspace = true noirc-artifacts.workspace = true num-bigint.workspace = true diff --git a/co-noir/co-builder/CHANGELOG.md b/co-noir/co-builder/CHANGELOG.md index 9bfc64965..1431e57bf 100644 --- a/co-noir/co-builder/CHANGELOG.md +++ b/co-noir/co-builder/CHANGELOG.md @@ -1,5 +1,28 @@ # Changelog +## [0.2.0](https://github.com/TaceoLabs/co-snarks/compare/co-builder-v0.1.0...co-builder-v0.2.0) (2024-11-26) + + +### ⚠ 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](https://github.com/TaceoLabs/co-snarks/commit/9f0a9fa905684afc9eaeee4ce6f2e7b0ce5e6769)) +* Bump Noir to v0.38.0, implement range checks, and allow nargo-asserts ([d1a5d83](https://github.com/TaceoLabs/co-snarks/commit/d1a5d83d4b17f1e1a5ad2ffcb6e2dba40733a0c9)) +* Bump versions to Nargo v0.39.0 and Barretenberg v0.63.1 ([#275](https://github.com/TaceoLabs/co-snarks/issues/275)) ([db255e6](https://github.com/TaceoLabs/co-snarks/commit/db255e63ef8ea64176b86f7c258c4f7a1bec7160)) +* implement tool to compare output of upstream BB with our implementation ([8af8540](https://github.com/TaceoLabs/co-snarks/commit/8af8540e40749f61aa7a6a08be05a2e836467948)) + + +### 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 + ## [0.1.0](https://github.com/TaceoLabs/co-snarks/compare/co-builder-v0.0.1...co-builder-v0.1.0) (2024-11-12) diff --git a/co-noir/co-builder/Cargo.toml b/co-noir/co-builder/Cargo.toml index abf87d483..a613ec646 100644 --- a/co-noir/co-builder/Cargo.toml +++ b/co-noir/co-builder/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "co-builder" -version = "0.1.0" +version = "0.2.0" publish.workspace = true authors.workspace = true edition.workspace = true @@ -16,8 +16,8 @@ ark-ec.workspace = true ark-ff.workspace = true ark-poly.workspace = true ark-serialize.workspace = true -co-acvm = { version = "0.3.0", path = "../co-acvm" } -mpc-core = { version = "0.6.0", path = "../../mpc-core" } +co-acvm = { version = "0.4.0", path = "../co-acvm" } +mpc-core = { version = "0.7.0", path = "../../mpc-core" } eyre.workspace = true itertools.workspace = true num-bigint.workspace = true diff --git a/co-noir/co-noir/CHANGELOG.md b/co-noir/co-noir/CHANGELOG.md index 3a69ae5b2..e01a83e68 100644 --- a/co-noir/co-noir/CHANGELOG.md +++ b/co-noir/co-noir/CHANGELOG.md @@ -1,5 +1,60 @@ # Changelog +## [0.4.0](https://github.com/TaceoLabs/co-snarks/compare/co-noir-v0.3.0...co-noir-v0.4.0) (2024-11-26) + + +### ⚠ 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>` instead of `BTreeMap>`) +* 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](https://github.com/TaceoLabs/co-snarks/issues/208)) + +### Features + +* Add co-noir binary ([#201](https://github.com/TaceoLabs/co-snarks/issues/201)) ([3163aec](https://github.com/TaceoLabs/co-snarks/commit/3163aec0795dd7b357f532e4da9e232ea164f064)) +* Add merging inputs to co-noir binary ([#208](https://github.com/TaceoLabs/co-snarks/issues/208)) ([9365fdc](https://github.com/TaceoLabs/co-snarks/commit/9365fdc1d3111cb7d17873e14fe7b5ee4b7db4fe)) +* Add more commands to co-noir binary to prepare for cases where ([268ebe9](https://github.com/TaceoLabs/co-snarks/commit/268ebe9f243146cc6ea251e6b8fdef28cc8ca035)) +* Add process ROM gate stuff for co-noir and some fixes ([9f0a9fa](https://github.com/TaceoLabs/co-snarks/commit/9f0a9fa905684afc9eaeee4ce6f2e7b0ce5e6769)) +* Add Verifying key serialization and add verification to co-noir binary ([#202](https://github.com/TaceoLabs/co-snarks/issues/202)) ([3467425](https://github.com/TaceoLabs/co-snarks/commit/34674255f764f8df1f862d600ebba46314566233)) +* Bump Noir to v0.38.0, implement range checks, and allow nargo-asserts ([d1a5d83](https://github.com/TaceoLabs/co-snarks/commit/d1a5d83d4b17f1e1a5ad2ffcb6e2dba40733a0c9)) +* Bump versions to Nargo v0.39.0 and Barretenberg v0.63.1 ([#275](https://github.com/TaceoLabs/co-snarks/issues/275)) ([db255e6](https://github.com/TaceoLabs/co-snarks/commit/db255e63ef8ea64176b86f7c258c4f7a1bec7160)) +* Do not use the builder in co-noir split witness ([d304986](https://github.com/TaceoLabs/co-snarks/commit/d304986495f4f6f94db60d4ad15e5f4cd29c0e32)) +* implement tool to compare output of upstream BB with our implementation ([8af8540](https://github.com/TaceoLabs/co-snarks/commit/8af8540e40749f61aa7a6a08be05a2e836467948)) +* Replace a panic from the ultracircuitbuilder with an Error ([#217](https://github.com/TaceoLabs/co-snarks/issues/217)) ([5d9c870](https://github.com/TaceoLabs/co-snarks/commit/5d9c8703525e90ee3d9215006df527ad6a6ae777)) +* squashed commit of co-noir ([b132afc](https://github.com/TaceoLabs/co-snarks/commit/b132afcadb96914cd85070f87d7aa03bf9f87bfd)) +* Update UltraHonk to BB v0.62.0, required to replace zeromorph with shplemini ([#251](https://github.com/TaceoLabs/co-snarks/issues/251)) ([f35cdd4](https://github.com/TaceoLabs/co-snarks/commit/f35cdd490f8a3daa8bb44f6aa502f42147efb4b6)) +* Upgrade UltraHonk to be compatible with Barretenberg v0.55.1 ([#211](https://github.com/TaceoLabs/co-snarks/issues/211)) ([f817d76](https://github.com/TaceoLabs/co-snarks/commit/f817d768760ffbbf6b58489562aed5327567c561)) + + +### Bug Fixes + +* Adapt co-noir binary to handle public noir inputs correctly ([#216](https://github.com/TaceoLabs/co-snarks/issues/216)) ([bed3996](https://github.com/TaceoLabs/co-snarks/commit/bed399621558ca5d2ee22e9bdaa42f14f66b74d9)) +* install rustls default crypto provider in our main binaries & examples ([#238](https://github.com/TaceoLabs/co-snarks/issues/238)) ([78757e4](https://github.com/TaceoLabs/co-snarks/commit/78757e46d8622360377d27c5d475d417bed95c5a)) +* simplify path handling in co-noir binary ([26fae55](https://github.com/TaceoLabs/co-snarks/commit/26fae552badf72f8105ce0736e594d2398f1aca5)) + + +### Code Refactoring + +* co-noir adapted to ACVMType instead of sharedbuildervariable ([e6518a7](https://github.com/TaceoLabs/co-snarks/commit/e6518a7eb1bf6d5440b9dba815ae3342d93a4d4f)) +* split network config into two types ([dca1756](https://github.com/TaceoLabs/co-snarks/commit/dca175603a5d6a2f75ccd987cb0b19cc3d965b00)) +* Use ACVMType in co-builder ([e078c22](https://github.com/TaceoLabs/co-snarks/commit/e078c22e4d19580b4a0531c0ac4232e7dd9f3bae)) + + +### 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 + ## [0.3.0](https://github.com/TaceoLabs/co-snarks/compare/co-noir-v0.2.0...co-noir-v0.3.0) (2024-11-12) diff --git a/co-noir/co-noir/Cargo.toml b/co-noir/co-noir/Cargo.toml index 2a2683369..741d485c2 100644 --- a/co-noir/co-noir/Cargo.toml +++ b/co-noir/co-noir/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "co-noir" -version = "0.3.0" +version = "0.4.0" publish.workspace = true authors.workspace = true @@ -19,11 +19,11 @@ ark-ec.workspace = true ark-ff.workspace = true bincode.workspace = true clap.workspace = true -co-acvm = { version = "0.3.0", path = "../co-acvm" } -co-ultrahonk = { version = "0.2.0", path = "../co-ultrahonk" } +co-acvm = { version = "0.4.0", path = "../co-acvm" } +co-ultrahonk = { version = "0.3.0", path = "../co-ultrahonk" } color-eyre.workspace = true figment.workspace = true -mpc-core = { version = "0.6.0", path = "../../mpc-core" } +mpc-core = { version = "0.7.0", path = "../../mpc-core" } mpc-net = { version = "0.2.0", path = "../../mpc-net" } noirc-abi.workspace = true rand.workspace = true diff --git a/co-noir/co-ultrahonk/CHANGELOG.md b/co-noir/co-ultrahonk/CHANGELOG.md index fe233180e..432cd3cc2 100644 --- a/co-noir/co-ultrahonk/CHANGELOG.md +++ b/co-noir/co-ultrahonk/CHANGELOG.md @@ -1,5 +1,30 @@ # Changelog +## [0.3.0](https://github.com/TaceoLabs/co-snarks/compare/co-ultrahonk-v0.2.0...co-ultrahonk-v0.3.0) (2024-11-26) + + +### ⚠ 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](https://github.com/TaceoLabs/co-snarks/commit/9f0a9fa905684afc9eaeee4ce6f2e7b0ce5e6769)) +* Bump Noir to v0.38.0, implement range checks, and allow nargo-asserts ([d1a5d83](https://github.com/TaceoLabs/co-snarks/commit/d1a5d83d4b17f1e1a5ad2ffcb6e2dba40733a0c9)) +* Bump versions to Nargo v0.39.0 and Barretenberg v0.63.1 ([#275](https://github.com/TaceoLabs/co-snarks/issues/275)) ([db255e6](https://github.com/TaceoLabs/co-snarks/commit/db255e63ef8ea64176b86f7c258c4f7a1bec7160)) +* implement tool to compare output of upstream BB with our implementation ([8af8540](https://github.com/TaceoLabs/co-snarks/commit/8af8540e40749f61aa7a6a08be05a2e836467948)) + + +### 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 + ## [0.2.0](https://github.com/TaceoLabs/co-snarks/compare/co-ultrahonk-v0.1.0...co-ultrahonk-v0.2.0) (2024-11-12) diff --git a/co-noir/co-ultrahonk/Cargo.toml b/co-noir/co-ultrahonk/Cargo.toml index 1e515e012..d337a1bdb 100644 --- a/co-noir/co-ultrahonk/Cargo.toml +++ b/co-noir/co-ultrahonk/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "co-ultrahonk" -version = "0.2.0" +version = "0.3.0" publish.workspace = true authors.workspace = true edition.workspace = true @@ -15,15 +15,15 @@ ark-ff.workspace = true ark-bn254.workspace = true ark-serialize.workspace = true ark-poly.workspace = true -co-acvm = { version = "0.3.0", path = "../co-acvm" } -co-builder = { version = "0.1.0", path = "../co-builder" } +co-acvm = { version = "0.4.0", path = "../co-acvm" } +co-builder = { version = "0.2.0", path = "../co-builder" } eyre.workspace = true itertools.workspace = true -mpc-core = { version = "0.6.0", path = "../../mpc-core" } +mpc-core = { version = "0.7.0", path = "../../mpc-core" } num-bigint.workspace = true num-traits.workspace = true tracing.workspace = true -ultrahonk = { version = "0.2.0", path = "../ultrahonk" } +ultrahonk = { version = "0.3.0", path = "../ultrahonk" } rand.workspace = true rayon.workspace = true serde.workspace = true diff --git a/co-noir/ultrahonk/CHANGELOG.md b/co-noir/ultrahonk/CHANGELOG.md index c52b8160d..055ce7be8 100644 --- a/co-noir/ultrahonk/CHANGELOG.md +++ b/co-noir/ultrahonk/CHANGELOG.md @@ -1,5 +1,57 @@ # Changelog +## [0.3.0](https://github.com/TaceoLabs/co-snarks/compare/ultrahonk-v0.2.0...ultrahonk-v0.3.0) (2024-11-26) + + +### ⚠ 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>` instead of `BTreeMap>`) +* 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](https://github.com/TaceoLabs/co-snarks/commit/929dd1d39f3048fd91ccab229e9ae8a500b92df6)) +* Add co-noir binary ([#201](https://github.com/TaceoLabs/co-snarks/issues/201)) ([3163aec](https://github.com/TaceoLabs/co-snarks/commit/3163aec0795dd7b357f532e4da9e232ea164f064)) +* Add co-oink prover ([#194](https://github.com/TaceoLabs/co-snarks/issues/194)) ([b5fbd85](https://github.com/TaceoLabs/co-snarks/commit/b5fbd85b32cdb01c8865777c2238e159fc9b2553)) +* Add co-zeromorph to co-ultrahonk ([#195](https://github.com/TaceoLabs/co-snarks/issues/195)) ([e7df56e](https://github.com/TaceoLabs/co-snarks/commit/e7df56e5af49938166e9ce4a2bbc49eaa8977acc)) +* Add first version of a (untested) UltraHonk prover ([9f2911f](https://github.com/TaceoLabs/co-snarks/commit/9f2911f61f10d40217145a6802ccaf577aa7995f)) +* Add MPC tests for co-ultrahonk ([#199](https://github.com/TaceoLabs/co-snarks/issues/199)) ([5a36ad5](https://github.com/TaceoLabs/co-snarks/commit/5a36ad5d5226cf25b8c8ffe377dd30efe6133725)) +* Add sumcheck prover (without relations) ([be44986](https://github.com/TaceoLabs/co-snarks/commit/be449861f4e1d9eda20dda28c5f6add4dfd54fea)) +* Add the sumcheck relations to the co-ultrahonk prover ([#198](https://github.com/TaceoLabs/co-snarks/issues/198)) ([846c4f0](https://github.com/TaceoLabs/co-snarks/commit/846c4f0342cc24b47947de17aec5e5cc99b4d90f)) +* Add Ultrahonk verifier ([5c5b5d8](https://github.com/TaceoLabs/co-snarks/commit/5c5b5d8d8eefe6478954ed912498a63bb1e532cb)) +* Add Verifying key serialization and add verification to co-noir binary ([#202](https://github.com/TaceoLabs/co-snarks/issues/202)) ([3467425](https://github.com/TaceoLabs/co-snarks/commit/34674255f764f8df1f862d600ebba46314566233)) +* Bump Noir to v0.38.0, implement range checks, and allow nargo-asserts ([d1a5d83](https://github.com/TaceoLabs/co-snarks/commit/d1a5d83d4b17f1e1a5ad2ffcb6e2dba40733a0c9)) +* Bump versions to Nargo v0.39.0 and Barretenberg v0.63.1 ([#275](https://github.com/TaceoLabs/co-snarks/issues/275)) ([db255e6](https://github.com/TaceoLabs/co-snarks/commit/db255e63ef8ea64176b86f7c258c4f7a1bec7160)) +* Make builder generic for both shares and plain, add shared proving key and start with MPC prover ([#193](https://github.com/TaceoLabs/co-snarks/issues/193)) ([e3559a0](https://github.com/TaceoLabs/co-snarks/commit/e3559a0a38a61b1de4b29ea9fa820066ed00ddc0)) +* Replace a panic from the ultracircuitbuilder with an Error ([#217](https://github.com/TaceoLabs/co-snarks/issues/217)) ([5d9c870](https://github.com/TaceoLabs/co-snarks/commit/5d9c8703525e90ee3d9215006df527ad6a6ae777)) +* skip creating unnecessary beta products ([118f2bf](https://github.com/TaceoLabs/co-snarks/commit/118f2bf30e97039e72138cf9bf2c63a1544e046a)) +* Update UltraHonk to BB v0.62.0, required to replace zeromorph with shplemini ([#251](https://github.com/TaceoLabs/co-snarks/issues/251)) ([f35cdd4](https://github.com/TaceoLabs/co-snarks/commit/f35cdd490f8a3daa8bb44f6aa502f42147efb4b6)) +* Upgrade UltraHonk to be compatible with Barretenberg v0.55.1 ([#211](https://github.com/TaceoLabs/co-snarks/issues/211)) ([f817d76](https://github.com/TaceoLabs/co-snarks/commit/f817d768760ffbbf6b58489562aed5327567c561)) + + +### Bug Fixes + +* Adapt co-noir binary to handle public noir inputs correctly ([#216](https://github.com/TaceoLabs/co-snarks/issues/216)) ([bed3996](https://github.com/TaceoLabs/co-snarks/commit/bed399621558ca5d2ee22e9bdaa42f14f66b74d9)) +* clippy ([e43534a](https://github.com/TaceoLabs/co-snarks/commit/e43534aafefb4811bdf1f7fe1fa1493ab5c9152d)) +* Fix reading ultrahonk proof ([f16ef68](https://github.com/TaceoLabs/co-snarks/commit/f16ef68663669f5406e1ef789fe8e3817fe27401)) +* simplify path handling in co-noir binary ([26fae55](https://github.com/TaceoLabs/co-snarks/commit/26fae552badf72f8105ce0736e594d2398f1aca5)) + + +### Code Refactoring + +* Move builder to new co-builder crate ([3cd8955](https://github.com/TaceoLabs/co-snarks/commit/3cd89551d9fd58fad994942aa9a9660737db19b8)) + + +### Dependencies + +* The following workspace dependencies were updated + * dependencies + * co-builder bumped from 0.1.0 to 0.2.0 + ## [0.2.0](https://github.com/TaceoLabs/co-snarks/compare/ultrahonk-v0.1.0...ultrahonk-v0.2.0) (2024-11-12) diff --git a/co-noir/ultrahonk/Cargo.toml b/co-noir/ultrahonk/Cargo.toml index 136d6d7aa..aa5a92bdd 100644 --- a/co-noir/ultrahonk/Cargo.toml +++ b/co-noir/ultrahonk/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ultrahonk" -version = "0.2.0" +version = "0.3.0" publish.workspace = true authors.workspace = true edition.workspace = true @@ -15,7 +15,7 @@ ark-bn254.workspace = true ark-ec.workspace = true ark-ff.workspace = true ark-serialize.workspace = true -co-builder = { version = "0.1.0", path = "../co-builder" } +co-builder = { version = "0.2.0", path = "../co-builder" } eyre.workspace = true itertools.workspace = true noirc-artifacts.workspace = true diff --git a/mpc-core/CHANGELOG.md b/mpc-core/CHANGELOG.md index 744e6b398..6fd455435 100644 --- a/mpc-core/CHANGELOG.md +++ b/mpc-core/CHANGELOG.md @@ -2,6 +2,34 @@ +## [0.7.0](https://github.com/TaceoLabs/co-snarks/compare/mpc-core-v0.6.0...mpc-core-v0.7.0) (2024-11-26) + + +### ⚠ BREAKING CHANGES + +* 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 + +* Add casts bestween different ring-shares, and cast between rings ([e680da6](https://github.com/TaceoLabs/co-snarks/commit/e680da667434a03721bd0da3a50fce2a1aa52d78)) +* Add remaing rep3 ring implementations. Untested so far ([b8c9a12](https://github.com/TaceoLabs/co-snarks/commit/b8c9a1296fff697c7afaa43cea452ad8e061e2c4)) +* Add tests for the REP3 ring implementation and fix minor bugs" ([ae3408a](https://github.com/TaceoLabs/co-snarks/commit/ae3408ab7d43ff1b40e31a846d0bda3c5edc5475)) +* Allow on-the-fly preprocessing for Shamir ([699ea14](https://github.com/TaceoLabs/co-snarks/commit/699ea14d7b0e4366e10c43c6c7e758755a8ba3be)) +* first plain unconstrained fn working ([56e1c80](https://github.com/TaceoLabs/co-snarks/commit/56e1c801e6d51c8e35f1f1b1b2b007d80f050999)) +* Start adding replicated secret sharing for rings ([f4dca00](https://github.com/TaceoLabs/co-snarks/commit/f4dca000f4c9e978c69af8684d69375d85641417)) + + +### Bug Fixes + +* Fix the GC for the ring-to-ring upcast ([b5bf8b1](https://github.com/TaceoLabs/co-snarks/commit/b5bf8b113fd493750766496f83e80fa643114317)) + + +### Documentation + +* Added docs for brillig. Also updated the trait to better match the functionallity ([a2df63a](https://github.com/TaceoLabs/co-snarks/commit/a2df63aa1048364e484bde31013a1c5bbe4a9da3)) + ## [0.6.0](https://github.com/TaceoLabs/co-snarks/compare/mpc-core-v0.5.0...mpc-core-v0.6.0) (2024-11-12) diff --git a/mpc-core/Cargo.toml b/mpc-core/Cargo.toml index 4481032e9..56571e4ae 100644 --- a/mpc-core/Cargo.toml +++ b/mpc-core/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "mpc-core" -version = "0.6.0" +version = "0.7.0" publish.workspace = true authors.workspace = true edition.workspace = true diff --git a/tests/Cargo.toml b/tests/Cargo.toml index 370fd3e4b..ca32f2e40 100644 --- a/tests/Cargo.toml +++ b/tests/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tests" -version = "0.1.8" +version = "0.1.9" edition = "2021" publish = false license = "GPL-3.0" # due to circom-mpc-compiler dep @@ -14,19 +14,19 @@ ark-ff = { workspace = true } ark-std = { workspace = true } ark-serialize = { workspace = true } bytes = { workspace = true } -circom-mpc-compiler = { version = "0.7.0", path = "../co-circom/circom-mpc-compiler" } -circom-mpc-vm = { version = "0.5.0", path = "../co-circom/circom-mpc-vm" } -circom-types = { version = "0.6.0", path = "../co-circom/circom-types" } -co-acvm = { version = "0.3.0", path = "../co-noir/co-acvm" } -co-circom-snarks = { version = "0.2.0", path = "../co-circom/co-circom-snarks" } -co-groth16 = { version = "0.6.0", path = "../co-circom/co-groth16", features = [ +circom-mpc-compiler = { version = "0.7.1", path = "../co-circom/circom-mpc-compiler" } +circom-mpc-vm = { version = "0.6.0", path = "../co-circom/circom-mpc-vm" } +circom-types = { version = "0.7.0", path = "../co-circom/circom-types" } +co-acvm = { version = "0.4.0", path = "../co-noir/co-acvm" } +co-circom-snarks = { version = "0.2.1", path = "../co-circom/co-circom-snarks" } +co-groth16 = { version = "0.7.0", path = "../co-circom/co-groth16", features = [ "verifier", ] } -co-plonk = { version = "0.4.0", path = "../co-circom/co-plonk" } -co-ultrahonk = { version = "0.2.0", path = "../co-noir/co-ultrahonk" } +co-plonk = { version = "0.5.0", path = "../co-circom/co-plonk" } +co-ultrahonk = { version = "0.3.0", path = "../co-noir/co-ultrahonk" } criterion = { workspace = true } itertools = { workspace = true } -mpc-core = { version = "0.6.0", path = "../mpc-core" } +mpc-core = { version = "0.7.0", path = "../mpc-core" } num-traits = { workspace = true } noirc-artifacts = { workspace = true } rand = { workspace = true }