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

金色财经近期推出金色硬核(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的交易所允许交易者在以太坊区块链的一个区块交易中利用套利机会。

金色午报 | 11月15日午间重要动态一览:7:00-12:00关键词:以太坊2.0、数字经济、区块链产业创新应用发布会

1.以太坊2.0存款抵押ETH数量达82080枚 已完成15.6%;

2.PlanB:比特币涨至1.6万美元只是牛市开端;

3.北大黄益平:数字经济不是短期繁荣很可能是长期趋势;

4.怀俄明州当选参议员:希望“将比特币纳入全国对话”;

5.新华网“溯源中国”运营总监王翔:区块链促进现代农业的品牌建立和发展;

6.比特币于15900美元左右震荡,以太坊跌破460美元,主流币普遍回落。[2020/11/15 20:52:14]

什么是闪电贷(flash loans)

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

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

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

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

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

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

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

金色晨讯 | 国务院金融研究所副所长:区块链可为中小微企业服务:1.国务院金融研究所副所长:区块链技术可以为中小微企业提供服务

2.全球区块链市场规模2023年将达233亿美元

3.IBM区块链主管:应专注于当前的买入机会

4.科威特计划建立国家加密货币和支付系统

5.加拿大城市推出首个本地数字货币

6.V神:区块链非金融应用比金融应用更具优势

7.比特币市场份额接近3个月高点

8.美国SEC主席:ICO可成为筹集资金的有效途径

9.比特币市场份额接近3个月高点[2018/12/11]

第一笔闪电贷

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

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

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

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

更多交易:

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

金色财经现场报道 HelloEOS创始人梓岑:EOS本身没有风险:金色财经现场报道,在火币EOS全球超级节点SHOW上,Hello EOS创始人梓岑进行现场演讲,梓岑指出:EOS本身没有风险,EOS最大的风险在于,你以为有风险,可能拿不住,EOS没有对手;EOS涨不需要分析原因,就像太阳的升起并不是因为鸡鸣;几年之后,我们再看EOS的K线,整个2017年不过是一条直线而已;上线交易所不是EOS的利好,EOS上线交易所是交易所的利好;公链底层的承载力是区分极客玩具与技术革命的分水岭;持币人说了算的分布式自治才是真正合理的自治;拿着EOS,让我们的人生首次体验一下手握重权的感觉。[2018/5/14]

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

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

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

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

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

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

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

金色财经现场报道 Mark.Space联合创始人:俄罗斯联邦储蓄银行的区块链开发部门并不关注比特币价格:金色财经现场报道,今日在哥伦比亚大学举行的CryptoASIA峰会上,Mark.Space联合创始人Denis Polulyakhov在回答有关比特币的价值是否被高估的问题时表示,目前俄罗斯最大的银行——俄罗斯联邦储蓄银行有一个包括200人的区块链开发部门,其中有很多工程师,他们并不关注比特币的价格是否在浮动。[2018/5/13]

套利五步骤

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

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

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

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

金色财经独家分析 V神的格局:VitalikButerin昨晚回应地区当局某人员并建议“最大程度地使用区块链友好型的加密设计;土地登记和企业注册同理。应当成为加密政府科技中心,而不仅仅是加密货币中心。”此言彰显了V神的格局。金色财经分析,区块链的发展着实应该在金融上发挥巨大价值,但是对于一个改变世界的技术,应该抓住当前的有利时机,为区块链发展的政策法规、技术研发、标准设计、教育人才提供全方位、全行业的支持和设计,让区块链真正作用于地区经济和社会发展。[2018/4/20]

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

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

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

水星链

[0:0ms0-1:6ms