From 0328ecdf5e259c974322b97650ceb8a768451dda Mon Sep 17 00:00:00 2001 From: Balazs Komuves Date: Fri, 13 Dec 2024 20:24:24 +0100 Subject: [PATCH] add a README --- README.md | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..a22426e --- /dev/null +++ b/README.md @@ -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 + +