El desarrollo, aplicación y principios de zk-SNARKs
I. Historia del zk-SNARKs
El sistema de pruebas de conocimiento cero se originó en 1985 en el trabajo conjunto de Goldwasser, Micali y Rackoff. Este trabajo explora la cantidad de conocimiento que se necesita intercambiar a través de múltiples interacciones para demostrar la validez de una afirmación en sistemas interactivos. Si se puede lograr el intercambio de conocimiento cero, se denomina prueba de conocimiento cero. Los primeros sistemas de prueba de conocimiento cero presentaban deficiencias en términos de eficiencia y usabilidad, y se mantenían principalmente a nivel teórico.
En la última década, con el auge de la criptografía en el ámbito de las criptomonedas, zk-SNARKs se ha convertido gradualmente en una dirección clave de investigación. Entre ellas, desarrollar protocolos de zk-SNARKs generales, no interactivos y de tamaño de prueba limitado es una de las direcciones de exploración más importantes. El núcleo de zk-SNARKs es buscar un equilibrio entre la velocidad de prueba, la velocidad de verificación y el tamaño de la prueba.
En 2010, el artículo publicado por Groth sentó las bases teóricas para los zk-SNARKs, que son los más importantes en el campo de las pruebas de conocimiento cero (ZKP). En 2015, el sistema de pruebas de conocimiento cero utilizado por Zcash logró proteger la privacidad de las transacciones, lo que inició la amplia aplicación de ZKP.
Otros logros académicos importantes incluyen:
El protocolo Pinocchio de 2013, que comprimió el tiempo de prueba y verificación.
Groth16 de 2016, que simplificó el tamaño de la prueba y mejoró la eficiencia de verificación.
En 2017, Bulletproofs propuso pruebas de conocimiento cero no interactivas y breves.
En 2018, se propusieron zk-STARKs, un protocolo que no requiere una configuración de confianza.
Además, PLONK, Halo2 y otros también son importantes avances en el desarrollo de ZKP.
Dos, las principales aplicaciones de zk-SNARKs
Las dos aplicaciones más amplias de zk-SNARKs son la protección de la privacidad y la escalabilidad.
protección de la privacidad
Los proyectos de comercio privado tempranos como Zcash y Monero recibieron mucha atención, pero debido a que la demanda real no fue como se esperaba, actualmente han pasado gradualmente a un segundo plano.
Tomando como ejemplo a Zcash, su proceso de transacciones basado en zk-SNARKs incluye: configuración del sistema, generación de claves, acuñación, volcado, verificación y recepción, entre otros pasos. Sin embargo, Zcash también tiene limitaciones, como su modelo basado en UTXO y dificultad para escalar. En la práctica, la proporción de transacciones privadas utilizadas es inferior al 10%.
Tornado Cash utiliza un diseño de un solo gran grupo de mezcla, basado en la red de Ethereum, y utiliza zk-SNARKs para implementar la protección de la privacidad. Sus principales características incluyen: solo se pueden retirar las monedas depositadas, las monedas no pueden ser retiradas múltiples veces, el proceso de prueba está vinculado a la notificación de anulación, etc.
escalamiento
La aplicación de ZK en la escalabilidad se centra principalmente en ZK Rollup. ZK Rollup incluye dos tipos de roles: Sequencer y Aggregator. El Sequencer es responsable de empaquetar las transacciones, mientras que el Aggregator combina un gran número de transacciones para generar el rollup y crear zk-SNARKs, que se utilizan para actualizar el estado de la Capa 1.
Las ventajas de ZK Rollup incluyen: costos bajos, finalización rápida, protección de la privacidad, etc. Las desventajas incluyen: gran carga computacional, problemas de seguridad y posible cambio en el orden de las transacciones, etc.
Los principales proyectos de ZK Rollup en la actualidad son: StarkNet, zkSync, Aztec Connect, Polygon Hermez/Miden, Loopring, Scroll, entre otros. Estos proyectos eligen principalmente entre SNARK( y su versión mejorada ), así como entre el soporte para EVM.
La compatibilidad con EVM es uno de los grandes desafíos que enfrentan los sistemas ZK. Actualmente, hay principalmente dos soluciones: ser completamente compatible con los códigos de operación de Solidity, o diseñar una nueva máquina virtual amigable con ZK que sea compatible con Solidity. La mejora de la compatibilidad con EVM afectará el ecosistema de desarrollo de ZK y el panorama competitivo.
Tres, el principio básico de zk-SNARKs
ZK-SNARK representa "zk-SNARKs". Sus características principales incluyen:
zk-SNARKs: el proceso de prueba no revela información adicional
Sencillo: tamaño de verificación pequeño
No interactivo: no se requieren múltiples interacciones
Demostración: tiene fiabilidad computacional
Conocimiento: el probador debe conocer información válida
El proceso de prueba ZK-SNARKs de Groth16 incluye principalmente:
Convertir el problema en un circuito
Convertir el circuito a la forma R1CS
Conversión de R1CS a forma QAP
Establecer configuraciones de confianza, generar claves de prueba y claves de verificación
Generación y verificación de pruebas zk-SNARKs
Los principios de zk-SNARKs, sus aplicaciones y su relación con zk-STARKs se discutirán en detalle en el próximo informe.
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.
11 me gusta
Recompensa
11
5
Compartir
Comentar
0/400
BearMarketBuilder
· 07-09 21:16
Otra vez aprendiendo sobre zkp, también hay que seguir la tendencia en el trabajo de ladrillos.
Ver originalesResponder0
MerkleDreamer
· 07-06 21:45
Siento que Zcash es bastante confiable.
Ver originalesResponder0
GasOptimizer
· 07-06 21:42
gas está bajando día a día, ¿quién puede dar un plan de optimización A+?
Ver originalesResponder0
CryptoPhoenix
· 07-06 21:36
¡Lo que estoy esperando es esta ola de recuperación, la tendencia ZK es imparable! [隐藏emoji]
Ver originalesResponder0
MEVHunter
· 07-06 21:31
zk todavía es demasiado lento para la extracción real de alpha... ngmi
Profundidad de análisis de zk-SNARKs: desde la evolución hasta las aplicaciones prácticas
El desarrollo, aplicación y principios de zk-SNARKs
I. Historia del zk-SNARKs
El sistema de pruebas de conocimiento cero se originó en 1985 en el trabajo conjunto de Goldwasser, Micali y Rackoff. Este trabajo explora la cantidad de conocimiento que se necesita intercambiar a través de múltiples interacciones para demostrar la validez de una afirmación en sistemas interactivos. Si se puede lograr el intercambio de conocimiento cero, se denomina prueba de conocimiento cero. Los primeros sistemas de prueba de conocimiento cero presentaban deficiencias en términos de eficiencia y usabilidad, y se mantenían principalmente a nivel teórico.
En la última década, con el auge de la criptografía en el ámbito de las criptomonedas, zk-SNARKs se ha convertido gradualmente en una dirección clave de investigación. Entre ellas, desarrollar protocolos de zk-SNARKs generales, no interactivos y de tamaño de prueba limitado es una de las direcciones de exploración más importantes. El núcleo de zk-SNARKs es buscar un equilibrio entre la velocidad de prueba, la velocidad de verificación y el tamaño de la prueba.
En 2010, el artículo publicado por Groth sentó las bases teóricas para los zk-SNARKs, que son los más importantes en el campo de las pruebas de conocimiento cero (ZKP). En 2015, el sistema de pruebas de conocimiento cero utilizado por Zcash logró proteger la privacidad de las transacciones, lo que inició la amplia aplicación de ZKP.
Otros logros académicos importantes incluyen:
Además, PLONK, Halo2 y otros también son importantes avances en el desarrollo de ZKP.
Dos, las principales aplicaciones de zk-SNARKs
Las dos aplicaciones más amplias de zk-SNARKs son la protección de la privacidad y la escalabilidad.
protección de la privacidad
Los proyectos de comercio privado tempranos como Zcash y Monero recibieron mucha atención, pero debido a que la demanda real no fue como se esperaba, actualmente han pasado gradualmente a un segundo plano.
Tomando como ejemplo a Zcash, su proceso de transacciones basado en zk-SNARKs incluye: configuración del sistema, generación de claves, acuñación, volcado, verificación y recepción, entre otros pasos. Sin embargo, Zcash también tiene limitaciones, como su modelo basado en UTXO y dificultad para escalar. En la práctica, la proporción de transacciones privadas utilizadas es inferior al 10%.
Tornado Cash utiliza un diseño de un solo gran grupo de mezcla, basado en la red de Ethereum, y utiliza zk-SNARKs para implementar la protección de la privacidad. Sus principales características incluyen: solo se pueden retirar las monedas depositadas, las monedas no pueden ser retiradas múltiples veces, el proceso de prueba está vinculado a la notificación de anulación, etc.
escalamiento
La aplicación de ZK en la escalabilidad se centra principalmente en ZK Rollup. ZK Rollup incluye dos tipos de roles: Sequencer y Aggregator. El Sequencer es responsable de empaquetar las transacciones, mientras que el Aggregator combina un gran número de transacciones para generar el rollup y crear zk-SNARKs, que se utilizan para actualizar el estado de la Capa 1.
Las ventajas de ZK Rollup incluyen: costos bajos, finalización rápida, protección de la privacidad, etc. Las desventajas incluyen: gran carga computacional, problemas de seguridad y posible cambio en el orden de las transacciones, etc.
Los principales proyectos de ZK Rollup en la actualidad son: StarkNet, zkSync, Aztec Connect, Polygon Hermez/Miden, Loopring, Scroll, entre otros. Estos proyectos eligen principalmente entre SNARK( y su versión mejorada ), así como entre el soporte para EVM.
La compatibilidad con EVM es uno de los grandes desafíos que enfrentan los sistemas ZK. Actualmente, hay principalmente dos soluciones: ser completamente compatible con los códigos de operación de Solidity, o diseñar una nueva máquina virtual amigable con ZK que sea compatible con Solidity. La mejora de la compatibilidad con EVM afectará el ecosistema de desarrollo de ZK y el panorama competitivo.
Tres, el principio básico de zk-SNARKs
ZK-SNARK representa "zk-SNARKs". Sus características principales incluyen:
El proceso de prueba ZK-SNARKs de Groth16 incluye principalmente:
Los principios de zk-SNARKs, sus aplicaciones y su relación con zk-STARKs se discutirán en detalle en el próximo informe.