权益证明机制下的Uniswap v3 TWAP预言机

本文探讨了在以太坊从PoW过渡到PoS后,Uniswap v3 TWAP预言机面临的潜在操纵风险。尽管双区块操纵成本仍然过高,但三区块及以上的攻击在理论上是可行的。文章分析了宽范围流动性和限价单等缓解策略,并提出了未来预言机设计的潜在创新,例如TWMP和截断的TWAP预言机,以提高抗操纵性。同时,文章还讨论了以太坊协议和市场结构方面的改进建议,以进一步增强预言机的安全性。

Austin Adams

Uniswap Lab

Xin Wan

Uniswap Lab

Noah Zinsmeister

Uniswap Lab

2022年10月26日

Austin Adams, Xin Wan, and Noah Zinsmeister 1

价格 预言机 是一种用于查看给定资产价格信息的工具。当构建与DeFi协议集成的智能合约时,开发者不可避免地会遇到 预言机 问题。Uniswap v2 使开发者能够构建高度去中心化和抗操纵的链上价格 预言机 - 时间加权平均价格 (TWAP) 预言机 - 以帮助解决构建稳健协议所需的许多需求。Uniswap v3 通过增加 TWAP 预言机 的计算和 gas 效率扩展了这一点。

这些工具是生态系统的重要组成部分,因为它们是一个无需信任的价格 信息 源,许多智能合约都可以接入以获取价格数据。然而,它们也是潜在不良行为者的巨大目标,因为存在操纵它们的经济动机。Uniswap 的 TWAP 预言机 被设计为在工作量证明 (PoW) 模式下运行,其安全性基于以下事实:操纵者会因反向运行而损失资金。

从PoW到 权益证明 (PoS) 的过渡是以太坊历史上区块构建中最大的变化。虽然它对整个生态系统带来了许多深远的好处,但它对 TWAP 预言机 产生了意想不到的后果(以及一些其他依赖 PoW 中下一个区块创建者随机性的机制)。

随着 PoS 的采用,预言机 在理论上变得不那么安全,因为恶意验证者知道他们是否控制着下一个区块 - 因此他们不再因反向运行而损失资金。但这伴随着重要的警告。目前,操纵大多数 Uniswap v3 TWAP 预言机 是不可行的,因为不良行为者既需要获得极高的资本水平,然后又需要赚取足够的钱来弥补因费用造成的损失。有足够市场份额使攻击更有可能发生的验证者不太可能这样做,因为他们会破坏其在市场中的地位以及用户对其系统作为中立方的信心。

但由于这种潜力,我们希望探讨在 PoS 环境中,操纵 Uniswap v3 上 预言机 的难度、潜在成本和可能性。我们还将研究一系列潜在的解决方案,这些解决方案现在以及将来版本的协议中都可以实现。我们希望这项研究将有助于澄清公众对这个问题的看法,以及 Uniswap Labs 未来在 预言机 方面的工作。

[object Object] 总结

  1. 在 PoS 环境中,在顶级交易对上进行双区块 Uniswap v3 TWAP 预言机 操纵仍然成本高昂。潜在的操纵者需要将单个区块的价格移动 71,721,000,000,000%,才能将 30 分钟 TWAP 预言机 价格改变 20%,这需要获得大量不可行的资产,并因费用而损失大量资金 2
  2. 三个或更多区块的 预言机 操纵更可行,但验证者需要很大的市场份额才能使其成为可能。
  3. 目前没有足够的经济动机来操纵 TWAP,但如果 Uniswap v3 上的使用量和可组合性持续增长,这种激励可能会实现。
  4. 宽范围流动性是目前 预言机 操纵的最佳缓解工具。在 USDC/WETH 5 bps 上添加一个价值 100 万美元的宽范围铸币,使得双区块 预言机 攻击成本增加约 3600 亿美元。
  5. 应该研究更强大的 预言机 机制。例如,TWMP(时间加权中位数价格)预言机 将使操纵的成本高得令人无法承受,需要操纵池在该时段内超过一半的区块。Winsorized 预言机 可能是另一种选择,保留了 TWAP 的大部分优势,并增加了抵抗力。

[object Object] 介绍

以太坊主网上的PoS (Proof of Stake) 合并 是以太坊历史上区块构建方式中最大的变化。

