“Zero Knowledge Proof” para mortales

María Teresa Nieto Galán    29 octubre, 2020

Las siglas ZKP corresponden a los términos Zero Knowledge Protocol o Zero Knowledge Proofs. Traducido al castellano, protocolo o pruebas de conocimiento cero. Se trata de técnicas criptográficas que permiten garantizar que algo es verdad sin desvelar el contenido que realmente lo demuestra.

¿Y qué hace que este protocolo sea cada vez más conocido? Su gran particularidad es que nos permite mantener datos en secreto. Sin embargo podemos demostrar que esos datos existen, están en nuestro poder y cualquiera puede verificarlo en cualquier momento. En otras palabras, no sería necesario desvelar una información para demostrar que esa información está en nuestra posesión. Quizás se entiende mejor con un ejemplo sencillo. Utilizando ZKP podemos demostrar que alguien es mayor de edad sin revelar su edad concreta.

Estas características hacen ZKP sea un método criptográfico con infinidad de potenciales casos de uso. Por ejemplo, al no compartir ningún tipo de información, se evitan fugas de datos por brechas de seguridad en sistemas. También nos permite ejecutar algoritmos sobre sets de información sin revelar la información en sí misma sino las pruebas. En el ejemplo, podríamos aplicar algoritmos de segmentación de audiencia por edad sin saber las edades concretas de la población.

¿Para qué sirve?

Parece magia, pero no lo es. Para poder aplicar este protocolo hay que procesar y comprender muchas fórmulas y cálculos matemáticos complejos. Sin embargo, para comprenderlo de manera sencilla podemos seguir desarrollando nuestro ejemplo de la edad.

“Imagina que es tu decimoctavo cumpleaños y por fin puedes entrar a una discoteca de noche de manera legal. El portero te pide que demuestres que tienes realmente dieciocho años para poder pasar. Así que tú le enseñas el DNI. Es decir: la fecha de nacimiento completa, nombre completo tuyo y de tus padres y ¡hasta tu domicilio! “

¿No podríamos demostrarle que tenemos 18 años sin enseñarle tanta información, que además no es relevante? La respuesta ahora sería muy sencilla: Sí, si lo demostramos usando el protocolo de conocimiento cero. Por ejemplo, podemos enseñarle un código QR en el móvil. Al escanearlo, el portero sólo vería si nos puede dejar pasar o no. Mantenemos el dato concreto de la edad o el resto de información del DNI en secreto. El código QR vendría a ser el interfaz legible por terceros de esa prueba de conocimiento cero.

Esta técnica criptográfica tiene muchas posibles aplicaciones en muchos casos de uso. Pero hay una tecnología cuyas características encajan de manera natural con este protocolo.

ZKP y Blockchain

Hay una tecnología que crea una red de almacenamiento de información de manera descentralizada. Todos los miembros replican toda la información y acceden a ella por igual. ¿Os suena que tecnología es? ¡Bingo: Blockchain!

Entonces, ¿se podría aplicar este protocolo criptográfico en redes de Blockchain? ¡Por supuesto! Y, además, ya han surgido soluciones que están adoptando este protocolo como método de garantizar la privacidad de cierta información.

Un ejemplo de donde se podría aplicar es en la sincronización de nuevos nodos de Blockchain. Para los que no estén familiarizados, un nodo de Blockchain es cada uno de los servidores conectados a la red. Su misión es mantener en sus sistemas de almacenamiento una copia completa de la cadena. Es decir, todas las transacciones que se han realizado en la red desde su creación hasta ese momento. Por ejemplo, en la red de bitcoin, se almacenan diariamente más de 300.000 transacciones. Traducido a espacio en disco supone un tamaño de más de 310GB. Cuando conectamos un nodo a una red existente, debe replicar la cadena y validar él mismo todo el histórico. Sólo entonces puede empezar a procesar transacciones. En función de la longevidad que tenga la red suele llevar horas, e incluso días, el alcanzar ese estado. Es lo que se conoce como la sincronización del nodo.

Aplicando ZKP, no necesitaríamos que el nodo que hubiésemos creado validase toda el histórico de transacciones en la sincronización. En este caso, otro nodo que ya ha validado toda la cadena podría crear una prueba de su validez. El nuevo nodo en vez de sincronizar podría verificar exclusivamente esa prueba. No es necesario que conozca todas las transacciones y vuelva a validar todo, disminuyendo así el tiempo de cálculo convencional.

Privacidad y datos personales

Pero donde más aplicaciones tiene ZKP es para garantizar la privacidad de la información de los usuarios de ciertos servicios. El caso típico es el desarrollo de soluciones de identidad digital soberana. Especialmente cuando existe la posibilidad de compartir ciertos datos personales para probar ciertas condiciones sin realmente desvelarlos. Suena familiar esto, ¿verdad?

No sólo en soluciones de identidad digital y gestión de datos personales hay que tener en cuenta los aspectos legales. El Reglamento General de Protección de Datos (RGPD) aplica especialmente cuando utilizamos Blockchain. Su característica inherente de inmutabilidad de la información hace que el diseño de estas soluciones sea todo un reto. Hay que tener en cuenta que la información que almacenamos no puedese borrar ni modificarse, comprometiendo las bases del RGPD. No obstante, la aplicación de ZKP podría solventar ciertos problemas. Podemos conseguir que la transmisión de datos sensibles se hiciese preservando la eventual privacidad del individuo o confidencialidad del negocio. Entre esos datos estarían por supuesto los datos personales protegidos por el Reglamento. Pero también los datos confidenciales que no quieren ser expuestos a terceros, pero sí utilizados por una aplicación.

Viabilidad hoy de ZKP

Aparentemente parece que la aplicación del protocolo de conocimiento cero sólo aporta ventajas. Sin embargo, la tecnología relativa a la implementación a este protocolo criptográfico todavía está en proceso de maduración. La masificación de estas soluciones esta lejos de ser una realidad debido al gran coste computacional del proceso de demostración-verificación. Es más, si tuviésemos miles peticiones de verificación en periodos muy cortos de tiempo, probablemente compremeteríamos el sistema que lo estuviera ejecutando.

En cualquier caso, esta limitación desaparecerá en la medida que maduren tecnologías disruptivas como la computación cuántica. Por tanto, el potencial de la tecnología que hay detrás ZKP es enorme. Especialmente para resolver algunos de los problemas que se nos presentan hoy en día en el mundo digital. Por eso creemos que todos deberíamos tenerla en el radar en los próximos años.

Para mantenerte al día con el área de Internet of Things de Telefónica visita nuestra página web o síguenos en TwitterLinkedIn YouTube.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *