¿Qué es Zero Knowledge Protocol (ZKP)?

Zero Knowledge Protocol o por sus siglas, ZKP, es un avanzado protocolo de criptografía empleado para crear sistemas distribuidos altamente seguros y anónimos. Los protocolos ZKP permiten compartir y verificar la información sin revelar datos innecesarios, manteniendo así un altísimo nivel de seguridad.

La seguridad, privacidad y el anonimato, son objetivos que los cypherpunks han perseguido siempre desde sus inicios en la década de los 80. Una serie de objetivos nada fáciles de cumplir debido a la complejidad que encierran los sistemas capaces de proporcionar todas estas capacidades.

Sin embargo, el desarrollo conjunto y muchas veces comunitario de estas herramientas, nos ha permitido crear una tecnología capaz de ofrecer todas estas características. Y lo mejor de todo, es que no se renuncia en ningún momento a la flexibilidad y la facilidad de uso. Estamos hablando de los protocolos o pruebas de conocimiento cero (Zero Knowledge Protocol) o ZKP, por sus siglas en inglés.

Gracias a la existencia de este protocolo, en la actualidad podemos gozar de sistemas distribuidos muy seguros y anónimos. Pero ¿Qué tan seguras son las ZKP? ¿Cómo funciona este protocolo? ¿Dónde es aplicado? Esas preguntas y muchas más te las responderemos en este nuevo artículo de Bit2Me Academy.

El método Zero Knowledge Protocol

Una prueba ZKP sirve como un método de autenticación en el que no es necesario revelar secretos para alcanzar el objetivo de demostrar que se tiene una determinada información secreta. Esto es importante porque el hecho de no compartir secretos, significa que los mismos no se pueden robar. Sin lugar a dudas, una característica interesante que nos permite crear canales de comunicación muy seguros.

El objetivo de este tipo de protocolos es probar que se conoce algún o varios secretos a alguien, sin que realmente se revele dicho secreto. El propio término “conocimiento cero” se origina en el hecho de que no se revela ninguna información. En este proceso participan dos partes; el “Probador” del argumento, y el “Verificador” del mismo.

La idea básica detrás de este protocolo, es probar inequívocamente que el “Probador” conoce el secreto sin revelarlo, una tarea que queda en manos del “Verificador”. Lo mejor es que para comprobar dicha información, no se necesita consultar a un tercero, solo basta con tomar la información del “Probador” y aplicar el protocolo. De esta manera, el “Verificador” puede saber si es cierta la información en todo momento.

En pocas y más sencillas palabras:

Una prueba de conocimiento cero, es un método criptográfico por el cual, una de las partes puede demostrar a la otra, la veracidad de una información, sin revelar información sensible de dicha información.

Desarrollar esta tecnología criptográfica conllevó un arduo trabajo por parte de muchos criptógrafos y colaboradores. Pero el resultado obtenido, nos ha permitido en la actualidad modelar y crear sistemas muy seguros y que antes eran impensables.

Un poco de historia previa a ZKP

Por supuesto la creación de las ZKP no fue un evento fortuito, en realidad, es la unión de diversos trabajos en más de 50 años de investigación. Acá conocerás un poco más sobre como se hizo realidad este avanzado sistema de criptografía.

La llegada de la criptografía asimétrica

El desarrollo de la criptografía, siempre ha estado ligado al hecho de velar por la seguridad y la privacidad de la información. Todo esto con el fin de que terceros no autorizados o deshonestos tengan acceso a la misma. En principio, los sistemas criptográficos lograron estos por medios bastante sencillos. Pero la historia cambió radicalmente con la aparición de los ordenadores.

Gracias a los ordenadores alcanzamos el potencial de crear sistemas de cifrado usando matemáticas muy complejas, lo que se a su vez, se traducía en mayor seguridad. Todo este avance tecnológico derivó luego en un mayor desarrollo de la tecnología criptográfica. Sin embargo, el mayor salto cualitativo fue sin duda la creación de la criptografía asimétrica.

Esta herramienta se convirtió rápidamente en el estándar criptográfico del mundo debido a su alto nivel de seguridad. ¿La razón? El diseño de sistemas criptográficos asimétricos, abría toda un nuevo abanico de oportunidades. La primera propuesta en este sentido fue presentada por los investigadores Whitfield Diffie y Martin Hellman. Fueron ellos en 1976, quienes diseñaron el algoritmo de Diffie-Hellman responsable actual de la seguridad en muchos sistemas informáticos, incluyendo Internet.

Creación de las firmas ciegas (Blind Signatures)

La evolución de la criptografía nos lleva a uno de los sistemas de criptografía asimétrica más conocidos; las Firmas Ciegas. Este fue diseñado por David Chaum, en el año de 1982. Con este sistema, Chaum cambia radicalmente la forma en cómo se podían firmar digitalmente documentos, archivos y mensajes. Todo ello, sin necesidad de revelar información a las partes involucradas en el intercambio de firmas. Esto permitía, mejorar el nivel de privacidad y solucionar graves problemas de seguridad de algunos sistemas existentes hasta ese momento.

Pero Chaum, como investigador dedicado mejoró la tecnología, hasta el punto de crear las conocidas Firmas Ciegas Grupales. Con esta mejora, ahora se permitía que se pudiera firmar el mensaje de un grupo de personas, verificar que el mensaje provenía de ese grupo, pero sin saber quien efectivamente había firmado. Con estos adelantos Chaum, fue uno de los pioneros en la investigación de los protocolos de conocimiento cero. Todo antes de que siquiera el término existiera. De esta forma sentó las bases de lo que sería un extraordinario avance en la tecnología criptográfica.