这种变化的一部分是 权益证明 区块提议者提前一个 epoch(32 个区块或 6 分 24 秒)知道他们是否是下一个区块提议者。这意味着验证者和整个网络都知道谁将提议当前的 epoch(最多 6 分 24 秒)和下一个 epoch(6 分 24 秒)。总计至少 6 分 24 秒,最多 12 分 48 秒,已知区块提议者。这是与 PoW(工作量证明)的重大改变,因为 PoW 的随机性使得不可能确定谁将挖掘下一个区块。这种对下一个区块提议者的确定性知识消除了 TWAP 预言机 的主要防御措施之一。

现在,理论上可以进行两个或多个区块的操纵。在 PoS 中,验证者控制交易排序。控制连续两个区块的验证者可以在第一个区块中大幅移动池的价格,并在下一个区块中将其移回,而没有被套利反击的风险。这样,基于该池的 预言机 将具有操纵价格的数据点,并且操纵者的唯一成本将是池费用的 2 倍。

[object Object] 什么是 TWAP?

TWAP 代表“时间加权平均价格”。TWAP 在 Uniswap v2 中添加,并在 Uniswap v3 中得到改进。Uniswap v3 上的 TWAP 计算池中两种资产的相对价格的几何平均值。TWAP 预言机 信息 源被协议用作链上资产的参考价格。许多协议都在努力计算既可靠又准确的链上价格。协议需要确保它们始终可以接收定价信息,但也要确保其准确性。

从 PoW 到 PoS 的过渡改变了 TWAP 预言机 的一些基本考虑因素。在 PoW 中,在区块被网络接受之前,下一个 矿工 是未知的。潜在的操纵者无法保证他们能够廉价地反向运行自己的交易。PoW 中最可能的情况是,操纵者需要在一个公开拍卖中竞争以获得反向运行自己操纵的机会,这将迫使他们为这个机会支付市场价格。PoW 确保操纵者因反向运行而损失价值。只要使用 TWAP 数据的协议确保反向运行造成的价值损失超过操纵池获得的价值,它们就是安全的。但是,操纵者现在可以确保他们反向运行自己的操纵。

[object Object] 为什么有人想操纵 TWAP?

许多协议需要资产的当前链上价格来计算其投资组合的市场价格。也许最相关的例子是借贷协议,它必须计算协议发行的贷款的债务和抵押品的价值。借贷协议使用这些值来有效地清算贷款,以防止其抵押不足。借贷协议的一个潜在攻击向量是攻击者借入立即抵押不足的资产,从而使协议高估了攻击者投入的抵押品。然后,协议无法清算和收回借入资产的价值,从而为借贷协议造成不良债务并使攻击者致富。

由于现货价格易于操纵且相对便宜,因此大多数协议使用 30 分钟的滚动时间窗口进行 TWAP 以计算价格 3。使用具有较长时间窗口的 TWAP 会导致价格平滑但滞后。如果现货价格自然跳跃到足以引起向协议铸造不良债务的套利,则滞后是有问题的,但实际上用作抵押品的资产应该被限制范围以确保这不是现实的。

操纵 TWAP 比操纵现货价格的成本更高。由于大多数借贷协议都需要超额抵押,为了产生不良债务,恶意用户需要通过超额抵押保证金来操纵 TWAP 预言机(每个资产和协议都是唯一的,但我们的分析为 20%)。因此,我们决定计算操纵 Uniswap v3 TWAP 预言机 的成本。

[object Object] 如何操纵 TWAP?

操纵者可以通过在第一个区块中将大量一种资产兑换到池中来创建操纵的 预言机 更新,然后在第二个区块中沿相反方向兑换相同的数量(“反向运行”)。这将创建一个 预言机 更新,其价格为第一个区块的最终操纵价格。我们将此双区块设置定义为双区块操纵。可以在反向运行初始操纵交换之前等待更多区块。如果用户在反向运行其操纵交换之前等待两个区块,则它是三区块操纵(两个区块的等待 + 一个区块的反向运行以触发 预言机 更新)。由于大多数协议都使用 30 分钟的运行 TWAP,因此等待更多区块可以让更多权重落在最终的操纵价格上。

根据操纵占用的区块数量,我们可以确定性地计算出该长度的 TWAP 预言机 操纵成本 4

τ=150ln⁡1+δln⁡1.0001k+TWAP0,150−k\tau=\frac{150\frac{\ln 1+\delta}{\ln1.0001}}{k}+TWAP_{0,150-k}τ=k150ln1.0001ln1+δ​​+TWAP0,150−k​

在 Uniswap v3 中,Ticks 通过 price=1.0001τprice=1.0001^\tau price=1.0001τ 将价格映射到价格。TWAPTWAPTWAP 是未经操纵的 30 分钟 - (12 秒 * k) TWAP 价格。有关我们如何推导出此公式的更多信息,请参见附录。

图 1. 20% 预言机 操纵所需的 Ticks 与区块长度操纵的关系

figure1

此图显示了使用方程和 δ=.2\delta = .2δ=.2 导致 20% 预言机 操纵必须跨越的 Ticks 数量

图 1 直接来自使用 δ=.2\delta = .2δ=.2 的方程 1。在峰值时,如果 TWAP 当前为 0,则需要跨越 273,497 个 Ticks 才能将价格操纵 20%。10 个区块后,此成本降至 27,350 个 Ticks。此值呈指数下降,需要跨越明显更少的 Ticks,从而使操纵成本更低,可以控制的区块越多。

如前所述,PoS 验证者知道他们将在接下来的两个 epoch 中提议多少组区块。因此,他们可以执行多个不相交的 预言机 攻击,就像它们是一次联合攻击一样。两组双区块 预言机 攻击可以跨越与一次三区块攻击相同数量的 Ticks。这些攻击将具有等效的影响,只是花费更多的 LP 费用。这使得 预言机 攻击更有可能发生。

从我们之前的等式中,我们知道操纵者需要跨越 273,497 个 Ticks 才能将 TWAP 价格操纵 20%,但这在实践中需要多少资产?

[object Object] 双区块 20% 的价格操纵需要多少资金?

表 1. 创建双区块操纵所需的标的资产

table1 (1)

采样时间:2022 年 9 月 4 日 00:00 UTC。

例如,上表中 Token 0 的数量是为了跨越 -273,497 个 Ticks 所需的 Token 0 的数量,这将使池中 Token 1 的参考价格提高 20%。对于 USDC/WETH 5 bps 池,Token 0 是 USDC,交换 7090 亿个 USDC 会将 WETH 的参考 TWAP 价格操纵 20%。

从表 1 中可以看出,池的双区块操纵成本太高,永远无法完成。对于大多数池来说,甚至没有足够的标的资产在流通中来尝试进行双区块操纵。此外,费用损失的成本超过了美属萨摩亚的 GDP 5

双区块操纵的惊人成本来自宽范围的流动性。在大多数主要池的外部 Ticks 处都存在大量的流动性。这来自被动 LP,他们选择宽范围以换取永不重新平衡,以及希望提高 预言机 稳定性的慈善行动者。

例如,在操纵交换必须通过的 5 bps USDC/WETH 池的最终 TickTick 476,496)处,操纵者必须以每个 2.1 x 10^-9 USDC 的价格提供 45,138 个 WETH,以通过成功执行操纵所需的最终 Tick 进行交换。在 Tick 处放置所有流动性总共花费了约 70 美元的资产。随着更宽范围的流动性,操纵的价格呈指数增长。我们将在后面的章节中对此进行探讨。

图 2. 随时间推移的双区块操纵成本

figure2

此图显示了在每个采样周期将 USDC 价格操纵 20% 所需的 WETH 数量的时间序列。样本是 2021 年 9 月至 2022 年 9 月的每周样本。

随着更多流动性上链到池中,20% TWAP 操纵的价格也显着增加。令人惊讶的是,在 7 月的动荡时期,成本没有显着下降。虽然大量流动性因剧烈波动而超出范围,并且现货流动性变得越来越稀薄,但重要的宽范围流动性并没有从池中撤出。因此,操纵的成本通常会增加。

[object Object] 多个区块的操纵怎么样?

大多数关心 TWAP 预言机 操纵的人都关心 k>2k>2k>2 的情况。这是因为随着向 PoS 的过渡,多个区块的操纵现在变得更加可行。 首先,让我们仅看一下 USDC/WETH 5 bps 池的多个区块操纵的成本。

表 2. USDC/WETH 5 bps 的操纵成本

table2

采样时间:2022 年 9 月 4 日 00:00 UTC。

从双区块操纵到三区块操纵的下降幅度惊人。虽然 9.78 亿美元仍然非常昂贵,但它不像 7100 亿美元那样完全不可行。这种急剧下降的发生是因为通过更少的总 Ticks 进行交换的成本呈指数下降。随着更多区块可以操纵,必须跨越的总 Ticks 数量也迅速减少。

