# 如何利用GMX的交易机制进行价格操纵？外部攻击与内部作恶的方法析

By [BlockChainTeahouse](https://paragraph.com/@chainhouse) · 2022-10-14

---

作者:北辰

过去20天，GMX平均每天有930名活跃用户交易1.1亿美金，可以说是目前最成功的去中心化[衍生品](http://www.lianchaguan.com/tag/%e8%a1%8d%e7%94%9f%e5%93%81)交易所。

我们注意到GMX的几个竞品的负责人近期针对GMX的交易机制展开批评，虽然出发点绝对不中立，但立场只能决定价值判断，而无法左右事实判断。

本文仅针对GMX交易机制的事实进行讨论，以作为读者综合判断GMX的参考信源。

GMX有一个优势，那就是0滑点。这意味着你交易1美金的代币与交易1亿美金的代币的价格是一样的，都是交易时预言机的喂价。

0滑点对交易者天然具有吸引力，尤其是大额交易者。一个不太恰当但很形象的比喻是，相当于你拥有让时间静止的超能力，然后去跟人打架……

而GMX的机制是交易者与LP互为对手方，交易者赚钱，意味着LP亏钱，因此LP是不被保护的。

最早公开怀疑0滑点机制潜在风险的是ZigZag的创始人Taureau，这是一个基于ZK Rollups的去中心化交易所，他于9月2日在Youtube上表示，GMX的交易模式有漏洞，他很怀疑这种模式能否长期持续，因为trader如果利用漏洞就很容易赚GLP代币持有者的钱。

9月18日，GMX确实遭遇了价格操纵攻击，攻击者利用GMX的最小价差和0滑点的特性对AVAX/USD进行价格操纵，赚取了56.5万美元的AVAX。

价格操纵攻击事件发生后，Joshua Lim在Twitter上分析了攻击的步骤，他是机构数字资产服务商Genesis的衍生品交易部门负责人。

根据Joshua Lim的分析，攻击者在GMX上以预言机的喂价反复开大量多头和空头的头寸（由于GMX是0滑点，因此预言机的喂价约等于执行价），但是GMX上的大额头寸会影响到其它交易所的AVAX/USD价格，然后预言机才反应过来并喂价给GMX，此时攻击者平仓盈利。

这里举一个更夸张的假设可能更形象。

你在GMX上做多10亿美金的AVAX，照理说这么大的资金量会拉高你实际交易的价格，但GMX的机制是0滑点，所以你还是按照预言机的喂价来开仓。但这个体量的交易会拉高其它交易所上AVAX的价格，假设涨了20%，预言机才会把最新的价格反馈到GMX上，此时你就可以按AVAX涨了20%的价格来平仓，并把赚到的AVAX提取到其它交易所卖出。你赚到的AVAX，就是GLP持有者亏损的AVAX。

所以此次攻击是「合理但恶意」地利用GMX的交易机制，未来是否还会遇到类似的攻击？目前来看，唯一的避免方式就是取消0滑点机制。

不过还有一种修正方式，那就是限额，但只是增加了攻击者的操作步骤（多用几个钱包来开仓），并没有从根本上解决。

Keeper引出内部作恶？
-------------

0滑点带来外部攻击是已经被事实验证过的，但GMX依赖的keeper机制来作恶的事件目前并没有发生，我们只能说就keeper机制而言，团队的确有作恶的权限。

GMX的交易流程并不是在你发起交易后，由智能合约按预言机的喂价自动执行，而是所有的交易请求都要经过keeper来统一执行，这样确实效率更高，但代价是keeper有权限在预言机价格的0.12%幅度以内执行。而且最大偏差达到2.5％才会触发强制执行，价格在Keeper的价格和预言机的价格之间。

GMX为了监督keeper不篡改预言机的价格，还有watcher节点来验证，但正如上所述，如0.12%这种幅度的偏差是完全合规的，因此keeper可以非常隐蔽地窃取资产（例如只比公允价格差0.1%），他可以向交易者窃取，也可以向LP窃取，只要偏差足够小，就不会被发现。

当然，这只是一种可能性，并不意味着keeper真的会作恶，是否信任keeper是一回事，但我们必须要清楚地知道，keeper的权力并没有关进制度的笼子里。

GMX的另一个竞品Deri Protocol的创始人0xAlpha在一篇题为《GMX，一个可能作恶的“AMM”》中表示，无法从外部验证他们有没有作恶，但这不重要，重要的是crypto世界里最基本价值观也是最大的进步就是从「不作恶」转变为「不能作恶」，所以这种依靠掌权者的善意来运作的系统，不应该属于crypto世界。

  总结

针对GMX的0滑点招致外部攻击，在取消0滑点之前，可能还会有类似攻击，毕竟0滑点意味着交易者在任何时刻都拥有无限流动性。

针对GMX的keeper机制给团队内部作恶的权限，如果以最坏的恶意去揣测，就是“身怀利器，杀心自起”。

当然，本文不能当作投资意见，因为这只是一种可能性。

欢迎加入社群 探讨web3，分享项目空投信息  [_https://discord.gg/RW94PbPv3p_](https://discord.gg/RW94PbPv3p)

原创文章，作者：lishuchen，如若转载，请注明出处：[http://www.lianchaguan.com/archives/42017](http://www.lianchaguan.com/archives/42017)

---

*Originally published on [BlockChainTeahouse](https://paragraph.com/@chainhouse/gmx)*
