Main menu

Pages

PLONK auf Bitcoin – CoinGeek

Meta description

Dieser Beitrag wurde erstmals am veröffentlicht Mittel.

Wir sind stolz bekannt zu geben, dass Bitcoin jetzt PLONK unterstützt. Eine detaillierte Beschreibung der Funktionsweise von PLONK finden Sie in unseren vorherigen Erläuterungen, Teil 1 und Teil 2.

Eine Nahaufnahme einer Flasche mit einem Bitcoin

Wir haben zuvor Groth16 implementiert, den kleinsten und effizientesten SNARK-Build. Dies erfordert jedoch eine vertrauenswürdige Konfiguration für jede Verbindung. Indem die Notwendigkeit einer vertrauenswürdigen Konfiguration pro Schaltung beseitigt wird, mindert PLONK Bedenken hinsichtlich der Sicherheit dieses Prozesses und stellt sicher, dass keine sichere Mehrparteienberechnung stattfindet (MPC)-Konfigurationszeremonien werden erneut erforderlich sein, wenn sich die Schaltung in Zukunft beispielsweise aufgrund von kritischen Fehlerbehebungen ändert. Universelle und aktualisierbare Konfigurationszeremonien wie Perpetual Powers of Tau können für jeden PLONK-Circuit wiederverwendet werden. Dies macht die Bereitstellung neuer Schaltkreise und die Aufrüstung vorhandener Schaltkreise viel einfacher und sicherer.

Führen Sie Ihren ersten PLONK auf Bitcoin aus

Wir haben Unterstützung für PLONK in unsere bestehende snarkJS-Bibliothek hinzugefügt, die vollständig mit Circom kompatibel ist. Alle für Groth16 entwickelten Circom-Schaltungen können ohne Änderungen direkt in PLONK wiederverwendet werden. Den vollständigen PLONK-Checker-Code finden Sie hier, zusammen mit einem Javascript-Test. Das Generieren eines PLONK-Verifizierers ähnelt dem Entwickeln eines Groth16-Verifizierers in snarkJS.

Zuerst müssen Sie den Circom-Compiler und unser snarkJS installieren.

Online-Bild 2-Skript URL-Text konfigurieren

1. Entwerfen Sie eine Schaltung

Implementieren Sie Schaltungen in Circom-Sprache. Zum Beispiel beweist diese einfache Schaltung/Programm namens „factor.cicom“, dass Menschen wissen, wie man die ganze Zahl „n“ in zwei ganze Zahlen zerlegt, ohne die ganzen Zahlen preiszugeben. Die Schaltung hat zwei private Eingänge namens “p” und “q” und einen öffentlichen Eingang namens “n”. Weitere Informationen zur Verwendung von Circom finden Sie unter https://docs.cicom.io.

2. Kompilieren Sie die Schaltung

Kompilieren Sie die Schaltung mit dem folgenden Befehl:

Befehl auf den Text zum Kompilieren der Schaltung

3. Beginne eine neue Zeremonie der **Tau-Kräfte**

Der „neue“ Befehl wird verwendet, um die **Tau-Kräfte**-Zeremonie einzuleiten.

Befugnisse des Tau-Befehls, um das Bild der Online-Zeremonie zu initiieren

Abschließend überprüfen wir das bisherige Protokoll:

snarkjs Befugnisse des Tau-Überprüfungsprotokolls Text im Bild online

4. Einrichtung

Dadurch wird ein Prüfschlüssel für die Schaltung generiert und dieser Schlüssel mit PLONK verifiziert.

snarkjs plonk konfigurieren

5. Verifizierungsschlüssel exportieren

Wir exportieren den Verifizierungsschlüssel von „circuit_final.zkey“ nach „verification_key.json“.

Verifizierungsschlüssel im Zeilenbild exportieren

6. Berechnung eines Zeugen

Zuerst erstellen wir eine ‚input.json‘-Datei, die die Schaltungseingänge mit folgendem Inhalt enthält:

Wir erstellen eine ‚input.json‘-Datei, die die Eingänge der Schaltung enthält

Als nächstes verwenden wir die aus der Schaltungskompilierung erhaltene „factor.wasm“, um die Zeugen zu berechnen:

Berechnen Sie Zeugen mithilfe des Knotens generate_witness.js Circuit Wasm Text wie im Zeilenbild

7. Beweise erstellen

Es verwendet den Beweisschlüssel und die Zeugen, um mit PLONK einen Beweis zu erzeugen.

Generieren Sie einen Beweis mit PLONK

8. Exportieren Sie einen sCrypt-Checker

Dadurch wird eine „verifier.scrypt“-Smart-Contract-Datei generiert, die den gesamten Code enthält, der zum Verifizieren des On-Chain-Proofs erforderlich ist.

snarkjs zkey export scryptverifier

Sie können es vor Ort überprüfen:

snarkjs plonk Text lokal überprüfen

9. Stellen Sie Verifier bereit

Sie können den Prüfer jetzt bereitstellen zu Bitcoin. Wickeln verifier.scrypt in einem Probevertrag PlonkVerifier wie nachstehend.

Jetzt können Sie sCrypt IDE verwenden, um es bereitzustellen.

Verwenden Sie zum Bereitstellen die sCrypt-IDE

Rechtsklick und auswählen Stellen Sie den Vertrag bereit: debug.

Vertrag zum Debuggen bereitstellen

Sobald der Vertrag zusammengestellt ist, was in wenigen Minuten abgeschlossen sein wird, sollte das folgende Fenster erscheinen. Klicke auf Einsetzen.

PlonkVerifier-Build-Argumente bereitstellen

Wenn alles gut geht, sollte der Verifizierervertrag eingesetzt worden sein.

Ausgabe Beginn der Bereitstellung des PlonkVerifier-Vertrags PlonkVerifier-Vertrag bereitgestellt

10. Überprüfen Sie die Beweise

Dann müssen Sie kopieren und einfügen proof.json in Anruf Bedienfeld und klicken Sie auf Calle freischalten ().

Nachweis in einer Ausgabentransaktion validiert

Wenn alles in Ordnung ist, sollten Sie Beweise sehen, die in einer Spesentransaktion gebucht wurden.

Was ist das nächste?

Herzliche Glückwünsche! Sie haben gerade Ihren ersten PLONK-Proof auf Bitcoin erstellt. Bisher haben wir sowohl Groth16 als auch PLONK implementiert. Dank der Programmierbarkeit und Skalierbarkeit von Bitcoin kann jedes Proof-System ähnlich wie ein Smart Contract implementiert werden. Jetzt ist es an der Zeit, Ihre bevorzugten Proof-Systeme wie Marlin, Sonic, Halo, Bulletproof und STARK zu implementieren.

Ansehen: Präsentation der BSV Global Blockchain Convention, Smart Contracts and Computation on BSV

width=”560″ height=”315″ frameborder=”0″ allowfullscreen=”allowfullscreen”>

Neu bei Bitcoin? Entdecken Sie CoinGeek Bitcoin für Anfänger Abschnitt, der ultimative Ressourcenleitfaden, um mehr über Bitcoin – wie ursprünglich von Satoshi Nakamoto vorgesehen – und Blockchain zu erfahren.

Blog In 2021 joker0o xyz

Commentaires