CS251 - final 2021 - 问题 3
问题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 的数量为,,提供的5个 ETH 和5000个 DAI 流动性占比为 ,则此时边际价格(marginal price)为;
设价格变化之后流动性池中 ETH 和 DAI 的数量为 ,,则有 ;
根据恒定乘积公式 ,以及 ,,可以推出:
,,
由于流动性占比不变,所以取回的 ETH 为 ,DAI 为
故可以收到 3.5355 ETH 和 7071.0678 DAI
B) 如果你自己持有你的5 ETH和5000 DAI,你的资产现在将价值15K DAI,获取了5000 DAI的利润。在这几个月里,作为Uniswap V2的流动性提供者,与“自己持有”策略相比,你的损失是多少? 将损失以美元的绝对值表示,假设1 DAI = 1 USD。这被称为暂时性损失,尽管在这种情况下,这种损失是相当永久性的。
答: 按目前的价格,收回的 ETH 和 DAI 的价值为 ,损失为 ,损失率为 ,故损失 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交易之后被立即执行,具体步骤为:
- Alice 部署一个合约,这个合约可以提交交易,并预先存入用于交易的ETH;
- 准备一定数量的账户,账户中存入可用以支付gas的ETH;
- Alice 监听以太坊的交易池,当监听到 Bob 的交易时,通过每一个账户调用部署的合约广播一个交易,这个交易的 gas 价格等于 Bob 交易的 gas 价格。
由于以太坊中矿工在打包交易时是根据交易的gas价格高低进行的,这样将会使得 Alice 广播的交易有机会处于 Bob 交易的后的第一个交易,从而达到获利机会。
E) 假设10个不同的套利者,为捕获Bob的交易创造的套利机会, 在同一时间执行了相同的尾随操作策略。他们都使用了你在(D)部分中所描述的相同机制,那么这10个中的哪一个会获胜呢?
答: 由于以太坊中矿工在打包交易时是根据交易的 gas 价格高低进行的,因此对于所有 gas 价格和Bob的交易的 Gas 价格一致的交易,都有能被排序在Bob交易之后,所以这些交易中处在 Bob 交易之后的第一个交易将获利,对应的套利者获胜。