从 Revuelta 6 的这篇论文中可以看出,平均而言,我们应该期望拥有约 1% 份额的区块提议者平均每月会被分配连续提议 3 个区块 0.19 次 7。这意味着一个 1% 的区块提议者平均每 5 个月连续获得 3 个区块一次。比例越大,增加的幅度越大。我们应该期望一个拥有 10% 市场份额的验证者每月连续 3 次获得 181 个区块。

如前所述,多个不相交的 预言机 操纵组可以像一个更长的组一样发挥作用。由于大型验证者还可以预期在两个已知的 epoch 中有多个双区块组,因此这将增加大型验证者可以 预言机 操纵池的可能性。因此,目前的发现是 预言机 操纵可能性的下限,而实际概率更高。

[object Object] 目前可以为 Uniswap 协议做什么?

在讨论修改之前,我们想澄清一下,Uniswap v3 是不可升级的。这意味着当前代码根本无法更改,这使得无法向现有合约添加新的 预言机 类型。Uniswap v3 合约被设计为不可升级的,因为这为协议用户带来了安全优势。不可升级的合约意味着用户可以信任已部署的合约是相同的,并且可以确保合约的行为始终保持一致。可升级的合约也对去中心化构成威胁。

有了这些,下面提出的解决方案不需要对现有的 Uniswap v3 协议进行任何代码添加。

[object Object] 宽范围流动性

首先,我们研究了添加宽范围流动性。与 Uniswap v2 相比,v3 中的宽范围流动性仍然可以获得可观的收益,因此这是一个可行的解决方案 8。完整的 v3 WETH/USDC 30 bps 头寸的回报率约为 v2 头寸的 66%。双区块操纵使 30 分钟 TWAP 移动 20% 必须跨越 273,496 个 Ticks,因此任何距当前 Tick 超过 273,496 个 Ticks 的流动性都不会用于缓解 预言机 操纵。 Tick 273,497 处的流动性未使用,因为只有在达到该 Tick 时,流动性才会启动。由于最接近价格操纵最终 Ticks 的流动性最昂贵,因此我们要确保我们尽可能接近最终 Ticks,并且跨越超过所需 Ticks 数量的 Ticks 尽可能少。

最佳的宽范围 Tick 下限和上限是 [当前 Tick - 273,496 个 Ticks,当前 Tick + 273,496 个 Ticks]。Uniswap v3 WETH/USDC 5 bps 的当前 Tick 约为 206,000,因此最佳范围为 [-67,496, 479,496]。但是,所有资产都具有不同程度的波动性,并且只能根据 Tick 间距将流动性放置在特定的 Ticks 处,因此应选择比完美最佳更宽的范围,以应对漂移。

表 3. 添加的宽范围流动性头寸

table3

表 3 显示了我们分析中添加的流动性头寸。添加的头寸成本约为 1,240,000 美元,并且与集中头寸相比,应该具有最小的发散损失(由于头寸的范围很大)。映射到该头寸的 Tick 范围为每个 WETH 从 $1.9x10^-10 到 $2.2x10^16。

表 4. 具有添加头寸的 USDC/WETH 5 bps 的操纵成本

table4

采样时间:2022 年 9 月 4 日 00:00 UTC。

如果执行双区块操纵,则该头寸将为 LP 带来 5.4 亿美元的费用。如果一个具有 1% 验证者份额的验证者执行满足三区块案例预期数量的交易,则 LP 将获得 5800 万美元的费用。

由于添加的流动性非常广泛,因此阻碍潜在操纵的好处主要在于双区块和三区块案例。大部分力量都在最远边缘,更多区块的操纵不会触及这些边缘。该头寸的影响是巨大的。一个慈善方可以铸造该头寸,并将一些潜在的收益从集中流动性中交易出去,以换取 TWAP 预言机 的稳定性。

[object Object] 双边限价单

Uniswap v3 中的限价单是集中的订单,通常具有一个 Tick 范围( Tick 上限减去 Tick 下限),即一个 Tick 间距。与中心限价订单簿 (CLOB) 不同,Uniswap v3 上的限价单是双边的,一旦一个资产的买单被交易,就会以相同的价格放置另一个资产的卖单。有第三方服务会自动为你删除订单并创建单边限价单。第三方服务跟踪池,并在满足某些条件时提交交易以燃烧你的流动性。问题是操纵者会控制交易,并将该交易添加到他们的区块中以燃烧你的限价单。

