zk-SNARKs: La evolución de la teoría a la aplicación
zk-SNARKs del desarrollo
El sistema de pruebas de conocimiento cero se originó en 1985 con el artículo de Goldwasser, Micali y Rackoff titulado "Complejidad del conocimiento en sistemas de pruebas interactivas". Este artículo explora la cantidad de conocimiento que debe intercambiarse para probar la veracidad de una afirmación a través de múltiples interacciones en un sistema interactivo. Si se puede completar la prueba sin revelar ninguna información adicional, se denomina prueba de conocimiento cero.
Los sistemas de zk-SNARKs en sus primeras etapas no eran muy eficientes ni prácticos, y se mantenían principalmente en el ámbito teórico. Solo en la última década, con la amplia aplicación de la criptografía en el campo de las criptomonedas, los zk-SNARKs se han convertido gradualmente en una dirección de investigación importante. Entre ellos, desarrollar protocolos de zk-SNARKs generales, no interactivos y con un tamaño de prueba limitado es un objetivo clave.
Los avances revolucionarios en zk-SNARKs fueron establecidos por el artículo publicado por Groth en 2010, que sentó las bases teóricas de zk-SNARKs. En 2015, Zcash aplicó zk-SNARKs para proteger la privacidad de las transacciones, lo que dio inicio a la amplia aplicación de zk-SNARKs en escenarios prácticos.
A partir de entonces, algunos logros académicos importantes incluyen:
El protocolo Pinocchio de 2013 mejoró significativamente la eficiencia de prueba y verificación.
En 2016, Groth16 simplificó aún más el tamaño de la prueba y mejoró la eficiencia de verificación.
En 2017, Bulletproofs propuso un algoritmo de prueba corta sin necesidad de una configuración de confianza.
En 2018, se propusieron los zk-STARKs, un protocolo de cero conocimiento resistente a la computación cuántica.
Otros desarrollos como PLONK, Halo2, etc. también han mejorado los zk-SNARK en diferentes aspectos.
Aplicaciones principales de zk-SNARKs
Las dos aplicaciones más amplias de zk-SNARKs en la actualidad son la protección de la privacidad y la escalabilidad.
Las aplicaciones de transacciones privadas en sus inicios, como Zcash y Monero, recibieron mucha atención, pero la demanda de privacidad no resultó ser tan prominente como se esperaba, y estos proyectos han pasado gradualmente a un segundo plano. En comparación, la necesidad de escalabilidad se ha vuelto cada vez más urgente. Especialmente después de que Ethereum 2.0 cambiara a una ruta centrada en rollups, los planes de escalabilidad basados en zk-SNARKs han vuelto a ser el foco de la industria.
transacciones privadas
Los proyectos representativos de transacciones privadas incluyen:
Zcash: utiliza zk-SNARKs para lograr la privacidad de las transacciones
Monero: utiliza el algoritmo Bulletproofs
Tornado Cash: un pool de mezclas basado en Ethereum, que utiliza zk-SNARKs
El proceso de transacciones privadas de Zcash incluye pasos como la configuración del sistema, generación de claves, acuñación, generación de pruebas de transacción, verificación y recepción. Sin embargo, Zcash también presenta algunas limitaciones, como estar basado en el modelo UTXO, lo que dificulta su integración con otras aplicaciones y la tasa de uso real de transacciones privadas no es alta.
Tornado Cash utiliza un único gran fondo de mezcla de monedas, lo que proporciona una mejor versatilidad. Se basa en la implementación de zk-SNARKs de Groth16, lo que garantiza que solo las monedas depositadas puedan ser retiradas, y que cada moneda solo puede ser retirada una vez.
escalabilidad
La aplicación de zk-SNARKs en la escalabilidad se centra principalmente en zk-rollup. El papel central de zk-rollup es desempeñado por el Sequencer y el Aggregator. El Sequencer se encarga de empaquetar las transacciones, mientras que el Aggregator combina un gran número de transacciones y genera zk-SNARKs para actualizar el árbol de estado de Ethereum.
Las ventajas de zk-rollup son bajos costos, alta velocidad de transacción y protección de la privacidad. Las desventajas son que la generación de pruebas requiere un gran volumen de cálculos y que SNARK necesita una configuración confiable.
Actualmente, los principales proyectos de zk-rollup incluyen:
StarkNet: utiliza zk-STARKs, no es compatible con EVM
zkSync: utiliza PLONK, soporta EVM
Aztec: desarrolló el protocolo PLONK, priorizando la privacidad
Scroll: comprometido a lograr zk-rollup compatible con EVM
La compatibilidad con EVM es uno de los grandes desafíos que enfrenta zk-rollup. 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 tendrá un gran impacto en el desarrollo del ecosistema ZK.
Principios básicos de zk-SNARKs
zk-SNARK significa "pruebas de conocimiento no interactivo de conocimiento cero". Tiene las siguientes características:
zk-SNARKs: no revelar información adicional
Sencillo: bajo costo de verificación
No interactivo: no se requieren múltiples interacciones
Demostración: confiable en cálculo
Conocimiento: el probador debe conocer la información válida
El principio de implementación de zk-SNARKs de Groth16 incluye los siguientes pasos:
Convertir el problema en un circuito
Convertir el circuito a la forma R1CS
Convertir R1CS a la forma QAP
Generar parámetros de configuración confiables
Generación y verificación de zk-SNARKs
La tecnología de zk-SNARKs está desarrollándose rápidamente y se espera que desempeñe un papel importante en más áreas 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.
Evolución de la tecnología de zk-SNARKs: de los avances teóricos a las aplicaciones de escalabilidad
zk-SNARKs: La evolución de la teoría a la aplicación
zk-SNARKs del desarrollo
El sistema de pruebas de conocimiento cero se originó en 1985 con el artículo de Goldwasser, Micali y Rackoff titulado "Complejidad del conocimiento en sistemas de pruebas interactivas". Este artículo explora la cantidad de conocimiento que debe intercambiarse para probar la veracidad de una afirmación a través de múltiples interacciones en un sistema interactivo. Si se puede completar la prueba sin revelar ninguna información adicional, se denomina prueba de conocimiento cero.
Los sistemas de zk-SNARKs en sus primeras etapas no eran muy eficientes ni prácticos, y se mantenían principalmente en el ámbito teórico. Solo en la última década, con la amplia aplicación de la criptografía en el campo de las criptomonedas, los zk-SNARKs se han convertido gradualmente en una dirección de investigación importante. Entre ellos, desarrollar protocolos de zk-SNARKs generales, no interactivos y con un tamaño de prueba limitado es un objetivo clave.
Los avances revolucionarios en zk-SNARKs fueron establecidos por el artículo publicado por Groth en 2010, que sentó las bases teóricas de zk-SNARKs. En 2015, Zcash aplicó zk-SNARKs para proteger la privacidad de las transacciones, lo que dio inicio a la amplia aplicación de zk-SNARKs en escenarios prácticos.
A partir de entonces, algunos logros académicos importantes incluyen:
Otros desarrollos como PLONK, Halo2, etc. también han mejorado los zk-SNARK en diferentes aspectos.
Aplicaciones principales de zk-SNARKs
Las dos aplicaciones más amplias de zk-SNARKs en la actualidad son la protección de la privacidad y la escalabilidad.
Las aplicaciones de transacciones privadas en sus inicios, como Zcash y Monero, recibieron mucha atención, pero la demanda de privacidad no resultó ser tan prominente como se esperaba, y estos proyectos han pasado gradualmente a un segundo plano. En comparación, la necesidad de escalabilidad se ha vuelto cada vez más urgente. Especialmente después de que Ethereum 2.0 cambiara a una ruta centrada en rollups, los planes de escalabilidad basados en zk-SNARKs han vuelto a ser el foco de la industria.
transacciones privadas
Los proyectos representativos de transacciones privadas incluyen:
El proceso de transacciones privadas de Zcash incluye pasos como la configuración del sistema, generación de claves, acuñación, generación de pruebas de transacción, verificación y recepción. Sin embargo, Zcash también presenta algunas limitaciones, como estar basado en el modelo UTXO, lo que dificulta su integración con otras aplicaciones y la tasa de uso real de transacciones privadas no es alta.
Tornado Cash utiliza un único gran fondo de mezcla de monedas, lo que proporciona una mejor versatilidad. Se basa en la implementación de zk-SNARKs de Groth16, lo que garantiza que solo las monedas depositadas puedan ser retiradas, y que cada moneda solo puede ser retirada una vez.
escalabilidad
La aplicación de zk-SNARKs en la escalabilidad se centra principalmente en zk-rollup. El papel central de zk-rollup es desempeñado por el Sequencer y el Aggregator. El Sequencer se encarga de empaquetar las transacciones, mientras que el Aggregator combina un gran número de transacciones y genera zk-SNARKs para actualizar el árbol de estado de Ethereum.
Las ventajas de zk-rollup son bajos costos, alta velocidad de transacción y protección de la privacidad. Las desventajas son que la generación de pruebas requiere un gran volumen de cálculos y que SNARK necesita una configuración confiable.
Actualmente, los principales proyectos de zk-rollup incluyen:
La compatibilidad con EVM es uno de los grandes desafíos que enfrenta zk-rollup. 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 tendrá un gran impacto en el desarrollo del ecosistema ZK.
Principios básicos de zk-SNARKs
zk-SNARK significa "pruebas de conocimiento no interactivo de conocimiento cero". Tiene las siguientes características:
El principio de implementación de zk-SNARKs de Groth16 incluye los siguientes pasos:
La tecnología de zk-SNARKs está desarrollándose rápidamente y se espera que desempeñe un papel importante en más áreas en el futuro.