Ein zk-SNARK funktioniert, indem eine berechnungsbezogene Behauptung, etwa "ich kenne einen gültigen Witness, der diesen Schaltkreis erfüllt", in eine Reihe von Polynomgleichungen umgewandelt wird, die an einem einzigen zufälligen Punkt überprüft werden können, statt Schritt für Schritt. Diese Kompression macht den Beweis "succinct" (kompakt): Ein Verifier führt nur eine Handvoll elliptic-curve Pairing-Operationen aus, sodass die Prüfung eines Beweises nur Millisekunden dauert, selbst wenn die zugrunde liegende Berechnung Tausende Schritte umfasste.
Die meisten zk-SNARK-Verfahren benötigen eine trusted setup ceremony, einen einmaligen Vorgang, bei dem öffentliche Parameter erzeugt werden, die zum Erstellen und Prüfen jedes zukünftigen Beweises dienen. Teilnehmer steuern Zufallswerte bei und müssen ihren Anteil danach vernichten; ist nur ein einziger Teilnehmer ehrlich, bleibt das Setup sicher, aber eine vollständig kompromittierte Zeremonie könnte theoretisch gefälschte Beweise ermöglichen. Dies ist der wichtigste Kompromiss gegenüber dem neueren zk-STARK-Format, das auf jedes trusted setup verzichtet, dafür aber größere Beweisumfänge in Kauf nimmt.
In der Praxis ermöglichen zk-SNARKs zwei sehr unterschiedliche Anwendungsfälle. Zcash war Vorreiter für shielded transactions, bei denen bewiesen wird, dass eine Überweisung gültig, ordnungsgemäß gedeckt und nicht doppelt ausgegeben ist, ohne Absender, Empfänger oder Betrag preiszugeben. Daneben nutzen zk-Rollups zk-SNARKs, um Tausende Layer-2-Transaktionen in einem einzigen kompakten Beweis zu bündeln, der an die Basiskette übermittelt wird, was die Gaskosten senkt und gleichzeitig die Sicherheit der Basiskette erbt.
Die Technik baut auf dem umfassenderen Konzept eines zero-knowledge proof auf und fügt Kompaktheit sowie Nicht-Interaktivität hinzu, sodass Beweise einmalig erzeugt und danach unabhängig von jedem verifiziert werden können, ohne weiteren Kontakt zwischen Prover und Verifier.