在我眼中,闪电贷是DeFi乐高中最具魔力的一块积木。但因为它常常与黑客攻击联系在一起,以及还没有足够多的基于它的应用,闪电贷的魅力未能完全展现出来。因此我试着写了这篇文章,想从闪电贷的小用例出发,抽象出它的可能的一些意义。但上升到意义就有拔高之嫌,请仅把本文作为一种个人视角的观点。也谢谢YFII社区的高金和InstaDApp社区的Seb接受采访,为本文提供了他们关于闪电贷的知识和见解。
1.闪电贷是一股抹掉不平的洪流
当代币在不同DEX的价格不一样时,可以用闪电贷套利,过程简单:借一笔闪电贷,先用这笔钱在价格低的DEX买币,再把买来的币在价格高的DEX卖掉,最后用卖币的钱还掉闪电贷。只要买卖代币的价差高于闪电贷手续费与操作gas费之和,就能完成套利;在套利的同时,不同DEX间的价格差被「搬平」了。
在清算被触发后,清算价格与市场价格不一样,可以用闪电贷做清算。过程如下:借一笔闪电贷,先以清算价格获得抵押品,再以市场价格卖出抵押品,最后用卖抵押品的钱还掉闪电贷。一般而言,清算的收益可能有3%~5%,而闪电贷的手续费在uniswapv2是0.3%,在aave是0.09%,在dydx是2wei。
安全团队:Nereus Finance遭受闪电贷攻击,攻击者获利37万美元:据官方消息,HyperLab安全团队监测到新生代公链AVAX上的项目Nereus Finance遭受到到闪电贷攻击。
攻击者合约地址为:0x16b94C6358FE622241d055811d829281836E49d6
攻击交易地址为:0x0ab12913f9232b27b0664cd2d50e482ad6aa896aeb811b53081712f42d54c026
攻击者利用经典的闪电贷攻击模式即闪电贷->偏斜储备->假LP代币定价->偿还闪电贷获利了大概约37万USDC。
据调查,导致此次攻击的原因是由Nereus Finance维护的Abracadabra代码的未授权克隆@0xEdwardo。HyperLab安全团队会实时跟进此次事件的动态和持续报道后续分析。[2022/9/7 13:13:42]
套利和清算都是空间维度上的价格不一样,期货则是时间维度上的价格不一样,闪电贷同样可以应用于此。
Grim Finance 被黑简析:攻击者通过闪电贷借出 WFTM 与 BTC 代币:据慢雾区情报,2021 年 12 月 19 日,Fantom 链上 Grim Finance 项目遭受攻击。慢雾安全团队进行分析后以简讯的形式分享给大家。
1. 攻击者通过闪电贷借出 WFTM 与 BTC 代币,并在 SpiritSwap 中添加流动性获得 SPIRIT-LP 流动性凭证。
2. 随后攻击者通过 Grim Finance 的 GrimBoostVault 合约中的 depositFor 函数进行流动性抵押操作,而 depositFor 允许用户指定转入的 token 并通过 safeTransferFrom 将用户指定的代币转入 GrimBoostVault 中,depositFor 会根据用户转账前后本合约与策略池预期接收代币(预期接收 want 代币,本次攻击中应为 SPIRIT-LP)的差值为用户铸造抵押凭证。
3. 但由于 depositFor 函数并未检查用户指定转入的 token 的合法性,攻击者在调用 depositFor 函数时传入了由攻击者恶意创建的代币合约地址。当 GrimBoostVault 通过 safeTransferFrom 函数调用恶意合约的 transferFrom 函数时,恶意合约再次重入调用了 depositFor 函数。攻击者进行了多次重入并在最后一次转入真正的 SPIRIT-LP 流动性凭证进行抵押,此操作确保了在重入前后 GrimBoostVault 预期接收代币的差值存在。随后 depositFor 函数根据此差值计算并为攻击者铸造对应的抵押凭证。
4. 由于攻击者对 GrimBoostVault 合约重入了多次,因此 GrimBoostVault 合约为攻击者铸造了远多于预期的抵押凭证。攻击者使用此凭证在 GrimBoostVault 合约中取出了远多于之前抵押的 SPIRIT-LP 流动性凭证。随后攻击者使用此 SPIRIT-LP 流动性凭证移除流动性获得 WFTM 与 BTC 代币并归还闪电贷完成获利。
此次攻击是由于 GrimBoostVault 合约的 depositFor 函数未对用户传入的 token 的合法性进行检查且无防重入锁,导致恶意用户可以传入恶意代币地址对 depositFor 进行重入获得远多于预期的抵押凭证。慢雾安全团队建议:对于用户传入的参数应检查其是否符合预期,对于函数中的外部调用应控制好外部调用带来的重入攻击等风险。[2021/12/19 7:49:04]
比如用闪电贷做多ETH:用闪电贷借DAI,然后在DEX用DAI购买ETH,接着在比如Compound抵押ETH借出DAI,最后用借出的DAI还掉闪电贷。
OUSD公布闪电贷攻击事件细节 共损失700万美元:11月17日,Origin Protocol创始人Matthew Liu发文公布Origin Dollar (OUSD) 闪电贷攻击事件细节。内容显示,截止目前,攻击已造成约700万美元损失,其中包括Origin及创始人和员工存入的超过100万美元资金。团队正在全力以赴确定漏洞原因,以及确定是否能够收回资金。官方提醒称,目前已取消了金库存款,请不要在Uniswap或Sushiswap上购买OUSD。此外团队表示,官方不会离开,此次事件不是欺诈,也非内部局。[2020/11/17 21:02:50]
以上只是价格「不平」的几类例子,在没有闪电贷时,出于成本和风险,这些不平并不一定能高效地被抹平。
但有了闪电贷则会不同,闪电贷的成本之低但效率之高、能使用的资金量之大但风险之小,是一种前所未有的利弊不对等的关系。在此前提下,任何形式的价格不平几乎都是确定性的机会。
“Value DeFi遭闪电贷攻击”系该协议中基于AMM的预言机bug导致:据PeckShield分析,“Value DeFi遭闪电贷攻击”是由于该协议中基于AMM的oracle(即Curve)中的一个bug。攻击步骤如下:
1.黑客从Aave进行了8万枚ETH的闪电贷;
2.在UniswapV2用WETH兑换了1.16亿枚DAI;
3.在UniswapV2将从Aave获得的8万枚ETH兑换成3100万USDT;
4.将2500万枚DAI存入Vault DeFi,铸造2490万枚pooltoken(给攻击者),以及2495.6万枚新3crv(由Vault DeFi托管);
5.在Curve将9000万枚DAI兑换为9028.5万枚USDC;
6.在Curve将3100万枚USDT兑换为1733万枚USDC;
7.销毁2490万枚铸造的池代币,以赎回3308.9万枚3crv代币,而不是24.956万枚(喂价被操纵)。
8.在Curve将1733万枚USDC兑换回3094万枚USDT;
9.在Curve将9028.5万枚USDC兑换回9092.7万枚DAI;
10.通过销毁33.089万枚3crv来赎回3311万枚DAI,从3pool中清除流动性。[2020/11/15 20:52:13]
闪电贷就像是一股可以一路抹掉不平的资金洪流,而最关键的是,人人都可以不费吹灰之力地召唤它出来。有闪电贷的DeFi世界是平的。
DeBank工作人员:Balancer再次遭到闪电贷攻击:金色财经报道,DeBank转发其工作人员的推文称,黑客再次利用dYdX的闪电贷进行攻击,并将多个Balancer矿池中无人认领的COMP抽走,在此过程中获利10.8ETH。[2020/6/30]
如果做延伸,价格代表的是信息,闪电贷抹掉价格不平或许意味着:在DeFi世界,只要出现新信息,该信息将以闪电贷的速度传递给每个参与者,而参与者可以结合新信息做出决策,他的决策信息也将以闪电贷的速度传递。
这带来的会是一个信息快速、充分传递的系统,而这种系统最大的好处或许就是高效,此外,这种系统的快速纠错能力也可以减少系统性风险的累积。
2.闪电贷让钱不再昂贵,贵的将是策略
闪电贷的钱会是便宜的,闪电贷可以调用的资金量会是巨大的。有两个主要的原因会带来这种结果:
第一,零风险。传统贷方面临的最大风险是违约风险,但这种风险对于闪电贷来说是不存在的:贷方永远不用担心借贷方还不上钱。从资金安全层面来讲,闪电贷的贷方是零风险的。
第二,可兼职。链上的资产可以在承担它们本来作用的同时,也作为闪电贷资金位于闪电贷资金池中,因为在链上其他操作的眼中,闪电贷的资金始终是处于未被占用的状态的,始终是可用的。
在兼职这件事上的一个极端例子是把闪电贷功能内置到ERC20token本身,这意味着该token的全部资产天然地都可以被闪电贷借出。
有一个关于闪电贷的观点是:用作闪电贷的资金没有机会成本问题,把资金用于闪电贷不会让这部分资金失去其他的机会。这与「可兼职」表述的应该是同一件事情。
因为上述原因,闪电贷市场的竞争可能导致未来闪电贷的手续费是趋近于零的,可借的资金是趋近于无限的。
而在闪电贷市场之外,还有一种更极端的产品叫闪电铸:可以通过闪电铸凭空铸造资产,想要多少就铸造多少,只要你在这个原子交易的最后把铸造出来的资产全部销毁即可。想想这种情况下的资金使用费用和资金量。
如果闪电贷让钱不再昂贵,会带来什么局面?也许我们会把链上的金融活动分解和抽象为两大类,一类是无法使用闪电贷资金的,即占用资金型的,一类是可以使用闪电贷资金的,即使用资金型的。
占用资金型的运转模型可能与传统模型相似,资金在该模型中占据核心位置;但使用资金型的运转模型可能会与传统模型截然不同,因为资金的来源是易得的、便宜的闪电贷,资金对于模型不再重要。
当资金不再昂贵时,贵的是策略。好的策略占据核心位置,这对提出策略的人以及投资策略的人都是有益的,收益会流向他们,而不是流向驱动策略运转的资本;而收益流向策略会鼓励更多好的策略出现和发展,这对整个生态的进化是有意义的。
当资金不再昂贵时,金融产品的设计逻辑也需要改变。最简单的改变比如一些套利、清算类的协议,它们之前一个重要的工作是吸引用户资金,但如果未来闪电贷的使用费用趋近于零,那它们在设计时就不用考虑用户问题或者说资金问题。
从另一个角度来看,就像高金的观点,他认为闪电贷让用户可用的资金变多了,它的一大应用场景是市场上存在某种可以让你赚钱的机会,但是你缺少资金。
不过现阶段闪电贷并没有足够便宜,一些资金的使用费用是比闪电贷低的,很多套利行为并不会选择闪电贷。所以现在只能说闪电贷是这类金融活动的资金费用的最高值,而不能说闪电贷是最佳或唯一选择,但未来如何会取决于闪电贷市场的发展。
延伸的一个话题是:当使用资金型的金融活动不再需要占用资金后,资金都可以用于占用资金型的金融活动,这相当于变相增加了可用资金总量,也可以认为提高了可用资金的利用率。
3.闪电贷是部署资金的桥梁,为用户提供跨协议管理资产的能力
InstaDApp似乎是目前开发了最多闪电贷的用法并封装起来提供给用户直接使用的应用,我在discord联系了其社区经理Seb,想了解该应用中闪电贷的使用情况,以及他们对闪电贷的看法。
Seb告诉我从数据上看,闪电贷一种受欢迎的用法就是作为用户部署资金的桥梁,比如在SAI向DAI迁移时,他们看到了很多闪电贷的用例。
用闪电贷迁移资产或债务是一件容易的事情,比如你想把自己的借贷关系从A协议转移到B协议,就可以:借一笔闪电贷,先用这笔钱在A协议中赎回抵押品,再把抵押品存入B协议借出资金,最后用借出的资金还掉闪电贷。
有了闪电贷,资金可以几乎不受阻碍的从一个协议流向另一个协议,从一类资产流向另一类资产。
如果站在生态的角度,闪电贷把应用/协议的围墙花园又变矮了一些,用户只要认为某个协议或某类资产对自己而言是更优的选择,就可以轻松地把资产迁移过去。而这将带来一个更具竞争力、更具进化能力的系统。
如果站在用户的角度,Seb认为利用闪电贷提供的流动性,可以为用户提供跨协议管理资产的能力,这同时也是一种自动化管理资产的能力。
用户只需要设置自己的策略,账户可以借道于闪电贷,在条件被触发后自动完成操作,比如在利率变化时转贷。流动性从哪儿来?从闪电贷来。
结束语:
钱被我们赋予了太多功能,如果我们把这些功能分离开来会怎么样?对于人脑,识别并处理一个多功能可能比处理多个单功能要简单很多,但对于计算机,处理单功能才是它的强项。
那么当钱以代码的形式存在和运转后,如果我们把钱的功能分离开来,是否可以提高所有单个功能的效率,是否是更合理的方向?
在我看来闪电贷在做的事情,就是一件分离钱的功能的事情。
那么最后,让我们以威廉·布莱克一首诗的节选结束文章吧,它真的很闪电贷:
一沙一世界,
一花一天堂。
无限掌中置,
刹那成永恒。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。