El objetivo de las pruebas de conocimiento cero (ZKP) es que el ‘verificador’ se demuestre a sí mismo como poseedor de alguna información llamada ‘testigo’ para el ‘verificador’ al satisfacer algunas relaciones y no revelar el testimonio a nadie más. La prueba interactiva de conocimiento cero requiere la interacción en vivo del verificador y el probador.
La idea subyacente a las pruebas de conocimiento cero surgió por primera vez en 1985, cuando los desarrolladores Shafi Goldwasser, Charles Rackoff y Silvio Micali presentaron al mundo la noción de «complejidad del conocimiento», concepto que sirvió como precursor de los ZKP.
Prueba interactiva de conocimiento cero con algoritmo discreto:
- Sanchita quiere demostrarle a Sachin que conoce información de valor tal que y = g^’Testigo’ en base g.
- Sanchita elige el valor aleatorio x del conjunto de valores Z, calcula t = g^x y envía t a Sachin.
- Sachin elige el valor aleatorio c del conjunto Z y lo envía a Sanchita.
- Sanchita calcula r = xc*’Testigo’ y devuelve r a Sachin.
- Sachin comprueba si t= g^r * y^c se cumple o no ( ya que r= xc*’Testigo’, y= g^’Testigo’ y por simple sustitución, g^(xc*’Testigo’)* g ^ c *’Testigo’ = g^x = t).
- Sachin no conoce el valor de ‘Testigo’ pero al comprobar si t = g^r * y^c puede verificar que Sanchita sí conoce el valor de ‘Testigo’.
Problemas con la prueba interactiva de conocimiento cero:
- Transferibilidad limitada:
para probar la misma prueba nuevamente a otro verificador, se debe repetir todo el proceso. - No escalable:
los ZKP interactivos requieren que tanto el verificador como el probador estén en línea al mismo tiempo, lo que hace que todo el proceso no se pueda cerrar.
Aplicaciones:
- Desarme nuclear:
en 2016, el Laboratorio de Física de Plasma de Princeton y la Universidad de Princeton demostraron una técnica que puede tener aplicabilidad. Permitiría a los inspectores confirmar si un objeto es un arma nuclear sin registrar, compartir o revelar el funcionamiento interno que podría ser secreto. - Sistemas de autenticación:
se puede usar para que el usuario verifique su contraseña sin revelarla al sistema. Una prueba de contraseña de conocimiento cero es un tipo especial de prueba de conocimiento de conocimiento cero que aborda el tamaño limitado de las contraseñas, ya que la mayoría de los protocolos de ZKP requieren entradas aleatorias más grandes.
Para contrarrestar los problemas que enfrenta la prueba interactiva de conocimiento cero, implementamos pruebas no interactivas de conocimiento cero para que sea escalable en aplicaciones del mundo real.
Publicación traducida automáticamente
Artículo escrito por ciberexplosion y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA