Ein Leitfaden für Anfänger zu wissensfreien Beweisen: Entwicklungsgeschichte, Anwendungen und Grundprinzipien

Einsteiger1/6/2024, 7:13:44 PM
In diesem Artikel werden systematisch die Entwicklungsgeschichte und die Grundprinzipien wissensfreier Beweise vorgestellt.

Die aktuelle Wachstumsrate von Zero-Knowledge-Proof-Projekten (ZKP) in der Blockchain-Branche ist erstaunlich, insbesondere der Anstieg von ZKP-Anwendungen auf den beiden Ebenen Erweiterung und Datenschutz, der uns einer Vielzahl von Zero-Knowledge-Proof-Projekten ausgesetzt hat. Aufgrund der extrem mathematischen Natur von ZKP ist es für Verschlüsselungsbegeisterte deutlich schwieriger, ZK im Detail zu verstehen. Daher hoffen wir auch, einige Änderungen in der ZKP-Theorie und -Anwendung von Anfang an zu klären und mit den Lesern die Auswirkungen und den Wert auf die Kryptoindustrie zu erkunden – gemeinsam durch mehrere Berichte zu lernen, die auch als Zusammenfassung der Gedanken des HashKey dienen Kapitalforschungsteam. Dieser Artikel ist der erste in der Reihe und stellt hauptsächlich die Entwicklungsgeschichte, Anwendungen und einige Grundprinzipien von ZKP vor.

1. Die Geschichte der wissensfreien Beweise

Das moderne Zero-Knowledge-Proof-System entstand aus dem von Goldwasser, Micali und Rackoff gemeinsam veröffentlichten Artikel „The Knowledge Complexity of Interactive Proof Systems“ (GMR85), der 1985 vorgeschlagen und 1989 veröffentlicht wurde. In diesem Artikel wird hauptsächlich erläutert, wie viel Wissen nach K Interaktionsrunden in einem interaktiven System ausgetauscht werden muss, um zu beweisen, dass eine Aussage korrekt ist. Wenn das ausgetauschte Wissen zu Null gemacht werden kann, spricht man von einem Zero-Knowledge-Beweis. Es wird davon ausgegangen, dass der Prüfer über unbegrenzte Ressourcen verfügt und der Verifizierer nur über begrenzte Ressourcen. Das Problem bei interaktiven Systemen besteht darin, dass der Beweis nicht vollständig mathematisch beweisbar, sondern im probabilistischen Sinne korrekt ist, obwohl die Wahrscheinlichkeit sehr gering ist (1/2^n).

Daher ist das interaktive System nicht perfekt und weist nur annähernde Vollständigkeit auf. Das auf dieser Grundlage geborene nicht-interaktive System (NP) ist vollständig und wird zur perfekten Wahl für das wissensfreie System.

Den frühen Zero-Knowledge-Proof-Systemen mangelte es an Effizienz und Benutzerfreundlichkeit, sodass sie immer auf der theoretischen Ebene blieben. Erst in den letzten 10 Jahren begannen sie zu blühen. Als die Kryptographie in der Kryptografie an Bedeutung gewann, rückten wissensfreie Beweise in den Vordergrund und wurden zu einer entscheidenden Richtung. Insbesondere die Entwicklung eines allgemeinen, nicht interaktiven, wissensfreien Protokolls mit begrenzter Beweisgröße ist eine der kritischsten Forschungsrichtungen.

Grundsätzlich ist der wissensfreie Beweis ein Kompromiss zwischen der Geschwindigkeit des Beweises, der Geschwindigkeit der Verifizierung und der Größe des Beweises. Das ideale Protokoll ist ein schneller Beweis, eine schnelle Verifizierung und eine kleine Beweisgröße.

Der wichtigste Durchbruch im Zero-Knowledge-Beweis ist Groths 2010 erschienene Arbeit Short Pairing-based Non-interactive Zero-Knowledge Arguments, die auch der theoretische Pionier der wichtigsten Gruppe von zk-SNARKs in ZKP ist.

Die wichtigste Entwicklung bei der Anwendung von Zero-Knowledge-Proofs ist das von Z-Cash im Jahr 2015 verwendete Zero-Knowledge-Proof-System, das die Vertraulichkeit von Transaktionen und Beträgen schützt. Später entwickelte sich daraus eine Kombination aus zk-SNARK und Smart Contracts, und zk-SNARK trat in breitere Anwendungsszenarien ein.

