English

zkStruDul: Programming zkSNARKs with Structural Duality

Programming Languages 2025-11-14 v1 Cryptography and Security

Abstract

Non-Interactive Zero Knowledge (NIZK) proofs, such as zkSNARKS, let one prove knowledge of private data without revealing it or interacting with a verifier. While existing tooling focuses on specifying the predicate to be proven, real-world applications optimize predicate definitions to minimize proof generation overhead, but must correspondingly transform predicate inputs. Implementing these two steps separately duplicates logic that must precisely match to avoid catastrophic security flaws. We address this shortcoming with zkStruDul, a language that unifies input transformations and predicate definitions into a single combined abstraction from which a compiler can project both procedures, eliminating duplicate code and problematic mismatches. zkStruDul provides a high-level abstraction to layer on top of existing NIZK technology and supports important features like recursive proofs. We provide a source-level semantics and prove its behavior is identical to the projected semantics, allowing straightforward standard reasoning.

Keywords

Cite

@article{arxiv.2511.10565,
  title  = {zkStruDul: Programming zkSNARKs with Structural Duality},
  author = {Rahul Krishnan and Ashley Samuelson and Emily Yao and Ethan Cecchetti},
  journal= {arXiv preprint arXiv:2511.10565},
  year   = {2025}
}
R2 v1 2026-07-01T07:36:15.629Z