¿Por qué pruebas?
Un indexador escanea la cadena de bloques ZCash y crea un registro de nombres. Pero ¿por qué alguien debería confiar en él? ¿Qué pasa si:
- ¿Fabrica un registro que nunca ocurrió en la cadena?
- ¿Cobra la tarifa equivocada?
- ¿Registra un nombre dos veces?
- ¿Altera el estado del registro?
Las pruebas ZK eliminan estas preguntas. Cada prueba es un certificado criptográfico de que el registro se tramitó correctamente. Cualquiera puede verificar la prueba de forma independiente.
Lo que verifica cada prueba
El ZCash Prover utiliza SP1, una máquina virtual de conocimiento cero RISC-V. Para cada transacción con dominio, el prover realiza las siguientes comprobaciones dentro del zkVM:
- Validez del nombre - 1-64 caracteres, alfanumérico en minúscula + guiones
- Suficiencia de tarifas: la transacción pagó suficiente ZEC por Longitud del nombre
- Integridad del comando del protocolo: se cumplen todas las condiciones del protocolo
- Firma Ed25519: la firma sobre
memo commandes válida - Inserción del árbol Merkle: el nombre aún no existía y la nueva raíz del estado es correcta
Si alguna verificación falla, no se podrá generar la prueba.
Salidas públicas
Cada prueba compromete 3 valores que están permanentemente vinculados a ella:
| Salida | Descripción |
|---|---|
old_root | Raíz del árbol Merkle antes de este registro |
new_root | Raíz del árbol Merkle después de este registro |
end_block_height | El último bloque ZCash del lote de registro |
El block_height fija la prueba a un bloque ZCash específico (como un punto de control). Cualquiera puede buscar transacciones en un nodo ZCash y confirmar la nota y la coincidencia del valor.