v0.9.0-alpha
Pre-release
Pre-release
What's Changed
Features
Core
- feat: Groth16 MPC setup by @HSG88 in #515
- feat: BSB22 commitments PlonK by @Tabaie in #586
- feat: add simple key-value store to the builders by @ivokub in #480
- refactor: define Committer interface for builders by @ivokub in #481
- feat: add defer to the Compiler interface by @ivokub in #483
- feat: PlonK frontend filter common cases of duplicate constraints by @gbotrel in #539
- perf: various performance improvements for PlonK prover by @gbotrel in #593
- feat, perf: introduce constraint blueprints. improve memory usage for constraint systems by @gbotrel in #641
- perf: reduce mem allocs in scs frontend by @gbotrel in #654
- feat: PlonK multicommit by @Tabaie in #668
- feat: Groth16 Multicommits by @Tabaie in #702
- feat: change opening order kzg by @ThomasPiellard in #694
- feat: adds GKR api by @Tabaie in #443
- feat: optimized PlonK solidity verifier for BN254 by @ThomasPiellard
Circuit
- feat: add a partition selector by @aybehrouz in #486
- feat: range checks using log derivative, fixes #581 by @ThomasPiellard in #583
- Add an n to 1 MUX and MAP by @aybehrouz in #475
- perf: in-circuit ECDSA on secp256k1 by @yelhousni in #497
- perf: KZG in circuit by @yelhousni in #506
- feat: BN254 pairing by @ivokub in #411
- feat: range check gadget by @ivokub in #472
- perf: emulated BN254 pairing by @yelhousni in #566
- feat: emulated BLS12-381 pairing by @yelhousni in #591
- feat: add gadget for enabling multiple commitments in-circuit by @ivokub in #562
- feat: add EVM precompiles by @ivokub in #488
- perf: use
api.Select
for 2 to 1 mux by @aybehrouz in #625 - feat: unified ECADD by @yelhousni in #631
- feat: log-derivative vector lookups by @ivokub in #620
- perf: KZG verification circuit in a single point by @yelhousni in #658
- feat: emulated subgroup check by @yelhousni in #629
- perf(ecdsa): JoinScalarMulBase avoids 0 edge-cases by @yelhousni in #661
- feat: differentiate ecrecover with strict and lax check for s by @ivokub in #656
- feat: implement NIST P-256 and P-384 curves by @ivokub in #697
- perf(2-chain/varScalarMul): use DoubleAndAdd to reduce #constraints by @yelhousni in #706
- perf(2-chain/varScalarMul): DoubleAndAdd to reduce #constraints BLS24 by @yelhousni in #707
- feat: add sha2 primitive by @ivokub in #689
- perf: add a generalized version of binary selection by @aybehrouz in #636
- feat: fixed-argument emulated pairing by @yelhousni in #708
- perf: Add-only emulated scalar multiplication by @yelhousni in #726
- feat: emulated pairing 2-by-2 fixed circuit for EVM by @yelhousni in #698
- perf: emulated pairing BN254 by @yelhousni in #714
- perf: ELM03+Joye07 for emulated scalarMul by @yelhousni in #760
- perf: special squaring for sparse elements in the pairing algorithm by @yelhousni in #772
- perf: Improve MultiLin.Eval number of constraints by @Tabaie in #788
Fixes
- fix: scs.MarkBoolean missing return w/ constant by @gbotrel in #491
- fix: closes #509 api did not handle AssertIsLessOrEqual with constant as first param by @gbotrel in #511
- fix: restrict constants in field emulation to width by @ivokub in #518
- fix: subtraction overflow computation bug by @ivokub in #579
- fix(emulated pairing): edge cases in torus-based final exp by @yelhousni in #613
- fix: serializeCommitment by @SherLzp in #651
- fix race condition when compiling circuits in parallel by @gbotrel in #676
- fix: emulated ToBits by @ivokub in #731
- fix: do not accumulate terms with zero coefficient for addition by @ivokub in #763
Refactor
- refactor: PlonK uses constraint/ and couple of fixes closes #467 by @gbotrel in #493
- refactor: std/algebra by @yelhousni in #526
- refactor: expose all typed backends in gnark/backend (moved from internal/) by @gbotrel in #561
- refactor: based on #515 generify groth16 MPC setup for all curves, flatten packages+ refactor by @gbotrel in #563
- refactor: Minimize Commitment info in PlonK vk by @Tabaie in #633
- refactor: hint name options by @Tabaie in #666
- refactor, perf: 2-chains pairing + groth16 API by @yelhousni in #664
New Contributors
Full Changelog: v0.8.1...v0.9.0-alpha