Zum Hauptinhalt springen

Merkle-Beweise

Wenn Sie einen Namen auflösen, gibt die API einen Merkle-Mitgliedschaftsnachweis zurück – 128 Geschwister-Hashes aus dem Sparse Merkle Tree. Dadurch können Sie die Auflösung überprüfen, ohne dem Server zu vertrauen.

So funktioniert die Verifizierung

leaf = SHA-256(address)
key = SHA-256("richard.pivx")

current_root
|
/ \
/ \
... ...
/ \
sibling[127] leaf(richard.pivx)

Hashen Sie das Blatt mithilfe der Geschwister-Hashes durch die 128 Ebenen. Wenn Sie zum angekündigten smt_root gelangen, ist die Auflösung korrekt.

Der spärliche Merkle-Baum

PIVX Names verwendet einen SHA-256 Sparse Merkle Tree (SMT) der Tiefe 128:

  • Tiefe 128 – 2^128 mögliche Slots, keine Kollisionen
  • SHA-256 auf jeder Ebene für deterministisches Hashing
  • Nichtmitgliedschaftsnachweise – Überprüfen Sie, ob ein Name nicht vergeben ist (wird bei der Registrierung benötigt)
  • Mitgliedschaftsnachweise – überprüfen, ob ein Name registriert ist (wird bei Lösung zurückgegeben)

Deterministischer Zustand

Zwei unabhängige Indexer, die dieselben Blöcke verarbeiten, müssen denselben SMT-Root erzeugen. Eine Nichtübereinstimmung bedeutet, dass man falsch liegt.

Überprüfen Sie den aktuellen Stamm: GET /v1.0/info