闪电贷:一笔以太坊交易能做什么?_比特币:Defi Tiger

译者&撰文:阿剑

来源:以太坊爱好者

标题:Flashloans,魔法互联网货币的新发明

链圈一直声称要变革金融业,最近终于开始有点迹象了,因为年轻的银行家跟技术人员开始结盟了。

最新的一种玩法叫做“闪电贷”,就是说,你可以用代码来指定一系列的操作,只要你的操作能保证在一笔交易内完成还款,你就可以无条件地贷款。

区块链上的一笔“交易”里可以做很多事情;你不仅可以转一次账,你甚至可以在一笔交易中完成50笔资金转移。因为智能合约就跟计算机程序一样,你发交易,就等同于“调用某个智能合约里的某个函数”;一笔交易中可以调用很多个函数,自然也就能完成很多操作。

“闪电贷”所要求的是,所有的操作都必须在一笔交易内完成。所以你必须把所有步骤都编程到一笔发往智能合约的交易里,把“借款、转移、还款”都包括进去。

如果交易结束时你不能还款,则交易就会失败,就像所有事情都没有发生过一样。

假设,一开始闪电贷合约给了你1万ETH,如果交易结束时没有还上1万ETH,那就相当于你从来没借出过1万ETH,因为当节点在执行交易时,只要交易失败,则这笔交易中的所有操作都会全部回滚,就像没事发生过。

PuppyDoge (PUPD)攻击者利用闪电贷漏洞获得6.97 WBNB:金色财经报道,据CertiK官方推特发布消息称,PuppyDoge (PUPD)上检测到一个闪电贷漏洞,bsc地址:0xB0F529aa39586D6e53800C7b9A4E0223F73437A8。攻击者获得6.97 WBNB(约合1600美元)。[2023/7/24 15:55:57]

很反直觉对吧?要是没有执行所有操作并成功返回足够的资金,那些ETH就跟没有动过一样。

好吧,我们也觉得这就是魔法。这种魔法是一个图灵完备的网络上的最新发明。

所有运行以太坊软件的计算机节点都运行着这个闪电贷智能合约,当这个程序被上链的的交易激活之后,就相当于合约在执行这笔交易指定的操作,如果最后能完成还款,则合约传出“执行成功”,整个网络的状态完成更改;而如果不能完成还款,合约传出“失败”,交易影响到的其它合约状态更改失败,被改变的只有闪电贷合约的状态。

你要是听得云里雾里,那也正常,因为这是一个全新的领域。你得懂编程才能使用这种合约,因为你需要连贯地指定每一个步骤。不过,如果你愿意花几周学习Solidity教程,你也可以拿到免费的资金用于套利,用于捕捉一切可以用连贯的一系列步骤来完成的获利机会。

慢雾:NimbusPlatform遭遇闪电贷攻击,损失278枚BNB:据慢雾安全团队情报,2022 年 12 月 14 日, BSC 链上的NimbusPlatform项目遭到攻击,攻击者获利约278枚BNB。慢雾安全团队以简讯的形式分享如下:

1. 攻击者首先在 8 天前执行了一笔交易(0x7d2d8d),把 20 枚 BNB 换成 NBU_WBNB 再换成 GNIMB 代币,然后把 GNIMB 代币转入 Staking 合约作质押,为攻击作准备;

2. 在 8 天后正式发起攻击交易(0x42f56d3),首先通过闪电贷借出 75477 枚 BNB 并换成 NBU_WBNB,然后再用这些 NBU_WBNB 代币将池子里的绝大部分 NIMB 代币兑换出;

3. 接着调用 Staking 合约的 getReward 函数进行奖励的提取,奖励的计算是和 rate 的值正相关的,而 rate 的值则取决于池子中 NIMB 代币和 GNIMB 代币的价格,由于 NIMB 代币的价格是根据上一步闪电贷中被操控的池子中的代币数量来计算的,导致其由于闪电贷兑换出大量的代币而变高,最后计算的奖励也会更多;

4. 攻击者最后将最后获得的 GNIMB 代币和拥有的 NIMB 代币换成 NBU_WBNB 代币后再换成 BNB,归还闪电贷获利;

此次攻击的主要原因在于计算奖励的时候仅取决于池子中的代币数量导致被闪电贷操控,从而获取比预期更多的奖励。慢雾安全团队建议在进行代币奖计算时应确保价格来源的安全性。[2022/12/14 21:44:29]

举个例子,有个家伙一把赚了36万美元,就一笔交易!这一事件也让闪电贷抓住了所有人的眼球。

安全团队:FEG项目在以太坊和BNB Chain上遭遇闪电贷攻击,损失130万美元:5月16日消息,据CertiK监测,FEG项目在以太坊和BNB Chain上遭遇闪电贷攻击,其代币价格下跌超80%,大约130万美元被转移。代币地址为:bsc:0xacfc95585d80ab62f67a14c566c1b7a49fe91167。[2022/5/16 3:19:19]

但这并不是去中心化领域的唯一发明。比如,Fulcrum具有超强的流动性;dYdX智能合约支持免费的闪电借贷,跟flashloan是一样的。一个新的DeFi项目,Aave,也在用flashloan的名义提供这样的功能。

还有一种观点认为,可以把CDP这样有点近似于永久贷款的债,变成一种像期票的token。以前,只要你提供质押品,你就可以贷出DAI,利息不会实时偿还,只在你还款时偿还,所以只要你的质押品足够多,你可以借钱借到永久,因此近似于永续债务。)……原文地址:https://www.trustnodes.com/2020/02/15/flashloans-the-crazy-new-invention-of-magic-internet-money

标题:闪电男孩

所谓套利,就是利用不同市场上的价格差来赚钱。套利的机会在所有金融市场上都存在,数字资产也不例外。套利活动可以帮助减小一种资产在不同市场上的价格差,因为套利活动也可以增加流动性

CertiK:Redemption-LP遭到闪电贷套利攻击 损失15万WFTM:据CertiK安全团队监测,Redemption-LP于北京时间2022年4月18日19点35分遭到闪电贷套利攻击,损失约合110万元人民币(15万WFTM)。该事件发生的原因在于:闪电贷在还款前,不收取任何费用,相应的代币会直接从Redemption-LP pair转给distributor,导致Redemption-LP与其他正常pair之间出现价格差异。[2022/4/19 14:32:42]

……

闪电贷的设计本意是让开发者可以任意借贷而无需提供质押物。整个借贷、偿还的过程都会在一笔交易内完成!开发者可以从Aave协议的储蓄资金池中贷出资金,条件是交易结束后,从资金池中借出的流动性会原样返回到池中去。如果不能返回那么多流动性,交易就会失败、回滚,保证储蓄资金池中的资金不受损失。

闪电贷有很多有趣的用途,包括:

-在去中心化交易所之间套利

-在多种借贷平台上平仓

-再平衡,例如:从Aave协议中借出DAI、关闭你的MakerDAO质押债仓并取回你的质押品,把这些质押品存入Compound,借出DAI,然后把DAI及一些手续费归还给Aave

Grim Finance遭遇闪电贷攻击,损失超3000万美元:12月19日消息,据官方消息,Fantom链上复合收益平台GrimFinance遭遇闪电贷攻击,目前损失已超3000万美元。攻击者使用GrimFinance的保险库策略中名为「beforeDeposit()」的函数进行攻击,输入恶意Token合约。目前GrimFinance已经暂停所有的金库,提醒用户立即撤回所有资产。[2021/12/19 7:49:10]

如此一来,就有更多人可以参与套利和清算,因为没有初始资本要求。套利一般来说没有什么资本要求,但清算则要求大量资本来平掉债务人的仓位。Compoud和单质押品DAI中的平仓常常要投入价值超过100万美元的ETH或者DAI。

……

为展示闪电贷无可限量的潜力,我们做了一次套利,但实际上它可以用在很多别的地方。你可以查查我们发出的这笔交易:<https://etherscan.io/tx/0x4555a69b40fa465b60406c4d23e2eb98d8aee51def21faa28bb7d2b4a73ab1a9>

……

原文地址:https://medium.com/@bneiluj/flash-boys-arbitrage-dao-c0b96d094f93

2月15日,有一位黑客动用借贷得来的大笔资金,先后使用Compound协议置换资产、干扰Uniswap市场上的资产价格、影响Kyber的报价,并最终通过bZx提供的杠杆交易功能获利,这一切,都是在一个区块内完成的。更准确地说,这是在一笔交易内完成的,所用的正是上文提到的、由dYdX协议提供的闪电贷款功能。

具体经过,在此不表,可见由PeckShield和Hydro社区提供的详尽分析:《硬核技术解析,bZx协议遭黑客漏洞攻击始末》、

《DeFi低调分享|如何空手套白狼51个BTC》

从这些详尽的分析中我们可以知道,这位黑客获利的关键一环在于,他用借来的资金操纵了Uniswap及Kyber上的资产价格,而bZx协议正是使用Kyber作为其价格信息提供机制,并最终在杠杆功能中给了黑客非常多的token,黑客拿到这些资产后卖出,就能偿还一开始闪电贷的贷款。当然,黑客没有平掉自己在bZx协议的杠杆,也就是没有还钱。

