An implementation of the KZG polynomial commitment scheme in Rust
KZG is one of the most commonly used polynomial commitment scheme, used in many zero knowledge protocols. Though there are many KZG libraries out there, we decided to code the basic implementation from scratch in order to fully understand the nitty gritty details of it. We use Rust to build it out and include test cases.
We use Rust and Arkworks to build the KZG implementation. Arkworks is a common zkSnarks library which handle things such as polynomials and scalar field, so it helps us abstract some lower level details. Other than that, we write KZG based on its original paper: https://www.iacr.org/archive/asiacrypt2010/6477178/6477178.pdf