由于可以随时确定性地找到 TWAP 操纵所需的确切 Tick,因此慈善方也可以在操纵所需的 Ticks 数量之前放置大量限价单。这是不合理的,因为某些资产具有较高的波动性,需要频繁调整。此策略的另一个问题是订单的机会成本很高。下面我们分析了仍然考虑资产漂移的极端超出范围的限价单的影响。

与始终在范围内的宽范围流动性不同,限价单只有在其 Tick 达到时才会影响操纵的成本。通过将 Ticks 设置得离当前价格更远,操纵变得越来越昂贵。另一方面,如果我们放置更远的限价单,则限价单的影响较小,因为对于这些限价单,跨越的 Ticks 较少。

假设我们想要影响四区块操纵。如前所述,分析时的当前 Tick 大约为 206,000,并且必须跨越 68,374 个 Ticks 才能进行四区块操纵。为了影响四区块操纵,理论上的限价单必须放置在 [206,000-68,374, 206,000+68,374] = [137,626, 274,374] 的 Tick 范围内。为了应对某些资产漂移,我们将价值约 100,000 美元的限价单放置在 Tick 150,000 和 Tick 250,000 处。

表 5. 添加的限价单流动性头寸

table5

Tick 250,000 处添加一个 100,000 USDC 的限价单(每个 WETH 以 13.91 USDC 的价格购买 WETH 的订单)以及在 Tick 150,000 处添加一个 65 WETH 的限价单(每个 WETH 以 306,131.82 USDC 的价格出售 WETH 的订单)会增加一些额外的攻击成本。100,000 USDC 的限价单使攻击成本增加了约 10,800,000 美元。WETH 限价单使成本增加了约 19,900,000 美元。这不如宽范围订单那么极端。

我们可以定位两个或三个区块的操纵,而不是定位四个区块的操纵。为了比较改变 Tick 范围以仅缓解目标两个和三个区块操纵的影响,我们还计算了如果创建表 6 中的订单,操纵成本。

表 6. 添加的更广泛的限价单流动性头寸

table6

有了这些添加的限价单,三区块操纵对 WETH 的成本为 204 亿美元,对 USDC 的成本为 234 亿美元。就像双区块操纵一样,三区块现在变得不可能。但是,由于我们超出了影响四区块操纵所需的范围,因此它们的成本与原始计算相比没有变化。

[object Object] 还可以做什么?

如果验证者具有足够的市场份额,则全范围流动性和双边限价单都无法解决该问题。有了足够的市场份额,验证者可以执行 20 到 30 个区块的操纵,而执行这些操纵的成本更低。这些订单只会使攻击的成本略有增加。

[object Object] 潜在的 预言机 创新

应继续研究针对使用 TWAP 数据的协议和创建它的协议(即 Uniswap 协议)的缓解策略。应研究中位数价格 预言机 和 winsorized(或类似的)TWAP 预言机,以创建下一代抗 PoS 操纵的 预言机 9

TWAP 预言机 更新可以截断,而不是传统的 winsorize(可能需要昂贵的滚动方差计算),如果更新超过与之前 预言机 更新的总变化量。这会在一定长度的区块内产生抗 预言机 操纵的能力。例如,如果从之前的更新中跨越了 20,000 个 Ticks,我们可能会将该值截断为 9,116 个 Ticks。最大值 9,116 可确保验证者必须执行至少 30 个区块的 预言机 操纵才能将 30 分钟 TWAP 移动 20% 10。此 Ticks 的最大变化量可能取决于进一步的研究而更高或更低。

图 3. 验证者份额预期的双区块对的数量

figure3

使用蒙特卡罗模拟计算

例如,30 个区块的操纵需要较高的验证者市场份额。如上图所示,验证者需要 40% 的份额才能在 150 个区块期间期望 30 个区块的操纵。对于 30% 的份额,验证者在 150 个区块期间只能期望有 1/2,000 概率的 30 个区块的操纵。从上下文中可以看出,Lido 拥有的最高验证者份额约为 30% 11

一个折衷方案是截断的 TWAP 预言机 的更新速度将比当前实现慢。将 预言机 更新限制为最大变化量为 9,116 将允许 TWAP 中的区块与区块之间最多 2.5 倍的价格变化。但是 2.5 倍的变化足够大,仍然可以为大多数资产实现快速的价格收敛

[object Object] 以太坊协议创新

