All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Introduced a new type that unifies the Public Inputs
PublicInputValue
. #416 - Impl
padded_circuit_size
forVerifierKey
#351 - Impl a generic method that can verify Proofs of any
Circuit
. #396
- Removed previous implementations attached to
PublicInputValues
. #416 - Deprecated
anyhow
andthiserror
#343
- Store the sparse repr of the PI and positions in a
BTreeMap
#427 - Transcript Init and trim size are associated constants of the Circuit trait #351
Circuit
trait now only requirespadded_circuit_size
for trimming. #351- Remove
verify_proof
&build_pi
fromCircuit
. #396 - Updated the native errors to all originate from the same enum
- Implement
Clone
forPublicParameters
#383
- Upgrade canonical to v0.5 (#371)
- Upgrade dusk-bls12_381 to v0.6
- Upgrade dusk-jubjub to v0.8
- Heavy data structures from unchecked #332
- Refactored to/from_bytes criteria for some structs (#333)
- API breaking - Implement to/from unchecked bytes for public parameters (#332)
- To/From bytes impl for
PublicInput
.
- Changed
compute_permutation_poly
to simpler version.
- Changed
Proof
&ProofEvaluations
byte conversion fn signatures.
- Implemented
Canon
forProof
.
- dusk-jubjub update to
v0.5.0
with API renaming - dusk-bls12_381 update to
v0.3.0
with API renaming
canon
feature to manageCanon
derivations usage in ecc libs.
- dusk-jubjub update to
v0.4.0
- dusk-bls12_381 update to
v0.2.0
- dusk-bls12_381 update to
v0.1.5
- dusk-jubjub update to
v0.3.10
- Fixes #311 - big_mul and big_mul_gate documentation nit.
- Method to change the
trim_params_size
for theCircuit
trait.
Circuit
trait API & usability improvements (#313)
- Now
Circuit
inputs are set in the circuit structure asOption<T>
. - Make
PublicInput::value()
fn public. - Make pi_builder return
Result<T>
- Refactored examples for the
Circuit
trait impl according to the new changes.
- Removed
CircuitInputs
from the crate.
- Added
CircuitBuilder
trait and a example for it.
- Added
ProverKey
&Verifierkey
to the public API as exported types.
- Use
dusk-bls12_381 v0.1.4
. - Use
dusk-jubjub v0.3.8
.
- Add a
variable_base_scalar_mul
method using a variable base curve add gate.
ecc::scalar_mul
now named fixed_base_scalar_mul
Anyhow
&thiserror
for error handling support.- Serialisation methods for the crate public structures &
serde
support. - Add a
variable_base_scalar_mul
method using a variable base curve add gate.
failure
for error support since has been deprecated.
add_witness_to_circuit_description
requires now just to send aScalar
and returns a constant & constrained witnessVariable
.- Update
add_witness_to_circuit_description
fn sig (#282, #284) - dusk-jubjub version updated to 0.3.6
ecc::scalar_mul
now named fixed_base_scalar_mul
- Make public inputs vector publicly accessible.
- ECC Point from
ecc:scalar_mul
should have its attributes exposed.
- Changed
dusk-jubjub
version tov0.3.5
to fix Fr random gen.
- Changed
dusk-jubjub
version tov0.3.4
to update dhke generation.
- Method to create constrained witness values. @CPerezz
- Visibility of the
Proof::verify()
fn topub(crate)
. @CPerezz - Changed
dusk-jubjub
version tov0.3.3
sincev0.3.2
was yanked.
- Method to create constrained witness values. @CPerezz
- Visibility of the
Proof::verify()
fn topub(crate)
. @CPerezz
- Prover and Verifier abstraction @kevaundray
- Error handling and custom errors @CPerezz
- Add prelude file @CPerezz
- Add identity separation challenge to each identity. @kevaundray
- Decouple Prover and Verifier Key @kevaundray
- Remove Preprocessed circuit @kevaundray
- Implement ECC gate @kevaundray
- Add math-related docs @Bounce23
- Add identity separation challenge to each identity @kevaundray
- Widget splitting to modularize the codebase @kevaundray
- Bug in "front-end" assertions in logic_constraint gates @CPerezz
- Broken links in the docs @CPerezz
- Serde support for the time being.
- PLONK algorithm implementation.
- Example folders.
- Doc notes with kateX.
- KZG10 polynomial commitment scheme implementation.
- fft module with Polynomial ops implemented.
- Proof system module.