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.
- Add the blinding factors to provide Zero-Knowledge #650
- Change variable names for more consistency with the paper #631
- Change
append_constant
to accept generic input #672
0.10.0 - 24-02-22
- Update canonical and canonical-derive to 0.7 #666
- Update dusk-bls12_381 to 0.9 #666
- Update jubjub to 0.11 #666
- Update rust edition to 2021 #667
0.9.2 - 06-01-22
- Add
circuit::verify
toCircuit
module. #656
0.9.1 - 05-01-22
0.9.0 - 10-11-21
- Add back benchmarks to the crate. #555
- Add
ProverKey::num_multiset
#581 - Add alloc feature for lookup Vec structs #582
- Add test coverage for polynomial evaluations #586
- Add
Witness
by removingAllocatedScalar
. #588 - Add missing dummy constraints in test #592
- Add codeconv config #594
- Add
Constraint
for circuit description. #608 - Add public unsafe
evaluate_witness()
to the composer #612
- Change
StandardComposer
toTurboComposer
. #288 - Change to use
From<JubJubScalar>
for BlsScalar #294 - Change unit tests as integration tests when possible #500
- Change to arrays some tuples in permutation module #562
- Change
poly_gate
to init lookup wire with zero #578 - Change
TurboComposer
to consistent API. #587 - Change
plonkup_gate
to use public inputs. #584 - Change coverage to use less compile flags. #605
- Change
Constraint
to accept witness args. #624
- Fix the document references and typos #533
- Fix if condition to match #545
- Fix
Prover::preprocess
circuit size for plookup #580 - Fix ignored tests by reincluding them #593
- Fix benches and make CI fail if they don't compile #610
- Fix several small nits and unnecessary operations #611
- Fix clippy reports #622
- Remove old perm-computation fns from perm module #515
- Remove unused
plonkup
module. #583 - Remove the re-export of jubjub and bls libs #558
- Remove
Plonkup3Arity
#589 - Remove windows from CI. #616
0.8.2 - 17-09-21
- Add
From
extended point toPublicInputValue
#573
0.8.1 - 07-06-21
- Remove
external_doc
andnightly
feature #536
0.8.0 - 03-05-21
- Add
alloc
feature to the crate #345 - Add
rayon
behindstd
feature to boost proving performance #512 - Add
rayon
behindstd
feature to boost verifying performance #514 - Add alternative getters for
OpeningKey
&CommitKey
inPublicParameters
#510
- Change
constraint_system/ecc
module API improving usability and consistency #456 - Change the crate to be
no_std
#350 - Replace
Commitment::from_projective
forFrom
trait impl [#433] (dusk-network#433) - Update
canonical
from0.5
to0.6
#494
- Remove trimming step from
Circuit::Verify_proof
#510
0.7.0 - 06-04-21
- Implement
VerifierData
structure. #466
0.6.1 - 12-03-21
- Change
PublicParameters::trim
visibility topub
. #460 - Change
StandardComposer::construct_dense_pi_vec
visibility topub
.#461
0.6.0 - 11-03-21
- Implement
dusk_bytes::Serializable
for all possible structures that need serde. #352 - 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
- Remove
Canon
impl forProof
. #450 - Remove serde support completely from the repo. #353
- Removed previous implementations attached to
PublicInputValues
. #416 - Deprecated
anyhow
andthiserror
. #343 - Remove
serialisation
module and use single serialization fn's. #347 - Remove uncessary
match
branch forvar_c
#414 - Remove legacy fns and move to test modules the only-for-testing ones. #434
- Constrained as much as possible the visibility of fns, structs and it's fields #438]
- 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
- Replace
collections::HashMap
byhashbrown::HashMap
. #424 Circuit
trait now only requirespadded_circuit_size
for trimming. #351- Remove
verify_proof
&build_pi
fromCircuit
. #396 - Update API naming conventions to be standard across the crate. #354
- Updated the native errors to all originate from the same enum. #343
0.5.1 - 02-02-21
- Implement
Clone
forPublicParameters
#383
0.5.0 - 27-01-21
- Upgrade canonical to v0.5 (#371)
- Upgrade dusk-bls12_381 to v0.6
- Upgrade dusk-jubjub to v0.8
0.4.0 - 26-01-21
- 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)
0.3.6 - 17-12-20
- To/From bytes impl for
PublicInput
.
- Changed
compute_permutation_poly
to simpler version.
0.3.5 - 25-11-20
- Changed
Proof
&ProofEvaluations
byte conversion fn signatures.
- Implemented
Canon
forProof
.
0.3.4 - 02-11-20
- dusk-jubjub update to
v0.5.0
with API renaming - dusk-bls12_381 update to
v0.3.0
with API renaming
0.3.3 - 02-11-20
canon
feature to manageCanon
derivations usage in ecc libs.
- dusk-jubjub update to
v0.4.0
- dusk-bls12_381 update to
v0.2.0
0.3.2 - 29-10-20
- 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.
0.3.1 - 05-10-20
- Method to change the
trim_params_size
for theCircuit
trait.
0.3.0 - 05-10-20
Circuit
trait API & usability improvements #313
0.2.11 - 29-09-20
- 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.
0.2.10 - 23-09-20
- Added
CircuitBuilder
trait and a example for it.
0.2.9 - 11-09-20
- Added
ProverKey
&VerifierKey
to the public API as exported types.
- Use
dusk-bls12_381 v0.1.4
. - Use
dusk-jubjub v0.3.8
.
0.2.8 - 25-08-20
- Add a
variable_base_scalar_mul
method using a variable base curve add gate.
ecc::scalar_mul
now named fixed_base_scalar_mul
0.2.7 - 13-08-20
Anyhow
&thiserror
for error handling support.- Serialization 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
0.2.6 - 03-08-20
- Make public inputs vector publicly accessible.
0.2.5 - 31-07-20
- ECC Point from
ecc:scalar_mul
should have its attributes exposed.
0.2.4 - 29-07-20
- Changed
dusk-jubjub
version tov0.3.5
to fix Fr random gen.
0.2.3 - 28-07-20
- Changed
dusk-jubjub
version tov0.3.4
to update dhke generation.
0.2.2 - 25-07-20
- 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.
0.2.1 - 24-07-20 [yanked]
- Method to create constrained witness values. @CPerezz
- Visibility of the
Proof::verify()
fn topub(crate)
. @CPerezz
0.2.0 - 20-07-20
- 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.
0.1.0 - 25-04-20
- PLONK algorithm implementation.
- Example folders.
- Doc notes with kateX.
- KZG10 polynomial commitment scheme implementation.
- fft module with Polynomial ops implemented.
- Proof system module.