事情出来以后,bZx团队动用管理密钥,把黑客的收益冻结了。

这件事在整个圈子里引发了很多讨论,包括但不限于:bZx的处理方式是否合理?DeFi协议应不应该留有管理员密钥?去中心化的预言机到底安不安全?闪电贷的出现是好事还是坏事。

我们在此不想复盘这些讨论,只想讨论一个简单的问题,可能也是大家最感兴趣的问题:闪电贷到底意味着什么?

计算机科学里面有个术语叫做“原子化”,指的是处理事务时,能否保证相关的操作总是同时成功、同时失败,而绝不会陷入某些操作成功,某些操作失败的境地;如果能,那就是保证了“原子性”。

如果换一个具体的例子,你会发现这个概念绝不陌生:你想去某个地方旅游,你总是希望交通和住宿能够同时确定,比如,如果你抢得到高铁票,你想挑一个离高铁站近一些的酒店A;但如果你不能抢到高铁票,你会想要挑另一家酒店B,甚至你会考虑换一个旅游地点。

这时候你会发现,如果每个事项都得分别确定,你就只能安装很多个APP并且在它们之间不断切换,非常麻烦。比如,如果不预订A,又怕订不上酒店;预订了A,如果票抢不到,你又得退订。

但如果这两件事情的处理具有原子性,你可以直接做一个操作同时抢票和预定酒店,到了时间如果抢票失败,也会自动退订酒店。这可以带来极大的便利。

同理,当你需要换乘才能到达目的地时,你也会希望路程上的多个车票要么一次买齐,要么全部不买,免得还要手动退票。

说起来很简单,也符合大家的愿望,但这种东西在我们的生活中仍然是极为罕见的。我们还是得下载很多个App,关注很多个公众号和小程序。

但以太坊不是这样。把以太坊当成一台计算机,把智能合约都当成程序,用户发起的交易就像你在操作电脑一样,能够包含在一笔交易中的操作天然就具有原子性。程序的多寡是一回事,但——你真的可以一次性把这些程序用个遍,而且一旦某个操作没有得到自己预期的结果就可以撤销自己所有的操作,像没事发生过一样。

美好、强大到有点不真实。

提起DeFi,很多人会提到可组合性。一开始大家想的是,有了MakerDAO,我们就有了稳定币DAI;有了DAI就可以做借贷市场啦,还可以做保证金交易。大家的想象有两种,一种是:这些产品是可以自由结合的,而且互相都没有准入措施,这样功能当然会更强大,当然能创造价值;另一种是:这意味着,DeFi具有创造性的潜力,从长期来看它必定会越来越繁荣,因为互相结合总能孕育出更为强大的功能。

但这两种想法都几乎没有指明不同协议相结合时的具体样貌,也没有指明这种结合发生时候的时间概念。换句话来说,更多是从功能互补的角度来想象及阐述的,不是从计算机的角度来想象的。

但是,原子性的概念意味着:任意多的合约可以在一笔交易中要么一起工作,要么一起无动于衷。要么真的在一瞬间组合,要么一起当没事发生过。

我忍不住想说,闪电贷就是“可组合性”最极端的形态,极端到一切只在一瞬发生。

人们终于发现,一个协议最真实的样貌,是要从“交易这一瞬”的维度去思考的,就像dForce项目创始人民道老师举的例子,用闪电借贷可以瞬间化身为Uniswap的流动性提供者、做完自己想要的交易再闪电撤资,这样可以把手续费从0.3%降低到0.05%;协议的安全性,也要从“一瞬”的粒度去设计,否则就会出现bZx这种情况,直接被闪电击穿。

现在人们知道了,价值的无缝流动,既是美酒也是药,DeFi协议,要么在美酒下强身健体,要么肝肠寸断。

还有两个有趣的事情。

一,很多朋友都感受到了闪电贷的破坏力,认为大额的闪电贷就像一把丢在街上的上膛武器。但也有一些朋友认为,这是好事,因为进步的最好方法就是直接淘汰掉不行的东西;因为,早点发现问题可以避免累积出系统性风险。

没错,现在已经有了一座人人皆可踊跃尝试的大炮,瞄准了DeFi协议构成的城池,不能组合成铁壁防御的协议都会被大炮击穿。搭得不好,奇形怪状的货币积木,你们有难了。但是,可以相信,剩下的都是铜墙铁壁。

二,闪电贷概念最早应该是Marble项目提出的,那是在2018年中。但因为这个项目不赚钱,创始团队已经被其它项目收编了。一年之后,这个概念才开始发挥威力。

所以还是要有点耐心啊。

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

金宝趣谈

[0:15ms0-16:322ms