El sistema de zk-SNARKs se originó en 1985 gracias a los trabajos de Goldwasser, Micali y Rackoff. Ellos exploraron la cantidad de conocimiento que se necesita intercambiar para probar la validez de una declaración a través de múltiples interacciones en sistemas interactivos. Si es posible completar la prueba sin intercambiar ningún conocimiento, se denomina zk-SNARKs.
Los sistemas de zk-SNARKs en sus primeras etapas presentaban deficiencias en términos de eficiencia y practicidad, permaneciendo principalmente en el nivel teórico. En la última década, con el surgimiento de la criptografía en el ámbito de las criptomonedas, los zk-SNARKs han comenzado a desarrollarse rápidamente, convirtiéndose en una dirección de investigación importante. Entre ellos, el desarrollo de protocolos de zk-SNARKs generales, no interactivos y de tamaño de prueba limitado es una de las direcciones clave de exploración.
Un importante avance en las pruebas de conocimiento cero fue la propuesta de Groth en 2010 de las pruebas de conocimiento cero no interactivas cortas basadas en pares. Esto sentó las bases teóricas para zk-SNARKs. En 2015, Zcash adoptó un sistema de pruebas de conocimiento cero para implementar la protección de la privacidad de las transacciones, marcando el comienzo de la aplicación generalizada de las pruebas de conocimiento cero.
Otros logros académicos importantes incluyen:
Pinocchio de 2013: comprimiendo el tiempo de prueba y verificación a un rango utilizable
Groth16 de 2016: redujo el tamaño de la prueba, mejoró la eficiencia de verificación
Bulletproofs de 2017: se propuso una prueba corta sin necesidad de configuración de confianza
zk-STARKs de 2018: se propuso un nuevo protocolo que no requiere un ajuste de confianza.
Además, PLONK, Halo2, entre otros, son también avances importantes que han mejorado los zk-SNARKs.
zk-SNARKs en la aplicación
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 transacciones privadas tempranas como Zcash y Monero, tras su lanzamiento, se convirtieron en una dirección importante. Sin embargo, debido a que la necesidad de transacciones privadas no cumplió con las expectativas, estos proyectos gradualmente pasaron a un segundo y tercer plano.
Zcash utiliza la tecnología zk-SNARKs, cuyos pasos de transacción incluyen: configuración del sistema, generación de claves públicas y privadas, acuñación, generación de pruebas, verificación y recepción. Sin embargo, Zcash se basa en el modelo UTXO, solo oculta parte de la información de la transacción, en lugar de ocultarla por completo. La tasa de uso de transacciones privadas es inferior al 10%.
Tornado Cash utiliza un diseño de un solo gran grupo de mezcla de monedas, basado en la red de Ethereum, utilizando tecnología zk-SNARKs. Garantiza que solo se pueden retirar las monedas depositadas, cada moneda solo se puede retirar una vez, y el proceso de prueba está vinculado a la notificación de anulación.
escalabilidad
La escalabilidad de ZK se puede implementar en una red de capa uno ( como Mina ) o en una red de capa dos ( es decir, zk-rollup ). El zk-rollup incluye dos tipos de roles: Sequencer y Aggregator. El Sequencer es responsable de empaquetar las transacciones, el Aggregator combina un gran número de transacciones y genera zk-SNARKs, actualizando el árbol de estado de Ethereum.
Las ventajas de zk-rollup son costos bajos y rapidez en alcanzar la finalización, mientras que las desventajas son la gran cantidad de cálculos y posibles problemas de seguridad.
Los principales proyectos de zk-rollup en la actualidad incluyen: StarkNet, zkSync, Aztec Connect, Polygon Hermez/Miden, Loopring, Scroll, entre otros. Existen diferencias en la elección de SNARK/STARK y la compatibilidad con EVM.
La compatibilidad con EVM ha sido un problema constante. Algunos proyectos eligen desarrollar su propia máquina virtual y lenguaje, pero esto aumenta el costo de aprendizaje para los desarrolladores. Actualmente, hay principalmente dos soluciones en la industria: ser completamente compatible con los códigos de operación de Solidity, o diseñar una nueva máquina virtual amigable con ZK y compatible con Solidity. Recientemente, se han logrado avances importantes en la compatibilidad con EVM, lo que promete una migración sin problemas para los desarrolladores.
Principio de implementación de zk-SNARKs
ZK-SNARK(Argumento de Conocimiento Succinto No Interactivo de Zero Conocimiento) es un sistema de zk-SNARKs que tiene las siguientes características:
zk-SNARKs: el proceso de prueba no revela información adicional
Sencillo: verificación de volumen pequeño
No interactivo: no se requieren múltiples interacciones
Fiabilidad: los probadores con capacidades computacionales limitadas no pueden falsificar pruebas
Conocimiento: el demostrador debe conocer información válida para construir la prueba
El proceso de prueba ZK-SNARK de Groth16 incluye:
Convertir el problema en un circuito
Convertir el circuito a la forma R1CS
Conversión de R1CS a forma QAP
Establecer una configuración confiable, generar la clave de prueba y la clave de verificación
Generar y verificar pruebas zk-SNARKs
La tecnología de zk-SNARKs sigue desarrollándose rápidamente y se espera que desempeñe un papel aún más importante en la protección de la privacidad y la escalabilidad en el futuro.
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.
Análisis completo del desarrollo y aplicación de la tecnología zk-SNARKs: desde la protección de la privacidad hasta la escalabilidad de Layer2
El desarrollo y la aplicación de zk-SNARKs
zk-SNARKs de la historia
El sistema de zk-SNARKs se originó en 1985 gracias a los trabajos de Goldwasser, Micali y Rackoff. Ellos exploraron la cantidad de conocimiento que se necesita intercambiar para probar la validez de una declaración a través de múltiples interacciones en sistemas interactivos. Si es posible completar la prueba sin intercambiar ningún conocimiento, se denomina zk-SNARKs.
Los sistemas de zk-SNARKs en sus primeras etapas presentaban deficiencias en términos de eficiencia y practicidad, permaneciendo principalmente en el nivel teórico. En la última década, con el surgimiento de la criptografía en el ámbito de las criptomonedas, los zk-SNARKs han comenzado a desarrollarse rápidamente, convirtiéndose en una dirección de investigación importante. Entre ellos, el desarrollo de protocolos de zk-SNARKs generales, no interactivos y de tamaño de prueba limitado es una de las direcciones clave de exploración.
Un importante avance en las pruebas de conocimiento cero fue la propuesta de Groth en 2010 de las pruebas de conocimiento cero no interactivas cortas basadas en pares. Esto sentó las bases teóricas para zk-SNARKs. En 2015, Zcash adoptó un sistema de pruebas de conocimiento cero para implementar la protección de la privacidad de las transacciones, marcando el comienzo de la aplicación generalizada de las pruebas de conocimiento cero.
Otros logros académicos importantes incluyen:
Además, PLONK, Halo2, entre otros, son también avances importantes que han mejorado los zk-SNARKs.
zk-SNARKs en la aplicación
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 transacciones privadas tempranas como Zcash y Monero, tras su lanzamiento, se convirtieron en una dirección importante. Sin embargo, debido a que la necesidad de transacciones privadas no cumplió con las expectativas, estos proyectos gradualmente pasaron a un segundo y tercer plano.
Zcash utiliza la tecnología zk-SNARKs, cuyos pasos de transacción incluyen: configuración del sistema, generación de claves públicas y privadas, acuñación, generación de pruebas, verificación y recepción. Sin embargo, Zcash se basa en el modelo UTXO, solo oculta parte de la información de la transacción, en lugar de ocultarla por completo. La tasa de uso de transacciones privadas es inferior al 10%.
Tornado Cash utiliza un diseño de un solo gran grupo de mezcla de monedas, basado en la red de Ethereum, utilizando tecnología zk-SNARKs. Garantiza que solo se pueden retirar las monedas depositadas, cada moneda solo se puede retirar una vez, y el proceso de prueba está vinculado a la notificación de anulación.
escalabilidad
La escalabilidad de ZK se puede implementar en una red de capa uno ( como Mina ) o en una red de capa dos ( es decir, zk-rollup ). El zk-rollup incluye dos tipos de roles: Sequencer y Aggregator. El Sequencer es responsable de empaquetar las transacciones, el Aggregator combina un gran número de transacciones y genera zk-SNARKs, actualizando el árbol de estado de Ethereum.
Las ventajas de zk-rollup son costos bajos y rapidez en alcanzar la finalización, mientras que las desventajas son la gran cantidad de cálculos y posibles problemas de seguridad.
Los principales proyectos de zk-rollup en la actualidad incluyen: StarkNet, zkSync, Aztec Connect, Polygon Hermez/Miden, Loopring, Scroll, entre otros. Existen diferencias en la elección de SNARK/STARK y la compatibilidad con EVM.
La compatibilidad con EVM ha sido un problema constante. Algunos proyectos eligen desarrollar su propia máquina virtual y lenguaje, pero esto aumenta el costo de aprendizaje para los desarrolladores. Actualmente, hay principalmente dos soluciones en la industria: ser completamente compatible con los códigos de operación de Solidity, o diseñar una nueva máquina virtual amigable con ZK y compatible con Solidity. Recientemente, se han logrado avances importantes en la compatibilidad con EVM, lo que promete una migración sin problemas para los desarrolladores.
Principio de implementación de zk-SNARKs
ZK-SNARK(Argumento de Conocimiento Succinto No Interactivo de Zero Conocimiento) es un sistema de zk-SNARKs que tiene las siguientes características:
El proceso de prueba ZK-SNARK de Groth16 incluye:
La tecnología de zk-SNARKs sigue desarrollándose rápidamente y se espera que desempeñe un papel aún más importante en la protección de la privacidad y la escalabilidad en el futuro.