finds.dev← search

// the find

ethereum/c-kzg-4844

★ 177 · C · Apache-2.0 · updated Oct 2026

A minimal implementation of the Polynomial Commitments API for EIP-4844 and EIP-7594, written in C.

A C implementation of the KZG polynomial commitment functions used by EIP-4844 blob commitments and EIP-7594 data availability sampling, with function names kept close to the consensus-specs Deneb and Fulu documents. It is meant for client and tooling developers who want to reuse one core through bindings for nine languages instead of reimplementing the cryptography, not for general-purpose KZG users.

The public functions map directly onto the spec's named functions, so checking an implementation against the Deneb and Fulu documents is a straight read. Every binding runs the consensus-spec-tests KZG vectors, and the C core has its own unit test file in src/test/tests.c. Both EIP implementations were audited (Sigma Prime for EIP-4844 in 2023, zkSecurity for EIP-7594 in 2025), and the reports are in the repo. The precompute parameter comes with a measured table of load time, compute time and memory across levels 0 to 15, so the setting can be chosen from numbers rather than guessed.

Everything is single-threaded by design. The README's sub-3ms figure for verify_blob_kzg_proof is for one blob, and the only batch number given is a 53% per-blob gain at 64 blobs, with no timing for the cell batch verifier. The precompute trade-off is steep: level 0 loads in about 1.7 s and computes in about 311 ms, level 8 needs 96 MiB, and the top levels need up to 12 GiB and about 75 s of startup. All of those figures come from one M1 machine. The README also says the library is not expected to be used outside the bindings, so a direct C consumer gets no stated API stability or support, and blst is pulled in as a git submodule, so a clone without --recursive will not build.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →