Corre el año 2016, finales de Abril, Bitcoin rozaba los 450$ y Ether los 10$.
Ese mismo mes se filtraron los “Panama Papers”. En la radio sonaba Rihanna con “Work” (enlace a Youtube), Justin Bieber con “Lover Yourself” (enlace a Youtube) y Sia reventaba altavoces con “Cheap Thrills” (enlace a Youtube).
Pero aún es más. En el cine estaban a punto de estrenar Capitan America: Civil War:
Y aún teníamos Deadpool en Cartelera, una entrada costaba 6€.
Ahora creo que ya estás puesto en escena.
Ethereum había nacido como tal hacía tan solo unos meses (aquí tienes el bloque 0), el 30 de Julio de 2015.
El 30 de Abril de 2016 usando la blockchain de Ethereum se lanzó de “The DAO” . “The DAO” era una organización autónoma descentralizada digital y una forma de fondo de capital de riesgo dirigido por inversores.
El objetivo de “The DAO” era proporcionar un modelo de negocio descentralizado para organizar tanto empresas comerciales como sin fines de lucro. Estaba implementado en la blockchain de Ethereum y no tenía una estructura de gestión convencional ni una junta directiva. El código de “The DAO” era Open Source.
La forma de financiación fue bastante simple, enviabas Ether a una dirección de Ethereum, abierta durante 28 días y posteriormente dependiendo de la recaudación obtendrías un número determinado de tokens de “The DAO”.
Por ejemplo Gavin Wood, uno de los fundadores de Ethereum envió 20.000 Ether en tres transacciones:
Esto causó en aquel momento algo de revuelo en Reddit, pero tampoco era para tanto, total mira la transacción en detalle :
Claro que valorada a precios de ahora…. 😄
En fin, que la cosa por lo que fuera funcionó. “The DAO” recaudó $150 millones de dólares estadounidenses en Ether (ETH) y fue uno de los primeros esfuerzos de financiamiento colectivo y proyectos de alto perfil construidos sobre la blockchain de Ethereum.
Por darte una cifra, casi un 14% de todo el Ether de aquel momento estaba en manos de “The DAO” 🤯. Y ojo con tan solo 11.000 inversores.
Y ahí estaban los señores de “The DAO” siendo el mayor proyecto de crowdfunding con mayor financiación de la historia (actualmente 6º puesto), y así lo tuiteaba Erik Voorhees. Y si has leído bien Ethereum tenía 8 meses.
Es decir, párate y piensa, aún tenemos en el año 2024 contratos inteligentes con deficiencias graves y en aquel momento, con tan solo 8 meses de vida en la propia red de Ethereum y teníamos un 14% de todo el Ether (unos 11 millones y medio de Ether) valorados en unos 160.000 dólares alojados en un contrato inteligente.
¿Nadie?
El 27 de Mayo de 2016 Dino Mark, Vlad Zamfir y Emin Gün Sirer publicaron un paper llamado “A Call for a Temporary Moratorium on The DAO” [enlace] en el cual identificaban siete posibles razones que podrían hacer los fundadores de la DAO vieran sus fondos secuestrados o usados en propuestas en contra de sus intereses.
Este paper indicaba que debido a una serie de razones se debía aplicar un retraso en la puesta en marcha del sistema de votaciones/proposals para poder corregir una serie de errores diseño en el mecanismo.
Pero ese no fue el problema.
El 9 de junio de 2016, Peter Vessenes señaló en un artículo una vulnerabilidad en el contrato de “The DAO” relacionado con los contratos inteligentes de Ethereum. Esta vulnerabilidad podía ser explotada mediante un ataque conocido como race-to-empty (carrera para vaciar). Dicho ataque permitía a un atacante vaciar repetidamente los fondos de un contrato al aprovechar una función de retiro mal diseñada que no actualizaba el saldo del usuario antes de transferir los fondos.
¿Sin previo aviso?
El 17 de Junio de 2016, un hacker comenzó a drenar fondos de “The DAO”. En las primeras horas del ataque, se robaron 3.6 millones de ETH, equivalentes a 70 millones de dólares en ese momento.
En este exploit, el hacker pudo "pedir" al contrato inteligente que devolviera el Ether múltiples veces antes de que el contrato inteligente pudiera actualizar su saldo. Dos problemas principales hicieron esto posible:
el hecho de que, cuando se creó el contrato inteligente de la DAO, los programadores no tuvieron en cuenta la posibilidad de una llamada recursiva
y el hecho de que el contrato inteligente primero enviaba los fondos en ETH y luego actualizaba el balance interno de tokens.
Como indicador el hacker sacaba unos 100 Ether por segundo 🤣🤣. Pero llegó la caballería:
Numerosos desarrolladores de Ethereum, ya alertados por los diversos papers y una vez analizado lo que estaba pasando en el contrato decidieron empezar a drenar ellos mismos los fondos con el objetivo de poner a salvo la mayor parte de los fondos de “The DAO”.
Y como para sacar Ether del contrato necesitabas el token inicial, el equipo para poner a salvo el Ether necesitaban el token de la DAO y poder tener más tokens disponibles para depositar en el contrato inteligente a cambio de ETH significaba que la cantidad de retiro podría ser mucho mayor.
Y a base de donaciones consiguieron incrementar el ritmo hasta llegar al punto de recuperar unos $30,000 cada 5 segundos.
Recuperaron un 70% del Ether depositado en el contrato.
Pero el hacker tuvo un pequeño problema: En el proceso de vaciar el contrato los fondos se retenían durante 28 días. Una simple medida de seguridad. Había tiempo de actuar.
Sobre la mesa había dos propuestas:
Se propuso un soft fork: hacer que los mineros no procesaran ninguna transacción proveniente del contrato “The DAO”. Básicamente sería ir al bloque del hackeo y no procesarlo.
También se propuso un hard fork : en esencia, simplemente mover la custodia del ETH actualmente en el contrato inteligente de “The DAO” a otro contrato seguro donde los fondos serían asegurados. Básicamente sería hacer una cadena paralela a la inicial donde los fondos estaban en otro dirección.
Y aquí pasó una cosa
en un extremo, los defensores del laissez-faire que crían en la máxima "el código es la ley" clamaban que no debía intervenirse, ya que la pureza de la inmutabilidad de la blockchain era demasiado importante.
En el extremo opuesto, había defensores de una mayor intervención: se debía actuar para minimizar los efectos de esta catástrofe única en su tipo.
Junto con todos los otros puntos de vista que se encontraban en el espectro intermedio, surgió una pendiente resbaladiza: ambos lados contaban puntos válidos.
El debate, “To fork or not to fork” fue reflejado en un artículo. Y se decidió que si.
El fork
Digamos que lo que pasó fue esto:
En el bloque 1.920.000 (este bloque) se creó una nueva cadena, que tomó el nombre de Ethereum, renombrando la cadena original a Ethereum Classic. Como cosa curiosa también existe un bloque 1.920.000 en la cadena de Ethereum Classic (este bloque). Y todos los anteriores a esos dos bloques en ambas cadenas coinciden ( compara el 191000 de Ethereum y de Ethereum Classic).
El mismo Vitalik escribió un post en el blog de Ethereum llamado “Hard Fork Completed”, con una imagen con los hashes de cada cadena para cada bloque.
Qué te digo una cosa, podría haberse dado el caso de que ningún minero/validador hubiera decidido continuar con Ethereum Classic pero en ella quedaron muchos “idealistas” hasta tal punto que hicieron una “Declaración de la Independencia”
En el mismo post de Vitalik “Hard Fork Completed” se dice:
El contrato de recuperación ya está devolviendo el ether a los poseedores de tokens DAO; se han enviado aproximadamente 4.5 millones de ETH a los poseedores de tokens DAO, y unos 463,000 ETH están bajo el control del curador. Actualmente, un contrato para facilitar los pagos de saldo adicional está en revisión de seguridad.
Eso fue publicado el 20 de Julio de 2016, apenas un mes más tarde de que el ataque comenzara. Y como curiosidad (si, otra más) todos los usuarios que tenían ETH antes del bloque 1920000 tenían tanto ETH (la cadena del fork) como ETC (el no fork).
Una última curiosidad: El hacker habló:
El período de espera de 28 días le dio tiempo a Ethereum, a “The DAO” y a toda la comunidad para debatir sobre lo que iba a suceder a continuación. El propio hacker fue a Github y afirmó que no había hecho nada malo, diciendo que simplemente utilizó las reglas del contrato inteligente. El hacker dejó el siguiente mensaje:
===== INICIO DEL MENSAJE FIRMADO =====
Para el DAO y la comunidad de Ethereum,
He examinado cuidadosamente el código de “The DAO” y decidí participar después de encontrar la característica en la que el “splitting” es recompensado con ether adicional. He hecho uso de esta característica y he reclamado legítimamente 3,641,694 ether, y me gustaría agradecer a “The DAO” por esta recompensa. Entiendo que el código de “The DAO” contiene esta característica para promover la descentralización y fomentar la creación de "child DAOs".
Estoy decepcionado por aquellos que están caracterizando el uso de esta característica intencional como "robo". Estoy haciendo uso de esta característica explícitamente codificada según los términos del contrato inteligente, y mi firma legal me ha aconsejado que mi acción cumple plenamente con la ley penal y de responsabilidad civil de los Estados Unidos. Para referencia, por favor revisen los términos del DAO:
"Los términos de la Creación de “The DAO” están establecidos en el código del contrato inteligente existente en la blockchain de Ethereum en 0xbb9bc244d798123fde783fcc1c72d3bb8c189413. Nada en esta explicación de términos o en cualquier otro documento o comunicación puede modificar o agregar obligaciones adicionales o garantías más allá de las establecidas en el código de “The DAO”. Cualquier término o descripción explicativa se ofrece únicamente con fines educativos y no sustituye ni modifica los términos expresos del código de “The DAO” establecidos en la blockchain; en la medida en que usted crea que existe algún conflicto o discrepancia entre las descripciones ofrecidas aquí y la funcionalidad del código de “The DAO” en 0xbb9bc244d798123fde783fcc1c72d3bb8c189413, el código de “The DAO” controla y establece todos los términos de la Creación de “The DAO”."
Un hard fork o soft fork equivaldría a la incautación de mi ether legítimo y legalmente reclamado a través de los términos de un contrato inteligente. Dicho fork arruinaría de manera permanente e irrevocable toda la confianza no solo en Ethereum, sino también en el campo de los contratos inteligentes y la tecnología blockchain. Muchos grandes poseedores de Ethereum venderán su ether, y desarrolladores, investigadores y empresas abandonarán Ethereum. No se equivoquen: cualquier hard fork o soft fork dañará aún más a Ethereum y destruirá su reputación y atractivo.
Me reservo todos los derechos para emprender cualquier acción legal contra los cómplices del robo, congelación o incautación ilegítimos de mi ether legítimo, y estoy trabajando activamente con mi firma legal. Esos cómplices recibirán avisos de Cese y Desistimiento por correo en breve. Espero que este evento se convierta en una valiosa experiencia de aprendizaje para la comunidad de Ethereum y les deseo la mejor de las suertes.
Atentamente, "El Atacante"
===== FIN DEL MENSAJE FIRMADO =====
Finalmente no hizo nada.
¿Qué pasó con “The DAO”?
"The DAO" fue un experimento ambicioso que terminó en un fracaso técnico, pero proporcionó valiosas lecciones para el desarrollo de la tecnología blockchain y las DAOs.
"The DAO" se cerró después del hackeo. La pérdida masiva de fondos y el consecuente hard fork en la blockchain de Ethereum llevaron al cierre del proyecto original. Aunque los fondos fueron recuperados y devueltos a los inversores gracias al fork, "The DAO" como organización dejó de existir.
Y esta es la historia de "The DAO", la primera DAO, que no tuvo éxito y que marco los precedentes de las posteriores DAOs.
Y es ahora cuando puedo explicarte bien que es una DAO. Y lo vamos a ver en breve. Mientras tanto, ¿Me das tu opinión? ¿Qué hubieras votado tú?
PD: Espero que hayas leído esto con Sia, Justin Bieber y Rihanna en bucle.
Que buen artículo!!!
Sabia de lo sucedido pero no con tanta precisión. Gracias
Que haría... uf difícil elección, dinero versus principios 😅
Tremendo artículo!