¿Cómo ayudan las auditorías de contratos inteligentes de DAO a reforzar la seguridad? Inteligencia de datos PlatoBlockchain. Búsqueda vertical. Ai.

¿Cómo ayudan las auditorías de contratos inteligentes de DAO a reforzar la seguridad?

Tiempo de lectura: 6 minutos

La creación de DAO es exclusiva de web3, que aprovecha la competencia de blockchain para gobernar los protocolos sin involucrar a entidades centralizadas.  

DAO se centra en gran medida en dos facetas: cifrado y almacenamiento distribuido. Esto les otorga la capacidad de funcionar en función de la decisión colectiva de los miembros de la comunidad.

Al igual que con cualquier protocolo Web3, las preocupaciones de seguridad también se ciernen sobre los protocolos DAO. 

Este artículo tiene como objetivo resaltar la infraestructura subyacente de DAO y las pautas para improvisar la seguridad de su contrato inteligente para resistir los ataques.   

Propósito de DAO

Ethereum siempre tiene el mérito de ser la primera cadena de bloques programable. Tiene un papel inmenso en lograr una verdadera descentralización al permitir que los desarrolladores jueguen con el código.

A ese respecto, Contratos inteligentes DAO están diseñados para fomentar Gobernanza en cadena

La gobernanza en cadena es un medio por el cual se implementan cambios en los proyectos de cadena de bloques. Las reglas están codificadas en los protocolos y los desarrolladores proponen cambios a través de actualizaciones de código. El cambio propuesto se ejecuta en base a los votos de los miembros/participantes de la comunidad.

” data-gt-translate-attributes=”[{“attribute”:”data-cmtooltip”, “format”:”html”}]”>gobierno en cadena que justifica el hecho de que las comunidades operan puramente la cadena de bloques. 

Al igual que cualquier otro contrato inteligente, los contratos DAO están diseñados básicamente para automatizar el proceso y ejecutar acciones cuando se cumplen las condiciones predefinidas. 

Para ilustrar con un ejemplo, considere un contrato de token ERC-20. Se crea en base a los estándares ERC-20 con información como la dirección del contrato, el suministro del token, el nombre del token, las condiciones de transferencia del token, etc. 

La operación del token se ejecuta cuando se cumplen las reglas establecidas. De manera similar, el contrato DAO está codificado para dictar el funcionamiento de la organización, como decidir sobre la distribución de fondos según las propuestas de votación de los miembros. 

Por ejemplo, DAO tiene tesorerías incorporadas. Los fondos de estos se gastan después de la aprobación del grupo, y ninguna autoridad individual tiene acceso para ejecutar ningún plan. 

Las propuestas de votación para tomar decisiones críticas relacionadas con el proyecto aseguran que se escuche la voz de cada participante, lo que lleva a una mayor confianza y transparencia en las actividades en la cadena. 

Los derechos de gobierno sobre las actividades de las organizaciones varían de protocolo a protocolo, y es puramente subjetivo a cómo se realiza la codificación DAO. Por lo tanto, es importante prestar atención a los derechos de gobierno que tienen los usuarios sobre el protocolo antes de inscribirse en cualquier DAO. 

Pasos involucrados en la configuración de contratos inteligentes DAO

La mecánica de Gobernanza en cadena

La gobernanza en cadena es un medio por el cual se implementan cambios en los proyectos de cadena de bloques. Las reglas están codificadas en los protocolos y los desarrolladores proponen cambios a través de actualizaciones de código. El cambio propuesto se ejecuta en base a los votos de los miembros/participantes de la comunidad.

” data-gt-translate-attributes=”[{“attribute”:”data-cmtooltip”, “format”:”html”}]”>la gobernanza en cadena se ejecuta a través de un conjunto de contratos: token, gobernador y bloqueo de tiempo . Descubramos el papel de cada uno de ellos. 

Token: Los tokens determinan el poder de voto de los miembros de la comunidad para participar en Gobernanza en cadena

La gobernanza en cadena es un medio por el cual se implementan cambios en los proyectos de cadena de bloques. Las reglas están codificadas en los protocolos y los desarrolladores proponen cambios a través de actualizaciones de código. El cambio propuesto se ejecuta en base a los votos de los miembros/participantes de la comunidad.

