La tasa de crecimiento actual de los proyectos a prueba de conocimiento cero (ZKP) en la industria blockchain es asombrosa, especialmente el aumento de las aplicaciones ZKP en los dos niveles de expansión y protección de la privacidad, lo que nos ha expuesto a una variedad de proyectos a prueba de conocimiento cero. Debido a la naturaleza extremadamente matemática de ZKP, es mucho más difícil para los entusiastas del cifrado comprender ZK en profundidad. Por lo tanto, también esperamos resolver algunos cambios en la teoría y aplicación de ZKP desde el principio, y explorar el impacto y el valor en la industria de la criptografía con los lectores, aprendiendo juntos a través de varios informes, que también sirven como un resumen de los pensamientos de HashKey. Equipo de investigación de capitales. Este artículo es el primero de una serie y presenta principalmente el historial de desarrollo, las aplicaciones y algunos principios básicos de ZKP.
El moderno sistema de prueba de conocimiento cero se originó a partir del artículo publicado conjuntamente por Goldwasser, Micali y Rackoff: The Knowledge Complexity of Interactive Proof Systems (GMR85), que fue propuesto en 1985 y publicado en 1989. Este artículo explica principalmente cuánto conocimiento se debe intercambiar después de K rondas de interacciones en un sistema interactivo para demostrar que una afirmación es correcta. Si el conocimiento intercambiado puede reducirse a cero, se denomina prueba de conocimiento cero. Se supone que el probador tiene recursos ilimitados y el verificador solo tiene recursos limitados. El problema con los sistemas interactivos es que la prueba no es completamente demostrable matemáticamente, pero sí correcta en un sentido probabilístico, aunque la probabilidad es muy pequeña (1/2^n).
Por lo tanto, el sistema interactivo no es perfecto y sólo tiene una integridad aproximada. El sistema de sistema no interactivo (NP) nacido sobre esta base es completo y se convierte en la elección perfecta para el sistema de prueba de conocimiento cero.
Los primeros sistemas de prueba de conocimiento cero carecían de eficiencia y usabilidad, por lo que siempre se mantuvieron en el nivel teórico. No fue hasta los últimos 10 años que comenzaron a florecer. A medida que la criptografía se hizo prominente en el mundo de las criptomonedas, las pruebas de conocimiento cero pasaron a primer plano y se convirtieron en una dirección crucial. En particular, desarrollar un protocolo de prueba general, no interactivo y sin conocimiento con un tamaño de prueba limitado es una de las direcciones de exploración más críticas.
Básicamente, la prueba de conocimiento cero es un equilibrio entre la velocidad de la prueba, la velocidad de la verificación y el tamaño de la prueba. El protocolo ideal es una prueba rápida, una verificación rápida y un tamaño de prueba pequeño.
El avance más importante en la prueba de conocimiento cero es el artículo de Groth de 2010 Argumentos de conocimiento cero no interactivos basados en pares cortos, que también es el pionero teórico del grupo más importante de zk-SNARK en ZKP.
El avance más importante en la aplicación de la prueba de conocimiento cero es el sistema de prueba de conocimiento cero utilizado por Z-cash en 2015, que protegía la privacidad de las transacciones y los montos. Más tarde, se convirtió en una combinación de zk-SNARK y contratos inteligentes, y zk-SNARK entró en escenarios de aplicaciones más amplios.
Algunos logros académicos importantes durante este período incluyen:
Otros desarrollos, incluidos PLONK, Halo2, etc., también son avances extremadamente importantes y también han realizado algunas mejoras en zk-SNARK.
Las dos aplicaciones más extendidas de las pruebas de conocimiento cero son la protección de la privacidad y la expansión de la capacidad. En los primeros días, con el lanzamiento de transacciones de privacidad y varios proyectos conocidos como Zcash y Monero, las transacciones de privacidad alguna vez se convirtieron en una categoría muy importante. Sin embargo, debido a que la necesidad de transacciones de privacidad no era tan importante como esperaba la industria, este tipo de proyectos representativos comenzaron a desacelerarse. Ingrese lentamente a los campamentos de segundo y tercer nivel (no se retire del escenario de la historia). A nivel de aplicaciones, la necesidad de expansión ha aumentado hasta el punto en que Ethereum 2.0 (que ha pasado a llamarse capa de consenso) se ha transformado en una ruta centrada en acumulaciones en 2020. La serie ZK ha vuelto oficialmente a la atención de la industria y se ha convertido en el centro de atención.
Transacciones de privacidad: hay muchos proyectos que han implementado transacciones de privacidad, incluidos Zcash usando SNARK, Tornado, Monero usando Bulletproof y Dash. Dash no utiliza ZKP en sentido estricto, sino un sistema de mezcla de divisas simple y tosco que sólo puede ocultar la dirección pero no la cantidad. No lo mencionaré aquí.
Los pasos de la transacción zk-SNARKs aplicados por Zcash son los siguientes:
Fuente: Desmitificando el papel de zk-SNARK en Zcash
Zcash todavía tiene limitaciones en el uso de conocimiento cero, es decir, se basa en UTXO, por lo que parte de la información de la transacción solo está protegida, no realmente encubierta. Debido a que es una red separada basada en el diseño de Bitcoin, es difícil expandirla (combinarla con otras aplicaciones). La tasa de uso real de protección (es decir, transacciones privadas) es inferior al 10%, lo que demuestra que las transacciones privadas no se han expandido con éxito. (desde 2202)
El único grupo de mezcla grande utilizado por Tornado es más versátil y se basa en una red "probada y comprobada" como Ethereum. Torndao es esencialmente un grupo de mezcla de divisas que utiliza zk-SNARK, y la configuración de confianza se basa en el documento Groth 16. Las funciones disponibles con Tornado Cash incluyen:
Vitalik mencionó que, en comparación con la expansión, la privacidad es relativamente fácil de implementar. Si se pueden establecer algunos protocolos de expansión, la privacidad básicamente no será un problema.
Expansión: La expansión de ZK se puede realizar en la red de primer nivel, como Mina, o en la red de segundo nivel, es decir, zk-roll up. La idea de la acumulación de ZK puede haberse originado en la publicación de Vitalik en 2018, Escalado en cadena a potencialmente ~500 tx/seg mediante validación de tx masiva.
ZK-rollup tiene dos tipos de roles, uno es Secuenciador y el otro es Agregador. El secuenciador es responsable de empaquetar las transacciones y el agregador es responsable de fusionar una gran cantidad de transacciones, crear un paquete acumulativo y formar una prueba SNARK (también puede ser una prueba de conocimiento cero basada en otros algoritmos). Esta prueba se comparará con el estado anterior de Layer1 y luego actualizará el árbol Ethereum Merkle y calculará un nuevo árbol de estado.
Fuente: Polígono
Ventajas y desventajas del resumen ZK:
Fuente: investigación de Ethereum
Según la disponibilidad de datos y los métodos de prueba, Starkware tiene un diagrama de clasificación clásico para L2 (la capa de disponibilidad de datos de Volition se puede seleccionar dentro o fuera de la cadena):
Fuente: Starkware
Los proyectos acumulativos de ZK más competitivos actualmente en el mercado incluyen: StarkNet de Starkware, zkSync de Matterlabs y Aztec connect de Aztec, Hermez y Miden de Polygon, Loopring, Scroll, etc.
Básicamente, la ruta técnica pasa por la elección de SNARK (y sus versiones mejoradas) y STARK, así como el soporte para EVM (incluida la compatibilidad o equivalencia).
Analice brevemente los problemas de compatibilidad de EVM:
La compatibilidad entre el sistema ZK y EVM siempre ha sido un dolor de cabeza y la mayoría de los proyectos elegirán entre los dos. Aquellos que enfatizan ZK pueden construir una máquina virtual en su propio sistema y tener su propio lenguaje y compilador ZK, pero esto hará que sea más difícil de aprender para los desarrolladores y, debido a que básicamente no es de código abierto, se convertirá en una caja negra. . En términos generales, la industria tiene actualmente dos opciones. Uno es ser totalmente compatible con los códigos de operación de Solidity y el otro es diseñar una nueva máquina virtual que sea compatible con ZK y con Solidity. La industria no esperaba una integración tan rápida al principio, pero la rápida iteración de la tecnología en los últimos uno o dos años ha llevado la compatibilidad con EVM a un nuevo nivel, y los desarrolladores pueden lograr un cierto grado de migración fluida (es decir, el principal Ethereum). cadena a ZK rollup) es un desarrollo emocionante, que afectará la ecología de desarrollo y el panorama competitivo de ZK. Discutiremos este tema en detalle en informes posteriores.
Goldwasser, Micali y Rackoff propusieron que las pruebas de conocimiento cero tienen tres propiedades:
Entonces, para comprender ZKP, comenzamos con zk-SNARK, porque muchas aplicaciones blockchain actuales comienzan con SNARK. Primero, echemos un vistazo a zk-SNARK.
zk-SNARK significa: La prueba de conocimiento cero (zh-SNARK) es un argumento de conocimiento sucinto y no interactivo de conocimiento cero.
El principio de prueba del zk-SNARK de Groth16 es el siguiente:
Fuente: https://learnblockchain.cn/article/3220
Los pasos son:
En el próximo artículo, comenzaremos a estudiar los principios y aplicaciones de zk-SNARK, revisaremos el desarrollo de ZK-SNARK a través de varios casos y exploraremos su relación con zk-STARK.
La tasa de crecimiento actual de los proyectos a prueba de conocimiento cero (ZKP) en la industria blockchain es asombrosa, especialmente el aumento de las aplicaciones ZKP en los dos niveles de expansión y protección de la privacidad, lo que nos ha expuesto a una variedad de proyectos a prueba de conocimiento cero. Debido a la naturaleza extremadamente matemática de ZKP, es mucho más difícil para los entusiastas del cifrado comprender ZK en profundidad. Por lo tanto, también esperamos resolver algunos cambios en la teoría y aplicación de ZKP desde el principio, y explorar el impacto y el valor en la industria de la criptografía con los lectores, aprendiendo juntos a través de varios informes, que también sirven como un resumen de los pensamientos de HashKey. Equipo de investigación de capitales. Este artículo es el primero de una serie y presenta principalmente el historial de desarrollo, las aplicaciones y algunos principios básicos de ZKP.
El moderno sistema de prueba de conocimiento cero se originó a partir del artículo publicado conjuntamente por Goldwasser, Micali y Rackoff: The Knowledge Complexity of Interactive Proof Systems (GMR85), que fue propuesto en 1985 y publicado en 1989. Este artículo explica principalmente cuánto conocimiento se debe intercambiar después de K rondas de interacciones en un sistema interactivo para demostrar que una afirmación es correcta. Si el conocimiento intercambiado puede reducirse a cero, se denomina prueba de conocimiento cero. Se supone que el probador tiene recursos ilimitados y el verificador solo tiene recursos limitados. El problema con los sistemas interactivos es que la prueba no es completamente demostrable matemáticamente, pero sí correcta en un sentido probabilístico, aunque la probabilidad es muy pequeña (1/2^n).
Por lo tanto, el sistema interactivo no es perfecto y sólo tiene una integridad aproximada. El sistema de sistema no interactivo (NP) nacido sobre esta base es completo y se convierte en la elección perfecta para el sistema de prueba de conocimiento cero.
Los primeros sistemas de prueba de conocimiento cero carecían de eficiencia y usabilidad, por lo que siempre se mantuvieron en el nivel teórico. No fue hasta los últimos 10 años que comenzaron a florecer. A medida que la criptografía se hizo prominente en el mundo de las criptomonedas, las pruebas de conocimiento cero pasaron a primer plano y se convirtieron en una dirección crucial. En particular, desarrollar un protocolo de prueba general, no interactivo y sin conocimiento con un tamaño de prueba limitado es una de las direcciones de exploración más críticas.
Básicamente, la prueba de conocimiento cero es un equilibrio entre la velocidad de la prueba, la velocidad de la verificación y el tamaño de la prueba. El protocolo ideal es una prueba rápida, una verificación rápida y un tamaño de prueba pequeño.
El avance más importante en la prueba de conocimiento cero es el artículo de Groth de 2010 Argumentos de conocimiento cero no interactivos basados en pares cortos, que también es el pionero teórico del grupo más importante de zk-SNARK en ZKP.
El avance más importante en la aplicación de la prueba de conocimiento cero es el sistema de prueba de conocimiento cero utilizado por Z-cash en 2015, que protegía la privacidad de las transacciones y los montos. Más tarde, se convirtió en una combinación de zk-SNARK y contratos inteligentes, y zk-SNARK entró en escenarios de aplicaciones más amplios.
Algunos logros académicos importantes durante este período incluyen:
Otros desarrollos, incluidos PLONK, Halo2, etc., también son avances extremadamente importantes y también han realizado algunas mejoras en zk-SNARK.
Las dos aplicaciones más extendidas de las pruebas de conocimiento cero son la protección de la privacidad y la expansión de la capacidad. En los primeros días, con el lanzamiento de transacciones de privacidad y varios proyectos conocidos como Zcash y Monero, las transacciones de privacidad alguna vez se convirtieron en una categoría muy importante. Sin embargo, debido a que la necesidad de transacciones de privacidad no era tan importante como esperaba la industria, este tipo de proyectos representativos comenzaron a desacelerarse. Ingrese lentamente a los campamentos de segundo y tercer nivel (no se retire del escenario de la historia). A nivel de aplicaciones, la necesidad de expansión ha aumentado hasta el punto en que Ethereum 2.0 (que ha pasado a llamarse capa de consenso) se ha transformado en una ruta centrada en acumulaciones en 2020. La serie ZK ha vuelto oficialmente a la atención de la industria y se ha convertido en el centro de atención.
Transacciones de privacidad: hay muchos proyectos que han implementado transacciones de privacidad, incluidos Zcash usando SNARK, Tornado, Monero usando Bulletproof y Dash. Dash no utiliza ZKP en sentido estricto, sino un sistema de mezcla de divisas simple y tosco que sólo puede ocultar la dirección pero no la cantidad. No lo mencionaré aquí.
Los pasos de la transacción zk-SNARKs aplicados por Zcash son los siguientes:
Fuente: Desmitificando el papel de zk-SNARK en Zcash
Zcash todavía tiene limitaciones en el uso de conocimiento cero, es decir, se basa en UTXO, por lo que parte de la información de la transacción solo está protegida, no realmente encubierta. Debido a que es una red separada basada en el diseño de Bitcoin, es difícil expandirla (combinarla con otras aplicaciones). La tasa de uso real de protección (es decir, transacciones privadas) es inferior al 10%, lo que demuestra que las transacciones privadas no se han expandido con éxito. (desde 2202)
El único grupo de mezcla grande utilizado por Tornado es más versátil y se basa en una red "probada y comprobada" como Ethereum. Torndao es esencialmente un grupo de mezcla de divisas que utiliza zk-SNARK, y la configuración de confianza se basa en el documento Groth 16. Las funciones disponibles con Tornado Cash incluyen:
Vitalik mencionó que, en comparación con la expansión, la privacidad es relativamente fácil de implementar. Si se pueden establecer algunos protocolos de expansión, la privacidad básicamente no será un problema.
Expansión: La expansión de ZK se puede realizar en la red de primer nivel, como Mina, o en la red de segundo nivel, es decir, zk-roll up. La idea de la acumulación de ZK puede haberse originado en la publicación de Vitalik en 2018, Escalado en cadena a potencialmente ~500 tx/seg mediante validación de tx masiva.
ZK-rollup tiene dos tipos de roles, uno es Secuenciador y el otro es Agregador. El secuenciador es responsable de empaquetar las transacciones y el agregador es responsable de fusionar una gran cantidad de transacciones, crear un paquete acumulativo y formar una prueba SNARK (también puede ser una prueba de conocimiento cero basada en otros algoritmos). Esta prueba se comparará con el estado anterior de Layer1 y luego actualizará el árbol Ethereum Merkle y calculará un nuevo árbol de estado.
Fuente: Polígono
Ventajas y desventajas del resumen ZK:
Fuente: investigación de Ethereum
Según la disponibilidad de datos y los métodos de prueba, Starkware tiene un diagrama de clasificación clásico para L2 (la capa de disponibilidad de datos de Volition se puede seleccionar dentro o fuera de la cadena):
Fuente: Starkware
Los proyectos acumulativos de ZK más competitivos actualmente en el mercado incluyen: StarkNet de Starkware, zkSync de Matterlabs y Aztec connect de Aztec, Hermez y Miden de Polygon, Loopring, Scroll, etc.
Básicamente, la ruta técnica pasa por la elección de SNARK (y sus versiones mejoradas) y STARK, así como el soporte para EVM (incluida la compatibilidad o equivalencia).
Analice brevemente los problemas de compatibilidad de EVM:
La compatibilidad entre el sistema ZK y EVM siempre ha sido un dolor de cabeza y la mayoría de los proyectos elegirán entre los dos. Aquellos que enfatizan ZK pueden construir una máquina virtual en su propio sistema y tener su propio lenguaje y compilador ZK, pero esto hará que sea más difícil de aprender para los desarrolladores y, debido a que básicamente no es de código abierto, se convertirá en una caja negra. . En términos generales, la industria tiene actualmente dos opciones. Uno es ser totalmente compatible con los códigos de operación de Solidity y el otro es diseñar una nueva máquina virtual que sea compatible con ZK y con Solidity. La industria no esperaba una integración tan rápida al principio, pero la rápida iteración de la tecnología en los últimos uno o dos años ha llevado la compatibilidad con EVM a un nuevo nivel, y los desarrolladores pueden lograr un cierto grado de migración fluida (es decir, el principal Ethereum). cadena a ZK rollup) es un desarrollo emocionante, que afectará la ecología de desarrollo y el panorama competitivo de ZK. Discutiremos este tema en detalle en informes posteriores.
Goldwasser, Micali y Rackoff propusieron que las pruebas de conocimiento cero tienen tres propiedades:
Entonces, para comprender ZKP, comenzamos con zk-SNARK, porque muchas aplicaciones blockchain actuales comienzan con SNARK. Primero, echemos un vistazo a zk-SNARK.
zk-SNARK significa: La prueba de conocimiento cero (zh-SNARK) es un argumento de conocimiento sucinto y no interactivo de conocimiento cero.
El principio de prueba del zk-SNARK de Groth16 es el siguiente:
Fuente: https://learnblockchain.cn/article/3220
Los pasos son:
En el próximo artículo, comenzaremos a estudiar los principios y aplicaciones de zk-SNARK, revisaremos el desarrollo de ZK-SNARK a través de varios casos y exploraremos su relación con zk-STARK.