Releases: ethereum/c-kzg-4844
v2.1.5
Overview
This is a minor release which contains an important bug fix. The computed challenge for verify_cell_kzg_proof_batch
did not take into account all deduplicated commitments, resulting in a potential Weak Fiat-Shamir vulnerability. See #607 for more details.
What's Changed
- Fix rust CI checks by @jtraglia in #608
- Create cell verification challenge with deduplicated commitments by @jtraglia in #607
- Bump versions to v2.1.5 by @jtraglia in #609
Full Changelog: v2.1.4...v2.1.5
v2.1.4
Overview
Some Ethereum clients have (rightfully) expressed concerns with using an unreleased version of blst. To address these concerns, we reverted blst to its latest stable version and added back point-at-infinity filtering in c-kzg-4844.
What's Changed
- Add back point-at-infinity filtering in
g1_lincomb_fast
by @jtraglia in #603 - Revert blst to v0.3.15 by @jtraglia in #604
- Document
g1_lincomb_fast
when called asmsm([])
by @asn-d6 in #606 - Bump version to v2.1.4 by @jtraglia in #605
Full Changelog: v2.1.3...v2.1.4
v2.1.3
Overview
This is a minor release that fixes a bug which could cause verify_cell_kzg_proof_batch
results to be incorrect. In the previous release we simplified g1_lincomb_fast
by removing point-at-infinity filtering because blst added this filtering. Unfortunately, there was a path in which the filtering did not happen. We have updated blst to the latest commit which includes a fix for this.
What's Changed
- Bump the actions group with 5 updates by @dependabot[bot] in #597
- Add new zkSecurity audit report by @jtraglia in #599
- Update blst to fix point-at-infinity issue in
g1_lincomb_fast
by @jtraglia in #600 - Remove tunable threshold in
g1_lincomb_fast
by @jtraglia in #601 - Bump version to v2.1.3 by @jtraglia in #602
Full Changelog: v2.1.2...v2.1.3
v2.1.2
Overview
This is a minor release that fixes audit findings (ZKSecurity and internal), adds RecoverCells()
to Go bindings, simplifies code, and improves test coverage.
What's Changed
- chore(deps): updating GitHub Actions to pinned hashes by @jtraglia in #557
- Bump the actions group with 7 updates by @dependabot[bot] in #558
- Update clang-format to v20 by @jtraglia in #559
- Rename namespace so it's different from main class, and we don't need… by @flcl42 in #562
- Use correct constant in coeffs allocation by @jtraglia in #563
- Move FIELD_ELEMENTS_PER_EXT_BLOB to blob.h by @jtraglia in #566
- Split settings initialization into a new function by @jtraglia in #570
- Bump the actions group with 5 updates by @dependabot[bot] in #571
- Remove precomputed CELL_INDICES_RBL table by @jtraglia in #564
- Update tests to reflect refactored generators by @jtraglia in #572
- Allow n<=1 in bit_reversal_permutation by @jtraglia in #565
- fixed misleading error message copy-pastes by @felix314159 in #574
- Update fk20.c by @khovratovich in #573
- Bump the actions group with 2 updates by @dependabot[bot] in #576
- Update fuzzers by @jtraglia in #577
- chore: fix g1 monomial doc in rust bindings by @Rjected in #578
- Update to blst v0.3.15 by @jtraglia in #579
- Update reference tests by @jtraglia in #582
- Bump the actions group with 2 updates by @dependabot[bot] in #583
- Check if blob is nil in ComputeCells/ComputeCellsAndKZGProofs by @jtraglia in #590
- Remove point-at-infinity filter in g1_lincomb_fast by @jtraglia in #588
- Bump erlef/setup-beam from 1.20.1 to 1.20.4 in the actions group by @dependabot[bot] in #591
- Prevent cached settings footgun in rust bindings by @jtraglia in #585
- Fix findings from zkSec audit by @jtraglia in #595
- Ensure cell indices are sorted in
recover_cells_and_kzg_proofs
by @jtraglia in #594 - Add compute challenge tests by @jtraglia in #593
- Add new tests from latest release by @jtraglia in #598
- add benchmark for recovering cells without computing proofs by @cskiraly in #596
New Contributors
- @dependabot[bot] made their first contribution in #558
- @felix314159 made their first contribution in #574
- @khovratovich made their first contribution in #573
- @cskiraly made their first contribution in #596
Full Changelog: v2.1.1...v2.1.2
v2.1.1
Overview
This is a minor release which includes various improvements to the bindings.
What's Changed
- Fix python release publishing by @jtraglia in #547
- Call
test_compute_cells
in python bindings by @jtraglia in #548 - Fix elixir default path by @BlazeWasHere in #550
- Re-enable spec test comparison check by @jtraglia in #549
- chore(rust): Cleanup fmt/clippy and ci by @rakita in #551
- feat: add arbitrary feature by @Rjected in #553
- Bump versions to v2.1.1 by @jtraglia in #554
- Update github checkout actions by @PixelPil0t1 in #552
New Contributors
- @PixelPil0t1 made their first contribution in #552
Full Changelog: v2.1.0...v2.1.1
v2.1.0
Overview
This is a minor release which adds a compute_cells
method to all bindings.
What's Changed
- Fix profiling instructions for Linux by @agnxsh in #506
- Improve readme structure and fix dead link by @b-wagn in #507
- Fix findings from Dmitry's review by @jtraglia in #508
- Trivial improvements to eip7594 bindings by @asn-d6 in #513
- Fix inconsistent parameter doc in blob.c by @b-wagn in #514
- Add LOG_EXPANSION_FACTOR constant by @b-wagn in #515
- Delete trailing whitespace by @jtraglia in #516
- Update README.md by @flechemano in #517
- chore: fix typo in comment by @wangjingcun in #518
- chore: fix 404 status URL by @wangjingcun in #520
- Fix grammatical and spelling errors in documentation by @donatik27 in #521
- Pull in latest reference tests by @jtraglia in #522
- Update github actions versions due to deprecation by @parithosh in #525
- Fix NuGet packaging by @rubo in #529
- feat: add windows-gnu to rust tests by @Rjected in #531
- Add new VerifyCellKZGProofBatchParallel benchmark by @jtraglia in #532
- Upgrade blst to v0.3.14 by @jtraglia in #533
- Add back
compute_cells
function by @jtraglia in #534 - Make some small updates to the readme by @jtraglia in #538
- fix: fix issue with find_space_after returning None by @indmind in #537
- Allocate polynomials on heap instead of stack by @jtraglia in #539
- Add elixir bindings by @BlazeWasHere in #535
- Add
compute_cells
fuzzing support by @jtraglia in #541 - Update dependencies for all bindings by @jtraglia in #542
- Add files for oss-fuzz by @jtraglia in #543
- Make fixes for oss-fuzz by @jtraglia in #544
- Add section on precompute values to the readme by @jtraglia in #545
- Bump versions for v2.1.0 by @jtraglia in #546
New Contributors
- @flechemano made their first contribution in #517
- @wangjingcun made their first contribution in #518
- @donatik27 made their first contribution in #521
- @parithosh made their first contribution in #525
- @indmind made their first contribution in #537
- @BlazeWasHere made their first contribution in #535
Full Changelog: v2.0.1...v2.1.0
v2.0.1
Overview
This is a minor release which fixes package publishing issues for some bindings.
What's Changed
- Use latest cibuildwheel for Python release by @jtraglia in #498
- Further split up
verify_cell_kzg_proof_batch
by @asn-d6 in #499 - Document
compute_commitment_to_aggregated_interpolation_poly
by @asn-d6 in #500 - Fix node.js publishing by @matthewkeil in #502
- Add param linter script for C source by @jtraglia in #501
- Fix typo by @b-wagn in #503
- Add "/v2" to Go module name by @jtraglia in #504
- Update version to v2.0.1 and do cargo updates by @jtraglia in #505
Full Changelog: v2.0.0...v2.0.1
v2.0.0
This is a major release which adds support for EIP-7594 (PeerDAS).
Notable changes:
- The codebase implements and exposes all public methods of the EIP-7594 cryptography specification.
- The trusted setup format has been updated to include G1 points in monomial form.
- This version of c-kzg-4844 requires the new trusted setup file.
- The new trusted setup file can be used with previous versions of c-kzg-4844.
- Download the new file from
trusted_setup.txt
in this repository. - This should match
trusted_setup_4096.json
in the specifications.
- A new
precompute
parameter has been added to functions which load the trusted setup.- This configuration option is used to optimize FK20 proof computations.
- Higher values will compute FK20 proofs faster but use more memory.
- Compared to
precompute=0
,precompute=8
is ~75% faster but uses 96 MiB of memory.
- In the Nim bindings, the "zero overhead aliases" have been removed.
- There is only a single set of API functions exposed now.
- In the Rust bindings, the API functions have been moved to the
KzgSettings
structure.- For example, here is the before and after for
blob_to_kzg_commitment
:KZGCommitment::blob_to_kzg_commitment(&blob, &kzg_settings)
kzg_settings.blob_to_kzg_commitment(&blob)
- For example, here is the before and after for
What's Changed
- Add support for EIP-7594 by @jtraglia in #452
- Remove extraneous
memset
by @kevaundray in #463 - Fix
poly_lagrange_to_monomial
by @kevaundray in #462 - Add central Makefile which builds/tests everything by @jtraglia in #458
- Update recovery code to match specs by @kevaundray in #459
- Increase column limit to 100 for C code by @jtraglia in #456
- Move Rust bindings to
KzgSettings
by @jtraglia in #461 - Improve Python bindings build/install flow by @jtraglia in #460
- Add new Rust fuzzer by @jtraglia in #457
- Split core implementation into multiple files by @asn-d6 in #464
- Cleanup roots of unity in
KZGSettings
by @asn-d6 in #467 - Fix Makefile dependencies by @jtraglia in #469
- Move FFT functions to fft.{c,h} files by @jtraglia in #466
- Clarify
roots_stride
in FFT by @asn-d6 in #470 - Clarify scope of audit in README by @b-wagn in #472
- Split C code into more files by @jtraglia in #471
- Do not rely on
calloc
zeroing out allocations by @jtraglia in #474 - Fix profile & analyze by @jtraglia in #473
- Run
cargo update
for fuzzer by @jtraglia in #475 - Remove benchmarks for Rust & Java by @jtraglia in #476
- Remove unused blob variable in recovery by @jtraglia in #481
- Add new reference tests sanity check by @jtraglia in #479
- Enable more compiler warnings by @jtraglia in #480
- Simplify Nim bindings by @jtraglia in #482
- Use
TestCaseSource
in C# reference tests by @jtraglia in #486 - Enable
-Werror
for Windows & cleanup warnings by @jtraglia in #487 - Improve the build system by @jtraglia in #483
- Update deps in Go/Rust/Fuzz by @jtraglia in #488
- Improve docs of
KZGSettings
by @b-wagn in #492 - Convert some internal variables from
uint64_t
tosize_t
by @jtraglia in #490 - Replace
size_t
withuint64_t
by @jtraglia in #478 - Pre-compute root of unity in fr-form by @jtraglia in #491
- Make minor improvements of proof computation and recovery code by @asn-d6 in #493
- Abstract commitment to interpolation poly by @asn-d6 in #494
- Refactor
is_cell_used
array & usage by @jtraglia in #495 - Reformat some function param docs for consistency by @jtraglia in #496
- Update versions in preparation of v2.0.0 release by @jtraglia in #489
- Update links in README by @jtraglia in #497
New Contributors
- @kevaundray made their first contribution in #463
Full Changelog: v1.0.3...v2.0.0
v1.0.3
Overview
This is a minor release which includes various improvements to the bindings and upgrades the blst library.
This is expected to be the last v1 release. We plan to make a v2 release with EIP-7594 support soon-ish.
What's Changed
- feat(rust): Add ethereum kzg settings by @rakita in #443
- Upgrade blst to v0.3.12 by @jtraglia in #445
- fix: add crate description to Cargo.toml by @Rjected in #429
- nim-bindings: Lift restriction of yaml test on Nim v2.x by @jangko in #431
- nim-bindings: Fix GCC-14 [-Wincompatible-pointer-types] issue by @jangko in #430
- use stand-alone
results
library by @arnetheduck in #432 - [nim] Add completeStruct pragma which workarounds Nim compiler's issue with C codegen. by @cheatfate in #437
- fix(rust): define NDEBUG when debug assertions are off by @DaniPopes in #450
- Add EIP-7594 reference tests by @jtraglia in #453
- Update versions in preparation for release 1.0.3 by @asn-d6 in #455
New Contributors
- @arnetheduck made their first contribution in #432
- @cheatfate made their first contribution in #437
Full Changelog: v1.0.2...v1.0.3
v1.0.2
Overview
This is a minor release which includes various improvements to the bindings.
What's Changed
- Adding source distribution by @step21 in #415
- Fix the Python release CI action by @jtraglia in #417
- When building Python bindings, only build blst by @jtraglia in #418
- In Python setup file, change directory instead of using absolute paths by @jtraglia in #419
- Fix broken nodejs/csharp CI tests by @jtraglia in #420
- feat: bundle and auto-load trusted setup by @matthewkeil in #422
- feat: turn on exceptions by @matthewkeil in #423
- fix: simplify how default setup is found by @matthewkeil in #424
- nim-bindings fix: prevent Nim GC call free_trusted_setup if it already called manually by @jangko in #426
- Update versions in preparation for release by @jtraglia in #428
New Contributors
Full Changelog: v1.0.1...v1.0.2