在套利系列的第一部分中,会先解释闪电贷和闪电兑背后的基本概念。在第二部分中,将展示如何构建自己的交易机器人,机器人在 Infura 上运行,使用闪电贷观察套利机会并执行获利。
套利是什么?
套利交易其实与闪电贷或区块链无关,当相同的两个资产在两个不同的交易所拥有不同的兑换价格时,就存在这样的套利交易。
例如,让我们看一下两个交易所:Uniswap[4]和Sushiswap[5]. Sushiswap 是 Fork 自 Uniswap,它们运行着相同的合约代码。虽然它们是两个不同的交易所,但我们可以使用相同的代码执行相同的交易。另外,由于 Sushiswap 是较新的交易所,因此可能为它编写的机器人更少。
套利的工作原理是:一枚以太币在 Uniswap 中价值 80 Dai,而在 Sushiswap 中则价值 100 Dai。我们在 Uniswap 上购买 1 ETH,然后立即在 Sushiswap 上出售,以赚取 20 Da 的利润 i(减去 gas 和费用)。这是典型的获利套利交易。
闪电贷与闪电兑(Flash Loan vs Flash Swap)
闪电贷和闪电兑是来源于区块链的概念。上图显示了两者之间的一些关键区别。让我们补充下要点。
在Aave 协议[6] 上的闪电贷收取 0.09%的费用, 它至少需要进行三个操作:
- 向 Aave 借钱;
- 在一个去中心化的交易所进行交易;
- 在另一个去中心化交易所进行套利交易以实现利润,并偿还同一资产。如果你借出 Dai,则需要偿还 Dai。
闪电兑则允许交易者先接收资产并在其他地方使用资产,再支付使用的资产。
在Uniswap[7]上进行闪电兑时,尚无固定费用,但收取兑换费 0.3%[8]。与闪电贷相比,这可以看作是“免费”贷款,因为交易费是从交易订单中扣除的,不必单独付款。最后一点区别:我们可以偿还闪电兑中的任何资产。如果我们使用闪电兑用 ETH 购买 Dai,我们可以用 Dai 或 ETH 偿还兑换。这使我们可以执行更复杂的操作。
闪电兑和闪电贷均采用“乐观转账”,这是我们稍后将介绍的一种引人入胜的技术。
闪电贷和合约
要理解闪电贷,需要了解以太坊交易性质。所有以太坊交易均源自外部拥有的帐户(EOA),这是一个由人操作的以太坊地址。以太坊交易可以从一个 EOA 转到另一个 EOA,就像你付钱给朋友一样。以太坊交易也可以从 EOA 转到合约中执行代码。该合约可以调用另一个合约,依此类推,直到你的交易费(gas)用完为止。
注意:如果你不熟悉以太坊的交易,请查看 以太坊的账户,合约和交易类型的介绍[9].
稍后我们将看到,闪电贷在其执行过程中需要多个函数调用,而这在 EOA 中是不可能完成的。相反,我们将部署包含多步骤流程的合约。我们从 EOA 发起交易到 Aave 合约进行套利,但我们提供的部署合约的地址。另外还需要提供足够 ETH 以支付交易的 gas 成本,由于交易的复杂性,这可能会非常昂贵。(请记住,交易的成本取决于需要多少计算量)。
乐观转账
闪电贷和闪电兑均采用称为“乐观转账”的技术。这项非凡的 DeFi 创新技术使用户可以进行无抵押贷款或兑换,只要用户在交易结束前偿还所需的资金。为了更好地理解这种想法,让我们来看一些代码。