zk-SNARK: Innovativer Zero-Knowledge-Beweis und seine Anwendungen

FortgeschritteneNov 28, 2023
Die zk-SNARK-Technologie stellt einen bedeutenden Durchbruch in den Bereichen Datenschutz und verschlüsselte Überprüfung dar. Es ist nicht nur vielversprechend, da es starke Datenschutzgarantien bietet, sondern auch praktisch, da es die Skalierbarkeit von Blockchain und verschiedenen anderen Anwendungen verbessert.
zk-SNARK: Innovativer Zero-Knowledge-Beweis und seine Anwendungen

Hintergrund

Zero-Knowledge Proof (ZKP) ist eine kryptografische Technologie, die erstmals Anfang der 1980er Jahre von S. Goldwasser, S. Micali und C. Rackoff in einem Artikel mit dem Titel The Knowledge Complexity Of Interactive Proof Systems vorgeschlagen wurde. In dieser Arbeit wurde es als theoretisches Modell konzipiert, um das Problem der Überprüfung mathematischer Aussagen ohne Offenlegung der Beweise anzugehen. Dieses Konzept erlangte große Aufmerksamkeit in der akademischen Gemeinschaft, da es die Grenzen traditioneller Verschlüsselungstechniken herausforderte und einen neuen Ansatz für den Umgang mit sensiblen Informationen bot.

Im Laufe der Zeit entwickelte sich ZKP von einem abstrakten theoretischen Konzept zu konkreten Protokollen, die in verschiedene Anwendungen integriert werden können. Im Jahr 2010 veröffentlichte Groth einen Artikel mit dem Titel „Short Pairing-based Non-interactive Zero-Knowledge Arguments“, der zu einer wegweisenden Arbeit bei der Entwicklung von zk-SNARK, einer wichtigen Lösung in ZKP, wurde. Die bedeutendste praktische Anwendung von ZKP ist das von Z-Cash im Jahr 2015 verwendete Zero-Knowledge-Proof-System, das den Datenschutz für Transaktionen und Beträge gewährleistet. Anschließend wurde zk-SNARK mit Smart Contracts kombiniert, was zu einem breiteren Anwendungsspektrum führte.

Technische Prinzipien von zk-SNARK

Die Grundsätze, an die sich das traditionelle ZKP halten muss, sind folgende:

  • Vollständigkeit: Wenn eine Aussage wahr ist, kann ein ehrlicher Prüfer den Prüfer von ihrer Wahrheit überzeugen.
  • Stichhaltigkeit: Wenn eine Aussage falsch ist, besteht für jeden betrügerischen Prüfer nur eine geringe Wahrscheinlichkeit, den Prüfer zu der Annahme zu verleiten, dass die Aussage wahr ist.
  • Zero-Knowledge: Wenn eine Aussage wahr ist, erfährt der Prüfer keine weiteren Informationen außer der Tatsache, dass die Aussage wahr ist. Mit anderen Worten: Der Verifizierungsprozess gibt keine Informationen preis, die zur Erstellung eines Beweises verwendet werden könnten.

Das Prinzip von ZKP lässt sich anhand eines einfachen Beispiels verstehen: Wenn ich A nachweisen muss, dass ich die Telefonnummer von B habe, muss ich A die Telefonnummer von B nicht direkt mitteilen. Stattdessen kann ich die Telefonnummer von B direkt wählen und sobald der Anruf verbunden ist, kann bewiesen werden, dass ich tatsächlich die Telefonnummer von B habe. Bei diesem Vorgang werden die Nummerninformationen von B nicht offengelegt.

Und zk-SNARK weitere Upgrades auf dieser Basis mit den folgenden Eigenschaften:

  • Zero-Knowledge: Der Prüfer kann aus dem Beweis keine nützlichen Informationen gewinnen.
  • Prägnant: Der Beweis ist klein (normalerweise nur ein paar Dutzend Bytes) und die Überprüfungszeit ist kurz (normalerweise nur wenige Millisekunden).
  • Nicht interaktiv: Der Prüfer muss den Beweis nur einmal ohne weitere Kommunikation an den Prüfer senden.
  • Vertrauenswürdige Parameter: Sowohl der Prüfer als auch der Verifizierer müssen einen Common Reference String (CRS) verwenden, der von einem vertrauenswürdigen Dritten generiert wird. Das CRS kann einige sensible Informationen enthalten, und wenn es durchsickert oder manipuliert wird, kann es die Sicherheit des Systems gefährden.

In Groths Artikel schlug er eine nicht-interaktive, wissensfreie Beweismethode vor, die auf Paarungen basiert, die ein Rechenproblem in ein quadratisches arithmetisches Programm (QAP) umwandelt und dann einen effizienten Beweis mithilfe von Kryptographie mit elliptischen Kurven und Hash-Funktionen erstellt. Spätere Designs von zk-SNARK umfassen im Allgemeinen vier Schritte:

  • Einrichtung: Durch einen vertrauenswürdigen Dritten wird ein CRS generiert, das einen Prüfschlüssel (pk) zum Generieren von Beweisen und einen Verifizierungsschlüssel (vk) zum Verifizieren von Beweisen enthält. Dieser Vorgang muss nur einmal ausgeführt werden und das CRS kann mehrmals wiederverwendet werden.
  • Problemkodierung: Das Rechenproblem f(x) = y wird in eine QAP-Form A(x)·B(x) = C(x)·Z(x) transformiert, wobei A(x), B(x), C (x) sind Polynome, die durch die Schaltungsstruktur von f bestimmt werden, Z(x) ist ein festes Polynom, x ist ein zufällig ausgewählter Punkt und y ist die Ausgabe von f. Dieser Schritt kann vom Prüfer oder Verifizierer oder im Voraus von einem Dritten durchgeführt werden.
  • Beweiserstellung: Wird vom Beweiser durchgeführt und verwendet pk, x und die Eingabe w von f, um einen Beweis π zu generieren, um zu beweisen, dass er aw kennt, das f(w) = y erfüllt, ohne den spezifischen Wert von w preiszugeben. Dieser Prozess umfasst Polynomberechnungen, elliptische Kurvenoperationen und Hash-Funktionsoperationen und generiert letztendlich ein π, das aus mehreren elliptischen Kurvenpunkten und einem Hash-Wert besteht.
  • Beweisüberprüfung: Wird vom Prüfer durchgeführt und verwendet vk, x, y und π, um zu überprüfen, ob der Prüfer tatsächlich ein w kennt, das f(w) = y erfüllt. Dieser Prozess umfasst auch Polynomberechnungen, elliptische Kurvenoperationen und Hash-Funktionsoperationen, die letztendlich einen booleschen Wert ergeben, der die Gültigkeit des Beweises angibt.

Betrachten wir zum besseren Verständnis ein einfaches Beispiel: Angenommen, Sie haben eine Schatzkarte, die Sie zum genauen Standort des vergrabenen Schatzes führen kann. Sie möchten jemandem beweisen, dass Sie den Standort des Schatzes kennen, ohne den Inhalt der Karte oder den tatsächlichen Standort des Schatzes preiszugeben. Wenn Sie die zk-SNARK-Technologie verwenden, müssten Sie ein komplexes Puzzle der Schatzkarte erstellen. Sie wählen ein kleines Puzzleteil (einen Beweis) aus und zeigen es der Person, die sie davon überzeugt, dass Sie wissen, wie das komplette Puzzle zusammenpasst, also wo sich der Schatz befindet, ohne das gesamte Puzzle zu sehen. Um dies zu erreichen, müssen Sie jedoch von einer vertrauenswürdigen Druckerei spezielle Markierungen einholen, die als Beweis für die Echtheit Ihres Puzzleteils dienen.

Warum brauchen wir zk-SNARK?

Der traditionelle Ansatz für wissensfreie Beweise umfasst interaktive Beweismethoden, bei denen ein Prüfer einen Prüfer wiederholt „Ja oder Nein?“ fragt. Fragen, bis eine richtige Antwort gefunden wird. Dieser Prozess ist ineffizient. Allerdings macht zk-SNARK die Notwendigkeit wiederholter Interaktionen überflüssig, indem es ein CRS von einem vertrauenswürdigen Dritten erhält. Alle Prüfer können das CRS direkt vergleichen, um den Wahrheitsgehalt festzustellen. Dies verbessert die Effizienz wissensfreier Beweise erheblich.

Darüber hinaus bietet zk-SNARK folgende Vorteile:

  • Datenschutz: Mit zk-SNARK kann ein Prüfer einem Prüfer die Kenntnis oder Erfüllung bestimmter Bedingungen nachweisen, ohne private Informationen preiszugeben. Dies ist besonders nützlich in Szenarien mit sensiblen oder privaten Daten, wie z. B. Identitätsauthentifizierung, anonyme Abstimmungen und private Transaktionen.
  • Skalierbarkeit: zk-SNARK komprimiert komplexe Rechenprobleme in kleine und schnelle Beweise und reduziert so den Rechenaufwand und den Speicherbedarf für Prüfer. Dies ist in Szenarien von Vorteil, die eine effiziente Verifizierung und Speicherung großer Datenmengen erfordern, wie etwa Cloud Computing, Blockchain-Skalierbarkeit und überprüfbare Berechnungen.
  • Sicherheit: zk-SNARK basiert auf mathematisch schwierigen Problemen wie dem diskreten Logarithmusproblem und dem bilinearen Abbildungsproblem, die eine hohe Sicherheit bieten. Unter der Annahme, dass es sich nicht um Quantencomputer handelt, ist es für einen Prüfer unmöglich, einen Beweis zu fälschen, und für einen Prüfer ist es unmöglich, ein Verifizierungsergebnis zu fälschen, es sei denn, der vertrauenswürdige Dritte gibt das CRS preis und manipuliert es nicht.

Reale Anwendungen von zk-SNARK

Die erste Anwendung von zk-SNARK ist Zcash, die es Benutzern ermöglicht, vollständig anonyme Transaktionen durchzuführen, indem Informationen wie Absender, Empfänger und Beträge mithilfe von zk-SNARK ausgeblendet werden. Im aktuellen Web3-Bereich spielt die zk-SNARK-Technologie eine wichtige Rolle bei der Skalierbarkeit der Blockchain und der Verwaltung von Börsenreserven.

Blockchain-Skalierbarkeit

Aufgrund des Konsensmechanismus und der Sicherheitsanforderungen der Blockchain sind ihr Durchsatz und ihre Effizienz stark eingeschränkt. Um dieses Problem anzugehen, besteht eine gängige Lösung darin, die Layer2-Technologie zu verwenden, die eine zusätzliche Schicht auf der Blockchain aufbaut, um eine große Anzahl von Transaktionen oder Berechnungen von der Hauptkette (Schicht1) auf Schicht2 zu migrieren und so die Leistung und Benutzerfreundlichkeit des Systems zu verbessern .

zk-SNARK spielt bei dieser Lösung eine wichtige Rolle, da es die Transaktionen oder Berechnungen auf Layer2 in einen kleinen und schnellen Beweis komprimieren kann, der dann zur Überprüfung in der Hauptkette eingereicht wird, um die Korrektheit und Konsistenz von Layer2 sicherzustellen. Derzeit gibt es zwei gängige Layer2-Lösungen, die auf zk-SNARK basieren: ZK-rollup und Validium.

  • ZK-Rollup: Diese Lösung speichert alle Statusdaten in der Hauptkette, verwendet jedoch Beweise, um die Gültigkeit von Statusübergängen zu überprüfen. Dies gewährleistet die Verfügbarkeit und Sicherheit von Layer2-Daten, erhöht jedoch die Speicherbelastung der Hauptkette. Beispielsweise speichert zkSync Zustandsdaten auf der Ethereum-Hauptkette und stellt die Gültigkeit von Zustandsübergängen durch wissensfreie Beweise sicher. Ähnliche Projekte umfassen Polygon zkEVM und Scroll.
  • Validium: Diese Lösung speichert alle Zustandsdaten auf Layer2 oder anderen vertrauenswürdigen Dritten und verwendet nur Beweise, um die Gültigkeit von Zustandsübergängen zu überprüfen, indem sie die Beweise an die Hauptkette übermittelt. Dies reduziert die Speicherlast auf der Hauptkette, kann jedoch die Verfügbarkeit und Sicherheit von Layer2-Daten beeinträchtigen. DeversiFi nutzt die Validium-Technologie, um die Geschwindigkeit und Effizienz von Layer-2-Transaktionen aufrechtzuerhalten und gleichzeitig den Datenschutz zu gewährleisten. Loopring bietet einen Validium-Modus, um den Speicherdruck auf der Hauptkette zu verringern.

Reservefonds an Börsen

