qiwihui

Posted on Mar 14, 2022Read on Mirror.xyz

CS251 - final 2021 - 问题 3

author: qiwihui.eth#4638

问题3(20分): Automated market maker (AMM).

你作为Uniswap V2的流动性提供者,为DAI/ETH池贡献5个ETH及5000个DAI。假设1个DAI值1美元,那么你的出资总额为1万美元。

A)    几个月后,1个ETH的价格上升到2000 DAI。在DAI/ETH池适应这个新的汇率稳定下来以后,您决定撤回作为流动性提供者的全部份额。假设系统不收费(∅= 1),你会收到多少ETH和DAI ?

答: 假设初始时流动性池中 ETH 和 DAI 的数量为$x$,$y$,提供的5个 ETH 和5000个 DAI 流动性占比为 $w$,则此时边际价格(marginal price)为$M_p=\frac{y}{x}=\frac{5000}{5}=1000$;

设价格变化之后流动性池中 ETH 和 DAI 的数量为 $x'$,$y'$,则有 $M_p'=\frac{y'}{x'}=2000=2M_p$;

根据恒定乘积公式 $xy=x'y'=k$,以及 $M_p=\frac{y}{x}$,$M_p'=\frac{y'}{x'}$,可以推出:

$x'=\sqrt{\frac{k}{M_p’}}=\sqrt{\frac{k}{2M_p}}=\frac{1}{\sqrt{2}}x$,$y’=\sqrt{2kM_p'}=\sqrt{2}y$,

由于流动性占比不变,所以取回的 ETH 为 $wx'=\frac{1}{\sqrt{2}}wx=5\frac{1}{\sqrt{2}}=3.5355$,DAI 为 $wy'=\sqrt{2}wy=5000\sqrt{2}=7071.0678$

故可以收到 3.5355 ETH 和 7071.0678 DAI

B)    如果你自己持有你的5 ETH和5000 DAI,你的资产现在将价值15K DAI,获取了5000 DAI的利润。在这几个月里,作为Uniswap V2的流动性提供者,与“自己持有”策略相比,你的损失是多少? 将损失以美元的绝对值表示,假设1 DAI = 1 USD。这被称为暂时性损失,尽管在这种情况下,这种损失是相当永久性的。

答: 按目前的价格,收回的 ETH 和 DAI 的价值为 $3.5355*2000+7071.0678=14142.0678$,损失为 $15000-14142.0678=857.9322$,损失率为 $\frac{857.9322}{15000}=0.057=5.7%$,故损失 857.9322 USD。

C)    如果您因担任Uniswap V2的流动性提供者而损失了x美元,Uniswap V2是用部分(b)计算x的,那么这些资金流向了哪里?具体来说,就是谁在这个过程中获得了x美元?

答: 这些损失将会由套利交易者获得。当外部 ETH 价格上升时,套利交易者会通过向 ETH/DAI 池中添加 DAI 取出 ETH 来使得池中的 ETH 价格比例达到外部 ETH 价格,由于池中流动性乘积恒定,因此取出的 ETH 的套利利润即为流动性提供者的损失。

D)     现在让我们转向使用Uniswap V2 交易。假设Bob使用DAI/ETH池将DAI兑换成ETH进行大型 交易。交易完成后,DAI/ETH池中的DAI金额比之前略高,而ETH的金额则略低。因此,DAI/ETH  池中的资产比率有点偏离其平衡点。

套利者Alice发现了这个机会,并希望在反方向发行一个交易,以重新平衡资金池。她旨在从这笔交易中获利,所以希望确保她的交易在Bob交易后被立即执行。这种策略被称为“尾随”。

那么Alice如何能实施尾随计划呢?请提出可以使Alice的交易在Bob之后可以有合理机会被立即被执行的方法。

答: Alice 可以利用一定量账户和一个合约来使得其交易在Bob交易之后被立即执行,具体步骤为:

  1. Alice 部署一个合约,这个合约可以提交交易,并预先存入用于交易的ETH;
  2. 准备一定数量的账户,账户中存入可用以支付gas的ETH;
  3. Alice 监听以太坊的交易池,当监听到 Bob 的交易时,通过每一个账户调用部署的合约广播一个交易,这个交易的 gas 价格等于 Bob 交易的 gas 价格。

由于以太坊中矿工在打包交易时是根据交易的gas价格高低进行的,这样将会使得 Alice 广播的交易有机会处于 Bob 交易的后的第一个交易,从而达到获利机会。

E)      假设10个不同的套利者,为捕获Bob的交易创造的套利机会, 在同一时间执行了相同的尾随操作策略。他们都使用了你在(D)部分中所描述的相同机制,那么这10个中的哪一个会获胜呢?

答: 由于以太坊中矿工在打包交易时是根据交易的 gas 价格高低进行的,因此对于所有 gas 价格和Bob的交易的 Gas 价格一致的交易,都有能被排序在Bob交易之后,所以这些交易中处在 Bob 交易之后的第一个交易将获利,对应的套利者获胜。