Zum Hauptinhalt springen

Warum Beweise?

Ein Indexer scannt die Blockchain ZCash und erstellt ein Namensregister. Aber warum sollte jemand darauf vertrauen? Was wäre, wenn es:

  • Erstellt eine Registrierung, die nie in der Kette stattgefunden hat?
  • Erhebt die falsche Gebühr?
  • Einen Namen zweimal registrieren?
  • Manipulationen am Registrierungsstatus?

ZK-Beweise beseitigen diese Fragen. Jeder Nachweis ist ein kryptografisches Zertifikat, das belegt, dass die Registrierung korrekt durchgeführt wurde. Jeder kann den Beweis unabhängig überprüfen.

Was jeder Beweis bestätigt

Der ZCash Prover verwendet SP1 – eine virtuelle RISC-V-Zero-Knowledge-Maschine. Für jede Transaktion mit der Domäne führt der Prüfer die folgenden Prüfungen innerhalb der zkVM durch:

  1. Namensgültigkeit – 1-64 Zeichen, Kleinbuchstaben alphanumerisch + Bindestriche
  2. Ausreichende Gebühr – die Transaktion hat ausreichend ZEC für die Namenslänge bezahlt
  3. Integrität des Protokollbefehls – alle Bedingungen des Protokolls sind erfüllt
  4. Ed25519-Signatur – die Signatur über memo command ist gültig
  5. Merkle-Baumeinfügung – der Name existierte noch nicht und der neue Statusstamm ist korrekt

Wenn eine Prüfung fehlschlägt, kann der Nachweis nicht erstellt werden.

Öffentliche Ausgaben

Jeder Beweis legt drei Werte fest, die dauerhaft an ihn gebunden sind:

AusgabeBeschreibung
old_rootMerkle-Baumwurzel vor dieser Registrierung
new_rootMerkle-Baumwurzel nach dieser Registrierung
end_block_heightDer neueste ZCash-Block des Registrierungsbatches

Die block_height heften den Beweis an einen bestimmten ZCash-Block (wie einen Prüfpunkt). Jeder kann Transaktionen auf einem ZCash-Knoten nachschlagen und die Übereinstimmung von Memo und Wert bestätigen.