Los últimos avances y perspectivas de aplicación de la tecnología zk-SNARKs en el campo de la Cadena de bloques

Resumen de la tecnología zk-SNARKs y su aplicación en el campo de la Cadena de bloques

Resumen

zk-SNARKs(ZKP) tecnología es ampliamente considerada como una de las innovaciones más importantes en el campo de la Cadena de bloques, y también como un área de enfoque clave para el capital de riesgo en los últimos años. Este artículo presenta una revisión sistemática del desarrollo de la tecnología ZKP durante casi 40 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, incluidos el diseño, la aplicación y los métodos de optimización de modelos como zkSNARK, Ben-Sasson, Pinocchio, Bulletproofs y Ligero. En términos de entorno computacional, este artículo presenta ZKVM y ZKEVM, y explora cómo mejoran la capacidad de procesamiento de transacciones, protegen la privacidad y aumentan la eficiencia de verificación. El artículo también explica el funcionamiento y los métodos de optimización del Rollup de conocimiento cero ( 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 dedicadas.

Finalmente, este artículo contempla conceptos emergentes como ZKCoprocessor, ZKML, ZKThreads, ZK Sharding y ZK StateChannels, y explora su potencial en la escalabilidad, interoperabilidad y protección de la privacidad en la Cadena de bloques.

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

Tabla de contenidos

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. Antecedentes
  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, zk-SNARKs modelo

  1. Antecedentes
  2. Modelos de algoritmos comunes
  3. Propuesta basada en PCP lineal y el problema del logaritmo discreto
  4. Propuesta basada en la prueba de personas comunes
  5. Prueba de conocimiento cero PCP( verificable basada en probabilidades )
  6. Clasificación de la fase de configuración de la construcción de prueba general CPC( )

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

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

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

  1. Antecedentes
  2. Cómo funciona ZKEVM
  3. Proceso de implementación de zk-EVM
  4. Características de ZKEVM

Siete, descripción general y desarrollo de las soluciones de red de segunda capa de zk-SNARKs

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

Ocho, 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 de zk-SNARKs
  4. Desarrollo de la interoperabilidad de zk-SNARKs

Nueve, conclusión

Referencias

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 llevando a cabo las actividades de millones de usuarios cada día, procesando miles de millones de transacciones. Estas transacciones generan una gran cantidad de datos que involucran información personal sensible como la identidad del usuario, el monto de la transacción, la dirección de la cuenta y el saldo. Debido a la apertura y transparencia de la Cadena de bloques, los datos almacenados son accesibles para todos, lo que ha generado diversos problemas de seguridad y privacidad.

Actualmente hay varias tecnologías criptográficas que pueden enfrentar estos desafíos, incluyendo la encriptación homomórfica, las firmas en anillo, el cálculo seguro multiparte y zk-SNARKs. La encriptación homomórfica permite realizar operaciones sin descifrar el texto cifrado, lo que ayuda a proteger la seguridad del saldo de la cuenta y el monto de la transacción, pero no puede proteger la seguridad de la dirección de la cuenta. Las firmas en anillo ofrecen una forma especial de firma digital que puede ocultar la identidad del firmante, protegiendo así la seguridad de la dirección de la cuenta, pero no puede proteger el saldo de la cuenta y el monto de la transacción. El cálculo seguro multiparte permite distribuir tareas computacionales entre varios participantes, sin que ningún participante conozca los datos de los otros participantes, protegiendo efectivamente la seguridad del saldo de la cuenta y el monto de la transacción, pero tampoco puede proteger la seguridad de la dirección de la cuenta. Además, estas tecnologías no pueden ser utilizadas para verificar si el probador tiene suficiente monto de transacción en un entorno de cadena de bloques sin revelar el monto de la transacción, la dirección de la cuenta y el saldo de la cuenta.

El 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. El protocolo no requiere una infraestructura de clave pública compleja, y su implementación repetida no brinda a los usuarios maliciosos 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 la transacción. El proceso de verificación incluye la generación de una prueba que contiene el monto de transacción que el probador afirma, que luego se transmite al validador, quien realiza cálculos predefinidos sobre la prueba y produce el resultado final del cálculo, determinando así si acepta la declaración del probador. Si la declaración del probador es aceptada, significa que tienen suficientes fondos de transacción. El proceso de verificación anterior puede ser registrado en la Cadena de bloques, sin ninguna falsificació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 lo que respecta a 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 que también es ampliamente considerado como una de las innovaciones tecnológicas más importantes desde la exitosa implementación de la tecnología de libros de contabilidad distribuidos, además de ser una pista clave para aplicaciones en la industria 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 surgido constantemente, 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, incluidos chips optimizados específicamente para ZKP. Por ejemplo, algunos proyectos ya han completado la recaudación 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 dedicado como GPU, FPGA y ASIC.

Estos avances indican que la tecnología zk-SNARKs no solo es un importante avance en el campo de la criptografía, sino que también es un motor clave para lograr aplicaciones más amplias de la Cadena de bloques, especialmente en la mejora de la protección de la privacidad y la capacidad de procesamiento.

Por lo tanto, hemos decidido organizar sistemáticamente el conocimiento relacionado con zk-SNARKs ( ZKP ) para ayudarnos mejor a tomar decisiones de inversión en el futuro. Para ello, hemos revisado de manera integral los documentos académicos clave relacionados con ZKP (, ordenándolos según su relevancia y número de citas ); al mismo tiempo, también hemos analizado en detalle la información y los libros blancos de los proyectos líderes en este campo (, ordenándolos según su tamaño de financiamiento ). Esta recopilación y análisis integral de información proporciona 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 la prueba de conocimiento cero en el artículo "The Knowledge Complexity of Interactive Proof-Systems", definiendo conceptos que influyeron en la investigación académica posterior. Por ejemplo, la definición de conocimiento es "salida de cálculo no factible", lo que significa que el conocimiento debe ser una salida, y es un cálculo no factible, lo que implica que no puede ser una función simple, sino una función compleja. El cálculo no factible generalmente se puede entender como un problema NP, es decir, un problema cuya solución puede ser verificada por su corrección en tiempo polinómico, donde el tiempo polinómico se refiere al tiempo de ejecución del algoritmo que puede ser expresado como una función polinómica del tamaño de la entrada. Este es un estándar importante en informática para medir la eficiencia y viabilidad de los algoritmos. Debido a que el proceso de resolución de problemas NP es complejo, se considera un cálculo no factible; sin embargo, su proceso de verificación es relativamente simple, por lo que es muy adecuado para la verificación de pruebas de conocimiento cero.

Un ejemplo clásico del 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, dado un camino, verificar si esta ruta es la más corta es relativamente fácil. Esto se debe a que la distancia total de un camino específico 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 sistemas de prueba interactivos (Interactive Proof Systems, IPS), donde el probador (Prover) y el verificador (Verifier) interactúan en múltiples rondas para probar la veracidad de una afirmació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 validador no obtiene ninguna información adicional más allá del valor de verdad de la declaración durante el proceso de verificación; y se proponen tres características básicas que incluyen:

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

  1. Fiabilidad: Si el demostrador no conoce el contenido de la declaración, solo puede engañar al verificador con una probabilidad insignificante;

  2. Propiedad de conocimiento cero: al finalizar 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.zk-SNARKs ejemplo

Para comprender mejor zk-SNARKs y sus propiedades, a continuación se presenta un ejemplo de cómo verificar si un probador posee cierta información privada, que 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 conoce un número secreto s, pero sin mostrar s directamente. Establecer el número secreto;

Elige dos grandes números primos p y q, y calcula su producto. Sea el número primo y , calcula el resultado.

Cálculo, aquí, v se envía como parte de la prueba al validador, pero no es suficiente para que el validador o cualquier observador infiera s.

Selecciona un número entero aleatorio r, calcula y envíalo al validador. Este valor x se utiliza para el proceso de verificación posterior, pero tampoco expone s. Sea un número entero aleatorio, calcula el obtenido.

Segundo paso: desafiar )Challenge###

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

