Una explicación detallada de las pruebas de conocimiento cero (ZKP)

IntermedioNov 28, 2023
La prueba de conocimiento cero (ZKP) es un método de cifrado que permite a una parte (conocida como probador) demostrarle a otra parte (conocida como verificador) que una afirmación es verdadera, sin revelar ninguna otra información. Las soluciones ZKP populares incluyen zk-SNARKS, zk-STARKS, PLONK y Bulletproofs. Este artículo presentará estos cuatro tipos de soluciones ZKP y analizará sus ventajas y desventajas.
Una explicación detallada de las pruebas de conocimiento cero (ZKP)

Descripción

La prueba de conocimiento cero (ZKP) es una tecnología criptográfica introducida por primera vez en un artículo titulado "La complejidad del conocimiento de los sistemas de prueba interactivos" a principios de la década de 1980 por S.Goldwasser, S.Micali y C.Rackoff. Concebido originalmente como un modelo teórico, su objetivo era abordar el desafío de verificar afirmaciones matemáticas sin revelar ninguna evidencia. Este concepto atrajo una amplia atención en el mundo académico por desafiar los límites de las técnicas de cifrado tradicionales y ofrecer un enfoque novedoso 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. A principios del siglo XXI, con el crecimiento explosivo de Internet y la comunicación digital, el potencial de ZKP comenzó a explorarse en el mundo real. Particularmente con el auge de blockchain y las criptomonedas, ZKP demostró su capacidad para mejorar la privacidad y la seguridad manteniendo al mismo tiempo la eficiencia de las transacciones y el procesamiento de datos.

Hoy en día, ZKP no sólo es un tema candente en la investigación criptográfica, sino que también se ha integrado en múltiples plataformas y aplicaciones de blockchain. Por ejemplo, la aplicación zk-SNARKs en Ethereum Layer2 ofrece transacciones anónimas sin revelar detalles de la transacción. Esta transición de la teoría a la aplicación práctica no sólo demuestra el valor práctico de ZKP sino que también impulsa la exploración de interacciones digitales más eficientes y seguras. Con continuos avances tecnológicos, ZKP desempeña un papel cada vez más crítico en la protección de la privacidad personal, garantizando la seguridad de los datos y estableciendo sistemas digitales confiables.

Definición y principio de ZKP

La prueba de conocimiento cero (ZKP) es un método de cifrado que permite a una parte (el probador) demostrar la exactitud de una declaración a otra parte (el verificador) sin revelar ninguna información adicional, es decir, sin revelar ningún conocimiento sobre el cual se pueda confirmar la exactitud de una declaración. la declaración depende. Este proceso no sólo protege la privacidad del probador sino que también garantiza que el verificador no pueda replicar el proceso de prueba ni utilizarlo para obtener información adicional.

Diagrama conceptual de pruebas de conocimiento cero (Fuente: ChainLink)

Los principios básicos de las pruebas de conocimiento cero (ZKP) se pueden definir mediante los siguientes tres atributos:

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

El principio de ZKP a menudo se entiende a través de ejemplos simples: si necesito demostrarle a la persona A que tengo el número de teléfono de la persona B, no necesito revelar directamente el número de B a A. En cambio, puedo demostrarlo llamando al número de B. . Una vez que se conecta la llamada, demuestra que efectivamente poseo el número de B, sin revelar ninguna información sobre el número en sí.

En aplicaciones prácticas, ZKP generalmente requiere construcciones matemáticas complejas como ecuaciones polinómicas, curvas elípticas u otros desafíos matemáticos. La seguridad de estas construcciones se basa en la dificultad computacional de problemas como la factorización o logaritmos discretos. Con el avance de la criptografía, han surgido diversas implementaciones de ZKP, como zk-SNARK y zk-STARK, que ofrecen una protección eficaz de la privacidad en diferentes contextos, especialmente en los campos de blockchain y criptomonedas.

La forma básica de prueba de conocimiento cero consta de tres elementos: testigo, desafío y respuesta.

Testigo: En la prueba de conocimiento cero, el demostrador quiere demostrar conocimiento de alguna información oculta. Esta información secreta actúa como “testigo” de la prueba. El probador, basándose en su conocimiento del testigo, plantea una serie de preguntas que sólo alguien con conocimiento de la información puede responder. Por lo tanto, el probador selecciona aleatoriamente una pregunta para iniciar la prueba, calcula la respuesta y luego la envía al verificador.

Desafío: el verificador elige al azar otra pregunta del conjunto y le pide al probador que la responda.

Respuesta: El probador recibe la pregunta, calcula la respuesta y la envía de vuelta al verificador. La respuesta del probador le permite al verificador verificar si efectivamente tiene acceso al testigo. Para asegurarse de que el probador no esté adivinando correctamente a ciegas por casualidad, el verificador selecciona otra pregunta para investigar. Al repetir este proceso varias veces, la probabilidad de que el probador invente la verdad se reduce en gran medida hasta que el verificador esté satisfecho.

En el ejemplo de llamada telefónica antes mencionado, "Yo" soy el testigo que no está dispuesto a revelar información, mientras que A es el verificador, y el desafío planteado es "Demostrar que 'Yo' poseo el número de B". El proceso de respuesta implica que "yo" conecte una llamada al número de B para demostrar que realmente lo tengo.

¿Por qué se necesita ZKP?

