您的位置: 首页 > UNISWAP交易所模式开发 > 正文

Uniswap 新型做市系统

时间: 2021-10-06 23:15:33 浏览: 分类: UNISWAP交易所模式开发

本文介绍了一种新型的自动化做市商(AMM),它可帮助以太坊上的交易者有效地执行大订单。

我们称其为时间加权平均做市商,或 TWAMM (发音为“tee-wham”)。

1629119723503757.jpg

它的工作原理是将长期订单分解为无限多个无限小的订单,并根据嵌入的恒定乘积 AMM 随时间平滑地执行它们。

2.概要

假设 Alice 想在链上购买价值 1 亿 USDC 的 ETH,那么她在 Uniswap 等现有 AMM 上执行这种规模的订单将是昂贵的,如果 Alice 知道别人所不知道的事情(内幕消息),则其执行这样的大额交易会遭遇很大的滑点。

在今天,Alice 的最佳选择是手动将她的订单分成几部分,并在几个小时内执行,让市场有时间意识到她没有内幕信息,因此可以给她一个更好的价格。

如果她发送了几笔大的子订单,而每个子订单仍将对市场价产生重大影响,并且很容易受到对手交易者的三明治攻击。另一方面,如果她发送了许多小的子订单,她将不得不承担所有的工作和活跃交易的风险,并向矿工支付大量的 gas 交易费用。

TWAMM 通过代表 Alice 进行交易来解决这一难题。它将 Alice 的订单分解为无限多个无限小的虚拟订单,以确保随时间的推移完美平滑地执行,并且,使用带有嵌入式 AMM 的特殊数学关系,能够在这些虚拟订单中分摊 gas 成本。此外,因为 TWAMM 是在区块之间执行的交易,所以它也不太容易受到三明治攻击的影响。

3.做市基础

3.1 做市商

考虑一个由两种金融资产组成的市场(比如 USDC 和 ETH),而做市商就是这个市场的参与者,他们在任何时候都愿意用其中一个资产交易另一个资产。

如果你有 1 亿 USDC 并想用它来购买 ETH,你可能找不到另一个人在同一时间做相反的交易。相反,你很可能会去一个由单个或多个做市商组成的市场,并与他们进行交易。

3.2 逆向选择

做市商从价差中获利,即他们对每笔交易收取的费用。当价格与他们相反时,他们会赔钱(比如当他们购买价格下跌的资产,或者出售价格上涨的资产。)

不幸的是,对于做市商来说,市场价格往往与他们相反,这种现象被称为逆向选择。发生这种情况,是因为拥有有关未来价格走势信息的交易者,更有可能与做市商进行大额交易。

一般而言,最危险的订单就是那些规模又大又紧急的订单,因为这些订单正是知情交易者倾向于下的订单类型。因此,最基本的做市策略就是淡化入市订单,即当大量买入订单进来时,调高价格;当大量卖出订单进来时,调低价格。

4.自动化做市商

在过去的一年中,以 Uniswap 为首的自动化做市商 (AMM) 在以太坊上变得非常受欢迎,这些 AMM 每天处理数十亿美元的交易量。顾名思义,AMM 自动化了大部分的做市过程。

4、1 恒定乘积公式

恒定乘积公式是一个简单的规则,它允许任何人立即为一对新资产创建新市场和新 AMM。

为了在两个资产 X 和 Y 之间创建新的乘积 AMM (CPAMM) ,称为流动性提供者(LP)的用户存入这两种资产的 x 和 y 储备金。

这些资产在任何给定时间的比率代表 AMM 上的即时价格。例如,如果 CPAMM 的储备中包含 2,000 USDC 和 1 ETH,则 ETH 的瞬时价格将为 2,000 USDC。

当交易者与 AMM 进行交易时,它会根据公式 x * y = k 决定给他们什么价格,其中 x 和 y 是储备规模,k 是常数。这意味着其储备规模的乘积在交易期间保持不变(忽略费用)。

例子:

考虑一个 ETH/USDC CPAMM,其储备中有 2,000 USDC 和 1 ETH,因此此时 x = 2,000、y = 1 以及 x * y = k = 2,000。该 AMM 的瞬时价格为每 ETH 2,000 / 1 = 2,000 USDC。

如果交易者来购买价值 2,000 USDC 的 ETH,这意味着他们将 2,000 USDC 存入 X 储备,因此我们的 x 变成 4,000 (2000+2000)。

