Skip to content

co-circom: 0.7.0

Latest
Compare
Choose a tag to compare
@dkales dkales released this 18 Dec 13:51
· 19 commits to main since this release
499e20a

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