Was ist zk-SNARKs und Zero Knowledge Proof?
Die Möglichkeiten von zk-SNARKs sind beeindruckend: Man kann die Richtigkeit von Berechnungen überprüfen, ohne sie ausführen zu müssen.
Man erfährt nicht einmal, was ausgeführt wurde – nur, dass es richtig gemacht wurde. Die Realität sieht so aus, dass sich zk-SNARKs auf vier einfache Techniken reduzieren lassen.
Zero Knowledge Proof für Anonymität
In der Welt der Blockchain gewinnt die Privatsphäre immer mehr an Bedeutung. Wenn jemand sagt, dass Bitcoin anonym ist, ist das eine inhärent falsche Behauptung.
Denn Blockchains sind von Natur aus völlig offen und transparent. Während also jede einzelne Bitcoin-Adresse nicht mit einer Person in einer Registry verknüpft ist, können alle Transaktionen verfolgt und zugeordnet werden.
Dies ist bekannt als Blockchain-Analyse und wurde bereits von verschiedenen Regierungen und Strafverfolgungsbehörden angewandt
Es gibt zwar Schritte, die ein Bitcoin-Nutzer unternehmen kann, um seine Privatsphäre zu erhöhen, aber es erfordert große Anstrengungen und viele absichtliche Aktionen.
Es ist nicht die Standardeinstellung, dass Bitcoin privat ist. Dasselbe gilt für die meisten gängigen Krypto-Währungen, wie Ethereum und Litecoin.
Infolgedessen sind eine Reihe von datenschutzorientierten Token und Techniken aufgetaucht und erfreuen sich von Tag zu Tag größerer Beliebtheit – eine davon ist zk-SNARKs.
Was ist Zero Knowledge Proof (zk-SNARKs)?
zk-SNARKs arbeitet an sogenannten Zero-Knowledge-Proofs. Zero Knowledge Proofs wurden direkt von Edward Snowden, dem ehemaligen CIA-Mitarbeiter, in einem Twitter-Posting beworben. Die Idee der Zero-Knowledge-Proofs stammt von mehreren MIT-Forschern in den 1980er Jahren.
Vereinfacht ausgedrückt bedeuten Zero-Knowledge-Proofs, dass zwischen zwei Parteien einer Transaktion jede Partei in der Lage ist, einander zu verifizieren, dass sie über einen bestimmten Satz von Informationen verfügt, ohne offenzulegen, was diese Informationen sind.
Dies unterscheidet sich deutlich von anderen Systemen, bei denen mindestens eine Partei alle Informationen kennen muss.
Ein Beispiel hierfür ist ein Passwort, das auf einem Server im Klartext gespeichert ist. In diesem Fall, wenn Nutzer sich am Server angemeldet haben, müssen sie das Kennwort besitzen und der Server muss überprüfen, ob das eingegebene Kennwort korrekt ist.
Mit Zero-Knowledge-Proofs könnte die Person, die sich in den Server einloggt, im Wesentlichen durch mathematische Beweise demonstrieren, dass sie das richtige Passwort hat, ohne zu verraten, wie das Passwort konkret lautet.
Natürlich speichern die meisten Websites heutzutage keine Benutzerkennwörter im Klartext und speichern stattdessen das, was als Hash bezeichnet wird. Dennoch können Hashes gestohlen und unter Umständen auch berechnet werden.
Als sehr kurze Zusammenfassung haben zk-SNARKs, wie sie derzeit implementiert sind, 4 Hauptinhalte:
- Kodierung als Polynomproblem: Das zu überprüfende Programm wird in eine quadratische Gleichung aus Polynomen kompiliert: t(x) h(x) = w(x) v(x), wobei die Gleichheit gilt, wenn und nur wenn das Programm korrekt berechnet wird. Der Prover will den Verifizierer davon überzeugen, dass diese Gleichheit gilt.
- Prägnanz durch Zufallsstichprobe: Der Prüfer wählt einen geheimen Bewertungspunkt s, um das Problem von der Multiplikation von Polynomen und der Überprüfung der Gleichheit der Polynomfunktion auf einfache Multiplikation und Gleichheitsprüfung von Zahlen zu reduzieren: t(s)h(s) = w(s)v(s)v(s). Dies reduziert sowohl die Proofgröße als auch die Verifikationszeit enorm.
- Homomorphe Kodierung / Verschlüsselung: Es wird eine Kodier-/Verschlüsselungsfunktion E verwendet, die einige homomorphe Eigenschaften besitzt (aber nicht vollständig homomorph ist, was noch nicht praktikabel ist). Dies erlaubt es dem Prover, E(t(s)), E(h(s)), E(w(s), E(w(s)), E(v(s)) zu berechnen, ohne s zu kennen, er kennt nur E(s) und einige andere hilfreiche verschlüsselte Werte.
- Null Wissen: Der Prover erlaubt die Werte E(t(s)), E(h(s)), E(w(s)), E(w(s)), E(v(s)) durch Multiplikation mit einer Zahl, sodass der Verifier seine korrekte Struktur immer noch überprüfen kann, ohne die tatsächlich kodierten Werte zu kennen
Mögliche Anwendungen von Zero Knowledge Proof
Das Erstellen von geschützten Transaktionen in Zcash ist nur ein Beispiel aus vielen möglichen Anwendungen von zk-SNARKs. Theoretisch können Nutzer mit einem zk-SNARK jede Beziehung verifizieren, ohne Eingaben oder undichte Informationen preiszugeben.
Die Erstellung von Proofs für komplexe Funktionen ist immer noch zu rechenintensiv, um für viele Anwendungen praktikabel zu sein, aber das Zcash-Team schiebt die Grenzen für die Optimierung von zk-SNARKs immer weiter hinaus und geht mit effizienteren Implementierungen bereits neue Wege.
Die Zcash-Implementierung von zk-SNARKs kann in der jetzigen Form als Zero-Knowledge Security Layer für Enterprise Use Cases zu jeder bestehenden verteilten Ledger-Lösung hinzugefügt werden.
Wissenschaftler des Zcash-Teams gehören zu den erfahrensten Forschern von zk-SNARKs weltweit und arbeiten ständig daran, neue Anwendungen zu entwickeln und die Effizienz von Zero-Wissensprotokollen zu verbessern.
Weiter hat die schweizerische Firma, Decentriq, eine Blog-Serie, Introduction to zk-SNARKs (Part 1), dazu gestartet.
Da es sich sowohl um eine sehr technische, also auch vielversprechende Technologie handelt, werden in diesem Beitrag drei Applikationen beschrieben.
Bereits vor einigen Monaten hatte sich der Google Gründer, Sergey Brin, sehr positiv über diese Technologie geäußert. Im Folgenden werden drei Anwendungsgebiete erörtert.
Google co-founder Sergey Brin on zcash’s zero knowledge proof’s widespread use: „It’s really mindboggling.“ #BlockchainSummit via @ForbesCrypto pic.twitter.com/04shCk9wbY
— Michael del Castillo (@DelRayMan) July 8, 2018
Sicheres anonymes Wählen
Wahlen sind eine der tragenden Säulen der Demokratie, sowohl für die Gesellschaft (z. B. Bundestagswahlen als auch bei Aktionärsversammlungen).
Im Falle der Aktionärsversammlung sind die Wähler(innen) darauf angewiesen, kritische Governance-Entscheidungen zu treffen, die direkt oder indirekt die Richtung eines Unternehmens beeinflussen. Daher ist es wichtig, dass der Wahlprozess sicher, anonym und vertrauenswürdig ist.
Wahlergebnisse dürfen nicht manipuliert werden und die Wähler sollten sicher sein, dass ihre Stimme gezählt wurde und ihre Identität dabei geheim blieb.
ZKPs bieten eine Lösung für einige dieser Probleme. Wird eine Abstimmung über eine Blockchain durchgeführt, entfällt sowohl die Notwendigkeit einer vertrauenswürdigen Partei, also auch die Gefahr einer Zensur.
Mithilfe dieser Technologie können Wahlberechtigte ihr Recht auf Stimmabgabe nachweisen, ohne ihre Identität preiszugeben, wodurch der Wahlablauf anonymisiert wird.
ZKPs erlauben Wählerinnen und Wählern zudem, nachprüfbare Nachweise dafür zu verlangen, dass ihre Stimme von der Stelle, die die Ergebnisse meldet, in die Endabrechnung aufgenommen wurde.
Dies macht die Wahlergebnisse von der Wahlbehörde prüfbar, auch wenn die Stimmen selbst nicht in einer öffentlichen Blockchain aufgezeichnet werden.
Sobald digitale Vermögenswerte an der Infrastruktur von regulierten Börsen gehandelt werden, erfordern bestimmte Token eine mit den heutigen Stimmrechten der Aktionäre vergleichbare Wahlmöglichkeit.
Wirtschaftsprüfung / Audit
Die Art der Prüfung und Finanzberichterstattung ändert sich aufgrund der Digitalisierung stetig weiter. Hinzukommen strengeren Vorschriften, Wettbewerb und der Notwendigkeit, das Vertrauen in die Kapitalmärkte zu stärken.
Die Art der Prüfung und Finanzberichterstattung entwickelt sich parallel dazu weiter. Audits sind komplexer geworden und die zunehmende Anzahl von qualitativen Offenlegungen erhöht die Bedeutung von professioneller Skepsis und Urteilsvermögen noch mehr.
Um die Qualität von Audits noch weiter zu steigern, ist es elementar, modernste Technologien zu entwickeln, um routinierte Arbeitsprozess zu reduzieren und die Analyse der gewonnenen Daten noch stärker zu fokussieren. Hier begegnen ZKPs der neuen Ära der Audits.
Wie im vorhergehenden Artikel beschrieben, besteht der Hauptzweck von ZKPs darin, den Beweis zu erbringen, dass eine Berechnung korrekt ausgeführt wurde, während die tatsächlichen Daten vertraulich sind.
Wenn der Kunde dem Auditor nachweisen kann, dass die Berechnung seiner Journalbuchungen korrekt durchgeführt wurde, ist man in der Lage, einen Kernaspekt der Finanzprüfung zu automatisieren und zu vereinfachen.
Public Blockchains
Öffentliche Blockchains wie Ethereum, Cardano und Tezos liefern vielversprechende Lösungen. Um ihr volles Potenzial freizusetzen, muss der Datenschutz entsprechend sichergestellt sein.
Kein Unternehmen wird mit einer öffentlichen Blockchain arbeiten, wenn alles öffentlich und transparent wird, da sonst die Wettbewerber vertrauliche Informationen herausfinden könnten. ZKPs bieten die nötige Privatsphäre.
In einer Lieferkette wollen die Beteiligten nicht, dass jede Transaktion für die Öffentlichkeit sichtbar ist. Daher müssen bestimmte Anonymisierungen implementiert werden. Dies gilt auch für private Blockchains.
Weiter ist eine bestimmte Art von ZKPs, zn-SNARKS, eine vielversprechende Lösung für die Privatsphäre öffentlicher Blockchains und ein Lösungsansatz für die Skalierbarkeit.
Neben diesen drei Anwendungsfällen gibt es noch weit mehr mögliche Anwendungen, welche gerne bei Interesse erörtert werden können.
Es ist großartig zu sehen, dass Zero Knowledge Proofs für immer mehr Anwendungen verwendet werden. Sie haben das Potenzial, einige der größten Probleme in unserer digitalen Welt zu lösen.
Stefan Deml (Decentriq)
In der Vergangenheit waren ZKPs eine Nischentechnologie in Bezug auf Forschung, Anwendung und Implementierung.
Dies änderte sich mit der Erfindung und Einführung von Zcash, dem ersten weit verbreiteten Anwendungsfall, privater / anonymer Zahlungen, der vergleichbare Eigenschaften wie Bargeld aufweist.
Zukünftig erwarten wir eine breitere Anwendung von ZKPs in zentralen und dezentralen Umgebungen. Vom Audit bis zur Lieferkette liefert diese Technologie die notwendigen Antworten.
FAQ
Welche Coins benutzen Zero Knowledge Proof (zk-SNARKs)?
Zero Knowledge Proof wird aktuell nur von zCash benutzt. zCash ist eine sogenannte Privacy Coin ähnlich wie Monero. Durch zk-SNARKs können Transaktionen auf der Blockchain verifiziert werden, und gleichzeitig verschlüsselt bleiben.