风险提示:请理性看待区块链,树立正确的货币观念和投资理念,不要盲目跟风投资,本站内容不构成投资建议,请谨慎对待。 免责声明:本站所发布文章仅代表个人观点,与CoinVoice官方立场无关

图解 DeFi 闪电贷原理与常见用例

Defi之道
2020年11月30日

除了频繁被用于 DeFi 套利攻击,闪电贷还能做什么?

原文标题:《DeFi 科普丨深入浅出闪电贷
撰文:jakub
翻译:屏风

闪电贷是怎么回事?如何在没有抵押物的情况下,可以借到价值数百万美元的加密货币的呢?本文将对闪电贷进行简单的介绍

简介

闪电贷可以让我们在无需抵押品的情况下从指定的智能合约池中借入任何可用的资产金额。闪电贷是 DeFi 中有用的一个构件(building block),因为它可以用于套利、交换抵押品和自我清算等。

闪电贷款虽然最初是由 Marble 协议引入的,但由 Aave 和 dYdX 普及。

那么,闪电贷有什么好处呢?

闪贷必须在同一区块链交易中进行借贷和快速偿还。

图解 DeFi 闪电贷原理与常见用例

Ethereum 等区块链上交易的概念与计算机科学中对交易的传统定义一致。

交易

一个交易代表了一组必须以「原子方式」执行的操作,原子方式指的是要么所有的步骤都被执行,要么交易被回滚,一个步骤都不会被执行。

让我们以一个简单的数据库交易为例。熟悉这一概念的读者可以跳过这个部分。

想象有一个代表用户账户余额的数据库表

图解 DeFi 闪电贷原理与常见用例

爱丽丝账户的余额是 1000 美元,鲍勃的余额是 500 美元。爱丽丝给鲍勃发了 500 美元。在这种情况下,我们要从 Alice 的余额中减去 500 美元,并在 Bob 的余额中增加 500 美元。数据库更新报表应这样写:

图解 DeFi 闪电贷原理与常见用例

如果第一个更新执行了,但第二个更新因为某些原因失败了,会怎么样?(也许 id=2 在系统中并不存在,但我们犯了一个错误,以为这是 Bob 的 id)

如果发生这种情况,我们就会发现出现错误的结果:Alice 的余额为 500 美元,Bob 的余额也等于 500 美元。

为了避免这样的情况,我们必须使用 transactions。

在上面的情况下,在 SQL 中,我们只需要用 BEGIN 和 COMMIT 关键字来打包这两条语句。一旦这样做,要么这两条语句都正确执行了,要么都没有执行,保证 Alice 和 Bob 的余额不受影响,我们就可以放心了。这就是我们常说的原子化交易,如果不同的步骤是同一个交易的一部分,它们是不可分割的,要么全有,要么全无。

Ethereum 交易

说到 Ethereum,每一个常见的操作,如发送 ETH、发送 ERC20 代币、与智能合约交互等都是在交易范围内执行的。

图解 DeFi 闪电贷原理与常见用例

交易被分组并包含在 Ethereum 区块中。我们可以很方便地在任意的区块链浏览器(例如 Etherscan)上看到包含在特定区块中的所有交易。

图解 DeFi 闪电贷原理与常见用例

一个 Ethereum 交易可以包含多个步骤,例如,在 Compound 上提供 ETH 并借出 DAI,在 Curve 上将借出的 DAI 的一半换成 USDC,在 Uniswap 上为 DAI/USDC 池提供流动性,所有这些都在一个 Ethereum 交易中完成。当然,如果其中任何一个步骤导致错误,整个交易将被回滚,所有步骤都不会发生。需要注意的是,即使合约执行失败,我们还是要付 gas 费的。

单笔交易的步骤数只受 gas 费的限制,所以虽然理论上,你可以创建一个有成千上万步骤的有效交,但现实中可能会由于最大 gas 成本的限制,交易会被拒绝。

闪电贷

现在,我们来深入了解一下闪电贷。

首先,执行闪电贷最重要的是找到一个闪电贷提供商。Aave 或 dYdX 等项目开发了智能合约,允许 DeFi 用户从指定的池子中借到不同的币,前提条件是在同一个以太坊交易内偿还。使用闪贷通常有固定的成本。例如,Aave 合约要求借款人归还初始金额+0.09% 的借款金额。0.09% 这笔费用将会分给存款人和集成商,前者给出了可供借贷的资金,后者为使用 Aave 的闪电贷 API 提供便利。这笔费用的一部分也会被换成 AAVE 代币。

图解 DeFi 闪电贷原理与常见用例

一旦从借贷池中借到金额,它就可以用于其他套利操作,只要在不同步骤所处的区块链末端快速偿还贷款。

