原文:《争议:GMX 的 Keeper 机制是否会引发内部作恶?

总结 :吴说区块链

引言

9 月 18 日,GMX 遭遇了价格操纵攻击,攻击者利用 GMX 的最小价差和 0 滑点的特性对 AVAX/USD 进行价格操纵,赚取了 56.5 万美元的 AVAX。关于其中细节可以参考《如何利用 GMX 的交易机制进行价格操纵?外部攻击与内部作恶的方法分析》,此次攻击是“合理但恶意”地利用了 GMX 的交易机制,属于外部攻击。文章提到,除了外部攻击外,GMX 还存在潜在的内部攻击风险。

链茶馆文章:

https://mp.weixin.qq.com/s/kIcQ56uQM38KQ2_vW22d2A

关于 Keeper 机制所带来的作恶隐患,详细分析如下:

https://im0xalpha.notion.site/GMX-A-Can-Be-Evil-AMM-bf22717230864f458e94fc5482e304ff

  • GMX 依赖于一个集中的喂价机制,即“Keeper”,它完全由团队控制。
  • Keeper 决定了所有的交易价格,因此可以随心所欲地使任何一方(交易者和 LP)受损或受益。
  • 有了 Keeper 的绝对权力,GMX 很容易作恶,甚至比任何中心化的交易所更容易。

 

# 细节中的魔鬼:GMX 的 Keeper

最近 GMX 遭遇的价格操纵攻击使我们注意到了 GMX 的 Keeper 机制。事实上,外部操纵的攻击并不是最大的问题,因为外部操纵是一个可预防的问题。但 Keeper 所带来的的内部操纵隐患是没有办法避免的(甚至没有办法发现它)。

在 GMX 上交易存在两个步骤:

1. 下单。在这一步中,除了常规的交易费用外,你还需要支付额外的 ETH/AVAX(称为执行费),以便 Keeper 执行你的交易。

2. Keeper 以所谓的预言机价格执行你的订单,该价格完全由 Keeper 决定。

这个细节中存在魔鬼:此 Keeper 不属于任何链上或透明机制。相反,它是一个由 GMX 拥有的地址签署的程序,并在 GMX 自己的集中式服务器上运行。而 Keeper 的核心作用不仅仅是执行订单,也是决定交易价格。在非常弱的约束条件下,Keeper 可以直接用它选择的任何价格执行你的交易。而正是这个弱约束也只会让交易员的价格变得更糟(https://www.notion.so/47fc5ed832e243afb9e97e8a4a036353,与 ChainLink 价格的偏差大于 2.5% 将触发买卖价差)。

# 如何作恶?

非常简单!

由于每笔交易的交易价格完全由 Keeper 决定,运行 Keeper 的人可以做任何他们想做的事情。例如,按其意愿提供有利于或不利于交易者的价格,通过为交易提供不好的价格(长线交易的价格较高,短线交易的价格较低),从每笔交易中获利是非常方便的。

而这可以以一种非常秘密的方式进行:Keeper 只需要使价格比公平价值稍差(例如高出或低于 0.1%),这样就很难注意到。那么大量的利润(0.1% 的交易量)就会从交易中被偷走。

你可能认为这种偷窃对 LP 有利。在这种特殊情况下,确实如此。但有了这样的绝对权力,从 LP 那里偷窃也同样容易。Keeper 只需要用优于公平的价格(多头交易的价格较低,或空头交易的价格较高)喂养其附属账户,就可以将利润转移到这个账户。这一点非常容易理解:如果攻击中的外部操纵者(https://www.binance.com/en/news/top/7204043)可以通过操纵价格来源使他们的账户受益,那么 Keeper 通过直接操纵价格使特定账户受益只会更直接。唯一的区别是,前者是以中心化交易所(即 Binance)的价格为成本的,而后者则是零成本。而且,这也可以通过保持足够小的偏差来避开外界关注,同时又能非常隐蔽地获利。

这种交易机制是如此不透明,以至于比任何基于订单簿的中心化交易所更容易作恶。对于后者,你通过查看订单簿上的报价,提前对你的交易价格有一个合理清晰的预期。如果报价不公平,你可以选择不交易。相比之下,在 GMX 上,交易完全掌握在 Keeper 手中。

# 他们是否已经作恶?

从技术上讲,答案是我们不知道,因为这没有办法从外部验证。

然而,当你问出这个问题,你可能已经忽略了重点。从“不作恶”转换为“不能作恶”是加密世界的基本价值之一,也是重大的进步。一个依靠权力所有者的善意而运作的系统不应该属于这个世界。

无论一个“能作恶”的项目如何声称他们不会作恶,都不应该给予信任。这不是 Web3 的工作方式!

# 作恶成本有多大

分析师 @NintendoDoomed 对 GMX 的作恶成本进行了分析。

通过操纵价格发动攻击的可能性是存在的,在其他协议上也发生过,但是攻击成本比大多数人想的要高。GMX 有千分之一的交易费用,一笔交易开平仓就有千分之二的费用,因此在操纵预言机价格时,对价格的影响必须要大于千分之二才有意义。

对于 BTC 而言就是 $30+ 的价差,并不是一个小的数字。GMX 的预言机聚合了数个头部中心化交易所的价格,基本需要操纵整个市场的定价才能攻击GMX。对于 Avax 之类流动性较差的小币种可能是划算的,但是对于 BTC/ETH 则未必。此前有消息称有人操纵 AVAX 价格,这主要是因为 AVAX 流动性相对较差,操纵成本较低。因此,通过操作价格对 GMX 发动攻击目前只适用于流动性较差的 Token,但对于主流币暂时不会构成威胁。

此外,GMX 对于仓位规模有上限设置,开平仓都存在时间差,这进一步提升了攻击成本。这个上限是会低于 LP 存入对应 Token 的规模, 比如 LP 存入 ETH 有 $80M,那么 ETH Long Position 可能就会设置成 $50M,因此可以全额兑付。

https://twitter.com/NintendoDoomed/status/1597223938563919872

https://foresightnews.pro/article/detail/16360