Protocolos de Conocimiento Cero: historia, definición y futuro

La seguridad, privacidad y el anonimato, son pilares fundamentales en el desarrollo de la blockchain. Son precisamente estas características, las que los cypherpunks persiguieron en la década de los 80 y principios de los 90. Y las que finalmente, con la salida del Bitcoin, pudieron hacerse realidad, al menos en parte.

Para lograrlo, sus desarrolladores se centraron en crear una tecnología capaz de ofrecer estas características. Sin que ello significara renunciar a la flexibilidad y la facilidad de uso. Desde entonces, las mejoras han sido exponenciales. En la actualidad contamos con una serie de desarrollaos capaces de cubrir distintas necesidades según sea el caso. Uno de los más importantes desarrollos en este sentido, son los protocolos de conocimiento cero (ZKP por sus siglas en inglés). Gracias a estos, hoy en día podemos disfrutar de redes distribuidas, sin terceros de confianza, con un nivel de privacidad, seguridad y anonimato sin precedentes.

El primer paso de los protocolos de conocimiento cero (ZKP)

La tecnología de cifrado siempre ha ido de “ocultar” información. Esto con el fin de evitar que terceros no autorizados puedan tener acceso a la misma. En un principio, los métodos de cifrado eran burdos y poco elaborados. Pero con el paso del tiempo, sufrieron modificaciones con el fin de hacerlos más seguros, y evitar “las fugas” de información en cualquiera de los casos.

Sin embargo, en medio de esa realidad los métodos de cifrado existentes, tenían una debilidad inherente a su básico diseño. Factores externos de una u otra forma, podían saber los secretos que escondían los mensajes cifrados. Con ello podían acceder a información privilegiada, filtrarla o alterarla a su conveniencia. Pero con la aparición de los computadores y su uso en estas tareas, esto fue cambiando radicalmente. La necesidad de esto era obvia. Un mundo interconectado por computadoras, necesitaba de métodos mucho más seguros para enviar información, evitando que otros pudieran interceptar y acceder a la misma.

Fue así, como la criptografía sufrió toda una revolución. Apareciendo sistemas como el de la criptografía asimétrica, y poco a poco se fueron elaborando nuevos y más intrincados métodos de criptografía. Uno de estos es conocido como Firmas Ciegas. Este fue diseñado por David Chaum, en el año de 1982. Con este sistema, D. Chaum cambiaba radicalmente la forma en como 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 solucionaba graves problemas de seguridad de algunos sistemas existentes hasta ese momento.

Pero D. Chaum, como investigador dedicado mejoró la tecnología, hasta el punto de crear las conocidas Firmas Ciegas de Grupo. 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 D. Chaum, fue uno de los pioneros en la investigación de los protocolos de conocimiento cero. Todo antes de que siquiera el termino existiera, pero sentando las bases de lo que sería un extraordinario avance en la tecnología criptográfica.

El primer paper: el nacimiento del término y definición

David Chaum ciertamente sentó las bases de esta tecnología, no solo académicamente sino también en la práctica. Sin embargo, el termino 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 articulo creado por Shafi Goldwasser y sus co-autores Silvio Micali y Charles Rackoff. Fue en este articulo, donde se utilizó por primera vez el termino “prueba de conocimiento cero”.

Más tarde en 1987, D. 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 probabilísticamente o determinísticamente, y para ello solo se necesita acceso a recursos limitados. “

La explicación más sencilla a un problema complejo

En 1992, se publicó ¿Cómo explicar a tus hijos los Protocolos de Conocimiento Cero?. Este sencillo articulo 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 llamado “La cueva de Alibaba”. Este ejemplo va de la siguiente manera:

“María quiere probar a Roberto que conoce la palabra mágica que abre la puerta de la cueva de Alibaba, pero no quiere revelarle el secreto. Para ello Roberto y María van hasta la cueva. El compromiso de María es ir por el camino A o por el B. Ambos caminos que se comunican solo 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.

En 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 y 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”.

