Zero Knowledge Proof erklärt: ZKP einfach lernen
Zero Knowledge Proof erklärt: Wie man Wissen beweist, ohne es preiszugeben – mit dem Ali-Baba-Beispiel, den drei Grundpfeilern und zk-SNARKs in der Praxis.
Stell dir vor, du könntest jemandem beweisen, dass du ein Geheimnis kennst, ohne das Geheimnis selbst zu verraten. Genau das leistet ein Zero Knowledge Proof (ZKP): Der Beweisführer überzeugt den Prüfer davon, dass eine Aussage wahr ist – und der Prüfer erfährt dabei nichts außer genau dieser einen Tatsache. Kein Passwort, kein Geburtsdatum, kein Kontostand wechselt dabei den Besitzer.
Beschrieben haben das Verfahren Shafi Goldwasser, Silvio Micali und Charles Rackoff 1985; ihre Arbeit ist am Ende dieses Artikels verlinkt. Hier bekommst du den Zero Knowledge Proof erklärt – vom Höhlenbeispiel über die drei formalen Eigenschaften bis zu zk-SNARKs, und ebenso die Stellen, an denen das Verfahren an Grenzen stösst. Wer vorab die Grundbegriffe auffrischen will: AES-256 Verschlüsselung erklärt zeigt, was klassische Verschlüsselung leistet – und was sie, anders als ein Beweisverfahren, gerade nicht kann.
Das Ali-Baba-Höhlenproblem: ZKP einfach erklärt
Die bekannteste Veranschaulichung, mit der oft der Zero Knowledge Proof erklärt wird, ist das Ali-Baba-Höhlenproblem. Stell dir eine ringförmige Höhle mit einem Eingang und zwei Gängen (A und B) vor. Tief in der Höhle sind beide Wege durch eine magische Tür verbunden, die sich nur mit einem geheimen Passwort öffnen lässt.
Der Beweisablauf
Peggy (Beweisführerin) möchte Victor (Prüfer) beweisen, dass sie das Passwort kennt:
1. Victor bleibt draußen. Peggy betritt die Höhle und wählt zufällig Weg A oder B.
2. Victor geht zum Eingang und ruft Peggy auf, über einen bestimmten Weg herauszukommen.
3. Wenn Peggy das Passwort kennt, kann sie die magische Tür öffnen und immer den richtigen Weg nehmen.
Kennt sie das Passwort nicht, muss sie den Gang vorab erraten und liegt in der Hälfte der Fälle falsch. Jede Wiederholung halbiert die Chance, dass sie nur Glück hatte: Nach 40 Durchgängen steht sie bei 2^-40, also unter eins zu einer Billion. Victor ist überzeugt, ohne das Passwort jemals gehört zu haben.
Was bedeutet "Wissen beweisen ohne es preiszugeben" formal?
Damit ein kryptographisches Protokoll als echter ZKP gilt, muss es drei zwingende mathematische Eigenschaften erfüllen:
Die drei Grundpfeiler
- Vollständigkeit (Completeness): Wenn die Aussage wahr ist und beide Parteien ehrlich sind, wird der Beweis immer akzeptiert.
- Korrektheit (Soundness): Wenn die Aussage falsch ist, kann ein Betrüger den Prüfer (außer mit einer winzigen Wahrscheinlichkeit) nicht überzeugen.
- Null-Wissen (Zero-Knowledge): Wenn die Aussage wahr ist, erfährt der Prüfer absolut nichts anderes als die bloße Tatsache, dass die Aussage wahr ist.
Interaktive vs. nicht-interaktive Zero-Knowledge-Beweise
Das Ali-Baba-Beispiel ist ein interaktiver Beweis, da Peggy und Victor live kommunizieren müssen. In der digitalen Welt, besonders bei Blockchains, ist dieses Hin-und-Her jedoch viel zu langsam.
Die Lösung: NIZK
Daher wurden nicht-interaktive Zero-Knowledge-Beweise (NIZK) entwickelt. Durch fortgeschrittene Mathematik kann der Beweisführer ein einziges, kompaktes Datenpaket schnüren. Dieser Beweis kann an den Prüfer gesendet werden, der ihn sofort und ohne weitere Rückfragen verifizieren kann.
zk-SNARKs: Warum Blockchain-Projekte ZKP lieben
Im Krypto-Bereich fällt oft der Begriff zk-SNARKs (Zero-Knowledge Succinct Non-Interactive Argument of Knowledge). Der entscheidende Vorteil ist das Wort Succinct (kompakt).
Skalierung und Privacy
Der Beweis bleibt klein, unabhängig davon, wie aufwendig die bewiesene Berechnung war – bei der weit verbreiteten Groth16-Konstruktion in der Größenordnung einiger hundert Bytes. Die Prüfung kostet entsprechend nur einen Bruchteil dessen, was die Berechnung selbst gekostet hat. Das macht solche Beweise brauchbar für:
* Skalierung (zk-Rollups): Layer-2-Netzwerke auf Ethereum bündeln Tausende von Transaktionen off-chain, berechnen einen einzigen zk-SNARK-Beweis und senden diesen ans Mainnet. Das spart enorm an Gas-Gebühren.
* Privacy Coins: In den abgeschirmten Transaktionen von Zcash bleiben Sender, Empfänger und Betrag verborgen. Der zk-SNARK belegt dem Netzwerk trotzdem, dass die Ausgabe gedeckt ist und nicht bereits ausgegeben wurde.
Praktische Anwendungen von ZKP
Die Use-Cases für Zero Knowledge Proofs gehen weit über Kryptowährungen hinaus:
Identität und Logins
- Altersnachweis: Du kannst beweisen, dass du über 18 bist, ohne dein Geburtsdatum preiszugeben.
- Anmeldung ohne Passwortübertragung: Statt Passwort oder Hash zum Server zu schicken, weist der Client per Beweis nach, dass er es kennt. Ein erbeuteter Serverdatensatz enthält dann nichts mehr, womit sich jemand anmelden könnte. Breit ausgerollt ist dieser Gedanke heute in Form von Passkeys – die allerdings kein Beweissystem nutzen, sondern ein Schlüsselpaar.
- Supply Chain: Unternehmen können Solvenz oder Compliance nachweisen, ohne ihre vertraulichen Geschäftsbücher offenzulegen.
Grenzen und Rechenaufwand
Der deutlichste Engpass von Zero Knowledge Proofs ist die Beweiserstellung (Proving Time). Der Aufwand verschiebt sich vom Prüfer zum Beweisführer: Die Prüfung wird billig, das Erzeugen des Beweises dagegen teurer als die Berechnung, die er belegt. Wie viel teurer, hängt an der Größe des Schaltkreises, in den die Aussage zuvor übersetzt werden muss.
Trusted Setup Problem
Außerdem erfordern klassische zk-SNARKs ein sogenanntes Trusted Setup – eine einmalige Zeremonie, in der die öffentlichen Parameter erzeugt werden. Wer die dabei anfallenden Zwischenwerte aufhebt, könnte später Beweise für falsche Aussagen fälschen; deshalb verteilt man die Zeremonie auf viele Teilnehmer, von denen nur einer ehrlich gewesen sein muss. zk-STARKs kommen ohne Trusted Setup aus und stützen sich allein auf Hashfunktionen – was sie nach heutigem Stand auch gegenüber Quantenrechnern robust macht. Warum das einen Unterschied macht, ordnet Post-Quantum-Kryptografie ein. Der Preis sind deutlich größere Beweisdateien.
Zero Knowledge in der Praxis: Schlüssel im Browser erzeugen
Neben dem kryptografischen Beweisverfahren wird "Zero Knowledge" auch für eine Betriebsweise verwendet: Ein Dienst verarbeitet Daten, ohne sie je zu Gesicht zu bekommen. Wird ein Schlüssel im Browser erzeugt, bleibt er im Arbeitsspeicher der Seite; der Server erfährt davon nichts. Die dafür nötige Zufallsquelle liefert die Web Crypto API, die auf den Zufallszahlengenerator des Betriebssystems zurückgreift - nicht auf die für Kryptografie ungeeignete Funktion Math.random().
Der Vorteil ist die Spurenarmut: Kein Installationsvorgang, keine Datei auf der Platte, keine Einträge in einer Kommandozeilen-Historie. Schließt sich der Tab, ist der Zustand verfallen.
So arbeiten auch die Werkzeuge auf dieser Seite: Das PGP Verschlüsselungs-Tool erzeugt das Schlüsselpaar über die OpenPGP-Bibliothek direkt im Browser, der Passwort-Generator zieht seine Zufallswerte aus crypto.getRandomValues. In beiden Fällen verlässt weder der private Schlüssel noch das erzeugte Passwort das Gerät. Wer ein so erzeugtes Geheimnis anschließend auf mehrere Verwahrer aufteilen möchte, findet das Verfahren dafür unter Shamir's Secret Sharing.
Die letzte Meile bleibt das Risiko
Dieser Schutz endet in dem Moment, in dem der Schlüssel die Seite verlässt. Wer ihn über die Zwischenablage weitergibt, legt ihn in einen Speicher, auf den praktisch jedes laufende Programm zugreifen kann - und den moderne Betriebssysteme zudem in einer Verlaufsliste führen, oft unverschlüsselt auf der Festplatte. Ein frisch erzeugter privater Schlüssel landet damit genau dort, wo er nie sein sollte. Wer diesen Weg nutzt, schaltet die Zwischenablage-Historie ab und überschreibt die Zwischenablage unmittelbar nach dem Einfügen.
zk-SNARK und zk-STARK im Vergleich
Beide Familien beweisen dasselbe, treffen aber gegensätzliche Abwägungen. Die folgenden Eigenschaften ergeben sich unmittelbar aus den jeweiligen Originalarbeiten:
| Merkmal | zk-SNARK (Groth16) | zk-STARK |
|---|---|---|
| Beweisgröße | konstant: drei Gruppenelemente, unabhängig vom Rechenaufwand | wächst mit der Länge der Berechnung, um Größenordnungen größer |
| Trusted Setup | nötig, je Schaltkreis neu | nicht nötig, das Verfahren ist transparent |
| Sicherheit beruht auf | Paarungen auf elliptischen Kurven | ausschließlich Hashfunktionen |
| Gegenüber Quantenrechnern | die zugrunde liegende Annahme bricht | nach heutigem Stand robust |
| Prüfung auf Ethereum | nutzt die eingebauten BN254-Rechenschritte | kein eingebauter Baustein, muss in Vertragscode nachgebildet werden |
Was die Prüfung on-chain wirklich kostet
Diese Kosten sind keine Schätzung, sondern seit EIP-1108 im Ethereum-Protokoll festgeschrieben: Ein Paarungs-Check kostet 45.000 Gas als Grundbetrag plus 34.000 Gas je geprüfter Paarung. Ein Groth16-Verifizierer prüft vier Paarungen und landet damit bei 181.000 Gas; jeder öffentliche Eingabewert kommt mit 6.000 Gas für eine Skalarmultiplikation hinzu.
Entscheidend ist, was in dieser Rechnung nicht vorkommt: der Umfang der bewiesenen Berechnung. Ob der Beweis eine einzelne Signatur belegt oder zehntausend gebündelte Transaktionen, ändert an den 181.000 Gas nichts. Genau diese Entkopplung ist der wirtschaftliche Kern von zk-Rollups – je mehr Transaktionen in einem Bündel stecken, desto kleiner wird der Anteil, den jede einzelne an den Prüfkosten trägt. Welche Netzwerke das derzeit wie einsetzen, führt L2BEAT laufend nach; feste Gebührenangaben stehen hier bewusst nicht, weil sie binnen Wochen überholt sind.
Häufig gestellte Fragen
Was ist der Unterschied zwischen zk-SNARK und zk-STARK?
zk-SNARKs erzeugen einen konstant kleinen Beweis, verlangen dafür aber ein Trusted Setup und stützen sich auf Annahmen über elliptische Kurven. zk-STARKs kommen ohne Setup aus und beruhen allein auf Hashfunktionen, wodurch sie auch gegenüber Quantenrechnern robust bleiben – ihre Beweise fallen dafür deutlich größer aus. Das ist eine Abwägung zwischen Beweisgröße und Vertrauensannahme, keine Rangfolge.
Sind Zero Knowledge Proofs quantensicher?
Das hängt am konkreten Verfahren, nicht am Begriff. Klassische zk-SNARKs wie Groth16 beruhen auf Annahmen über elliptische Kurven, die ein hinreichend großer Quantenrechner brechen würde. zk-STARKs verwenden ausschließlich Hashfunktionen und gelten deshalb nach heutigem Stand als post-quantum-sicher – so führt es die Originalarbeit von Ben-Sasson und Kollegen bereits im Titel.
Kann ich einen Zero Knowledge Proof selbst ausprobieren?
Ohne Programmierung nicht sinnvoll: Ein Beweissystem braucht einen Schaltkreis, in den die zu beweisende Aussage erst übersetzt werden muss; die verbreiteten freien Werkzeuge dafür heissen circom und snarkjs. Direkt nachvollziehbar ist dagegen das verwandte Betriebsprinzip – Daten verarbeiten, ohne sie je an einen Server zu geben. Der Passwort-Generator und das PGP Verschlüsselungs-Tool auf dieser Seite erzeugen ihre Werte ausschließlich im Browser.
Quellen und weiterführende Standards
- Goldwasser, Micali, Rackoff: The Knowledge Complexity of Interactive Proof Systems (PDF)
- ZKProof: Community Reference Standard
- NIST: Privacy-Enhancing Cryptography Project
- Ethereum-Dokumentation: Zero-Knowledge-Rollups
- Zcash Protocol Specification (PDF)
- W3C: Web Cryptography API
- Jens Groth: On the Size of Pairing-based Non-interactive Arguments (Groth16, 2016)
- Ben-Sasson u.a.: Scalable, transparent, and post-quantum secure computational integrity (zk-STARK, 2018)
- EIP-1108: Reduce alt_bn128 precompile gas costs (Final)
