Tal parece que DeFi es un terreno en el que aún hay mucho por trabajar para mejorar la seguridad de sus participantes. Luego del reciente fallo de Binance, un comerciante deshonesto manipuló el exchange descentralizado (DEX) Mango para drenar más de USD $116 millones en liquidez.
La mencionada bolsa permite a sus usuarios comerciar con futuros al contado y perpetuos utilizando su interfaz de comercio on chain (en la cadena) a bajas tarifas. El movimiento se produjo en medio de una deuda incobrable dentro del ecosistema relacionado a un préstamo hecho a una gran ballena de Solana.
Como se informó, Mango y la plataforma rival Solend, ambas basadas en la Blockchain Solana, se asociaron a principios de año para reunir fondos y rescatar a la ballena, que debía unos USD $207 millones a múltiples plataformas DeFi. El movimiento respaldaría pérdidas en Solana si fuese necesario liquidarle la posición.
Preparando el ataque
Basado en Solana, y al igual que otros DEXs, Mango se apoya en contratos inteligentes para hacer coincidir las operaciones entre usuarios de finanzas descentralizadas (DeFi). La clave para entender cómo sucedió el exploit es la siguiente:
Los contratos inteligentes son descentralizados, no interviene nadie en su supervisión. Significa que un comerciante inescrupuloso podría utilizar suficiente dinero para explotar lagunas de cualquier protocolo sin arriesgarse a que una parte centralizada intervenga y detenga el ataque antes de producirse.
Para llevar a cabo el ataque, el comerciante usó dos cuentas:
- Cuenta «A», con disponibilidad de USDC $5 millones (USD Coin) para comprar MNGO 483 millones y ponerse en corto, o apostar contra el activo.
- Cuenta «B», con la misma disponibilidad de USDC para comprar la misma cantidad de MNGO y ponerse en largo, o apostar a favor del activo.
El operador utilizó USDC 10 millones para cubrir eficazmente su posición, según la data de Mango, señalada a su vez por el Jefe de Derivados de Genesis, Joshua Lim.
1/ this is how I think the mango attack played out, please let me know if I got anything wrong:
at 6:19 PM ET, attacker funded acct A (CQvKS…) with 5mm USDC collateralhttps://t.co/hZuV3WexWh https://t.co/cs2Wxo2Roy pic.twitter.com/rkdtJ8KU7h
— Joshua Lim (@joshua_j_lim) October 12, 2022
Así sucedió el fallo
Continuando con su plan, el operador aumentó la cantidad de fondos para comprar más MNGO al contado, aumentando su precio de 2 a 91 céntimos en diez minutos. Esto fue posible con un token poco negociado al contado y de poca liquidez, lo que le permitió manipular rápidamente los precios.
Siendo así, y a medida que el precio de MNGO al contado aumentaba, el operador fue capaz de acumular USD $420 millones en beneficios no realizados en la cuenta «B», y retirar más de USD $116 millones en liquidez de todos los tokens disponibles en Mango, lo que finalmente acabó con el protocolo.
Pronto, los precios al contado de MNGO corrigieron de nuevo a 2 céntimos, cayendo incluso por debajo del precio que el comerciante utilizó la primera vez para comprar futuros de MNGO en la cuenta «A».
Actuación limpia
Mango no fue hackeada, solo funcionó exactamente como estaba previsto, y un comerciante astuto, aunque con intenciones nefastas, logró arrancar la liquidez de los tokens, pagando tasas mínimas durante el ataque y haciendo todo correctamente, dentro de los parámetros establecidos para la plataforma.
Cabe destacar que este tipo de estrategia de manipulación no funcionaría en dos exchanges centralizados, ya que los precios subirían automáticamente en uno de ellos, con el otro siguiéndole inmediatamente, por lo que es poco probable que la estrategia genere beneficios.
Los desarrolladores de Mango dijeron que habían revisado el fallo y culparon del error al proveedor de oráculos Pyth. Un oráculo es una herramienta de terceros capaz de obtener datos desde fuera de una cadena de bloques hacia dentro de ella misma.
Defienden a Pyth
La afirmación de Mango fue incluso defendida por los defensores de Pyth. Kanav Kariya, presidente de Jump Crypto, fondo de criptomonedas que ha apoyado en gran medida a Pyth, escribió en un tuit:
«El atacante infló y rompió el precio del token de Mango, un token poco negociado. Los oráculos solo informan el precio. Pyth/Switchboard informó con precisión los precios vigentes en los intercambios».
Jesus, the attacker pumped and dumped the mango token, which is a thinly traded token.
Oracles just report the price. Pyth/Switchboard accurately reported the prevailing prices on exchanges
— Kanav Kariya (@KanavKariya) October 12, 2022
MNGO ha bajado un 40% en las últimas horas.