Como se analizó anteriormente, las pruebas de conocimiento cero (ZKP) ofrecen inherentemente ventajas significativas en el ámbito de la protección de la privacidad. En la era actual de sobrecarga de información, los datos personales a menudo se almacenan en plataformas de terceros, lo que aumenta el riesgo de violaciones de datos. Además, debido a las barreras técnicas y al retraso en las sanciones legales, la seguridad de la información depende en gran medida de limitaciones éticas, lo que dificulta que los usuarios controlen verdaderamente su información privada. La llegada de la tecnología ZKP proporciona una solución que protege la privacidad y mejora la eficiencia y la seguridad de la verificación.

En comparación con otras tecnologías de cifrado, ZKP tiene múltiples ventajas:

  • Protección de la privacidad: ZKP permite a individuos e instituciones demostrar la veracidad de cierta información sin revelar el contenido real de la información. Por ejemplo, se puede utilizar para demostrar que una persona cumple con los requisitos de edad sin revelar la edad real o la fecha de nacimiento.
  • Seguridad mejorada: dado que ZKP no requiere revelar información confidencial, reduce el riesgo de fuga de datos. Incluso si la interceptación ocurre durante el proceso de prueba, no se revela ningún dato sustancial.
  • Fraude reducido: en transacciones financieras, ZKP se puede utilizar para verificar la legitimidad de una transacción sin exponer detalles específicos, reduciendo así las oportunidades de fraude.
  • Eficiencia: algunos tipos de ZKP, como zk-SNARK, son muy rápidos de crear y verificar, lo que resulta beneficioso para sistemas que necesitan procesar una gran cantidad de transacciones u operaciones de verificación.
  • Interoperabilidad: ZKP proporciona un marco común para la verificación entre diferentes sistemas y dominios, lo que permite verificar y compartir la información de forma segura entre varios sistemas.
  • Escalabilidad: con la evolución de la tecnología informática, la implementación de ZKP se está volviendo más eficiente y escalable, lo que significa que puede implementarse en sistemas de mayor escala.
  • Cumplimiento: en el entorno regulatorio actual que exige protección de la privacidad del consumidor, ZKP puede ayudar a las empresas a verificar y procesar datos sin violar las leyes de privacidad.
  • Control de usuario: ZKP mejora el control de los usuarios sobre sus datos porque pueden elegir la cantidad de información que desean revelar.
  • Descentralización: en blockchain y tecnologías distribuidas, ZKP ofrece una poderosa herramienta de privacidad para la descentralización, que permite a los usuarios realizar transacciones e interactuar sin depender de las autoridades centrales.

Ya sea en la Web 2.0 tradicional o en el dominio emergente Web 3.0, las perspectivas de aplicación de ZKP son amplias.

Tipos de pruebas de conocimiento cero (ZKP)

Existen múltiples implementaciones de pruebas de conocimiento cero, como zk-SNARK, zk-STARK, PLONK y Bulletproofs. Cada tipo tiene sus ventajas y desventajas en términos de tamaño de la prueba, tiempo de prueba y tiempo de verificación. Este artículo se centra en presentar los cuatro tipos más utilizados en escenarios de aplicaciones.

zk-SNARK

Los zk-SNARK, que significan "Argumento de conocimiento no interactivo, sucinto y de conocimiento cero", son herramientas criptográficas que se utilizan para demostrar que alguien conoce una información sin revelar ninguna información en sí. En zk-SNARK, “conocimiento cero” significa que el probador puede demostrar que una afirmación es verdadera sin proporcionar ninguna información más que su exactitud. “Concisión” se refiere al pequeño tamaño de la prueba y a la velocidad del proceso de verificación. “No interactivo” significa que una vez que se genera una prueba, cualquier persona puede verificarla sin necesidad de interacción adicional entre el probador y el verificador. Los componentes principales de zk-SNARK incluyen:

  • Configuración confiable: durante la inicialización del sistema, se debe generar un par de claves (parámetros) públicas y privadas. Este proceso debe ser ejecutado por una parte de confianza, ya que la seguridad del sistema puede verse comprometida si se filtra la clave privada.
  • Generación de prueba: el probador conoce una información secreta pero no desea revelarla al verificador. Utilizan esta información secreta y los parámetros públicos para construir una prueba que demuestre suficientemente que conocen el secreto sin revelar ningún detalle al respecto.
  • Proceso de verificación: una vez que el verificador recibe la prueba, puede utilizar los parámetros públicos para verificar su exactitud. Si el probador ha elaborado una prueba correcta, el proceso de verificación dará como resultado "sí", en caso contrario, "no".

Los zk-SNARK se utilizan en diversos escenarios de preservación de la privacidad, como criptomonedas con transacciones anónimas, sistemas de votación seguros, autenticación e intercambio de datos que preservan la privacidad y tecnologías de escalabilidad de blockchain.

zk-STARK

Los zk-STARK, o “Argumentos de conocimiento transparentes escalables y de conocimiento cero”, permiten que una parte (el probador) demuestre a otra (el verificador) que conoce cierta información sin revelar la información en sí. A diferencia de los zk-SNARK, los zk-STARK no requieren un proceso de configuración confiable. Esto significa que no dependen de la confidencialidad de cierta información privada, una característica que a menudo se considera crucial para la seguridad, ya que la configuración confiable puede ser una vulnerabilidad sistémica.

Los zk-STARK funcionan basándose en conceptos de varios campos matemáticos, incluidas funciones hash, cálculos polinomiales y teoría de corrección de errores. Utilizan una construcción conocida como "argumento transparente escalable de conocimiento cero", que permite la generación de pruebas sin una configuración confiable. Las aplicaciones potenciales de zk-STARK son similares a las de zk-SNARK, pero debido a su escalabilidad y transparencia, son particularmente adecuadas para aplicaciones a gran escala, incluidas criptomonedas que preservan la privacidad, tecnologías de escalabilidad blockchain y verificación segura en computación en la nube. .

