Recent Releases of gnark-crypto

gnark-crypto - v0.19.0

What's Changed

  • updating link to GLV.pdf in whole repo by @kks-code in https://github.com/Consensys/gnark-crypto/pull/696
  • fix: fixes #697 by @ThomasPiellard in https://github.com/Consensys/gnark-crypto/pull/698
  • feat: set default size for state by @ThomasPiellard in https://github.com/Consensys/gnark-crypto/pull/700
  • fix: MerkleDamgardHasher IV by @Tabaie in https://github.com/Consensys/gnark-crypto/pull/701
  • fix: MerkleDamgardHasher.Sum by @Tabaie in https://github.com/Consensys/gnark-crypto/pull/699
  • perf: Legendre using Pornin20 by @Tabaie in https://github.com/Consensys/gnark-crypto/pull/704
  • perf: small scalarmul by @ivokub in https://github.com/Consensys/gnark-crypto/pull/703
  • perf: optimize Eisenstein arithmetic by @yelhousni in https://github.com/Consensys/gnark-crypto/pull/706
  • Feat: Subgroup membership testing on Bandersnatch by @yelhousni in https://github.com/Consensys/gnark-crypto/pull/708
  • Feat/iop koalabear by @ThomasPiellard in https://github.com/Consensys/gnark-crypto/pull/695
  • perf: Doubling and mixed doubling in Jacobians and ext. Jacobians by @yelhousni in https://github.com/Consensys/gnark-crypto/pull/716
  • fix: refactor asm code generation to avoid use of R15 with global memory accesses by @gbotrel in https://github.com/Consensys/gnark-crypto/pull/712
  • Refector: Add feed-forward step to CompressPoseidon2 function by @YaoJGalteland in https://github.com/Consensys/gnark-crypto/pull/721
  • CI: Upgrade linter by @Tabaie in https://github.com/Consensys/gnark-crypto/pull/726
  • CI: update linter for the "push to master" flow by @Tabaie in https://github.com/Consensys/gnark-crypto/pull/728

New Contributors

  • @kks-code made their first contribution in https://github.com/Consensys/gnark-crypto/pull/696

Full Changelog: https://github.com/Consensys/gnark-crypto/compare/v0.18.0...v0.19.0

- Go
Published by gbotrel 6 months ago

gnark-crypto - v0.18.0

What's Changed

  • perf: disable cobra bit reverse for small fields by @gbotrel in https://github.com/Consensys/gnark-crypto/pull/662
  • perf: adds avx512 poseidon2 for small fields by @gbotrel in https://github.com/Consensys/gnark-crypto/pull/665
  • GKR Gate Registry by @Tabaie in https://github.com/Consensys/gnark-crypto/pull/652
  • chore: remove unused benchmark script by @ivokub in https://github.com/Consensys/gnark-crypto/pull/675
  • Remove GKR from gnark-crypto by @Tabaie in https://github.com/Consensys/gnark-crypto/pull/670
  • feat: make <31 bit field generated using uint32 by @gbotrel in https://github.com/Consensys/gnark-crypto/pull/676
  • refactor: hash to curve by @ivokub in https://github.com/Consensys/gnark-crypto/pull/674
  • fix: Eisenstein Half-GCD convergence by @feltroidprime in https://github.com/Consensys/gnark-crypto/pull/680
  • feat/hashregistry by @Tabaie in https://github.com/Consensys/gnark-crypto/pull/687
  • Feat/fftext by @YaoJGalteland in https://github.com/Consensys/gnark-crypto/pull/684
  • Feat/vortex options by @ThomasPiellard in https://github.com/Consensys/gnark-crypto/pull/689
  • [secp256k1]: replace outdated link to article by @gap-editor in https://github.com/Consensys/gnark-crypto/pull/690
  • feat: remove dependency on internal package in ecc.go by @gbotrel in https://github.com/Consensys/gnark-crypto/pull/693

New Contributors

  • @feltroidprime made their first contribution in https://github.com/Consensys/gnark-crypto/pull/680
  • @YaoJGalteland made their first contribution in https://github.com/Consensys/gnark-crypto/pull/684
  • @gap-editor made their first contribution in https://github.com/Consensys/gnark-crypto/pull/690

Full Changelog: https://github.com/Consensys/gnark-crypto/compare/v0.17.0...v0.18.0

- Go
Published by gbotrel 8 months ago

gnark-crypto - v0.17.0

