La aplicación integral y las perspectivas de desarrollo de la tecnología de zk-SNARKs en el campo de la Cadena de bloques

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

Resumen

zk-SNARKs(ZKP) tecnología como una innovación importante en el campo de la Cadena de bloques, desempeña un papel clave en la mejora de la protección de la privacidad y la escalabilidad. Este artículo proporciona una revisión sistemática de casi cuarenta años de investigación y avances recientes en ZKP.

Primero se introducen los conceptos básicos y el contexto histórico de ZKP, centrándose en el análisis de la tecnología ZKP basada en circuitos, incluidos el diseño y la aplicación de modelos como zkSNARK, Pinocchio, Bulletproofs, etc. En cuanto al entorno de cálculo, se explora cómo ZKVM y ZKEVM mejoran la capacidad de procesamiento de transacciones y la eficiencia de verificación. El artículo también presenta el mecanismo de trabajo y los métodos de optimización de ZK Rollup como solución de escalado de Layer 2, así como los últimos avances en aceleración de hardware, soluciones híbridas y ZK EVM dedicados.

Por último, se vislumbraron conceptos emergentes como ZKCoprocessor, ZKML, ZKThreads, ZK Sharding y ZK StateChannels, y se discutió 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 tecnologías y tendencias de desarrollo, 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 ofreciendo una referencia importante para las decisiones de inversión futuras.

Índice

Introducción

Una, conocimientos básicos sobre zk-SNARKs

  1. Resumen
  2. Ejemplo de zk-SNARKs

Dos, zk-SNARKs no interactivos

  1. Antecedentes
  2. 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 básicos y características 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. Fondo
  2. Modelos de algoritmos comunes
  3. Esquema basado en PCP lineal y el problema del logaritmo discreto
  4. Plan basado en la prueba de personas comunes
  5. Prueba de conocimiento cero basada en la probabilidad verificable ( PCP )
  6. Clasificación de la fase de configuración de la construcción de prueba general CPC( )

Cinco, visión general y desarrollo de la máquina virtual de zk-SNARKs

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

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

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

Siete, descripción y desarrollo del esquema de red de segunda capa zk-SNARKs

  1. Fondo
  2. Mecanismo de trabajo de ZK Rollup
  3. Desventajas y optimización de ZK Rollup

Ocho, las direcciones futuras de desarrollo de zk-SNARKs

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

Nueve, conclusión

Referencia

Introducción

Con la llegada de la era Web3, las aplicaciones de cadena de bloques (DApps) están desarrollándose rápidamente, surgiendo una gran cantidad de nuevas aplicaciones cada día. En los últimos años, las plataformas de cadena de bloques han estado soportando las actividades de millones de usuarios diariamente, procesando miles de millones de transacciones. Los grandes volúmenes de datos generados por estas transacciones suelen contener información personal sensible, como la identidad del usuario, el monto de la transacción, la dirección de la cuenta y el saldo, entre otros. Debido a la apertura y transparencia de la cadena de bloques, los datos almacenados son visibles para todos, lo que ha dado lugar a varios problemas de seguridad y privacidad.

Actualmente existen varias tecnologías de cifrado que pueden enfrentar estos desafíos, incluyendo cifrado homomórfico, firmas en anillo, cálculo seguro multiparte y zk-SNARKs. Entre ellas, zk-SNARKs es una solución más integral, que permite verificar la validez de ciertas proposiciones sin revelar ningún dato intermedio. A través de ZKP, el verificador puede validar si el probador tiene suficiente cantidad de transacciones sin revelar ningún dato de transacción privado.

La característica de ZKP le permite desempeñar un papel central en las transacciones de la cadena de bloques y las aplicaciones de criptomonedas, especialmente en la protección de la privacidad y la escalabilidad de la red, lo que no solo lo convierte en el foco de la investigación académica, sino también en una pista clave para las aplicaciones industriales y la inversión de riesgo. Con la aparición de proyectos de red basados en ZKP como ZkSync, StarkNet y Mina, la innovación algorítmica relacionada con ZKP está surgiendo constantemente. Además, el desarrollo de hardware relacionado con ZKP también está avanzando rápidamente, incluidos los chips optimizados específicamente para ZKP.

Estos avances indican que la tecnología de zk-SNARKs no solo es un importante突破 en el campo de la criptografía, sino que también es un impulsor clave para lograr una aplicación más amplia de la Cadena de bloques. Por lo tanto, este artículo tiene como objetivo organizar sistemáticamente el conocimiento relacionado con ZKP para ayudar en futuras decisiones de inversión. Hemos revisado de manera integral los documentos académicos centrales y la información de proyectos líderes relacionados con ZKP, lo que proporciona una base sólida para la redacción de este artículo.

Uno, fundamentos de zk-SNARKs

1. Resumen

