Índice del contenido[Esconder][Espectáculo]
Tanto en la vida real como en el mundo digital, a menudo queremos demostrar cosas a los demás. Antes de ingresar a un edificio de oficinas, los empleados suelen proporcionar algún tipo de identificación antes de ingresar.
Cuando los usuarios intentan iniciar sesión en una aplicación como Facebook o Twitter, estos servicios primero deben solicitar al usuario que inicie sesión con una contraseña y, ocasionalmente, se envía un código de acceso de un solo uso (OTP) a su dispositivo móvil.
Una desventaja de proporcionar pruebas es que a menudo damos otro tipo de información. Proporcionar una contraseña a un sitio web todavía significa que el sitio web mismo guarda una copia de la contraseña cifrada en sus servidores. Si alguien pirateara el escáner de identificación de los empleados del edificio de oficinas, podría obtener las claves privadas de todos.
Las pruebas de conocimiento cero o ZKP proporcionan una forma de validar una identidad o transacción sin tener que proporcionar información adicional. Debido a sus aplicaciones en criptografía, los ZKP han sido adaptados por cadenas de bloqueo para crear protocolos de validación seguros y escalables.
¿Qué son las pruebas de conocimiento cero?
Las pruebas de conocimiento cero fueron propuestas por primera vez por los investigadores del MIT Silvio Micali, Charles Rackoff y Shafi Goldwasser en 1985 en su artículo “La complejidad del conocimiento de los sistemas de prueba interactivos”
Este artículo introdujo el concepto de complejidad del conocimiento. Esto se refiere a la cantidad de conocimiento sobre una prueba transferida del probador al verificador. Las pruebas de conocimiento cero tienen como objetivo permitir que una parte demuestre que una declaración específica es verdadera para otra parte sin tener que revelar ninguna otra información.
Los ZKP se pueden usar como una alternativa segura a los sistemas de autenticación actuales y también se pueden agregar a los protocolos de blockchain para mantener las transacciones privadas.
¿Cómo funcionan los ZKP?
Ejemplo del mundo real
Para ilustrar cómo funcionan las pruebas de conocimiento cero, echemos un vistazo a un ejemplo abstracto de un ZKP.
Digamos que tienes un amigo que es daltónico rojo-verde. Tienes contigo dos bolas idénticas que difieren solo en el color: una roja y otra verde. Para tu amigo, se ven idénticos, pero como una persona sin daltonismo, puedes distinguirlos fácilmente.
¿Es posible que le demuestres a tu amigo que son de un color diferente sin revelar qué bola es roja o verde?
De hecho, hay una manera de probar esto sin revelar los colores de las bolas. Primero, debes dejar que tu amigo se ponga ambas bolas a la espalda y decirle que muestre cualquier bola y la vuelva a esconder. A continuación, le dices a tu amigo que tiene la opción de volver a mostrar la misma bola o cambiarla por la otra.
Cada vez que se muestra una nueva bola, puedes decirle si cambió la bola o no. Si sigues adivinando la llamada correcta, es cada vez más probable que las bolas tengan colores diferentes. Tu amigo ahora debería estar convencido de que las bolas tienen diferentes colores sin tener que decirle qué bolas tienen qué color.
Aplicaciones Prácticas
La mayoría de los ejemplos prácticos de pruebas de conocimiento cero se dividen en dos tipos.
Primero, los ZKP se pueden usar al diseñar protocolos. Podemos asegurarnos de que las diferentes partes no puedan hacer trampa o aprovechar el protocolo. En segundo lugar, los ZKP se pueden utilizar para la identificación.
Por ejemplo, podemos usar ZKP para iniciar sesión en una aplicación web de forma segura sin tener que revelar la contraseña.
Veamos algunos ejemplos de cómo podemos usar pruebas de conocimiento cero.
Votación electrónica
Una aplicación comúnmente discutida de ZKP es su posible papel en la votación en línea. Digamos que tenemos un próximo referéndum donde los usuarios pueden votar sobre una política propuesta. Cada votante elegible puede votar 1 o 0 en la boleta.
Con los ZKP, los votantes pueden demostrar su derecho a emitir su voto sin revelar su identidad. Esto asegura que cada voto sea verdaderamente anónimo. También se utilizará un ZKP adicional para demostrar que el voto de un usuario en particular es parte del recuento final de votos.
Con respecto al contenido mismo de las boletas, el sistema de votación también puede generar una prueba de conocimiento cero de que cada boleta contiene un 1 o un 0. Esto se logra sin tener que conocer el contenido de la boleta misma.
Privacidad de la cadena de bloques
Las cadenas de bloques como Bitcoin y Ethereum no admiten transacciones privadas de forma nativa. Mientras su billetera Bitcoin sea pública, cualquiera puede ir a un explorador de bloques como Secuencia de bloque para ver todas las transacciones de las que forma parte el monedero.
Mientras tanto, el uso de un servicio como un banco o servicios de pago como Cash App o Venmo le brinda la posibilidad de realizar transacciones de forma privada. Sin embargo, esta conveniencia tiene el costo de revelar su información al servicio centralizado.
Podemos combinar el anonimato con la descentralización agregando ZKP al protocolo blockchain. Las criptomonedas como ZCash usan ZKP para crear transacciones privadas que permiten a los poseedores de monedas mantener su anonimato. Varias de estas criptomonedas utilizan un tipo de ZKP conocido como zk-SNARK.
Estos ZKP no requieren interacción entre el probador y el verificador.
Paquetes acumulativos de conocimiento cero
Los ZK-rollups son una solución de escalabilidad que permite que las transacciones fuera de la cadena se verifiquen instantáneamente y con tarifas de gas mínimas. Son una forma de combinar una gran cantidad de transacciones de Capa 2 y enviarlas al protocolo de Capa 1.
Además de brindar privacidad, los ZKP permiten escalar sistemas complejos. Los protocolos de cadena de bloques pueden usar ZKP para demostrar que los usuarios han liquidado las transacciones correctas, tienen el saldo adecuado, etc. Estas soluciones seguras pero escalables solo son posibles a través de las pruebas matemáticas realizadas fuera de la cadena en ZKP.
Los protocolos como Loopring usan pruebas de conocimiento cero para ayudar a procesar transacciones fuera de la cadena sin tener que comprometer la seguridad.
Beneficios de las pruebas de conocimiento cero
- Los ZKP reemplazan formas de autenticación menos confiables, como PIN o tarjetas de identificación.
- ZKPS aumenta la escalabilidad de las cadenas de bloques
- La implementación de ZKP requiere métodos de encriptación simples
- El uso de ZKPS puede hacer que los sistemas sean más seguros al no requerir que se almacene información innecesaria en el sistema.
Conclusión
La privacidad de los datos ya es un problema importante tanto en los sistemas centralizados como en los descentralizados. Las pruebas de conocimiento cero proporcionan una forma para que diferentes partes prueben o validen transacciones e identidades sin tener que revelar dichas transacciones o identidades.
A medida que la tecnología blockchain se usa más ampliamente, la adopción de ZKP para manejar la verificación de manera segura será clave para las preocupaciones de escalabilidad.
Deje un comentario