¿Por qué pruebas?
Un indexador escanea la cadena de bloques de PIVX y construye un registro de nombres. Pero ¿por qué habría que confiar en él? ¿Y si:
- inventa un registro que nunca ocurrió en la cadena?
- cobra una tarifa equivocada?
- registra un nombre dos veces?
- manipula el estado del registro?
Las pruebas ZK eliminan esas dudas. Cada prueba es un certificado criptográfico de que el registro se procesó correctamente. Cualquiera puede verificarla de forma independiente.
Qué verifica cada prueba
El generador de pruebas de PIVX usa SP1, una máquina virtual de conocimiento cero RISC-V. Para cada transacción con dominio, el generador realiza estas comprobaciones dentro de la zkVM:
- Validez del nombre: 1-64 caracteres, minúsculas alfanuméricas y guiones, en una zona permitida
- Validez de la dirección: la dirección de destino es una dirección blindada de PIVX Sapling en la red correcta, en la forma bech32 moderna
- Firma Ed25519: la firma sobre el mensaje firmado exacto es válida y la hizo la clave que la operación requiere
- Invariantes de la operación: la propiedad, el estado del precio y el orden del nonce son coherentes con la operación que se realiza
- Protección contra repetición: el nonce supera estrictamente el nonce anterior del registro
- Transición de estado: la prueba de Merkle reconstruye la raíz antigua, y la nueva raíz se deriva de aplicar exactamente ese cambio
Si falla cualquier comprobación, la prueba no puede generarse.
Lo que la prueba no comprueba
Aquí ser preciso importa más que sonar impresionante:
- El pago no se verifica dentro del circuito. Si una transacción pagó la tarifa correcta y
si un
BUYtransfirió realmente los fondos lo impone el registrador fuera de la cadena, y es comprobable por cualquiera que reproduzca la cadena con la clave de visualización publicada. Demostrar la titularidad de una nota dentro de la zkVM costaría mucho más de lo que cuesta hoy el lote entero, y ofrecería una garantía más débil que la que ya da la replicación: un circuito ve un compromiso de nota, mientras que un indexador que reproduce ve el importe descifrado y el memo. - El circuito no demuestra que las entradas fueran la cadena real. Demuestra que, dado este lote, la transición cumple las reglas. Que el lote sea el flujo de comandos verdadero, completo y correctamente ordenado lo establece la replicación — consulte Confianza y privacidad.
Por eso PiNS deja el fraude a la vista en lugar de impedirlo: un lote incorrecto no puede demostrarse en absoluto, y un lote que no vino de la cadena real queda contradicho por todos los indexadores independientes.
Salidas públicas
Cada prueba se compromete con 3 valores ligados a ella de forma permanente:
| Salida | Descripción |
|---|---|
old_root | Raíz del árbol de Merkle antes de este registro |
new_root | Raíz del árbol de Merkle después de este registro |
end_block_height | El último bloque de PIVX del lote de registros |
end_block_height fija la prueba a un bloque concreto de PIVX, como un punto de control. Cualquiera puede escanear la cadena hasta esa altura con la clave de visualización publicada y confirmar que los memos y los importes coinciden con lo que el lote afirmaba.