zk-SNARK: Prueba innovadora de conocimiento cero y sus aplicaciones

IntermedioNov 28, 2023
La tecnología zk-SNARK representa un avance significativo en los campos de la protección de la privacidad y la verificación cifrada. No sólo es prometedor porque proporciona sólidas garantías de privacidad, sino que también es práctico para mejorar la escalabilidad de blockchain y otras aplicaciones.
zk-SNARK: Prueba innovadora de conocimiento cero y sus aplicaciones

Descripción

La prueba de conocimiento cero (ZKP) es una tecnología criptográfica propuesta por primera vez por S. Goldwasser, S. Micali y C. Rackoff a principios de la década de 1980 en un artículo titulado The Knowledge Complexity Of Interactive Proof Systems. En este artículo, se conceptualizó como un modelo teórico para abordar el problema de verificar enunciados matemáticos sin revelar la evidencia. Este concepto ganó mucha atención en la comunidad académica ya que desafió los límites de las técnicas de cifrado tradicionales y proporcionó un nuevo enfoque para el manejo de información confidencial.

Con el tiempo, ZKP evolucionó de un concepto teórico abstracto a protocolos concretos que pueden integrarse en diversas aplicaciones. En 2010, Groth publicó un artículo titulado Short Pairing-based Non-interactive Zero-Knowledge Arguments, que se convirtió en un trabajo fundamental en el desarrollo de zk-SNARK, una solución importante en ZKP. La aplicación práctica más importante de ZKP es el sistema de prueba de conocimiento cero utilizado por Z-cash en 2015, que logró protección de la privacidad para transacciones y montos. Posteriormente, zk-SNARK se combinó con contratos inteligentes, lo que dio lugar a una gama más amplia de aplicaciones.

Principios técnicos de zk-SNARK

Los principios a los que debe adherirse el ZKP tradicional son los siguientes:

  • Integridad: si una afirmación es verdadera, un probador honesto puede convencer al verificador de su verdad.
  • Solidez: Si una afirmación es falsa, cualquier probador fraudulento tendrá sólo una pequeña probabilidad de engañar al verificador haciéndole creer que la afirmación es verdadera.
  • Conocimiento cero: si una afirmación es verdadera, el verificador no obtendrá ninguna información adicional aparte del hecho de que la afirmación es verdadera. En otras palabras, el proceso de verificación no revela ninguna información que pueda usarse para construir una prueba.

El principio de ZKP se puede entender con un ejemplo simple: si necesito demostrarle a A que tengo el número de teléfono de B, no necesito decirle directamente el número de teléfono de A B. En cambio, puedo marcar directamente el número de teléfono de B y, una vez conectada la llamada, puedo demostrar que efectivamente tengo el número de teléfono de B. Este proceso no revela la información del número de B.

Y zk-SNARK se actualiza aún más sobre esta base, con las siguientes características:

  • Conocimiento cero: el verificador no puede obtener ninguna información útil de la prueba.
  • Conciso: la prueba es de tamaño pequeño (normalmente sólo unas pocas docenas de bytes) y el tiempo de verificación es corto (normalmente sólo unos pocos milisegundos).
  • No interactivo: El probador sólo necesita enviar la prueba al verificador una vez, sin mayor comunicación.
  • Parámetros confiables: tanto el probador como el verificador deben utilizar una cadena de referencia común (CRS) generada por un tercero confiable. El CRS puede contener información confidencial y, si se filtra o se manipula, puede amenazar la seguridad del sistema.