MORAPIO

PLONK, no es un acrónimo, hace referencia a los apellidos de sus creadores. Está diseñado para proporcionar una solución ZKP universal y eficiente, especialmente en aplicaciones blockchain como contratos inteligentes y transacciones protegidas por la privacidad. El núcleo de PLONK es el uso de una técnica de "ocultamiento homomórfico", que permite operaciones aritméticas con datos sin revelar los datos originales. Emplea un algoritmo especial (un esquema de compromiso polinomial) para crear pruebas, lo que permite a los probadores demostrar de manera eficiente que tienen los resultados de cálculo correctos para un conjunto de datos.

Una característica clave de PLONK es su universalidad. Una vez que se configuran los parámetros para una tarea computacional específica (a través de una configuración confiable única), se pueden reutilizar varias veces para crear nuevas pruebas, sin necesidad de nuevas configuraciones cada vez. Esto hace que PLONK sea altamente eficiente en la creación y verificación de pruebas y, a menudo, está diseñado para admitir diversas tareas computacionales en blockchain y otros sistemas distribuidos.

A prueba de balas

Bulletproofs, una solución ZKP recientemente introducida, no requiere una configuración confiable y está diseñada específicamente para construir pruebas de rango y ciertos tipos de pruebas aritméticas. Propuesto por Benedikt Bunz, Jonathan Bootle, Dan Boneh y otros en 2017, Bulletproofs opera en construcciones matemáticas complejas como el cifrado homomórfico y la criptografía de curva elíptica. Aprovechan una serie de técnicas matemáticas para permitir a los probadores crear una prueba de rango efectiva para un número sin revelar su valor exacto. Especialmente en el ámbito de las criptomonedas, esto se puede utilizar para demostrar que los valores de las transacciones se encuentran dentro de un rango legal sin exponer los montos reales de las transacciones.

Debido a su característica de prueba de rango, los Bulletproofs se usan ampliamente en los campos de las criptomonedas y blockchain, particularmente en monedas de privacidad como Monero, para ocultar los montos de las transacciones y al mismo tiempo verificar la legitimidad de las transacciones. Además, se pueden emplear en otras aplicaciones donde se requiere privacidad numérica.

Caso de estudio

Entendamos mejor estas cuatro tecnologías diferentes de prueba de conocimiento cero (ZKP): zk-SNARK, zk-STARK, PLONK y Bulletproofs a través de una analogía con el mapa del tesoro.

Imagina que tienes un mapa del tesoro que te lleva a la ubicación exacta de un tesoro enterrado. Quieres demostrarle a alguien que sabes dónde está el tesoro sin revelar el contenido del mapa o la ubicación real del tesoro.

zk-SNARKs: Creas un complejo rompecabezas del mapa del tesoro. Seleccionas una pequeña pieza clave de este rompecabezas (una prueba) y se la muestras a la otra parte, lo suficiente para convencerla de que sabes cómo armar el rompecabezas completo, es decir, la ubicación del tesoro, sin revelar todo el rompecabezas. Sin embargo, para hacer esto, necesitará marcadores especiales de una imprenta confiable para demostrar que la pieza del rompecabezas es genuina.

zk-STARKs: muestra una parte del mapa del tesoro a la otra parte y le dice que puede usar una lupa especial (un algoritmo de verificación) para verificar aleatoriamente los detalles del mapa y verificar que efectivamente apunta al tesoro, sin necesidad de saberlo. la ubicación exacta del tesoro. Esta lupa es tan poderosa que ni siquiera las tecnologías futuras (computadoras cuánticas) podrán descifrar el secreto de su mapa del tesoro.

PLONK: Esta vez, creas una serie de acertijos, cada uno de los cuales apunta a la ubicación del tesoro. Presentas un método universal para verificar las soluciones a estos acertijos (una configuración universal) a la otra parte, suficiente para que crean que conoces todas las respuestas sin tener que resolver cada acertijo individualmente.

A prueba de balas: decides demostrar que conoces el alcance aproximado de la ubicación del tesoro sin revelar su posición exacta. Proporcionas una serie de soluciones a problemas matemáticos que demuestran el rango de ubicación del tesoro. Su método no requiere marcadores ni técnicas de impresión especiales, lo que significa que no requiere confianza inicial.

En esta analogía:

  • Los zk-SNARK requieren confianza en la fuente de la pieza del rompecabezas (una configuración confiable), pero ofrecen una prueba muy pequeña y rápida de verificar.
  • Los zk-STARK no necesitan confiar en ninguna fuente, lo que hace que las pruebas sean más sólidas y adecuadas para la seguridad a largo plazo y amenazas futuras.
  • PLONK ofrece un método de verificación eficiente de uso múltiple y configuración única, lo que significa que debe hacer el esfuerzo una vez para demostrar varias veces que conoce la ubicación del tesoro.
  • Las pruebas de balas le permiten probar información sobre el rango de ubicación del tesoro sin ningún requisito de confianza inicial, aunque la eficiencia de generar y verificar pruebas puede no coincidir con las dos primeras.

Cada método tiene sus ventajas y desventajas en las aplicaciones prácticas y la elección depende del escenario de aplicación específico y de las necesidades de seguridad.

Comparación simple de diferentes esquemas ZKP

