zkStruDul: Programming zkSNARKs with Structural Duality

Fuente: arXiv
Enregistré dans:
Détails bibliographiques
Auteurs principaux: Krishnan, Rahul, Samuelson, Ashley, Yao, Emily, Cecchetti, Ethan
Format: Preprint
Publié: 2025
Sujets:
Accès en ligne:
Tags: Ajouter un tag
Pas de tags, Soyez le premier à ajouter un tag!
_version_ 1866917078957555712
author Krishnan, Rahul
Samuelson, Ashley
Yao, Emily
Cecchetti, Ethan
author_facet Krishnan, Rahul
Samuelson, Ashley
Yao, Emily
Cecchetti, Ethan
contents 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.
format Preprint
id arxiv_https___arxiv_org_abs_2511_10565
institution arXiv
publishDate 2025
record_format arxiv
spellingShingle zkStruDul: Programming zkSNARKs with Structural Duality
Krishnan, Rahul
Samuelson, Ashley
Yao, Emily
Cecchetti, Ethan
Programming Languages
Cryptography and Security
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.
title zkStruDul: Programming zkSNARKs with Structural Duality
topic Programming Languages
Cryptography and Security
url https://arxiv.org/abs/2511.10565