En 1985, Goldwasser, Micali y Rackoff propusieron por primera vez el concepto de zk-SNARKs ( ZKP ) y pruebas de conocimiento interactivas ( IZK ). Definieron "conocimiento" como "una salida de cálculo no computable", es decir, el conocimiento debe ser la salida de una función compleja, que generalmente se puede entender como un problema NP. Los sistemas ZKP tienen tres características básicas:

  1. Completitud: Si la prueba es verdadera, un probador honesto puede convencer a un verificador honesto de este hecho.

  2. Confiabilidad: si el probador no conoce el contenido de la declaración, solo puede engañar al validador con una probabilidad muy pequeña.

  3. Conocimiento cero: después de que se complete el proceso de prueba, el verificador solo obtiene la información de que "el probador posee este conocimiento", sin poder obtener ningún contenido adicional.

2. Ejemplo de zk-SNARKs

Para comprender mejor ZKP y sus atributos, a continuación se presenta un ejemplo de cómo verificar si un probador posee cierta información confidencial, dividido en tres etapas: configuración, desafío y respuesta:

Primer paso: configurar El probador elige dos grandes números primos p y q, calcula n=p*q. Elige un entero aleatorio r, calcula x=r^2 mod n, y lo envía al validador.

Segundo paso: desafío El validador selecciona aleatoriamente un bit a(0 o 1) y lo envía al probador.

Tercer paso: respuesta Según el valor de a, el probador calcula y envía la respuesta: Si a=0, enviar r Si a=1, calcula y envía y=r*s mod n

Los validadores realizan la verificación según la respuesta recibida. Este proceso se puede repetir varias veces para reducir la probabilidad de que el probador pase la verificación por adivinanza.

Dos, zk-SNARKs no interactivos

1. Fondo

Los ZKP tradicionales suelen requerir múltiples interacciones para completar la autenticación. Sin embargo, en ciertos escenarios, como transacciones instantáneas o votaciones, a menudo no es posible realizar múltiples interacciones, especialmente en aplicaciones de Cadena de bloques, donde la función de verificación offline 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, sin necesidad de múltiples interacciones, el probador y el verificador aún pueden completar el proceso de certificación. NIZK se puede dividir en tres etapas: configuración, cálculo y verificación.

3. Transformación Fiat-Shamir

La transformación Fiat-Shamir es un método para convertir un ZKP interactivo en uno no interactivo. Este método reduce el número de interacciones al introducir funciones hash y se basa en supuestos de seguridad para garantizar la veracidad de la prueba y su difícil falsificación.

4. Jens Groth y su investigación

La investigación de Jens Groth ha impulsado en gran medida la aplicación de ZKP en la criptografía y la tecnología de cadena de bloques. Propuso el primer sistema NIZK perfecto aplicable a cualquier lenguaje NP y diseñó un sistema NIZK conciso y eficiente, reduciendo significativamente el tamaño de CRS y las pruebas.

5. Otras investigaciones

Otras investigaciones incluyen el esquema de cifrado de clave pública desarrollado por Cramer y Shoup utilizando funciones hash generales, el método de transformación Fiat-Shamir mejorado propuesto por Damgård y otros, así como el concepto de "fiabilidad débilmente atribuible" propuesto por Ventre y Visconti.

Tres, prueba de conocimiento cero basada en circuitos

1. Antecedentes

Al abordar tareas que requieren alta paralelización y un tipo específico de cálculo, el modelo de máquina de Turing tradicional presenta ciertas limitaciones. En comparación, el modelo de circuitos, con sus ventajas estructurales de cálculo únicas, es más adecuado para algunas tareas específicas de procesamiento criptográfico.

2. Conceptos y características básicas del modelo de circuito

Los modelos de circuitos se dividen principalmente en dos grandes categorías:

  • Circuito aritmético: compuesto principalmente por puertas de suma y multiplicación, se utiliza para procesar elementos sobre un campo finito.
  • Circuito lógico: compuesto por puertas lógicas básicas como puertas AND, OR y NOT, utilizado para procesar operaciones booleanas.

3. Diseño y aplicación de circuitos en zk-SNARKs

En el sistema ZKP, el proceso de diseño del circuito implica expresar el problema a demostrar como un circuito y asegurar la precisión de los resultados computacionales mediante restricciones polinómicas. Este proceso incluye la representación del problema, la optimización del circuito, la conversión a una representación polinómica, la generación de una cadena de referencia pública (CRS) y la generación y verificación de pruebas.

4. Defectos y desafíos potenciales

Los principales desafíos que enfrenta el ZKP basado en circuitos incluyen la complejidad y escalabilidad de los circuitos, la dificultad de optimización, la adaptabilidad a tareas de cálculo específicas, la dificultad en la implementación de algoritmos de cifrado y el consumo de recursos. Las soluciones incluyen técnicas de compresión de circuitos, diseño modular y aceleración por hardware.

Cuatro, modelo de zk-SNARKs

1. Antecedentes

