Pruebas Merkle
Cuando resuelves un nombre, la API devuelve una prueba de membresía de Merkle: 128 hashes hermanos del Sparse Merkle Tree. Esto le permite verificar la resolución sin confiar en el servidor.
Cómo funciona la verificación
leaf = SHA-256(address)
key = SHA-256("richard.pivx")
current_root
|
/ \
/ \
... ...
/ \
sibling[127] leaf(richard.pivx)
Sube la hoja a través de los 128 niveles usando los hashes hermanos. Si llega al smt_root anunciado, la resolución es correcta.
El árbol disperso de Merkle
PIVX Names utiliza un árbol Sparse Merkle (SMT) SHA-256 de profundidad 128:
- Profundidad 128 -- 2^128 espacios posibles, sin colisiones
- SHA-256 en todos los niveles para hash determinista
- Pruebas de no membresía - verificar que un nombre no esté tomado (necesario durante el registro)
- Pruebas de membresía -- verificar que un nombre está registrado (devuelto en resolución)
Estado determinista
Dos indexadores independientes que procesan los mismos bloques deben producir la misma raíz SMT. Una falta de coincidencia significa que uno está equivocado.
Verifique la raíz actual: GET /v1.0/info