Clap: a Semantic-Preserving Optimizing eDSL for Plonkish Proof Systems
Marco Stronati, Denis Firsov, Antonio Locascio, and Benjamin Livshits

TL;DR
Clap is a Rust-based embedded domain-specific language that simplifies creating, optimizing, and verifying zero-knowledge proof circuits, ensuring correctness and improving performance over manual methods.
Contribution
It introduces a proof system agnostic, semantic-preserving compiler for Plonkish circuits, enabling automatic optimization and formal guarantees.
Findings
Automatic optimizations outperform manual circuit optimization
Clap guarantees correctness through semantic-preserving compilation
Supports automatic derivation of custom gates
Abstract
Plonkish is a popular circuit format for developing zero-knowledge proof systems that powers a number of major projects in the blockchain space, responsible for holding billions of dollars and processing millions of transactions per day. These projects, including zero-knowledge rollups, rely on highly hand-optimized circuits whose correctness comes at the cost of time-consuming testing and auditing. In this paper, we present Clap, the first Rust eDSL with a proof system agnostic circuit format, facilitating extensibility, automatic optimizations, and formal assurances for the resultant constraint system. Clap casts the problem of producing Plonkish constraint systems and their witness generators as a semantic-preserving compilation problem. Soundness and completeness of the transformation guarantees the absence of subtle bugs caused by under- or over-constraining. Our experimental…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsNatural Language Processing Techniques · Logic, programming, and type systems