Zu den wichtigen akademischen Erfolgen in dieser Zeit gehören:

  1. Pinocchio (PGHR13) im Jahr 2013: Pinocchio: Nearly Practical Verifiable Computation, das die Beweis- und Verifizierungszeit auf den anwendbaren Umfang komprimiert, ist auch das von Zcash verwendete Basisprotokoll.
  2. Groth16 im Jahr 2016: On the Size of Pairing-based Non-interactive Arguments, das die Beweisgröße vereinfacht und die Verifizierungseffizienz verbessert, ist derzeit der am weitesten verbreitete ZK-Basisalgorithmus.
  3. Bulletproofs (BBBPWM17) Bulletproofs: Short Proofs for Confidential Transactions and More schlug 2017 den Bulletproof-Algorithmus vor, einen sehr kurzen, nicht interaktiven Zero-Knowledge-Proof, der keine vertrauenswürdige Einrichtung erfordert. Es wird 6 Monate später auf Monero angewendet und ist sehr schnell. Die Kombination aus Theorie und Anwendung.
  4. Im Jahr 2018 schlug zk-STARKs (BBHR18) Skalierbare, transparente und postquantensichere Rechenintegrität ein ZK-STARK-Algorithmusprotokoll vor, das keine vertrauenswürdigen Einstellungen erfordert. Dies ist derzeit eine weitere auffällige Richtung der ZK-Entwicklung und basiert auch darauf. Auf dieser Grundlage wurde StarkWare, das wichtigste ZK-Projekt, geboren.

Andere Entwicklungen wie PLONK, Halo2 usw. sind ebenfalls äußerst wichtige Fortschritte und haben auch einige Verbesserungen an zk-SNARK vorgenommen.

2. Kurze Beschreibung der Anwendung des Zero-Knowledge-Proofs

Die beiden am weitesten verbreiteten Anwendungen von Zero-Knowledge-Proofs sind der Schutz der Privatsphäre und die Kapazitätserweiterung. In den Anfängen, mit der Einführung von Datenschutztransaktionen und mehreren bekannten Projekten wie Zcash und Monero, wurden Datenschutztransaktionen einst zu einer sehr wichtigen Kategorie. Da die Notwendigkeit von Datenschutztransaktionen jedoch nicht so ausgeprägt war, wie von der Branche erhofft, begann sich diese Art von repräsentativen Projekten zu verlangsamen. Betreten Sie langsam die Lager der zweiten und dritten Stufe (ziehen Sie sich nicht von der Bühne der Geschichte zurück). Auf Anwendungsebene ist der Erweiterungsbedarf so stark gestiegen, dass sich Ethereum 2.0 (das in Konsensschicht umbenannt wurde) im Jahr 2020 in eine Rollup-zentrierte Route verwandelt hat. Die ZK-Serie ist offiziell wieder in die Aufmerksamkeit der Branche gerückt und in den Mittelpunkt gerückt.

Datenschutztransaktionen: Es gibt viele Projekte, die Datenschutztransaktionen implementiert haben, darunter Zcash mit SNARK, Tornado, Monero mit Bulletproof und Dash. Dash nutzt ZKP nicht im engeren Sinne, sondern ein einfaches und grobes Währungsmischsystem, das nur die Adresse, nicht aber den Betrag verbergen kann. Ich werde es hier nicht erwähnen.

Die von Zcash angewandten zk-SNARKs-Transaktionsschritte sind wie folgt:

Quelle: Entmystifizierung der Rolle von zk-SNARKs in Zcash

  1. In der System-Setup-Phase werden mithilfe der KeyGen-Funktion der Proof-Schlüssel (Verschlüsselungs-Proof-Polynom) und der Verifizierungsschlüssel generiert
  2. Die ECIES-Verschlüsselungsmethode (Elliptic Curve Integrated Encryption Scheme) der CPA-Phase wird zur Generierung öffentlicher und privater Schlüssel verwendet
  3. Die Minting-Coins-Phase gibt die Anzahl der generierten neuen Coins an. Öffentliche Ansprache und Münzverpflichtung
  4. In der Pouring-Phase wird ein zk-SNARK-Zertifikat generiert und dem Pour-Transaktionsbuch hinzugefügt.
  5. In der Verifizierungsphase überprüft der Prüfer, ob die Transaktionsvolumina von Mint und Pour korrekt sind.
  6. In der Empfangsphase erhält der Empfänger Münzen. Wenn Sie die erhaltenen Münzen verwenden möchten, rufen Sie Pouring weiterhin an, um eine zk-SNARK-Verifizierung zu erstellen, und wiederholen Sie die obigen Schritte 4 bis 6, um die Transaktion abzuschließen.

Zcash hat immer noch Einschränkungen bei der Verwendung von Zero-Knowledge, das heißt, es basiert auf UTXO, sodass ein Teil der Transaktionsinformationen nur abgeschirmt und nicht wirklich verheimlicht wird. Da es sich um ein separates Netzwerk handelt, das auf dem Design von Bitcoin basiert, ist es schwierig zu erweitern (mit anderen Anwendungen zu kombinieren). Die tatsächliche Nutzungsrate der Abschirmung (d. h. privater Transaktionen) beträgt weniger als 10 %, was zeigt, dass private Transaktionen nicht erfolgreich ausgeweitet wurden. (ab 2202)

