返回文章列表

Balancer: 流动性池遭闪电贷攻击(2)

什么是Balancer?

Balancer是一个非托管的通用自动做市商(AMM)协议。具体可参见:什么是流动性挖矿Balancer?

Balancer 流动性池遭闪电贷攻击,损失 50 万美金,Balancer 上遭遇损失的为 STA 和 STONK 两个代币池,目前这两个代币池的流动性已枯竭。STA 和 STONK 代币均为通缩代币,也就是说这种攻击仅影响通缩代币的流动性池。

2020年6月29日,Balancer遭受闪电贷攻击,Balancer是使用恒定积进行的AMM市场,池子中的Assets在遵守恒定积的前提下可按池子当时的利率进行交换,本次闪电贷攻击利用了该原理,将一种Asset掏空后,用另一种Assets以很低的价格获取,由此获利接近50万美金。

使用Tokenview区块浏览器查看被攻击的hash:0x013be97768b702fe8eccef1a40544d5ecb3c1961ad5f87fee4d16fdc08c78106

Balancer被攻击的步骤

1. 攻击者去dYdX借贷104k WETH;

2. 攻击者在Balancer的WETH-STA池子里将步骤1得来的WETH不断地换成STA代币,21次之后,池子中的STA被掏空,只剩下1weiSTA(由于通缩模型,至少会剩余1weiSTA在池子里);

3. 攻击者按照恒定积公式,使用1weiSTA不断地获取池子中的WETH,价格分别为1weiSTA:30,347WETH,1weiSTA:15,173WETH等等,进行18次兑换之后,WETH几乎被兑空;

4. 同理,攻击者也将WBTC-STA,SNX-STA,LINK-STA池子进行了同样的操作;

5. 攻击者去dYdX退回104k WETH;

6. 攻击者将获取的少量STA(50weiSTA)放入Balancer池子里添加流动性,由于池子里目前STA数量很少,仅有1weiSTA,因此攻击者此时获取了很高的LP share,这些share可以获取池子的代币奖励,共计获取了136k STA;

7. 攻击者将136k STA 兑换成了109 WETH,由此完成整个攻击过程。

攻击者获得的战利品

  • 455 WETH (价值10万美元)
  • 2.4m STA (价值10万美元)和转换成的109 WETH(2.5万美元)
  • 11.36 WBTC (价值10万美元)
  • 60.9k SNX (价值10万美元)
  • 22.6k LINK (价值10万美元)

使用Tokenview Defi浏览器查看流动性挖矿DeFi列表。

最近搜索