¿Qué es una prueba criptográfica de conocimiento cero y cómo funciona?

By noviembre 1, 2016 No Comments

Una prueba de conocimiento cero es un método en el cual una persona puede probar a otra persona que una declaración dada es verdadera, sin transmitir ninguna información aparte del hecho de que la declaración es de hecho verdadera.
El ejemplo clásico de un desafío de conocimiento cero se llama el problema de los millonarios de Yao: ¿cómo pueden dos personas determinar quién es más rico sin que ninguna de ellas tenga que revelar cuánto dinero tiene? A través de una compleja aplicación de criptografía, es realmente posible hacerlo.
Craig Gidney, que escribe para el blog de Twisted Oak Studios, ofrece una versión simplificada del problema que puede ayudarle a entender el proceso. En el ejemplo de Gidney, dos trabajadores, Bob y Alice, quieren determinar si se les está pagando la misma cantidad, sin revelar cuánto se están pagando el uno al otro ni a nadie más. El ejemplo asume que Bob y Alice saben que cada uno recibe exactamente $10, $20, $30, o $40 por hora.
Bob va y compra cuatro cajas anónimas de tarjetas de comentarios, del tipo que un restaurante podría tener para recoger las opiniones de los clientes. Él etiqueta cada uno de ellos con 10, 20, 30 o 40 dólares, y luego tira todas las llaves, excepto la de la caja que corresponde a la cantidad de dinero que gana. Alicia escribe «Sí» en una hoja de papel y «No» en otras tres. Pone la nota de «Sí» en la caja que corresponde a su salario, y la nota de «No» en todas las demás. Una vez que Alice se haya ido, Bob puede abrir su caja y ver si el recibo dice «Sí» o «No». Si es así, él y Alice reciben el mismo salario. Si la respuesta es «No», entonces sabrán que sus salarios son diferentes.
Este ejemplo es obviamente demasiado simplificado. Zerocoin es mucho más complejo, e incluye varias protecciones para evitar que alguien haga trampa. Pero utiliza una variación de este mismo tipo de pensamiento.