由于贷款必须在一次交易内偿还,所以不存在借款人不偿还借款的风险。唯一的风险就是一直存在的智能合约和平台风险。

闪电贷越来越受欢迎,有的用户在 Aave 上的借款金额高达 14M DAI。

使用案例

闪电贷最常见的使用案例有 3 种。

图解 DeFi 闪电贷原理与常见用例

套利:闪电贷可以放大成功套利的利润。

让我们想象一下,Uniswap 和 Curve 之间的 DAI/USDC 池存在价格差异。你可以在 Curve 上用 1 个 DAI 换取 1 个 USDC,但在 Uniswap 上您只需要 0.99 个 DAI 就可以买到 1 个 USDC。现在你可以尝试执行以下套利:

  1. 通过闪电贷向 Aave 借 100,000 DAI。
  2. 在 Uniswap 上将 100,000 DAI 换成 USDC,收到 101,010 USDC。
  3. 在 Curve 上将 101,010 USDC 换成 101,010 DAI
  4. 偿还初始 100,000 DAI + 0.09% 的费用 =100,090 美元
  5. 利润 920 DAI

是不是看起来很好的样子?但我们必须考虑到以下几个因素:

图解 DeFi 闪电贷原理与常见用例

1.网络费用--多步骤的套利交易可能成本不菲,在计算利润时,一定要将交易费用考虑在内。
2.价格滑点-- 一定要计算你在执行订单时将会遇到多少价格滑点(提示:这取决于交易额的大小和流动性池的流动性)。
3.Frontrunning-- 很有可能别人会发现同样的机会,并且会设法抢先你一步行动。最重要的是,监控 mempool 的机器人可以发现你的盈利套利机会,并以更高的 gas 费发送相同的交易把你的盈利机会「偷走」。

闪电贷的另一个用例是更换抵押品

假设你用 ETH 作为抵押品从 Compound 借了 DAI。你可以通过以下方式将抵押品从 ETH 换成例如 BAT:

  1. 发起一笔闪电贷借出 DAI
  2. 用借来的 DAI 偿还 Compound 中的贷款
  3. 提取你的 ETH
  4. 在 Uniswap 上将你的 ETH 换成 BAT
  5. 提供 BAT 作为 Compound 的抵押品
  6. 以你的 BAT 抵押品借出 DAI
  7. 用借来的 DAI+费用偿还步骤 1 的闪电贷

通过这样一轮操作,额外付出借款金额的 0.09% 就能成功把你的抵押品从 ETH 换成了 BAT

还有一个应用例子是自我清算

想象一下下面的场景:你在 Compound 上有一笔以 ETH 作为抵押借出 DAI 的贷款。ETH 价格不断下跌,已经接近清算水平。你也没有或不想存入更多的 ETH 来降低你的清算水平,你也没有偿还贷款所需的 DAI。现在,与其让 MakerDAO 合约清算你的抵押品并向你收取清算费,不如采取以下步骤:

  1. 发起闪电贷,借出一笔 DAI,金额是你在 Compound 上的欠债
  2. 偿还 Compound 上的 DAI 贷款,提取 ETH
  3. 将足够的 ETH 换成 DAI,以偿还步骤 1 的闪电贷+费用
  4. 拿住你剩下的 ETH

这就是闪电贷最常见的 3 个用例,闪电贷的概念还比较新,未来还有很多应用例子有待发掘。

闪存贷和 DeFi 黑客

闪电贷,与加密技术类似,既可以用于好的方面,也可以用于坏的方面。闪电贷被大量应用在 DeFi 攻击中,黑客的获利得到放大,因为它们不需要任何前期资金。

图解 DeFi 闪电贷原理与常见用例

最著名的黑客攻击之一是 bZx 事件,在这次的攻击中,闪电贷被用来操纵 Uniswap 的预言机价格。其实问题不在于使用闪贷,而是在使用 Uniswap 作为价格预言机时的一些不正确的假设。

这样的事件会让有的用户遭受损失,但另一名,这也让整个 DeFi 生态系统得到了加强,使其在未来变得越来越反脆弱。

编程与 Furucombo

虽然闪电贷主要由开发者使用,但也可以在不需要敲代码的情况下使用它,Collateralswap、Defisaver 或 Furucombo 等项目可以帮助我们实现这一点。

图解 DeFi 闪电贷原理与常见用例

那么,你对闪电贷有什么看法?你用过闪电贷吗?你认为它对 DeFi 生态系统有好处吗?

来源链接:finematics.com


声明:本内容为作者独立观点,不代表 CoinVoice 立场,且不构成投资建议,请谨慎对待,如需报道或加入交流群,请联系微信:VOICE-V。

评论0条