Begriff
Zero-Knowledge Proof (ZKP)
Warum wichtig?
Dieser Begriff ist ein Knoten im SengakujiWorks-Wissensnetz. Nutze Level 0 für die erste Einordnung, Level 1 für Praxis, Level 2 für technische Struktur und Level 3 für Grenzen, Fallstricke und Expertenkontext.
Ich behaupte: "Ich kenne das Passwort für diesen Tresor." Du sagst: "Beweis es! Sag mir das Passwort." Wenn ich es sage, kennst du es auch. (Nicht Zero-Knowledge). ZKP-Lösung: Du schreibst eine geheime Nachricht, legst sie in den Tresor. Ich gehe rein, hole sie raus und zeige sie dir. Beweis erbracht ("Ich kann den Tresor öffnen"), aber Passwort nicht verraten. Ich habe bewiesen, dass ich ein Geheimnis kenne, ohne das Geheimnis selbst zu zeigen. Das ist Magie für Blockchains (Zcash, Ethereum Layer 2): Man beweist "Ich habe Geld", ohne zu zeigen, wer man ist oder wie viel man hat.
Merksatz: Ein kryptografisches Protokoll, bei dem eine Partei (Beweiser) einer anderen Partei (Verifizierer) beweisen kann, dass eine Aussage wahr ist (z. B. "Ich kenne x"), ohne irgendeine Information außer der Wahrhaftigkeit der Aussage preiszugeben.
- Identitätsprüfung: Beweise "Ich bin über 18", ohne dein Geburtsdatum zu zeigen.
- zk-Rollups (Ethereum): Berechne 1000 Transaktionen Off-Chain. Generiere einen winzigen Beweis (zk-SNARK), dass alles korrekt war. Die Blockchain prüft nur den Beweis. Massive Skalierung.
1. Ali Baba Höhle
Die klassische Metapher. Peggy (Prover) will Victor (Verifier) beweisen, dass sie das Zauberwort für eine Tür in einer Ring-Höhle kennt. Victor wartet am Ausgang. Peggy geht rein. Victor ruft: "Komm links raus!" Wenn Peggy das Wort kennt, kann sie durch die Tür gehen und links rauskommen. Wenn nicht, hat sie eine 50% Chance, schon links zu stehen. Wiederhole es 20 Mal. Chance zu raten: $1/2^{20}$.
2. SNARKs vs STARKs
- zk-SNARK: (Succinct Non-Interactive Argument of Knowledge). Klein, schnell, aber braucht "Trusted Setup" (Initial-Zeremonie, wo Müll-Daten vernichtet werden müssen).
- zk-STARK: (Scalable Transparent...). Größere Beweise, aber kein Trusted Setup und quantensicher.
1. Fiat-Shamir Heuristic (Non-Interactive)
Wie macht man einen ZKP statisch? (Man will ja nicht 20x mit der Blockchain chatten).
Die Fiat-Shamir Heuristik ersetzt den Verifier durch eine kryptografische Hashfunktion.
Anstatt dass der Verifier eine Zufallszahl wählt ("Komm links raus!"), berechnet der Beweiser den Hash-Wert seiner eigenen Aussage. Da er den Hash nicht vorhersagen kann, dient er als "unbestechlicher Zufallsgenerator". Das Ergebnis ist ein Proof-String, den man einfach posten kann und den jeder jederzeit offline prüfen kann.
2. Polynomial Commitments (KZG, FRI)
Modernste ZKPs (wie in Ethereum 2.0) verarbeiten Daten als Polynome. Statt einer Liste von Zahlen schickt man ein "Commitment" (ein winziger kryptografischer Fingerabdruck) eines Polynoms. Mit dem KZG Commitment (Kate-Zaverucha-Goldberg) kann man beweisen: "An Stelle $x$ hat dieses Polynom den Wert $y$." Und das, ohne das Polynom selbst zu verraten. Dies ist das Fundament von Proto-Danksharding, das Ethereum-Transaktionskosten massiv senkt.
3. The Trusted Setup Dilemma
Ein zk-SNARK braucht ein "Common Reference String" (CRS). Wenn die Leute, die diesen String generieren, die "Gift-Daten" (Toxic Waste) behalten, können sie falsche Beweise fälschen. In der Produktion (z.B. bei Zcash) gab es deshalb eine "Multi-Party Computation (MPC) Zeremonie": hunderte Teilnehmer weltweit steuerten Zufallswerte bei. Nur wenn alle Teilnehmer korrupt sind, ist das System unsicher. STARKs (Level 2) lösen dieses Problem komplett, da sie kein Setup brauchen, sind aber mathematisch komplexer und die Beweise sind größer.
Quick-Check
Interaktiv?
Klassische ZKPs sind interaktiv (Frage-Antwort). Moderne (Non-Interactive ZKP) nutzen den "Fiat-Shamir Heuristic", um aus der Interaktion einen einzigen statischen Beweis-String zu machen.Performance?
Beweis erstellen ist rechenintensiv (Sekunden bis Minuten). Beweis prüfen ist extrem schnell (Millisekunden). Das macht sie perfekt für Blockchain-Skalierung.Tornado Cash?
Ein "Mixer" auf Ethereum, der ZKPs nutzte, um Geldherkunft zu verschleiern. Wurde sanktioniert. Zeigt das Spannungsfeld Privacy vs. Geldwäsche.