- Volver al menú
- Volver al menúPrecios
- Volver al menúInvestigación
- Volver al menúConsenso
- Volver al menú
- Volver al menú
- Volver al menú
- Volver al menúWebinars y Eventos
La manipulación de Mempool permitió el robo de $8 millones en garantías de MakerDAO durante el Jueves Negro, según un informe.
Una nueva investigación sugiere que el evento “Cisne Negro” de marzo para Ethereum puede haber sido un plan sofisticado para sacar provecho de una venta global.
La comida para llevar:
- Blocknative, una empresa que mantiene datos sobre los mempools de Ethereum en todo el mundo, puede tener una explicación para el ataque de "oferta cero" en MakerDAO el Jueves Negro.
- Los mempools son un depósito de transacciones a la espera de ser minadas en bloques. Bajo presión del mercado, tienden a colapsar.
- El día del ataque, Blocknative encontró un flujo interminable de transacciones inteligentes y sin valor en los mempools, aparentemente diseñadas para dificultar el paso de las transacciones.
- La caída del precio de ETH desencadenó subastas de garantías en MakerDAO. Debido a la saturación de los mempools, en muchos casos los postores no pudieron pujar en dichas subastas, lo que permitió a los atacantes WIN garantías de ETH con pujas por valor de 0 $.
- Los atacantes se marcharon con 8,3 millones de dólares.
Un truco ingenioso en los mempools de Ethereum permitió a los atacantes robar 8,3 millones de dólares a los usuarios de MakerDAO durante el Jueves Negro, según una investigación publicada el miércoles.
Para resumir: El precio deéter (ETH) se desplomó el 12 de marzo y la red Ethereum se vio congestionada por una avalancha de intentos de transacción. A medida que los inversores se volcaban al dinero fiduciario, el precio de ETH se desplomó lo suficiente como para desencadenar la liquidación de las garantías depositadas en la plataforma de préstamos MakerDAO. Estas liquidaciones programáticas permitieron a los atacantes obtener ganancias. $8,3 millones en ETH, de forma gratuita, poniendo en corto a los prestatarios y a MakerDAO en sí.
La congestión, sin embargo, fue clave y completamente intencional, segúnBlocknative, una empresa enfocada en estudiar la acción en los mempools de blockchain.
La nueva investigación sugiere que el evento “Cisne Negro” de marzo para Ethereum puede haber sido en realidad un plan sofisticado para sacar provecho de una venta masiva global impulsada por las preocupaciones por el COVID-19.
"Todo este asunto permitió que [los atacantes] lograran más de 1000 subastas sin puja y recolectaran ese valor subyacente prácticamente sin desembolso personal", declaró Matt Cutler, director ejecutivo de Blocknative, a CoinDesk en una entrevista.
Manipulación de mempool
En el corazón del trabajo de Blocknative se encuentran los mempools: el almacenamiento temporal en cada nodo de Ethereum donde las transacciones esperan ser minadas y finalizadas.
A mediados de marzo, los mempools se congestionaron con transacciones inútiles a propósito, dijo Blocknative, como parte de un plan para WIN subastas de oferta cero para ETH en MakerDAO precisamente bajo estas condiciones.
De hecho, la Fundación Maker escribió lo mismo ensu autopsiapublicado en abril:
La congestión de la red y los altos precios del GAS provocaron retrasos en las transacciones y, en muchos casos, fallos. Estos problemas, sumados a la caída sin precedentes del valor de los activos, sorprendieron a los propietarios de Maker Vault, a los Guardianes y a los fondos de liquidez.
(La Fundación Maker remitió a CoinDesk a la publicación del blog mencionada anteriormente y se negó a hacer más comentarios para esta historia).
Obviamente, muchos usuarios de Ethereum se preguntarán si la caída del precio de ETH fue artificial, pero esa pregunta queda fuera del alcance de la investigación de Blocknative. Los atacantes podrían haber estado preparados para aprovechar oportunistamente una caída drástica del precio de ETH; aún se desconoce si la caída del precio fue artificial.
Dicho esto, Blocknative encontró lo que parece ser una prueba del 8 de marzo de la mecánica del ataque, un hecho que la empresa de investigación no describe en su informe.
"Es una coincidencia interesante que la prueba y el ataque ocurrieran con tan solo cuatro días de diferencia", declaró Cutler a CoinDesk. "Pero no tenemos ninguna prueba de que esto no sea un acto oportunista".
En cualquier caso, los atacantes aprovecharon información muy sutil sobre Ethereum y MakerDAO. «Básicamente, explotaron técnicas nunca antes vistas», afirmó Cutler.
Hablaremos más sobre estas técnicas más adelante. Primero, debemos cubrir algunos conceptos básicos sobre MakerDAO y Ethereum.
Conceptos básicos de MakerDAO
MakerDAO es conocido como el creador deDAI (DAI), la moneda estable descentralizada actualmenteamado por los agricultores de rendimientoDAI se crea con deuda. Los usuarios depositan ETH u otros criptoactivos como garantía en la plataforma Maker para luego retirar una parte del valor de esos activos en forma de DAI nuevo.
Para recuperar su garantía, los usuarios deben reembolsar el DAI prestado más los intereses generados (en la jerga de MakerDAO, esta es la "comisión de estabilidad", pero es simplemente una tasa de interés variable). MakerDAO aplica el precio del DAI liquidando la garantía si su valor cae por debajo del umbral mínimo para mantener una colateralización adecuada. Para ETH, esto es el 150%, pero la mayoría de los usuarios invierten mucho más ETH del mínimo.
Entonces, si ETH estuviera a $200 y el usuario publicó 1 ETH para pedir prestados 100 DAI, no será liquidado a menos que ETH caiga por debajo de $150.
Pero el Jueves Negro, el precio de ETH cayócasi $100, desde 193 dólares, lo que desencadenó muchas liquidaciones.
Cualquiera puede realizar liquidaciones, por cierto, mediante bots llamados "Guardianes". MakerDAO también gestiona un Guardián, pero otras entidades desconocidas también lo hacen.
Los guardianes WIN liquidaciones a través de una subasta (descrita paso a paso en lenguaje sencillo)por CoinList), por lo que diferentes Guardianes ofertaron cerrar el préstamo y el Jueves Negro, esas subastas solo duraron 10 minutos, o unas pocas docenas de bloques de Ethereum .
La idea es que estas subastasdebería(y normalmente lo han hecho) han dado como resultado que los usuarios recuperen su garantía menos lo que debían, más la comisión de estabilidad y la comisión de liquidación (es esta última la que perjudica). Pero eso es...No es lo que pasóEsta vez.
Los prestatarios no obtuvieron nada y, de hecho, MakerDAO recibió muy poco DAI y todo el sistema...estaba subcolateralizado.
Conceptos básicos de Ethereum
Ethereum es una cadena de bloques, lo que significa que siempre está recopilando transacciones y los mineros compiten para componer bloques de esas transacciones, cifrarlas, romper el cifrado y luego probar su trabajo al resto de los mineros para WIN una recompensa en bloque.
Las transacciones no son realHasta que están en un bloque minado. Y suele haber más transacciones esperando para entrar en un bloque que espacio para más transacciones. Esas transacciones retrasadas esperan en lo que se llama "grupo de memoria. "
Los mempools son una de esas cosas en las que la mayoría de las personas realmente no necesitan pensar la mayor parte del tiempo, excepto que se vuelven realmente importantes cuando las situaciones se vuelven urgentes: como cuando el precio de ETH está cayendo por un precipicio.
"Cuando más necesitas estar seguro de que las cosas suceden de manera ordenada", dijo Cutler, "es cuando las cosas son menos confiables".
Este es el objetivo de Blocknative. La empresa mantiene un registro detalladocuenta de mempools En todo el mundo, se estudia lo que denomina "valor en movimiento". Blocknative ayuda a sus clientes a decidir si necesitan ser más agresivos en aspectos como el pago de GAS cuando la situación se complica. Los datos de mempool son "valor en movimiento"; los datos de blockchain finalizados son valor en reposo.
Fundamentalmente, los mineros no pueden procesar una nueva transacción si la anterior no T ha realizado. Cada transacción en Ethereum desde una billetera recibe un número, y 515 no se procesará si 514 no se ha realizado (esto se registra mediante el "nonce" de la transacción, en el lenguaje de Ethereum). Esta realidad secuencial resulta ser la clave del ataque.
Lo que Blocknative encontró
Blocknative ha estado guardando datos del mempool de Ethereum desde principios de 2018 (también de sus redes de prueba y de la red Bitcoin ). La empresa decidió revisar los datos del mempool para ver qué sucedió alrededor del 12 de marzo.
Blocknative descubrió que una proporción inusualmente alta del mempool estaba obstruida por transacciones con precios de GAS muy bajos.
Normalmente, esta proporción no es muy alta, ya que los usuarios realmente quieren que sus transacciones se procesen, por lo que monitorean los precios del GAS y los establecen a niveles que probablemente un minero recoja. Pero eso no fue lo que ocurrió el 12 de marzo. Había muchísimas transacciones en el pool con precios de GAS bajos. Demasiadas.
Esto permitió a los atacantes enviar "ofertas cero" en las subastas colaterales de MakerDAO con fuertes precios de GAS adjuntos, sabiendo muy bien que probablemente podrían WIN esas subastas contra bots Keeper bien intencionados que no podrían hacer aprobar sus ofertas.
Blocknative describe algo llamado "Hammerbots". Estos serían bots diseñados para manipular transacciones con el único propósito de saturar el mempool.
Los bots saturaron la memoria con transacciones que nunca se pretendía finalizar. Estos 'Hammerbots' consumieron recursos de la memoria al emitir tasas extremadamente altas de transacciones de reemplazo sin un aumento correspondiente de GAS. escribióen su blog.
Estas transacciones también estaban diseñadas con muchas operaciones inútiles que podían modificarse y cambiarse fácilmente para variar el hash, pero que parecían no tener ningún propósito real.
"Estas transacciones en particular serían particularmente buenas para consumir recursos del mempool", dijo Chris Meisl, cofundador de Blocknative, a CoinDesk.
Problemas en cascada
Entonces ese es el primer problema: la congestión hizo que fuera difícil para los prestatarios en MakerDAO agregar más garantías y dificultó para los Guardianes realizar ofertas.
"Esto generó condiciones anómalas en el mempool, lo que en última instancia favorecería ciertas transacciones", informa la publicación de Blocknative.
Pero hubo otra observación crucial que los atacantes parecen haber hecho sobre Keepers: no parecían estar verificando si las transacciones se estaban realizando.
"Cuando se realizan transacciones en una cuenta o dirección en Ethereum, deben estar ordenadas", dijo Meisl.
Como escribimos anteriormente, si falta un nonce en el registro de una blockchain, los mineros no pueden realizar transacciones posteriores hasta que se complete una con el nonce anterior. Por lo tanto, una transacción posterior quedará bloqueada, incluso si tiene un precio de GAS muy alto, hasta que se complete la ONE .
Esto tuvo un resultado extraño. De la entrada del blog de Blocknative:
En conjunto, si bien el volumen de transacciones que ingresan al mempool aumentó drásticamente, el precio del GAS de una porción significativa del mempool se desplomó a un valor artificialmente bajo.
En resumen: Los atacantes sabían que los Guardianes no lograrían aprobar sus primeras pujas, lo que provocaría que las pujas posteriores, "probablemente" (en palabras de Cutler), se bloquearan. Y funcionó con bastante frecuencia.
El código de fuente abierta que MakerDAO publicó para los bots Keeper no tenía medidas para verificar las transacciones atascadas.
Esto creó una brecha potencial que permitió al atacante presentar una oferta con un precio de GAS fuerte pero una oferta de 0 DAI por la garantía, iniciando así el tictac de esa breve subasta de 10 minutos.
"Si bien los sistemas de comercio automatizado suelen estar diseñados para aumentar programáticamente el precio del GAS en las transacciones, muchos de estos sistemas no gestionan bien las brechas de nonce, o incluso no lo hacen", advierte la publicación de Blocknative.
En 1.462 casos, los Guardianes no se dieron cuenta de que sus ofertas se estaban quedando atrapadas en los mempools, los atacantes ganaron la oferta, robaron millones de dólares en ETH y casi forzaron un apagado de emergencia en MakerDAO.
MakerDAO ha ampliado desde entonces el tiempo de la subasta.hasta seis horasBlocknative ha abierto su conjunto de datos de actividad de mempool para que los miembros de la comunidad puedan estudiarlos más a fondo.
Las notas de la entrada del blog:
El mempool es un elemento crucial, aunque efímero y a menudo ignorado, del ecosistema blockchain. Por ello, presenta muchas incógnitas tanto para desarrolladores como para usuarios.
En este caso, sin embargo, los atacantes estudiaron el código Keeper de Maker y se dieron cuenta de que era posible saber lo que los verdaderos Keepers no T.