Skip to content

codex-storage/plonky2-verifier

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

A standalone Plonky2 verifier

This is a (WIP) implementation of a Plonky2 verifier written in Haskell.

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 not a goal for this verifier to be efficient; instead we try to focus on simplicity.

Implementation status

  • Parsing the proof and verification key from JSON
  • Parsing from Plonky's custom binary serialization
  • Generating verifier challenges
  • Recursive circuit subtle details (like this)
  • Constraints check
  • FRI check
  • Support lookup tables
  • Documenting Plonky2 internals and the verifier algorithm

Supported gates:

  • ArithmeticGate
  • ArithmeticExtensionGate
  • BaseSumGate
  • CosetInterpolationGate
  • ConstantGate
  • ExponentiationGate
  • LookupGate
  • LookupTableGate
  • MulExtensionGate
  • NoopGate
  • PublicInputGate
  • PoseidonGate
  • PoseidonMdsGate
  • RandomAccessGate
  • ReducingGate
  • ReducingExtensionGate

Optional features:

  • Field extensions with degree higher than 2
  • Being parametric over the field choice
  • Supporting different hash functions

About

self-contained Plonky2 verifier

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published