La tecnología ZK es una tecnología de cifrado que permite a las partes probar y verificar información sin tener conocimiento de la información en sí misma.
La tecnología ZK es una tecnología de cifrado que permite a las partes probar y verificar información sin tener conocimiento de la información en sí misma.
La tecnología ZK, o tecnología de conocimiento cero, es un término general para protocolos y servicios que utilizan un método de cifrado llamado pruebas de conocimiento cero. Las pruebas de conocimiento cero permiten que una parte demuestre un hecho a otra parte para que puedan verificarlo sin que la segunda parte conozca el hecho en sí.
El concepto de tecnología ZK surgió en la década de 1980, y el desarrollo de protocolos de conocimiento cero ha ganado tracción en los últimos años, ya que el auge de las plataformas blockchain públicas creó nuevas aplicaciones para las tecnologías de cifrado.
Las pruebas de conocimiento cero se utilizan más comúnmente para introducir privacidad y escalabilidad en las blockchains. Sin embargo, tienen una serie de posibles casos de uso en identidad y autenticación. Por ejemplo, una prueba de conocimiento cero podría permitir que un individuo demuestre que tiene más de 21 años sin proporcionar una copia de su identificación.
Historia de la tecnología de conocimiento cero
El concepto de pruebas de conocimiento cero fue introducido en febrero de 1989 por investigadores del MIT que publicaron un artículo llamado "La complejidad del conocimiento de los sistemas de prueba interactivos". La primera línea del artículo establece el planteamiento del problema: "Una prueba de un teorema contiene más conocimiento que el mero hecho de que el teorema sea verdadero".
Por ejemplo, si alguien necesita probar una credencial, como el hecho de que tiene más de 21 años, solo puede hacerlo produciendo un documento de identidad que muestre su fecha de nacimiento. Sin embargo, no tienen forma de probar que son mayores de edad sin revelar su edad real o fecha de nacimiento. Lo mismo es cierto para muchos otros tipos de credenciales.
Los investigadores expandieron este concepto en una teoría computacional que describe la complejidad del conocimiento necesario para probar un hecho. Establecieron una distinción entre las pruebas de conocimiento cero "interactivas", donde dos partes deben interactuar repetidamente para probar y verificar el hecho, y las pruebas de conocimiento cero "no interactivas", que eliminan la necesidad de interacción. Este problema puede ilustrarse con una analogía llamada la cueva de Alí Babá.
El problema de la cueva de Alí Babá
La cueva de Alí Babá involucra a dos partes: Peggy, la probadora, y Víctor, el verificador, parados en una cueva en forma de anillo. Peggy puede tomar el camino A a la izquierda o el camino B a la derecha para llegar a una puerta mágica, cerrada con contraseña, que bloquea el camino hacia el lado opuesto de la cueva. Peggy quiere demostrar a Víctor que conoce la contraseña de la puerta mágica sin tener que decírsela.
Problema de la cueva de Alí Babá
Para demostrar su conocimiento, Peggy entra en la cueva mientras Víctor espera afuera para que no pueda ver qué camino toma. Luego, él entra en la cueva y grita el nombre del camino por el que quiere que Peggy regrese.
Si Peggy realmente no conociera la contraseña, habría un 50% de probabilidad de que saliera por el camino que Víctor quería que usara. Sin embargo, si repiten esta prueba muchas veces y Peggy siempre sale por el camino correcto, Víctor puede eventualmente concluir que ella debe conocer la contraseña.
La cueva de Alí Babá ilustra una limitación central que enfrentaban los criptógrafos que investigaban las pruebas de conocimiento cero para fines computacionales: Peggy y Víctor deben estar presentes y dispuestos a interactuar en múltiples pruebas para que la demostración sea exitosa. Estos requisitos limitaban la aplicación práctica de las pruebas de conocimiento cero en la computación.
Criterios que definen las pruebas de conocimiento cero
Un avance clave en la tecnología ZK llegó en 1991 cuando Manuel Blum, Paul Feldman y Silvio Micali publicaron su artículo "Conocimiento Cero No Interactivo y Sus Aplicaciones".
En el artículo, proponen usar una clave criptográfica compartida entre el probador y el verificador. El probador y el verificador acuerdan los medios para probar un hecho sin revelar el conocimiento del mismo y generan la clave compartida basada en estas reglas. El probador puede entonces ingresar su lado de la clave compartida, que el verificador puede fácilmente verificar que coincide con la suya.
Ahora el hecho puede ser probado y verificado en una sola interacción, eliminando la necesidad de múltiples interacciones. Reducir el tiempo y la carga de la interacción hizo factible implementar pruebas de conocimiento cero en la computación a escala.
La clave compartida funciona como un par de manera similar a las claves públicas/privadas que cifran una billetera blockchain.
En el artículo, Blum, Feldman y Micali también establecieron un conjunto de criterios que se aplican a todas las pruebas de conocimiento cero:
- Debe ser completa, lo que significa que siempre que la entrada sea válida, la prueba siempre verificará que la declaración es verdadera y, por lo tanto, se puede confiar en ella.
- Debe ser sólida, por lo que una entrada inválida no puede devolver un valor verdadero.
- Debe ser de conocimiento cero: el verificador solo debe conocer la validez o no de una declaración, no ninguna información sobre la entrada original.
Tipos de tecnología ZK
Fuera de la esfera blockchain, la tecnología ZK tiene aplicaciones en áreas como la autenticación y el desarme nuclear. Dentro de blockchain, las pruebas de conocimiento cero se han desarrollado y han ganado una utilidad sustancial en los últimos años. Actualmente, hay dos tipos de tecnología ZK en uso por los protocolos blockchain: ZK-SNARKs y ZK-STARKs.
ZK-SNARKs
ZK-SNARK es un acrónimo que significa Argumento de Conocimiento Sucinto No Interactivo de Conocimiento Cero. Cada letra es una propiedad definitoria:
- ZK - el protocolo es de conocimiento cero. Un verificador puede validar un hecho sin conocer el hecho en sí.
- Sucinto - la prueba es más pequeña y más fácil de verificar que el hecho en sí.
- No interactivo - el probador y el verificador solo necesitan interactuar una vez gracias a una clave compartida.
- Argumento de Conocimiento - el protocolo debe cumplir con los criterios de "solidez" establecidos anteriormente para que no se pueda engañar, y debe ser prohibitivamente difícil para cualquiera sin conocimiento del hecho crear un ZK-SNARK.
Los ZK-SNARKs fueron desarrollados por Zcash como una solución de cifrado para permitir transacciones de criptomonedas privadas. Sin embargo, una desventaja clave de los ZK-SNARKs es que se necesita una configuración de confianza utilizando un protocolo o proveedor para crear la clave de cifrado compartida, lo que significa que no son una forma completamente sin confianza de realizar transacciones para fines cotidianos.
ZK-STARKs
ZK-STARK significa Conocimiento de Argumento Transparente Escalable de Conocimiento Cero. Las propiedades que difieren de un ZK-SNARK son:
- Escalabilidad - donde hay una gran cantidad de datos que deben procesarse para una verificación, los ZK-STARKs son más rápidos en la generación y verificación de pruebas. Los ZK-STARKs pueden manejar cantidades de datos exponencialmente mayores con solo un aumento incremental en el tiempo de verificación.
- Transparencia - los ZK-STARKs aprovechan la aleatoriedad públicamente verificable para generar la clave compartida necesaria para la prueba de conocimiento cero. Como tal, eliminan la necesidad de una configuración de confianza.
Estas características significan que los ZK-STARKs ofrecen algunas ventajas sobre los ZK-SNARKs; sin embargo, los ZK-STARKs generan pruebas más complejas que los ZK-SNARKs, por lo que generalmente incurren en costos de transacción más altos.
Tecnología ZK para la escalabilidad de blockchain
Las plataformas de Capa 2 aprovechan los ZK-STARKs para hacer que Ethereum sea más escalable, utilizando una solución llamada rollups de conocimiento cero, o ZK rollups.
Este método se utiliza para agrupar las transacciones de Ethereum en lotes para ser ejecutados en la plataforma de Capa 2 en lugar de la red principal de Ethereum, aliviando la congestión. La plataforma de Capa 2 luego proporciona una prueba ZK de las transacciones procesadas a la red principal de Ethereum para actualizar el estado general de la blockchain.
Los proyectos de ZK rollup incluyen plataformas de Capa 2 como StarkNet, zkSync y Polygon Zero.
Otros casos de uso de la tecnología ZK
Aunque aún no se ha implementado ampliamente, la tecnología ZK tiene el potencial de ayudar a proteger la información personal. Supongamos que un individuo puede proporcionar una prueba ZK de ser mayor de edad, residente en un país particular o no estar en ninguna lista de sanciones. En ese caso, podría eliminar el requisito de que las personas proporcionen copias de identificaciones emitidas por el gobierno a los proveedores de servicios. A su vez, esto reduciría el riesgo de que los documentos sean hackeados y filtrados en línea, mejorando la privacidad del usuario.
De manera similar, las pruebas ZK podrían hacer que la autenticación en línea sea más fácil, eliminando la necesidad de exponer credenciales de inicio de sesión sensibles cada vez que alguien accede a un servicio.
Aspectos esenciales de la tecnología ZK
- Las pruebas ZK son un método de cifrado que permite a las partes probar y verificar información sin tener conocimiento de la información en sí misma.
- La tecnología ZK surgió en la década de 1980 y se desarrolló en dos tipos principales de pruebas de conocimiento cero: ZK-SNARKs y ZK-STARKs.
- Los ZK-SNARKs se utilizan para hacer que los pagos con criptomonedas sean más privados, mientras que los ZK-STARKs se implementan ampliamente en plataformas de escalado de Capa 2. La tecnología ZK tiene otros casos de uso potenciales en identidad y autenticación.