还应考虑删除提议者的前瞻性,因为这可以完全消除操纵问题。但是,从以太坊的角度来看,这将是重要的。据 Ben Edgington 12 称,实施了一个 epoch 的前瞻性,以允许验证者加入正确的 p2p 网络子网,并准备好根据验证进行验证。当前有助于缓解该问题的最佳候选技术是单Slot最终性或 SSLE(秘密单领导者选举)13。不能保证这些技术会在短期内出现以解决该问题。

[object Object] 市场结构创新

另一个建议是使用池实现的单边限价单。这些订单从池中燃烧,无需外部干预,并且恶意验证者无法阻止其执行。操纵者无法无风险地反向运行自己的操纵,以收回其初始交换中损失的所有资金。这样,操纵池所需的成本也将包括资本损失,从而增加对操纵者的威慑。

[object Object] 结论

协议使用 Uniswap v3 TWAP 预言机 来获取有关资产价格的市场信息。随着从 PoW 到 PoS 的 合并,TWAP 预言机 的主要防御措施之一被消除,允许后续区块提议者进行前瞻性。虽然双区块 TWAP 预言机 操纵仍然非常昂贵,但在技术上可行的是三区块和更大的攻击,尽管对于份额较小的验证者来说,在统计上非常不可能。我们已经展示了几种使这些攻击更加不切实际的方法,但所有方法都有必须考虑的权衡。

Uniswap Labs 当前正在研究抗 PoS 的 预言机 实现,但可以引入其他改进,例如更多的宽范围流动性和限价单。我们希望此博客能够阐明 Uniswap v3 上 TWAP 预言机 操纵的潜在可行性。


[object Object] 附录

[object Object] TWAP 附录

以下是关于 Uniswap v3 上 TWAP 实现的复习。

Uniswap v3 上的 TWAP 通过计算区块末尾的 Uniswap v3 池的时间加权 Tick 来实现,然后将该 Tick 映射到价格。加权 Tick τ \tau τ 可以通过 price=1.0001τprice=1.0001^\tauprice=1.0001τ 转换为价格 pricepriceprice。

如果一个池从时间 t0t_0t0​ 到 t1t_1t1​ 的 Tick 为 τ\tauτ,则一旦 Tick 在时间 t1t_1t1​ 移动,就会创建一个 预言机 更新。

updatet=∑t0t1τupdate_t=\sum^{t_1}_{t_0}\tauupdatet​=∑t0​t1​​τ

在 Uniswap v3 智能合约中,有一个累加器,可以累积地将这些更新加到当前区块 14。要从 lll 计算 TWAP 到 kkk,你需要从 tkt_ktk​ 的累加器中减去 tlt_ltl​ 的累加器,然后除以 k−lk-lk−l。

但是,这只是为了提高 gas 效率而进行的优化。你也可以只对每个区块的 Tick τ\tauτ 求和,即使 Tick 没有改变,假设 Tick 在未来区块中从 t0 更改。但是,非常重要的是要记住,只有在当前 Tick 更改时,才会触发 预言机 更新。否则,预言机 会线性插值,可能会产生不同的结果,并且以下近似值将不正确。我们的分析假设潜在的操纵者会反向运行他们的交换,从而保证 预言机 更新。我们使用此公式从 t0t_0t0​ 到 t1t_1t1​ 计算 TWAP。

TWAPt0,t1=∑t0t1τit1−t0 TWAP_{t_0,t_1} = \frac{\sum^{t_1}_{t_0}\tau_i}{t_1-t_0}TWAPt0​,t1​​=t1​−t0​∑t0​t1​​τi​​

[object Object] 数学附录

参见 链接

[object Object] 脚注

  1. 感谢 Teo Leibowitz、Mark Toda、Sara Reynolds、Will Pote 和 Aseem Sood 的评论。

  2. 1001.0001x+273000−1.0001x1.0001x=71,721,000,000,000100\frac{1.0001^{x+273000}-1.0001^x}{1.0001^x}=71,721,000,000,0001001.0001x1.0001x+273000−1.0001x​=71,721,00014. 通常,我们认为 TWAP 是价格的几何平均数,但下面的等式描述的是价格的算术平均数。重要的是要注意,几何平均数和算术平均数在对数空间中是等价的。

分享

注册以获取 Uniswap Labs 团队的研究和更新

提交

相关文章

  • 原文链接: blog.uniswap.org/uniswap...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
Uniswap Labs
Uniswap Labs
江湖只有他的大名,没有他的介绍。