Der von Tornado verwendete einzelne große Mischpool ist vielseitiger und basiert auf einem „erprobten“ Netzwerk wie Ethereum. Torndao ist im Wesentlichen ein Währungsmischpool, der zk-SNARK verwendet, und die Vertrauenseinstellung basiert auf dem Groth 16-Papier. Zu den mit Tornado Cash verfügbaren Funktionen gehören:

  1. Es können nur die eingezahlten Münzen ausgezahlt werden.
  2. Es können keine Münzen zweimal abgehoben werden
  3. Der Nachweisprozess ist an die Nullifizierungsbenachrichtigung (Nullifier) der Währung gebunden. Der Hash desselben Beweises, aber eines unterschiedlichen Nullifiers ermöglicht keine Auszahlung von Münzen.
  4. Die Sicherheit beträgt 126-Bit und wird aufgrund der Zusammensetzung nicht beeinträchtigt.

Vitalik erwähnte, dass Datenschutz im Vergleich zur Erweiterung relativ einfach umzusetzen sei. Wenn einige Erweiterungsprotokolle eingerichtet werden können, ist der Datenschutz grundsätzlich kein Problem.

Erweiterung: Die Erweiterung von ZK kann im Netzwerk der ersten Ebene, z. B. Mina, oder im Netzwerk der zweiten Ebene, z. B. zk-roll-up, erfolgen. Die Idee des ZK-Roll-Ups könnte aus Vitaliks Beitrag aus dem Jahr 2018 stammen: On-Chain-Skalierung auf potenziell ~500 TX/Sek. durch Massen-TX-Validierung.

ZK-Rollup hat zwei Arten von Rollen: eine ist Sequencer und die andere ist Aggregator. Der Sequencer ist für das Verpacken von Transaktionen verantwortlich, und der Aggregator ist dafür verantwortlich, eine große Anzahl von Transaktionen zusammenzuführen, ein Rollup zu erstellen und einen SNARK-Beweis zu erstellen (es kann sich auch um einen wissensfreien Beweis handeln, der auf anderen Algorithmen basiert). Dieser Beweis wird mit dem vorherigen Status von Layer1 verglichen, dann wird der Ethereum-Merkle-Baum aktualisiert und ein neuer Statusbaum berechnet.

Quelle: Polygon

Vor- und Nachteile des ZK-Rollups:

  1. Vorteile: niedrige Kosten, im Gegensatz zum OP, der wirtschaftlich angegriffen wird, keine Notwendigkeit, Transaktionen zu verzögern, die Privatsphäre kann geschützt werden und die Endgültigkeit kann schnell erreicht werden
  2. Nachteile: Die Erstellung eines ZK-Beweises erfordert einen hohen Rechenaufwand, Sicherheitsprobleme (SNARK erfordert eine vertrauenswürdige Einstellung), keine Resistenz gegen Quantenangriffe (SNARK, STARK können), die Transaktionsreihenfolge kann geändert werden

Quelle: Ethereum-Forschung

Basierend auf Datenverfügbarkeit und Beweismethoden verfügt Starkware über ein klassisches Klassifizierungsdiagramm für L2 (die Datenverfügbarkeitsschicht von Volition kann in der Kette oder außerhalb der Kette ausgewählt werden):

Quelle: Starkware

Zu den wettbewerbsfähigsten ZK-Rollup-Projekten, die derzeit auf dem Markt sind, gehören: StarkNet von Starkware, zkSync von Matterlabs und Aztec connect von Aztec, Hermez und Miden von Polygon, Loopring, Scroll usw.

Grundsätzlich liegt der technische Weg in der Wahl von SNARK (und seinen verbesserten Versionen) und STARK sowie der Unterstützung von EVM (einschließlich Kompatibilität oder Äquivalenz).

  1. Aztec hat ein verallgemeinertes SNARK-Protokoll entwickelt – das Plonk-Protokoll. Das laufende Aztec3 unterstützt möglicherweise EVM, aber der Datenschutz hat Vorrang vor der EVM-Kompatibilität.
  2. Starnet verwendet zk-STARK, ein ZKP, das keine vertrauenswürdigen Einstellungen erfordert, aber derzeit kein EVM unterstützt und über einen eigenen Compiler und eine eigene Entwicklungssprache verfügt.
  3. zkSync verwendet auch Plonk und unterstützt EVM. zkSync 2.0 ist EVM-kompatibel und verfügt über ein eigenes zkEVM
  4. Scroll, ein EVM-kompatibles ZK-Rollup, leistet das Team auch einen wichtigen Beitrag zum zkEVM-Projekt der Ethereum Foundation

Besprechen Sie kurz die EVM-Kompatibilitätsprobleme:

