Balancer: 闪电贷+恒定积损失50万美金 & Compound金融模型漏洞
Balancer: 闪电贷+恒定积损失50万美金 & Compound金融模型漏洞
Balancer: 闪电贷+恒定积损失50万美金
2020年6月29日,Balancer遭受闪电贷攻击,Balancer是使用恒定积进行的AMM市场,池子中的Assets在遵守恒定积的前提下可按池子当时的利率进行交换,本次闪电贷攻击利用了该原理,将一种Asset掏空后,用另一种Assets以很低的价格获取,由此获利接近50万美金。
攻击hash:0x013be97768b702fe8eccef1a40544d5ecb3c1961ad5f87fee4d16fdc08c78106
攻击步骤:
攻击者去dYdX借贷104k WETH;
攻击者在Balancer的WETH-STA池子里将步骤1得来的WETH不断地换成STA代币,21次之后,池子中的STA被掏空,只剩下1weiSTA(由于通缩模型,至少会剩余1weiSTA在池子里);
攻击者按照恒定积公式,使用1weiSTA不断地获取池子中的WETH,价格分别为1weiSTA:30,347WETH,1weiSTA:15,173WETH等等,进行18次兑换之后,WETH几乎被兑空;
同理,攻击者也将WBTC-STA,SNX-STA,LINK-STA池子进行了同样的操作;
攻击者去dYdX退回104k WETH;
攻击者将获取的少量STA(<50weiSTA)放入Balancer池子里添加流动性,由于池子里目前STA数量很少,仅有1weiSTA,因此攻击者此时获取了很高的LP share,这些share可以获取池子的代币奖励,共计获取了136k STA;
攻击者将136k STA 兑换成了109 WETH,由此完成整个攻击过程。
攻击完毕之后,攻击者将得到的币转入0xbf675c80540111a310b06e1482f9127ef4e7469a,该地址的所有操作都由Tornado进行,因为已无法追溯。
攻击者共计得到下列战利品:
- 455 WETH ($100k worth)
- 2.4m STA ($100k worth) and converted it to 109 WETH ($25k worth)
- 11.36 WBTC ($100k worth)
- 60.9k SNX ($100k worth)
- 22.6k LINK ($100k worth)