Der Zero-Knowledge-Beweis, abgekürzt ZKP, ist eine neuartige Methode, um eine Tatsache zu beweisen, ohne dabei private Informationen preiszugeben. Das Entstehen des Zero-Knowledge-Beweises ist eines der wichtigsten Dinge für uns, den Schutz von Privatsphäre-Daten. Heutzutage wird ZKP in vielen Blockchain-Projekten weit verbreitet eingesetzt, die effektiv eine Möglichkeit bieten, den Benutzer zu authentifizieren, ohne die Privatsphäre des Benutzers in einer öffentlichen Umgebung preiszugeben. Immer mehr Anwendungsfälle nutzen ZKP, um Benutzer in unserem täglichen Leben zu authentifizieren. Zum Beispiel, wenn wir beweisen möchten, dass ein Student die Prüfung bestanden hat, aber die tatsächliche Note nicht zeigen wollen. Auch beim Kauf von Versicherungen möchten wir der Versicherungsgesellschaft nur zeigen, dass wir keinen Krebs haben, aber keine weiteren Details über unsere Gesundheit preisgeben, und so weiter.
Im Allgemeinen ist der Beweis nicht dasselbe wie der strenge mathematische Beweis, der Axiome und Logik verwendet. Die meisten ZKP-Beweise basieren auf mathematischer Wahrscheinlichkeit, was bedeutet, dass das Ergebnis aus statistischer Sicht bewiesen werden kann. Der Verifier wird den Prover zufällig nach dem Beweis fragen. Wenn der Prover immer das korrekte Ergebnis liefern kann, wird nach einigen Versuchen, obwohl die Möglichkeit eines Fehlers im Beweis nicht null ist, aber sehr nahe daran, dieser kleine Fehler kann technisch ignoriert werden und der Beweis wird als erfolgreich angesehen.
Betrachten wir einige Beispiele für den Zero-Knowledge-Beweis. Alice möchte Bob beweisen, dass sie den Schlüssel zu einem Raum hat. Wie kann sie das tun? Natürlich kann sie Bob den Schlüssel geben, um die Tür zu öffnen, und damit beweisen, dass sie den Schlüssel hat. Aber das würde Bob ermöglichen, den Schlüssel zu sehen. Wenn Alice andere private Informationen wie Alter oder Wohnadresse auf dem Schlüssel hat, würden diese ebenfalls an Bob weitergegeben. Was können wir tun, um Alice zu ermöglichen, die Tatsache zu beweisen, ohne Bob den Schlüssel zu zeigen? Eine mögliche Lösung könnte sein: Alice sagt Bob, dass sie etwas aus dem Raum holen kann, das Bob kennt, und es ihm zeigt, und damit indirekt beweist, dass sie den Schlüssel hat.
Schauen wir uns eine andere Frage an. Alice hat zwei Bälle, die rot und grün sind. Ihr Freund Bob hat eine Farbenblindheit und kann Farben nicht identifizieren. Wie kann Alice Bob beweisen, dass die beiden Bälle unterschiedliche Farben haben? Eine Lösung könnte sein: Bob legt die beiden Bälle in seine Hände. In jeder Runde kann er zufällig entscheiden, ob er die Bälle in seinen Händen tauschen oder nicht tauschen möchte, ohne dass Alice die Tauschaktion sieht. Dann wird er Alice fragen, ob er die Bälle getauscht hat. Da Alice keine Farbenblindheit hat, kann sie die Farbe der Bälle in Bobs Händen korrekt bestimmen. Nach einigen Runden, wenn Alice immer richtig antworten kann, wird Bob wissen, dass die beiden Bälle unterschiedliche Farben haben, weil die Möglichkeit eines Fehlers sehr gering ist.
Das dritte Beispiel für ZKP ist die bekannte Ali Baba-Höhle. Standort A und Standort B befinden sich in einer Höhle und sind durch eine Tür getrennt, die mit Schlüsseln geöffnet werden kann. Wenn Alice Bob beweisen möchte, dass sie den Schlüssel zur Tür hat, was kann sie tun, um den Beweis zu erbringen, ohne Bob den Schlüssel zu zeigen? Die mögliche Lösung wäre: Alice kann zufällig wählen, ob sie sich an Standort A oder Standort B befindet, und Bob weiß nicht, wo sie sich befindet. Bob wird zufällig eine Seite auswählen, entweder A oder B, und Alice bitten, durch diese Höhle herauszukommen. Zum Beispiel, wenn Alice an Standort A steht und Bob sie bittet, durch die B-Seite herauszukommen, muss sie den Schlüssel verwenden, um die Tür zu öffnen. Nach einigen Runden wird Bob glauben, dass Alice den Schlüssel zur Tür hat, und Alice muss Bob den Schlüssel nicht zeigen.
Attribution: