By:?Kong@慢雾安全团队
背景
通过以上分析我们可以知道WETH的价格和DAI的价格获取是正常的,无法被恶意操纵,因此我们可以大胆猜测:攻击者通过将巨量的WETH打入WETH-DAI池子中换取DAI,这时候池子中WETH的数量将大大的增加,而由于滑点的存在,这种巨量兑换操作必然是会亏损一大部分WETH的。所以我们再看上面LP单价的计算方式,由于WETH数量的大大增加,在巨量兑换后池子中WETH数量*WETH价格+池子中DAI数量*DAI价格将远大于巨量兑换前的,也就是池子的总价值大大增加了。所以LP的单价也随之提高了,因此攻击者就可以通过其抵押的LPToken借出更多的稳定币了。
Divi 发布移动钱包以推动加密货币的主流采用:金色财经报道,随着英国推出用户友好的移动钱包,Divi 朝着创建完全去中心化的私人支付解决方案的目标迈出了重要一步,推动了加密技术的大规模采用。智能钱包由 Divi 的金融科技创新中心 Divi Labs 开发,包括一套创新功能,可解决阻碍主流使用的可用性和可访问性问题,同时兑现公司对个人托管和财务主权的承诺。它们包括:可消除发送/接收加密货币风险的可读地址;该公司专有的一键式主节点技术,使用户只需按一下按钮即可部署节点并获得 DIVI;质押金库,确保任何人拥有DIVI 可以赚取多少,无论他们持有多少或他们可以使用的技术/带宽。(finextra)[2021/10/12 20:22:20]
分析思路验证
我们可以借助Ethtx.info来验证我们的猜测是否正确:
https://ethtx.info/mainnet/0x8bb8dc5c7c830bac85fa48acad2505e9300a91c3ff239c9517d0cae33b595090
韩国记者协会与与PUBLISH合作 采用区块链技术改善新闻媒体生态系统:10月7日消息,PUBLISH, Inc.宣布已与韩国记者协会签署了谅解备忘录。签约仪式于10月5日在首尔的韩国新闻中心举行。通过这种伙伴关系,PUBLISH计划使用去中心化识别技术向会员记者颁发基于区块链的新闻凭证,并希望引入NFT技术作为帮助记者将新闻内容货币化的一种方式。韩国记者协会 (JAK) 是韩国最大的专业记者组织,目前拥有超过11,000名个人记者,为韩国的报业公司、广播服务机构、数字新闻网站和通讯社工作。PUBLISHiD,一种使用区块链技术的自主主权身份解决方案。PUBLISH是一家为记者开发数字工具和技术的全球技术媒体公司。(Business Wire)[2021/10/7 20:11:21]
1、通过上文中第4点分析我们可以知道:攻击者通过Uniswap的WETH-DAI交易对将大约34万的WETH兑换成约4762万DAI,此时WETH-DAI池子中约剩下有43.6万枚WETH和1328.8万枚DAI,而在此之前池子里约有9.5万枚WETH和6091万枚DAI。
分析 | 比特币采用与传统金融系统相比“微不足道”:据TNW消息,美国国会智库机构之一——国会研究处(CRS)5月发布报告称,支撑加密货币的分布式账本系统尚且无法处理大规模采用所需的交易数量,它们实际上只是用于投机。该研究认为比特币的价格数据并不能准确反映其总体需求。CRS研究了每天转移比特币的次数,并发现与传统金融系统相比,其交易数量“微不足道”。 报告称,尽管美国对现金的需求正在稳步增长,但现金用于支付的情况正变得越来越不常见。尽管如此,人们并没有像业内人士所希望的那样转向比特币。到目前为止,从现金向传统非现金支付系统的转移在很大程度上是有利的;与此同时,一些观察家预测新的替代系统将在未来发挥更大的作用,这样的替代系统旨在解决传统非现金系统的低效和风险问题,但在实现这一目标方面面临障碍,并涉及到自身的成本。使用分布式账本技术的私有系统(如加密货币)可能无法很好地发挥货币的主要功能,并面临着广泛接受和技术可扩展性方面的挑战。[2019/5/29]
2、我们可以在Ethtx.info发现在兑换前WETH-DAI池子的LPToken单价为58815427。
巨量兑换后WETH-DAI池子的LPToken单价为135470392。
我们可以看到由于WETH数量的增加造成兑换后池子的总价值几乎翻倍了,因此单个LPToken在Warp中可借出的稳定币就更多了。
3、接下里如我们猜测的那样攻击者在拉高LPToken的价格后通过WarpControl合约的borrowSC函数分别借出DAI和USDC。
4、最后在Uniwsap的WETH-DAI池子总归还DAI,重新拿回34万枚WETH完成攻击操作。最后只需按部就班的归还闪电贷即可获利。
完整的攻击流程如下
1、攻击者部署攻击合约,并通过dydx与Uniswap闪电贷借出DAI和WETH。
2、攻击者拿出一小部分的DAI和WETH在Uniswap的WETH-DAI池中添加流动性,并获取LPToken。
3、攻击者使用添加流动性获取的LPToken抵押到WarpFinance中,为借出稳定币做准备。
4、攻击者利用巨量的WETH在Uniswap兑换成DAI来拉高WETH-DAI池子的总价值,使得WarpFinance中LPToken的单价变高。(注意这里WETH和DAI价格获取是正确的并没有被操纵,被操纵的是WETH的数量,通过增加WETH的数量来拉高池子的总价值)。
5、由于LPToken的单价变高,导致攻击者抵押的LPToken可以借出更多的稳定币来进行获利。
总结
本次攻击的本质是通过操纵LPToken的单价来获取更多的稳定币可借贷数量进行获利的。这是由于在WarpFinance中LPToken的价格是通过LP池子的总价值除以LPToken的总数量得到的,虽然代币价格获取正确,但代币数量是可被操纵的,因此LP的单价就是可被操纵的,这就形成了攻击的必要条件了。最终项目方损失约800万美元,但攻击者抵押的LP也留在了Vault中,如果抵押的这部分LP后续可被清算的话可以一定程度上的弥补项目方的损失。
相关参考链接如下:
Uniswap预言机实现介绍:
https://uniswap.org/docs/v2/core-concepts/oracles/
本次分析的攻击交易:
https://etherscan.io/tx/0x8bb8dc5c7c830bac85fa48acad2505e9300a91c3ff239c9517d0cae33b595090
慢雾导航
慢雾科技官网
https://www.slowmist.com/
慢雾区官网
https://slowmist.io/
慢雾?GitHub
https://github.com/slowmist
Telegram
https://t.me/slowmistteam
https://twitter.com/@slowmist_team
Medium
https://medium.com/@slowmist
币乎
https://bihu.com/people/586104
知识星球
https://t.zsxq.com/Q3zNvvF
火星号
http://t.cn/AiRkv4Gz
链闻号
https://www.chainnews.com/u/958260692213.htm
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。