zk-SNARKs: principios básicos y aplicaciones en la industria
I. Desarrollo de zk-SNARKs
El sistema moderno de zk-SNARKs se originó en el artículo pionero de 1985 de Goldwasser, Micali y Rackoff. Este artículo investiga la cantidad de conocimiento que se necesita intercambiar para probar la validez de una afirmación a través de múltiples interacciones en un sistema interactivo. Si se puede completar la prueba sin intercambiar ningún conocimiento, se llama zk-SNARK. Aunque este sistema interactivo es correcto en un sentido probabilístico, no es perfecto.
La aparición de sistemas no interactivos ( NP ) ha hecho que zk-SNARKs sean más completos. Sin embargo, los sistemas de zk-SNARKs tempranos tenían deficiencias en términos de eficiencia y practicidad, permaneciendo solo a nivel teórico. Hasta hace aproximadamente diez años, con el auge de la criptografía en el ámbito de las criptomonedas, los zk-SNARKs realmente comenzaron a aplicarse.
Un objetivo clave de zk-SNARKs es desarrollar protocolos generales, no interactivos y de tamaño de prueba limitado. Esto requiere un equilibrio entre la velocidad de prueba, la velocidad de verificación y el tamaño de la prueba.
El artículo de Groth de 2010 es uno de los avances más importantes en zk-SNARKs, sentando las bases teóricas para ello. En 2015, Zcash aplicó zk-SNARKs a la protección de la privacidad de las transacciones, inaugurando una nueva era de combinación entre zk-SNARKs y contratos inteligentes.
Otros logros académicos importantes incluyen: el protocolo Pinocchio de 2013, el algoritmo Groth16 de 2016, el algoritmo Bulletproofs de 2017, el protocolo zk-STARKs de 2018, entre otros. Estas investigaciones han impulsado el continuo progreso de zk-SNARKs en términos de eficiencia y ámbito de aplicación.
2. Principales aplicaciones de zk-SNARKs
Las dos áreas de aplicación más amplias de zk-SNARKs en la actualidad son la protección de la privacidad y la escalabilidad.
En términos de protección de la privacidad, los primeros proyectos representativos incluyen Zcash y Monero. Aunque la necesidad de transacciones privadas no ha sido tan destacada como se esperaba, este tipo de proyectos continúa desarrollándose.
En cuanto a la escalabilidad, con el cambio de Ethereum hacia una ruta de escalabilidad centrada en rollups, las soluciones de escalabilidad basadas en zk-SNARKs han vuelto a ser el centro de atención. Principalmente hay dos formas de implementación: escalabilidad de red de primera capa ( como Mina ) y escalabilidad de red de segunda capa ( es decir, zk-rollup ).
Los roles clave del zk-rollup incluyen al Sequencer y al Aggregator. El Sequencer es responsable de empaquetar las transacciones, mientras que el Aggregator combina una gran cantidad de transacciones y genera zk-SNARKs para actualizar el estado de la cadena principal.
Las ventajas de zk-rollup radican en bajos costos, rápida finalización y protección de la privacidad. Sin embargo, también existen desafíos como una gran carga computacional y la necesidad de una configuración confiable.
Los principales proyectos de zk-rollup en el mercado actualmente incluyen StarkNet, zkSync, Aztec Connect, Polygon Hermez/Miden, Loopring, Scroll, entre otros. Estos proyectos eligen principalmente entre SNARK( y sus versiones mejoradas ) y STARK, así como el nivel de soporte para EVM.
La compatibilidad con EVM es un problema importante. Algunos proyectos eligen ser completamente compatibles con los códigos de operación de Solidity, mientras que otros diseñan nuevas máquinas virtuales para equilibrar la amigabilidad con zk y la compatibilidad con Solidity. Los rápidos avances en la compatibilidad con EVM en los últimos años ofrecen la posibilidad de una migración sin problemas de los desarrolladores desde la cadena principal de Ethereum hacia zk-rollup.
Tres, el principio básico de zk-SNARKs
zk-SNARKs es la abreviatura de zero-knowledge Succinct Non-interactive ARguments of Knowledge, y tiene las siguientes características:
Zero Knowledge: el proceso de prueba no revela información adicional
Succinto: volumen de prueba pequeño
No interactivo:非交互式
Arguments: confiabilidad de cálculo
de Conocimiento: el probador necesita 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
Convertir 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 está avanzando 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.
9 me gusta
Recompensa
9
5
Compartir
Comentar
0/400
FlashLoanKing
· 07-15 17:11
tomar a la gente por tonta una vez y luego Rug Pull
Ver originalesResponder0
CantAffordPancake
· 07-14 18:02
Eh, eso no es más que una encriptación para hacer trampa.
Ver originalesResponder0
GateUser-26d7f434
· 07-14 18:01
zk es el futuro, ¡hagámoslo!
Ver originalesResponder0
ExpectationFarmer
· 07-14 17:41
El mundo de la Descentralización no tiene secretos
zk-SNARKs: de un avance teórico a una tecnología revolucionaria en la aplicación de Activos Cripto
zk-SNARKs: principios básicos y aplicaciones en la industria
I. Desarrollo de zk-SNARKs
El sistema moderno de zk-SNARKs se originó en el artículo pionero de 1985 de Goldwasser, Micali y Rackoff. Este artículo investiga la cantidad de conocimiento que se necesita intercambiar para probar la validez de una afirmación a través de múltiples interacciones en un sistema interactivo. Si se puede completar la prueba sin intercambiar ningún conocimiento, se llama zk-SNARK. Aunque este sistema interactivo es correcto en un sentido probabilístico, no es perfecto.
La aparición de sistemas no interactivos ( NP ) ha hecho que zk-SNARKs sean más completos. Sin embargo, los sistemas de zk-SNARKs tempranos tenían deficiencias en términos de eficiencia y practicidad, permaneciendo solo a nivel teórico. Hasta hace aproximadamente diez años, con el auge de la criptografía en el ámbito de las criptomonedas, los zk-SNARKs realmente comenzaron a aplicarse.
Un objetivo clave de zk-SNARKs es desarrollar protocolos generales, no interactivos y de tamaño de prueba limitado. Esto requiere un equilibrio entre la velocidad de prueba, la velocidad de verificación y el tamaño de la prueba.
El artículo de Groth de 2010 es uno de los avances más importantes en zk-SNARKs, sentando las bases teóricas para ello. En 2015, Zcash aplicó zk-SNARKs a la protección de la privacidad de las transacciones, inaugurando una nueva era de combinación entre zk-SNARKs y contratos inteligentes.
Otros logros académicos importantes incluyen: el protocolo Pinocchio de 2013, el algoritmo Groth16 de 2016, el algoritmo Bulletproofs de 2017, el protocolo zk-STARKs de 2018, entre otros. Estas investigaciones han impulsado el continuo progreso de zk-SNARKs en términos de eficiencia y ámbito de aplicación.
2. Principales aplicaciones de zk-SNARKs
Las dos áreas de aplicación más amplias de zk-SNARKs en la actualidad son la protección de la privacidad y la escalabilidad.
En términos de protección de la privacidad, los primeros proyectos representativos incluyen Zcash y Monero. Aunque la necesidad de transacciones privadas no ha sido tan destacada como se esperaba, este tipo de proyectos continúa desarrollándose.
En cuanto a la escalabilidad, con el cambio de Ethereum hacia una ruta de escalabilidad centrada en rollups, las soluciones de escalabilidad basadas en zk-SNARKs han vuelto a ser el centro de atención. Principalmente hay dos formas de implementación: escalabilidad de red de primera capa ( como Mina ) y escalabilidad de red de segunda capa ( es decir, zk-rollup ).
Los roles clave del zk-rollup incluyen al Sequencer y al Aggregator. El Sequencer es responsable de empaquetar las transacciones, mientras que el Aggregator combina una gran cantidad de transacciones y genera zk-SNARKs para actualizar el estado de la cadena principal.
Las ventajas de zk-rollup radican en bajos costos, rápida finalización y protección de la privacidad. Sin embargo, también existen desafíos como una gran carga computacional y la necesidad de una configuración confiable.
Los principales proyectos de zk-rollup en el mercado actualmente incluyen StarkNet, zkSync, Aztec Connect, Polygon Hermez/Miden, Loopring, Scroll, entre otros. Estos proyectos eligen principalmente entre SNARK( y sus versiones mejoradas ) y STARK, así como el nivel de soporte para EVM.
La compatibilidad con EVM es un problema importante. Algunos proyectos eligen ser completamente compatibles con los códigos de operación de Solidity, mientras que otros diseñan nuevas máquinas virtuales para equilibrar la amigabilidad con zk y la compatibilidad con Solidity. Los rápidos avances en la compatibilidad con EVM en los últimos años ofrecen la posibilidad de una migración sin problemas de los desarrolladores desde la cadena principal de Ethereum hacia zk-rollup.
Tres, el principio básico de zk-SNARKs
zk-SNARKs es la abreviatura de zero-knowledge Succinct Non-interactive ARguments of Knowledge, y tiene las siguientes características:
El proceso de prueba zk-SNARKs de Groth16 incluye principalmente:
La tecnología de zk-SNARKs está avanzando rápidamente y se espera que desempeñe un papel importante en más áreas en el futuro.