Análisis profundo de la tecnología de zk-SNARKs: una revisión completa desde el algoritmo hasta la aplicación

Desarrollo y aplicación de la tecnología de zk-SNARKs: una revisión en el campo de la Cadena de bloques

Resumen

zk-SNARKs(ZKP) como un importante avance en el campo de la criptografía, juega un papel clave en la tecnología de la Cadena de bloques. Este artículo ofrece una revisión sistemática del desarrollo de ZKP en los últimos cuarenta años y de las investigaciones más recientes.

Primero, se introducen los conceptos básicos y el contexto histórico de ZKP. A continuación, se analiza en profundidad la tecnología ZKP basada en circuitos, incluyendo el diseño, la aplicación y los métodos de optimización de modelos como zk-SNARKs, Ben-Sasson, Pinocchio, Bulletproofs y Ligero. En términos de entorno computacional, este artículo discute cómo ZKVM y ZKEVM mejoran la capacidad de procesamiento de transacciones, protegen la privacidad y aumentan la eficiencia de verificación. También se presenta el mecanismo de trabajo y los métodos de optimización de los rollups de conocimiento cero como una solución de escalado de capa 2, así como los últimos avances en aceleración de hardware, soluciones híbridas y ZK EVM dedicados.

Finalmente, se contemplaron conceptos emergentes como ZKCoprocessor, ZKML, ZKThreads, ZK Sharding y ZK StateChannels, explorando su potencial en la escalabilidad de la cadena de bloques, la interoperabilidad y la protección de la privacidad.

A través del análisis de estas tendencias de desarrollo tecnológico, este artículo proporciona una perspectiva integral para entender y aplicar la tecnología ZKP, mostrando su gran potencial para mejorar la eficiencia y seguridad de los sistemas de cadena de bloques, y brindando una referencia importante para futuras decisiones de inversión.

Índice

Introducción

Uno, conocimientos básicos sobre zk-SNARKs

  1. Resumen
  2. Ejemplo de zk-SNARKs

Dos, zk-SNARKs no interactivos

  1. Fondo
  2. La propuesta de NIZK
  3. Transformación Fiat-Shamir
  4. Jens Groth y su investigación
  5. Otras investigaciones

Tres, prueba de conocimiento cero basada en circuitos

  1. Fondo
  2. Conceptos y características básicas del modelo de circuito
  3. Diseño y aplicación de circuitos en zk-SNARKs
  4. Defectos y desafíos potenciales

Cuatro, modelo de zk-SNARKs

  1. Antecedentes
  2. Modelos de algoritmos comunes
  3. Esquema basado en PCP lineal y problema del logaritmo discreto
  4. Plan basado en la prueba de personas comunes
  5. Prueba verificable basada en la probabilidad (PCP) de zk-SNARKs
  6. Clasificación de la fase de configuración de la construcción de prueba genérica CPC( ).

Cinco, resumen y desarrollo de la máquina virtual zk-SNARKs

  1. Antecedentes
  2. Clasificación del ZKVM existente
  3. Paradigma de front-end y back-end
  4. Ventajas y desventajas del paradigma ZKVM

Seis, resumen y desarrollo de la máquina virtual de Ethereum zk-SNARKs

  1. Fondo
  2. El funcionamiento de ZKEVM
  3. El proceso de implementación de ZKEVM
  4. Características de ZKEVM

Siete, Resumen y desarrollo de la solución de red de segunda capa zk-SNARKs

  1. Antecedentes
  2. El mecanismo de trabajo de ZK Rollup
  3. Desventajas y optimización de ZK Rollup

Ocho, la dirección futura del desarrollo de zk-SNARKs

  1. Acelerar el desarrollo del entorno de cálculo
  2. La propuesta y el desarrollo de ZKML
  3. Desarrollo relacionado con la tecnología de escalado ZKP
  4. El desarrollo de la interoperabilidad de zk-SNARKs

Nueve, conclusión

Introducción

Internet está entrando en la era Web3, las aplicaciones de Cadena de bloques (DApps) se están desarrollando rápidamente. En los últimos años, las plataformas de Cadena de bloques han estado soportando millones de actividades de usuarios diariamente, procesando miles de millones de transacciones. Los enormes volúmenes de datos generados por estas transacciones a menudo incluyen información personal sensible. Dada la apertura y transparencia de la Cadena de bloques, los datos almacenados son accesibles para todos, lo que ha suscitado múltiples problemas de seguridad y privacidad.

