¿Qué es una prueba de cero conocimiento (Zero-Knowledge)?
Últimamente, una nueva palabra de moda se ha hecho notar en la industria de la minería de criptomonedas - Zero-Knowledge Proof o monedas ZK.
¿Qué es la prueba de cero conocimiento y por qué hay tanta gente hablando de ella? Como en todo, hay que entender el problema antes de entender la solución.
¿Qué problema resuelve una prueba de cero conocimiento?
Las pruebas de cero conocimiento resuelven varios problemas relacionados con la privacidad y la seguridad en diversos ámbitos. He aquí algunos ejemplos:
- Autenticación y verificación de identidad: Las pruebas de cero conocimiento pueden utilizarse para demostrar la identidad sin revelar ningún dato personal. Por ejemplo, un usuario puede demostrar que tiene más de 18 años sin revelar su fecha exacta de nacimiento.
- Protección de datos: Las pruebas de cero conocimiento pueden utilizarse para validar datos sensibles, como historiales médicos o transacciones financieras, sin revelar los datos reales. Esto permite compartir y analizar datos de forma segura preservando la privacidad.
- Tecnología Blockchain: Algunas tecnologías de cadena de bloques utilizan pruebas de cero conocimiento para verificar las transacciones sin revelar los detalles. Esto ayuda a garantizar la confidencialidad y privacidad de las transacciones en la cadena de bloques.
- Ciberseguridad: Las pruebas de cero conocimiento pueden utilizarse para autenticar a los usuarios sin revelar sus contraseñas u otra información sensible. Esto ayuda a prevenir el robo de identidades y otras formas de ciberdelincuencia.
¿Qué son las pruebas de cero conocimiento?
Las pruebas de cero conocimiento son un protocolo criptográfico que permite a una parte, el prover, demostrar a otra parte, el verificador, que una afirmación es cierta sin revelar ninguna información adicional más allá de la verdad de la propia afirmación. En otras palabras, el prover puede convencer al verificador de que sabe algo sin revelar realmente lo que sabe. Esto se consigue utilizando complejos algoritmos criptográficos para crear pruebas que puedan verificarse sin revelar ninguna información sobre la propia prueba. Las pruebas de conocimiento-cero son útiles en situaciones en las que la privacidad es crucial, como en las transacciones en línea, la verificación de identidad y otras aplicaciones en las que es necesario proteger información sensible.
Las pruebas de cero conocimiento tienen tres requisitos:
- Integridad: Se espera que tanto el prover como el verificador respeten el protocolo con honestidad.
- Solidez: Suponiendo que el prover no sea honesto y no conozca el secreto, es poco probable que convenza al verificador de que posee el secreto, ya que la probabilidad de engañar al verificador es demasiado baja..
- Cero Conocimientos: Se refiere a un escenario en el que un prover (Bob) se dispone a demostrar a un verificador (Alice) que tiene conocimiento de un secreto. Sin embargo, la demostración solo convence a (Alice) del conocimiento secreto que posee (Bob), sin que haya medios para que personas ajenas puedan determinar la veracidad de la prueba.
Experimento en la cueva de Alí Babá
El ejemplo de la cueva de Alí Babá es una ilustración muy utilizada de las pruebas de cero conocimiento. En este escenario, Bob y Alice entran en una cueva con puertas en el lado opuesto de la entrada, ambos conocen el código para abrirlas. Bob afirma conocer el código y quiere demostrárselo a Alice sin revelarlo.
Para ello, Bob entra en la cueva por el lado izquierdo y camina hasta las puertas del lado opuesto. Mientras tanto, Alice espera en la entrada y le pide a Bob que salga por el lado derecho de la cueva. Si Bob abre la puerta con éxito y sale por el lado derecho, debe conocer el código. Sin embargo, Alice no sabe si Bob utilizó el camino de la derecha o de la izquierda al principio.
Esta prueba se repite varias veces, y Alice le pide a Bob que salga por diferentes lados de la cueva. Si Bob sale siempre por el lado correcto de la cueva, Alice puede estar segura de que conoce el código secreto sin necesidad de aprenderlo.
De este modo, el ejemplo de la cueva de Alí Babá demuestra cómo pueden utilizarse las pruebas de cero conocimiento para verificar una afirmación sin revelar ninguna información sensible.
¿Qué problema práctico puede resolver una prueba de cero conocimiento?
Un buen ejemplo práctico de problema es la publicidad de los contratos inteligentes. Los contratos inteligentes se escriben en la blockchain pública y pueden ser observados por cualquiera. Un contrato inteligente puede, por ejemplo, tener una condición escrita que liberará los fondos bloqueados a un usuario después de que esta condición se haya cumplido. Actualmente, esta condición puede ser observada por cualquiera a través de los exploradores de blockchain.
Con la prueba de cero conocimiento, una parte podría demostrar que la condición se ha cumplido sin revelar ninguna otra información sobre el contrato inteligente o las condiciones dentro de ese contrato inteligente.
Otro caso de uso podría ser probar las reservas de las bolsas de criptomonedas. Tal vez el intercambio no se sienta cómodo compartiendo información pública sobre las claves públicas de las billeteras que utilizan para el almacenamiento en frío. Pero pueden utilizar la prueba de conocimiento-cero para confirmar que tienen las reservas sin revelar ninguna otra información. El "verificador" de esta declaración puede estar seguro de que el intercambio efectivamente tiene reservas.