--- tags: eip-4844, kzg --- # Notes on KZG Intro Article by Scroll https://scroll.io/blog/kzg - KZG is polynomial commitment scheme - Used in Scroll's zk-roolups, and Ethereum's Proto-Danksharding - Polynomials can be used to represent large objects in an efficient way - The process of finding this unique polynomial which passes through n arbitraray points is called "polynomial interpolation" - ![](https://i.imgur.com/2eMJwkF.png) - With polynomail commitment schemes: - the commiter commits to a polynomial, rather than some arbitrary message `m`. - The committer should be able to “open” certain evaluations of the committed polynomial without revealing the entire thing - The KZG polynomial commitment scheme consists of 4 steps 1. setup 2. commit to polynomial 3. prove an evaluation 4. verify an evaluation proof ## Usage in Scaling Ethereum In Proto-Danksharding: data blobs are represented as polynomials, and their commitments are computed via KZG. The mathematical properties of KZG enable Data Availability Sampling (DAS), which is critical to the scaling of Ethereum’s data layer. - blob data as sidecar - commit tx - kzg commitment: Data blobs -> represented as polynomials -> output polynomial commitment `c` using trusted setup output - proof output from proving an evaluation (proof size is always 48 bytes, compressed G1 BLS12-381 point)