” data-gt-translate-attributes=”[{“attribute”:”data-cmtooltip”, “format”:”html”}]”>gobierno en cadena. El contrato simbólico garantiza que se verifique el saldo para recuperar el poder y permitir que los participantes expresen su elección sobre las propuestas de gobernanza. 

Gobernador: El contrato del gobernador está codificado con condiciones sobre la asignación de poder a los poseedores de fichas, el tipo de fichas aceptables, el recuento de la cantidad de votos necesarios para el foro, etc. Sin embargo, los desarrolladores pueden codificar con los detalles de la función sobre cómo quieren que funcionen los contratos. 

Además, el contrato del gobernador también incluye retrasos en la votación y detalles específicos de la propuesta de votación en el código. Sirve para dar instrucciones sobre cuánto tiempo está abierta la propuesta de votación para que los participantes voten. 

Bloqueo de tiempo: El aspecto de Timelock implica la configuración de AcessControl para el rol propuesto, el rol de ejecutor y el rol de administrador. La integración del componente de bloqueo de tiempo con los sistemas de gobierno da la libertad a los participantes de retirarse en caso de desacuerdo con la decisión. 

Vista de alto nivel sobre rastas de seguridad para DAO. 

La dependencia de los DAO en los contratos inteligentes los hace responsables de la votación de la gobernanza y el mantenimiento de la tesorería. Y cada uno de estos elementos tiene sus propias preocupaciones de seguridad; vamos a desenrollarlos a continuación. 

Preocupaciones de seguridad en el contrato inteligente

Retrocedamos un poco y recordemos la conocida 'caída de DAO'. La causa predominante fue el error en el código DAO. El hacker pudo explotar la vulnerabilidad y drenar los fondos del contrato haciendo Llamadas recursivas

La llamada recursiva es una condición que puede referirse a sí misma y volver a llamarla una y otra vez en un bucle. La función recursiva usa el caso base (if) y el caso de inducción (else). Los ataques de reingreso se realizan explotando llamadas recursivas en el código.

” data-gt-translate-attributes=”[{“attribute”:”data-cmtooltip”, “format”:”html”}]”>llamadas recursivas. 

El contrato contenía 12.7 millones de Ether, de los cuales el hacker robó 3.6 millones de ETH aprovechando la laguna en el contrato.

Este incidente muestra claramente la necesidad de más experiencia y experimentación con la seguridad DAO. Aunque DAO es muy elogiado por su innovación, la calidad del código causó un daño mayor.

Además, la codificación de los contratos inteligentes debe ser completamente transparente para garantizar que ninguna característica se convierta en un error más adelante. 

Preocupaciones de seguridad sobre la gobernanza

Hay varias formas en que los piratas informáticos pueden entrometerse en la gobernanza del protocolo. Para empezar, las notificaciones descentralizadas son una forma en la que, si un pirata informático puede bloquear las notificaciones, puede introducir propuestas maliciosas que pasan desapercibidas para otros miembros de DAO. 

La siguiente es la propuesta que requiere transacciones de llamadas múltiples. Si la propuesta no es revisada o auditada por DAO, el atacante puede usarla para producir resultados complejos. 

Umbrales incorrectos y bloqueos de tiempo inapropiados conducen a la posibilidad de malas actividades. Los préstamos rápidos son otra preocupación para la seguridad de la gobernabilidad. Los atacantes pueden tomar prestada una gran suma de tokens que les otorga el poder mayoritario para impulsar una propuesta. 

Las propuestas con intenciones maliciosas plantean un serio problema de seguridad sobre los cambios implementados en el protocolo. AAVE y Compound han sufrido este tipo de ataques en el pasado. 

Problemas de seguridad en la ejecución

MakerDAO, lanzado en la red Ethereum en 2017, estaba funcionando bien. Hasta que se produjo una caída del mercado en 2020, cuando el precio de Ether bajó hasta un 50 %. Fue la garantía más importante utilizada en MakerDAO, y la caída del precio desencadenó una liquidez masiva.

MakerDAO no fue diseñado para manejar una liquidación tan grande que resultó en una mayor pérdida financiera. Aunque aquí la codificación era fuerte, la falla estuvo en ejecutar el mecanismo de liquidación. 

A partir de entonces, la ejecución del mecanismo DAO también se sumó a la lista de otras preocupaciones de seguridad existentes. 

Lista de verificación para auditorías de contratos inteligentes de DAO