Die Kompatibilität zwischen ZK-System und EVM bereitete schon immer Kopfzerbrechen, und die meisten Projekte werden sich zwischen beiden entscheiden. Diejenigen, die ZK betonen, erstellen möglicherweise eine virtuelle Maschine in ihrem eigenen System und verfügen über eine eigene ZK-Sprache und einen eigenen Compiler. Dies erschwert jedoch das Erlernen für Entwickler und wird zu einer Blackbox, da es sich im Grunde nicht um Open Source handelt . Generell hat die Branche derzeit zwei Möglichkeiten. Eine besteht darin, vollständig mit den Opcodes von Solidity kompatibel zu sein, und die andere darin, eine neue virtuelle Maschine zu entwerfen, die ZK-freundlich und mit Solidity kompatibel ist. Die Branche hatte zu Beginn nicht mit einer so schnellen Integration gerechnet, aber die schnelle Iteration der Technologie in den letzten ein oder zwei Jahren hat die EVM-Kompatibilität auf ein neues Niveau gebracht, und Entwickler können ein gewisses Maß an nahtloser Migration erreichen (d. h. das Ethereum-Main). Kette zum ZK-Rollup) ist eine spannende Entwicklung, die sich auf die Entwicklungsökologie und Wettbewerbslandschaft von ZK auswirken wird. Wir werden dieses Thema in den folgenden Berichten ausführlich besprechen.

3. Grundprinzipien der ZK SNARK-Implementierung

Goldwasser, Micali und Rackoff schlugen vor, dass wissensfreie Beweise drei Eigenschaften haben:

  1. Vollständigkeit: Jede Aussage mit glaubwürdigen Zeugen kann vom Gutachter überprüft werden
  2. Stichhaltigkeit: Jede Behauptung mit nur unangemessenen Zeugen sollte nicht vom Prüfer überprüft werden
  3. Zero-Knowledge: Der Verifizierungsprozess ist Zero-Knowledge

Um ZKP zu verstehen, beginnen wir also mit zk-SNARK, da viele aktuelle Blockchain-Anwendungen mit SNARK beginnen. Werfen wir zunächst einen Blick auf zk-SNARK.

zk-SNARK bedeutet: Zero-Knowledge Proof (zh-SNARK) ist Zero-Knowledge, prägnante, nicht interaktive Argumente des Wissens.

  1. Zero Knowledge: Der Beweisprozess basiert auf Zero Knowledge und legt keine redundanten Informationen offen.
  2. Prägnant: Kleine Verifizierungsgröße
  3. Nicht interaktiv: nicht interaktiver Prozess
  4. Argumente: Die Berechnung ist zuverlässig, das heißt, der Beweiser mit begrenzter Rechenleistung kann den Beweis nicht fälschen, und der Beweiser mit unbegrenzter Rechenleistung kann den Beweis fälschen.
  5. des Wissens: Der Prüfer kann keinen Parameter und keinen Beweis erstellen, ohne gültige Informationen zu kennen
  6. Es ist für den Prüfer unmöglich, eine Reihe von Parametern und Beweise zu erstellen, ohne den Zeugen zu kennen (z. B. die Eingabe einer Hash-Funktion oder einen Pfad zur Bestimmung eines Merkle-Tree-Knotens).

Das Beweisprinzip von zk-SNARK von Groth16 lautet wie folgt:

Quelle: https://learnblockchain.cn/article/3220

Die Schritte sind:

  1. Wandeln Sie das Problem in einen Schaltkreis um
  2. Reduzieren Sie die Schaltung auf die Form R1CS.
  3. Konvertieren Sie R1CS in das QAP-Format (Quadratic Arithmetic Programs).
  4. Richten Sie ein vertrauenswürdiges Setup ein und generieren Sie zufällige Parameter, einschließlich PK (Prüfschlüssel) und VK (Prüfschlüssel).
  5. Beweiserstellung und Verifizierung von zk-SNARK

Im nächsten Artikel beginnen wir mit der Untersuchung der Prinzipien und Anwendungen von zk-SNARK, überprüfen die Entwicklung von ZK-SNARK anhand mehrerer Fälle und untersuchen seine Beziehung zu zk-STARK.

Haftungsausschluss:

  1. Dieser Artikel wurde von [HashKey Capital] nachgedruckt. Alle Urheberrechte liegen beim ursprünglichen Autor [HashKey Capital]. Wenn Sie Einwände gegen diesen Nachdruck haben, wenden Sie sich bitte an das Gate Learn- Team, das sich umgehend darum kümmern wird.
  2. Haftungsausschluss: Die in diesem Artikel geäußerten Ansichten und Meinungen sind ausschließlich die des Autors und stellen keine Anlageberatung dar.
  3. Übersetzungen des Artikels in andere Sprachen werden vom Gate Learn-Team durchgeführt. Sofern nicht anders angegeben, ist das Kopieren, Verbreiten oder Plagiieren der übersetzten Artikel verboten.

