Specifications for cryptography in Ethereum, written in Lean.
EthCryptographySpecs/Bls/, BLS12-381 curve arithmetic, hash-to-curve, and signatures.EthCryptographySpecs/Kzg/, KZG polynomial commitments.
Formal proofs of properties of the specs exist in
EthCryptographySpecs/Proofs/, mirroring the layout above.
elan, forleanandlake.
lake exe cache get
lake buildNote: lake exe cache get is only needed after
the initial clone or after lake update; otherwise, lake build is sufficient.
python3 -m venv .venv
source .venv/bin/activate
pip install -e '.[test]'
pytestNote: Pre-generated reference tests are written to tests/ at the project
root. These tests are intended for use across implementations and may be pinned
by downstream consumers.