Antes de comparar, debemos comprender los criterios para evaluar las ZKP:

  • Tamaño de la prueba: la cantidad de datos en la prueba, que afecta los costos de almacenamiento y transmisión.
  • Tiempo de verificación: el tiempo necesario para verificar una prueba.
  • Tiempo de prueba: el tiempo necesario para generar una prueba.
  • Uso de memoria: la cantidad de memoria necesaria durante los procesos de generación y verificación de pruebas.
  • Universalidad: si el sistema de prueba es aplicable a varios tipos de cálculos.
  • Configuración confiable: si se requiere una fase inicial de configuración confiable
  • Seguridad poscuántica: si resiste futuros ataques informáticos cuánticos

Ahora, comparemos zk-SNARK, zk-STARK, PLONK y Bulletproof según estos indicadores y analicemos sus ventajas y desventajas.

zk-SNARK

Ventajas

  • Tamaño de prueba: muy pequeño, lo que los hace adecuados para entornos con ancho de banda limitado
  • Tiempo de verificación: verificación rápida, adecuada para escenarios que necesitan respuestas rápidas
  • Universalidad: aplicable a varios cálculos complejos.

Contras

  • Tiempo de prueba y uso de memoria: la generación de pruebas puede consumir mucho tiempo y memoria.
  • Configuración confiable: requiere una fase inicial de configuración confiable; si se ve comprometida, la seguridad del sistema está en riesgo
  • Seguridad post-cuántica: la mayoría de las construcciones no son seguras post-cuántica

zk-STARK

Ventajas

  • Sin configuración confiable: elimina la necesidad de una configuración confiable, lo que mejora la seguridad del sistema
  • Seguridad poscuántica: resiste ataques de computadoras cuánticas
  • Tamaño de la prueba: aunque es más grande que los zk-SNARK, aún es manejable bajo ciertas condiciones

Contras

  • Tamaño de prueba: mayor que el de zk-SNARK, lo que potencialmente reduce la eficiencia de almacenamiento y transmisión
  • Tiempo de prueba: Posiblemente más lento que los zk-SNARK, especialmente en cálculos complejos

MORAPIO

Ventajas

  • Universalidad: un conjunto de parámetros se aplica a múltiples pruebas diferentes, lo que reduce el trabajo redundante
  • Tamaño de prueba: relativamente pequeño, aunque más grande que los zk-SNARK
  • Actualizabilidad: Fácil de actualizar y mantener

Contras

  • Configuración confiable: aunque es menos estricta que la de zk-SNARK, aún se requiere una configuración
  • Seguridad poscuántica: De manera similar, la mayoría de las construcciones no son seguras poscuánticas.

A prueba de balas

Ventajas

  • Sin configuración confiable: no es necesaria una configuración confiable, lo que reduce los riesgos de seguridad
  • Tamaño de la prueba: el tamaño de la prueba crece lentamente con la complejidad de la declaración.
  • Tiempo de verificación: Rápido para pruebas de rango

Contras

  • Tiempo de prueba: la generación de pruebas puede llevar más tiempo
  • Tamaño de la prueba: aunque más pequeño, aún más grande que los zk-SNARK en pruebas más grandes
  • Seguridad poscuántica: no diseñada específicamente para un entorno poscuántico

Casos de aplicación de ZKP en Web3

En Web3, hay muchos casos de aplicación de ZKP y hemos seleccionado dos casos típicos para estudiar.

Escalado de Blockchain - Ethereum Layer2

zk-Rollups es una solución de Capa 2 que agrupa cientos o miles de transacciones fuera de la cadena y genera una prueba de zk-SNARK. Esta prueba, junto con los datos de la transacción, se envía a la cadena principal de Ethereum. Permite la validación de transacciones sin que la cadena principal procese cada transacción, lo que reduce las tarifas y aumenta el rendimiento. zk-Sync Era y Starknet han adoptado la tecnología zk-rollup, y Polygon ha introducido recientemente Polygon zk-EVM utilizando zk-rollups.

Una demostración de la aplicación de zk-SNARK en la capa 2 (Fuente: Simon Brown)

Privacidad de datos: prueba de reserva de Exchange

La prueba de reserva de cambio se refiere a la verificación de los saldos mantenidos por los intercambios de criptomonedas u otras instituciones financieras, asegurando que los activos registrados coincidan con los activos reales mantenidos. Inicialmente, los intercambios utilizaban árboles Merkle y firmas de auditoría de terceros para esta verificación, pero este proceso dependía de terceros y podía filtrar datos privados de los usuarios, como los saldos de las cuentas. Los intercambios como Gate.io ahora utilizan la tecnología zk-SNARK para pruebas de reserva, cifrar datos de usuario y obtener números de activos de usuario a través de circuitos zk-SNARK, emitiendo así informes completos de prueba de reserva.

Conclusión

Las diversas soluciones de tecnología a prueba de conocimiento cero resaltan su poderoso potencial en Web3. Desde la protección de la privacidad de los datos hasta el escalamiento de blockchain, ZKP es importante para construir una infraestructura Web3 segura y eficiente. Si bien los diferentes enfoques tienen sus ventajas y limitaciones, en conjunto apuntan hacia un futuro digital más confiable y protegido de la privacidad. A medida que avance la tecnología, los desafíos de optimizar el rendimiento y la seguridad con ZKP se irán superando gradualmente, lo que indica su papel cada vez más importante en el mundo digital.

Autor: Wayne
Traductor: Piper
Revisor(es): Piccolo、Edward、Elisa、Ashley He、Joyce
* La información no pretende ser ni constituye un consejo financiero ni ninguna otra recomendación de ningún tipo ofrecida o respaldada por Gate.io.
* Este artículo no se puede reproducir, transmitir ni copiar sin hacer referencia a Gate.io. La contravención es una infracción de la Ley de derechos de autor y puede estar sujeta a acciones legales.