En el artículo de Groth, propuso un método de prueba de conocimiento cero no interactivo basado en emparejamientos que transforma un problema computacional en un programa aritmético cuadrático (QAP) y luego construye una prueba eficiente utilizando criptografía de curva elíptica y funciones hash. Los diseños posteriores de zk-SNARK generalmente implican cuatro pasos:

  • Configuración: realizada por un tercero confiable, genera un CRS que incluye una clave de prueba (pk) para generar pruebas y una clave de verificación (vk) para verificar pruebas. Este proceso solo debe ejecutarse una vez y el CRS se puede reutilizar varias veces.
  • Codificación del problema: el problema de cálculo f(x) = y se transforma en una forma QAP A(x)·B(x) = C(x)·Z(x), donde A(x), B(x), C (x) son polinomios determinados por la estructura del circuito de f, Z(x) es un polinomio fijo, x es un punto elegido al azar e y es la salida de f. Este paso lo puede realizar el probador o el verificador, o lo puede realizar por adelantado un tercero.
  • Generación de prueba: realizada por el probador, utiliza pk, x y la entrada w de f para generar una prueba π para demostrar que conocen aw que satisface f(w) = y, sin revelar el valor específico de w. Este proceso implica cálculos polinomiales, operaciones de curva elíptica y operaciones de función hash, generando en última instancia un π compuesto por varios puntos de curva elíptica y un valor hash.
  • Verificación de prueba: realizada por el verificador, utiliza vk, x, y y π para verificar si el probador realmente conoce aw que satisface f(w) = y. Este proceso también implica cálculos polinomiales, operaciones de curvas elípticas y operaciones de funciones hash, que en última instancia producen un valor booleano que indica la validez de la prueba.

Para ayudar a comprender, consideremos un ejemplo simple: suponga que tiene un mapa del tesoro que puede guiarlo a la ubicación exacta del tesoro enterrado. Quieres demostrarle a alguien que conoces la ubicación del tesoro sin revelar el contenido del mapa o la ubicación real del tesoro. Si utiliza la tecnología zk-SNARK, necesitará crear un rompecabezas complejo del mapa del tesoro. Seleccionas una pequeña pieza del rompecabezas (una prueba) y se la muestras a la persona, lo que la convence de que sabes cómo encaja el rompecabezas completo, es decir, la ubicación del tesoro, sin ver el rompecabezas completo. Sin embargo, para conseguirlo, necesitarás obtener marcas especiales de una imprenta de confianza, que sirvan como prueba de que la pieza del rompecabezas es auténtica.

¿Por qué necesitamos zk-SNARK?

El enfoque tradicional de las pruebas de conocimiento cero implica métodos de prueba interactivos, en los que un probador pregunta repetidamente al verificador "¿sí o no?". preguntas hasta llegar a una respuesta correcta. Este proceso es ineficiente. Sin embargo, zk-SNARK elimina la necesidad de interacciones repetidas al obtener un CRS de un tercero confiable. Todos los probadores pueden comparar directamente el CRS para determinar la veracidad. Esto mejora enormemente la eficiencia de las pruebas de conocimiento cero.

Además, zk-SNARK ofrece las siguientes ventajas:

  • Protección de la privacidad: zk-SNARK permite que un probador demuestre el conocimiento o el cumplimiento de ciertas condiciones a un verificador sin revelar ninguna información privada. Esto es particularmente útil en escenarios que involucran datos confidenciales o privados, como autenticación de identidad, votación anónima y transacciones privadas.
  • Escalabilidad: zk-SNARK comprime problemas computacionales complejos en pruebas pequeñas y rápidas, lo que reduce la carga computacional y los requisitos de almacenamiento para los verificadores. Esto resulta beneficioso en escenarios que requieren verificación y almacenamiento eficientes de grandes cantidades de datos, como la computación en la nube, la escalabilidad de blockchain y la computación verificable.
  • Seguridad: zk-SNARK se basa en problemas matemáticamente difíciles, como el problema del logaritmo discreto y el problema de mapeo bilineal, que brindan alta seguridad. Bajo el supuesto de la computación no cuántica, a menos que el tercero de confianza filtre o altere el CRS, es imposible que un probador falsifique una prueba o un verificador falsifique un resultado de verificación.

Aplicaciones del mundo real de zk-SNARK

La primera aplicación de zk-SNARK es Zcash, que permite a los usuarios realizar transacciones totalmente anónimas ocultando información como remitentes, destinatarios y montos utilizando zk-SNARK. En el espacio Web3 actual, la tecnología zk-SNARK desempeña un papel importante en la escalabilidad de blockchain y la gestión de reservas de intercambio.

Escalabilidad de la cadena de bloques

Debido al mecanismo de consenso y los requisitos de seguridad de blockchain, su rendimiento y eficiencia son muy limitados. Para abordar este problema, una solución común es utilizar la tecnología Layer2, que construye una capa adicional sobre la cadena de bloques para migrar una gran cantidad de transacciones o cálculos de la cadena principal (Capa1) a la Capa2, mejorando así el rendimiento y la usabilidad del sistema. .