What's Changed

  • fix: missing Poseidon2 round keys by @Tabaie in https://github.com/Consensys/gnark-crypto/pull/621
  • feat: Poseidon2 Hash Instantiation for BLS12-377 by @Tabaie in https://github.com/Consensys/gnark-crypto/pull/623
  • feat: add Grumpkin elliptic curve (2-cycle with BN254) by @yelhousni in https://github.com/Consensys/gnark-crypto/pull/625
  • Perf: Poseidon2 GKR circuit by @Tabaie in https://github.com/Consensys/gnark-crypto/pull/628
  • feat: add sis avx512 and fft avx512 for koalabear by @gbotrel in https://github.com/Consensys/gnark-crypto/pull/622
  • InterpolateOnRange refactor by @Tabaie in https://github.com/Consensys/gnark-crypto/pull/634
  • chore: add auto close PR workflow by @gbotrel in https://github.com/Consensys/gnark-crypto/pull/638
  • perf: subgroup membership by @yelhousni in https://github.com/Consensys/gnark-crypto/pull/635
  • feat: poseidon2 for koala-bear, baby-bear and goldilocks by @yelhousni in https://github.com/Consensys/gnark-crypto/pull/629
  • chore: generify poseidon2 parameters for other curves/fr by @yelhousni in https://github.com/Consensys/gnark-crypto/pull/636
  • feat: baby-bear and koala-bear extensions of degree 4 by @yelhousni in https://github.com/Consensys/gnark-crypto/pull/643
  • fix: ensure fast path is taken only with fixed bound and degree by @gbotrel in https://github.com/Consensys/gnark-crypto/pull/651
  • Poseidon2 compression for small fields by @Tabaie in https://github.com/Consensys/gnark-crypto/pull/644
  • fix: poseidon2 templates by @yelhousni in https://github.com/Consensys/gnark-crypto/pull/648
  • test: improve NAF decomposition test coverage by @DeVikingMark in https://github.com/Consensys/gnark-crypto/pull/617
  • refactor: generate code for poseidon2_test by @yelhousni in https://github.com/Consensys/gnark-crypto/pull/660
  • test(bn254, bls12-381): test points intentionally not on sugroups G1/2 by @yelhousni in https://github.com/Consensys/gnark-crypto/pull/658
  • refactor: generify small fields extensions by @yelhousni in https://github.com/Consensys/gnark-crypto/pull/647

New Contributors

  • @DeVikingMark made their first contribution in https://github.com/Consensys/gnark-crypto/pull/617

Full Changelog: https://github.com/Consensys/gnark-crypto/compare/v0.16.0...v0.17.0

- Go
Published by gbotrel 11 months ago

gnark-crypto - v0.16.0

What's Changed

  • Perf: Parallelize subgroup checks in KZG MPC setup by @Tabaie in https://github.com/Consensys/gnark-crypto/pull/615
  • fix: fixes #619 help go mod vendor to include files by @gbotrel in https://github.com/Consensys/gnark-crypto/pull/620

Full Changelog: https://github.com/Consensys/gnark-crypto/compare/v0.15.0...v0.16.0

- Go
Published by gbotrel about 1 year ago

gnark-crypto - v0.15.0

What's Changed

