神级「套利」:如何用空单把 GMX 玩成「提款机」

要点总结
• 攻击者未绕过任何权限,仅通过正常功能调用操纵系统定价逻辑
• 利用空头头寸操控 GLP 定价机制,在原子交易中完成套利路径
• 问题源自 GMX V1:空头头寸影响 AUM,而 AUM 决定 GLP 价格
• 这是一次机制级攻击,设计本身缺乏防操控缓冲
• GMX V1 已暂停交易与 GLP 操作,V2 版本和代币未受影响
• 所有 GMX V1 分叉项目面临同样风险,已被官方发出安全警告
• 用户需警惕:DeFi 收益背后的计算逻辑,可能才是真正风险所在
7 月 10 日,去中心化永续合约交易平台 GMX 的 V1 流动性池在 Arbitrum 网络上遭遇攻击,损失超过 4000 万美元。
GMX 紧急公告中指出:
- 「攻击仅影响 V1 和其 GLP 流动性池,V2 与 GMX 代币本身未受到波及。」
- 「当前已暂停 V1 的交易、GLP 的铸造和赎回操作,防止攻击进一步扩大。」
听起来像个“合约出 bug 导致资金被盗”的老套路,但这次的攻击方式,其实相当「精致」:
攻击者没有越权、没有绕过权限控制、没有用复杂工具……他们只是「按部就班地操作」,然后在一笔交易中,通过多次链上调用,把系统设计本身玩成了提款机。
攻击是怎么发生的?
GMX 在计算 GLP 代币价格时有个小问题,系统更新价格和余额的步骤不够严密。当有人「做空」时,会影响到「全局空头平局价格」的数值,进而影响 AUM (资产规模) 的数值,而 GLP 代币的价格会受 AUM 的影响,所以可以说,只要有人「做空」,就会影响到单笔交易里的 GLP 代币价格的变动。
于是,攻击者利用平台的 GMX Keeper(负责提供「快速价格」并执行用户交易请求的自动化机器人),通过不断调用特定函数的方式,创建出大额「做空」的效果,导致单笔交易内系统计算出的 GLP 代币的平均价格虚高,此时攻击者再进行赎回操作,系统仍以被人为抬高后的虚高价格进行结算,「存入 —> 抬高价格 —> 赎回」,完成获利。
这一切发生在单笔交易内,没有破坏任何权限控制,但直接套走了价值 4000 万美元的代币。
它不是典型意义上的代码漏洞,而是一种深层的机制风险,是定价机制的漏洞,设计决策的漏洞,它在运行时不会触发错误,却直接把合约推向灾难。
问题出在哪里?
这次事件的震撼点就在于:合约没报错,审计也做过,攻击者也没违规。
GMX V1 的这套机制——将「头寸变动」直接反映到「全局估值」中——在设计上就埋下了可操纵的隐患。
你可以理解为:
「只要操作得够快,我就能在不违反规则的前提下,先制造高估值,再从中套利。」
所有动作都合规,但结果是资金池在估值被操纵后,遭受大额兑付,资产被集中抽走。
这是一种典型的「机制级攻击」,而不是常规意义上的「代码出错」。
GMX 的回应
事件发生后,GMX 第一时间暂停了 V1 上的交易,以及 GLP 代币的铸造和赎回操作,防止损失继续扩大,持有 GLP 代币的用户暂无法出售代币。官方强调,这次漏洞仅影响 V1 流动性池,V2 系统、GMX 代币和其他市场都没有受到影响。
GMX 表示,平台的合约曾经过多轮审计,安全一直是核心优先事项。这次事件暴露出的,是某种机制层面的缺陷,而不是传统意义上的代码漏洞。团队目前正与安全合作伙伴一起,全力排查漏洞成因,并评估后续可能的修复方式或补偿方案。
与此同时,GMX 也提醒社区:所有基于 GMX V1 的分叉项目,都可能存在相同风险,应尽快暂停杠杆功能和 GLP 铸造,避免遭遇类似攻击。
官方承诺在调查完成后,会发布完整的事故报告。
这对用户意味着什么?
很多人看到 GMX 暴雷,第一反应是:我赶紧撤、还有别的平台吗、GMX 会不会赔?
但更本质的问题是:你平时在用的协议,到底是怎么计算收益的?怎么估值的?你的资产,是怎么算出来的?
- GLP 是什么?是流动性代币;
- 它的价值怎么来的?由 AUM 决定;
- AUM 怎么来的?由仓位的盈亏计算;
- 盈亏怎么来的?来自空头头寸的平均价格;
- 那这个价格是谁在更新的?刚刚那位攻击者。
你在链上赚的每一笔收益,其实都是建立在一套计算规则之上的。
但只要规则没设计好,你赚到的钱,别人可能一次操作就能撸走。
这才是 DeFi 里最可怕的部分——风险并不总是来自「被黑客攻击」,而是来自你不知道自己在哪儿站着。