MobileCoin Zahlungen sind anonym wie Bargeld

MobileCoin Zahlungen sind anonym wie Bargeld
Photo by Shubham Dhage / Unsplash

Zero-Knowledge-Beweise

Um sicherzustellen, dass MobileCoin-Benutzer sicher miteinander kommunizieren und MOB-Tokens senden und empfangen können, während gleichzeitig verhindert wird, dass Gegner ihre Transaktionsbeträge manipulieren oder davon erfahren, haben WiR bei MobileCoin Zero-Knowledge Proofs (ZKPs) mit rechnerischer Ununterscheidbarkeit implementiert. ZKPs stellen sicher, dass niemand außer Ihnen und nicht einmal der Dienstanbieter der Messaging-Anwendung oder die MobileCoin-Entwickler auf Ihre persönlichen Daten zugreifen kann.

1) Erklärs mir, als wäre ich 5

Nehmen wir an, Sie sind Zwillinge und haben beide zu Ihren Geburtstagen Geld erhalten. Sie gehen davon aus, dass es sich um die gleiche Menge handelt, da Sie Zwillinge sind. Aber vielleicht waren Mama und Papa Ihrem Geschwister gegenüber etwas großzügiger, da er dieses Jahr jeden Tag sein Zimmer geputzt hatte, Sie jedoch nicht. Also bereiten Sie ein kleines Spiel vor. Sie haben 50 $ erhalten und möchten sehen, ob er den gleichen Betrag erhalten hat. Du erzählst ihm, dass du zehn Play-Doh-Plastikbehälter hast. Sie schreiben 30, 40, 50, 60, 70, 80, 90, 100, 110 und 120 auf die Oberseite der Dosen, um Dollarbeträge darzustellen, und schneiden dann dünne Schlitze in die Oberseite jeder Dose. Sie fordern Ihren Bruder auf, den Raum zu verlassen, und legen eine Feder in den Behälter, die den Geldbetrag darstellt, den Sie erhalten haben. Sie legen eine Feder in den mit „50“ gekennzeichneten Kanister und kleben alle Kanister fest. Sie sagen Ihrem Bruder Allen, er solle zurückkommen und ein Stück Kaugummi in den Behälter stecken, der das darstellt, was er erhalten hat, nachdem Sie den Raum verlassen haben. Er hat 100 Dollar erhalten, aber das wissen Sie nicht.

Sie kehren zurück und öffnen Ihren Behälter mit der Aufschrift „50“. Da sich kein Kaugummi darin befindet, wissen Sie jetzt, dass Ihr Bruder eine andere Menge erhalten hat, aber Sie wissen nicht, ob es mehr oder weniger war, als Sie erhalten haben. Auch Ihr Bruder kommt zurück und schaut in seinen Kanister. Da er keine Feder sieht, weiß er, dass ihr beide unterschiedliche Beträge erhalten habt, weiß aber auch nicht, ob es mehr oder weniger war. Dies ist ein einfaches Beispiel dafür, wie ZKP funktioniert. Auf diese Weise erfahren Sie, dass Sie zu Ihren Geburtstagen nicht den gleichen Geldbetrag erhalten haben, aber Sie haben immer noch keine Ahnung, ob Ihr Bruder mehr oder weniger als Sie und umgekehrt erhalten hat und wie viel. Das ZKP-Protokoll schützt die Vertraulichkeit Ihrer beiden sensiblen Informationen, also des Geldbetrags, den Sie bei einer Transaktion erhalten haben.

2) Eltern & Großeltern

Angenommen, ein älterer Herr wird in die Jahre gekommen und ist fast blind. Am Morgen zieht er sich an, greift in seine Sockenschublade und holt zwei Socken heraus. Er fragt seine Frau, welche Farben die Socken haben. Seine Frau sagt ihm, einer sei rot und einer sei gelb. Sie sagt, er könne diese nicht tragen, weil sie nicht zusammenpassen. Er weiß, dass sie die Socken sehen und erkennen kann, ob sie rot oder gelb sind. Aber er weiß auch, dass sie sich nur zu ihrem eigenen Vergnügen mit ihm anlegen könnte. Sie hat einen seltsamen Sinn für Humor. Er vertraut ihr also nicht wirklich. Um die Wahrheit zu sagen, spielt er das Sockenspiel.

