Prueba de conocimiento cero
Se lee en aproximadamente 5 minutos
Última actualización: 2026-03-01
Qué es la prueba de conocimiento cero
La prueba de conocimiento cero (Zero-Knowledge Proof / ZKP) es un método criptográfico que permite demostrar que una proposición es verdadera sin revelar ninguna información sobre el contenido de dicha proposición. Fue propuesta en 1985 por tres investigadores: Goldwasser, Micali y Rackoff.
Para explicarlo con un ejemplo cotidiano, si quieres demostrar que "conoces la combinación de una caja fuerte", normalmente le dirías la combinación a la otra persona y abrirías la caja fuerte. Con la prueba de conocimiento cero, puedes demostrar solo el hecho de que "conoces la combinación" sin revelar la combinación en sí.
Esta tecnología es un concepto importante de la criptografía moderna junto con el cifrado de extremo a extremo y la criptografía de clave pública, y se aplica en una amplia gama de campos como la protección de la privacidad, la autenticación y la escalabilidad de blockchain.
Las 3 propiedades de la prueba de conocimiento cero
Para que una prueba de conocimiento cero sea válida, debe cumplir las siguientes 3 propiedades.
- Completitud (Completeness): Si el demostrador realmente conoce el secreto, el verificador siempre determinará "verdadero". Un demostrador honesto nunca será rechazado injustamente.
- Solidez (Soundness): Si el demostrador no conoce el secreto, no puede engañar al verificador para que determine "verdadero" (excepto con una probabilidad muy pequeña). La probabilidad de que un demostrador mentiroso pase la verificación es insignificantemente pequeña.
- Conocimiento cero (Zero-Knowledge): Durante el proceso de verificación, el verificador no obtiene ninguna información más allá del hecho de que "la proposición es verdadera". Incluso registrando el intercambio de la prueba, no se obtienen pistas sobre el secreto.
La analogía de la cueva (La cueva de Alí Babá)
Para una comprensión intuitiva de la prueba de conocimiento cero, es famosa la analogía de "la cueva de Alí Babá". Una cueva circular tiene 2 entradas, A y B, conectadas en el fondo por una puerta mágica. El demostrador quiere probar que "conoce el hechizo para abrir la puerta". El verificador pide al demostrador que entre en la cueva y aleatoriamente le indica "sal por A" o "sal por B". Si conoce el hechizo, siempre puede salir por la salida indicada, pero si no lo conoce, solo tiene un 50% de probabilidad de éxito. Si esto se repite 20 veces, la probabilidad de éxito por casualidad es inferior a 1 en un millón.
Tipos y tecnologías de pruebas de conocimiento cero
- Prueba de conocimiento cero interactiva: Un método donde el demostrador y el verificador intercambian mensajes en tiempo real. La analogía de la cueva anterior corresponde a este tipo. El verificador envía un desafío aleatorio y el demostrador responde. Como requiere diálogo para cada verificación, es poco eficiente.
- Prueba de conocimiento cero no interactiva (NIZK): Un método donde el demostrador genera la prueba una sola vez y el verificador puede verificarla posteriormente. Como no requiere diálogo, es adecuada para verificación offline como en blockchain. La transformación de Fiat-Shamir permite convertir una prueba interactiva en no interactiva.
- zk-SNARK: Acrónimo de Zero-Knowledge Succinct Non-Interactive Argument of Knowledge. El tamaño de la prueba es pequeño (cientos de bytes) y la verificación es rápida (milisegundos). Adoptado por Zcash, permite verificar la validez de las transacciones manteniendo ocultos el remitente, destinatario y monto. Sin embargo, requiere una configuración inicial (Trusted Setup), y si esta configuración se filtra, existe el riesgo de crear pruebas falsas.
- zk-STARK: Versión mejorada de zk-SNARK que no requiere Trusted Setup. El tamaño de la prueba es mayor que zk-SNARK, pero tiene resistencia contra computadoras cuánticas. Desarrollado por StarkWare y adoptado en la solución de escalabilidad de Ethereum (StarkNet).
Aplicaciones y futuro de las pruebas de conocimiento cero
Las pruebas de conocimiento cero no se limitan a ser una tecnología criptográfica teórica, sino que se utilizan ampliamente en sistemas prácticos.
- Autenticación que preserva la privacidad: En escenarios de verificación de edad, demostrar solo que "eres mayor de 18 años" sin revelar la fecha de nacimiento. Existe la posibilidad de que las pruebas de conocimiento cero se incorporen como extensión futura de las passkeys para autenticación basada en atributos.
- Escalabilidad de blockchain: En las soluciones Layer 2 de Ethereum (zk-Rollup), miles de transacciones se agrupan en una sola prueba de conocimiento cero y se registran en la cadena principal. Se puede verificar la validez sin publicar los detalles de las transacciones, mejorando tanto la velocidad de procesamiento como la privacidad.
- Cifrado de conocimiento cero en almacenamiento en la nube: Servicios como Tresorit y Proton Drive promueven el "cifrado de conocimiento cero", adoptando un diseño donde el proveedor no puede ver los datos del usuario en absoluto. Estrictamente no es una prueba de conocimiento cero en sí, sino el concepto de cifrado del lado del cliente, pero encarna la filosofía de conocimiento cero en el sentido de que "el proveedor no sabe nada sobre los datos".
- Combinación con cifrado de datos: Se están realizando investigaciones que combinan el cifrado homomórfico, que permite realizar cálculos sobre datos cifrados sin descifrarlos, con pruebas de conocimiento cero, haciendo posible el procesamiento de datos preservando completamente la privacidad.
Las pruebas de conocimiento cero tenían el desafío del alto costo computacional, pero con la evolución del hardware y la mejora de los algoritmos de prueba, están aumentando los sistemas que funcionan a velocidades prácticas. En la era moderna donde se requiere la compatibilidad entre privacidad y seguridad, es una tecnología que seguirá ganando importancia.
Conceptos erróneos comunes
- Las pruebas de conocimiento cero son un concepto teórico que no se ha puesto en práctica
- Zcash (criptomoneda), StarkNet (Ethereum Layer 2), Proton Drive (almacenamiento en la nube) y muchos otros sistemas prácticos ya están operando con pruebas de conocimiento cero. Especialmente en el campo de blockchain, zk-Rollup se ha adoptado como una solución principal de escalabilidad.
- Con las pruebas de conocimiento cero se puede ocultar completamente cualquier dato
- Las pruebas de conocimiento cero son una tecnología para demostrar que "una proposición es verdadera" sin revelar secretos, y difieren del cifrado cuyo objetivo es la ocultación de datos en sí. Además, la generación de pruebas tiene un costo computacional y no se puede aplicar a todos los casos de uso.
Comparación entre zk-SNARK y zk-STARK
zk-SNARK
Tamaño de prueba pequeño (cientos de bytes) y verificación rápida. Adoptado por Zcash y algunos proyectos de Ethereum. Sin embargo, requiere configuración inicial (Trusted Setup) y depende de la seguridad de esta configuración. Posiblemente vulnerable a computadoras cuánticas.
zk-STARK
No requiere Trusted Setup y tiene alta transparencia. Tiene resistencia contra computadoras cuánticas. Sin embargo, el tamaño de la prueba es mayor que zk-SNARK (decenas de KB) y la verificación tarda un poco más. Implementado en producción en StarkNet.