Discusión sobre la seguridad de zk-SNARKs en la Cadena de bloques
zk-SNARKs(ZKP)como un sistema de prueba, su esencia es que el probador y el verificador deconstruyen y verifican el problema sobre la base de una serie de circuitos lógicos. A medida que más protocolos de Capa 2 y cadenas públicas especiales adoptan la tecnología ZKP, así como varios proyectos de monedas anónimas basados en ZKP, la combinación de la Cadena de bloques y ZKP ha generado más vulnerabilidades de seguridad debido a la complejidad del sistema. Este artículo resumirá desde una perspectiva de seguridad las vulnerabilidades que pueden surgir en el proceso de combinación de ZKP y Cadena de bloques, proporcionando referencias para los servicios de seguridad de proyectos relacionados.
Las características clave de ZKP
Antes de analizar la seguridad del sistema ZKP, necesitamos entender sus tres características fundamentales:
Completitud: para una declaración verdadera, el probador siempre puede demostrar con éxito su corrección al verificador.
Confiabilidad: el declarante malicioso no puede engañar al verificador sobre declaraciones erróneas.
Conocimiento cero: durante el proceso de verificación, el verificador no obtendrá ninguna información del comprobador sobre los datos en sí.
Estas tres características son clave para la seguridad y eficacia de los sistemas ZKP, y requieren atención especial en los servicios de seguridad. Si no se cumple la completitud, el sistema puede no ser capaz de proporcionar pruebas correctas en condiciones extremas, lo que resulta en un rechazo del servicio. Si no se cumple la fiabilidad, un atacante podría falsificar pruebas para engañar a los verificadores, lo que lleva a eludir permisos. Si no se cumple la propiedad de cero conocimiento, puede haber una filtración de los parámetros originales durante el proceso de interacción, lo que permite al atacante construir pruebas de ataque o al probador actuar de manera maliciosa.
Puntos de seguridad en proyectos de zk-SNARKs
Para los proyectos de cadena de bloques basados en ZKP, es importante prestar atención a los siguientes aspectos de seguridad:
1. Circuito zk-SNARKs
Necesitamos asegurar la seguridad, efectividad y escalabilidad del circuito ZKP, que incluye principalmente:
Error en el diseño del circuito: puede llevar a que el proceso de prueba no cumpla con atributos de seguridad como la zk-SNARKs, completitud o fiabilidad.
Error en la implementación de primitivos criptográficos: si hay problemas en la implementación de funciones hash, algoritmos de cifrado, etc., puede comprometer la seguridad de todo el sistema de pruebas.
Falta de aleatoriedad: Si hay un problema en el proceso de generación de números aleatorios, puede comprometer la seguridad de la prueba.
2. Seguridad de contratos
Para los proyectos de monedas privadas en Layer 2 o implementados a través de contratos inteligentes, además de las vulnerabilidades comunes como la reentrada y la inyección, es necesario prestar especial atención a la seguridad en la verificación de mensajes entre cadenas y la verificación de proof, lo que está directamente relacionado con la fiabilidad del sistema.
3. Disponibilidad de datos
Es necesario prestar atención a cómo el proyecto aborda el problema de la disponibilidad de datos, asegurando que los datos fuera de la cadena puedan ser accedidos y verificados de manera segura y efectiva. Se puede abordar desde aspectos como el almacenamiento de datos, los mecanismos de verificación y el proceso de transmisión.
4. Incentivos económicos
Evaluar si el mecanismo de incentivos del proyecto es razonable y si puede estimular efectivamente la participación de todas las partes y mantener la seguridad y estabilidad del sistema. Incluye el diseño del modelo de incentivos, la distribución de recompensas, los mecanismos de castigo, etc.
5. Protección de la privacidad
Para los proyectos que implican la protección de la privacidad, se debe auditar la implementación de su plan de privacidad, asegurando que los datos de los usuarios estén adecuadamente protegidos durante la transmisión, el almacenamiento y la verificación, al mismo tiempo que se mantiene la disponibilidad y confiabilidad del sistema.
6. Optimización del rendimiento
Evaluar las estrategias de optimización del rendimiento del proyecto, como la velocidad de procesamiento de transacciones, la eficiencia del proceso de verificación, etc., auditar las medidas de optimización implementadas en el código.
7. Mecanismos de tolerancia a fallos y recuperación
Estrategias de tolerancia a fallos y recuperación para proyectos de auditoría frente a situaciones imprevistas ( como fallos de red, ataques maliciosos, etc. ), asegurando que el sistema pueda recuperarse automáticamente y mantener un funcionamiento normal en la medida de lo posible.
8. Calidad del código
La calidad general del código del proyecto de auditoría, prestando atención a la legibilidad, mantenibilidad y robustez, evaluando si existen prácticas de programación no estándar, código redundante, problemas potenciales, etc.
La importancia de los servicios de seguridad
Para proyectos de ZKP, los servicios de seguridad profesionales pueden ofrecer protección integral. Además de la auditoría convencional del código de contratos inteligentes, también se requiere la capacidad de auditar la lógica de codificación de circuitos, pudiendo utilizar métodos manuales y automatizados para auditar la corrección de las condiciones de restricción y la generación de testigos. Para la lógica importante, se puede simular varios comportamientos de ataque mediante la ensamblación manual de testigos de lógica personalizada para realizar pruebas.
Además, en cuanto al código de Sequencer/Prover y los contratos de verificación, también es necesario contar con capacidades de Fuzz y pruebas de seguridad, al mismo tiempo que se proporciona protección a las entidades de los nodos y a los datos de los nodos. Una vez que el proyecto esté en línea, el monitoreo en tiempo real y el sistema de protección también son muy importantes, ya que pueden ofrecer capacidades de percepción de la situación de seguridad en la cadena, alertas de riesgos, seguimiento en la cadena, entre otros.
Resumen
Al discutir la seguridad de los proyectos ZKP, primero es necesario aclarar dónde se utilizará ZKP. Diferentes tipos de proyectos (, como Layer 2, monedas de privacidad y cadenas de bloques ), tienen diferentes enfoques de seguridad. Pero, de todos modos, es fundamental garantizar que las tres características clave de ZKP: completitud, confiabilidad y privacidad se protejan de manera efectiva. Solo considerando de manera integral todos los factores de seguridad se puede construir una sólida línea de defensa para los proyectos ZKP.
Ver originales
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.
18 me gusta
Recompensa
18
8
Compartir
Comentar
0/400
PumpDetector
· 08-03 00:42
he estado observando pruebas zk desde los días de silk road... todavía no puedo confiar en ellas, para ser honesto
Ver originalesResponder0
StealthDeployer
· 08-03 00:35
Suena tan complicado, no lo entiendo.
Ver originalesResponder0
LiquidityNinja
· 08-01 14:02
No lo pienses más, el proyecto ya está muerto.
Ver originalesResponder0
SchrodingerWallet
· 07-31 01:15
Es solo teoría, ¿y la práctica?
Ver originalesResponder0
SchroedingerGas
· 07-31 01:14
gas tiene un alto grado de ineficacia al requerir dinero.
Ver originalesResponder0
MissingSats
· 07-31 01:12
¿Otra vez layer2? No me voy a preocupar si pierdo dinero.
Ver originalesResponder0
ReverseTradingGuru
· 07-31 01:05
¿Quién puede entender esto? Estoy confundido.
Ver originalesResponder0
DeFiCaffeinator
· 07-31 01:00
La vulnerabilidad me tiene la cabeza hecha un lío~
Ocho puntos de seguridad a seguir en la combinación de zk-SNARKs y Cadena de bloques
Discusión sobre la seguridad de zk-SNARKs en la Cadena de bloques
zk-SNARKs(ZKP)como un sistema de prueba, su esencia es que el probador y el verificador deconstruyen y verifican el problema sobre la base de una serie de circuitos lógicos. A medida que más protocolos de Capa 2 y cadenas públicas especiales adoptan la tecnología ZKP, así como varios proyectos de monedas anónimas basados en ZKP, la combinación de la Cadena de bloques y ZKP ha generado más vulnerabilidades de seguridad debido a la complejidad del sistema. Este artículo resumirá desde una perspectiva de seguridad las vulnerabilidades que pueden surgir en el proceso de combinación de ZKP y Cadena de bloques, proporcionando referencias para los servicios de seguridad de proyectos relacionados.
Las características clave de ZKP
Antes de analizar la seguridad del sistema ZKP, necesitamos entender sus tres características fundamentales:
Completitud: para una declaración verdadera, el probador siempre puede demostrar con éxito su corrección al verificador.
Confiabilidad: el declarante malicioso no puede engañar al verificador sobre declaraciones erróneas.
Conocimiento cero: durante el proceso de verificación, el verificador no obtendrá ninguna información del comprobador sobre los datos en sí.
Estas tres características son clave para la seguridad y eficacia de los sistemas ZKP, y requieren atención especial en los servicios de seguridad. Si no se cumple la completitud, el sistema puede no ser capaz de proporcionar pruebas correctas en condiciones extremas, lo que resulta en un rechazo del servicio. Si no se cumple la fiabilidad, un atacante podría falsificar pruebas para engañar a los verificadores, lo que lleva a eludir permisos. Si no se cumple la propiedad de cero conocimiento, puede haber una filtración de los parámetros originales durante el proceso de interacción, lo que permite al atacante construir pruebas de ataque o al probador actuar de manera maliciosa.
Puntos de seguridad en proyectos de zk-SNARKs
Para los proyectos de cadena de bloques basados en ZKP, es importante prestar atención a los siguientes aspectos de seguridad:
1. Circuito zk-SNARKs
Necesitamos asegurar la seguridad, efectividad y escalabilidad del circuito ZKP, que incluye principalmente:
Error en el diseño del circuito: puede llevar a que el proceso de prueba no cumpla con atributos de seguridad como la zk-SNARKs, completitud o fiabilidad.
Error en la implementación de primitivos criptográficos: si hay problemas en la implementación de funciones hash, algoritmos de cifrado, etc., puede comprometer la seguridad de todo el sistema de pruebas.
Falta de aleatoriedad: Si hay un problema en el proceso de generación de números aleatorios, puede comprometer la seguridad de la prueba.
2. Seguridad de contratos
Para los proyectos de monedas privadas en Layer 2 o implementados a través de contratos inteligentes, además de las vulnerabilidades comunes como la reentrada y la inyección, es necesario prestar especial atención a la seguridad en la verificación de mensajes entre cadenas y la verificación de proof, lo que está directamente relacionado con la fiabilidad del sistema.
3. Disponibilidad de datos
Es necesario prestar atención a cómo el proyecto aborda el problema de la disponibilidad de datos, asegurando que los datos fuera de la cadena puedan ser accedidos y verificados de manera segura y efectiva. Se puede abordar desde aspectos como el almacenamiento de datos, los mecanismos de verificación y el proceso de transmisión.
4. Incentivos económicos
Evaluar si el mecanismo de incentivos del proyecto es razonable y si puede estimular efectivamente la participación de todas las partes y mantener la seguridad y estabilidad del sistema. Incluye el diseño del modelo de incentivos, la distribución de recompensas, los mecanismos de castigo, etc.
5. Protección de la privacidad
Para los proyectos que implican la protección de la privacidad, se debe auditar la implementación de su plan de privacidad, asegurando que los datos de los usuarios estén adecuadamente protegidos durante la transmisión, el almacenamiento y la verificación, al mismo tiempo que se mantiene la disponibilidad y confiabilidad del sistema.
6. Optimización del rendimiento
Evaluar las estrategias de optimización del rendimiento del proyecto, como la velocidad de procesamiento de transacciones, la eficiencia del proceso de verificación, etc., auditar las medidas de optimización implementadas en el código.
7. Mecanismos de tolerancia a fallos y recuperación
Estrategias de tolerancia a fallos y recuperación para proyectos de auditoría frente a situaciones imprevistas ( como fallos de red, ataques maliciosos, etc. ), asegurando que el sistema pueda recuperarse automáticamente y mantener un funcionamiento normal en la medida de lo posible.
8. Calidad del código
La calidad general del código del proyecto de auditoría, prestando atención a la legibilidad, mantenibilidad y robustez, evaluando si existen prácticas de programación no estándar, código redundante, problemas potenciales, etc.
La importancia de los servicios de seguridad
Para proyectos de ZKP, los servicios de seguridad profesionales pueden ofrecer protección integral. Además de la auditoría convencional del código de contratos inteligentes, también se requiere la capacidad de auditar la lógica de codificación de circuitos, pudiendo utilizar métodos manuales y automatizados para auditar la corrección de las condiciones de restricción y la generación de testigos. Para la lógica importante, se puede simular varios comportamientos de ataque mediante la ensamblación manual de testigos de lógica personalizada para realizar pruebas.
Además, en cuanto al código de Sequencer/Prover y los contratos de verificación, también es necesario contar con capacidades de Fuzz y pruebas de seguridad, al mismo tiempo que se proporciona protección a las entidades de los nodos y a los datos de los nodos. Una vez que el proyecto esté en línea, el monitoreo en tiempo real y el sistema de protección también son muy importantes, ya que pueden ofrecer capacidades de percepción de la situación de seguridad en la cadena, alertas de riesgos, seguimiento en la cadena, entre otros.
Resumen
Al discutir la seguridad de los proyectos ZKP, primero es necesario aclarar dónde se utilizará ZKP. Diferentes tipos de proyectos (, como Layer 2, monedas de privacidad y cadenas de bloques ), tienen diferentes enfoques de seguridad. Pero, de todos modos, es fundamental garantizar que las tres características clave de ZKP: completitud, confiabilidad y privacidad se protejan de manera efectiva. Solo considerando de manera integral todos los factores de seguridad se puede construir una sólida línea de defensa para los proyectos ZKP.