Uno de los conceptos más interesantes de los que se puede hablar en el mundo de las criptomonedas, en lo que respecta al apartado técnico, es el de Prueba de Conocimiento Cero.
Puede ser aplicada en todo tipo de casos, que van desde proporcionar a las cadenas de bloques de transacciones anónimas y seguras, hasta ayudar con el desarme nuclear. Este es un gran ejemplo de innovación en la criptografía.
Historia de la tecnología
El concepto de Prueba de Conocimiento Cero fue introducido por primera en 1985 por Shafi Goldwasser, Charles Rackoff y Silvio Micali, apareciendo en la famosa publicación The New York Times dos años más tarde.
Este grupo de investigadores diseñaron la noción de complejidad del conocimiento, una métrica que sirve para descubrir la cantidad de conocimiento que se requiere transferir de un prover (el que aporta las pruebas) a un verificador para que esta se considere válida.
Solo les basto algo de tiempo para demostrar que con cierta interacción entre el prover y el verificador se podía reducir la cantidad de conocimiento que se necesitaba transmitir hasta llegar a cero. El problema que estaban resolviendo estaba demostrando que un número era un mod m no cuadrático sin residuos
El principal problema se centró en la fuga de información, es decir, la cantidad de esta que aprenderá un verificador en el transcurso de la verificación.
Todos estos conceptos matemáticos son realmente muy complejos de entender, aunque si te interesa puedes darle un vistazo aquí. Por esta razón es que fueron justos ganadores del premio Gold Prize en 1993, por sus avances en Informática Teórica.
Las aplicaciones de este nuevo desarrollo sirvieron para el problema de coloreado de gráficos y cualquier cosa que pueda probarse con un sistema de prueba interactivo podía también con las Pruebas de Conocimiento Cero.
El desafío fue poder construir pruebas de conocimiento cero encima de protocolos de internet, lo cual requirió del desarrollo del protocolo llamados witness-indistinguishable proof (que podría traducirse a prueba indistinguible de testigos). Esta aplicación ahora esta siendo impulsada aún más gracias a la integración con redes descentralizadas.
Las pruebas de conocimiento cero no interactivas fueron inventadas con el tiempo, en donde la interacción entre el prover y el verificador fue eliminada. En su lugar, una referencia en común es compartida, la cual es suficiente para conseguir el conocimiento cero.
Todo la matemática y conceptos informáticos que se requieren para hacer funcionar las pruebas de conocimiento cero se conocen de forma vulgar como “magia criptográfica”, ya que son extremadamente difíciles de entender aun cuando la persona que lo hace tenga un gran grado de abstracción.
Si nos vamos al plano de las criptomonedas, las pruebas no interactivas de conocimiento cero también se podrían obtener en el Modelo de Orígenes Aleatorios utilizando la heurística Fiat-Shamir. Esto introdujo el concepto de zk-SNARKs, que ha formado la base para la privacidad y el anonimato de la criptomoneda Zcash.
Posteriormente, el grupo de criptografía aplicada de Stanford introdujo pruebas antibalas como pruebas cortas no interactivas de conocimiento cero que eliminaron la necesidad de la controvertida configuración confiable dentro de Zcash y otros protocolos que utilizan zk-SNARK. Finalmente, los zk-STARK se crearon a principios de este año y también eliminaron la necesidad de una configuración confiable.
¿Cómo funciona?
Lo mejor para entender cómo funciona esta tecnología es con un ejemplo. Tenemos a Laura que actuará como el prover, y que busca probar que ella sabe cierta información X a un verificador llamado Jorge. Como vimos hasta el momento, todo esto sin transmitir ninguna información a este más que el simple hecho de que conoce X.
Para que se trate verdaderamente de una prueba de conocimiento cero debe cumplir los siguientes requerimientos:
- Totalidad: Es la alta probabilidad de que si Laura esta diciendo la verdad, Jorge eventualmente acabará convencido de que dice la verdad.
- Solvencia: Es el hecho de que solo Laura puede convencer a Jorge si esta diciendo la verdad.
- Conocimiento cero: Jorge no necesito aprender nada acerca del secreto de Laura.
Lo difícil de entender la prueba de conocimiento cero radica en que siempre es explicado con ejemplos muy complejos. Algunos sencillos son, por ejemplo, el de la cueva de Ali Baba, el de los Dos Balones, el Amigo Ciego y el Gigante de las Telecomunicaciones. Todos estos hacen un trabajo bastante bueno en ayudar a entender cómo funciona el concepto, pero veamos el primero para concentrarnos en él y entenderlo mejor.
Esta historia la podemos leer de un paper que intenta enseñar de forma muy básica el asunto llamado “How to Explain Zero-Knowledge Proofs to Your Children“. Su autor es Jean-Jacques Quisquater, y dice algo así si lo extrapolamos a Laura y Jorge:
Laura descubre una clave secreta para abrir una puerta en una extraña cueva. La cueva tiene la forma de un anillo, con una puerta bloqueando en el medio del camino. Jorge quiere saber la palabra secreta, pero Laura no quiere revelarse a él.
Para resolver el problema, es necesario nombrar los dos caminos como A y B. Laura toma uno de los dos y Jorge debe esperar afuera sin ver cual ha elegido. Finalmente, Jorge entra a la cueva y le grita a Laura un camino por el cual debe volver. Debido a que Laura conoce la clave secreta de la puerta, ella puede volver por el mismo que Jorge le ha dicho. De esta forma, no debe decirle a Jorge en ningún momento la palabra clave para hacerlo.
Si Laura no sabe cual es la contraseña, ella tiene un 50 por ciento de chances de volver por el camino que se le pidió. Sin embargo, al realizar este acto en reiteradas oportunidades, la probabilidad de que lo haga de forma correcta desciende.
Debido a que conoce la clave secreta, ella es capaz de volver por el camino deseado todas las veces, demostrando a Jorge (con una probabilidad muy alta) que ella conoce la información. Si un tercero observa esto, no podrá ver a Laura en la cueva por la forma de esta, solo por el camino que haya retomado. De esta forma, la interacción entre Jorge y Laura es complementamente anónima.
La prueba de conocimiento, por tanto, seguirá siendo utilizada en cualquier caso de uso que sea útil mientras se continúa desarrollando. Quizás sea compleja la tecnología, pero el potencial para la privacidad, autenticación y seguridad es enorme.
La relación que existe con las criptomonedas esta empujando la innovación de la tecnología a límites más extensos. Si te interesa profundizar en el apartado técnico puedes leer a Matthew Green y su articulo acerca de ella, incluido algunos experimentos interesantes.
Aplicaciones
Pero basta de tanta teoría y pasemos a las aplicaciones de esta tecnología. Ya que debido a la naturaleza única, se nos abre ante nosotros un gran abanico de posibilidades en cuanto a su utilización. Particularmente, es muy efectiva en comunicaciones seguras, autenticación y privacidad.
La mayor aplicación para lo que respecta a las criptomonedas en es el anonimato en las transacciones. Algunas de las soluciones en este espacio que ya utilizan las pruebas de conocimiento cero son Zcash, Monero, PIVX y Zerocoin.
Estas criptomonedas utilizan el protocolo para ofuscar los detalles de las transacciones dentro del blockchain público. Dentro de ellos encontramos la información del emisor, del receptor y la cantidad de monedas que se hayan transferido.
La utilización de las pruebas de conocimiento cero en una red pública descentralizada tiene un enorme valor en mi opinión. Nos permite anonimizar completamente las transacciones de la red, algo muy deseable para las persona que no quieren hacer públicos todos sus movimientos.
Otra aplicaciones importante llega a los sistemas de autenticación. Con ella podemos proveer de una información secreta como lo son las contraseñas sin siquiera tener que revelarlas.
Actualmente, las pruebas de conocimiento cero son demasiadas complicadas para ser utilizadas solo para contraseñas, pero con el tiempo podrían ser más sencillas y proteger las contraseñas que utilizamos a diario en internet.
El tercer desarrollo interesante es la aplicación en la verificación de identidades, por ejemplo, para acceder a un área de máxima seguridad. En estos momentos se utilizan distintos métodos como puede ser un número de PIN, una tarjeta identificadora o el escaneo de huellas dactilares o iris.
Sin embargo, todos estos métodos llegan con vulnerabilidades, que podrían ser utilizadas para ganar acceso a una zona restringida. La tecnología ofrece mejores soluciones que pueden ser más apropiadas para proteger el acceso.
Para eso tenemos un problema particular que solo los usuarios autorizados tiene su solución, pudiendo probar al componente de autenticación que conoce la solución sin tener que ingresar nada específico. Ya no podrá ser posible manipular los métodos de autenticación, debido a que no existe algo que ingresar.
Conclusión
No podemos negar que la prueba de conocimiento cero es una de las más complejas y únicas tecnologías que existen hasta el momento en el blockchain. Tanto es así, que la implicancia que tiene ha atraído la atención de uno de los cofundadores de Google, Sergey Brin.
Si se extiende su uso, quizás veamos cada vez más criptomonedas que busquen un camino privado y anónimo para conseguir una adopción masiva.
Agrega un Comentario