原文标题:《DeFi 低调分享 | 如何空手套白狼 51 个 BTC》 从昨天晚上所有 DeFi 相关的群里就热闹了起来,主要是因为 bZx 受到 Oracle (预言机) 攻击, 存币用户受到了损失 。 很多分析没有一步一步解释黑客是怎么通过声东击西, 在 5 个 DeFi 产品中, 以 0 成本套利。 我们梳理了整个攻击过程。 结论: 黑客通过多合约调用,在一笔链上交易中, 用 0 抵押金, 让 bZx 借贷池损失 51.34 BTC, 在 Compound 得到 18w 美金等值的存款。 简单介绍一下 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 之间的最佳汇率, 然后使用所选的两个储备金进行交易。 黑客通过操控 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 万美金】更细节的交易顺序 把 Compound 借出来的 112 BTC , 在 Uniswap WBTC pool 卖 112 WBTC, 获得 6800 ETH将 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 保驾护航来源链接:mp.weixin.qq.com —- 编译者/作者:Hydro社区 玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。 |
逐步揭开利用借贷协议 bZx 套取 51 BTC 的真相
2020-03-11 Hydro社区 来源:链闻
LOADING...