Er legt die Socken hinter seinen Rücken und vertauscht sie mehrmals, sodass sie nicht sehen kann, welche es sind. Aber er behält den Überblick und weiß, welches welches ist. Er fragt sie: Welches ist die rote Socke? Wenn beide rot und nicht zu unterscheiden sind, muss sie mit einer 50/50-Wahrscheinlichkeit erraten, dass es sich bei der Socke um die Socke handelt, von der sie zuvor gesagt hat, sie sei rot. Wenn sie jedoch gelb und rot sind, sind sie unterscheidbar und sie kann einfach auf die rote Socke zeigen. Wenn sie zufällig dreimal hintereinander die richtige Sockenfarbe errät, weiß er, dass sie weiß, dass sie irgendwie unterschiedlich sind. Hinweis: Er wird nie 100 % sicher sein, dass sie nicht mit ihm gespielt hat, aber nach genügend Wiederholungen ist er ziemlich überzeugt, weil die Wahrscheinlichkeit, dass sie richtig geraten hat, so gering ist, dass sie vernachlässigbar ist.

Dies beantwortet die erste Eigenschaft von ZKPs, nämlich die Vollständigkeit. Wenn die Socken tatsächlich unterschiedliche Farben haben, kann sie die Testfragen zu 100 % beantworten.

Die zweite Eigenschaft ist Solidität. Wenn die Socken keine unterschiedlichen Farben haben, ist ihre Chance, alle Tests zu bestehen, sehr gering.

Die dritte Eigenschaft ist Nullwissen. Wenn die Aussage wahr ist und die Socken unterschiedliche Farben haben, erfährt der Prüfer (der alte Mann) nur, dass die Aussage wahr ist und sonst nichts. In diesem Fall ist das Nullwissen wahr. Nehmen wir jedoch an, wir filmen diese Interaktion mit einer Schwarzweißkamera. Angenommen, Sie sehen sich das Videoband und diese Interaktion an, bei der seine Frau jedes Mal richtig geraten hat. Und am Ende sieht man, dass der ältere Herr glaubt, die Socken hätten eine andere Farbe.

Überzeugt Sie das Ansehen des Videos, dass es wahr ist? Die Antwort sollte lauten: „Nein, das Ansehen des Videos überzeugt mich nicht.“ Anhand des Schwarz-Weiß-Videos kann man nicht erkennen, welche Farbe die Socken haben.

Der Beweis überzeugt den alten Mann und er weiß, dass er die Socke zufällig ausgewählt hat. Aber wenn Sie ein Beobachter sind, können Sie nicht wissen, dass die beiden nicht zusammengearbeitet haben, und Sie können nicht wissen, dass diese Zahlen nicht zufällig sind, weil Sie nicht ausgewählt haben, wie oft er tauschen soll die Socken.

Er könnte einfach so tun, als wäre er mit ihren Antworten zufrieden, obwohl die Socken tatsächlich die gleiche Farbe haben. Tatsächlich könnte jeder ein solches Video machen, unabhängig davon, ob die Socken die gleichen oder unterschiedliche Farben haben.

Da jeder ein solches Video machen könnte, unabhängig davon, ob er die Farbe der Socken kennt oder nicht, können wir sicher sein, dass das Video überhaupt keine Informationen über die Socken vermittelt. In diesem Fall handelt es sich bei der Interaktion also um Nullwissen.

3) An PowerUser & Studierende

Beim Erlernen von Kryptographie handelt es sich bei ZKPs oder Computeralgorithmen um ein Protokoll, bei dem eine Partei (der Beweiser) einer anderen Partei (dem Prüfer) beweisen kann, dass eine bestimmte Aussage wahr ist, während der Beweiser es vermeidet, zusätzliche Daten anzugeben, außer dass die Aussage tatsächlich wahr ist WAHR.

ZKPs sind beispielsweise eine Verallgemeinerung digitaler Signaturen. Ich möchte eine Nachricht unterschreiben und Ihnen beweisen, dass ich sie unterschrieben habe.

Das Geheimnis ist mein geheimer Schlüssel, der mit einem öffentlichen Schlüssel in jedem asymmetrischen Kryptologiesystem verknüpft ist, das für die sichere Verbindung mit dem Internet verwendet wird. Eine besonders einfache Form von ZKP ist der Nachweis, dass ich diesen Schlüssel besitze.