Actualmente, hay varias tecnologías criptográficas que pueden abordar estos desafíos, incluyendo la encriptación homomórfica, las firmas en anillo, el cálculo seguro multipartito y zk-SNARKs. zk-SNARKs es una solución más integral, este protocolo de verificación permite validar la corrección de ciertas proposiciones sin revelar ningún dato intermedio. Este protocolo no requiere una infraestructura de clave pública compleja, y su implementación repetida tampoco brinda a los usuarios malintencionados la oportunidad de obtener información útil adicional. A través de ZKP, el validador puede verificar si el probador tiene suficientes fondos de transacción sin revelar ningún dato privado de transacción.

Esta característica de ZKP le permite desempeñar un papel central en las transacciones de la cadena de bloques y en las aplicaciones de criptomonedas, especialmente en términos de protección de la privacidad y escalabilidad de la red, convirtiéndose no solo en el foco de la investigación académica, sino que también es ampliamente considerado como una de las innovaciones tecnológicas más importantes desde la implementación exitosa de la tecnología de libro mayor distribuido. Al mismo tiempo, también es una pista clave para aplicaciones industriales y capital de riesgo.

A partir de esto, numerosos proyectos de red basados en ZKP han surgido, como ZkSync, StarkNet, Mina, Filecoin y Aleo. Con el desarrollo de estos proyectos, la innovación algorítmica en torno a ZKP ha sido constante, y se informa que casi cada semana se presenta un nuevo algoritmo. Además, el desarrollo de hardware relacionado con la tecnología ZKP también está avanzando rápidamente, incluyendo chips optimizados específicamente para ZKP. Por ejemplo, proyectos como Ingonyama, Irreducible y Cysic ya han completado recaudaciones de fondos a gran escala. Estos desarrollos no solo muestran el rápido progreso de la tecnología ZKP, sino que también reflejan la transición de hardware general a hardware especializado como GPU, FPGA y ASIC.

Estos avances indican que la tecnología de zk-SNARKs no solo es un importante avance en el campo de la criptografía, sino también un factor clave para lograr una aplicación más amplia de la Cadena de bloques.

Por lo tanto, decidimos organizar sistemáticamente el conocimiento relacionado con zk-SNARKs ( ZKP ) para ayudar mejor en nuestras decisiones de inversión futuras. Para ello, revisamos de manera integral los artículos académicos clave relacionados con ZKP; al mismo tiempo, también analizamos en detalle la información y los libros blancos de los proyectos líderes en este campo. Esta recopilación y análisis integral de información proporcionaron una base sólida para la redacción de este documento.

Uno, conocimientos básicos sobre zk-SNARKs

1. Resumen

En 1985, los académicos Goldwasser, Micali y Rackoff propusieron por primera vez el zk-SNARKs (Zero-Knowledge Proof, ZKP ) y el conocimiento interactivo (Interactive Zero-Knowledge, IZK ). Este documento es la obra fundacional del zk-SNARKs, definiendo muchos conceptos que impactaron la investigación académica posterior. Por ejemplo, la definición de conocimiento es "salida no computable", es decir, el conocimiento debe ser una salida y debe ser una computación no factible, lo que significa que no puede ser una función simple, sino que debe ser una función compleja. La computación no factible se puede entender generalmente como un problema NP, es decir, un problema cuya solución puede verificarse como correcta en tiempo polinómico, donde el tiempo polinómico se refiere a que el tiempo de ejecución del algoritmo puede expresarse como una función polinómica del tamaño de la entrada. Este es un criterio importante para medir la eficiencia y la viabilidad de los algoritmos en la informática. Debido a que el proceso de solución de problemas NP es complejo, se considera que es una computación no factible; sin embargo, su proceso de verificación es relativamente simple, por lo que es muy adecuado para la verificación de zk-SNARKs.

Un ejemplo clásico de un problema NP es el problema del vendedor viajero, en el que se debe encontrar la ruta más corta para visitar una serie de ciudades y regresar al punto de partida. Aunque encontrar la ruta más corta puede ser difícil, verificar si una ruta dada es la más corta es relativamente fácil. Esto se debe a que la distancia total de una ruta específica se puede verificar en tiempo polinómico.

Goldwasser y otros introdujeron el concepto de "complejidad del conocimiento" en su artículo, para cuantificar la cantidad de conocimiento que el probador revela al verificador en un sistema de prueba interactivo. También propusieron el sistema de prueba interactivo (Interactive Proof Systems, IPS), donde el probador (Prover) y el verificador (Verifier) demuestran la veracidad de una declaración a través de múltiples rondas de interacción.

En resumen, la definición de zk-SNARKs resumida por Goldwasser y otros es un tipo especial de prueba interactiva, en la que el verificador no obtiene información adicional más allá del valor de verdad de la afirmación durante el proceso de verificación; y se proponen tres características básicas que incluyen:

  1. Completud ( completeness ): Si la prueba es verdadera, un probador honesto puede convencer a un verificador honesto de este hecho;

  2. Fiabilidad ( solidez ): si el probador no conoce el contenido de la declaración, solo puede engañar al verificador con una probabilidad insignificante;

  3. zk-SNARKs (zero-knowledge ): Al finalizar el proceso de prueba, el verificador solo recibe la información de "el probador posee este conocimiento", sin poder obtener ningún contenido adicional.

2. Ejemplo de zk-SNARKs

Para comprender mejor los zk-SNARKs y sus propiedades, a continuación se presenta un ejemplo que verifica si el probador posee cierta información privada, el cual se divide en tres etapas: configuración, desafío y respuesta.

Primer paso: configurar (Setup)

En este paso, el objetivo del probador es crear una prueba que demuestre que sabe un número secreto s, pero sin mostrar directamente s. Sea el número secreto s;

Elige dos grandes números primos p y q, y calcula su producto n. Sea p y q como números primos, calcula el n obtenido;

Calcular v=s^2 mod n, aquí, v se envía al verificador como parte de la prueba, pero no es suficiente para que el verificador o cualquier observador deduzcan s;

Elige un número entero aleatorio r, calcula x=r^2 mod n y envíalo al verificador. Este valor x se utiliza para el proceso de verificación posterior, pero tampoco expone s. Sea r un número entero aleatorio, x se calcula a partir de él.

Segundo paso: desafío (Challenge)

El validador selecciona aleatoriamente un bit a( que puede ser 0 o 1), y luego lo envía al probador. Este "desafío" determina los pasos que el probador debe seguir a continuación.

Tercer paso: respuesta (Response)

Según el valor a emitido por el validador, el probador responde:

Si a=0, el demostrador envía g=r( donde r es el número que eligió aleatoriamente anteriormente ).

Si a=1, el probador calcula g=rs mod n y lo envía. Sea a el bit aleatorio enviado por el validador, según el valor de a, el probador calcula g;

Finalmente, el validador verifica si x es igual a g^2 mod n según el g recibido. Si la igualdad se cumple, el validador acepta esta prueba. Cuando a=0, el validador calcula x=g^2 mod n, verificando el lado derecho g^2 mod n; cuando a=1, el validador calcula x=g^2/v mod n, verificando el lado derecho (rs)^2/s^2 mod n.

Aquí, vemos que el x=g^2 mod n calculado por el validador indica que el probador ha pasado exitosamente el proceso de verificación, al mismo tiempo que no ha revelado su número secreto s. Aquí, dado que a solo puede ser 0 o 1, hay solo dos posibilidades, la probabilidad de que el probador pase la verificación por suerte es 1/2( cuando a es 0, ). Pero el validador luego desafía al probador k veces, el probador cambia constantemente los números relevantes, presentándolos al validador, y siempre logra pasar el proceso de verificación, de esta manera, la probabilidad de que el probador pase la verificación por suerte es (1/2)^k( tiende infinitamente a 0), y la conclusión de que el probador realmente conoce un número secreto s se ha demostrado. Este ejemplo demuestra la integridad, confiabilidad y propiedad de conocimiento cero del sistema de prueba de conocimiento cero.

Dos, zk-SNARKs no interactivos

1. Contexto

zk-SNARKs(ZKP) en conceptos tradicionales a menudo son formas de protocolos interactivos y en línea; por ejemplo, el protocolo Sigma generalmente requiere de tres a cinco rondas de interacción para completar la autenticación. Sin embargo, en escenarios como transacciones instantáneas o votaciones, a menudo no hay oportunidad para múltiples interacciones, especialmente en la aplicación de la tecnología de Cadena de bloques, donde la función de verificación fuera de línea es particularmente importante.

2. Propuesta de NIZK

En 1988, Blum, Feldman y Micali propusieron por primera vez el concepto de prueba no interactiva de conocimiento cero (NIZK), demostrando que es posible que el probador (Prover) y el verificador (Verifier) completen el proceso de autenticación sin necesidad de múltiples interacciones. Este avance hizo factible la realización de transacciones instantáneas, votaciones y aplicaciones de cadena de bloques.

Ellos propusieron la prueba de conocimiento cero no interactiva ( NIZK ) que se puede dividir en tres etapas:

  1. Configuración
  2. Calcular
  3. Verificación

Establecer una fase usando funciones de cálculo para convertir parámetros de seguridad en conocimiento público (, que tanto el probador como el verificador pueden obtener ), generalmente codificado en una cadena de referencia común ( CRS ). Esta es la forma de calcular la prueba y verificar usando los parámetros y algoritmos correctos.

La fase de cálculo utiliza funciones de cálculo, claves de entrada y de prueba, y produce resultados de cálculo y pruebas.

En la etapa de verificación, se valida la validez de la prueba a través de la clave de verificación.

El modelo de cadena de bloques de referencia pública propuesto por ellos, (CRS), se basa en que todos los participantes compartan una cadena de bloques para lograr la prueba de conocimiento cero no interactiva de problemas NP. La ejecución de este modelo depende de la generación confiable de la CRS, y todos los participantes deben poder acceder a la misma cadena de bloques. Solo cuando la CRS se genera de manera correcta y segura, los esquemas implementados bajo este modelo pueden garantizar la seguridad. Para un gran número de participantes, el proceso de generación de la CRS puede ser tanto complejo como que consuma tiempo, por lo que, aunque estos esquemas suelen ser fáciles de operar y el tamaño de la prueba es pequeño, el proceso de configuración es bastante desafiante.

Luego, la tecnología NIZK experimentó un rápido desarrollo, surgiendo múltiples métodos para transformar las pruebas de conocimiento cero interactivas en pruebas no interactivas. Estos métodos en la construcción del sistema

ZK1.36%
Ver originales
Esta página puede contener contenido de terceros, que se proporciona únicamente con fines informativos (sin garantías ni declaraciones) y no debe considerarse como un respaldo por parte de Gate a las opiniones expresadas ni como asesoramiento financiero o profesional. Consulte el Descargo de responsabilidad para obtener más detalles.
  • Recompensa
  • 8
  • Republicar
  • Compartir
Comentar
0/400
JustHereForAirdropsvip
· 08-13 20:37
zkintroducir una posición velocidad rápida...al principio realmente no entendía
Ver originalesResponder0
LiquidityWitchvip
· 08-13 04:43
zk magia de la elaboración... oscuros pozos de verdades matemáticas, donde la criptografía antigua se encuentra con la alquimia de blockchain
Ver originalesResponder0
SigmaBrainvip
· 08-11 01:18
¿Será zk la solución óptima para L2?
Ver originalesResponder0
NotSatoshivip
· 08-11 01:16
Hace varios años que me he estado adentrando en zk, y aún no entiendo nada.
Ver originalesResponder0
WagmiWarriorvip
· 08-11 01:15
Otra vez veo a alguien promoviendo zk, primero hagamos una buena investigación básica.
Ver originalesResponder0
UnluckyValidatorvip
· 08-11 01:12
¡El pato de pago no se actualiza rápido!
Ver originalesResponder0
MetaLord420vip
· 08-11 01:11
Otra vez es el salvavidas de zkrollup...
Ver originalesResponder0
BearMarketMonkvip
· 08-11 01:02
La vida y la muerte no importan, zkp es realmente bueno.
Ver originalesResponder0
Opere con criptomonedas en cualquier momento y lugar
qrCode
Escanee para descargar la aplicación Gate
Comunidad
Español
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)