从昨天晚上所有DeFi 相关的群里就热闹了起来主要是 因为 bZx 受到 Oracle (预言机)攻击, 存币用户受到了损失 。
很多分析没有一步一步解释黑客是怎么通过声东击西, 在5个 DeFi 产品中, 以0成本套利。
我们梳理了整个攻击过程。
结论:黑客通过多合约调用,在一笔链上交易中, 用0抵押金, 让bZx 借贷池损失51.34 BTC, 在Compound 得到18w 美金等值的存款。 bZx 锁定管理权限,黑客没有成功提取51.34 BTC 盈利。
简单介绍一下 bZXbZx是一种去中心化的保证金交易协议。 Fulcrum (bZx 产品名)的功能是能够使用代币作为抵押来借贷。为了确定需要多少抵押品去借钱,bZx使用Kyber作为链上预言机来检查抵押品和借贷的比例。简单来说, bZx 类似一家银行, 用户通过抵押虚拟货币, 加杠杆借贷。和银行一样, 用户抵押100元的房子(BTC, ETH) , 换出 66元的现金(DAI, USDC )但是银行的借款, 贷款, 清算都是一家机构独立完成。然而bZx 的保证金交易依赖 Kyber 的链上流动性和报价。也就是说 bZx 对抵押品的价格的估算, 是依靠Kyber 完成的。我们了解一下Kyber网络的功能。Kyber网络从储备(Reserve)中获取流动性。当用户想要在两个代币A和B之间进行交易时,主Kyber合约将查询所有已注册的储备金以获取A / ETH和ETH / B之间的最佳汇率,然后使用所选的两个储备金进行交易。
黑客通过操控Kyber 和 Uniswap WBTC/ ETH 的价格, 完成了空手套白狼的交易。
黑客攻击步骤 :
从dydx , 0抵押物, 借 1万个 ETH
在Compound 存 5500 ETH, 借 112 BTC 【这笔钱最后没有还!】
在bZx 存1300 ETH, 5倍杠杆做空, 借 5637 ETH 【这笔钱最后也没有还!】
通过Kyber Reserve 到 Uniswap WBTC pool 卖5637 ETH 【150万美金】, 获得 51.34BTC 【51万美金】
更细节的交易顺序
5.把Compound 借出来的 112 BTC , 在 Uniswap WBTC pool 卖112 WBTC, 获得 6800 ETH
6.将3200 ETH 【从来没用过】 + 6800 ETH 【卖112 BTC 获利】 = 10000 ETH 还给dydx
那么问题来了:谁赚了钱 ?谁赔了钱?到底谁犯了错?
结论 :
Compound 得到了 2,213.26 ETH 充值,$ 359,839.76 的 WBTC 借贷。清算人会赚钱。
dydx 被免费使用。0收入。
Kyber 的 Proxy 不够强壮。
Uniswap 浅的池子根本不能做Oracle 。
bZx 的 iETH 池充值的人损失了 ,但是WBTC 池充值的人赚钱了。所以bzx 锁了WBTC 池黑客的钱, 准备付给iETH 池子损失的人。
利益相关:
DDEX Margin 是一个去中心化交易平台, 可以杠杆交易, 借贷, 生息。DDEX Margin 通过在以太坊上的智能合约完成100%保证金交易。
随存随取, 秒赚利率, USDT, USDC, DAI, ETH, WBTC
最高5倍杠杆, 看涨看空 ETH, BTC
智能合约由MakerDao 外部审计团队 PeckShield 保驾护航
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。