Tercer paso: respuesta (Response)

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

Si el probador envía ( aquí r es el número que eligió aleatoriamente anteriormente ).

Si, el probador calcula y envía. Suponga que el validador envía un bit aleatorio, según el valor de a, el probador calcula;

Finalmente, el validador verifica si g recibido es igual a . Si se cumple la ecuación, el validador acepta esta prueba. Cuando , el validador calcula , validando el lado derecho; cuando , el validador calcula , validando el lado derecho.

Aquí, vemos que el validador calcula y obtiene que el demostrador ha pasado con éxito el proceso de validación, al mismo tiempo que no ha revelado su número secreto s. Aquí, dado que a solo puede tomar 0 o 1, hay solo dos posibilidades, la probabilidad de que el demostrador pase la validación por suerte es ( cuando a toma 0. Pero el validador luego desafía al demostrador nuevamente, el demostrador cambia constantemente los números relevantes, los presenta al validador y siempre logra pasar el proceso de validación, de modo que la probabilidad de que el demostrador pase la validación por suerte se aproxima infinitamente a 0), lo que prueba que el demostrador efectivamente conoce un número secreto s. Este ejemplo demuestra la integridad, fiabilidad y propiedad de conocimiento cero del sistema de zk-SNARKs.

( Dos, prueba de conocimiento cero no interactiva

)# 1. Fondo

zk-SNARKs(ZKP) en el concepto tradicional generalmente son formas de protocolo interactivas y en línea; por ejemplo, el protocolo Sigma normalmente 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 funcionalidad de verificación fuera de línea es especialmente 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 la posibilidad de que el probador ###Prover( y el verificador )Verifier### completen un proceso de certificación sin necesidad de múltiples interacciones. Este avance hizo posible la implementación de transacciones instantáneas, votaciones y aplicaciones de cadena de bloques.

Ellos propusieron la prueba de conocimiento cero no interactiva ( NIZK ) que puede

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
  • 4
  • Compartir
Comentar
0/400
GateUser-afe07a92vip
· 08-05 10:44
¿Qué tecnología avanzada? No entiendo...
Ver originalesResponder0
WalletDoomsDayvip
· 08-05 10:42
zkp es el antídoto de la Billetera
Ver originalesResponder0
BanklessAtHeartvip
· 08-05 10:30
La luz de L2 está en zk
Ver originalesResponder0
WenAirdropvip
· 08-05 10:14
La promoción del vacío es anual, el airdrop gratis hace suspirar a todos.
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)