Inhaltsverzeichnis[Ausblenden][Zeigen]
Sowohl im realen Leben als auch in der digitalen Welt möchten wir anderen oft Dinge beweisen. Vor dem Betreten eines Bürogebäudes legen die Mitarbeiter normalerweise eine Art Ausweis vor, bevor sie eintreten.
Wenn Benutzer versuchen, sich bei einer App wie Facebook oder Twitter anzumelden, müssen diese Dienste den Benutzer zuerst auffordern, sich mit einem Passwort anzumelden, und gelegentlich wird ein einmaliger Passcode (OTP) an ihr mobiles Gerät gesendet.
Ein Nachteil bei der Bereitstellung von Beweisen ist, dass wir oft andere Arten von Informationen preisgeben. Die Bereitstellung eines Passworts für eine Website bedeutet immer noch, dass die Website selbst eine Kopie des gehashten Passworts auf ihren Servern aufbewahrt. Wenn jemand den Mitarbeiter-ID-Scanner des Bürogebäudes hackt, kann er möglicherweise die privaten Schlüssel aller erhalten.
Zero-Knowledge-Proofs oder ZKPs bieten eine Möglichkeit, eine Identität oder Transaktion zu validieren, ohne zusätzliche Informationen angeben zu müssen. Aufgrund seiner Anwendungen in der Kryptographie wurden ZKPs von angepasst blockketten um sichere und skalierbare Validierungsprotokolle zu erstellen.
Was sind Zero-Knowledge-Beweise?
Zero-Knowledge-Beweise wurden erstmals 1985 von den MIT-Forschern Silvio Micali, Charles Rackoff und Shafi Goldwasser in ihrem Artikel vorgeschlagen „Die Wissenskomplexität interaktiver Beweissysteme“
In diesem Beitrag wurde das Konzept der Wissenskomplexität eingeführt. Damit ist die Menge an Wissen über einen Beweis gemeint, die vom Beweiser an den Verifizierer weitergegeben wird. Zero-Knowledge-Proofs zielen darauf ab, es einer Partei zu ermöglichen, zu beweisen, dass eine bestimmte Aussage für eine andere Partei wahr ist, ohne weitere Informationen preisgeben zu müssen.
ZKPs können als sichere Alternative zu aktuellen Authentifizierungssystemen verwendet und auch zu Blockchain-Protokollen hinzugefügt werden, um Transaktionen privat zu halten.
Wie funktionieren ZKPs?
Beispiel aus der Praxis
Um zu veranschaulichen, wie Zero-Knowledge-Proofs funktionieren, werfen wir einen Blick auf ein abstraktes Beispiel eines ZKP.
Nehmen wir an, Sie haben einen Freund, der rot-grün farbenblind ist. Sie haben zwei identische Kugeln dabei, die sich nur in der Farbe unterscheiden: eine rote und eine grüne. Für Ihren Freund sehen sie identisch aus, aber als Person ohne Farbenblindheit können Sie sie leicht unterscheiden.
Kannst du deinem Freund beweisen, dass er eine andere Farbe hat, ohne zu verraten, welcher Ball rot oder grün ist?
Es gibt tatsächlich eine Möglichkeit, dies zu beweisen, ohne die Farben der Kugeln preiszugeben. Zuerst müssen Sie Ihren Freund beide Bälle hinter seinen Rücken legen lassen und ihm sagen, dass er einen beliebigen Ball zeigen und wieder verstecken soll. Als nächstes sagst du deinem Freund, dass er die Wahl hat, denselben Ball noch einmal zu zeigen oder ihn mit dem anderen zu tauschen.
Jedes Mal, wenn ein neuer Ball angezeigt wird, können Sie ihm mitteilen, ob er den Ball gewechselt hat oder nicht. Wenn Sie immer wieder den richtigen Anruf erraten, wird es immer wahrscheinlicher, dass die Kugeln unterschiedlich gefärbt sind. Ihr Freund sollte sich nun davon überzeugen, dass die Bälle unterschiedlich gefärbt sind, ohne ihm sagen zu müssen, welche Bälle welche Farbe haben.
Praktische Anwendungen
Die meisten praktischen Beispiele für Zero-Knowledge-Beweise lassen sich in zwei Arten einteilen.
Erstens können ZKPs beim Entwerfen von Protokollen verwendet werden. Wir können sicherstellen, dass verschiedene Parteien das Protokoll nicht betrügen oder ausnutzen können. Zweitens können ZKPs zur Identifizierung verwendet werden.
Beispielsweise können wir ZKPs verwenden, um uns sicher bei einer Webanwendung anzumelden, ohne das Passwort selbst preisgeben zu müssen.
Schauen wir uns ein paar Beispiele an, wie wir Zero-Knowledge-Beweise verwenden können.
E-Voting
Eine häufig diskutierte Anwendung von ZKPs ist ihre mögliche Rolle bei Online-Wahlen. Nehmen wir an, wir haben ein bevorstehendes Referendum, bei dem Benutzer über eine vorgeschlagene Richtlinie abstimmen können. Jeder Wahlberechtigte darf auf dem Stimmzettel entweder mit 1 oder 0 stimmen.
Mit ZKPs können Wähler ihr Stimmrecht nachweisen, ohne ihre Identität preiszugeben. Dadurch wird sichergestellt, dass jede Stimme wirklich anonym ist. Ein zusätzlicher ZKP wird auch verwendet, um zu beweisen, dass die Stimme eines bestimmten Benutzers Teil der endgültigen Stimmenauszählung ist.
Bezüglich des Inhalts der Stimmzettel selbst kann das Wahlsystem auch einen Zero-Knowledge-Beweis erzeugen, dass jeder Stimmzettel entweder eine 1 oder eine 0 enthält. Dies wird erreicht, ohne den Inhalt des Stimmzettels selbst kennen zu müssen.
Blockchain-Datenschutz
Blockchains wie Bitcoin und Ethereum unterstützen private Transaktionen nicht von Haus aus. Solange Ihre Bitcoin-Brieftasche öffentlich ist, kann jeder zu einem Block-Explorer wie z Blockstream um alle Transaktionen zu sehen, an denen das Wallet beteiligt ist.
In der Zwischenzeit haben Sie durch die Nutzung eines Dienstes wie einer Bank oder Zahlungsdienste wie Cash App oder Venmo die Möglichkeit, privat Transaktionen durchzuführen. Diese Bequemlichkeit geht jedoch zu Lasten der Preisgabe Ihrer Informationen an den zentralen Dienst.
Wir können Anonymität mit Dezentralisierung kombinieren, indem wir ZKPs zum Blockchain-Protokoll hinzufügen. Kryptowährungen wie ZCash verwenden ZKPs, um private Transaktionen zu erstellen, die es Coin-Inhabern ermöglichen, ihre Anonymität zu wahren. Einige dieser Kryptowährungen verwenden eine Art von ZKP, die als zk-SNARK bekannt ist.
Diese ZKPs erfordern keine Interaktion zwischen dem Beweiser und dem Verifizierer.
Zero-Knowledge-Rollups
ZK-Rollups sind eine Skalierbarkeitslösung, mit der Off-Chain-Transaktionen sofort und mit minimalen Gasgebühren verifiziert werden können. Sie sind eine Möglichkeit, eine große Anzahl von Layer-2-Transaktionen zu kombinieren und sie an das Layer-1-Protokoll zu übermitteln.
Neben der Bereitstellung von Datenschutz ermöglichen ZKPs die Skalierung komplexer Systeme. Blockchain-Protokolle können ZKPs verwenden, um nachzuweisen, dass Benutzer die richtigen Transaktionen abgewickelt haben, das entsprechende Guthaben haben und so weiter. Diese sicheren und dennoch skalierbaren Lösungen sind nur durch die mathematischen Beweise möglich, die off-chain in ZKPs durchgeführt werden.
Protokolle wie Loopring verwenden Zero-Knowledge-Beweise, um die Verarbeitung von Off-Chain-Transaktionen zu unterstützen, ohne die Sicherheit gefährden zu müssen.
Vorteile von Zero-Knowledge-Proofs
- ZKPs ersetzen weniger zuverlässige Authentifizierungsformen wie PINs oder Ausweise
- ZKPS erhöht die Skalierbarkeit von Blockchains
- Die Implementierung von ZKP erfordert einfache Verschlüsselungsverfahren
- Die Verwendung von ZKPS kann Systeme sicherer machen, indem keine unnötigen Informationen im System gespeichert werden müssen.
Zusammenfassung
Der Datenschutz ist bereits heute ein großes Thema sowohl in zentralen als auch in dezentralen Systemen. Zero-Knowledge-Proofs bieten verschiedenen Parteien eine Möglichkeit, Transaktionen und Identitäten nachzuweisen oder zu validieren, ohne diese Transaktionen oder Identitäten preisgeben zu müssen.
Mit zunehmender Verbreitung der Blockchain-Technologie wird die Einführung von ZKPs zur sicheren Handhabung der Verifizierung der Schlüssel zu Skalierbarkeitsbedenken sein.
Hinterlassen Sie uns einen Kommentar