然后,由于 k = 2000,在这笔交易后,我们的 y 就变成了 0.5 (y = x/k=2000/4000)。由于 y 最初是 1,因此有 0.5 ETH 流向了交易者。

由于交易者用 2000 USDC 购买了 0.5 ETH,因此他们支付的 ETH 平均价格为 4,000 USDC。

价格影响与逆向选择

在上述情况下,交易员必须为其大额订单支付 4000 美元 /ETH,而小额订单的成本仅为 2000 美元 /ETH。这种价格差异被称为订单的价格影响。订单越大,价格影响(滑点)就越大。

这就是 AMM 对抗逆向选择的方式:大订单更有可能和内幕消息有关,因此 AMM 让他们付出了高昂的代价,它是淡化订单的自动化等价物。

5.在当前 AMM 上执行大订单

5.1 手动拆分订单

正如我们所看的,在单笔交易中对 AMM 执行一个大订单是昂贵的,这篇优秀的文章深入探讨了这个问题,并推荐了一些解决方案。

简而言之,希望在 AMM 上执行大订单的交易者不应该在单笔交易中执行:他们最好将订单分成几个部分。这可能涉及一次向多个 AMM 发送订单,但这些 AMM 在任何给定时间点的流动性也有限。订单越大,随着时间的推移将其拆分就越有吸引力。

例如,假设一个投资者想在链上购买价值 1 亿 USDC 的 ETH。他们没有关于 ETH 价格的任何短期信息,因此不介意其订单是否需要一些时间来执行。在这种情况下,他们可能会将订单拆分成 10 个小订单,每个订单 1000 万美元,并且每隔 1 个小时执行一次,从而减小订单的价格影响。

5.2 子订单大小权衡

很明显,如果一个非常大的订单被拆分成几个部分,每个单独的子订单仍然会很大,并且会相应地产生价格影响。将订单分成更小的部分会有所帮助,但这会引入两个新的问题。

第一个问题是操作复杂性,这意味着风险和工作量的增加。交易者可能会为给定的交易输入错误的交易数量或错误的方向。或者她的计算机可能会崩溃,从而阻止她执行部分订单。即使一切顺利,这个过程也需要时间与精力,它会分散人们对更有利可图的努力的注意力。

第二个问题是每笔交易都会产生固定的交易成本,例如支付给以太坊矿工处理交易的 gas。如果交易者将她的订单分成太多部分,其最终可能在交易费用上消耗的资金超过了其实际购买到的 ETH。

6.传统金融类比

在传统金融领域,如果投资者或机构想购买 1 亿美元的苹果股票,他们不会直接向交易所发送 1 亿美元的市场买单。他们也不会发送 10 个价值 1000 万美元的订单,而对于没有专门的交易人员和基础设施的大多数人来说,将订单分成比这小得多的部分是不切实际的。

相反,他们很可能会将大笔订单发送给经纪商,经济商会为他们进行算法交易以换取费用。经纪商将在指定的时间段内执行交易,比如八小时,并且价格类似于某个基准。经纪商将有一个专门负责安全且廉价地执行此类交易的团队。

6.1 TWAP 订单

也许最基本的算法交易类型是时间加权平均价格或 TWAP (发音为“tee-whap”)订单。顾名思义,在八小时内购买价值 1 亿美元的苹果股票的 TWAP 订单,将以接近该时期苹果股票时间加权平均价格的价格成交。

例如,如果苹果股票在四个小时的定价为 100 美元,另外四个小时的定价为 120 美元,那么时间加权平均价格将为($1004+$1204)/8=$110,经纪商将执行接近该价格的 TWAP 订单。

细节各不相同,但经纪商最有可能通过在一天内将其分成许多个小块并将它们发送到市场来执行此交易。在 8 小时内购买 1 亿美元的苹果股票,相当于每 100 毫秒购买大约 350 美元的苹果股票,我们可能预计经纪商或多或少会这样做。

经纪商拥有减少或消除如此多小额交易的操作复杂性的基础设施,并且由于他们与市场有直接联系,因此可能无需支付太多的交易成本。

7.时间加权平均做市商 (TWAMM)

时间加权平均做市商 (TWAMM) 提供 TWAP 订单的链上等价物。

TWAMM 具有用于订单拆分的专门逻辑以及与嵌入式交易所的直接连接,以低 gas 成本提供平稳执行。套利者将 TWAMM 嵌入式交易所的价格与市场价格保持一致,确保在资产的时间加权平均价格附近执行。

