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.
0.20.2 - 2024-11-14
- Lock msgpacker version to
0.4.3
0.20.0 - 2024-08-14
- Modify the prover to match the paper #831
- Modify the verifier to match the paper #831
- Rename some variables to match the paper #831
- Modify the parallelization to have a faster verifier #834
- Remove docs #819
- Remove unused
Evaluations
struct
0.19.2 - 2024-03-27
- Add
zeroize
as an optional dependency #818 - Add
zeroize
feature #818 - Add
Zeroize
trait implementation forWitness
behindzeroize
feature #818
0.19.1 - 2024-02-28
- Reduce hades constants count in circuit compression from 960 to 335 #813
- Add
Default
trait forWitness
#815
0.19.0 - 2024-01-03
- Fix inconsistency in gate ordering of arithmetic verifier key #797
- Fix leading coefficients might be zero #796
- Fix tests when default features are turned off by placing them behind the
alloc
feature
- Improve InvalidCircuitSize error #792
- Hide all modules except 'prelude' #782
- Turn
Composer
trait into a struct #802 - Rename
Arithmetization
toGate
#802 - Change internal module structure #805:
- Move compiler module to root
- Move prover and verifier modules under compiler
- Move compress module under composer
- Move constraint_system module under composer
- Move permutation module under composer
- Change API for circuit (de-)compression #804
- Remove
Builder
struct with introduction ofComposer
struct #802 - Remove example from README in favor of an actual example in the example directory that is behind the
alloc
feature #346
- Add example for circuit creation #346
0.18.0 - 2023-12-13
- dusk-bls12_381 -> 0.13
- dusk-jubjub -> 0.14
0.17.0 - 2023-11-1
- Update
criterion
dev-dependency to 0.5 - Fix clippy warnings #774
- Rename
composer::Polynomial
tocomposer::Arithmetization
- Rename
fft::{Polynomial as FftPolynomial}
tofft::Polynomial
0.16.0 - 2023-10-11
- Add
size
method to theCircuit
trait [#767] - Add
ff
dependency
- Remove
PublicParameters
from parameters for circuit compression [#767] - Remove
canonical
andcanonical_derive
dependency - Remove
canon
feature
- update
dusk-bls12_381
dependency to "0.12" - update
dusk-jubjub
dependency to "0.13"
0.15.0 - 2023-08-30
- Fix panic when creating proof for circuit with different circuit size #760
- Fix panic when testing in debug mode #763
- Remove 'setup' funcion from common test module #763
- Change range and logic component to be generic over the const
BIT_PAIRS
#763
0.14.1 - 2022-06-28
- Add
compress
to compiler #752
0.14.0 - 2022-04-06
- Add and restructure tests for
assert_equal_point
#725 - Add and restructure tests for
assert_equal_public_point
#727 - Add and restructure tests for
append_gate
#737 - Add and restructure tests for
assert_equal
andassert_equal_constant
#733 - Add and restructure tests for logic component #734
- Add and restructure tests for range component #735
- Add and restructure tests for boolean and select components #731
- Add tests for
gate_add
andgate_mul
#736 - Add and restructure tests for
component_decomposition
#738 - Add
Compile::compress
andCompile::decompress
#752
- Remove
bit_iterator
macro #632
- Fix negation of public input values when using
composer.append_public
#717 - Fix
assert_equal_point
method #720 - Fix negation of constant in
append_equal_constant
#728 - Fix negation of public point coordinates in
assert_equal_public_point
#728 - Fix
ProverKey::serialization_size
and number of coefficients in a constraint #743 - Fix range gate for
bit_num = 0
#746
0.13.1 - 2022-10-26
- Remove manual implementation of
CheckBytes
forArchivedProverKey
. This is necessary sincerkyv/validation
was required as a bound.
0.13.0 - 2022-10-19
- Add support for
rkyv-impl
underno_std
- Update
dusk-cdf
to 0.5 #709
0.12.0 - 2022-08-17
- Fix math latex rendering on docs.rs #567
- Update
dusk-bls12_381
to version0.11
- Update
dusk-jubjub
to version0.12
0.11.0 - 2022-06-15
- Add the blinding factors to provide Zero-Knowledge #650
- Add the
public inputs
into the transcript #676
- Update CHANGELOG issue links and release dates #688
- Change variable names for more consistency with the paper #631
- Change
append_constant
to accept generic input #672 - Change
variable
towitness
in permutation functions #681 - Change the
prover
and theverifier
so that it reflects the original Plonk implementation and not plonkup #684
0.10.0 - 2022-02-24
- 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 #665
0.9.2 - 2022-01-06
- Add
circuit::verify
toCircuit
module. #657
0.9.1 - 2022-01-05
0.9.0 - 2021-11-10
- 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 - 2021-09-17
- Add
From
extended point toPublicInputValue
#573
0.8.1 - 2021-06-07
- Remove
external_doc
andnightly
feature #536
0.8.0 - 2021-06-03
- 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 - Update
canonical
from0.5
to0.6
#494
- Remove trimming step from
Circuit::Verify_proof
#510
0.7.0 - 2021-04-06
- Implement
VerifierData
structure. #466
0.6.1 - 2021-03-12
- Change
PublicParameters::trim
visibility topub
. #460 - Change
StandardComposer::construct_dense_pi_vec
visibility topub
. #461
0.6.0 - 2021-03-11
- 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 - 2021-02-02
- Implement
Clone
forPublicParameters
#383
0.5.0 - 2021-01-27
- Upgrade canonical to v0.5 #371
- Upgrade dusk-bls12_381 to v0.6
- Upgrade dusk-jubjub to v0.8
0.4.0 - 2021-01-26
- 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 - 2020-12-17
- To/From bytes impl for
PublicInput
.
- Changed
compute_permutation_poly
to simpler version.
0.3.5 - 2020-11-25
- Changed
Proof
&ProofEvaluations
byte conversion fn signatures.
- Implemented
Canon
forProof
.
0.3.4 - 2020-11-02
- dusk-jubjub update to
v0.5.0
with API renaming - dusk-bls12_381 update to
v0.3.0
with API renaming
0.3.3 - 2020-11-02
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 - 2020-10-29
- 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 - 2020-10-05
- Method to change the
trim_params_size
for theCircuit
trait.
0.3.0 - 2020-10-05
Circuit
trait API & usability improvements #313
0.2.11 - 2020-09-29
- 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 - 2020-09-23
- Added
CircuitBuilder
trait and a example for it.
0.2.9 - 2020-09-11
- 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 - 2020-08-25
- 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 - 2020-08-13
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 - 2020-08-03
- Make public inputs vector publicly accessible.
0.2.5 - 2020-07-31
- ECC Point from
ecc:scalar_mul
should have its attributes exposed.
0.2.4 - 2020-07-29
- Changed
dusk-jubjub
version tov0.3.5
to fix Fr random gen.
0.2.3 - 2020-07-28
- Changed
dusk-jubjub
version tov0.3.4
to update dhke generation.
0.2.2 - 2020-07-25
- 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 - 2020-07-24 [yanked]
- Method to create constrained witness values. @CPerezz
- Visibility of the
Proof::verify()
fn topub(crate)
. @CPerezz
0.2.0 - 2020-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 - 2020-04-25
- PLONK algorithm implementation.
- Example folders.
- Doc notes with kateX.
- KZG10 polynomial commitment scheme implementation.
- fft module with Polynomial ops implemented.
- Proof system module.