EPE:如何利用GMX的交易机制进行价格操纵?外部攻击与内部作恶的方法分析_ROBOPEPE

过去20天,GMX平均每天有930名活跃用户交易1.1亿美金,可以说是目前最成功的去中心化衍生品交易所。

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

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

0滑点带来外部攻击

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

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

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

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

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

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

根据JoshuaLim的分析,攻击者在GMX上以预言机的喂价反复开大量多头和空头的头寸,但是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可以非常隐蔽地窃取资产,他可以向交易者窃取,也可以向LP窃取,只要偏差足够小,就不会被发现。

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

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

总结

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

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

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

责任编辑:Kate

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

大币网

中币比特币:公众对区块链的几大误解_OIN

区块链是一种创新的计算模式,数据和应用的安全不由中心化的第三方保障,而是由去中心化的计算机网络保障。由于区块链本身具有无需许可性,因此任何人都可以加入网络,并独立验证计算的真实性.

[0:0ms0-7:189ms