Ein Leitfaden für Anfänger zu wissensfreien Beweisen: Entwicklungsgeschichte, Anwendungen und Grundprinzipien

Einsteiger1/6/2024, 7:13:44 PM
In diesem Artikel werden systematisch die Entwicklungsgeschichte und die Grundprinzipien wissensfreier Beweise vorgestellt.

Die aktuelle Wachstumsrate von Zero-Knowledge-Proof-Projekten (ZKP) in der Blockchain-Branche ist erstaunlich, insbesondere der Anstieg von ZKP-Anwendungen auf den beiden Ebenen Erweiterung und Datenschutz, der uns einer Vielzahl von Zero-Knowledge-Proof-Projekten ausgesetzt hat. Aufgrund der extrem mathematischen Natur von ZKP ist es für Verschlüsselungsbegeisterte deutlich schwieriger, ZK im Detail zu verstehen. Daher hoffen wir auch, einige Änderungen in der ZKP-Theorie und -Anwendung von Anfang an zu klären und mit den Lesern die Auswirkungen und den Wert auf die Kryptoindustrie zu erkunden – gemeinsam durch mehrere Berichte zu lernen, die auch als Zusammenfassung der Gedanken des HashKey dienen Kapitalforschungsteam. Dieser Artikel ist der erste in der Reihe und stellt hauptsächlich die Entwicklungsgeschichte, Anwendungen und einige Grundprinzipien von ZKP vor.

1. Die Geschichte der wissensfreien Beweise

Das moderne Zero-Knowledge-Proof-System entstand aus dem von Goldwasser, Micali und Rackoff gemeinsam veröffentlichten Artikel „The Knowledge Complexity of Interactive Proof Systems“ (GMR85), der 1985 vorgeschlagen und 1989 veröffentlicht wurde. In diesem Artikel wird hauptsächlich erläutert, wie viel Wissen nach K Interaktionsrunden in einem interaktiven System ausgetauscht werden muss, um zu beweisen, dass eine Aussage korrekt ist. Wenn das ausgetauschte Wissen zu Null gemacht werden kann, spricht man von einem Zero-Knowledge-Beweis. Es wird davon ausgegangen, dass der Prüfer über unbegrenzte Ressourcen verfügt und der Verifizierer nur über begrenzte Ressourcen. Das Problem bei interaktiven Systemen besteht darin, dass der Beweis nicht vollständig mathematisch beweisbar, sondern im probabilistischen Sinne korrekt ist, obwohl die Wahrscheinlichkeit sehr gering ist (1/2^n).

Daher ist das interaktive System nicht perfekt und weist nur annähernde Vollständigkeit auf. Das auf dieser Grundlage geborene nicht-interaktive System (NP) ist vollständig und wird zur perfekten Wahl für das wissensfreie System.

Den frühen Zero-Knowledge-Proof-Systemen mangelte es an Effizienz und Benutzerfreundlichkeit, sodass sie immer auf der theoretischen Ebene blieben. Erst in den letzten 10 Jahren begannen sie zu blühen. Als die Kryptographie in der Kryptografie an Bedeutung gewann, rückten wissensfreie Beweise in den Vordergrund und wurden zu einer entscheidenden Richtung. Insbesondere die Entwicklung eines allgemeinen, nicht interaktiven, wissensfreien Protokolls mit begrenzter Beweisgröße ist eine der kritischsten Forschungsrichtungen.

Grundsätzlich ist der wissensfreie Beweis ein Kompromiss zwischen der Geschwindigkeit des Beweises, der Geschwindigkeit der Verifizierung und der Größe des Beweises. Das ideale Protokoll ist ein schneller Beweis, eine schnelle Verifizierung und eine kleine Beweisgröße.

Der wichtigste Durchbruch im Zero-Knowledge-Beweis ist Groths 2010 erschienene Arbeit Short Pairing-based Non-interactive Zero-Knowledge Arguments, die auch der theoretische Pionier der wichtigsten Gruppe von zk-SNARKs in ZKP ist.

Die wichtigste Entwicklung bei der Anwendung von Zero-Knowledge-Proofs ist das von Z-Cash im Jahr 2015 verwendete Zero-Knowledge-Proof-System, das die Vertraulichkeit von Transaktionen und Beträgen schützt. Später entwickelte sich daraus eine Kombination aus zk-SNARK und Smart Contracts, und zk-SNARK trat in breitere Anwendungsszenarien ein.

