Releases: HorizenOfficial/ginger-lib
Releases · HorizenOfficial/ginger-lib
0.6.1
0.6.0
- Removed hardcoded rust version
- Fix the assembler optimization (previous version works just on nightly)
- Remove the fixed dependencies version
- Fix the linear combination representation: previous version can have more than one element in the sparse matrix for the same cell: that can leads to different pk/vk across rust versions. In order to check the vk generate with an old version you should use the gingerlib version 0.5.0. The Olds pk/vk will continue to works with this version.
0.5.0
Import marlin and poly-commit repositories inside ginger-lib
Fixes from Audit
0.4.0
Imported new curves:
Support for nonnative arithmetic in circuits:
- #120 - Imported NonNativeFieldGadget from https://github.com/arkworks-rs/nonnative and built a NonNativeGroupAffineGadget on top of that;
- #143 - Review and partial refactoring of the nonnative module;
- #164 - Optimization of nonnative field gadget arithmetic for pseudo-mersenne prime fields
Circuit optimizations:
- #140 - Poseidon Hash Gadget implementation for Tweedle Fr minimizing densities
- #128 - Endomorphism-based scalar multiplication primitive and gadget
- Imported and generalized Hopwood's vbSM (#126) and fbSM (#129) from zcash/zcash#3924
New additions:
- #120 - Import sha256 gadget from https://github.com/zkcrypto/bellman/blob/main/src/gadgets/sha256.rs and implemented RIPEMD160 gadget
- #142 - Implementation of an in-memory Sparse Field-based Merkle Tree
0.3.1
Preparation for proof composition with Darlin:
- Introduced Tweedle curves;
- Base traits and structs necessary for proof carrying data;
- Coboundary Marlin prover/verifier as a wrapper for calls to our Marlin repository;
- Traits and verifiers for
GeneralPCD
, which embraces the two types of proofs that are served to the “outside” (Coboundary Marlin and Final Darlin proofs).
This includes a batch verifier. - Post-processor for batches of
GeneralPCD
s, aggregating their dlog hard parts into a single one.
Other relevant changes:
- Imported CanonicalSerialize/CanonicalDeserialize traits from upstream;
- Refactored Poseidon hash primitive and gadget to be more modular.
- Added Merkle tree and paths traits for primitive and gadgets, and an efficient in-memory append-only implementation.