“科学家”的盛宴:Cheese Bank被带走的330万美元
今年11月,去中心化金融(defi)总锁仓量再创新高,突破16亿美元。DeFi,宣称人人公平可参与,凭借吸纳百亿资金入场在今年备受瞩目,但与此同时出现了一群人,他们依靠者技术实力和知识门槛专薅 DeFi 的羊毛,这群人被中文币圈中戏称为 “科学家”。
据PeckShield统计,自今年起,已发生多起“科学家”薅 DeFi 羊毛的安全事件。今年2月,有“科学家”利用DeFi 贷款协议 bZx 通过一笔交易获取十几万账面收益;10月,攻击者利用闪电贷攻击 Harvest.Finance 协议,使其损失高达 3380 万美元,以及11月攻击者利用闪电贷攻击 Value DeFi 的 MultiStablesVault 池子,导致平台亏损价值近 740 万美元的 DAI。
DeFi 中的“科学家”可类比为互联网的技术羊毛党。在移动互联网补贴大战中,职业羊毛党应运而生。一个手机号只会注册一次享受一次优惠,这些职业羊毛党则开辟了一条养卡、注册账号、代收短信验证码、薅羊毛的产业链。
而在 DeFi 的世界里,“科学家”则把 “借款、转移(执行)、还款” 都编程到一笔发往智能合约的交易里,以此来实现以极低甚至零成本在各个 DeFi 协议之间进行高额套利,或者利用可组合性的漏洞进行攻击盗取巨额资金。
PeckShield 近日发现,“科学家”于北京时间11月7日凌晨3时22分,利用闪电贷(Flash loan)通过一笔交易攻击一家去中心化数字银行 Cheese Bank 获利 330 万美元。
凭空套走的 330 万美元
PeckShield 通过追踪和分析发现,攻击者首先通过 dYdX 闪电贷贷出 21,000 枚ETH;
通过 dYdX 闪电贷贷出 21,000 枚ETH
随后,在 UniswapV2 中将 50 枚WETH 兑换为 107,000 枚CHEESE (Cheese Bank 通证),在 UniswapV2 协议中可将 ETH 1:1 转换为 WETH,同时WETH 也可 1:1 转换为 ETH ),攻击者剩余 20,950 枚ETH;
在 UniswapV2 中将 50 枚WETH 兑换为 107,000 枚CHEESE
接下来,攻击者在 UNIswapV2 中抵押 107,000 枚CHEESE 和 78 枚ETH 来提供交易流动性,同时获得 UniswapV2 上自动生成的 UNI_V2 LP 凭证。UNI_V2 LP 凭证是流动性提供者(LP)在 UniswapV2 上提供流动性并提取相应资产的唯一质押凭证。此时攻击者剩余 20,871 枚ETH(包含交易手续费);
在 UniswapV2 中抵押 107,000 枚CHEESE 和 78 枚ETH 提供交易流动性
据悉,Cheese Bank 于今年10月推出借贷协议 2.0 版本,2.0 版本支持创新的流动性凭证(LP Tokens)抵押借贷功能。攻击者在上一步获取 UNI_V2 LP 凭证,有利于他接下来在 Cheese Bank 上贷出其他加密资产。
攻击者进一步把所获取的抵押品 UNI_V2 LP 凭证转换为 sUSD_V2 凭证,这一步有利于攻击者以 UNI_V2 LP 凭证作为抵押品在 Cheese Bank 上贷出稳定币;
把所获取的抵押品 UNI_V2 LP 凭证转换为 sUSD_V2 凭证
随后,攻击者在 UniswapV2 中将 20,000 枚ETH 兑换为 288,000 枚CHEESE,这一步会影响 UniswapV2 上 CHEESE 池子的平衡,进而抬高 CHEESE 的价格,相较于此前的价格提高了145倍),攻击者剩余 871 枚ETH(包含交易手续费)。值得注意的是,Cheese Bank 以流动性矿池 UNI_V2-CHEESE-ETH 中 WETH 的数量来衡量所对应的 UNI_V2 LP 凭证的价格,攻击者通过提高 UNI_V2 LP 凭证的价格能有效地贷出更多 USDC 、USDT 、DAI 。
抬高 CHEESE 的价格
在这一步中,攻击者通过重置喂价预言机来操纵 UNI_V2 LP 凭证的价格,从下列公式可知,UNI_V2 LP 的价格受到流动池中 WETH 的数量和 UNI_V2-USDT-ETH 池中 ETH价格的影响,即 WETH*2*ETH的价格=LP总价,LP单价=LP总价/LP总供应量,当攻击者将增加池中 WETH 的数量时,UNI_V2 LP 凭证的价格也会上涨。
重置喂价预言机来操纵 UNI_V2 LP 凭证的价格
攻击者就是通过上一步,即提高 UNI_V2 LP 凭证的价格来贷出价值 330 万美元的 USDC 、 USDT 和 DAI,并顺利从 Cheese Bank 转出,将其纳入囊中,此时,他只需将所贷的 21,000 ETH 还上即可。
据 PeckShield 统计,攻击者共计从 Cheese Bank 中贷出 2 百万枚USDC, 123 万枚USDT 和 8.7 万枚 DAI 。
从 Cheese Bank 中贷出 2 百万枚USDC
共计 2 百万枚USDC, 123 万枚USDT 和 8.7 万枚 DAI
并将这笔攻击所获资产从 0x02b7 的地址中分批转出。
最后,攻击者在 Uniswap V2 上将 288,000 枚CHEESE 转换为 19,980 枚ETH (包含手续费),为补足所贷的 21,000 枚ETH,他将 58,000 枚 USDC 转换为 132 ETH ,再加上剩余的 871 枚ETH(包含交易手续费)归还给 dYdX 闪电贷,一切就好像没有发生过一样。
归还 dYdX 闪电贷
PeckShield 相关负责人表示:“在追踪过程中,我们发现这实际上是‘科学家’精心设计的一次攻击。在实施之前,‘科学家’演算过他所持有的 LP 凭证值正好是能把 Cheese Bank 清空的数额。”
“科学家”精心设计的攻击
在DeFi浪潮上,获利的多为“科学家”和大户,技术和资金是他们的资本,而安全才是 DeFi 项目唯一有利的防线。科学家们的薅羊毛游戏会无限进行下去,DeFi 们将如何守住最后一道防线?PeckShield 将持续紧密关注。
微信掃描關注公眾號,及時掌握新動向
2.本文版權歸屬原作所有,僅代表作者本人觀點,不代表比特範的觀點或立場
2.本文版權歸屬原作所有,僅代表作者本人觀點,不代表比特範的觀點或立場