宇宙链 宇宙链
Ctrl+D收藏宇宙链
首页 > 波场 > 正文

金色硬核 | 一文读懂DeFi上的闪电贷(附如何利用闪电贷套利)

作者:

时间:1900/1/1 0:00:00

金色财经近期推出金色硬核(Hardcore)栏目,为读者提供热门项目介绍或者深度解读。

2月16日,bZx被爆遭到“攻击”,“攻击者”操纵多个DeFi项目上的代币价格,从而实现15秒内套利36万美元。涉及多个DeFi明星项目如Compound,DyDx,Uniswap,kyber,bZx。这个“攻击”利用了DeFi上最新的闪电贷(flashloans)功能。正如bZx所说,这种“攻击”是所见过的最复杂的攻击之一,只有对每种DeFi协议及其各种工具有非常深入的了解才有可能,传统金融体系中没有类似的东西。

什么是闪电贷(flashloans)?怎么利用闪电贷(flashloans)来套利?本期金色硬核(Hardcore)综合编译AbitrageDAO和PeckShield最早和最新的闪电贷套利研究。

AbitrageDAO是Stake资本团队建立的一个DeFi套利基金,联合链上流动性和链下机器人来寻求套利机会。PeckShield为区块链安全公司。

最新进展:2月18日bZx发推宣布再次暂停,疑似再次被“攻击”,“攻击”者或获利2388个ETH。

在交易世界中,套利是一种利用市场之间的价格差异来获利的策略。套利机会在金融市场中以各种形式存在。加密货币也不例外,很多交易所之间有着套利机会。套利有助于减少资产在不同市场中的价格差异,它还有助于提高流动性。

我们(AbitrageDAO)专注于在以太坊上运行的具有合约可填充流动性(Contract Fillable Liquidity ,CFL)的去中心化交易所。有CFL的去中心化交易所包括Oasis,0x relayers,Uniswap,Bancor和Kyber。有CFL的交易所允许交易者在以太坊区块链的一个区块交易中利用套利机会。

金色相对论 | Phala Network创始人佟林:kusama的卡槽适用于创新项目、实验项目、低成本项目去使用:金色财经报道,在今日举行的金色相对论中,针对“插槽拍卖的主网启动前最重要的里程碑,这个里程碑会带来什么联动效果?”等问题,Phala Network创始人佟林表示,Kusama在波卡主网上线之前很多人以为它是波卡的测试网,但实际上经过一年的运行,Kusama已经不仅仅是测试网了,而是一条和波卡功能一样的网络。比如波卡很多新的功能都会先在 KSM 上运行测试,运行没问题后再加入到波卡中。这有点像比特币和莱特币,比特币的很多新功能(比如隔离见证)都会先在莱特币上测试,没问题后再部署到比特币上。至于Kusama的卡槽数量,因为平行链插槽数量有限,上限大约会在 100 条左右,但是其中有一部分是公益卡槽,一部分是平行线程卡槽,最后一部分才是平行链拍卖。所以总体可能只有30-50个可以供拍卖,甚至波卡的会比Kusama的还更少。 拍卖机制上,每次仅会释放一个卡槽,下一个插槽的释放会有一定的时间间隔,所以需要项目方去参与拍卖。Kusama的平行链插槽拍卖,目标对象是想使用Kusama的平行链。因此其实是在拍卖平行链的租赁资源。平行链插槽只租不卖,波卡上的平行链插槽每个租赁期为 6 个月,拍卖时可竞标四个租赁期,也就是说项目方可拍下一个或者多个租赁期,KSM 上的平行链插槽租赁期时长会更短一些。目前已经有97条基于Substrate的链,都需要卡槽来完成平行链的上线。那么Kusama和波卡的区别是: kusama的卡槽会便宜些,适用于创新项目、实验项目、低成本项目去使用;而波卡更适合金融类、商业成熟的项目、大市值的项目去拍卖。[2020/12/11 14:56:19]

什么是闪电贷(flash loans)

闪电贷(flash loans)是为开发人员设计的,可以在无需提供任何抵押的情况下立即进行贷款。所有这些都要在一个交易(一个以太坊区块)中完成。开发人员可以从Aave储备池中借钱(注:flash loans最早讨论来自Aave协议,第一笔flash loans也来自Aave),条件是在交易结束之前将流动资金返还到资金池中。如果这种流动性未能及时返回储备库,则交易将被撤回,从而确保储备池的安全。

金色热搜榜:ONT居于榜首:根据金色财经排行榜数据显示,过去24小时内,ONT搜索量高居榜首。具体前五名单如下:ONT、QTUM、XLM、NEO、XEM。[2020/11/24 21:57:45]

闪电贷有许多有趣的用例,包括:

去中心化交易所之间的套利

多个借贷平台如Compound,dYdX或Nuo上清算贷款

再融资,例如从Aave提取DAI,关闭MakerDAO CDP,获取抵押品,在Compound上存款,开仓,取回DAI,退还DAI加手续费

这使得更多参与者可以在套利和清算间发挥作用,因为不需要任何资金就可以开始。套利机会通常不需要太多资金(在100-10000美元之间)。另一方面,清算需要大量资金来清算借款人头寸。Compound或单抵押DAI(SAI)的许多清算需要ETH或DAI超过100万美元。

ArbitrageDAO是低抵押/无抵押闪电贷的最佳用例。但我们相信,在未来几个月中,将看到许多使用闪电贷的激动人心的项目。

第一笔闪电贷

ArbitrageDAO于2020年1月18日完成第一笔无抵押的闪电贷。见下图Camilla Russo的报道。

为了证明闪电贷的巨大潜力,我们决定聚焦于特定的套利策略,但也可应用于许多其他方面。你可以在此处查看ArbitrageDAO从钱包发起的交易:https://etherscan.io/address/0x8645abffe4fad9e0c6c18afff30ef6aea438008c

https://etherscan.io/tx/0x4555a69b40fa465b60406c4d23e2eb98d8aee51def21faa28bb7d2b4a73ab1a9

金色财经行情播报丨BTC横盘整理 或有修补动作:据火币行情显示,昨日下午BTC加速下跌,最低探至9047USDT,随后持续横盘震荡整理,局部价格徘徊在9130USDT附近。日线图均线MA5压力位难以反扑而上,并且顺着MA5构成了下行通道,目前连续收跌3日或有修补动作。4小时图震荡整理后站上均线MA5,1小时图持续横盘过程中来自均线MA30的压力制约多头。截至10:00,主流币的具体表现如下:[2020/7/17]

在上述套利交易中,AbitrageDAO在Aave上借出超过3100个DAI。

更多交易:

https://etherscan.io/tx/0xc47ed2ebce6a23c961e0d9f7e40444412a8a836bc53d5c72611e5d644940a9da

https://etherscan.io/tx/0x8b891a8a4fcbcec0fbdff85e0cbb6f425395b1cb43949c2f4641ce2e9cf0e5fc

https://etherscan.io/tx/0xcd774671f1c384d35560ebee21b28aae304adfd3db1fb21dae0d09f4a8a3671c

https://etherscan.io/tx/0x0f98dbea3cbeac172400e19c44623583bbdf974e38bd70fe4156dba624f2f187

截止2020年1月23日,AbitrageDAO总共从Aave借了大约9400个DAI,盈利33个DAI。

金色财经行情播报 | BTC上涨回落,局部回调诉求较强:据火币行情显示,今日上午BTC拉升最高探至9620USDT,随后在9520USDT区间做平台整理,16时再度上扬后回落,并一度跌破9400USDT,多头上攻节奏遇阻。从日线图看,近期BTC连续强势拉升接近前高,但局部回调诉求较强。4小时图在均线MA10构成局部支撑,1小时图局部开启下行通道,回调或将延续。截至18:30,主流币的具体表现如下。[2020/5/29]

最新套利案例:bZx 2月15日闪电贷套利过程全披露

bZx 2月15日闪电贷套利过程来自安全公司派盾的分析。

这不是预言机攻击。相反,这是一个非常聪明巧妙的套利,它确实利用了bZx智能合约中的一个错误,以允许本应锁定的bZx资金流向Uniswap,并进一步将泄漏的资金吸收到Compound头寸中。

