Consideraciones de seguridad del proyecto de Cadena de bloques ZKP: evaluación integral desde 7 direcciones

robot
Generación de resúmenes en curso

Consideraciones de seguridad en la combinación de zk-SNARKs y Cadena de bloques

zk-SNARKs(ZKP) como una técnica criptográfica avanzada, está siendo adoptada por un número creciente de proyectos de Cadena de bloques. Con soluciones de Layer 2 como zkSync y Scroll, así como cadenas públicas especiales como Filecoin y Aleo que se construyen sobre ZKP, junto con las prácticas de proyectos de monedas anónimas anteriores, la fusión de ZKP con Cadena de bloques está profundizándose continuamente. Sin embargo, debido a la complejidad del sistema, este proceso también puede traer nuevos riesgos de seguridad. Este artículo abordará desde la perspectiva de la seguridad, las vulnerabilidades que pueden surgir en el proceso de combinación de ZKP y Cadena de bloques, proporcionando referencias para la protección de la seguridad de proyectos relacionados.

Características clave de ZKP

Antes de analizar la seguridad del sistema ZKP, primero necesitamos comprender sus características clave. Un sistema de prueba de conocimiento cero (zk-SNARKs) adecuado debe cumplir simultáneamente con tres propiedades clave: completitud, solidez y conocimiento cero.

  1. Completitud: Para declaraciones verdaderas, el probador siempre puede demostrar con éxito su validez al verificador.

  2. Confiabilidad: para afirmaciones incorrectas, los probadores maliciosos no pueden engañar a los verificadores.

  3. Conocimiento cero: durante el proceso de verificación, el verificador no obtendrá ninguna información del probador sobre los datos en sí.

Si el sistema no satisface la completitud, es posible que en ciertas situaciones extremas no se pueda obtener una prueba correcta, lo que podría resultar en un rechazo del servicio. Si no se cumple la fiabilidad, un atacante podría engañar a los verificadores mediante la falsificación de pruebas o la construcción de estructuras especiales, causando problemas graves de elusión de permisos. Y si la propiedad de cero conocimiento es insuficiente, podría haber filtración de parámetros originales durante el proceso interactivo, lo que permitiría al atacante construir pruebas de ataque o llevar a cabo actos maliciosos por parte del probador.

Por lo tanto, garantizar la integridad de estas tres características es clave para la seguridad y efectividad del sistema ZKP.

ZKP en la Cadena de bloques: foco de seguridad

Para los proyectos de cadena de bloques que utilizan la tecnología ZKP, es necesario centrarse en las siguientes direcciones de seguridad:

1. zk-SNARKs circuito

Los circuitos ZKP utilizados en el proyecto deben cumplir con los requisitos de seguridad, efectividad y escalabilidad. Los principales puntos de enfoque incluyen:

  • Diseño de circuitos: puede haber errores lógicos que hagan que el proceso de prueba no cumpla con las propiedades de seguridad como la zk-SNARKs, integridad o fiabilidad.
  • Implementación de primitivas criptográficas: la implementación incorrecta de funciones hash, algoritmos de cifrado, etc., puede comprometer la seguridad de todo el sistema de prueba.
  • Garantía de aleatoriedad: Si hay problemas en el proceso de generación de números aleatorios, puede comprometer la seguridad de la prueba.

2. Seguridad de contratos inteligentes

Para los proyectos de monedas privadas en Layer 2 o implementados a través de contratos inteligentes, la seguridad del contrato es crucial. Además de las vulnerabilidades comunes como reentrada, inyección, desbordamiento y eludir permisos, los contratos inteligentes de proyectos ZKP juegan un papel clave en la transferencia de activos entre cadenas y la verificación de proofs. Las vulnerabilidades en la verificación de mensajes entre cadenas y la verificación de proofs pueden llevar directamente a la falla de la confiabilidad del sistema.

3. Disponibilidad de datos

El proyecto necesita abordar adecuadamente los problemas de disponibilidad de datos, asegurando que los datos fuera de la cadena puedan ser accedidos y verificados de manera segura y efectiva cuando sea necesario. Prestar atención a la seguridad en aspectos como el almacenamiento de datos, los mecanismos de verificación y el proceso de transmisión. Además de utilizar pruebas de disponibilidad de datos, también se puede fortalecer la protección del host y el monitoreo del estado de los datos.

4. Mecanismos de incentivos económicos

Evaluar el mecanismo de incentivos del proyecto, asegurando que pueda estimular eficazmente la participación razonable de los validadores, usuarios y otras partes involucradas, así como mantener la seguridad y estabilidad del sistema. Enfocarse en el diseño del modelo de incentivos, la distribución de recompensas y los mecanismos de penalización, entre otros aspectos.

5. Protección de la privacidad

Para los proyectos que implican la protección de la privacidad, es necesario auditar cuidadosamente la implementación de su esquema de privacidad. Asegurarse de que los datos de los usuarios estén adecuadamente protegidos durante la transmisión, el almacenamiento y la verificación, manteniendo al mismo tiempo la disponibilidad y la fiabilidad del sistema. Se puede inferir el riesgo de filtración de la privacidad del probador analizando el flujo de comunicación del protocolo.

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 en la implementación del código para asegurar que el proyecto pueda cumplir con los requisitos de rendimiento.

7. Mecanismos de tolerancia a fallos y recuperación

Estrategias de tolerancia a fallos y recuperación ante situaciones imprevistas (como fallos de red, ataques maliciosos, etc.) en proyectos de auditoría. Asegurar que el sistema pueda recuperarse automáticamente y mantener un funcionamiento normal siempre que sea posible.

8. Calidad del código

Evaluar la calidad general del código del proyecto de auditoría, prestando atención a la legibilidad, mantenibilidad y robustez del código. Evaluar si existen prácticas de programación no estándar, código redundante o problemas potenciales.

Conclusión

Al evaluar la seguridad de un proyecto ZKP, primero hay que aclarar dónde se aplica ZKP en ese proyecto, ya que el enfoque de seguridad varía según los diferentes tipos de proyectos (como Layer 2, monedas de privacidad, cadenas de bloques públicas). Sin embargo, garantizar la efectividad de las tres características clave de ZKP: completitud, confiabilidad y la naturaleza de cero conocimiento, siempre será la prioridad. Solo sobre la base de una comprensión completa de estas consideraciones de seguridad se puede proporcionar una garantía de seguridad integral y efectiva para la combinación de ZKP y cadena de bloques.

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.
  • Recompensa
  • 5
  • Republicar
  • Compartir
Comentar
0/400
0xSherlockvip
· 08-06 01:29
Sigue investigando los bugs ocultos en el código, es muy peligroso.
Ver originalesResponder0
LiquiditySurfervip
· 08-04 12:29
L2 no es tan complicado, ¿verdad? ¿Por qué hacerlo tan complicado?
Ver originalesResponder0
alpha_leakervip
· 08-04 12:28
Los riesgos de seguridad deberían haberse visto hace tiempo, pero nadie lo dijo.
Ver originalesResponder0
Token_Sherpavip
· 08-04 12:27
lmao otro ponzi envuelto en matemáticas zk... he visto esta película antes
Ver originalesResponder0
DuckFluffvip
· 08-04 12:14
La prueba beta de zkSync fue un desastre.
Ver originalesResponder0
Opere con criptomonedas en cualquier momento y lugar
qrCode
Escanee para descargar la aplicación Gate
Comunidad
Español
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)