Zum Hauptinhalt springen

Die Beweiskette

Die Domains werden im Batch registriert. Die Wartezeit pro Batch beträgt ca. 10 Minuten. Jede Charge erzeugt einen Proof. Diese Beweise bilden eine Kette von Zustandsübergängen seit der Entstehung:

genesis_root (empty tree -- known constant)
| +-- "richard.pivx" registered at block 100,
| +-- "john.pivx" registered at block 110,
| ... (could be more registration/update commands)
| ! Proof 1 is generated
| old_root = genesis_root --> new_root_1
| +-- "richard.pivx" put his name on marketplace at block 200,
| +-- "sam.pivx" registered at block 250,
| ... (could be more registration/update commands)
| ! Proof 2 is generated
| old_root = new_root_1 --> new_root_2 (= current root)

Der old_root jedes Beweises muss dem new_root des vorherigen Beweises entsprechen. Der old_root des ersten Beweises muss der bekannten Genesis-Wurzel (einem leeren Sparse-Merkle-Baum) entsprechen.

Überprüfung der Kette

Ein Verifizierer prüft den gesamten Registrierungsverlauf in fünf Schritten:

  1. Holen Sie sich den SP1-Verifizierungsschlüssel – deterministisch abgeleitet aus der Binärdatei des Gastprogramms
  2. Alle Beweise abrufen von der API
  3. Überprüfen Sie jeden SP1-Beweis mithilfe des Bestätigungsschlüssels
  4. Überprüfen Sie die Kettegenesis == P1.old_root, P1.new_root == P2.old_root, ..., PN.new_root == current_root
  5. Stichprobenprüfung in der Kette – Suchen Sie nach allen festgeschriebenen txid auf einem PIVX-Knoten und bestätigen Sie die Übereinstimmung von Memo, Wert und Block

Wenn alle Prüfungen erfolgreich sind, ist der gesamte Registrierungsverlauf korrekt – es ist kein Vertrauen in den Indexer erforderlich.

Proof-Pipeline

Der Scanner und der Prüfer laufen unabhängig voneinander:

PIVX Blockchain
|
PiNS Registrar Scanner (validates, captures SMT state)
|
Database (status: "pending")
|
SP1 Prover (generates ZK proof, verifies it)
|
Database (status: "proved")
|
New checkpoint published
|
Indexer syncs to the checkpoint
|
API Server (GET /v1.0/resolve/{name})

Der Scanner blockiert niemals die Proof-Erstellung. Der Prüfer-Daemon fragt nach ausstehenden Datensätzen ab und kann auf separater Hardware ausgeführt werden.