La Prueba de Conocimiento Cero (ZKP), es un protocolo de criptografía empleado para crear sistemas distribuidos altamente seguros. La ZKP permite  poder compartir y verificar la información sin revelar datos innecesarios sobre la misma. 

La seguridad, privacidad y el anonimato, son objetivos que los cypherpunks persiguieron en la década de los 80 y principios de los 90. Objetivos nada fáciles de cumplir debido a la complejidad que encierran los sistemas capaces de proporcionar estas capacidades.

Sin embargo, el desarrollo conjunto y muchas veces comunitario de estas herramientas permitió la creación de una tecnología capaz de ofrecer todas estas características. Sin que ello significaba renunciar a la flexibilidad y la facilidad de uso. Desde entonces, las mejoras han sido exponenciales. Este es el caso de los protocolos  o pruebas de conocimiento cero, ZKP por sus siglas en inglés.

La existencia de estos protocolos y sistemas criptográficos, nos permite en la actualidad de gozar de sistemas distribuidos muy seguros. Sistemas capaces de ofrecer privacidad, seguridad y anonimato sin precedentes.

ZKP: La Prueba de Conocimiento Cero

Una Prueba de Conocimiento Cero, sirve como método de autenticación cuando no es necesario revelar secretos para alcanzar el objetivo. El hecho de no compartir secretos, significa que los mismos no se pueden robar. Una característica interesante pues permite que la comunicación sea muy segura.

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.

En pocas y más sencillas palabras:

Una prueba de conocimiento cero, es un método criptográfico por el cual, una 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 criptográficos 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

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 las computadoras.

Estas máquinas tienen el potencial de crear sistema de cifrados usando matemáticas muy complejas, lo que se traducía en mayor seguridad. El desarrollo de la tecnología criptográfica dio un salto cualitativo increíble desde la creación de la criptografía asimétrica.

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)

Uno de los sistemas de criptografía asimétrica más conocidos es el de las Firmas Ciegas. Este fue diseñado por David Chaum, en el año de 1982. Con este sistema, Chaum cambiaba 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”.

ZKP: 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 Guillou, Jean-Jacques Quisquater y Thomas Berson, lograban explicar de forma completamente sencilla el funcionamiento de este protocolo. Para ello idearon un sencillo ejemplo llamadoLa cueva de Alí Babá.

El ejemplo de la cueva de Alí Babá

María quiere demostrarle a Roberto que conoce la palabra mágica que abre la puerta de la cueva de Alí Babá, pero no quiere revelarle el secreto. Para ello Roberto y María van hasta la cueva. María se compromete a ir por el camino A o por el B.

Ambos caminos que se comunican sólo a través de la puerta mágica. Bajo este punto, Roberto espera que María vaya por A o B mientras él le espera en la entrada de la cueva.

ZKP Conocimiento Cero Cueva Ali Baba
  • Llegado un momento, Roberto pide a María, que salga por A o por B.
  • Si María, no conociera las palabras mágicas no podría abrir la puerta mágica. Lo que significa que no puede salir por el camino elegido por Roberto.
  • Esto reduce a 50% las probabilidades de que haya elegido en un primer intento, el camino correcto elegido luego por Roberto.
  • La repetición de este esquema en varias ocasiones sirve entonces, para determinar que realmente María sabe las palabras mágicas para abrir la puerta, pero en ningún momento, se las ha dicho a Roberto.

Características de un protocolo ZKP

Un protocolo recibe el nombre de Prueba de Conocimiento Cero, 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

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 Pruebas de Conocimiento Cero. Como es de esperar, la finalidad es poder garantizar la privacidad y anonimato de sus usuarios.

¿Cuánto sabes, criptonauta?

¿Los Protocolos de Conocimiento Cero solo pueden ser aplicados en casos especiales?

¡FALSO!

Los Protocolos de Conocimieno Cero, pueden ser aplicados sobre cualquier sistema informático, siempre que respetemos sus tres caracteristcas básicas: robustez, solidez y conocimiento cero.

Ventajas y Desventajas de sistemas ZKP

Ventajas

  1. Un sistema con ZKP implementado ofrece altos niveles de seguridad, privacidad 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 criptogŕaficos 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.
Aprende sobre Bitcoin y criptomonedas gratis
Suscríbete y recibirás nuestro mejor contenido en tu mail

SÍ, ENVÍADME EL CONTENIDO
Bit2Me Academy le desea feliz viaje al Universo Bitcoin
¿Te resultó útil este artículo?
Puntuación media: 5
➜ ¡Comparte el conocimiento y promueve la revolución descentralizada!