MSTR Cat

Blockchain/Nivel VI · Después de bitcoin/6.3 Ethereum y contratos inteligentes/Lección 3

El hackeo de DAO y Ethereum Classic

El error de reingreso que dividió una cadena y definió el debate sobre la inmutabilidad

MaterialesUna interfaz de explorador de bloques (p. ej., Etherscan)Código fuente del contrato inteligente de DAO (versión pre-fork)Un cuaderno para registrar los cambios en las variables de estado

Curiosidad

  1. ¿Por qué una línea de código que se ejecuta antes de las actualizaciones de estado permite a un atacante agotar los fondos repetidamente?
  2. ¿Qué sucede cuando una comunidad vota por reescribir la historia en lugar de preservarla?
  3. ¿Quién tiene la autoridad final: el mecanismo de consenso o los desarrolladores que lo mantienen?

Explorar

  1. La DAO se lanzó en abril de 2016 como un fondo de inversión autónomo, recaudando aproximadamente 12,7 millones de ETH de más de 11,000 inversores. Esta cantidad representaba alrededor del 14% de todo el ether en circulación en ese momento. El proyecto funcionó íntegramente a través de contratos inteligentes, lo que permitió a los titulares de tokens votar sobre qué proyectos financiar, sin necesidad de una gestión centralizada ni estructuras tradicionales de gobierno corporativo.
  2. El 17 de junio de 2016, un atacante explotó una vulnerabilidad de reingreso en la función de división de la DAO. Este error permitió que el contrato fuera llamado nuevamente antes de que se actualizara su saldo interno. El atacante transfirió aproximadamente 3,6 millones de ETH a una “DAO hija”, donde un período de retención de 28 días congeló los fondos. Esta explotación demostró que las máquinas Turing-completas introducen riesgos complejos en la gestión del estado, riesgos ausentes en sistemas más simples como Bitcoin.
  3. La comunidad de Ethereum se enfrentó a un dilema inmediato: respetar la inmutabilidad del registro o proteger a los inversores de un fallo crítico en el código. Los desarrolladores argumentaron que el error era un problema de implementación, no un comportamiento intencionado, y que dejar los fondos bloqueados socavaría la confianza en la utilidad de la plataforma. Los críticos, por su parte, sostuvieron que alterar el historial de la cadena violaba el principio fundamental del consenso descentralizado, sentando un precedente peligroso para futuras intervenciones en su gobernanza.
  4. El 20 de julio de 2016, Ethereum realizó un hard fork en el bloque 1.920.000 para revertir el ataque y transferir los fondos a un contrato de reembolso. Los titulares de tokens DAO pudieron así recuperar su ether del contrato de reembolso. Una minoría rechazó esta intervención y continuó minando la cadena original sin modificaciones. Este grupo formó Ethereum Classic (ETC), adhiriéndose estrictamente al principio de que “el código es ley” y de que ninguna entidad debería tener el poder de reescribir la historia.
  5. El fork creó dos realidades paralelas a partir de un único registro contable. Mientras Ethereum continuó desarrollándose como una importante plataforma de contratos inteligentes, Ethereum Classic se mantuvo como una red más pequeña, sirviendo en gran medida como una declaración filosófica sobre la descentralización. Este incidente influyó en el desarrollo posterior de protocolos en todas las criptomonedas.
  6. Busque el bloque 1,920,000 en un explorador de Ethereum y en uno de Ethereum Classic: las dos cadenas son idénticas hasta el bloque 1,919,999 y difieren a partir del bloque 1,920,000. El fork no movió el ether de la DAO mediante una transacción; el nuevo software de cliente aplicó un cambio de estado irregular en ese bloque, por lo que la reversión aparece en el código y no en ninguna lista de transacciones.

Datos clave

  • La DAO recaudó aproximadamente 12,7 millones de ETH, lo que representa alrededor del 14% de todo el éter en circulación en el momento del lanzamiento.
  • Un error de reingreso permitió a un atacante extraer aproximadamente 3,6 millones de ETH hacia una DAO hija el 17 de junio de 2016.
  • Ethereum sufrió un hard fork el 20 de julio de 2016, en el bloque 1.920.000, para revertir el ataque y devolver los fondos.
  • Una minoría continuó minando la cadena original, que se convirtió en Ethereum Classic (ETC), argumentando que “el código es ley”.
  • El fork hizo que los holders poseyeran tanto ETH en la nueva cadena como ETC en la antigua.
  • El incidente desató debates duraderos sobre la inmutabilidad, la autoridad de los desarrolladores y la definición de consenso.

Ejercicio nueve, seis, tres, uno

9ReunirEnumera 9 casos en los que una actualización de software o un cambio de protocolo modificó los datos existentes de los usuarios o el historial de transacciones. Indica quién inició el cambio y qué justificación se proporcionó.
6AgruparAgrupa los 9 en 6 categorías según si el cambio fue una corrección de errores (bug fix), la adición de una función, un retroceso de seguridad, una actualización de consenso, un hard fork o un soft fork.
3DestilarReduce los 6 a 3 tipos de autoridad que terminaron decidiendo estos cambios.
1CristalizarEscribe una oración sobre lo que promete el principio de “el código es ley” y qué se sacrifica cuando el código falla.

Verificación de hechos

Fechas, cifras y afirmaciones verificadas con las fuentes publicadas que se enumeran a continuación.

Abrir en la academia interactiva →

EN PT ZH JA KO RU DE FR MS