Zk-SNARK - KamilTaylan.blog
21 Juni 2021 2:09

Zk-SNARK

Was ist zk-SNARK?

Zk-SNARK ist ein Akronym, das für „Zero-Knowledge Succinct Non-Interactive Argument of Knowledge“ steht. Ein zk-SNARK ist ein kryptografischer Beweis, mit dem eine Partei nachweisen kann, dass sie über bestimmte Informationen verfügt, ohne diese Informationen preiszugeben. Dieser Nachweis wird durch einen geheimen Schlüssel ermöglicht, der vor der Transaktion erstellt wird. Es wird als Teil des Protokolls für die Kryptowährung Zcash verwendet.

Die zentralen Thesen

  • Zk-SNARK ist ein Zero-Knowledge-Proof-Protokoll, das bei der Verschlüsselung verwendet wird, und ist ein Akronym, das für „Zero-Knowledge Succinct Non-Interactive Argument of Knowledge“ steht.
  • Dieser Beweis wurde erstmals in den späten 1980er Jahren entwickelt und eingeführt und wird jetzt von der Kryptowährung Zcash verwendet, um ein wahrgenommenes Anonymitätsproblem mit Bitcoin-ähnlichen Blockchains zu lösen.
  • Zk-SNARK-Proofs basieren auf einem anfänglichen „Vertrauenssystem“ -Setup, das als inhärente Sicherheitslücke kritisiert wurde.

Zk-SNARK verstehen

Für viele ursprüngliche Mitglieder der Kryptowährungs-Community – in erster Linie die Bitcoin-Community – war Privatsphäre ein angenommenes Ziel und Merkmal von Kryptowährungen. Der Datenschutz war jedoch immer ein Anliegen zweiter Ordnung, da die Kryptowährung ein „vertrauenswürdiges“ System zur Gewährleistung der Integrität elektronischer Währungen und digitaler Transaktionen schaffen musste.

In den frühen 2010er Jahren gingen relativ einfach ist, Personen, die mehreren Quellen pseudonyme Daten zur Verfügung gestellt haben, erneut zu identifizieren.

Aufgrund des wahrgenommenen Mangels an Privatsphäre einiger der ursprünglichen Kryptowährungen wie Bitcoin begannen die Entwickler, an datenschutzorientierten Coins zu arbeiten. Das bekannteste davon war Zcash, unterstützt von einer Technologie, die als zk-SNARKs bekannt ist.

Zero-Knowledge-Beweis

Ein zk-SNARK („zero-knowledge succinct non-interactive argument of knowledge“) verwendet ein Konzept, das als „Null-Knowledge-Beweis“ bekannt ist. Die Idee hinter diesen Beweisen wurde erstmals in den 1980er Jahren entwickelt. Einfach ausgedrückt ist ein Zero-Knowledge-Beweis eine Situation, in der jede von zwei Parteien in einer Transaktion in der Lage ist, sich gegenseitig zu verifizieren, dass sie über einen bestimmten Satz von Informationen verfügen, ohne gleichzeitig diese Informationen preiszugeben.

Bei den meisten anderen Beweisarten muss mindestens eine der beiden Parteien Zugang zu allen Informationen haben. Ein herkömmlicher Beweis kann mit einem Passwort verglichen werden, das für den Zugriff auf ein Online-Netzwerk verwendet wird. Der Benutzer übermittelt das Passwort, und das Netzwerk selbst überprüft den Inhalt des Passworts, um sicherzustellen, dass es richtig ist. Dazu muss das Netzwerk auch Zugriff auf den Inhalt des Passworts haben.

Eine Zero-Knowledge-Proof-Version dieser Situation würde bedeuten, dass der Benutzer dem Netzwerk (mittels mathematischen Beweises) demonstriert, dass er das richtige Passwort hat, ohne das Passwort selbst preiszugeben. Die Datenschutz- und Sicherheitsvorteile in dieser Situation liegen auf der Hand: Wenn das Netzwerk das Passwort nicht irgendwo zu Überprüfungszwecken gespeichert hat, kann das Passwort nicht gestohlen werden.

Die mathematische Grundlage von zk-SNARKS ist komplex. Dennoch ermöglichen Beweise dieser Art einer Partei, nicht nur nachzuweisen, dass eine bestimmte Information vorliegt, sondern auch, dass die betreffende Partei Kenntnis von dieser Information hat. Im Fall von Zcash können zk-SNARKs fast sofort verifiziert werden, und das Protokoll erfordert keine Interaktion zwischen dem Prüfer und dem Verifizierer.

Kritik an zk-SNARKs

Es gibt natürlich Bedenken im Zusammenhang mit zk-SNARKs. Wenn beispielsweise jemand auf den privaten Schlüssel zugreifen konnte, mit dem die Parameter des Beweisprotokolls erstellt wurden, könnte er falsche Beweise erstellen, die für die Prüfer dennoch gültig aussahen. Dies würde es dieser Person ermöglichen, durch einen Fälschungsvorgang neue Token von Zcash zu erstellen. Um dies zu verhindern, wurde Zcash so konzipiert, dass die Prüfprotokolle ausgearbeitet und auf mehrere Parteien verteilt werden.

Während der Aufbau des Zcash-Proving-Prozesses so abgeschlossen wurde, dass die Möglichkeit der Fälschung von Token durch falsche Beweise minimiert wird, gibt es mindestens ein weiteres Problem im Zusammenhang mit der Kryptowährung. Zcash wurde mit einer 20%igen „Steuer“ erstellt, die auf alle Blöcke erhoben wurde, die in den ersten Jahren des Tokens erstellt wurden. Diese Steuer ist als „Gründersteuer“ bekannt und wird verwendet, um die Entwickler der Kryptowährung zu entschädigen.

Kritiker haben vorgeschlagen, dass die Gründer diese Facette des Systems möglicherweise nutzen könnten, um eine unendliche Anzahl von Zcash-Token zu erstellen, ohne dass sich jemand anderer der Existenz dieser Token bewusst ist. Aus diesem Grund ist es nicht ganz möglich, die genaue Anzahl der zu diesem Zeitpunkt vorhandenen Zcash-Token zu ermitteln.

Seit 2019 arbeiten einige Entwickler daran, zk-SNARKs zu verbessern, indem sie das vertrauenswürdige Setup entfernen. Ein Team namens Suterusu hat ein System namens zK-ConSNARK entwickelt, das behauptet, ohne ein vertrauenswürdiges Setup betriebsfähig zu sein, das Datenschutz für Mainstream-Blockchains wie Bitcoin bieten kann und die niedrigste Inflation aller existierenden Kryptowährungen aufweist.