Incidentes Asociados

El Dao, el Hack, el Soft Fork y el Hard Fork Antonio Madeira 12 Mar 2019
¿Qué fue el incidente DAO?
En esta guía intentamos cubrir: cómo y por qué se creó The DAO, cómo se explotó The DAO, cómo la bifurcación suave falló miserablemente y por qué todos se sintieron aliviados de que lo hiciera, y cómo la bifurcación dura condujo a una comunidad dividida y la creación de Ethereum Classic.
Parte 1: El DAO - Evolución del fondo de riesgo
La Organización Autónoma Descentralizada (conocida como DAO) estaba destinada a operar como un fondo de capital de riesgo para el espacio cripto y blockchain. La falta de una autoridad centralizada redujo los costos y, en teoría, proporcionó más control y acceso a los inversores.
A principios de mayo de 2016, algunos miembros de la comunidad Ethereum anunciaron el inicio de The DAO, también conocido como Genesis DAO. Fue construido como un contrato inteligente en la cadena de bloques Ethereum. El marco de codificación fue desarrollado de código abierto por el equipo de Slock.it, pero los miembros de la comunidad Ethereum lo implementaron con el nombre "The DAO". El DAO tenía un período de creación durante el cual cualquiera podía enviar Ether a una dirección de billetera especial a cambio de tokens DAO en una escala del 1 al 100. El período de creación fue un éxito inesperado, ya que logró reunir 12,7 Ether (con un valor de alrededor de $ 150 millones en ese momento), lo que lo convirtió en el mayor crowdfund de la historia. En algún momento, cuando Ether se cotizaba a $ 20, el Ether total de The DAO valía más de $ 250 millones.
El DAO era un contrato inteligente complejo con muchas características y debería haber permitido a las empresas hacer propuestas de financiación. Una vez que uno de los curadores incluyó una propuesta en la lista blanca, los titulares de tokens de DAO (también conocidos como inversores de DAO) tendrían que votar sobre la propuesta. Si la propuesta recibió un quórum del 20 %, los fondos solicitados se liberarían en la dirección de billetera del contratista incluido en la lista blanca. El equipo de curadores que podría incluir direcciones en la lista blanca se estableció para evitar propuestas de spam y para tener cierta supervisión humana en el proceso automatizado. La mayoría de los curadores eran miembros notables de la comunidad Ethereum.
Para permitir que los inversores abandonaran la organización, en caso de que se aceptara una propuesta que consideraran dañina o de mala calidad, se creó la DAO con una "puerta de salida" conocida como "función dividida". Esta función permitió a los usuarios revertir el proceso y recuperar el Ether que enviaron a la DAO. Si alguien decidiera separarse de The DAO, crearía sus propios "DAO secundarios" y aprobaría su propuesta de enviar Ether a una dirección después de un período de 28 días. También puede dividirse con múltiples titulares de tokens DAO y comenzar a aceptar propuestas para el nuevo "DAO infantil".
El lanzamiento de DAO se realizó sin problemas y se crearon y votaron propuestas, se plantearon problemas de seguridad durante las próximas semanas, hubo un gran llamado de la comunidad para una moratoria, pero no se implementó y la mayoría de los problemas de seguridad no los abordamos lo suficientemente rápido.
Parte 2: El truco
El 18 de junio, los miembros de la comunidad de Ethereum notaron que los fondos de The DAO estaban siendo drenados y que el saldo general de ETH del contrato inteligente estaba disminuyendo. El pirata informático drenó un total de 3,6 millones de Ether (con un valor de alrededor de $ 70 millones en ese momento) en las primeras horas. El ataque fue posible debido a un exploit encontrado en la función de división. El/los atacante/s retiraron Ether del contrato inteligente DAO varias veces usando los mismos tokens DAO. Esto fue posible debido a lo que se conoce como explotación de llamada recursiva.
En este exploit, el atacante pudo "pedir" al contrato inteligente (DAO) que devolviera el Ether varias veces antes de que el contrato inteligente pudiera actualizar su propio saldo. Hubo dos fallas principales que hicieron esto posible: el hecho de que cuando se creó el contrato inteligente DAO, los codificadores no tuvieron en cuenta la posibilidad de una llamada recursiva, y el hecho de que el contrato inteligente primero envió los fondos ETH y luego actualizó el saldo interno de fichas.
Es importante comprender que este error no proviene de Ethereum en sí, sino de esta aplicación que se creó en Ethereum. El código escrito para The DAO tenía múltiples errores, y el exploit de llamada recursiva fue uno de ellos. Otra forma de ver esta situación es comparar Ethereum con Internet y cualquier aplicación basada en Ethereum con un sitio web: si un sitio web no funciona, no significa que Internet no funcione, simplemente significa que un sitio web tiene un problema.
El hacker dejó de drenar The DAO por razones desconocidas, aunque podría haber seguido haciéndolo.
La comunidad y el equipo de Ethereum rápidamente tomaron el control de la situación y presentaron múltiples propuestas para lidiar con el exploit.
Parte 3: The Soft Fork - ¡Buenas noticias para todos!
Para evitar que el pirata informático cobrara el Ether de su hijo DAO después de los 28 días estándar, se votó una bifurcación suave y estuvo muy cerca de ser introducida. Unas horas antes de su lanzamiento, algunos miembros de la comunidad encontraron un error con la implementación que abrió un vector de ataque de denegación de servicio. Este tenedor suave fue des