Pruebas de Revelación Mínima de Conocimiento

David Chaum ciertamente sentó las bases de esta tecnología, no solo académicamente sino también en la práctica. Sin embargo, el término no comenzó a usarse hasta su primera aparición en 1985. Ese año salió a la luz “La complejidad del conocimiento de los sistemas de prueba interactivos”. Este fue un artículo creado por Shafi Goldwasser y sus co-autores Silvio Micali y Charles Rackoff. Fue en este artículo, donde se utilizó por primera vez el término “prueba de conocimiento cero”.

Más tarde en 1987, David Chaum junto con Gilles Brassard y Claude Crépeau, publicaron el trabajo “Pruebas de Revelación Mínima de Conocimiento”. Con este nuevo trabajo, se terminó de definir lo que hasta ahora es, la base de un protocolo de conocimiento cero:

Un protocolo de conocimiento cero, permite que un “probador” convenza a un “verificador” de que el primero tiene información secreta verificable. Todo ello sin permitir que el verificador sepa algo sobre dicha información. La información secreta, puede ser verificable estadísticamente o de manera determinística. Y sólo uno de ellos, el verificador o el probador, necesitan contar con recursos limitados”.

Zero Knowledge Protocol y La Cueva de Alí Babá

En 1992, se publicó; ¿Cómo explicar a tus hijos los Protocolos de Conocimiento Cero?. Este sencillo artículo escrito por Louis GuillouJean-Jacques Quisquater y Thomas Berson, lograban explicar de forma completamente sencilla el funcionamiento de este protocolo. Para ello idearon un sencillo ejemplo llamado “La cueva de Alí Babá.

Características de un método Zero Knowledge Protocol

Un protocolo recibe el nombre de Prueba de Conocimiento Cero (ZKP), si logra cumplir estos tres requisitos:

  1. Integridad y exhaustividad. Se asume que las dos partes involucradas (el probador y el verificador) son honestos y seguirán el protocolo. Esto significa que si un probador da una declaración, el verificador será convencido efectivamente por la misma.
  2. Solidez y robustez. El protocolo debe asumir que la honestidad es escasa o nula. Por lo que para probar que efectivamente el probador tiene un secreto, se debe convencer al verificador. Todo ello reduciendo al máximo las posibilidades de engañar con éxito al verificador.
  3. Conocimiento cero. Esto significa que si la declaración es verdadera ningún verificador tramposo puede saber más que este hecho.

El cumplimiento de estos tres requisitos es fundamental para que un protocolo pueda cumplir con el conocimiento cero. En caso de que no pueda hacerlo, el protocolo no puede llamarse de esa manera pues no garantiza el anonimato.

A parte de esto, el protocolo debe garantizar una fuente de aleatoriedad segura. La justificación viene dada porque la generación de números aleatorios es otra condición necesaria para el correcto funcionamiento del mismo.

Casos de uso de la tecnología ZKP

Gracias a la enorme capacidad de anonimato, privacidad y seguridad de este tipo de protocolos, sus principales casos de uso apuntan a sistemas de comunicación seguros. Por ejemplo, los militares y las organizaciones de espionaje emplean este tipo de tecnología para asegurar comunicaciones. Esto con el fin de permitir el despliegue en campo de sistemas de comunicación muy seguros. También son muy utilizados en sistemas de autenticación, incluso vía web.

La tecnología además tiene amplios usos dentro de sistemas de votación seguros. Con las ZKP es posible que el votante pueda realizar su voto, demostrar que votó, pero de ninguna manera nadie podrá saber por cual opción ha votado. De esta forma, ZKP puede ayudar a los sistemas de votación a mantener el secreto del voto y otorgar transparencias a estos sistemas.

Otro caso de uso muy visto en la actualidad se da en las criptomonedas como el caso de Zcash y Monero. Ambas criptomonedas implementan el uso de Zero Knowledge Protocol. Como es de esperar, la finalidad es poder garantizar la privacidad y anonimato de sus usuarios.

En el caso de Zcash, su sistema de pruebas zk-SNARKs está basado en el funcionamiento de ZKP. De estas, existe una evolución bajo el nombre zk-STARK que presentan mejores características en cuanto a seguridad y rendimiento, especialmente resistencia a computación cuántica. Por su lado, Monero y sus Bulletproof son también una adaptación de ZKP y Transacciones Confidenciales, lo que también le confiere un alto nivel de seguridad.

Ventajas y Desventajas de sistemas ZKP

Ventajas

  1. Un sistema con ZKP implementado ofrece altos niveles de seguridadprivacidad y anonimato, pues no requiere la revelación de secreto alguno.
  2. La lógica del sistema es simple y no requiere la creación de nuevos sistemas criptográficos para su aplicabilidad.

Desventajas

  1. Un sistema con implementación ZKP, está limitado a utilizar valores numéricos.
  2. Resulta computacionalmente costoso en comparación con otros sistemas de cifrado.
  3. No resuelve el problema de transmisión segura de información. Se debe a que es vulnerable frente a un tercero que pueda interceptar la transmisión, modificando o destruyendo el mensaje.
  4. La implementación y revisión algorítmica de estos sistemas es compleja, además de ser un área dominada por muy pocas personas en todo el mundo. Esto tiene como principal problema una poca capacidad para mejorar el sistema y depurarlo de errores.
CriptoMundo

CriptoMundo.com es un medio digital independiente que difunde noticias y contenido sobre criptomonedas y tendencias emergentes de tecnologías financieras. Ofrece noticias, guías, artículos de opinión y gráficos en tiempo real.

Monedas

Bitcoin

Ethereum