Consideraciones de seguridad en la combinación de zk-SNARKs y Cadena de bloques
zk-SNARKs(ZKP) como una tecnología criptográfica avanzada, se está integrando profundamente con la Cadena de bloques. A medida que más y más protocolos Layer 2 y cadenas públicas especiales adoptan ZKP, su complejidad también ha traído nuevos desafíos de seguridad. Este artículo abordará desde la perspectiva de la seguridad, los posibles fallos de ZKP en las aplicaciones de la Cadena de bloques, proporcionando referencias para la protección de seguridad de los proyectos relacionados.
Características clave de ZKP
Antes de analizar la seguridad del sistema ZKP, necesitamos entender sus tres características fundamentales:
Completitud: para las afirmaciones verdaderas, el demostrador siempre puede demostrar con éxito su corrección al verificador.
Confiabilidad: los probadores maliciosos no pueden engañar a los verificadores con declaraciones incorrectas.
zk-SNARKs: Durante el proceso de verificación, el verificador no obtendrá ninguna información sobre los datos originales.
Estas tres características son la base para garantizar la seguridad y efectividad del sistema ZKP. Si alguna de estas características se ve comprometida, podría llevar al colapso de la seguridad del sistema. Por ejemplo, la falta de completitud podría causar un ataque de denegación de servicio; la falta de fiabilidad podría ser explotada por un atacante para crear pruebas falsas; y la pérdida de la propiedad de conocimiento cero podría revelar información sensible. Por lo tanto, en la evaluación de seguridad, se debe prestar especial atención a la implementación de estas características.
Puntos de seguridad en proyectos de cadena de bloques ZKP
Para los proyectos de cadena de bloques basados en ZKP, es necesario prestar especial atención a los siguientes aspectos de seguridad:
1. zk-SNARKs circuito
El circuito ZKP es el núcleo de todo el sistema, y su seguridad afecta directamente la fiabilidad del proyecto. Los principales puntos de atención incluyen:
Error en el diseño del circuito: puede llevar a que el proceso de prueba no cumpla con las propiedades de seguridad. Por ejemplo, Zcash descubrió un error en el diseño del circuito en la actualización Sapling de 2018 que podría permitir la falsificación ilimitada de tokens.
Error en la implementación de primitivas criptográficas: Si las primitivas criptográficas subyacentes tienen defectos, podría llevar al colapso de todo el sistema. Este tipo de problemas no son raros, como el puente entre cadenas de BNB Chain que sufrió enormes pérdidas debido a un error en la implementación de la verificación de árboles de Merkle.
Falta de aleatoriedad: los sistemas ZKP dependen de números aleatorios de alta calidad, y los problemas en la generación de números aleatorios pueden comprometer la seguridad de la prueba. Por ejemplo, Dfinity descubrió una vulnerabilidad en la generación de números aleatorios que podría destruir las características de zk-SNARKs.
2. Seguridad de contratos inteligentes
Para los proyectos de monedas privadas basados en Layer 2 o contratos inteligentes, la seguridad del contrato es crucial. Además de las vulnerabilidades comunes como la reentrada y el desbordamiento, también se deben prestar especial atención a los problemas de verificación de mensajes entre cadenas y verificación de pruebas, ya que estos pueden afectar directamente la fiabilidad del sistema. Por ejemplo, la vulnerabilidad del contrato Verify de Circom permitió a los atacantes realizar un doble gasto a través de un seudónimo.
3. Disponibilidad de datos
Asegurar el acceso seguro y la validación efectiva de los datos fuera de la cadena es clave para los proyectos de Capa 2. En 2019, la cadena Plasma experimentó interrupciones en las transacciones y retiros debido a que los validadores no podían acceder a los datos fuera de la cadena. Además de adoptar pruebas de disponibilidad de datos, también se debe fortalecer la protección del host y la monitorización del estado de los datos.
4. Mecanismo de incentivos económicos
Un mecanismo de incentivos razonable es crucial para mantener la seguridad y estabilidad del sistema. Es necesario evaluar si el diseño del modelo de incentivos, la distribución de recompensas y el mecanismo de castigo pueden incentivar efectivamente a todas las partes involucradas.
5. Protección de la privacidad
Para los proyectos que involucran la protección de la privacidad, es necesario revisar la implementación de su esquema de privacidad. Asegúrese de que los datos del usuario estén completamente protegidos a lo largo de todo el proceso, al mismo tiempo que se garantiza la disponibilidad y fiabilidad del sistema. Se puede evaluar el riesgo de fuga de privacidad analizando el proceso de comunicación del protocolo.
6. Optimización del rendimiento
Evaluar las estrategias de optimización del rendimiento del proyecto, incluyendo la velocidad de procesamiento de transacciones y la eficiencia del proceso de validación, entre otros. Revisar las medidas de optimización en la implementación del código para asegurar que cumplan con los requisitos de rendimiento.
7. Mecanismos de tolerancia a fallos y recuperación
Estrategias de respuesta ante situaciones imprevistas como fallos de red, ataques maliciosos, etc. Asegúrese de que el sistema tenga la capacidad de recuperación automática y de mantener un funcionamiento normal.
8. Calidad del código
Auditar la calidad del código del proyecto de manera integral, prestando atención a la legibilidad, mantenibilidad y robustez. Evaluar si existen prácticas de programación no estándar, código redundante o errores potenciales.
Servicios de seguridad y soluciones de protección
Para proteger completamente la seguridad del proyecto ZKP, se pueden tomar las siguientes medidas:
Auditoría de código integral: incluye la auditoría de todos los aspectos como contratos inteligentes, lógica de codificación de circuitos, condiciones de restricción y generación de testigos.
Pruebas automatizadas: realizar pruebas Fuzz y pruebas de seguridad para el código de Sequencer/Prover y los contratos de verificación.
Monitoreo en tiempo real: implementar un sistema de monitoreo de seguridad en la cadena de bloques, logrando una percepción, alarma y seguimiento de riesgos en tiempo real.
Protección de host: utilizar productos de seguridad de host con capacidades CWPP y ASA para garantizar un funcionamiento seguro y confiable del servidor.
Simulación de ataque: mediante el ensamblaje manual de testigos de lógica personalizada, simular varios escenarios de ataque para realizar pruebas.
En resumen, la protección de seguridad de los proyectos de ZKP necesita abordar sus escenarios de aplicación específicos, considerando de manera integral todos los aspectos, desde la criptografía de base hasta las aplicaciones de nivel superior. Solo asegurando la completitud, confiabilidad y propiedad de cero conocimiento de ZKP, se puede construir un sistema verdaderamente seguro y confiable.
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.
22 me gusta
Recompensa
22
5
Compartir
Comentar
0/400
fork_in_the_road
· 07-20 04:34
Vale la pena estudiar en profundidad
Ver originalesResponder0
WinterWarmthCat
· 07-17 12:05
La seguridad debe ser sólida para ser confiable
Ver originalesResponder0
BottomMisser
· 07-17 05:25
La seguridad es la verdadera productividad.
Ver originalesResponder0
DegenRecoveryGroup
· 07-17 05:23
La seguridad es lo primero, las regulaciones son lo más importante
Ver originalesResponder0
NFTFreezer
· 07-17 05:10
Vale la pena la profundidad de estudiar este artículo
8 grandes riesgos de seguridad y estrategias de protección en proyectos de cadena de bloques zk-SNARKs
Consideraciones de seguridad en la combinación de zk-SNARKs y Cadena de bloques
zk-SNARKs(ZKP) como una tecnología criptográfica avanzada, se está integrando profundamente con la Cadena de bloques. A medida que más y más protocolos Layer 2 y cadenas públicas especiales adoptan ZKP, su complejidad también ha traído nuevos desafíos de seguridad. Este artículo abordará desde la perspectiva de la seguridad, los posibles fallos de ZKP en las aplicaciones de la Cadena de bloques, proporcionando referencias para la protección de seguridad de los proyectos relacionados.
Características clave de ZKP
Antes de analizar la seguridad del sistema ZKP, necesitamos entender sus tres características fundamentales:
Completitud: para las afirmaciones verdaderas, el demostrador siempre puede demostrar con éxito su corrección al verificador.
Confiabilidad: los probadores maliciosos no pueden engañar a los verificadores con declaraciones incorrectas.
zk-SNARKs: Durante el proceso de verificación, el verificador no obtendrá ninguna información sobre los datos originales.
Estas tres características son la base para garantizar la seguridad y efectividad del sistema ZKP. Si alguna de estas características se ve comprometida, podría llevar al colapso de la seguridad del sistema. Por ejemplo, la falta de completitud podría causar un ataque de denegación de servicio; la falta de fiabilidad podría ser explotada por un atacante para crear pruebas falsas; y la pérdida de la propiedad de conocimiento cero podría revelar información sensible. Por lo tanto, en la evaluación de seguridad, se debe prestar especial atención a la implementación de estas características.
Puntos de seguridad en proyectos de cadena de bloques ZKP
Para los proyectos de cadena de bloques basados en ZKP, es necesario prestar especial atención a los siguientes aspectos de seguridad:
1. zk-SNARKs circuito
El circuito ZKP es el núcleo de todo el sistema, y su seguridad afecta directamente la fiabilidad del proyecto. Los principales puntos de atención incluyen:
Error en el diseño del circuito: puede llevar a que el proceso de prueba no cumpla con las propiedades de seguridad. Por ejemplo, Zcash descubrió un error en el diseño del circuito en la actualización Sapling de 2018 que podría permitir la falsificación ilimitada de tokens.
Error en la implementación de primitivas criptográficas: Si las primitivas criptográficas subyacentes tienen defectos, podría llevar al colapso de todo el sistema. Este tipo de problemas no son raros, como el puente entre cadenas de BNB Chain que sufrió enormes pérdidas debido a un error en la implementación de la verificación de árboles de Merkle.
Falta de aleatoriedad: los sistemas ZKP dependen de números aleatorios de alta calidad, y los problemas en la generación de números aleatorios pueden comprometer la seguridad de la prueba. Por ejemplo, Dfinity descubrió una vulnerabilidad en la generación de números aleatorios que podría destruir las características de zk-SNARKs.
2. Seguridad de contratos inteligentes
Para los proyectos de monedas privadas basados en Layer 2 o contratos inteligentes, la seguridad del contrato es crucial. Además de las vulnerabilidades comunes como la reentrada y el desbordamiento, también se deben prestar especial atención a los problemas de verificación de mensajes entre cadenas y verificación de pruebas, ya que estos pueden afectar directamente la fiabilidad del sistema. Por ejemplo, la vulnerabilidad del contrato Verify de Circom permitió a los atacantes realizar un doble gasto a través de un seudónimo.
3. Disponibilidad de datos
Asegurar el acceso seguro y la validación efectiva de los datos fuera de la cadena es clave para los proyectos de Capa 2. En 2019, la cadena Plasma experimentó interrupciones en las transacciones y retiros debido a que los validadores no podían acceder a los datos fuera de la cadena. Además de adoptar pruebas de disponibilidad de datos, también se debe fortalecer la protección del host y la monitorización del estado de los datos.
4. Mecanismo de incentivos económicos
Un mecanismo de incentivos razonable es crucial para mantener la seguridad y estabilidad del sistema. Es necesario evaluar si el diseño del modelo de incentivos, la distribución de recompensas y el mecanismo de castigo pueden incentivar efectivamente a todas las partes involucradas.
5. Protección de la privacidad
Para los proyectos que involucran la protección de la privacidad, es necesario revisar la implementación de su esquema de privacidad. Asegúrese de que los datos del usuario estén completamente protegidos a lo largo de todo el proceso, al mismo tiempo que se garantiza la disponibilidad y fiabilidad del sistema. Se puede evaluar el riesgo de fuga de privacidad analizando el proceso de comunicación del protocolo.
6. Optimización del rendimiento
Evaluar las estrategias de optimización del rendimiento del proyecto, incluyendo la velocidad de procesamiento de transacciones y la eficiencia del proceso de validación, entre otros. Revisar las medidas de optimización en la implementación del código para asegurar que cumplan con los requisitos de rendimiento.
7. Mecanismos de tolerancia a fallos y recuperación
Estrategias de respuesta ante situaciones imprevistas como fallos de red, ataques maliciosos, etc. Asegúrese de que el sistema tenga la capacidad de recuperación automática y de mantener un funcionamiento normal.
8. Calidad del código
Auditar la calidad del código del proyecto de manera integral, prestando atención a la legibilidad, mantenibilidad y robustez. Evaluar si existen prácticas de programación no estándar, código redundante o errores potenciales.
Servicios de seguridad y soluciones de protección
Para proteger completamente la seguridad del proyecto ZKP, se pueden tomar las siguientes medidas:
Auditoría de código integral: incluye la auditoría de todos los aspectos como contratos inteligentes, lógica de codificación de circuitos, condiciones de restricción y generación de testigos.
Pruebas automatizadas: realizar pruebas Fuzz y pruebas de seguridad para el código de Sequencer/Prover y los contratos de verificación.
Monitoreo en tiempo real: implementar un sistema de monitoreo de seguridad en la cadena de bloques, logrando una percepción, alarma y seguimiento de riesgos en tiempo real.
Protección de host: utilizar productos de seguridad de host con capacidades CWPP y ASA para garantizar un funcionamiento seguro y confiable del servidor.
Simulación de ataque: mediante el ensamblaje manual de testigos de lógica personalizada, simular varios escenarios de ataque para realizar pruebas.
En resumen, la protección de seguridad de los proyectos de ZKP necesita abordar sus escenarios de aplicación específicos, considerando de manera integral todos los aspectos, desde la criptografía de base hasta las aplicaciones de nivel superior. Solo asegurando la completitud, confiabilidad y propiedad de cero conocimiento de ZKP, se puede construir un sistema verdaderamente seguro y confiable.