Und so produziere ich die Signatur und damit sie richtig funktioniert, muss es diesen Aspekt der zufälligen Herausforderung geben. Aber wenn ich mir nur die Ausgabe ansehe, eine Menge roher Signaturbits, sollte ich sie nicht außer im Grunde nur zufälligem Rauschen unterscheiden können.

Darüber hinaus können ZKPs entweder interaktive oder nicht interaktive ZKPs sein. Interaktive Beweise werden in der Theorie hauptsächlich zur Definition von ZKPs verwendet, die darauf basieren, dass der Prüfer den Prüfer in mehreren Schritten nach dem Zufallsprinzip herausfordert, bis der Prüfer glaubt, dass die Aussage wahr ist.

In der Praxis ist es typischerweise äußerst wünschenswert, die Interaktion von ZKPs zu eliminieren. Nicht interaktive ZKPs können vollständig vom Prüfer erstellt und dann von jedem überprüft werden. Es gibt eine allgemeine Technik, um interaktive Beweise nicht interaktiv zu machen, die Fiat-Shamir-Transformation genannt wird.

Tatsächlich werden Bulletproofs durch die Anwendung der Fiat-Shamir-Technik auf einen sicheren interaktiven Zero-Knowledge-Reichweitennachweis erstellt, von dem letztendlich die Sicherheit herrührt. Dies funktioniert für jeden interaktiven Nachweis „öffentlicher Münzen“, bei dem es sich bei den Nachrichten des Verifizierers immer lediglich um zufällige Herausforderungswerte handelt und der Verifizierer keine Geheimnisse für sich behalten muss.

Bei der Fiat-Shamir-Transformation wird der Verifizierer mithilfe einer Hash-Funktion „simuliert“. Wann immer der Verifizierer einen Challenge-Wert erstellen muss, ermitteln wir diesen Challenge-Wert, indem wir alle Nachrichten, die der Verifizierer bisher im Protokoll gesehen hat, in eine Hash-Funktion einspeisen.

Dann werden die Ergebnisse dieser Hash-Funktion als Challenge-Wert verwendet. Die Idee dahinter ist, dass die Hash-Funktion typischerweise gleichmäßig verteilte Ausgabewerte erzeugt und es für einen böswilligen Prüfer unzugänglich ist, die Hash-Funktion zu „manipulieren“, indem er sie dazu bringt, bestimmte ausgewählte Herausforderungswerte zu erzeugen. Solange die Ausgabe zufällig aussieht und der Prüfer die Challenge-Werte nicht beeinflussen kann, ist die Sicherheit des Protokolls dieselbe wie die der interaktiven Version.

Dies ist auch in Fällen sehr nützlich, in denen Wiederholungen verwendet werden, um das Vertrauen in den interaktiven Beweis zu erhöhen. Nehmen wir zum Beispiel an, wir wollten die Chance, im Sockenspiel erfolgreich zu schummeln, auf 2^{-100} senken. Im interaktiven Protokoll müssen wir das Sockenspiel 100 Mal spielen, das sind also 100 Hin- und Her-Nachrichten. Wenn wir es nicht interaktiv gestalten können, gibt es nur eine Nachricht, die alle 100 Herausforderungen und Antworten enthält.

4) An Entwickler

Damit ZKPs nun nützlich sind, wollen wir eigentlich den Bedarf an Interaktion beseitigen. Im Idealfall ist der Beweis lediglich eine Nachricht, die eine Partei an eine andere senden kann, ohne im Voraus zu wissen, wer es sein wird. Bei vielen nützlichen ZKPs besteht die einzige Interaktion, die der Verifizierer durchführen muss, darin, zufällige Challenge-Werte zu senden.

Kryptografen können diese „interaktiven Beweise“ nicht interaktiv machen, indem sie die Challenge-Werte durch die Ausgabe einer kryptografischen Hash-Funktion ersetzen. Eine Hash-Funktion ist streng genommen nicht zufällig – sie ist basierend auf ihren Eingaben deterministisch. Kryptographen sind sich jedoch einig, dass die Ausgabe von Hash-Funktionen zufällig aussehen kann und in irgendeiner Weise schwer zu manipulieren ist.

