Pruebas de Conocimiento Cero (ZKP), el state of art de la criptografía
Básicamente el funcionamiento de una Prueba de Conocimiento Cero o ZKP, consiste en crear un método de autenticación compartida. Uno donde no sea necesario revelar secretos completos para alcanzar el objetivo de revelar información sensible. De esta forma, si no hay revelación de información sensible es imposible robar el secreto, lo que brinda un alto nivel de seguridad.
Así tenemos que el hecho de funcionamiento básico de las ZKP, es generar un sistema que no revele información pero que permita a terceros verificar la existencia de la misma. Así nuestro sistema crea dos partes que son esenciales para el funcionamiento de un ZKP, el probador y el verificador.
El papel del probador es generar el secreto y mantener el control total sobre el mismo. Mientras que el verificador, simplemente puede verificar la autenticidad del mismo por medio de pruebas criptográficas que así se lo permiten. Por supuesto, estos principios criptográficos son ampliamente complejos y no son únicos. Por ejemplo, las Pruebas de Conocimiento Cero No Interactivas (zk-SNARK) o las Blind Signatures de David Chaum son solo algunos ejemplos de ZKP, cada una de ellas con sus propias particularidades.
El ejemplo de la cueva de Alí Babá
Sin embargo, la dificultad no solo teórica y práctica de las Pruebas de Conocimiento Cero, resultaba complejo no solo para muchos especialistas criptográficos, sino también para el público en general. Fue así como en 1992, se publicó; ¿Cómo explicar a tus hijos los Protocolos de Conocimiento Cero? Un sencillo artículo escrito por Louis Guillou, Jean-Jacques Quisquater y Thomas Berson, en el que explicaban las Pruebas de Conocimiento Cero con un sencillo ejemplo llamado “La cueva de Alí Babá“.
Básicamente este ejemplo dice lo siguiente:
Imaginemos una cueva, donde la entrada de la misma se divide en dos, formando un anillo que da al final con una puerta. Esta puerta puede ser abierta si y sólo si se dicen las palabras mágicas apropiadas para tal fin, permitiendo que una vez abierta, la persona pueda cruzar al otro lado.
En este ejemplo tenemos a María y Pablo. María conoce las palabras mágicas y lleva a Pablo hasta la cueva para darle una prueba fehaciente de que ella conoce las palabras mágicas. Así pues, María deja a Pablo en la entrada de la cueva mientras ella se adentra en uno de los pasillos. Al llegar a la puerta ella dice las palabras mágicas, logra cruzar al otro lado y seguir su camino hasta salir por el otro pasillo hasta la entrada donde está Pablo.
En este punto, Pablo puede dar por hecho que María pudo hacer trampa, así que le pide hacer lo mismo repetidamente. María lo hace y en cada ocasión María entra por un lado del pasillo y sale por el otro, demostrando claramente que conoce las palabras mágicas. De esa forma, María ha logrado demostrar a Pablo que conoce las palabras mágicas que abren la puerta de la cueva, pero en ningún momento se las ha revelado.
Como vemos un sencillo ejemplo para demostrarnos a todos cómo funcionan las Pruebas de Conocimiento Cero (ZKP).