你真的懂闪电贷么?

20-11-18 18:09
阅读本文需 16 分钟
总结 AI 总结
看总结 收起

撰文:0x26


伴随着 10 月末 Harvest.finance 闪电贷攻击+套利,最近一两周已经有大大小小 4 起闪电贷攻击事件发生了。从其中最有趣的莫过于 Value DeFi Protocol(YFV)的闪电贷攻击,据说团队在遭攻击前还曾在 AMA 中表示自己是最安全的 DeFi 协议,不会受到闪电贷攻击,结果随后就收到了黑客「真金白银」的嘲讽。

 


Transaction Hash:0x217298bd38ed12b16e0cd65ce0b464c3810e0479a99a1464aed5e6768b2a4c50(UTF-8)

 

并由此引发了后续令人啼笑皆非的对话。一位在 YFV 中遭受损失的护士给这名「真的懂」先生在以太坊链上发了一封信,表示:「我在你的攻击中损失了 10 万美元。我是护士,这些都是我的积蓄,希望你能把它还给我。每个人都会生病。想想你生病时照顾你的护士。祝你永远健康,幸福。愿上帝保佑你。」随后竟真的收到了来自黑客 5 万枚 DAI 的转账。

 


Transaction Hash:0xdf10b20e49135306cfe16fc87da5fc6d859755ecbfd76180b36898052c765fab

 

YFV 团队也向黑客发去了链上信: 显然,我们并没有我们想象中的那样了解闪电贷。给你 100 万 DAI 赏金,然后将剩余的 DAI 还给我们受影响的用户。我们有一个计划,以补偿受到影响的用户,如果你可以归还部分资金,将很有益于这一计划的推进。

 


Transaction Hash:0x8bc8a4f4fa0c54702d018eaf7adee5937be566366ea8d4a3adb191a3dc71b855

 

所以,究竟什么是闪电贷?

 

在传统经济中,当贷款人向借款人提供贷款时,总是存在借款人可能无法偿还债务的风险。这就引出了下面的问题:

 

有没有可能存在一种情况,借出钱,但不存在不被偿还的可能性。

 


从流动资金池中获得的一笔快速贷款,在一次交易中使用并偿还

 

上述在传统领域无法实现的事情,由区块链来完成,这就是闪电贷。闪电贷是只在一个区块交易中有效的贷款。如果借款人在交易结束前没有偿还这笔贷款,那么闪电贷款就是失败的,不会被执行。这是因为如果没有满足偿还条件,区块链不会执行这笔交易。

 

闪电贷的资产来自一个公共的智能合约资金池。目前较为知名且流行的是由 Aave 和 dYdX 提供的资金池。Aave 的闪电贷利率为 0.09%,而 dYdX 的智能合约只要求还款之时加上 1Wei 的费用。

 

闪电贷用例

 

但是,闪电贷到底有什么用呢?截至目前,可以确定闪电贷的以下几种用例:套利,给交易对提供虚假交易量,闪电贷投票,操纵价格套利。

 

套利

 

有了闪电贷款,就可以在不同的 DEX 上进行套利,而不需要持有被套利代币的头寸,也不需要面对价格的波动风险。交易员可以简单地进行一笔贷款,进行套利交易,然后偿还贷款和利息即可。此时,考验套利者的只有寻找套利机会的信息和设计套利逻辑的能力。套利交易发展到如今,简单的寻找套利机会已经不能满足黑客/极客的需求了,更多时候,他们会利用闪电贷人为的创造套利机会,这一部分我们将会在之后讨论。

 

给交易量注水

 

另一种用例是创造虚假交易,资产的交易量是指示其交易受欢迎程度的重要标准,特别是在去中心化交易平台,代币的排序方式是按照成交量进行排序的。恶意交易平台或交易者可以通过人为地夸大资产的交易量来吸引利益,从而误导其他交易者。 

 

尽管在中心化交易平台进行注水交易花费很少以至于没有成本,甚至可能不需要持有这部分真实资产,但在 DEX 上进行注水交易需要交易者持有和使用该资产。闪电款可以消除这种「阻碍」。以 2020 年 3 月份数据为例,注水交易可以将 Uniswap 的 ETH / DAI 市场的 24 小时交易量增加 50%,而成本仅为 1,298 美元(来自 dYdX 的闪电贷)。

 

闪电贷投票

 

在一次由流动性协议 B Protocol 开发团队发起的 MakerDAO 投票中,B Protocol 团队从 dYdX 通过闪电贷借出 5 万个 WETH(2000 万美元),随后将其抵押至 AAVE 获得 1.3 万个 MKR 代币(700 万美元),再将这部分 MKR 用于社区投票,待投票完毕后将其返还。而这个投票的议题为,将 B Protocol 列入到 MakerDAO 预言机的白名单中,以获得访问 MakerDAO 价格预言机的权限。

 


 