Anstatt also mit einem Prüfer zu interagieren, um zu überzeugen, dass eine Aussage wahr ist, „simuliert“ der Prüfer den Prüfer mithilfe der Hash-Funktion. Der Prüfer kann das Sockenspiel 100 Mal spielen (gegen die Hash-Funktion). Der Prüfer schreibt dann das gesamte Transkript der Nachrichten in das Protokoll und kann es an jeden senden. Jeder kann überprüfen, ob die Hash-Funktion korrekt ausgewertet wurde, um die Challenge-Werte zu berechnen, und dass der Verifizierer tatsächlich jedes Mal erfolgreich überzeugt wurde. Solche Transkripte können dann in eine Blockchain übertragen werden, sodass jeder später die Korrektheit der Kette überprüfen kann.

WiR haben eine spezielle Art von ZKP namens Bulletproofs integriert, um „Bereichsnachweise“ für verschlüsselte Werte zu erstellen und zu beweisen, dass Wertverpflichtungen in einem bestimmten Bereich liegen, ohne die Werte dem Prüfer preiszugeben. Diese Bereichsnachweise sind von entscheidender Bedeutung, um sicherzustellen, dass unsere Transaktionen privat und ausgeglichen bleiben, ohne dass der Prüfer die Beträge der Transaktionen preisgibt. Bulletproofs sind kurze, nicht interaktive ZKPs und werden in der Transaktionsberechnung verwendet, wobei sie auf kleine positive Zahlen innerhalb eines bestimmten Bereichs beschränkt sind – was alles Teil der Spezifikation für das Protokoll ist. Bulletproofs sollen effiziente vertrauliche Transaktionen in Kryptowährungen ermöglichen, bei denen der bei der Transaktion übertragene Betrag verborgen bleibt.

In jedem Fall müssen ZKPs drei Eigenschaften erfüllen:

  • 1. Vollständigkeit: Wenn die Aussage wahr ist, kann der Beweiser dem Prüfer beweisen, dass die Aussage wahr ist (mit überwältigender Wahrscheinlichkeit). In Bezug auf MobileCoin bedeutet dies, dass unabhängig von den Einzelheiten Ihrer Transaktion ein. Gleichgewichtsnachweis erstellt werden kann, wenn sie wohlgeformt ist.

  • 2. Richtigkeit: Wenn die Aussage falsch ist, kann es dem Prüfer alternativ nicht gelingen, den Prüfer davon zu überzeugen, dass die Aussage wahr ist (mit nicht zu vernachlässigender Wahrscheinlichkeit). Mit anderen Worten: Der Prüfer kann den Prüfer nur dann überzeugen, wenn der Prüfer tatsächlich die Wahrheit sagt. Bezogen auf MobileCoin bedeutet dies, dass niemand das Netzwerk davon überzeugen kann, eine fehlerhafte Transaktion zu akzeptieren.

  • 3. Null-Knowledgeness: Wenn die Aussage wahr ist, erfährt der Prüfer nur, dass die Aussage wahr ist und nichts anderes (der Beweis lässt keine zusätzlichen Informationen preisgeben). Dies wird innerhalb von MobileCoin anhand der Fiat-Shamir-Technik festgelegt, bei der ein interaktiver ZKP genommen und darauf basierend eine digitale Signatur erstellt wird. Der Bulletproof entspricht der Abschrift eines interaktiven Beweises, bei dem es sich selbst um Nullwissen handelt. Jeder kann korrekte Transkripte dieses interaktiven Beweises ausprobieren, ohne die festgelegten Werte zu kennen. Wir wissen also, dass diese Transkripte keine Informationen über die festgelegten Werte enthalten.

Eine technische Feinheit besteht darin, dass der Hash-Trick es einem Gegner tatsächlich erschwert, den Beweis zu prüfen. Sobald Sie die Challenge-Werte durch Hash-Funktionsausgaben ersetzen, kann der Gegner den Beweis nicht mehr selbst testen – Sie müssten tatsächlich die geheimen Werte kennen, um den Beweis nach diesem Zeitpunkt erstellen zu können.

Wir sind uns einig, dass es Nullwissen ist, bevor wir es durch Hash-Funktionen ersetzen. Dann sind wir uns einig, dass das Ersetzen durch Hash-Funktionen im wirklichen Leben keinen Schaden anrichten kann. So konstruieren wir nicht-interaktive ZKPs.

5)INSIDE

Hol dir ein kostenloses Abo und schalte dir damit weitere Informationen frei: