今年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
接下来,攻击者在 UniswapV2 中抵押 107,000 枚CHEESE 和 78 枚ETH 来提供交易流动性,同时获得 UniswapV2 上自动生成的 UNI_V2 LP 凭证。UNI_V2 LP 凭证是流动性提供者(LP)在 UniswapV2 上提供流动性并提取相应资产的唯一质押凭证。此时攻击者剩余 20,871 枚ETH(包含交易手续费);
在 UniswapV2 中抵押 107,000 枚CHEESE 和 78 枚ETH 提供交易流动性
攻击者进一步把所获取的抵押品 UNI_V2 LP 凭证转换为 sUSD_V2 凭证,这一步有利于攻击者以 UNI_V2 LP 凭证作为抵押品在 Cheese Bank 上贷出稳定币;
把所获取的抵押品 UNI_V2 LP 凭证转换为 sUSD_V2 凭证
抬高 CHEESE 的价格
重置喂价预言机来操纵 UNI_V2 LP 凭证的价格
据 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 闪电贷
“科学家”精心设计的攻击