Skip to content

Releases: TaceoLabs/co-snarks

ultrahonk: 0.2.0

12 Nov 15:37
Compare
Choose a tag to compare

0.2.0 (2024-11-12)

⚠ BREAKING CHANGES

  • 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> instead of BTreeMap<String, Rep3PrimeFieldShare>)
  • The produced proofs are now different due to new transcript handling in bb 0.55.1, and they are no longer backwards compatible.

Features

  • Replace a panic from the ultracircuitbuilder with an Error (#217) (5d9c870)
  • 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)

Code Refactoring

  • Move builder to new co-builder crate (3cd8955)

mpc-net: v0.2.0

12 Nov 15:21
3339a48
Compare
Choose a tag to compare

0.2.0 (2024-11-12)

⚠ BREAKING CHANGES

  • MpcNetworkHandler::establish now takes the config with already read certs and key.
  • Refactor to better handle new networking with forks

Bug Fixes

  • add gracefull shutdown ensure all data received from the quinn stack (a9cbcbf)
  • fixed read task breaking too early, caused error during proof gen (6a8e829)
  • install rustls default crypto provider in our main binaries & examples (#238) (78757e4)
  • now quinn server timeouts after 60 seconds (#256) (cbc5905)

Code Refactoring

  • Refactor to better handle new networking with forks (ce8fef9)
  • split network config into two types (dca1756)

mpc-core: v0.6.0

12 Nov 15:21
3339a48
Compare
Choose a tag to compare

0.6.0 (2024-11-12)

⚠ BREAKING CHANGES

  • serialization format of shared inputs has changed to allow for optional values used to indicate missing elements of an array
  • Use ACVMType in co-builder
  • Creating a Rep3Witnessextension now requires an additional argument, the A2B strategy
  • breaks all interfaces. Removed Rep3Protocol monster struct. Added IOContext and split rep3/shamir better. Removed duplicated code. Added naive LUT

Features

  • Add a garbled circuit based soritng algorithm (#252) (7d38334)
  • add a selector for choosing a2b and b2a implementations and expose (bf12246)
  • Add functionality to decompose a shared fieldelement with yao (3d7a37d)
  • Add Rep3 compatible garbled circuit implementations and conversion methods for a2y, y2a, b2y, y2b, a2y2b, and b2y2a. (#233) (12c8713)
  • add support for merging input arrays (#260) (2c72231)
  • added conversions a<->b (d1c806c)
  • added new rep3 impl (d9b8412)
  • added plain prover shorthand function (b365fcd)
  • bit_inject_many (4155f57)
  • make yao the default for a2b (b91e4ac)
  • optimize arithmetic::is_zero() to have less communication rounds (dc4152c)
  • optimize bit_inject and bit_inject many (7fb2fee)
  • Optimize shamir double randomnes generation using seeds (#214) (f6ad386)
  • prepare functions for compressed rep3 sharing (55bef10)
  • rewrite all mpc related functions (ed8fcb7)
  • unify the 3-party and n-party shamir double-randomness generation case (b4d4141)
  • Update UltraHonk to BB v0.62.0, required to replace zeromorph with shplemini (#251) (f35cdd4)

Bug Fixes

  • add gracefull shutdown ensure all data received from the quinn stack (a9cbcbf)
  • change shamir preprocessing time log to float (#249) (c4c6a73)
  • fix a bug in y2b, send the correct values around (564d498)
  • fixed read task breaking too early, caused error during proof gen (6a8e829)

Code Refactoring

  • Use ACVMType in co-builder (e078c22)

Dependencies

  • The following workspace dependencies were updated
    • dependencies
      • mpc-net bumped from 0.1.2 to 0.2.0

co-ultrahonk: v0.2.0

12 Nov 15:21
3339a48
Compare
Choose a tag to compare

0.2.0 (2024-11-12)

⚠ BREAKING CHANGES

  • Add more commands to co-noir binary to prepare for cases where
  • Use ACVMType in co-builder
  • Move builder to new co-builder crate
  • removed point G2 from ultra-honk prover
  • The interface of the UltraCircuitVariable trait has change. Thus, also ProvingKey::create() throws an error now.
  • 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 more commands to co-noir binary to prepare for cases where (268ebe9)
  • 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)

Code Refactoring

  • Move builder to new co-builder crate (3cd8955)
  • removed point G2 from ultra-honk prover (1840fb4)
  • Use ACVMType in co-builder (e078c22)

Dependencies

  • The following workspace dependencies were updated
    • dependencies
      • co-acvm bumped from 0.2.0 to 0.3.0
      • mpc-core bumped from 0.5.0 to 0.6.0
      • ultrahonk bumped from 0.1.0 to 0.2.0

co-plonk: 0.4.0

12 Nov 15:34
Compare
Choose a tag to compare

0.4.0 (2024-11-12)

⚠ BREAKING CHANGES

  • 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

  • prepare functions for compressed rep3 sharing (55bef10)
  • refactor to use new mpc-core (43da344)

Code Refactoring

  • prove for circom now expect Arc (c2ac465)

Dependencies

  • The following workspace dependencies were updated
    • dependencies
      • circom-types bumped from 0.5.0 to 0.6.0
      • co-circom-snarks bumped from 0.1.2 to 0.2.0
      • mpc-net bumped from 0.1.2 to 0.2.0
      • mpc-core bumped from 0.5.0 to 0.6.0

co-noir: 0.3.0

12 Nov 15:31
Compare
Choose a tag to compare

0.3.0 (2024-11-12)

⚠ BREAKING CHANGES

  • 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> instead of BTreeMap<String, Rep3PrimeFieldShare>)
  • 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 more commands to co-noir binary to prepare for cases where (268ebe9)
  • Do not use the builder in co-noir split witness (d304986)
  • 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)
  • install rustls default crypto provider in our main binaries & examples (#238) (78757e4)

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.2.0 to 0.3.0
      • co-ultrahonk bumped from 0.1.0 to 0.2.0
      • mpc-core bumped from 0.5.0 to 0.6.0
      • mpc-net bumped from 0.1.2 to 0.2.0

co-groth16: 0.6.0

12 Nov 15:29
Compare
Choose a tag to compare

0.6.0 (2024-11-12)

⚠ BREAKING CHANGES

  • 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)
  • prepare functions for compressed rep3 sharing (55bef10)
  • refactors all according to MPC-core + Rayon (44a5d2d)

Code Refactoring

  • make pointshare in Groth16 MPC trait generic over the curve (dc5acd2)
  • prove for circom now expect Arc (c2ac465)
  • with_network_config for ShamirGroth16 doesn't need zkey anymore (2052d89)

Dependencies

  • The following workspace dependencies were updated
    • dependencies
      • circom-types bumped from 0.5.0 to 0.6.0
      • co-circom-snarks bumped from 0.1.2 to 0.2.0
      • mpc-core bumped from 0.5.0 to 0.6.0
      • mpc-net bumped from 0.1.2 to 0.2.0

co-circom: 0.6.0

12 Nov 15:28
Compare
Choose a tag to compare

0.6.0 (2024-11-12)

⚠ BREAKING CHANGES

  • 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)
  • can now parse bool inputs (#236) (d0147b6)
  • num2bits accelerator working (13cdf10)

Bug Fixes

  • 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 (c2ac465)
  • Refactor calls to other crates because of API changes (6ed7c1a)
  • 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.6.1 to 0.7.0
      • circom-mpc-vm bumped from 0.4.2 to 0.5.0
      • circom-types bumped from 0.5.0 to 0.6.0
      • co-circom-snarks bumped from 0.1.2 to 0.2.0
      • co-groth16 bumped from 0.5.1 to 0.6.0
      • co-plonk bumped from 0.3.1 to 0.4.0
      • mpc-core bumped from 0.5.0 to 0.6.0
      • mpc-net bumped from 0.1.2 to 0.2.0

co-circom-snarks: v0.2.0

12 Nov 15:21
3339a48
Compare
Choose a tag to compare

0.2.0 (2024-11-12)

⚠ BREAKING CHANGES

  • serialization format of shared inputs has changed to allow for optional values used to indicate missing elements of an array
  • refactor API because of changes in other crates

Features

  • add support for merging input arrays (#260) (2c72231)
  • prepare functions for compressed rep3 sharing (55bef10)

Code Refactoring

  • refactor API because of changes in other crates (a58d8f1)

Dependencies

  • The following workspace dependencies were updated
    • dependencies
      • circom-types bumped from 0.5.0 to 0.6.0
      • mpc-core bumped from 0.5.0 to 0.6.0

co-builder: v0.1.0

12 Nov 15:21
3339a48
Compare
Choose a tag to compare

0.1.0 (2024-11-12)

⚠ BREAKING CHANGES

  • Add more commands to co-noir binary to prepare for cases where
  • Use ACVMType in co-builder
  • Move builder to new co-builder crate

Features

  • Add more commands to co-noir binary to prepare for cases where (268ebe9)

Code Refactoring

  • Move builder to new co-builder crate (3cd8955)
  • Use ACVMType in co-builder (e078c22)

Dependencies

  • The following workspace dependencies were updated
    • dependencies
      • co-acvm bumped from 0.2.0 to 0.3.0
      • mpc-core bumped from 0.5.0 to 0.6.0