Una explicación detallada de las pruebas de conocimiento cero (ZKP)

IntermedioNov 28, 2023
La prueba de conocimiento cero (ZKP) es un método de cifrado que permite a una parte (conocida como probador) demostrarle a otra parte (conocida como verificador) que una afirmación es verdadera, sin revelar ninguna otra información. Las soluciones ZKP populares incluyen zk-SNARKS, zk-STARKS, PLONK y Bulletproofs. Este artículo presentará estos cuatro tipos de soluciones ZKP y analizará sus ventajas y desventajas.
Una explicación detallada de las pruebas de conocimiento cero (ZKP)

Descripción

La prueba de conocimiento cero (ZKP) es una tecnología criptográfica introducida por primera vez en un artículo titulado "La complejidad del conocimiento de los sistemas de prueba interactivos" a principios de la década de 1980 por S.Goldwasser, S.Micali y C.Rackoff. Concebido originalmente como un modelo teórico, su objetivo era abordar el desafío de verificar afirmaciones matemáticas sin revelar ninguna evidencia. Este concepto atrajo una amplia atención en el mundo académico por desafiar los límites de las técnicas de cifrado tradicionales y ofrecer un enfoque novedoso 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. A principios del siglo XXI, con el crecimiento explosivo de Internet y la comunicación digital, el potencial de ZKP comenzó a explorarse en el mundo real. Particularmente con el auge de blockchain y las criptomonedas, ZKP demostró su capacidad para mejorar la privacidad y la seguridad manteniendo al mismo tiempo la eficiencia de las transacciones y el procesamiento de datos.

Hoy en día, ZKP no sólo es un tema candente en la investigación criptográfica, sino que también se ha integrado en múltiples plataformas y aplicaciones de blockchain. Por ejemplo, la aplicación zk-SNARKs en Ethereum Layer2 ofrece transacciones anónimas sin revelar detalles de la transacción. Esta transición de la teoría a la aplicación práctica no sólo demuestra el valor práctico de ZKP sino que también impulsa la exploración de interacciones digitales más eficientes y seguras. Con continuos avances tecnológicos, ZKP desempeña un papel cada vez más crítico en la protección de la privacidad personal, garantizando la seguridad de los datos y estableciendo sistemas digitales confiables.

Definición y principio de ZKP

La prueba de conocimiento cero (ZKP) es un método de cifrado que permite a una parte (el probador) demostrar la exactitud de una declaración a otra parte (el verificador) sin revelar ninguna información adicional, es decir, sin revelar ningún conocimiento sobre el cual se pueda confirmar la exactitud de una declaración. la declaración depende. Este proceso no sólo protege la privacidad del probador sino que también garantiza que el verificador no pueda replicar el proceso de prueba ni utilizarlo para obtener información adicional.

Diagrama conceptual de pruebas de conocimiento cero (Fuente: ChainLink)

Los principios básicos de las pruebas de conocimiento cero (ZKP) se pueden definir mediante los siguientes tres atributos:

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

El principio de ZKP a menudo se entiende a través de ejemplos simples: si necesito demostrarle a la persona A que tengo el número de teléfono de la persona B, no necesito revelar directamente el número de B a A. En cambio, puedo demostrarlo llamando al número de B. . Una vez que se conecta la llamada, demuestra que efectivamente poseo el número de B, sin revelar ninguna información sobre el número en sí.

En aplicaciones prácticas, ZKP generalmente requiere construcciones matemáticas complejas como ecuaciones polinómicas, curvas elípticas u otros desafíos matemáticos. La seguridad de estas construcciones se basa en la dificultad computacional de problemas como la factorización o logaritmos discretos. Con el avance de la criptografía, han surgido diversas implementaciones de ZKP, como zk-SNARK y zk-STARK, que ofrecen una protección eficaz de la privacidad en diferentes contextos, especialmente en los campos de blockchain y criptomonedas.

La forma básica de prueba de conocimiento cero consta de tres elementos: testigo, desafío y respuesta.

Testigo: En la prueba de conocimiento cero, el demostrador quiere demostrar conocimiento de alguna información oculta. Esta información secreta actúa como “testigo” de la prueba. El probador, basándose en su conocimiento del testigo, plantea una serie de preguntas que sólo alguien con conocimiento de la información puede responder. Por lo tanto, el probador selecciona aleatoriamente una pregunta para iniciar la prueba, calcula la respuesta y luego la envía al verificador.

Desafío: el verificador elige al azar otra pregunta del conjunto y le pide al probador que la responda.

Respuesta: El probador recibe la pregunta, calcula la respuesta y la envía de vuelta al verificador. La respuesta del probador le permite al verificador verificar si efectivamente tiene acceso al testigo. Para asegurarse de que el probador no esté adivinando correctamente a ciegas por casualidad, el verificador selecciona otra pregunta para investigar. Al repetir este proceso varias veces, la probabilidad de que el probador invente la verdad se reduce en gran medida hasta que el verificador esté satisfecho.

En el ejemplo de llamada telefónica antes mencionado, "Yo" soy el testigo que no está dispuesto a revelar información, mientras que A es el verificador, y el desafío planteado es "Demostrar que 'Yo' poseo el número de B". El proceso de respuesta implica que "yo" conecte una llamada al número de B para demostrar que realmente lo tengo.

¿Por qué se necesita ZKP?

