Uno de los objetivos más buscados en Internet es el anonimato seguro. De la búsqueda de este principio nace el protocolo de criptografía conocido como ZKP (Zero Knowledge Proof) o prueba de conocimiento cero. Este protocolo fue el resultado de diversos trabajos en más de 50 años de investigación y diseño.

En ZKP, no es necesario revelar la información para permitir a terceros verificar que se dispone del conocimiento de la misma. De esta manera, es necesaria la participación de dos partes: el probador y el verificador.  El probador es la parte que dice conocer el secreto y el verificador es la parte que se encarga de comprobar que esto es cierto y que el probador no miente.

Pero ¿en qué consiste exactamente este protocolo? Vamos a explicarlo con un sencillo ejemplo.

Ejemplo de conocimiento cero

Imaginemos una cueva que se divide en dos caminos: derecha e izquierda.

Sin embargo, existe una puerta al final de los caminos que los conecta. Esta se abre mediante unas palabras mágicas, haciendo la cueva circular. De esta manera, se puede entrar por un camino y salir por otro.

Estas palabras mágicas solo las conocen ciertas personas en el mundo y un día, una de ellas quiere demostrar que las conoce, pero sin revelarlas al público. Para probar este hecho se necesitan dos personas: Alice, que es quien conoce las palabras y Bob, que tendrá el papel de verificar que lo que dice Alice es cierto.

Representación de la cueva

El método seguido es el siguiente:

Alice entra en la cueva y toma un camino al azar, supongamos que el B (derecha).Bob entra un tiempo después y sin saber qué camino ha escogido Alice, le dice la ruta por la que tiene que volver. Supongamos que la A (izquierda).En este caso, Alice tiene que abrir la puerta con la palabra secreta, pero hay una probabilidad de que escoja la ruta A desde un principio o que Bob le diga que vuelva por la ruta B. Por lo tanto, podría haber engañado a Bob haciéndole creer que tiene esa información.Para evitar esto, el proceso se repite un número de veces determinado. Este número tiene que ser suficientemente alto para que la probabilidad de éxito sin conocer la palabra secreta sea prácticamente nula.

Con este pequeño ejemplo nos podemos hacer una idea de cómo funciona la prueba de conocimiento cero, teniendo en cuenta que no es una prueba determinista sino probabilística, puesto que hay una pequeña probabilidad de que el probador sea capaz de engañar al verificador.

Características del método ZKP

El anterior ejemplo es considerado prueba de conocimiento cero porque logra cumplir los tres requisitos siguientes:

Integridad: se asume que las dos partes involucradas son honestas y seguirán el protocolo.Solidez: asumiendo que la honestidad es escasa o nula, es muy improbable que el probador pueda engañar al verificador.Conocimiento cero: Si el probador conoce la información, el verificador no aprende más que este hecho, por lo que si hay algún verificador engañoso el conocimiento del secreto sería nulo.

Ejemplos de pruebas de conocimiento cero en la actualidad

Como hemos mencionado, este protocolo permite alcanzar altos niveles de anonimato, seguridad y privacidad. Es por esto por lo que distintos sectores aplican esta tecnología.

Por ejemplo, en el ámbito militar se utiliza para asegurar sus comunicaciones evitando que el enemigo pueda descifrarlas. En el sanitario, se utiliza para sistemas de acceso a historial médico.

Este sistema es utilizado en muchas criptomonedas para asegurar sus transacciones y hacerlas privadas entre usuarios. Ejemplo de esto son las criptomonedas basadas en la privacidad: Z Cash y Monero.

La entrada ¿Qué es el protocolo de conocimiento cero? se publicó primero en Una al Día.