Wozu Beweise?
Ein Indexer durchsucht die PIVX-Blockchain und baut daraus ein Namensregister. Aber warum sollte man ihm trauen? Was, wenn er:
- eine Registrierung erfindet, die es on-chain nie gab?
- die falsche Gebühr berechnet?
- einen Namen zweimal registriert?
- den Registerzustand manipuliert?
ZK-Beweise räumen diese Fragen aus. Jeder Beweis ist ein kryptografisches Zertifikat dafür, dass die Registrierung korrekt verarbeitet wurde. Jeder kann den Beweis unabhängig prüfen.
Was jeder Beweis verifiziert
Der PIVX-Prover nutzt SP1 — eine RISC-V-Zero-Knowledge-Virtual-Machine. Für jede Transaktion mit einer Domain führt der Prover innerhalb der zkVM folgende Prüfungen aus:
- Gültigkeit des Namens — 1–64 Zeichen, Kleinbuchstaben, Ziffern und Bindestriche, in einer erlaubten Zone
- Gültigkeit der Adresse — die Zieladresse ist eine abgeschirmte PIVX-Sapling-Adresse im richtigen Netz, in der modernen bech32-Form
- Ed25519-Signatur — die Signatur über die exakte signierte Nachricht ist gültig und stammt von dem Schlüssel, den die Operation verlangt
- Invarianten der Operation — Eigentum, Preiszustand und Nonce-Reihenfolge passen zur ausgeführten Operation
- Replay-Schutz — die Nonce ist strikt größer als die vorherige Nonce des Datensatzes
- Zustandsübergang — der Merkle-Beweis rekonstruiert den alten Root, und der neue Root folgt daraus, dass genau diese Änderung angewendet wurde
Schlägt eine Prüfung fehl, lässt sich der Beweis nicht erzeugen.
Was der Beweis nicht prüft
Genauigkeit ist hier wichtiger, als beeindruckend zu klingen:
- Die Zahlung wird nicht in der Schaltung geprüft. Ob eine Transaktion die richtige Gebühr
gezahlt hat und ob ein
BUYtatsächlich Mittel übertragen hat, setzt die Registrierungsstelle off-chain durch; prüfbar ist es für jeden, der die Kette mit dem veröffentlichten Viewing Key wiedergibt. Den Besitz einer Note in der zkVM zu beweisen wäre weit teurer, als der gesamte Batch heute kostet, und ergäbe eine schwächere Garantie als die Replikation ohnehin liefert — eine Schaltung sieht ein Note-Commitment, ein wiedergebender Indexer dagegen den entschlüsselten Betrag und das Memo. - Die Schaltung beweist nicht, dass die Eingaben die echte Kette waren. Sie beweist, dass der Übergang bei diesem Batch den Regeln folgt. Dass der Batch der wahre, vollständige und korrekt geordnete Befehlsstrom ist, stellt die Replikation fest — siehe Vertrauen & Privatsphäre.
Deshalb macht PiNS Betrug sichtbar, statt ihn zu verhindern: Ein fehlerhafter Batch lässt sich gar nicht erst beweisen, und ein Batch, der nicht aus der echten Kette stammt, wird von jedem unabhängigen Indexer widerlegt.
Öffentliche Ausgaben
Jeder Beweis legt sich auf 3 Werte fest, die dauerhaft mit ihm verbunden sind:
| Ausgabe | Beschreibung |
|---|---|
old_root | Merkle-Tree-Root vor dieser Registrierung |
new_root | Merkle-Tree-Root nach dieser Registrierung |
end_block_height | Der letzte PIVX-Block des Registrierungs-Batches |
end_block_height bindet den Beweis wie ein Checkpoint an einen bestimmten PIVX-Block. Jeder kann die Kette mit dem veröffentlichten Viewing Key bis zu dieser Höhe scannen und bestätigen, dass Memos und Beträge dem entsprechen, was der Batch behauptet hat.