Como se analizó anteriormente, las pruebas de conocimiento cero (ZKP) ofrecen inherentemente ventajas significativas en el ámbito de la protección de la privacidad. En la era actual de sobrecarga de información, los datos personales a menudo se almacenan en plataformas de terceros, lo que aumenta el riesgo de violaciones de datos. Además, debido a las barreras técnicas y al retraso en las sanciones legales, la seguridad de la información depende en gran medida de limitaciones éticas, lo que dificulta que los usuarios controlen verdaderamente su información privada. La llegada de la tecnología ZKP proporciona una solución que protege la privacidad y mejora la eficiencia y la seguridad de la verificación.

En comparación con otras tecnologías de cifrado, ZKP tiene múltiples ventajas:

  • Protección de la privacidad: ZKP permite a individuos e instituciones demostrar la veracidad de cierta información sin revelar el contenido real de la información. Por ejemplo, se puede utilizar para demostrar que una persona cumple con los requisitos de edad sin revelar la edad real o la fecha de nacimiento.
  • Seguridad mejorada: dado que ZKP no requiere revelar información confidencial, reduce el riesgo de fuga de datos. Incluso si la interceptación ocurre durante el proceso de prueba, no se revela ningún dato sustancial.
  • Fraude reducido: en transacciones financieras, ZKP se puede utilizar para verificar la legitimidad de una transacción sin exponer detalles específicos, reduciendo así las oportunidades de fraude.
  • Eficiencia: algunos tipos de ZKP, como zk-SNARK, son muy rápidos de crear y verificar, lo que resulta beneficioso para sistemas que necesitan procesar una gran cantidad de transacciones u operaciones de verificación.
  • Interoperabilidad: ZKP proporciona un marco común para la verificación entre diferentes sistemas y dominios, lo que permite verificar y compartir la información de forma segura entre varios sistemas.
  • Escalabilidad: con la evolución de la tecnología informática, la implementación de ZKP se está volviendo más eficiente y escalable, lo que significa que puede implementarse en sistemas de mayor escala.
  • Cumplimiento: en el entorno regulatorio actual que exige protección de la privacidad del consumidor, ZKP puede ayudar a las empresas a verificar y procesar datos sin violar las leyes de privacidad.
  • Control de usuario: ZKP mejora el control de los usuarios sobre sus datos porque pueden elegir la cantidad de información que desean revelar.
  • Descentralización: en blockchain y tecnologías distribuidas, ZKP ofrece una poderosa herramienta de privacidad para la descentralización, que permite a los usuarios realizar transacciones e interactuar sin depender de las autoridades centrales.

Ya sea en la Web 2.0 tradicional o en el dominio emergente Web 3.0, las perspectivas de aplicación de ZKP son amplias.

Tipos de pruebas de conocimiento cero (ZKP)

Existen múltiples implementaciones de pruebas de conocimiento cero, como zk-SNARK, zk-STARK, PLONK y Bulletproofs. Cada tipo tiene sus ventajas y desventajas en términos de tamaño de la prueba, tiempo de prueba y tiempo de verificación. Este artículo se centra en presentar los cuatro tipos más utilizados en escenarios de aplicaciones.

zk-SNARK

Los zk-SNARK, que significan "Argumento de conocimiento no interactivo, sucinto y de conocimiento cero", son herramientas criptográficas que se utilizan para demostrar que alguien conoce una información sin revelar ninguna información en sí. En zk-SNARK, “conocimiento cero” significa que el probador puede demostrar que una afirmación es verdadera sin proporcionar ninguna información más que su exactitud. “Concisión” se refiere al pequeño tamaño de la prueba y a la velocidad del proceso de verificación. “No interactivo” significa que una vez que se genera una prueba, cualquier persona puede verificarla sin necesidad de interacción adicional entre el probador y el verificador. Los componentes principales de zk-SNARK incluyen:

  • Configuración confiable: durante la inicialización del sistema, se debe generar un par de claves (parámetros) públicas y privadas. Este proceso debe ser ejecutado por una parte de confianza, ya que la seguridad del sistema puede verse comprometida si se filtra la clave privada.
  • Generación de prueba: el probador conoce una información secreta pero no desea revelarla al verificador. Utilizan esta información secreta y los parámetros públicos para construir una prueba que demuestre suficientemente que conocen el secreto sin revelar ningún detalle al respecto.
  • Proceso de verificación: una vez que el verificador recibe la prueba, puede utilizar los parámetros públicos para verificar su exactitud. Si el probador ha elaborado una prueba correcta, el proceso de verificación dará como resultado "sí", en caso contrario, "no".

Los zk-SNARK se utilizan en diversos escenarios de preservación de la privacidad, como criptomonedas con transacciones anónimas, sistemas de votación seguros, autenticación e intercambio de datos que preservan la privacidad y tecnologías de escalabilidad de blockchain.

zk-STARK

Los zk-STARK, o “Argumentos de conocimiento transparentes escalables y de conocimiento cero”, permiten que una parte (el probador) demuestre a otra (el verificador) que conoce cierta información sin revelar la información en sí. A diferencia de los zk-SNARK, los zk-STARK no requieren un proceso de configuración confiable. Esto significa que no dependen de la confidencialidad de cierta información privada, una característica que a menudo se considera crucial para la seguridad, ya que la configuración confiable puede ser una vulnerabilidad sistémica.

Los zk-STARK funcionan basándose en conceptos de varios campos matemáticos, incluidas funciones hash, cálculos polinomiales y teoría de corrección de errores. Utilizan una construcción conocida como "argumento transparente escalable de conocimiento cero", que permite la generación de pruebas sin una configuración confiable. Las aplicaciones potenciales de zk-STARK son similares a las de zk-SNARK, pero debido a su escalabilidad y transparencia, son particularmente adecuadas para aplicaciones a gran escala, incluidas criptomonedas que preservan la privacidad, tecnologías de escalabilidad blockchain y verificación segura en computación en la nube. .

