ZKP · Versión mejorada · 29/09/2026
Convencer sin revelar.
La cueva de Alí Babá.
Observá una prueba interactiva, distinguí lo que sabe cada participante y comprobá por qué acertar una vez no basta. Después compará esta analogía con un compromiso hash.
- 1 · Entrada oculta
- 2 · Desafío aleatorio
- 3 · Respuesta
- 4 · Verificación
Registro de rondas · vista del verificador
| Ronda | Desafío | Respuesta | Resultado | Entrada oculta |
|---|
1 · Crear un compromiso
Usamos SHA-256 real del navegador. La aleatoriedad privada r se genera con 16 bytes aleatorios.
C = SHA-256(r + ":" + mensaje)
Todavía no se creó un compromiso.
Mantener r impredecible y privada evita que un mensaje de baja entropía pueda probarse fácilmente por diccionario. Publicar r elimina esa protección: un salt público no vuelve segura una contraseña débil.
2 · Abrir y verificar
Los campos se completan para facilitar la práctica. La aplicación recibe el mensaje y r, calcula el hash y comprueba si coincide con C.
Probá el mismo mensaje y luego cambiá una letra. En el segundo caso la apertura debe rechazarse. Para probar conocimiento de una preimagen sin compartirla se necesita un sistema ZKP adicional.
Guía para interpretar el laboratorio
1 · ¿Qué se demuestra y qué se mantiene oculto?
La afirmación es «puedo atravesar la puerta interior». El testigo es la palabra secreta. El probador elige A o B sin ser observado; después el verificador solicita una salida aleatoria. Quien conoce la palabra puede cruzar si necesita cambiar de camino. El verificador observa la respuesta, pero no escucha la palabra ni observa la entrada.
En una ZKP formal se define una relación R(x,w)=1: x representa los datos públicos y w el testigo privado. La prueba debe convencer al verificador sin aportar información adicional sobre w más allá de lo que ya se deduce de x.
2 · Completitud, solidez y cero conocimiento
Completitud: bajo las reglas de esta cueva ideal, conocer la palabra permite responder correctamente a cualquier desafío. Solidez: sin la palabra solo se puede regresar por el camino de entrada, de modo que se acierta con probabilidad 1/2. Para k desafíos independientes, superar la sesión completa tiene probabilidad 2−k. Esta cota depende del protocolo y no es una fórmula universal para todas las ZKP.
Cero conocimiento: en la analogía, la vista del verificador no contiene la palabra ni el recorrido interno. Formalmente, se estudia si un simulador que no conoce w puede reproducir una vista indistinguible. Ocultar datos en una interfaz no demuestra por sí solo esta propiedad.
3 · ¿Por qué importa el orden?
Si el probador conoce la salida solicitada antes de elegir su entrada, puede entrar por ese camino y volver por él sin abrir la puerta. Acertaría siempre sin conocer el secreto. Por eso el desafío se genera después de la entrada, debe ser impredecible y no puede reutilizarse como si fuera una nueva ronda independiente.
4 · Experimento guiado y cálculo
Activá el secreto y ejecutá cinco rondas: todas deben acertar. Desactivalo y repetí el experimento: aparecerán aciertos y fallos. En una sesión de diez rondas fijada de antemano, la probabilidad teórica de pasar todas sin secreto es 1/1024 = 0,09765625 %. En mil sesiones, el número esperado de aceptaciones falsas es aproximadamente 0,98, aunque una ejecución puede producir cero, una o más.
Una racha seleccionada después de muchos intentos no equivale a superar una única sesión previamente definida. Tampoco permite calcular la probabilidad de que el probador sea deshonesto sin un modelo previo adicional.
5 · Hash, compromiso y ZKP: tres conceptos distintos
Un hash transforma datos en una huella. Un compromiso busca ocultación (no descubrir el valor antes de abrirlo) y vinculación (no abrirlo después como un valor distinto). El compromiso de este laboratorio incorpora aleatoriedad privada; su seguridad depende del hash, la entropía y el manejo de esa aleatoriedad.
Al abrir, se entregan el valor y r. En cambio, una ZKP de preimagen demostraría «conozco m y r que satisfacen C = H(r || m)» enviando una prueba π al verificador, sin entregar m ni r. Un hash aislado no implementa ese protocolo.
6 · Del protocolo interactivo al ZK-rollup
La cueva presenta un diálogo. Los sistemas no interactivos permiten publicar una prueba verificable junto con entradas públicas. En un rollup la afirmación describe una transición válida entre raíces de estado; el testigo incluye la ejecución y los datos que satisfacen las restricciones del circuito.
Una prueba de validez certifica que las reglas se cumplen. No vuelve privadas automáticamente las transacciones ni garantiza por sí sola disponibilidad de datos. Un ZK-rollup publica datos suficientes en L1 para reconstruir su estado; un Validium los mantiene fuera de L1 y añade supuestos de disponibilidad. La finalidad depende también de la inclusión y finalidad en L1.
7 · Preguntas para la clase
¿Un acierto demuestra conocimiento? No: sin secreto puede acertarse por azar. ¿Un fallo es compatible con un probador honesto en la cueva ideal? No, porque la simulación asume que siempre puede abrir la puerta. ¿Se puede usar este HTML como autenticación? No: ambos roles son simulados y el modo se controla desde la página. ¿Una ZKP de edad prueba que el dato ingresado es auténtico? Solo si la relación también verifica una credencial de un emisor aceptado; verificar la aritmética de un dato inventado no basta.
Referencias y siguiente lectura
- Quisquater y colaboradores, How to Explain Zero-Knowledge Protocols to Your Children, CRYPTO ’89, publicación 1990.
- Ethereum.org: Zero-knowledge proofs, ZK-rollups y Validium.