zk-SNARK juega un papel importante en esta solución, ya que puede comprimir las transacciones o cálculos en Layer2 en una prueba pequeña y rápida, que luego se envía para verificación en la cadena principal, garantizando la corrección y coherencia de Layer2. Actualmente, existen dos soluciones Layer2 convencionales basadas en zk-SNARK: ZK-rollup y Validium.

  • ZK-rollup: esta solución almacena todos los datos de estado en la cadena principal pero utiliza pruebas para verificar la validez de las transiciones de estado. Esto garantiza la disponibilidad y seguridad de los datos de Layer2 pero aumenta la carga de almacenamiento en la cadena principal. Por ejemplo, zkSync almacena datos de estado en la cadena principal de Ethereum y garantiza la validez de las transiciones de estado mediante pruebas de conocimiento cero. Proyectos similares incluyen Polygon zkEVM y Scroll.
  • Validium: esta solución almacena todos los datos de estado en Layer2 u otros terceros confiables, y solo utiliza pruebas para verificar la validez de las transiciones de estado, enviando las pruebas a la cadena principal. Esto reduce la carga de almacenamiento en la cadena principal, pero puede disminuir la disponibilidad y seguridad de los datos de Layer2. DeversiFi utiliza la tecnología Validium para mantener la velocidad y la eficiencia de las transacciones de Layer2 al tiempo que garantiza la privacidad de los datos. Loopring proporciona un modo Validium para aliviar la presión de almacenamiento en la cadena principal.

Fondos de reserva en bolsas

Debido a la volatilidad y la incertidumbre del mercado de las criptomonedas, muchas bolsas necesitan mantener una cierta cantidad de fondos de reserva para hacer frente a posibles riesgos o demandas. Sin embargo, estos fondos de reserva a menudo carecen de transparencia y confiabilidad, lo que deja a los usuarios inseguros sobre si el intercambio realmente tiene suficientes fondos de reserva para salvaguardar sus activos.

zk-SNARK puede proporcionar una solución a este respecto al permitir que los intercambios demuestren a los usuarios o a los organismos reguladores que poseen una cantidad y un valor adecuados de fondos de reserva sin revelar detalles o ubicaciones de activos específicos.

Un ejemplo típico es Gate.io, que utiliza una combinación de árboles zk-SNARK y Merkle. Cifran los datos del usuario y generan pruebas de los fondos de reserva de 100 tokens diferentes utilizando circuitos restringidos para demostrar su capacidad de solvencia del 100%.

Fuente: https://www.gate.io/proof-of-reserves

Lectura adicional: Cómo zk-SNARK mejora la prueba de reservas de Gate.io

Además de las aplicaciones Web3, zk-SNARK también se puede utilizar en dominios que no son blockchain, como por ejemplo:

  • Autenticación de identidad: zk-SNARK permite a los usuarios demostrar su posesión de ciertos atributos o calificaciones de identidad a terceros sin revelar ninguna información personal, como edad, nacionalidad, educación, etc. Esto es útil en escenarios que requieren autenticación o autorización de identidad, como compras en línea, educación en línea, firmas digitales, etc.
  • Voto electrónico: zk-SNARK permite a los usuarios demostrar su participación en determinadas actividades de votación y el cumplimiento de protocolos o reglas específicas a terceros sin revelar ningún contenido o metadatos de la votación. Esto es beneficioso en escenarios que requieren protección de la privacidad y seguridad del voto, como elecciones democráticas, gobernanza comunitaria, toma de decisiones públicas, etc.

Limitaciones técnicas y desafíos

