Zero-Knowledge Proof

In diesem Blogpost berichte ich über das Thema “Zero-Knowledge Proof”. Ich bin auf dieses Thema aufgestossen, als ich ein Video darüber in meine YouTube Recommendations empfohlen bekommen habe. Das Video hat meine Interesse zu diesem Thema weiter geweckt, weshalb ich mich mehr darüber informieren möchte und ein Blogpost schreiben will.

Was ist Zero-Knowledge Proof?

Nehmen wir mal an du besitzt etwas und möchtest dein Kollegen beweisen, dass es dir gehört. Sagen wir mal es geht um ein Smartphone. Wie willst du es deinem Kollegen beweisen, dass dieses Smartphone dir gehört? Das ist ja ganz einfach. Wenn das Smartphone gesperrt ist, kannst du es mit dein Fingerabdruck oder Passwort entsperren. Oder vielleicht ist das Smartphone gar nicht mit dein Passwort gesperrt, dann würdest du deine Quittung vornehmen und es deinen Kollegen auf diese Art beweisen. Das ist alles schön und gut, doch was wenn du all diese Informationen gar nicht offenbaren möchtest? Was wenn du so wenig wie möglich bis hin zu gar keine Informationen veröffentlichen möchtest, um zu beweisen, dass der Smartphone dir gehört und am Schluss deinen Kollegen voll und ganz überzeugen willst? Wenn man das sich zuerst anhört ist der erste (und auch normale) Gedanke “What? Das ist doch unmöglich?”. Doch das Ziel von Zero-Knowledge Proof ist genau diese angeblich unmögliche Aufgabe möglich zu machen.

In einem ZKP (Abkürzung für Zero-Knowledge Proof) muss die Überprüfung von Daten sichergestellt werden, ohne die betreffenden Daten preiszugeben. ZKPs sind revolutionäre und innovative Instrumente des kryptografischen Hashings, die die bisherige Art und Weise des Informationsaustauschs verändern können. Die wichtigsten Aspekte in der Funktionsweise eines ZKP-Beispiels beziehen sich auf den „Verifier“ und den „Prover“.

Bei einer Transaktion, die ZKPs beinhaltet, kann der Prover versuchen, dem Verifier einen bestimmten Sachverhalt zu beweisen, ohne dem Verifier irgendwelche anderen Informationen über den Sachverhalt zu offenbaren. Das Endergebnis stellt sicher, dass der Prover nachweisen kann, dass er in der Lage ist, einen bestimmten Prozess zu berechnen, ohne Informationen über den Berechnungsprozess oder die Eingabe preiszugeben. Im Endeffekt ist der Verifizierer nur in der Lage die Ausgabe oder den “Beweis” zu erfahren, ohne weitere Informationen.

Es hat also wichtige Kriterien, die Zero-Knowledge Proof charakterisieren:

  • Vollständigkeit ist das erste wichtige Merkmal in einem ZKP-Beispiel. Der ZKP muss in der Lage sein, den Verifizierer davon zu überzeugen, dass der Prover weiß, was er zu wissen behauptet.
  • Das zweite wichtige Merkmal eines ZKP-Beispiels bezieht sich auf die Solidität. Die ZKP kann den Verifizierer nicht davon überzeugen, dass die vom Prover gelieferten Informationen wahr sind, wenn die Informationen falsch sind.
  • Unter all diesen Eigenschaften ist die “Zero-Knowledge”-Eigenschaft des ZKPs im Grunde der einzigartige und sehr wichtige Eigenschaft. Die “Zero-Knowledge“-Eigenschaft impliziert, dass das ZKP dem Verifizierer keine weiteren Informationen offenlegen sollte.

Zero-Knowledge Proof Beispiel

Kryptographische Algorithmen dienen als Grundlage für ein Zero-Knowledge Proof-Beispiel. Die Einführung von ZKPs hat dazu beigetragen, Identitäts-Authentifizierungssysteme zu erstellen, bei denen kein (oder zumindest sehr minimales) Risiko des Informations-Diebstahls besteht. Viele Menschen zweifeln jedoch an der Funktionalität von ZKPs. Es ist ja auch verständlich, dass man sich fragt, ob die Implementierung eines neuen kryptografischen Blockchain-Protokolls wirklich durch ZKP überhaupt machbar ist. Immerhin redet man hier darüber etwas zu beweisen, ohne die wichtigsten Informationen zu haben. Daher ist es wichtig, die Feinheiten der Funktionsweise von ZKP anhand genau zugeschnittener Beispiele zu verstehen. Seit dem Aufkommen von Zero-Knowledge Proofs gibt es viele Beispiele, die zeigen, wie ZKPs funktionieren.