MORAPIO

PLONK, no es un acrónimo, hace referencia a los apellidos de sus creadores. Está diseñado para proporcionar una solución ZKP universal y eficiente, especialmente en aplicaciones blockchain como contratos inteligentes y transacciones protegidas por la privacidad. El núcleo de PLONK es el uso de una técnica de "ocultamiento homomórfico", que permite operaciones aritméticas con datos sin revelar los datos originales. Emplea un algoritmo especial (un esquema de compromiso polinomial) para crear pruebas, lo que permite a los probadores demostrar de manera eficiente que tienen los resultados de cálculo correctos para un conjunto de datos.

Una característica clave de PLONK es su universalidad. Una vez que se configuran los parámetros para una tarea computacional específica (a través de una configuración confiable única), se pueden reutilizar varias veces para crear nuevas pruebas, sin necesidad de nuevas configuraciones cada vez. Esto hace que PLONK sea altamente eficiente en la creación y verificación de pruebas y, a menudo, está diseñado para admitir diversas tareas computacionales en blockchain y otros sistemas distribuidos.

A prueba de balas

Bulletproofs, una solución ZKP recientemente introducida, no requiere una configuración confiable y está diseñada específicamente para construir pruebas de rango y ciertos tipos de pruebas aritméticas. Propuesto por Benedikt Bunz, Jonathan Bootle, Dan Boneh y otros en 2017, Bulletproofs opera en construcciones matemáticas complejas como el cifrado homomórfico y la criptografía de curva elíptica. Aprovechan una serie de técnicas matemáticas para permitir a los probadores crear una prueba de rango efectiva para un número sin revelar su valor exacto. Especialmente en el ámbito de las criptomonedas, esto se puede utilizar para demostrar que los valores de las transacciones se encuentran dentro de un rango legal sin exponer los montos reales de las transacciones.

Debido a su característica de prueba de rango, los Bulletproofs se usan ampliamente en los campos de las criptomonedas y blockchain, particularmente en monedas de privacidad como Monero, para ocultar los montos de las transacciones y al mismo tiempo verificar la legitimidad de las transacciones. Además, se pueden emplear en otras aplicaciones donde se requiere privacidad numérica.

Caso de estudio

Entendamos mejor estas cuatro tecnologías diferentes de prueba de conocimiento cero (ZKP): zk-SNARK, zk-STARK, PLONK y Bulletproofs a través de una analogía con el mapa del tesoro.

Imagina que tienes un mapa del tesoro que te lleva a la ubicación exacta de un tesoro enterrado. Quieres demostrarle a alguien que sabes dónde está el tesoro sin revelar el contenido del mapa o la ubicación real del tesoro.

zk-SNARKs: Creas un complejo rompecabezas del mapa del tesoro. Seleccionas una pequeña pieza clave de este rompecabezas (una prueba) y se la muestras a la otra parte, lo suficiente para convencerla de que sabes cómo armar el rompecabezas completo, es decir, la ubicación del tesoro, sin revelar todo el rompecabezas. Sin embargo, para hacer esto, necesitará marcadores especiales de una imprenta confiable para demostrar que la pieza del rompecabezas es genuina.

zk-STARKs: muestra una parte del mapa del tesoro a la otra parte y le dice que puede usar una lupa especial (un algoritmo de verificación) para verificar aleatoriamente los detalles del mapa y verificar que efectivamente apunta al tesoro, sin necesidad de saberlo. la ubicación exacta del tesoro. Esta lupa es tan poderosa que ni siquiera las tecnologías futuras (computadoras cuánticas) podrán descifrar el secreto de su mapa del tesoro.

PLONK: Esta vez, creas una serie de acertijos, cada uno de los cuales apunta a la ubicación del tesoro. Presentas un método universal para verificar las soluciones a estos acertijos (una configuración universal) a la otra parte, suficiente para que crean que conoces todas las respuestas sin tener que resolver cada acertijo individualmente.

A prueba de balas: decides demostrar que conoces el alcance aproximado de la ubicación del tesoro sin revelar su posición exacta. Proporcionas una serie de soluciones a problemas matemáticos que demuestran el rango de ubicación del tesoro. Su método no requiere marcadores ni técnicas de impresión especiales, lo que significa que no requiere confianza inicial.

En esta analogía:

  • Los zk-SNARK requieren confianza en la fuente de la pieza del rompecabezas (una configuración confiable), pero ofrecen una prueba muy pequeña y rápida de verificar.
  • Los zk-STARK no necesitan confiar en ninguna fuente, lo que hace que las pruebas sean más sólidas y adecuadas para la seguridad a largo plazo y amenazas futuras.
  • PLONK ofrece un método de verificación eficiente de uso múltiple y configuración única, lo que significa que debe hacer el esfuerzo una vez para demostrar varias veces que conoce la ubicación del tesoro.
  • Las pruebas de balas le permiten probar información sobre el rango de ubicación del tesoro sin ningún requisito de confianza inicial, aunque la eficiencia de generar y verificar pruebas puede no coincidir con las dos primeras.

Cada método tiene sus ventajas y desventajas en las aplicaciones prácticas y la elección depende del escenario de aplicación específico y de las necesidades de seguridad.

Comparación simple de diferentes esquemas ZKP