之后该行为被发现,Maker 团队与 B Protocol 团队进行了联系,B Protocol 表示会对此行为负责,后续将进一步进行处理。而这也引起了以太坊社区对闪电贷操纵社区治理的讨论。

 

操纵价格套利

 

拉高/砸压—套利

 

以价值 0.5 ETH 的 GAS 交易费,于 2020 年 2 月 15 日执行的一笔闪电贷交易,在区块 9484688 完成了闪电贷主要操纵,此次操纵共进行 74 笔交易,获得了 1193.69 ETH 的利润(注,未被框的为实际数据,画框的为最优参数)。

 

该交易的最主要的是在去中心化交易平台 bZx 上进行杠杆交易,以拉升去中心化交易平台 Uniswap 上 WBTC / ETH 的价格,从而创造套利机会。

 

首先从 dYdX 用闪电贷借到 10000 枚 ETH,一部分 ETH 以 5 倍杠杆在 bZx 做空,另一部分在 Compound 置换出 WBTC,并在 ETH 价格降低之时,用 WBTC 将 ETH 换回完成利用闪电贷的价格拉升/砸压,并从中获利。后续等待价格稳定后,在 Kyber 换回 WBTC,归还 Compound 的 ETH 贷款。

 


 

预言机操纵—套利

 

是通过干扰喂价预言机,以干扰协议对代币价格的判断,从而「恶意」制造套利机会。

 

正如之前《DeFi 时代的攻击方式:喂价预言机操纵》所讲,利用 DeFi 协议的数据源进行喂价预言机攻击变得很常见。用户通过闪电贷,在三个(Uniswap,Kyber,Synthetix)交易平台交易 sUSD,而其中两个都是闪电贷提供平台 bZx 的喂价预言机。

  

1. 闪电贷平台 bZx 借出 7500 枚 ETH。

2. 总计将 4417 个 ETH 以均价 213 sUSD 的价格换成 943837 个 sUSD(包含直接在第三方平台的交易,以及在 Kyber 等喂价预言机市场的砸盘)。

3. 在 Kyber 和 Uniswap 的 sUSD 市场持续出售 ETH 以压低价格。

4. 由于 bZx 用 Kyber 作为喂价预言机,此时 bZx 的 ETH 价格下降了 58% 左右。用户可以用等价的 sUSD 换到更多的 ETH。

5. 在第三方平台 Synthetix 将 ETH 换成 sUSD。

 

黑客用获得的,共计 1099841sUSD 换出 6799 枚 ETH(均价 162sUSD),最终黑客收益额为剩余的 3082ETH,以及预言机攻击套利获得的 6799 枚 ETH。偿还完毕 7500 枚 ETH 闪电贷后,获利 2381 枚 ETH。

 


 

闪电贷引发的 DeFi 讨论

 

随着 DeFi 的蓬勃发展,有越来越多的协议推出,这些项目首先面临的就是没有合约审计,这种情况导致的灾难性后果已经在 YAM 发生过了。而即使合约接受过多方审计,并不代表是完全安全的,合约审计公司并不会帮项目方检查经济模型,这也是如今跨平台喂价预言机操纵—套利频发的原因。

 

闪电贷仅仅是 DeFi 世界的一重工具,让用户可以在不拥有大量资金的情况下,用一种巧妙的方式在短时间内获得这种能力。而随着行业的发展,难免不会出现更多类似的工具,产生更多更大的攻击事件。

 

面对没有统一管理的 DeFi 世界,被攻击的资金是否可以追回,完全取决于黑客的心情。YFV 和 EMN 的黑客都偿还了部分资金,而更多的黑客选择将获得的资金收入囊中。这又产生了另一重疑问,DeFi 的世界里有没有犯罪?

 

面对区块链无尽的可能性,闪电贷只是工具,更重要的是,你能在这一个区块中,用这笔钱为自己创造些什么?

 

参考阅读:

原文链接,有删减

白皮书

《Flash Loans and securing the Maker Protocol》

《Harvest.finance 复盘闪电贷攻击事件,损失约 3380 万美元》

《Origin 公布攻击信息,呼吁黑客返还资金》

《Akropolis 漏洞详解:黑客复现「经典重入攻击」掳走 203 万 DAI》


欢迎加入律动 BlockBeats 官方社群:

Telegram 订阅群:https://t.me/theblockbeats

Telegram 交流群:https://t.me/BlockBeats_App

Twitter 官方账号:https://twitter.com/BlockBeatsAsia

举报 纠错/举报
选择文库
新增文库
取消
完成
新增文库
仅自己可见
公开
保存
纠错/举报
提交