逐步还原利用借贷协议bZx套取51BTC的真相细节

原文标题:《DeFi 低调分享 | 如何空手套白狼 51 个 BTC》
原文来源:Hydro 社区 作者:Bowen
从昨天晚上所有 DeFi 相关的群里就热闹了起来
主要是 因为 bZx 受到 Oracle (预言机) 攻击,存币用户受到了损失。
很多分析没有一步一步解释黑客是怎么通过声东击西,在 5 个 DeFi 产品中,以 0 成本套利。

逐步还原利用借贷协议bZx套取51BTC的真相细节

我们梳理了整个攻击过程。

逐步还原利用借贷协议bZx套取51BTC的真相细节

结论:
黑客通过多合约调用,在一笔链上交易中,用 0 抵押金,让 bZx 借贷池损失 51.34 BTC,在 Compound 得到 18w 美金等值的存款。

bZx 锁定管理权限,黑客没有成功提取 51.34 BTC 盈利。
简单介绍一下 bZX
bZx 是一种去中心化的保证金交易协议。

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 之间的最佳汇率,然后使用所选的两个储备金进行交易。

逐步还原利用借贷协议bZx套取51BTC的真相细节

黑客通过操控 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 万美金】

逐步还原利用借贷协议bZx套取51BTC的真相细节

更细节的交易顺序
逐步还原利用借贷协议bZx套取51BTC的真相细节
5. 把 Compound 借出来的 112 BTC,在 Uniswap WBTC pool 卖 112 WBTC, 获得 6800 ETH
6. 将 3200 ETH 【从来没用过】 + 6800 ETH 【卖 112 BTC 获利】 = 10000 ETH 还给 dydx 

逐步还原利用借贷协议bZx套取51BTC的真相细节

那么问题来了:

谁赚了钱?

谁赔了钱?

到底谁犯了错?

结论 :
Compound 得到了 2,213.26 ETH 充值,$ 359,839.76 的 WBTC 借贷。清算人会赚钱。
dydx 被免费使用。0 收入。
Kyber 的 Proxy 不够强壮。
Uniswap 浅的池子根本不能做 Oracle。
bZx 的 iETH 池充值的人损失了,但是 WBTC 池充值的人赚钱了。所以 bzx 锁了 WBTC 池黑客的钱,准备付给 iETH 池子损失的人。

逐步还原利用借贷协议bZx套取51BTC的真相细节

利益相关:
DDEX Margin 是一个去中心化交易平台,可以杠杆交易,借贷,生息。DDEX Margin 通过在以太坊上的智能合约完成 100% 保证金交易。
随存随取,秒赚利率,USDT, USDC, DAI, ETH, WBTC
最高 5 倍杠杆,看涨看空 ETH, BTC
智能合约由 MakerDao 外部审计团队 PeckShield 保驾护航 

逐步还原利用借贷协议bZx套取51BTC的真相细节

作者微信

bowenwangcrms
来源链接:weixin.qq.com

区块律动 BlockBeats 提醒,根据银保监会等五部门于 2018 年 8 月发布《关于防范以「虚拟货币」「区块链」名义进行非法集资的风险提示》的文件,请广大公众理性看待区块链,不要盲目相信天花乱坠的承诺,树立正确的货币观念和投资理念,切实提高风险意识;对发现的违法犯罪线索,可积极向有关部门举报反映。