La versatilidad de ZKP basada en circuitos es bastante limitada, y se necesitan desarrollar nuevos modelos y algoritmos para problemas específicos. Actualmente existen varios compiladores de lenguajes de alto nivel y herramientas de combinación de circuitos de bajo nivel para la generación y diseño de circuitos.

2. Modelos de algoritmos comunes

Los principales modelos de zk-SNARKs incluyen:

  1. modelo zk-SNARK
  2. El modelo de Ben-Sasson
  3. Modelo de Pinocho
  4. Modelo Bulletproofs
  5. Modelo Ligero

3. Esquema basado en PCP lineales y el problema del logaritmo discreto

Este tipo de soluciones incluye:

  1. Modelo Groth16
  2. Modelo Sonic
  3. Modelo PLONK
  4. Modelo Marlin
  5. Modelo SLONK
  6. Modelo SuperSonic

4. Esquemas basados en la prueba de personas comunes

  1. Modelo Hyrax
  2. Modelo Libra
  3. Modelo Spartan

5. Prueba de conocimiento cero de ( PCP) basada en pruebas verificables de probabilidad

  1. Modelo STARK
  2. Modelo Aurora
  3. Modelo Aurora sucinto
  4. Modelo Fractal

6. Clasificación de la fase de configuración de la construcción de prueba genérica CPC(

  • Primera generación )G1(: cada circuito necesita una configuración de confianza separada.
  • Segunda generación )G2(: configurar inicialmente todos los circuitos una vez.
  • Tercera generación )G3(: sistema de prueba que no requiere configuración de confianza.

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

1. Antecedentes

ZKVM es una máquina virtual centrada en ZKP, que amplía las capacidades de las VM tradicionales, puede reducir de manera generalizada la barrera de desarrollo de circuitos ZKP y ser capaz de generar pruebas instantáneamente para cualquier aplicación o cálculo.

2. Clasificación del ZKVM existente

Principalmente se divide en tres categorías:

  1. Tipo principal de ZKVM: como RISCZero, PolygonMiden, zkWASM, etc.
  2. ZKVM equivalente a EVM: como el proyecto zkEVM.
  3. zk-SNARKs optimizados tipo ZKVM: como Cairo-VM, Valida, TinyRAM, etc.

3. Paradigma de front-end y back-end

El sistema ZKP generalmente se puede dividir en dos partes: frontend y backend. El frontend utiliza principalmente lenguajes de bajo nivel para representar lenguajes de alto nivel, mientras que el backend es un sistema de prueba criptográfica que convierte el circuito descrito en un lenguaje de bajo nivel construido por el frontend en la generación de pruebas y la verificación de la corrección.

4. Ventajas y desventajas del paradigma ZKVM

Las ventajas incluyen el uso de ISA existente, soporte de un solo circuito para múltiples programas, circuitos de estructura repetitiva, etc. Las desventajas incluyen los costos derivados de la generalidad, operaciones de alto costo, alto costo de prueba, etc.

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

1. Antecedentes

ZKEVM está diseñado específicamente para Ethereum, y se utiliza principalmente para verificar la corrección de la ejecución de contratos inteligentes, al mismo tiempo que protege la privacidad de las transacciones. Las principales soluciones de ZKEVM incluyen STARKWARE, ZkSync, Polygen-Hermez, Scroll, entre otras.

2. Cómo funciona ZKEVM

El flujo de trabajo de ZKEVM incluye el procesamiento del programa de nodos, la generación de pruebas zk-SNARKs, la agregación de pruebas y el envío al contrato L1.

3. Proceso de implementación de ZKEVM

El proceso de implementación incluye obtener datos, procesar datos, generar pruebas, pruebas recursivas, enviar pruebas y otros pasos.

4. Características de ZKEVM

Las principales características de ZKEVM incluyen la mejora de la capacidad de procesamiento de transacciones, la protección de la privacidad y la verificación eficiente.

Siete, Resumen y desarrollo del esquema de red de segunda capa de zk-SNARKs

1. Antecedentes

ZK Rollup es un tipo de bloque

Ver originales
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
  • Recompensa
  • 6
  • Compartir
Comentar
0/400
BearMarketSagevip
· 07-12 08:12
Tener snark es lo más alcista.
Ver originalesResponder0
RektRecordervip
· 07-12 08:12
¿Optimista o pesimista sobre el zkvm que vuelve a empezar?
Ver originalesResponder0
GasFeeCryvip
· 07-12 08:09
zksnark YYDS 见贴报贵
Responder0
UnluckyValidatorvip
· 07-12 08:03
Solo mirar la cabeza ya da dolor... los que han trabajado como Nodo lo entienden.
Ver originalesResponder0
GateUser-3824aa38vip
· 07-12 07:57
¿No es solo encapsular código y hardware?
Ver originalesResponder0
SignatureDeniedvip
· 07-12 07:51
zk puede resolver el mayor punto de dolor actual
Ver originalesResponder0
  • Anclado
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)