Aufgrund der Volatilität und Unsicherheit des Kryptowährungsmarktes müssen viele Börsen einen bestimmten Betrag an Reservemitteln vorhalten, um potenziellen Risiken oder Anforderungen gerecht zu werden. Allerdings mangelt es diesen Reservefonds oft an Transparenz und Vertrauenswürdigkeit, sodass die Nutzer unsicher sind, ob die Börse wirklich über genügend Reservefonds verfügt, um ihre Vermögenswerte zu schützen.

zk-SNARK kann in dieser Hinsicht eine Lösung bieten, indem es Börsen ermöglicht, gegenüber Nutzern oder Aufsichtsbehörden nachzuweisen, dass sie über eine angemessene Menge und einen angemessenen Wert an Reservemitteln verfügen, ohne spezifische Vermögensdetails oder Standorte preiszugeben.

Ein typisches Beispiel ist Gate.io, das eine Kombination aus zk-SNARK und Merkle-Bäumen verwendet. Sie verschlüsseln Benutzerdaten und erstellen mithilfe eingeschränkter Schaltkreise Nachweise über die Reservefonds von 100 verschiedenen Token, um deren 100-prozentige Zahlungsfähigkeit nachzuweisen.

Quelle: https://www.gate.io/proof-of-reserves

Weiterführende Literatur: Wie zk-SNARK den Reservenachweis von Gate.io verbessert

Neben Web3-Anwendungen kann zk-SNARK auch in Nicht-Blockchain-Domänen verwendet werden, wie zum Beispiel:

  • Identitätsauthentifizierung: Mit zk-SNARK können Benutzer den Besitz bestimmter Identitätsmerkmale oder Qualifikationen gegenüber Dritten nachweisen, ohne persönliche Informationen wie Alter, Nationalität, Bildung usw. preiszugeben. Dies ist in Szenarien nützlich, die eine Identitätsauthentifizierung oder -autorisierung erfordern, wie z. B. Online-Shopping, Online-Bildung, digitale Signaturen usw.
  • Elektronische Abstimmung: Mit zk-SNARK können Benutzer ihre Teilnahme an bestimmten Abstimmungsaktivitäten und die Einhaltung bestimmter Protokolle oder Regeln gegenüber Dritten nachweisen, ohne Abstimmungsinhalte oder Metadaten preiszugeben. Dies ist in Szenarien von Vorteil, die den Schutz der Privatsphäre und Sicherheit bei Abstimmungen erfordern, wie z. B. demokratische Wahlen, Gemeindeführung, öffentliche Entscheidungsfindung usw.

Technische Einschränkungen und Herausforderungen

Im vorherigen Abschnitt haben wir die technischen Prinzipien von zk-SNARK vorgestellt und erwähnt, dass zk-SNARK die Beweiseffizienz verbessert, indem es einen vertrauenswürdigen Dritten für die CRS-Generierung findet. Dies führt jedoch auch zu einigen inhärenten Einschränkungen und Herausforderungen von zk-SNARK.

  • Vertrauenswürdige Parameter: zk-SNARK erfordert ein von einem vertrauenswürdigen Dritten erstelltes CRS, das vertrauliche Informationen enthalten kann. Wenn es durchsickert oder manipuliert wird, könnte es die Sicherheit des Systems gefährden. Um dieses Problem anzugehen, haben einige Projekte den Ansatz des Multi-Party Computation (MPC) zur Generierung des CRS übernommen, bei dem mehrere Teilnehmer gemeinsam zum Generierungsprozess beitragen und ihre geheimen Informationen zerstören. Dieser Ansatz steht jedoch immer noch vor Herausforderungen wie der Integrität der Teilnehmer, Kommunikationskosten und Koordinationsschwierigkeiten.
  • Universalität: Derzeit kann zk-SNARK nur auf bestimmte Rechenprobleme wie QAP oder R1CS angewendet werden und kann nicht auf beliebige Rechenprobleme angewendet werden. Um dieser Einschränkung zu begegnen, haben einige Projekte die Verwendung von General Circuits (GC) oder General Recursive Proof (GRS) untersucht, um die Anwendbarkeit von zk-SNARK zu erweitern. Allerdings geht dieser Ansatz mit Kompromissen wie einer größeren Beweisgröße, einer geringeren Effizienz und einer erhöhten Komplexität einher.
  • Überprüfbarkeit: Während zk-SNARK sicherstellt, dass der Prüfer keine privaten Informationen preisgibt, garantiert es nicht, dass der Prüfer den Prüfer nicht betrügt oder täuscht. Um dieses Problem anzugehen, haben einige Projekte verifizierbare Zufallsfunktionen (VRF) oder verifizierbare Verzögerungsfunktionen (VDF) eingeführt, um die Integrität des Prüfers zu verbessern. Allerdings erhöht dieser Ansatz auch die Komplexität und den Overhead des Systems.