7.1 概述

每个 TWAMM 实例促进特定资产对之间的交易,例如 ETH 和 USDC。

TWAMM 包含一个嵌入式 AMM,这是这两种资产的标准恒定乘积做市商。任何人都可随时使用这个嵌入式 AMM 进行交易,就好像它是一个普通的 AMM。

交易者可以向 TWAMM 提交长期订单,这些订单是在固定数量的区块上出售固定数量资产的订单 -例如,在接下来的 2,000 个区块中出售 100 ETH 的订单。

TWAMM 将这些长期订单分解为无限多个无限小的虚拟子订单,这些子订单随着时间的推移以均匀的速率与嵌入式 AMM 进行交易。单独处理这些虚拟子订单的交易将花费无限的 gas,但封闭形式的数学公式允许我们仅在需要时计算它们的累积影响。

随着时间的推移,长期订单的执行将推动嵌入式 AMM 的价格远离其他市场的价格。发生这种情况时,套利者将根据嵌入 AMM 的价格进行交易,使其恢复一致,从而确保长期订单的良好执行。

例如,如果长期卖出使得嵌入式 AMM 上的 ETH 比特定中心化交易所便宜,套利者将从嵌入式 AMM 购买 ETH,使其价格回升,然后在中心化交易所出售以获取利润。

7.2 以太坊术语复习

区块(Block):以太坊将交易捆绑成称为区块(Block)的连续组,大约每 13 秒一次。出于本文的目的,我们将对每个区块进行编号:区块 1 之后是区块 2,然后是区块 3,依此类推。

矿工(Miner):分布式矿工组竞争处理每个区块。任何能连接互联网的人都可以成为矿工,这意味着在以太坊上运行的 AMM 之类的程序不能保守任何秘密:每个人都必须能够准确地计算出在给定输入的情况下他们会做什么。

Gas: 以太坊上的计算是一种稀缺资源,因此用户必须以 gas 的形式向矿工支付费用。给定交易中涉及的计算越多,它消耗的 Gas 就越多。这种 gas 费用完全由提交交易的人支付。

7.3 基础设计

长期订单:Alice 想在接下来的 8 小时内购买价值 1 亿 USDC 的 ETH,即大约 2,000 个区块。她在 TWAMM 中输入了一个长期订单,以在接下来的 2,000 个区块购买价值 1 亿 USDC 的 ETH,或每个区块 50,000 USDC。

如上所述,我们事先不知道哪些矿工将在 TWAMM 上处理未来的交易。这意味着 Alice 的订单必须对所有人可见,从而引入了我们在下面讨论的信息泄漏问题。

订单池:Bob 想在接下来的 5,000 个区块中将 500 ETH 兑换成 USDC,或者每个区块出售 0.1 ETH。

Charlie 想在接下来的 2,000 个区块中将 100 ETH 兑换成 USDC,即每个区块出售 0.05 ETH。

直到 Charlie 的订单在 2,000 个区块内到期,Bob 和 Charlie 的订单将被分组到一个池中。

该 ETH 销售池将在接下来的 2,000 个区块中以每个区块 0.15 ETH 的速率出售 ETH。Bob 将获得 USDC 池子的 ≈ 66%( 0.1/0.15),Charlie 将获得 USDC 池子的 ≈ 33%(0.05/0.15)。

虚拟订单:

对于接下来 2,000 个区块的每一个区块,TWAMM 必须代表 Alice 购买价值 50,000 USDC 的 ETH,并代表 ETH 销售池出售 0.15 ETH 以换取 USDC

我们可以想象,TWAMM 将这两个子订单中的每一个拆分为数万亿个微小的子子订单,我们称之为虚拟订单(实际上,是将它们分解为无数个无穷小的虚拟订单)。

然后 TWAMM 轮流针对其嵌入的 AMM 执行这些虚拟订单:第一个是 Alice 的虚拟订单,然后是 ETH 销售池的一个虚拟订单,然后是 Alice 的另一个虚拟订单,依此类推。

套利:

因为 Alice 购买的 ETH 要比 ETH 销售池出售的多得多,嵌入式 AMM 上的 ETH 价格将在每个区块经历上涨。

当这个价格相对于其他地方的 ETH 价格足够高时,套利者将在其他交易所购买更便宜的 ETH 并在嵌入式 AMM 上出售,使其价格回到市场平均水平,并确保 Alice 的良好执行。



来源: https://uniswap003.skpseo.com