Zu den wichtigen akademischen Erfolgen in dieser Zeit gehören:

  1. Pinocchio (PGHR13) im Jahr 2013: Pinocchio: Nearly Practical Verifiable Computation, das die Beweis- und Verifizierungszeit auf den anwendbaren Umfang komprimiert, ist auch das von Zcash verwendete Basisprotokoll.
  2. Groth16 im Jahr 2016: On the Size of Pairing-based Non-interactive Arguments, das die Beweisgröße vereinfacht und die Verifizierungseffizienz verbessert, ist derzeit der am weitesten verbreitete ZK-Basisalgorithmus.
  3. Bulletproofs (BBBPWM17) Bulletproofs: Short Proofs for Confidential Transactions and More schlug 2017 den Bulletproof-Algorithmus vor, einen sehr kurzen, nicht interaktiven Zero-Knowledge-Proof, der keine vertrauenswürdige Einrichtung erfordert. Es wird 6 Monate später auf Monero angewendet und ist sehr schnell. Die Kombination aus Theorie und Anwendung.
  4. Im Jahr 2018 schlug zk-STARKs (BBHR18) Skalierbare, transparente und postquantensichere Rechenintegrität ein ZK-STARK-Algorithmusprotokoll vor, das keine vertrauenswürdigen Einstellungen erfordert. Dies ist derzeit eine weitere auffällige Richtung der ZK-Entwicklung und basiert auch darauf. Auf dieser Grundlage wurde StarkWare, das wichtigste ZK-Projekt, geboren.

Andere Entwicklungen wie PLONK, Halo2 usw. sind ebenfalls äußerst wichtige Fortschritte und haben auch einige Verbesserungen an zk-SNARK vorgenommen.

2. Kurze Beschreibung der Anwendung des Zero-Knowledge-Proofs

Die beiden am weitesten verbreiteten Anwendungen von Zero-Knowledge-Proofs sind der Schutz der Privatsphäre und die Kapazitätserweiterung. In den Anfängen, mit der Einführung von Datenschutztransaktionen und mehreren bekannten Projekten wie Zcash und Monero, wurden Datenschutztransaktionen einst zu einer sehr wichtigen Kategorie. Da die Notwendigkeit von Datenschutztransaktionen jedoch nicht so ausgeprägt war, wie von der Branche erhofft, begann sich diese Art von repräsentativen Projekten zu verlangsamen. Betreten Sie langsam die Lager der zweiten und dritten Stufe (ziehen Sie sich nicht von der Bühne der Geschichte zurück). Auf Anwendungsebene ist der Erweiterungsbedarf so stark gestiegen, dass sich Ethereum 2.0 (das in Konsensschicht umbenannt wurde) im Jahr 2020 in eine Rollup-zentrierte Route verwandelt hat. Die ZK-Serie ist offiziell wieder in die Aufmerksamkeit der Branche gerückt und in den Mittelpunkt gerückt.

Datenschutztransaktionen: Es gibt viele Projekte, die Datenschutztransaktionen implementiert haben, darunter Zcash mit SNARK, Tornado, Monero mit Bulletproof und Dash. Dash nutzt ZKP nicht im engeren Sinne, sondern ein einfaches und grobes Währungsmischsystem, das nur die Adresse, nicht aber den Betrag verbergen kann. Ich werde es hier nicht erwähnen.

Die von Zcash angewandten zk-SNARKs-Transaktionsschritte sind wie folgt:

Quelle: Entmystifizierung der Rolle von zk-SNARKs in Zcash

  1. In der System-Setup-Phase werden mithilfe der KeyGen-Funktion der Proof-Schlüssel (Verschlüsselungs-Proof-Polynom) und der Verifizierungsschlüssel generiert
  2. Die ECIES-Verschlüsselungsmethode (Elliptic Curve Integrated Encryption Scheme) der CPA-Phase wird zur Generierung öffentlicher und privater Schlüssel verwendet
  3. Die Minting-Coins-Phase gibt die Anzahl der generierten neuen Coins an. Öffentliche Ansprache und Münzverpflichtung
  4. In der Pouring-Phase wird ein zk-SNARK-Zertifikat generiert und dem Pour-Transaktionsbuch hinzugefügt.
  5. In der Verifizierungsphase überprüft der Prüfer, ob die Transaktionsvolumina von Mint und Pour korrekt sind.
  6. In der Empfangsphase erhält der Empfänger Münzen. Wenn Sie die erhaltenen Münzen verwenden möchten, rufen Sie Pouring weiterhin an, um eine zk-SNARK-Verifizierung zu erstellen, und wiederholen Sie die obigen Schritte 4 bis 6, um die Transaktion abzuschließen.

Zcash hat immer noch Einschränkungen bei der Verwendung von Zero-Knowledge, das heißt, es basiert auf UTXO, sodass ein Teil der Transaktionsinformationen nur abgeschirmt und nicht wirklich verheimlicht wird. Da es sich um ein separates Netzwerk handelt, das auf dem Design von Bitcoin basiert, ist es schwierig zu erweitern (mit anderen Anwendungen zu kombinieren). Die tatsächliche Nutzungsrate der Abschirmung (d. h. privater Transaktionen) beträgt weniger als 10 %, was zeigt, dass private Transaktionen nicht erfolgreich ausgeweitet wurden. (ab 2202)

