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