返回档案库

案例库 · 财务与会计 · 技术决策 · 2022

Beanstalk 让一笔闪电贷投了票——一笔 10 亿美元贷款通过了预算

2022 年 4 月 17 日,一名攻击者闪电贷了超过 10 亿美元,买下足够票数让自己提出的提案通过,并在一笔交易里从 Beanstalk 抽走了 1.81 亿美元。

Beanstalk Farms · 2022-04-17

怎么回事

Beanstalk 是一个由代币投票治理的去中心化稳定币协议:提案只要获得足够多的已存代币支持就会被执行,此外还有一条紧急路径,在三分之二多数下可以立即行动。2022 年 4 月 16 日,一名攻击者提交了 BIP-18——一份提案顶着无害的表象,实则是把协议资金转移到攻击者控制的合约。紧急执行需要一天的延迟,所以这份提案在任何人能处理之前,先搁置了 24 小时。

4 月 17 日大约 12:24 UTC,攻击者出手了:闪电贷超过 10 亿美元——从 Aave 借出 3.5 亿美元 DAI、5 亿美元 USDC 和 1.5 亿美元 USDT,经 UniswapV2 借出约 3200 万美元 BEAN,经 SushiSwap 借出近 1200 万美元 LUSD——转换成已存代币,进而转换成投票权。借助这笔借来的多数票,攻击者通过了 BIP-18,在一笔交易里抽干了协议的储备,再用所得偿还了闪电贷。

总抽走金额为 1.81 亿美元。团队销毁了攻击者合约里剩余的 Beanstalk 原生代币,于是攻击者只带走了约 7700 万美元的非 Beanstalk 资产。Beanstalk Farms 暂停了治理、冻结协议并准备更安全地重启;另有一份攻击者提案甚至把 25 万美元的 BEAN 代币转到了乌克兰官方加密货币捐款地址。

为什么会这样

  • 投票权属于投票那一刻持有已存代币的人——而一笔闪电贷就能让投票权只存在一笔交易的时间。
  • 紧急路径只需要三分之二多数加一天延迟;两者都可以用借来的钱买到。
  • 协议自己的储备就是提案要转移的奖品——治理本身就是攻击面。
代价被抽走 1.81 亿美元;约 7700 万美元落入攻击者之手代价高昂

教训

如果投票权可以被租用一个区块,治理就成了攻击面。Beanstalk 的储备被一份用借来的选票通过的提案转走——单笔交易 1.81 亿美元。

资料来源

发现哪里写错了?告诉我们。

Comments · 0

    登录 后就能评论。

    类似的案例

    这家公司栽倒的地方,别处有人漂亮地解开过。 第二意见 →