Der von Tornado verwendete einzelne große Mischpool ist vielseitiger und basiert auf einem „erprobten“ Netzwerk wie Ethereum. Torndao ist im Wesentlichen ein Währungsmischpool, der zk-SNARK verwendet, und die Vertrauenseinstellung basiert auf dem Groth 16-Papier. Zu den mit Tornado Cash verfügbaren Funktionen gehören:

  1. Es können nur die eingezahlten Münzen ausgezahlt werden.
  2. Es können keine Münzen zweimal abgehoben werden
  3. Der Nachweisprozess ist an die Nullifizierungsbenachrichtigung (Nullifier) der Währung gebunden. Der Hash desselben Beweises, aber eines unterschiedlichen Nullifiers ermöglicht keine Auszahlung von Münzen.
  4. Die Sicherheit beträgt 126-Bit und wird aufgrund der Zusammensetzung nicht beeinträchtigt.

Vitalik erwähnte, dass Datenschutz im Vergleich zur Erweiterung relativ einfach umzusetzen sei. Wenn einige Erweiterungsprotokolle eingerichtet werden können, ist der Datenschutz grundsätzlich kein Problem.

Erweiterung: Die Erweiterung von ZK kann im Netzwerk der ersten Ebene, z. B. Mina, oder im Netzwerk der zweiten Ebene, z. B. zk-roll-up, erfolgen. Die Idee des ZK-Roll-Ups könnte aus Vitaliks Beitrag aus dem Jahr 2018 stammen: On-Chain-Skalierung auf potenziell ~500 TX/Sek. durch Massen-TX-Validierung.

ZK-Rollup hat zwei Arten von Rollen: eine ist Sequencer und die andere ist Aggregator. Der Sequencer ist für das Verpacken von Transaktionen verantwortlich, und der Aggregator ist dafür verantwortlich, eine große Anzahl von Transaktionen zusammenzuführen, ein Rollup zu erstellen und einen SNARK-Beweis zu erstellen (es kann sich auch um einen wissensfreien Beweis handeln, der auf anderen Algorithmen basiert). Dieser Beweis wird mit dem vorherigen Status von Layer1 verglichen, dann wird der Ethereum-Merkle-Baum aktualisiert und ein neuer Statusbaum berechnet.

Quelle: Polygon

Vor- und Nachteile des ZK-Rollups:

  1. Vorteile: niedrige Kosten, im Gegensatz zum OP, der wirtschaftlich angegriffen wird, keine Notwendigkeit, Transaktionen zu verzögern, die Privatsphäre kann geschützt werden und die Endgültigkeit kann schnell erreicht werden
  2. Nachteile: Die Erstellung eines ZK-Beweises erfordert einen hohen Rechenaufwand, Sicherheitsprobleme (SNARK erfordert eine vertrauenswürdige Einstellung), keine Resistenz gegen Quantenangriffe (SNARK, STARK können), die Transaktionsreihenfolge kann geändert werden

Quelle: Ethereum-Forschung

Basierend auf Datenverfügbarkeit und Beweismethoden verfügt Starkware über ein klassisches Klassifizierungsdiagramm für L2 (die Datenverfügbarkeitsschicht von Volition kann in der Kette oder außerhalb der Kette ausgewählt werden):

Quelle: Starkware

Zu den wettbewerbsfähigsten ZK-Rollup-Projekten, die derzeit auf dem Markt sind, gehören: StarkNet von Starkware, zkSync von Matterlabs und Aztec connect von Aztec, Hermez und Miden von Polygon, Loopring, Scroll usw.

Grundsätzlich liegt der technische Weg in der Wahl von SNARK (und seinen verbesserten Versionen) und STARK sowie der Unterstützung von EVM (einschließlich Kompatibilität oder Äquivalenz).

  1. Aztec hat ein verallgemeinertes SNARK-Protokoll entwickelt – das Plonk-Protokoll. Das laufende Aztec3 unterstützt möglicherweise EVM, aber der Datenschutz hat Vorrang vor der EVM-Kompatibilität.
  2. Starnet verwendet zk-STARK, ein ZKP, das keine vertrauenswürdigen Einstellungen erfordert, aber derzeit kein EVM unterstützt und über einen eigenen Compiler und eine eigene Entwicklungssprache verfügt.
  3. zkSync verwendet auch Plonk und unterstützt EVM. zkSync 2.0 ist EVM-kompatibel und verfügt über ein eigenes zkEVM
  4. Scroll, ein EVM-kompatibles ZK-Rollup, leistet das Team auch einen wichtigen Beitrag zum zkEVM-Projekt der Ethereum Foundation

Besprechen Sie kurz die EVM-Kompatibilitätsprobleme:

