Hechos clave:
-
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.