En la sección anterior, presentamos los principios técnicos de zk-SNARK, que mencionamos que zk-SNARK mejora la eficiencia de la prueba al encontrar un tercero confiable para generar CRS. Sin embargo, esto también conlleva algunas limitaciones y desafíos inherentes a zk-SNARK.

  • Parámetros confiables: zk-SNARK requiere un CRS generado por un tercero confiable, que puede contener información confidencial. Si se filtra o se manipula, podría comprometer la seguridad del sistema. Para abordar este problema, algunos proyectos han adoptado el enfoque de Computación Multipartita (MPC) para generar el CRS, donde múltiples participantes contribuyen conjuntamente al proceso de generación y destruyen su información secreta. Sin embargo, este enfoque aún enfrenta desafíos como la integridad de los participantes, los costos de comunicación y las dificultades de coordinación.
  • Universalidad: actualmente, zk-SNARK solo se puede aplicar a problemas computacionales específicos, como QAP o R1CS, y no se puede aplicar a problemas computacionales arbitrarios. Para abordar esta limitación, algunos proyectos han explorado el uso de Circuitos generales (GC) o Prueba recursiva general (GRS) para ampliar la aplicabilidad de zk-SNARK. Sin embargo, este enfoque conlleva desventajas como un mayor tamaño de la prueba, una menor eficiencia y una mayor complejidad.
  • Verificabilidad: si bien zk-SNARK garantiza que el probador no filtre ninguna información privada, no garantiza que el probador no engañará ni engañará al verificador. Para abordar este problema, algunos proyectos han introducido funciones aleatorias verificables (VRF) o funciones de retardo verificables (VDF) para mejorar la integridad del probador. Sin embargo, este enfoque también aumenta la complejidad y los gastos generales del sistema.

En resumen, existen varios enfoques para abordar las limitaciones inherentes de zk-SNARK.

Escenarios de aplicación futuros

zk-SNARK, como tecnología criptográfica innovadora, tiene amplios escenarios de aplicación futuros, especialmente en el campo de la privacidad:

  • Contratos inteligentes de privacidad: zk-SNARK permite a los usuarios demostrarle a un tercero que ejecutaron ciertos contratos inteligentes y obtuvieron el resultado correcto sin revelar ninguna lógica o estado del contrato. Esto es particularmente útil en escenarios que involucran secretos comerciales o reglas sensibles, como gestión de la cadena de suministro, reclamos de seguros, protección de derechos de autor, etc.1
  • Computación que preserva la privacidad: zk-SNARK permite a los usuarios demostrar a un tercero que realizaron ciertas tareas computacionales y obtuvieron los resultados correctos sin revelar ningún dato de entrada o salida. Esto es aplicable en escenarios que involucran datos sensibles o privados, como diagnóstico médico, análisis de datos, aprendizaje automático, etc.
  • Comunicación que preserva la privacidad: zk-SNARK permite a los usuarios demostrarle a un tercero que han participado en ciertas actividades de comunicación y cumplido con ciertos protocolos o reglas sin revelar ningún contenido o metadatos de la comunicación. Esto es beneficioso en escenarios donde es necesario proteger la privacidad o seguridad de las comunicaciones, como mensajería instantánea, redes sociales, correo electrónico, etc.

Conclusión

La tecnología zk-SNARK representa un avance significativo en los campos de la protección de la privacidad y la verificación cifrada. No sólo es prometedor porque proporciona sólidas garantías de privacidad, sino que también es práctico para mejorar la escalabilidad de blockchain y otras aplicaciones. A pesar de la existencia de desafíos y limitaciones técnicas, a través de la investigación e innovación continuas, esperamos que zk-SNARK continúe evolucionando, optimizando los sistemas existentes e inspirando nuevos modelos de aplicaciones para impulsar el avance de la tecnología de cifrado y protección de la privacidad. Con la madurez de la tecnología y el creciente énfasis en la privacidad de los datos en la sociedad, zk-SNARK tiene el potencial de convertirse en una herramienta indispensable en la era digital, brindando a los usuarios un mayor control sobre su información y promoviendo interacciones digitales seguras y transparentes.

Autor: Wayne
Tradutor: Sonia
Revisores: KOWEI、Piccolo、Elisa、Ashley He、Joyce
* As informações não pretendem ser e não constituem aconselhamento financeiro ou qualquer outra recomendação de qualquer tipo oferecida ou endossada pela Gate.io.
* Este artigo não pode ser reproduzido, transmitido ou copiado sem referência à Gate.io. A contravenção é uma violação da Lei de Direitos Autorais e pode estar sujeita a ação legal.
Comece agora
Inscreva-se e ganhe um cupom de
$100
!
Criar conta