-
Los tokens deflacionarios STA y STONK posibilitaron el ataque.
-
Esta es la tercera plataforma DeFi atacada en lo que va de 2020.
Las gallinas están a salvo en el granero (el zorro no vino hoy); las zanahorias tampoco fueron mordisqueadas por las musarañas; pero de la granja del yield farming un hacker logró sustraer USD 450.000. Dos pools multi-tokens de la plataforma de DeFi Balancer fueron drenados en un ataque el atardecer del 28 de junio.
Según pudo conocerse, un atacante aprovechó un exploit facilitado por los llamados tokens deflacionarios, STA y STONK, para vaciar el contenido de dos pools, en tan solo dos transacciones. La primera, ocurrida a las 06:03 PM UTC; la segunda, a las 06:49 pm UTC.
Los pools de Balancer automatizan las operaciones de market making. En vez de pagar comisiones a gestores de portafolio para rebalancear tu portafolio, con Balancer se colectan comisiones de traders que rebalancean tu portafolio. Puedes ganar dividendos al proveer liquidez al mercado o al intercambiar tokens en los pools buscando oportunidades de arbitraje.
Al parecer, el atacante vio en la conjunción entre el modelo de Balancer y la disponibilidad en sus pools de tokens deflacionarios -esto es, tokens cuyo suministro se reduce con el tiempo y, por lo tanto, es limitado- un vector de ataque para drenar saldos en la plataforma de DeFi.
El agregador de casas de cambio descentralizadas (DEX), 1inch, hizo un recuento en Medium del ataque, explicando que el hacker “utilizó un contrato inteligente para automatizar múltiples acciones en una sola transacción” al momento de sustraer los fondos.
Anatomía del ataque
El ataque se realizó en tres pasos.
Primero, obtuvo un FlashLoan o préstamo relámpago del DEX dYdX por 104.000 WETH, los cuales fueron intercambiados por tokens STA y devueltos a WETH veinticuatro veces en cantidades crecientes. En cada intercambio, el STA tiene una comisión de transferencia y el pool espera recibir un balance sin comisión. Esto terminó por drenar el balance de STA del pool, y lo dejó con solo 1 weiSTA (0.000000000000000001 STA).
“Esto fue posible porque los contratos de pool de Balancer mantienen registro de los balances del token en el contrato y el token STA tiene un modelo deflacionario con comisiones de transferencia de 1% cobrados al receptor”, explica el informe. Por esta razón, cada vez que el atacante cambiaba WETH por STA, el pool de Balancer recibía 1% menos STA del esperado, reduciendo la liquidez.
Debido a que el balance de STA era cercano a cero, su precio relativo a otros tokens incrementó enormemente, permitiéndole al atacante usar STA para intercambiar por otros tokens en el pool a muy bajo precio.
En ese sentido, el segundo paso fue cambiar el weiSTA sobrante a WETH múltiples veces. Debido a la implementación de comisiones de transferencia para STA, el pool nunca recibía el token STA pero aun así liberaba el WETH. Este mismo procedimiento fue repetido para drenar los balances de WBTC, SNX y LINK del pool.
Como últimos pasos, el atacante pagó el FlashLoan proveniente de dYdX. Depositó algunos weiSTA en el pool de Balancer; cambió los tokens de Balancer recibidos como incentivo de la plataforma por 136.000 STA a través del DEX Uniswap V2 y por último cambió esos STA por 109 WETH. En la presente dirección pueden verse los fondos drenados.
Balancer y los ataques a DeFi
Por lo complicado del procedimiento, puede intuirse que el atacante es un gran conocedor del yield faming y de las plataformas de DeFi. Con todo, al haber utilizado la herramienta para transacciones privadas en Ethereum, Tornado Cash, para obtener los fondos iniciales, es poco probable dar con la identidad del atacante y con el origen de los ethers iniciales.
El propio co-fundador de Balancer Labs, Mike McDonald, admitió que no estaban conscientes en Balancer de la posibilidad de realizar un ataque como este, si bien han advertido sobre los riesgos colaterales de los ERC20 con comisiones de transferencia como STA y STONK. Al ser Balancer un protocolo sin-permisos, McDonald afirma que cualquier token malicioso o mal diseñado puede ser agregado a los contratos del protocolo sin que ellos tengan control sobre ello.
Como medidas futuras, Balancer comenzará a agregar tokens con comisiones de transferencia a una lista negra. De igual manera, procederán a una tercera revisión del protocolo y añadirán mayor documentación sobre los riesgos de este tipo de pools.
Si bien el llamado yield farming o rendimiento agrícola ha demostrado ser bastante lucrativo para algunos, las plataformas DeFi que lo hacen posible no han dejado de evidenciar riesgos. Sumado a los ataques a bZx y a Lendf.Me, Balancer sería la tercera plataforma DeFi atacada en lo que va de 2020.
Los usuarios también han notado los riesgos, al menos de estos tokens con comisiones de transferencia. Para el momento de redacción, el precio del token STA de Statera ha caído un 71.8%, cotizando en USD 0,01293; mientras que el STONK cae 28,2% hasta los USD 0,00994, según CoinGecko.