Antes de comparar, debemos comprender los criterios para evaluar las ZKP:

  • Tamaño de la prueba: la cantidad de datos en la prueba, que afecta los costos de almacenamiento y transmisión.
  • Tiempo de verificación: el tiempo necesario para verificar una prueba.
  • Tiempo de prueba: el tiempo necesario para generar una prueba.
  • Uso de memoria: la cantidad de memoria necesaria durante los procesos de generación y verificación de pruebas.
  • Universalidad: si el sistema de prueba es aplicable a varios tipos de cálculos.
  • Configuración confiable: si se requiere una fase inicial de configuración confiable
  • Seguridad poscuántica: si resiste futuros ataques informáticos cuánticos

Ahora, comparemos zk-SNARK, zk-STARK, PLONK y Bulletproof según estos indicadores y analicemos sus ventajas y desventajas.

zk-SNARK

Ventajas

  • Tamaño de prueba: muy pequeño, lo que los hace adecuados para entornos con ancho de banda limitado
  • Tiempo de verificación: verificación rápida, adecuada para escenarios que necesitan respuestas rápidas
  • Universalidad: aplicable a varios cálculos complejos.

Contras

  • Tiempo de prueba y uso de memoria: la generación de pruebas puede consumir mucho tiempo y memoria.
  • Configuración confiable: requiere una fase inicial de configuración confiable; si se ve comprometida, la seguridad del sistema está en riesgo
  • Seguridad post-cuántica: la mayoría de las construcciones no son seguras post-cuántica

zk-STARK

Ventajas

  • Sin configuración confiable: elimina la necesidad de una configuración confiable, lo que mejora la seguridad del sistema
  • Seguridad poscuántica: resiste ataques de computadoras cuánticas
  • Tamaño de la prueba: aunque es más grande que los zk-SNARK, aún es manejable bajo ciertas condiciones

Contras

  • Tamaño de prueba: mayor que el de zk-SNARK, lo que potencialmente reduce la eficiencia de almacenamiento y transmisión
  • Tiempo de prueba: Posiblemente más lento que los zk-SNARK, especialmente en cálculos complejos

MORAPIO

Ventajas

  • Universalidad: un conjunto de parámetros se aplica a múltiples pruebas diferentes, lo que reduce el trabajo redundante
  • Tamaño de prueba: relativamente pequeño, aunque más grande que los zk-SNARK
  • Actualizabilidad: Fácil de actualizar y mantener

Contras

  • Configuración confiable: aunque es menos estricta que la de zk-SNARK, aún se requiere una configuración
  • Seguridad poscuántica: De manera similar, la mayoría de las construcciones no son seguras poscuánticas.

A prueba de balas

Ventajas

  • Sin configuración confiable: no es necesaria una configuración confiable, lo que reduce los riesgos de seguridad
  • Tamaño de la prueba: el tamaño de la prueba crece lentamente con la complejidad de la declaración.
  • Tiempo de verificación: Rápido para pruebas de rango

Contras

  • Tiempo de prueba: la generación de pruebas puede llevar más tiempo
  • Tamaño de la prueba: aunque más pequeño, aún más grande que los zk-SNARK en pruebas más grandes
  • Seguridad poscuántica: no diseñada específicamente para un entorno poscuántico

Casos de aplicación de ZKP en Web3

En Web3, hay muchos casos de aplicación de ZKP y hemos seleccionado dos casos típicos para estudiar.

Escalado de Blockchain - Ethereum Layer2

zk-Rollups es una solución de Capa 2 que agrupa cientos o miles de transacciones fuera de la cadena y genera una prueba de zk-SNARK. Esta prueba, junto con los datos de la transacción, se envía a la cadena principal de Ethereum. Permite la validación de transacciones sin que la cadena principal procese cada transacción, lo que reduce las tarifas y aumenta el rendimiento. zk-Sync Era y Starknet han adoptado la tecnología zk-rollup, y Polygon ha introducido recientemente Polygon zk-EVM utilizando zk-rollups.

Una demostración de la aplicación de zk-SNARK en la capa 2 (Fuente: Simon Brown)

Privacidad de datos: prueba de reserva de Exchange

La prueba de reserva de cambio se refiere a la verificación de los saldos mantenidos por los intercambios de criptomonedas u otras instituciones financieras, asegurando que los activos registrados coincidan con los activos reales mantenidos. Inicialmente, los intercambios utilizaban árboles Merkle y firmas de auditoría de terceros para esta verificación, pero este proceso dependía de terceros y podía filtrar datos privados de los usuarios, como los saldos de las cuentas. Los intercambios como Gate.io ahora utilizan la tecnología zk-SNARK para pruebas de reserva, cifrar datos de usuario y obtener números de activos de usuario a través de circuitos zk-SNARK, emitiendo así informes completos de prueba de reserva.

Conclusión

Las diversas soluciones de tecnología a prueba de conocimiento cero resaltan su poderoso potencial en Web3. Desde la protección de la privacidad de los datos hasta el escalamiento de blockchain, ZKP es importante para construir una infraestructura Web3 segura y eficiente. Si bien los diferentes enfoques tienen sus ventajas y limitaciones, en conjunto apuntan hacia un futuro digital más confiable y protegido de la privacidad. A medida que avance la tecnología, los desafíos de optimizar el rendimiento y la seguridad con ZKP se irán superando gradualmente, lo que indica su papel cada vez más importante en el mundo digital.

Autor: Wayne
Traductor: Piper
Revisor(es): Piccolo、Edward、Elisa、Ashley He、Joyce
* La información no pretende ser ni constituye un consejo financiero ni ninguna otra recomendación de ningún tipo ofrecida o respaldada por Gate.io.
* Este artículo no se puede reproducir, transmitir ni copiar sin hacer referencia a Gate.io. La contravención es una infracción de la Ley de derechos de autor y puede estar sujeta a acciones legales.
Empieza ahora
¡Regístrate y recibe un bono de
$100
!