SuperNova
Warning: this implementation is experimental and not audited. Please use at your own risk.
This repository contains an implementation of the SuperNova protocol, written in Rust. SuperNova is a novel recursive proof system and an extension of the Nova protocol, which introduces folding schemes to circuit arithmetizations, in order to compress multiple executions of the same circuit into one. SuperNova builds on top of this by introducing a VM-like construction where a prover defines circuits separately for each VM instruction, and folds any executed program into the correct circuits, instruction by instruction.
Progress
- R1CS arithmetization
- Vanilla Plonk arithmetization
- Prover/verifier construction
- Tests
Optimizations TBD