Die Kompatibilität zwischen ZK-System und EVM bereitete schon immer Kopfzerbrechen, und die meisten Projekte werden sich zwischen beiden entscheiden. Diejenigen, die ZK betonen, erstellen möglicherweise eine virtuelle Maschine in ihrem eigenen System und verfügen über eine eigene ZK-Sprache und einen eigenen Compiler. Dies erschwert jedoch das Erlernen für Entwickler und wird zu einer Blackbox, da es sich im Grunde nicht um Open Source handelt . Generell hat die Branche derzeit zwei Möglichkeiten. Eine besteht darin, vollständig mit den Opcodes von Solidity kompatibel zu sein, und die andere darin, eine neue virtuelle Maschine zu entwerfen, die ZK-freundlich und mit Solidity kompatibel ist. Die Branche hatte zu Beginn nicht mit einer so schnellen Integration gerechnet, aber die schnelle Iteration der Technologie in den letzten ein oder zwei Jahren hat die EVM-Kompatibilität auf ein neues Niveau gebracht, und Entwickler können ein gewisses Maß an nahtloser Migration erreichen (d. h. das Ethereum-Main). Kette zum ZK-Rollup) ist eine spannende Entwicklung, die sich auf die Entwicklungsökologie und Wettbewerbslandschaft von ZK auswirken wird. Wir werden dieses Thema in den folgenden Berichten ausführlich besprechen.

3. Grundprinzipien der ZK SNARK-Implementierung

Goldwasser, Micali und Rackoff schlugen vor, dass wissensfreie Beweise drei Eigenschaften haben:

  1. Vollständigkeit: Jede Aussage mit glaubwürdigen Zeugen kann vom Gutachter überprüft werden
  2. Stichhaltigkeit: Jede Behauptung mit nur unangemessenen Zeugen sollte nicht vom Prüfer überprüft werden
  3. Zero-Knowledge: Der Verifizierungsprozess ist Zero-Knowledge

Um ZKP zu verstehen, beginnen wir also mit zk-SNARK, da viele aktuelle Blockchain-Anwendungen mit SNARK beginnen. Werfen wir zunächst einen Blick auf zk-SNARK.

zk-SNARK bedeutet: Zero-Knowledge Proof (zh-SNARK) ist Zero-Knowledge, prägnante, nicht interaktive Argumente des Wissens.

  1. Zero Knowledge: Der Beweisprozess basiert auf Zero Knowledge und legt keine redundanten Informationen offen.
  2. Prägnant: Kleine Verifizierungsgröße
  3. Nicht interaktiv: nicht interaktiver Prozess
  4. Argumente: Die Berechnung ist zuverlässig, das heißt, der Beweiser mit begrenzter Rechenleistung kann den Beweis nicht fälschen, und der Beweiser mit unbegrenzter Rechenleistung kann den Beweis fälschen.
  5. des Wissens: Der Prüfer kann keinen Parameter und keinen Beweis erstellen, ohne gültige Informationen zu kennen
  6. Es ist für den Prüfer unmöglich, eine Reihe von Parametern und Beweise zu erstellen, ohne den Zeugen zu kennen (z. B. die Eingabe einer Hash-Funktion oder einen Pfad zur Bestimmung eines Merkle-Tree-Knotens).

Das Beweisprinzip von zk-SNARK von Groth16 lautet wie folgt:

Quelle: https://learnblockchain.cn/article/3220

Die Schritte sind:

  1. Wandeln Sie das Problem in einen Schaltkreis um
  2. Reduzieren Sie die Schaltung auf die Form R1CS.
  3. Konvertieren Sie R1CS in das QAP-Format (Quadratic Arithmetic Programs).
  4. Richten Sie ein vertrauenswürdiges Setup ein und generieren Sie zufällige Parameter, einschließlich PK (Prüfschlüssel) und VK (Prüfschlüssel).
  5. Beweiserstellung und Verifizierung von zk-SNARK

Im nächsten Artikel beginnen wir mit der Untersuchung der Prinzipien und Anwendungen von zk-SNARK, überprüfen die Entwicklung von ZK-SNARK anhand mehrerer Fälle und untersuchen seine Beziehung zu zk-STARK.

Haftungsausschluss:

  1. Dieser Artikel wurde von [HashKey Capital] nachgedruckt. Alle Urheberrechte liegen beim ursprünglichen Autor [HashKey Capital]. Wenn Sie Einwände gegen diesen Nachdruck haben, wenden Sie sich bitte an das Gate Learn- Team, das sich umgehend darum kümmern wird.
  2. Haftungsausschluss: Die in diesem Artikel geäußerten Ansichten und Meinungen sind ausschließlich die des Autors und stellen keine Anlageberatung dar.
  3. Übersetzungen des Artikels in andere Sprachen werden vom Gate Learn-Team durchgeführt. Sofern nicht anders angegeben, ist das Kopieren, Verbreiten oder Plagiieren der übersetzten Artikel verboten.
即刻开始交易
注册并交易即可获得
$100
和价值
$5500
理财体验金奖励!