This repository implements the proof system used in Midnight, along with tooling for building zero-knowledge circuits.
curves
: Implementation of elliptic curves used in midnight, concretely BLS12-381 and JubJubproof-system
: Plonk proof system using KZG commitmentscircuits
: Tooling for constructing ZK circuitsaggregator
: Toolkit for proof aggregation of midnight-proofs.
This project was originally built upon the foundations of several outstanding open-source libraries:
blstrs
– by the Filecoin Projectjubjub
– by the Zcash Projecthalo2
v0.3.0 – by the Privacy Scaling Explorations (PSE) team, itself originally derived from the Zcash Sapling proving system
We initially maintained the following components as forks:
bls12-381
and its embeddedjubjub
implementation originated as forks ofblstrs
andjubjub
, respectively.proof-system
began as a fork ofhalo2
v0.3.0.
Over time, our codebases have diverged from the upstream projects. These components are no longer maintained as forks and have evolved into standalone implementations tailored to Midnight's needs.
We gratefully acknowledge the authors and maintainers of the original projects.