套利五步骤

交易在这里0xb5c8bd9430b6cc87a0e2fe110ece6bf527fa4f170a4bc8cd032f768fc5219838,它是在2020-02-15 01:38:57 + UTC的区块高度9484688上。如上图所示,此次“攻击”可以分为五个不同的步骤:闪电贷借款、吸筹、杠杆拉盘、出货、偿还闪电贷(Flashloan Borrow, Hoard, Margin Pump, Dump, Flashloan Repay)。

1:闪电贷借款。这一步利用了dYdX的闪电贷功能借入10000个ETH。

执行此步骤后,“攻击”者资产负债如下资产,无收益。

金色财经挖矿数据播报 | BTC今日全网算力下降2.59%:金色财经报道,据蜘蛛矿池数据显示:

ETH全网算力180.762TH/s,挖矿难度2246.64T,目前区块高度10035375,理论收益0.00786347/100MH/天。

BTC全网算力119.490EH/s,挖矿难度16.10T,目前区块高度629704,理论收益0.00001561/T/天。

BSV全网算力1.314EH/s,挖矿难度0.18T,目前区块高度634211,理论收益0.00068487/T/天。

BCH全网算力1.600EH/s,挖矿难度0.23T,目前区块高度634414,理论收益0.00056235/T/天。[2020/5/10]

2:吸筹。利用借来的贷款,“攻击”者将5500 ETH存入Compound作为抵押品,借入112 WBTC。这是正常的Compound操作,此吸筹的WBTC将在步骤4中出货。

完成此步骤后,“攻击”者的资产负债表如下,仍然无收益。

3:杠杆拉盘。吸筹之后,此步骤利用bZx保证金交易功能以卖空ETH兑得WBTC(即sETHwBTCx5)。具体来说,“攻击”者存入1300 ETH并调用bZx保证金交易功能,即mintWithEther(连续调用marginTradeFromDeposit)。保证金交易功能利用KyberSwap将借入的5637.623762 ETH交换为51.345576 WBTC。请注意,5倍杠杆借入ETH。实质上将1 WBTC的兑换率提高到109.8 WETH,大约是正常兑换率(~38.5 WETH/WBTC)的三倍。

具体来说,为完成此交易,bZx将订单转发给KyberSwap,后者随后会查询其储备金并找到最佳汇率,实际上KyberUniswap储备库。此步骤实质是将Uniswap中的WBTC价格提高了三倍。

此步骤应由内置的完整性检查阻止,此操作可验证掉期后头寸不会变为默认值。但是,此攻击发生时,没有进行此检查,我们稍后将在智能合约错误部分中检查详细信息。

4:出货。随着Uniswap中WBTC价格的飙升,“攻击”者将Uniswap中从Compound中借来的112 WBTC卖出换成WETH。

此出货步骤获得6871.4127388702245 ETH的净收益,平均兑换率为1 WBTC = 61.4 WETH。执行此步骤之后,攻击者获得可观的利润,资产负债表如下:

5:偿还闪电贷。“攻击”者使用从112 WBTC出货中获得的6871.4127388702245 ETH,将10000ETH的贷款偿还给dYdX,从而完成闪电贷。

这一步后,可以重新计算一下资产负债。最终,“攻击”者获得71个ETH的套利,外加两个头寸,一个头寸为Compound(+ 5500WETH / -112WBTC),另一个头寸为bZx(-4337WETH / + 51WBTC)。当bZx头寸处于缺省状态时,Compound头寸非常有利可图。在利用漏洞之后,“攻击”者立即开始安排偿还Compound债务(112BTC)来赎回抵押品(5500WETH)。对于bZx头寸,“攻击”者不再显示任何兴趣。

考虑到1 WBTC = 38.5WETH(或1 WETH = 0.025BTC)的市场均价,“攻击”者可以获得112 WBTC等价的4300 ETH。结果,“攻击”者获得了71 WETH + 5500 WETH -4300 ETH = 1271 ETH,大约35.59万美元(假设ETH价格为280美元)。

bZx智能合约错误

这次“攻击”背后的魔力是Uniswap WBTC/ETH是如何被操纵至高达61.4的利润的。如第3步所述,当正常市场价格仅为38左右时,WBTC / ETH价格被拉升至109.8。换句话说,这一巨大价差是被有意操纵的。但是,如此巨大的价差会导致bZx头寸处于抵押不足状态。但是为什么要允许抵押不足状态存在,这自然导致在bZx智能合约实现中发现隐藏的错误。

保证金拉升功能从marginTradeFromDeposit()开始。

如上图所示,marginTradeFromDeposit()在第840行将第四个参数设置为true的情况下调用_borrowTokenAndUse()

在_borrowTokenAndUse()内部,当amountIsADeposit为true时,在行1348中调用_getBorrowAmountAndRate()。返回的借款金额将存储在sendAmounts 中。

同样在_borrowTokenAndUse()中,在amountIsADeposit == true的情况下,在1355行中将sendAmounts 的值填充为sendAmounts (将在后面看到)。稍后,在第1370行中调用_borrowTokenAndUseFinal()。

在第1414行中,_borrowTokenAndUseFinal()通过IBZx接口调用takeOrderFromiToken(),以使交易流进入bZxContract。

下面有趣的部分到了。在第145–153行中,有一个require()调用以检查该头寸是否健康。不幸的是,在loadDataBytes.length == 0 && sentAmounts == sentAmounts 的情况下,完整性检查(sanity check)bZxOracle :: shoudLiquidate()被跳过了。这正是触发漏洞以避免完整性检查的条件。

如果我们看一下bZxOracle :: shouldLiquidate(),则第514行中的检查getCurrentMarginAmount()<= loanOrder.maintenanceMarginAmount可以通过捕获保证金提升步骤来完成这项工作,从而可以防止这种“攻击”。

参考资料:

Flash Boys | Arbitrage DAO

https://medium.com/@bneiluj/flash-boys-arbitrage-dao-c0b96d094f93

bZx Hack Full Disclosure (With Detailed Profit Analysis)

https://medium.com/@peckshield/bzx-hack-full-disclosure-with-detailed-profit-analysis-e6b1fa9b18fc

标签:ETHBTCBZXWBTETHMBTCUIBZX币Aave WBTC

波场热门资讯
区块链已入围22省区市今年政府报告 产业机遇来了?

随着地方两会接近尾声,政府工作报告将成为地方部署工作的重要指南。作为新一代信息技术的代表,区块链成为2020年政府工作报告的高频词汇,全国大多数省区市均重点提及到区块链.

1900/1/1 0:00:00
金色趋势丨BTC再次下砸 仍未破位趋势支撑

昨日BTC价格直线向上拉升,并回补了前期提示的CME 9975-10300美元之间的跳空缺口,然而并未站稳13900顶点下来的斐波那契50%点位10200美元支撑,凌晨出现跳水行情,最低插针至9320美元在回升至目前9550美元附近.

1900/1/1 0:00:00
有人用1亿资金明盘做空整个加密货币 比特币空单爆仓价8万美金

“万物皆可空。” 这是一位微博ID叫做“盘感超人”在主页留下的一句简介。别看他名字取得这么卡哇伊,这位超人可是一位不折不扣的币圈狠角色.

1900/1/1 0:00:00
疫情启示录:现代化的脆弱与现代性的反思

2月14日,数字资产研究院、苇草智酷和零壹财经·零壹智库联合举办了以“现代化的脆弱和现代性的反思”为主题的线上沙龙活动.

1900/1/1 0:00:00
风起于青萍之末:2020年Appchain生态预览

本文包含以下内容: ·Appchain是什么?·已经有哪些Appchain了?·Appchain在2020年会怎样?·Appchain2020要做什么?我们把面向特定应用开发的独立区块链称为Appchain.

1900/1/1 0:00:00
金色趋势丨BTC ETF截止日期临近 对盘面有何影响?

时事新闻 SEC必须在本周三之前决定是否批准Wilshire Phoenix的美国比特币和财政投资信托基金(United States Bitcoin and Treasury Investment Trust)申请.

1900/1/1 0:00:00