La cadena de prueba
Los dominios se registran por lotes. El tiempo de espera de cada lote es de ~10 minutos. Cada lote produce una prueba. Estas pruebas forman una cadena de transiciones de estados desde la génesis:
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)
El old_root de cada prueba debe ser igual al new_root de la prueba anterior. El old_root de la primera prueba debe ser igual a la raíz de génesis conocida (un árbol Sparse Merkle vacío).
Verificando la cadena
Un verificador verifica todo el historial de registro en cinco pasos:
- Obtenga la clave de verificación SP1: derivada de manera determinista del binario del programa invitado
- Obtenga todas las pruebas de la API
- Verifique cada prueba SP1 usando la clave de verificación
- Compruebe la cadena --
genesis == P1.old_root,P1.new_root == P2.old_root, ...,PN.new_root == current_root - Verificación puntual en cadena: busque cualquier
txidcomprometido en un nodo PIVX y confirme la coincidencia de la nota, el valor y el bloque.
Si se pasan todas las comprobaciones, todo el historial de registro es correcto: no es necesario confiar en el indexador.
Tubería de prueba
El escáner y el probador funcionan de forma independiente:
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})
El escáner nunca se bloquea al generar pruebas. El demonio de prueba busca registros pendientes y puede ejecutarse en hardware independiente.