Features

  • Eisenstein integers (#543).
  • Poseidon2 (#553).
  • BabyBear and KoalaBear fields: 31-bit vanilla Go implementation (#558, #577).
  • FFLonK (#498).
  • KZG MPC setup (#589).
  • Hash registry with state storer (#564).
  • Miller loop with direct sextic extension (BW6-761) (#608).

Performance Improvements

  • Add assembly implementations: Vector::Add, Sub, and ScalarMul (purego included) (#536).
  • AVX512 optimizations: vector.Sum, vector.InnerProduct + assembly refactor (#547).
  • AVX512 vector operations: KoalaBear and BabyBear fields (#568).
  • ARM64 assembly optimizations: 4 and 6 words modulus (#554).
  • ARM NEON assembly: KoalaBear and BabyBear fields (#588).
  • Subgroup check optimizations (#557).
  • SetBytes performance: Avoids allocations in non-fast paths (#599).

Fixes

  • Polynomial evaluation (#539).
  • Shplonk Buffer sizing (#551).
  • Typos (#562, #610).
  • Comment and variable naming fixes (#603).

Refactors

  • Removed curves: BLS12-378 and BW6-756 (#534).
  • SIS cleanup (#596).
  • Removed ECC Encoder dependency: FFT domain marshal (#565).
  • Cleaned IOP (#587).

Documentation

  • Updated README (#533).
  • Documented batchAddAffine function (#555).
  • Updated element package documentation (#572).
  • Less verbose Apache 2 header (#570).
  • Fixed non-generated headers (#571).
  • Changed copyright year to 2025 (#595).

Full Changelog: https://github.com/Consensys/gnark-crypto/compare/v0.14.0...v0.15.0

- Go
Published by gbotrel about 1 year ago

gnark-crypto - v0.14.0

What's Changed

  • refactor: correct comments by @yelhousni in https://github.com/Consensys/gnark-crypto/pull/511
  • Feat/pedersen batch verify by @Tabaie in https://github.com/Consensys/gnark-crypto/pull/517
  • build: update runner and go version by @gbotrel in https://github.com/Consensys/gnark-crypto/pull/531
  • perf: remove uneeded bucket init in affine coordinates fixes #529 by @gbotrel in https://github.com/Consensys/gnark-crypto/pull/530
  • feat: Pedersen vector commitment scheme multi VK verification by @ivokub in https://github.com/Consensys/gnark-crypto/pull/527
  • chore: fix some function names by @drawdrop in https://github.com/Consensys/gnark-crypto/pull/526
  • fix: fixes #522 with bound check before computing twiddles when domain has no precompute set by @gbotrel in https://github.com/Consensys/gnark-crypto/pull/523
  • refactor(bls12-381, bls12-377): MillerLoopFixed corresponds to gnark by @yelhousni in https://github.com/Consensys/gnark-crypto/pull/524

New Contributors

  • @drawdrop made their first contribution in https://github.com/Consensys/gnark-crypto/pull/526

Full Changelog: https://github.com/Consensys/gnark-crypto/compare/v0.13.0...v0.14.0

- Go
Published by gbotrel over 1 year ago

gnark-crypto - v0.13.0

What's Changed

  • perf, feat, refactor: improve some plonk primitives by @gbotrel in https://github.com/Consensys/gnark-crypto/pull/456
  • ci: update ci workflows by @gbotrel in https://github.com/Consensys/gnark-crypto/pull/460
  • Feat/kzg dummy srs by @ThomasPiellard in https://github.com/Consensys/gnark-crypto/pull/458
  • Perf: faster final exponentiation (hard part) for BW6 curves by @yelhousni in https://github.com/Consensys/gnark-crypto/pull/459
  • feat: wrap existing hash-to-field for implementing hash.Hash interface by @ivokub in https://github.com/Consensys/gnark-crypto/pull/464
  • Refactor(BW6): use revisited Ate pairing instead of Tate by @yelhousni in https://github.com/Consensys/gnark-crypto/pull/465
  • fix: remove duplicate gkr template generation by @ivokub in https://github.com/Consensys/gnark-crypto/pull/439
  • fix: edge case where domain cardinality is 1 by @gbotrel in https://github.com/Consensys/gnark-crypto/pull/454
  • Perf: KZG with fixed-argument pairing in affine coordinates by @yelhousni in https://github.com/Consensys/gnark-crypto/pull/466
  • Refactor: re-introduce points in KZG verification key by @yelhousni in https://github.com/Consensys/gnark-crypto/pull/469
  • Add SIS to BLS12-377 by @AlexandreBelling in https://github.com/Consensys/gnark-crypto/pull/470
  • chore(deps): bump golang.org/x/crypto from 0.10.0 to 0.17.0 by @dependabot in https://github.com/Consensys/gnark-crypto/pull/473
  • feat: allow hashing Fiat-Shamir transcript challenge without hashing to field first by @ivokub in https://github.com/Consensys/gnark-crypto/pull/474
  • perf,memory: fft without precompute by @gbotrel in https://github.com/Consensys/gnark-crypto/pull/472
  • refactor: kzg srs template by @yelhousni in https://github.com/Consensys/gnark-crypto/pull/475
  • doc: update hash to curve rfc ref and impl comment by @hussein-aitlahcen in https://github.com/Consensys/gnark-crypto/pull/478
  • feat: adds byteorder option in mimc New by @gbotrel in https://github.com/Consensys/gnark-crypto/pull/480
  • perf: optimize curve membership test by @yelhousni in https://github.com/Consensys/gnark-crypto/pull/487
  • refactor: make pedersen vk fields public by @ahmetyalp in https://github.com/Consensys/gnark-crypto/pull/488
  • fix: gkr add gate evaluate by @BeratOz01 in https://github.com/Consensys/gnark-crypto/pull/490
  • fix: fixes #491 by @ThomasPiellard in https://github.com/Consensys/gnark-crypto/pull/492
  • Chores: export the unrolled FFT64 out of SIS by @AlexandreBelling in https://github.com/Consensys/gnark-crypto/pull/496
  • feat: ECDSA error types by @ivokub in https://github.com/Consensys/gnark-crypto/pull/497
  • perf: add kzg.UnsafeToBytes and kzg.UnsafeFromBytes methods by @gbotrel in https://github.com/Consensys/gnark-crypto/pull/499
  • refactor: move test utils package into isolation to avoid every user to import test stuff by @gbotrel in https://github.com/Consensys/gnark-crypto/pull/500
  • perf: unsafe.WriteSlice (#501) by @gbotrel in https://github.com/Consensys/gnark-crypto/pull/503
  • perf(ecc): optimize affine Add, Sub and Double by @yelhousni in https://github.com/Consensys/gnark-crypto/pull/509
  • perf(ecc): faster affine Add by @yelhousni in https://github.com/Consensys/gnark-crypto/pull/510
  • perf: KZG verification uses JointScalarMultiplication by @yelhousni in https://github.com/Consensys/gnark-crypto/pull/493
  • fix: sis limb-decomposition works with log-two_bound > 8 by @AlexandreBelling in https://github.com/Consensys/gnark-crypto/pull/512
  • refactor: remove E3 Conjugate from BW6 by @yelhousni in https://github.com/Consensys/gnark-crypto/pull/514
  • perf(bn254): optimize affine pairing with doubleAndAdd by @yelhousni in https://github.com/Consensys/gnark-crypto/pull/506
  • fix: flaky FRI test by @ivokub in https://github.com/Consensys/gnark-crypto/pull/518
  • docs: describe length extension attack for MiMC hash function. by @ivokub in https://github.com/Consensys/gnark-crypto/pull/520
  • fix(bandersnatch): GLV bounds + test by @yelhousni in https://github.com/Consensys/gnark-crypto/pull/516

New Contributors

  • @dependabot made their first contribution in https://github.com/Consensys/gnark-crypto/pull/473
  • @ahmetyalp made their first contribution in https://github.com/Consensys/gnark-crypto/pull/488
  • @BeratOz01 made their first contribution in https://github.com/Consensys/gnark-crypto/pull/490

Full Changelog: https://github.com/Consensys/gnark-crypto/compare/v0.12.1...v0.13.0

- Go
Published by gbotrel over 1 year ago

gnark-crypto - v0.12.1

What's Changed

  • fix: GLV exponentiation in GT with large exponents by @ThomasPiellard in https://github.com/Consensys/gnark-crypto/pull/451 Security Advisory
  • feat: kzg extended transcript by @ThomasPiellard in https://github.com/Consensys/gnark-crypto/pull/452
  • perf(fft): introduce cache efficient bit reverse shuffling by @gbotrel in https://github.com/Consensys/gnark-crypto/pull/446
  • perf: Improve performance of point equality checks by @jsign in https://github.com/Consensys/gnark-crypto/pull/450

Full Changelog: https://github.com/Consensys/gnark-crypto/compare/v0.12.0...v0.12.1

- Go
Published by gbotrel over 2 years ago

gnark-crypto - v0.12.0

What's Changed

  • fix malleability sig by @ThomasPiellard in https://github.com/Consensys/gnark-crypto/pull/449 https://nvd.nist.gov/vuln/detail/CVE-2023-44273

  • perf: multiexp, avoid direct coordinate access to check for zero points by @jsign in https://github.com/Consensys/gnark-crypto/pull/414

  • perf: edwards, improve the performance of Add, MixedAdd and IsOnCurve by @jsign in https://github.com/Consensys/gnark-crypto/pull/441

  • perf: edwards, avoid inversions in Add in extended points by @jsign in https://github.com/Consensys/gnark-crypto/pull/442

  • ci: update ci workflows by @gbotrel in https://github.com/Consensys/gnark-crypto/pull/447

Full Changelog: https://github.com/Consensys/gnark-crypto/compare/v0.11.2...v0.12.0

- Go
Published by gbotrel over 2 years ago

gnark-crypto - v0.11.2

What's Changed

  • Fix some typos by @jtraglia in https://github.com/Consensys/gnark-crypto/pull/394
  • Adding testing for deserialization of G1 and G2 points by @asanso in https://github.com/Consensys/gnark-crypto/pull/393
  • Fix some implicit memory aliasing in for loops by @jtraglia in https://github.com/Consensys/gnark-crypto/pull/395
  • Do not XOR with zero by @jtraglia in https://github.com/Consensys/gnark-crypto/pull/398
  • Disable check shadowing in govet linter by @jtraglia in https://github.com/Consensys/gnark-crypto/pull/397
  • Add a bunch of "nosec G404" comments in test code by @jtraglia in https://github.com/Consensys/gnark-crypto/pull/399
  • Enable misspell linter & fix findings by @jtraglia in https://github.com/Consensys/gnark-crypto/pull/401
  • Fix RSis.CopyWithFreshBuffer by @AlexandreBelling in https://github.com/Consensys/gnark-crypto/pull/402
  • feat: Marshal [][]fr.Element by @Tabaie in https://github.com/Consensys/gnark-crypto/pull/400
  • Run golangci-lint on generated files by @jtraglia in https://github.com/Consensys/gnark-crypto/pull/396
  • docs: ConsenSys -> Consensys by @Tabaie in https://github.com/Consensys/gnark-crypto/pull/406
  • msm: semaphore to limit CPUs + better split strategy (up to 25% perf boost on 96cores) by @gbotrel in https://github.com/Consensys/gnark-crypto/pull/403
  • Feat/fold pedersen by @Tabaie in https://github.com/Consensys/gnark-crypto/pull/407
  • fix: do not read empty slices as nil by @Tabaie in https://github.com/Consensys/gnark-crypto/pull/410
  • fix: incorrect semaphore init could cause msm deadlock by @gbotrel in https://github.com/Consensys/gnark-crypto/pull/411
  • edwards: optimize point negation by @jsign in https://github.com/Consensys/gnark-crypto/pull/413
  • Feat/gkr custom gates by @Tabaie in https://github.com/Consensys/gnark-crypto/pull/419
  • perf: fast path for SIS with logTwoBound: 8, logTwoDegree: 6 by @gbotrel in https://github.com/Consensys/gnark-crypto/pull/416
  • feat: add WriteRawTo, UnsafeReadFrom to kzg.ProvingKey by @gbotrel in https://github.com/Consensys/gnark-crypto/pull/422
  • Fix/gkr eq bug by @Tabaie in https://github.com/Consensys/gnark-crypto/pull/421
  • feat: add AsyncReadFrom to fr.Vector and fft.Domain by @gbotrel in https://github.com/Consensys/gnark-crypto/pull/424
  • fix: ECDSA HashToInt bytes-bits mismatch by @ivokub in https://github.com/Consensys/gnark-crypto/pull/428
  • Small optimization over the memory usage of MiMC by @AlexandreBelling in https://github.com/Consensys/gnark-crypto/pull/435
  • perf: improve fft domain memory footprint by @gbotrel in https://github.com/Consensys/gnark-crypto/pull/437
  • Refactor/gkr test vectors by @Tabaie in https://github.com/Consensys/gnark-crypto/pull/425
  • v0.11.2 by @gbotrel in https://github.com/Consensys/gnark-crypto/pull/438

New Contributors

  • @asanso made their first contribution in https://github.com/Consensys/gnark-crypto/pull/393
  • @jsign made their first contribution in https://github.com/Consensys/gnark-crypto/pull/413

Full Changelog: https://github.com/Consensys/gnark-crypto/compare/v0.11.1...v0.11.2

- Go
Published by gbotrel over 2 years ago

gnark-crypto - v0.9.2

Security

Fixed bug in hashing to field when computing and verifying ECDSA signatures (#427, fix #428). Thanks @samngmco for reporting.

Full Changelog: https://github.com/Consensys/gnark-crypto/compare/v0.9.1...v0.9.2

- Go
Published by ivokub over 2 years ago

gnark-crypto - v0.11.1

Security

Fixed bug in hashing to field when computing and verifying ECDSA signatures (#427, fix #428). Thanks @samngmco for reporting.

Full Changelog: https://github.com/Consensys/gnark-crypto/compare/v0.11.0...v0.11.1

- Go
Published by ivokub over 2 years ago

gnark-crypto - v0.10.1

Security

Fixed bug in hashing to field when computing and verifying ECDSA signatures (#427, fix #428). Thanks @samngmco for reporting.

Full Changelog: https://github.com/Consensys/gnark-crypto/compare/v0.10.0...v0.10.1

- Go
Published by ivokub over 2 years ago

gnark-crypto - v0.11.0

What's Changed

  • build: update ci github action dependencies by @gbotrel in https://github.com/ConsenSys/gnark-crypto/pull/369
  • Eliminate 2 allocations per Pedersen call by @omerfirmak in https://github.com/ConsenSys/gnark-crypto/pull/371
  • Fix/fold kzg fs by @Tabaie in https://github.com/ConsenSys/gnark-crypto/pull/377
  • Add CopyWithFreshBuffer a function to copy the state by @AlexandreBelling in https://github.com/ConsenSys/gnark-crypto/pull/370
  • Refactor: final exponentiation in pairings by @yelhousni in https://github.com/ConsenSys/gnark-crypto/pull/375
  • Refactor: export endomorphisms by @yelhousni in https://github.com/ConsenSys/gnark-crypto/pull/376
  • fix(kzg): nb of digests in BatchVerifyMultiPoints should be nonzeo by @yelhousni in https://github.com/ConsenSys/gnark-crypto/pull/374
  • Precompute point multiplication results in pedersen by @omerfirmak in https://github.com/ConsenSys/gnark-crypto/pull/380
  • Refactor: do not export endomorphisms + Double in affine by @yelhousni in https://github.com/ConsenSys/gnark-crypto/pull/382
  • Refactor/break kzg srs by @Tabaie in https://github.com/ConsenSys/gnark-crypto/pull/378
  • Feat/encode uint64 slices by @Tabaie in https://github.com/ConsenSys/gnark-crypto/pull/379
  • refactor: break pedersen key into proving (committing) and verifying by @Tabaie in https://github.com/ConsenSys/gnark-crypto/pull/384
  • Perf: KZG verification in a single point by @yelhousni in https://github.com/ConsenSys/gnark-crypto/pull/386
  • make mapToCurve public to allow for custom cofactor clearing by @hussein-aitlahcen in https://github.com/ConsenSys/gnark-crypto/pull/372
  • feat: fix v computation in ECDSA signature by @ivokub in https://github.com/ConsenSys/gnark-crypto/pull/385
  • Update the limb decomposition of the SIS by @AlexandreBelling in https://github.com/ConsenSys/gnark-crypto/pull/389
  • fix: handle all bitmask in point deserialization

New Contributors

  • @omerfirmak made their first contribution in https://github.com/ConsenSys/gnark-crypto/pull/371
  • @hussein-aitlahcen made their first contribution in https://github.com/ConsenSys/gnark-crypto/pull/372

Full Changelog: https://github.com/ConsenSys/gnark-crypto/compare/v0.10.0...v0.11.0

- Go
Published by gbotrel almost 3 years ago

gnark-crypto - v0.10.0

What's Changed

Fixes

  • fix: invalid infinity point decoding throws error by @gbotrel in https://github.com/ConsenSys/gnark-crypto/pull/363

New features / refactor

  • feat: FFT signature now takes variadic options by @gbotrel in https://github.com/ConsenSys/gnark-crypto/pull/345
  • feat: add ECDSA public key recover from message, signature and recovery info by @ivokub in https://github.com/ConsenSys/gnark-crypto/pull/347
  • expose bn254 tower to gnark by @yelhousni in https://github.com/ConsenSys/gnark-crypto/pull/354
  • Export BW6-761 E3/E6 by @SherLzp in https://github.com/ConsenSys/gnark-crypto/pull/359
  • Expose BLS12-381 tower by @yelhousni in https://github.com/ConsenSys/gnark-crypto/pull/360

Perf

  • perf: sis tensor commitment by @gbotrel in https://github.com/ConsenSys/gnark-crypto/pull/344
  • Add support for parallelization in the tensor-commitment by @AlexandreBelling in https://github.com/ConsenSys/gnark-crypto/pull/263
  • Perf/tensor commitment by @AlexandreBelling in https://github.com/ConsenSys/gnark-crypto/pull/341
  • perf(stark-curve): no subgroup check on prime-order curve by @yelhousni in https://github.com/ConsenSys/gnark-crypto/pull/349
  • perf(bw6-756): optimize GT subgroup membership by @yelhousni in https://github.com/ConsenSys/gnark-crypto/pull/351
  • perf: optimize BLS24-317 final exp by @yelhousni in https://github.com/ConsenSys/gnark-crypto/pull/356
  • perf: tweaks in iop/ kzg/ packages by @gbotrel in https://github.com/ConsenSys/gnark-crypto/pull/361
  • perf & refactor: pairings by @yelhousni in https://github.com/ConsenSys/gnark-crypto/pull/366

New Contributors

  • @ivokub made their first contribution in https://github.com/ConsenSys/gnark-crypto/pull/347
  • @SherLzp made their first contribution in https://github.com/ConsenSys/gnark-crypto/pull/359
  • @jtraglia made their first contribution in https://github.com/ConsenSys/gnark-crypto/pull/364

Full Changelog: https://github.com/ConsenSys/gnark-crypto/compare/v0.9.1...v0.10.0

- Go
Published by gbotrel almost 3 years ago

gnark-crypto - v0.9.1

What's Changed

  • Add STARK curve by @yelhousni in https://github.com/ConsenSys/gnark-crypto/pull/299
  • feat: Add ECDSA by @yelhousni in https://github.com/ConsenSys/gnark-crypto/pull/310
  • feat: introduce field.Vector by @gbotrel in https://github.com/ConsenSys/gnark-crypto/pull/311
  • fix: number of rounds for mimc by @yelhousni in https://github.com/ConsenSys/gnark-crypto/pull/320
  • nuke element.Bit() fixes #306 by @gbotrel in https://github.com/ConsenSys/gnark-crypto/pull/331
  • feat: iop arguments by @ThomasPiellard in https://github.com/ConsenSys/gnark-crypto/pull/282
  • fix: mimc pow7 by @Tabaie in https://github.com/ConsenSys/gnark-crypto/pull/333
  • perf: gkr improvements by @gbotrel in https://github.com/ConsenSys/gnark-crypto/pull/328
  • perf: gkr improvements by @Tabaie in https://github.com/ConsenSys/gnark-crypto/pull/319
  • field agnostic fiat shamir challenge names by @Tabaie in https://github.com/ConsenSys/gnark-crypto/pull/308
  • feat: add Vector support to ecc marshal encoder by @gbotrel in https://github.com/ConsenSys/gnark-crypto/pull/336
  • bn254 mimc test vector by @Tabaie in https://github.com/ConsenSys/gnark-crypto/pull/323

Full Changelog: https://github.com/ConsenSys/gnark-crypto/compare/v0.9.0...v0.9.1

- Go
Published by gbotrel about 3 years ago

gnark-crypto - v0.9.0

What's Changed

New features

  • GKR by @Tabaie in https://github.com/ConsenSys/gnark-crypto/pull/243
  • Efficiently verifiable Pedersen commitments by @Tabaie in https://github.com/ConsenSys/gnark-crypto/pull/266
  • secp256k1 curve by @yelhousni in https://github.com/ConsenSys/gnark-crypto/pull/277
  • element.SetBytesCanonical, element.BigEndian and element.LittleEndian by @gbotrel in https://github.com/ConsenSys/gnark-crypto/pull/286

Performance

  • MSM uses batch affine addition (up to 60% speedup 🎉 ) by @gbotrel in https://github.com/ConsenSys/gnark-crypto/pull/261
  • Faster G2 subgroup membership on BN254 by @yelhousni in https://github.com/ConsenSys/gnark-crypto/pull/251
  • arm64,purego: field arithmetic mul for arm64 and cleanup build tags by @gbotrel in https://github.com/ConsenSys/gnark-crypto/pull/257

Refactor and cleanup

  • Field package exposes Hash by @Tabaie in https://github.com/ConsenSys/gnark-crypto/pull/271
  • Remove internal/ dependencies in field generated code by @gbotrel in https://github.com/ConsenSys/gnark-crypto/pull/287
  • Removes FromMont and ToMont from field.Element api by @gbotrel in https://github.com/ConsenSys/gnark-crypto/pull/288
  • ToBigIntRegular is deprecated, introduce BigInt method by @gbotrel in https://github.com/ConsenSys/gnark-crypto/pull/290

Fixes

  • MiMC reasons with p-digits block by @ThomasPiellard in https://github.com/ConsenSys/gnark-crypto/pull/265

Full Changelog: https://github.com/ConsenSys/gnark-crypto/compare/v0.8.0...v0.9.0

- Go
Published by gbotrel about 3 years ago

gnark-crypto - v0.8.0

[v0.8.0] - 2022-08-03

This version was partially audited by Kudelski Security for the Algorand Foundation. (TODO insert report link). The scope of the audit covered bn254 and bls12-381 packages (including field arithmetic).

Feat

  • field/goldilocks (more efficient 1-limb modulus arith) (#177)
  • field/generator suppors 1-limb modulus (#175)
  • field.SetRandom zero-alloc uniform sampling
  • E6/E12/E24: GT torus-based batch compression/decompression
  • fri: modified challenge generation so it fits in a snark variable
  • fri: added check of correctness between rounds

Fix

  • Handle edge case in Karabina decompression (#219)
  • check nbTasks config when running msm, test all possible c-bit windows in when testing.Short not set) (#226)
  • element.SetString(_) returns error if invalid input instead of panic
  • expandmsgxmd copy bug, a few tests (#201)
  • closes #199. Correct bound in eddsa key gen template

Perf

  • remove unecessary inverse in KZG-verify
  • faster GLV scalar decompostion

Refactor & Docs

  • moved consensys/goff into field/goff (#204)
  • clean comments in curves (#193)
  • remove dead code (#230)
  • cosmetic changes (#197)
  • replace modulus generated by constants, add zero-alloc SetRandom (#194)
  • remove uneeded x86 asm and files (#192)
  • polish readme.md with updated godoc subpackage links (#235)
  • acknowledge that inv(0)==0 in comments as a convention (#233)
  • added note in pairing godoc - doesn't check inputs are in correct subgroup (#231)
  • add security estimates of implemented curves in comments

Test

Pull Requests

  • Merge pull request #232 from ConsenSys/docs/comments
  • Merge pull request #229 from ConsenSys/update_deps
  • Merge pull request #227 from ConsenSys/fix/element_setstring
  • Merge pull request #228 from ConsenSys/fix/race/test
  • Merge pull request #224 from ConsenSys/refactor/scalarmul
  • Merge pull request #220 from ConsenSys/perf/kzg-verify
  • Merge pull request #223 from ConsenSys/doc/security-estimates-curves
  • Merge pull request #216 from ConsenSys/feat/poly
  • Merge pull request #217 from ConsenSys/string-utils
  • Merge pull request #213 from ConsenSys/perf/glv
  • Merge pull request #129 from ConsenSys/feat/GT-compression
  • Merge pull request #209 from ConsenSys/codegen/svdw-not-e4
  • Merge pull request #203 from ConsenSys/tests/bn254-vectors
  • Merge pull request #196 from ConsenSys/patch/hashToFpGeneric
  • Merge pull request #202 from ConsenSys/gbotrel/issue199
  • Merge pull request #200 from tyGavinZJU/develop
  • Merge pull request #85 from ConsenSys/feat/fri

- Go
Published by gbotrel over 3 years ago

gnark-crypto - v0.6.1

[v0.6.1] - 2022-02-15

Feat

  • MiMC has no "seed" parameter and now uses Miyaguchi Preneel construction
  • FFT cosets uses full two-adicity, Plookup, KZG and permutation modified accordingly
  • twistededwards: Extended coordinates (a=-1) (faster, not complete)
  • bls24-315: faster G2 membership test

Pull Requests

  • Merge pull request #152 from ConsenSys/feat/clean_kzg
  • Merge pull request #145 from ConsenSys/fix/fft_cosets
  • Merge pull request #147 from ConsenSys/sswu-fp-generic-rebased
  • Merge pull request #146 from ConsenSys/perf-mimc-constants
  • Merge pull request #144 from ConsenSys/constant-time-equals
  • Merge pull request #125 from ConsenSys/fix/mimc_miyaguchipreneel
  • Merge pull request #143 from ConsenSys/feat/cmov
  • Merge pull request #140 from ConsenSys/inv(0)=0
  • Merge pull request #110 from ConsenSys/feat/tEd-extended
  • Merge pull request #123 from ConsenSys/perf/BLS24-G2-IsInSubGroup

- Go
Published by gbotrel about 4 years ago

gnark-crypto - v0.6.0

[v0.6.0] - 2021-12-22

Feat

  • plookup: added plookup lookup proof
  • field: generate optimized addition chains for Sqrt & Legendre exp functions
  • field: added field.SetInt64, support for intX and uintX #109
  • field: added UnmarshalJSON and MarshalJSON on fields
  • field: added field.Text(base) to return field element string in a given base, like big.Int
  • field: field.SetString now supports 0b 0o 0x prefixes (base 2, 8 and 16)
  • kzg: test tampered proofs whith quotient set to zero
  • bls24: Fp-Fp2-Fp4-Fp12-Fp24 tower

Fix

  • fixes #104 code generation for saturated modulus like secp256k1 incorrect. added secp256k1 test

Perf

  • field inverse is ~30-70% faster (implements Pornin's optimizations)
  • bls12-381: faster Miller loop (sparse-sparse mul)
  • bls12-381: faster final exp (faster expt)
  • bn254: better short addition chain for Expt()
  • bn254: addchain with max squares (weighting mul x2.6 cyclosq)

Pull Requests

  • Merge pull request #111 from ConsenSys/field-intX-support
  • Merge pull request #114 from ConsenSys/fix-dynamic-link
  • Merge pull request #108 from ConsenSys/perf/bls12381-pairing
  • Merge pull request #106 from ConsenSys/improvement/field-inv-pornin20
  • Merge pull request #105 from ConsenSys/field-from-json
  • Merge pull request #83 from ConsenSys/experiment/BLS24
  • Merge pull request #102 from ConsenSys/feat/plookup
  • Merge pull request #97 from ConsenSys/feat-addchain
  • Merge pull request #99 from ConsenSys/feat-addchain-expt

- Go
Published by gbotrel about 4 years ago

gnark-crypto - v0.5.3

[v0.5.3] - 2021-10-30

Feat, perf

  • all curves: subgroup check optional in decoder (default = true), and is done in parallel when unmarshalling slices of points #96
  • bn254: faster G2 membership test #95
  • added element.NewElement(v uint64) convenient API

Fix

  • fp12: compressed cyclotomic square (receiver == argument)

- Go
Published by gbotrel over 4 years ago

gnark-crypto - v0.5.2

[v0.5.2] - 2021-10-26

Fix

  • all twistedEdwards: fix Add() in projective coordinates (issue #89 )
  • fiat-shamir: added test to ensure len(challenge) > 0

Feat

  • bw6: optimal Tate Miller loop with shared computations
  • bw6-761: opt. ate with shared squares and shared doublings (alg.2)
  • add bandersnatch curve (twistedEdwards on bls12-381 with GLV)
  • added curveID.Info() which returns constants about a curve
  • added element.Halve()

Perf

  • bn: multiply ML external lines 2 by 2 (+multi-ML bench)

Refactor

  • templates: unify twistedEdwards package across curves

Pull Requests

  • Merge pull request #93 from ConsenSys/bandersnatch
  • Merge pull request #90 from ConsenSys/fix/tEdwards-addProj-issue89
  • Merge pull request #82 from ConsenSys/perf/bn254-ML
  • Merge pull request #88 from ConsenSys/issue-87/twistedEdwards
  • Merge pull request #81 from ConsenSys/ML/DoubleStep-Halve
  • Merge pull request #77 from ConsenSys/BW6

- Go
Published by gbotrel over 4 years ago

gnark-crypto - v0.5.1

[v0.5.1] - 2021-09-21

Pull Requests

  • Merge pull request #76 from ConsenSys/msm-ones
  • Merge pull request #75 from ConsenSys/feat/karabina

Feat

  • added element.IsUint64()
  • element.String() special path for uint64 and -uint64 values
  • added element.Bit(..) to retrieve i-th bit in a field element
  • Fp12: implements the Karabina cyclotomic square in E12/E6
  • Fp24: implements the Karabina cyclotomic square in E24/E8
  • Fp6: implements the Karabina cyclotomic square in E6/E3
  • e12: implements batch decompression for karabina cyclo square
  • e24: implements batch decompression for karabina cyclo square
  • experimental: msm splits first chunk processing if scalar is on one word

Perf

  • bls12: faster G2 membership (eprint 2021/1130 sec.4)
  • bls12-377: use asm MubBy5 as MulByNonResidue
  • bls24: mix Karabina+GS+BatchInvert for faster FinalExp (Expt)
  • bw6-633: fast GT-subgroup check

- Go
Published by gbotrel over 4 years ago

gnark-crypto - v0.4.0 - gurvy -> gnark-crypto

[v0.4.0] - 2021-03-31

Refactor

  • gurvy -> gnark-crypto
  • moved interop tests under github.com/consensys/gnark-tests
  • bls381 -> bls12-381
  • bls377 -> bls12-377
  • bn256 -> bn254
  • migrated MiMC and EdDSA from gnark into gnark-crypto
  • migrated gnark/backend/fft into gnark-crypto
  • migrated goff packages into ./field/...
  • cleaning internal/generator pattern

Ci

  • testing with go 1.15, go 1.16 on Windows, MacOS, Linux (+arch=32bits)

Docs

  • added ecc/ecc.md and field/field.md

Feat

  • multiExp in full extended jacobian coordinates

Fix

  • handle case where numCPU < 4 in precomputeExpTable
  • incorrect comment and size returned in twistededwards SetBytes fixes #34
  • point.SetBytes can now be called concurently with same byte slice input

[v0.3.8] - 2021-02-01

Bls377

  • final exp hard part eprint 2020/875
  • ML entirely on the twist (ABLR)

Bls381

  • final exp hard part eprint 2020/875
  • ML entirely on the twist (ABLR)
  • change G1 and G2 generators for interop

Bn256

  • inline lineEval() in MilleLoop
  • ML entirely on the twist (ABLR)
  • change G1 and G2 generators for interop

Bw6

  • add E6 and pairing tests
  • correct comments in FinalExp
  • fix bw6 pairing API to take slices of points and mutualize squares
  • change G1 and G2 generators for interop

Pull Requests

  • Merge pull request #29 from ConsenSys/youssef/bls12-finalExp
  • Merge pull request #27 from ConsenSys/experimental/pairing
  • Merge pull request #26 from ConsenSys/youssef/ML-ABLR
  • Merge pull request #25 from ConsenSys/csquare
  • Merge pull request #23 from ConsenSys/youssef/bw6-API-pairing

- Go
Published by gbotrel almost 5 years ago