抗三明治攻击的自动做市商

本文介绍了一种被称为沙拉攻击防御自动做市商(sr-AMM)的方法,以防止沙拉攻击对交易者的不利影响。相较于传统的方法,sr-AMM 是一种应用层解决方案,通过在交易时保持价格不低于最初价格来使得沙拉攻击不再具备利润空间,从而保护用户免受前置攻击的影响。

引言

AMM(自动化做市商)使交易者容易受到三明治攻击。在未经信任的排序者的区块链上,交换交易容易受到抢跑,使得交易者执行效果变差,同时使得排序者受益。

大多数减轻三明治攻击的方法试图在基础设施层面解决此问题,依赖受信任的第三方提供交易前隐私保障。在本文中,我们介绍了 抗三明治攻击 AMM,这是一个针对原子三明治攻击的应用层解决方案。

关于三明治攻击的背景

三明治攻击发生在受害者交易者在高滑点容忍度(比如 99%)的 AMM 上下单时。交易者设置高滑点容忍度并不是因为他们希望以比当前价格差 99% 的价格成交,而是因为他们希望迅速执行市场订单。 假设受害者交易是一个买单,夹击组合看起来是这样的:

  • 一笔没有盈利的抢跑交易,由搜索者买入该币,直到受害者交易以最差的执行价格成交。
  • 受害者交易,以最差的价格成交,并进一步抬高价格。
  • 一笔盈利的反跑交易,由搜索者卖出该币,弥补之前亏损的抢跑交易并获得利润。

由于他们往往设定更高的滑点容忍度,同时在高波动币的低流动性池上交易,Memecoin 的交易者最容易受到三明治攻击。 今天,三明治攻击者每天从 Solana 用户手中提取数十万美元,以 Ethereum 的数字也类似。

示例

考虑一个受害者交易,购买 3 个单位的流动性来自一个恒定乘积 AMM。我们将以 log(price) 而非价格的形式表示价格,以便于后续的平均价格计算。数字不是按比例标记,仅用于说明夹击的高层次机制。

  1. 最初,AMM 以中间价格 p* 提供流动性,费用水平为 f。攻击者购买 1 个单位的流动性,将 AMM 的报价价格推高至 p* + 2f。该交易以平均价格 p* + 1.5f 执行。 1
  2. 受害者交易执行,AMM 的报价价格被推高至 p* + 5f。受害者的交易以平均价格 p* + 3.5f 执行。如果该交易没有被抢先执行,平均价格将是 p* + 2.5f。 2
  3. 攻击者以价格 p* - f 卖出 1 个单位的流动性,造成损失。 3
  4. AMM 显示的最终价格为 p* + 3f。 4

抗三明治攻击 AMM

我们提议 抗三明治攻击 AMMsr-AMM),这是一种让夹击操作无利可图的应用层解决方案。sr-AMM 通过强制遵守一个不变条件来扩展恒定乘积 AMM:没有交易以比时间窗口开始时的价格更好的价格成交。这是 Vitalik Buterin 在 2018 年提出的一个理念 的扩展,使得原子三明治攻击变得无利可图。

描述

sr-AMM 在 时间窗 中运行(单一领导者轮替——Solana 上 4 个时间窗,Ethereum 上 1 个)。在一个时间窗中,买卖的交换对池子的影响是不对称的。当执行一个买单时,池子的报价会根据 xy=k 曲线增加。但是,买入价格保持不变,而是增加买入的流动性。后续的卖出交易萎缩这一流动性,并根据 xy=k 下降报价。

在每个时间窗的开始,sr-AMM 的状态重置为等效的 xy=k 状态。通过仅在时间窗开始时重置买入和卖出,我们打破了定义当今三明治攻击的盈利反跑的原子性。

示例

考虑相同的受害者交易,从 sr-AMM 购买 3 个单位的流动性。同样,我们将以 log(price) 而非价格的形式表示价格。如果尝试同样的三明治攻击:

  1. 最初,AMM 以中间价格 p* 提供流动性,费用水平为 f。攻击者购买 1 个单位的流动性,将 AMM 的报价推高至 p* + 2f,同时增加买入的规模。该交易以平均价格 p* + 1.5f 执行。 5
  2. 受害者交易执行,将 AMM 的报价推高至 p* + 5f,同时增加买入的规模。受害者的交易以平均价格 p* + 3.5f 执行。如果该交易没有被抢先执行,平均价格将是 p* + 2.5f。 6
  3. 攻击者在价格为 p* - f 的情况下卖出 1 个单位的流动性,造成损失。 7
  4. 池子的报价下降,而买入价格保持不变且将规模变小。 8
  5. 在时间窗结束时,AMM 状态重置,流动性恢复正常。最终中间价格为 p* + 3f。 9

考虑事项

  • sr-AMM 保留了单变数,即 k(在 xy=k 中)在交换后始终递增。
  • 与恒定产品 AMM 相比,sr-AMM 严格增加了交易者支付给池子的净差价或“费用”。通过调整池子提供的最小差价,可以在 LP 和交易者福利之间进行权衡。
  • 此设计仍支持锁定流动性(有可提取费用和没有可提取费用)、无许可池创建、无许可流动性提供和去除流动性、以及无许可交易。
  • 在时间窗边界仍然可以进行夹击。如果一个领导者控制连续的时间窗,他们可以在第一个时间窗结束时包含抢跑和目标交易,然后在第二个时间窗开始时进行反跑。
  • 通过原子流动性提供,攻击者仍然可以通过提供时效性流动性夹击高度滑点交易。这可以通过要求流动性激活期来潜在减轻,以便流动性提供不能与交换捆绑。

结论

在本文中,我们概述了抗三明治攻击 AMM 的构建,这是一个在应用层防止原子三明治攻击的 AMM。我们希望此设计的采用将帮助保护那些受到 AMM 上抢跑攻击影响的用户。

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

0 条评论

请先 登录 后评论
umbraresearch
umbraresearch
Umbra Research is exploring novel ideas in blockchain research.