Su evolución y llegada a la tecnología blockchain

Los anteriores trabajos llamaron mucho la atención de comunidad cypherpunk y su intento por mantener la privacidad y el anonimato en una sociedad cada vez más conectada y sometida a controles digitales. Uno de esos primeros intentos fue dado por Nick Szabo, en el desarrollo de sus trabajos “Los protocolo de Dios” y “Contratos con el Portador”.

Gracias a estos trabajos, N. Szabo demostró la necesidad de usar protocolos de conocimiento cero para la creación de sistemas de dinero digital. Temas como la privacidad, el anonimato, la intrazabilidad de transacciones fueron sus principales argumentos en este sentido. Todo esto llevo a Nick Szabo a la presentación en el año 1998 de Bit Gold.

Sin embargo, no fue hasta 10 años después, con la publicación del Bitcoin que muchas de estas ideas se llevarían a la realidad. Sin embargo, Bitcoin no usaba un protocolo de conocimiento cero para su sistema. Pese a ello, la tecnología y la capacidad para adicionar esta característica estaba allí. Con la aparición de las criptomonedas y el “hype” de desarrollo, estos trabajos comenzaron a tomar mayor relevancia.

Desde ese punto la evolución de estos no ha dejado de avanzar. Desarrollos como Monero y Zcash son los que llevan la batuta. Protocolos como zk-SNARKs de Zcash, Ring Signatures de Monero o el nuevo añadido de MimbleWimble de GRIN, son parte de esa evolución.

Características de los protocolos de conocimiento cero

Para que un protocolo de conocimiento cero (ZKP) cumpla, con lo necesario para serlo, debe cumplir tres requisitos: Estos son:

  1. Debe tener integridad. Se asume que las dos partes involucradas (el probador y el verificador) son honestos y seguirán el protocolo.
  2. Contar con 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 de que él o ella sabe el secreto. Todo ello reduciendo al máximo las posibilidades de engañar con éxito al verificador.
  3. Debe proveer cero conocimiento. Esto significa que sabemos que hay una parte “A” que actúa de “probador”, un verificador “B” y que “A” demostrará al verificador “B” que “A” conoce el secreto. Así que “A” puede demostrar a “B” y solo a “B” que él o ella sabe un secreto. Los agentes externos a este proceso no tienen forma de estar seguros de la certeza de la prueba.

Importancia del desarrollo de los protocolos de conocimiento cero

En un mundo moderno conectado a Internet, donde enviamos y recibimos información valiosa, privada y única, trabajar para desarrollar sistemas que nos ayuden a proteger esa información tiene todo el sentido del mundo. Esto se vuelve especialmente prioritario, cuando las amenazas a nuestra privacidad vienen de parte de actores como gobiernos, empresas privacidad y actores maliciosos de toda índole que buscan desesperadamente nuestra información para perfilarnos como victimas u objetivos de sus planes.

Proteger nuestra privacidad, frente a toda situación que atente contra ella, es el objetivo, y el nacimiento de los protocolo de conocimiento cero, es tan solo una herramienta en esa lucha. Una herramienta muy poderosa por cierto, puesto que vulnerarla es de momento una tarea compleja, costosa y técnicamente imposible. Pero es lo que se quiere, hacer imposible que otros puedan romper los mecanismos con los que protegemos nuestra privacidad en todo ámbito.

Esa es la principal razón por la que la investigación y el desarrollo de este tipo de sistemas criptográficos no se detiene, y en medida que avance la tecnología, se acelerará aún más. Hace 30 años con el nacimiento de la Internet, los desarrollos criptográficos eran modestos. La realidad ahora es muy distinta y nuestras perspectivas en el futuro, también son radicalmente distintas, especialmente por la aplicación de la computación cuántica en esta área. Pareciera algo lejano, pero no lo es. Es algo que cada día es más tangible, y nos dice que el camino correcto es seguir con el desarrollo de las tecnologías criptográficas.

Valora nuestro artículo

Deja un comentario