Zusammenfassend gibt es verschiedene Ansätze, um die inhärenten Einschränkungen von zk-SNARK anzugehen.

Zukünftige Anwendungsszenarien

zk-SNARK verfügt als innovative kryptografische Technologie über breite zukünftige Anwendungsszenarien, insbesondere im Bereich Datenschutz:

  • Datenschutz bei Smart Contracts: Mit zk-SNARK können Benutzer gegenüber Dritten nachweisen, dass sie bestimmte Smart Contracts ausgeführt und die korrekte Ausgabe erhalten haben, ohne Vertragslogik oder Vertragsstatus preiszugeben. Dies ist besonders nützlich in Szenarien, in denen es um Geschäftsgeheimnisse oder sensible Regeln geht, wie z. B. Lieferkettenmanagement, Versicherungsansprüche, Urheberrechtsschutz usw.1
  • Datenschutzbewahrende Berechnung: Mit zk-SNARK können Benutzer gegenüber Dritten nachweisen, dass sie bestimmte Rechenaufgaben ausgeführt und die richtigen Ergebnisse erhalten haben, ohne Eingabe- oder Ausgabedaten preiszugeben. Dies gilt für Szenarien mit sensiblen oder privaten Daten, wie etwa medizinische Diagnosen, Datenanalysen, maschinelles Lernen usw.
  • Datenschutz wahrende Kommunikation: Mit zk-SNARK können Benutzer gegenüber Dritten nachweisen, dass sie bestimmte Kommunikationsaktivitäten durchgeführt und bestimmte Protokolle oder Regeln eingehalten haben, ohne Kommunikationsinhalte oder Metadaten preiszugeben. Dies ist in Szenarien von Vorteil, in denen der Datenschutz oder die Sicherheit der Kommunikation geschützt werden muss, wie z. B. Instant Messaging, soziale Netzwerke, E-Mail usw.

Abschluss

Die zk-SNARK-Technologie stellt einen bedeutenden Durchbruch in den Bereichen Datenschutz und verschlüsselte Überprüfung dar. Es ist nicht nur vielversprechend, da es starke Datenschutzgarantien bietet, sondern auch praktisch, da es die Skalierbarkeit von Blockchain und verschiedenen anderen Anwendungen verbessert. Trotz technischer Herausforderungen und Einschränkungen gehen wir davon aus, dass sich zk-SNARK durch kontinuierliche Forschung und Innovation weiterentwickelt, bestehende Systeme optimiert und neue Anwendungsmodelle inspiriert, um die Weiterentwicklung des Datenschutzes und der Verschlüsselungstechnologie voranzutreiben. Mit der Reife der Technologie und der zunehmenden Bedeutung des Datenschutzes in der Gesellschaft hat zk-SNARK das Potenzial, zu einem unverzichtbaren Werkzeug im digitalen Zeitalter zu werden, das Benutzern eine größere Kontrolle über ihre Informationen ermöglicht und sichere und transparente digitale Interaktionen fördert.

ผู้เขียน: Wayne
นักแปล: Sonia
ผู้ตรวจทาน: KOWEI、Piccolo、Elisa、Ashley He、Joyce
* ข้อมูลนี้ไม่ได้มีวัตถุประสงค์เป็นคำแนะนำทางการเงินหรือคำแนะนำอื่นใดที่ Gate.io เสนอหรือรับรอง
* บทความนี้ไม่สามารถทำซ้ำ ส่งต่อ หรือคัดลอกโดยไม่อ้างอิงถึง Gate.io การฝ่าฝืนเป็นการละเมิดพระราชบัญญัติลิขสิทธิ์และอาจถูกดำเนินการทางกฎหมาย
เริ่มตอนนี้
สมัครและรับรางวัล
$100
ลงทะเบียนทันที