add a README

This commit is contained in:
Balazs Komuves 2024-12-13 20:24:24 +01:00
parent 1d513debb9
commit 0328ecdf5e
No known key found for this signature in database
GPG Key ID: F63B7AEF18435562

57
README.md Normal file
View File

@ -0,0 +1,57 @@
A standalone Plonky2 verifier
-----------------------------
This is a (WIP) implementation of a Plonky2 verifier in Haskell.
[Plonky2](https://github.com/0xPolygonZero/plonky2/) is a zero-knowledge proof
system developed by Polygon Zero, optimized for recursive proofs.
The goal here is to provide an executable specification (along a with less precise,
but still detailed human language description) of the Plonky2 verification
algorithm.
Another goal is to be a basis for further tooling (for example:
estimating verifier costs, helping the design of recursive circuits, generating
Plonky2 verifier circuits for other proof systems, etc)
Note: It's deliberately no a goal for this verifier to be efficient; instead we
try to focus on simplicity.
### Implementation status
- [x] Parsing the proof and verification key from JSON
- [ ] Parsing from Plonky's custom binary serialization
- [x] Generating verifier challenges
- [ ] Recursive circuit subtle details (like [this](https://github.com/0xPolygonZero/plonky2/blob/356aefb6863ac881fb71f9bf851582c915428458/plonky2/src/fri/challenges.rs#L55-L64]))
- [ ] Constraints check
- [ ] FRI check
- [ ] Documenting Plonky2 internals and the verifier algorithm
Supported gates:
- [x] ArithmeticGate
- [x] ArithmeticExtensionGate
- [x] BaseSumGate
- [ ] CosetInterpolationGate
- [x] ConstantGate
- [x] ExponentiationGate
- [ ] LookupGate
- [ ] LookupTableGate
- [x] MulExtensionGate
- [x] NoopGate
- [x] PublicInputGate
- [ ] PoseidonGate
- [ ] PoseidonMdsGate
- [ ] RandomAccessGate
- [ ] ReducingGate
- [ ] ReducingExtensionGate
Optional features:
- [ ] Field extensions with degree higher than 2
- [ ] Being parametric over the field choice
- [ ] Supporting different hash function choices