La seguridad es el aspecto predominante en Gobernanza en cadena

La gobernanza en cadena es un medio por el cual se implementan cambios en los proyectos de cadena de bloques. Las reglas están codificadas en los protocolos y los desarrolladores proponen cambios a través de actualizaciones de código. El cambio propuesto se ejecuta en base a los votos de los miembros/participantes de la comunidad.

” data-gt-translate-attributes=”[{“attribute”:”data-cmtooltip”, “format”:”html”}]”>gobierno en cadena para proteger el poder de caer en malas manos. Entonces, desde el punto de vista de la seguridad, encontremos las pautas para desarrollar contratos DAO sólidos.

Llamadas de bajo nivel: Las llamadas a contratos arbitrarios que obtienen datos arbitrarios deben tratarse con cuidado. 

El manejo de llamadas de bajo nivel es complicado porque puede abrir la posibilidad de vectores de ataque de reentrada. Por lo tanto, siempre es una buena práctica verificar la condición de éxito de las llamadas y luego manejar los datos devueltos. 

Tenencias de ETH: Según los hallazgos de la auditoría, ha habido muchos casos en los que ETH no se maneja adecuadamente en los contratos relacionados con la gobernanza. Por lo tanto, se sugiere asegurar la forma de envío de ETH cuando los contratos de gobierno requieran el manejo de ETH.

Otra precaución a observar es al usar msg.value que permite llamadas por lotes. Lo más probable es que este patrón pueda salir mal. 

Abstenerse de explotaciones de préstamo Flash: Los explotadores confían en los préstamos rápidos para influir en las decisiones de gobierno y lanzar un ataque. Toman préstamos rápidos y aseguran los votos de gobierno a través de tenencias simbólicas para manipular una decisión de gobierno. 

Por lo tanto, puede evitar medir el poder de voto en el bloque actual, ya que el préstamo rápido tomado para obtener poder de gobernabilidad pone en riesgo el sistema. 

Actualizaciones regulares: Incluso si no hay necesariamente fallas en el contrato, siempre debe consultar el mercado de tokens de gobernanza y ajustar el umbral en consecuencia. De lo contrario, permitiría que actores maliciosos asumieran las decisiones.

Asegúrese de prestar atención a los detalles al migrar y actualizar el sistema de gobierno. Ha habido casos como el que sucedió con Uniswap. Su migración a Gobernador Bravo inició una falla en el contrato que detuvo temporalmente las decisiones de gobierno. 

Incluir retrasos usando el contrato de bloqueo de tiempo: Las acciones con demora le permiten a la comunidad revisar los cambios al protocolo antes de que entren en vigor. Estos retrasos de tiempo se pueden implementar a través de contratos Timelock. 

Vulnerabilidades relacionadas con el protocolo: El software utilizado para codificar un protocolo funciona con una lógica comercial específica que puede variar entre sí. También lo hacen los problemas que surgen al ejecutar cambios en ese sistema. 

De hecho, el protocolo Compound sufrió un problema debido a la aprobación de una propuesta comunitaria manipuladora. Por lo tanto, siempre es bueno contar con una revisión exhaustiva del código por parte de pares y partes independientes para garantizar la solidez y solidez del contrato.

QuillAudits Eminence en la auditoría de contratos inteligentes de DAO

En los tiempos de hoy, para que un sistema funcione completamente por sí mismo, muchos proyectos están buscando la manera de integrarse Gobernanza en cadena

La gobernanza en cadena es un medio por el cual se implementan cambios en los proyectos de cadena de bloques. Las reglas están codificadas en los protocolos y los desarrolladores proponen cambios a través de actualizaciones de código. El cambio propuesto se ejecuta en base a los votos de los miembros/participantes de la comunidad.

” data-gt-translate-attributes=”[{“attribute”:”data-cmtooltip”, “format”:”html”}]”>gobierno en cadena. Por lo tanto, el campo está evolucionando y floreciendo rápidamente según las necesidades de su comunidad. 

Los ataques también se están complicando, lo que es desafiante y costoso. Por lo tanto, es necesario garantizar que los procesos estén implementados y que el código se siga de cerca. QuillAuditorias realiza un estudio extenso y audita el código para descartar cualquier peligro potencial y proteger el proyecto de actividades maliciosas.

16 Vistas

Sello de tiempo:

Mas de hachís