作者:Frank,PANews
一笔不到 0.1 美元的链上交易,就能将价值数万美元的做市订单从 Polymarket 的订单簿上瞬间抹去。这不是理论推演,而是正在发生的现实。
2026 年 2 月,有玩家在社交媒体上揭露了一种针对 Polymarket 做市商的新型攻击手法。博主 BuBBliK 将其形容为「优雅而残忍」(elegant & brutal),因为攻击者只需支付 Polygon 网络上少于 0.1 美元的 Gas 费,就能在约 50 秒内完成一次攻击循环,而受害者,那些在订单簿上挂出真金白银买卖的做市商和自动交易机器人,则面临订单被摧毁甚至被动的损失。
PANews 查阅了一个被社区标记的攻击者地址发现,该账户在 2026 年 2 月注册,仅参与了 7 个市场的交易,却已录得 16,427 美元的总利润,且核心获利基本在一天之内完成。当一个估值已达 90 亿美元的预测市场龙头,其流动性根基竟能被几美分的成本撬动,这背后暴露的远不止一个技术漏洞。
PANews 将深入拆解这次攻击的技术机制、经济逻辑及其对预测市场产业的潜在影响。
攻击如何发生:一场利用「时间差」的精准猎杀
要理解这次攻击,需要先了解 Polymarket 的交易流程。与多数 DEX 不同,Polymarket 为了追求接近中心化交易所的用户体验,采用了一种「链下撮合+链上结算」的混合架构,用户下单、撮合匹配都在链下瞬间完成,只有最终的资金交割才提交到 Polygon 链上执行。这个设计让用户享受到零 Gas 挂单、秒级成交的丝滑体验,但也在链下和链上之间制造了一个几秒到十几秒的「时间差」,而攻击者正是瞄准了这个窗口。
攻击的逻辑并不复杂。攻击者先通过 API 正常下一笔买单或卖单,此时链下系统验证签章和余额都没问题,于是将其与订单簿上其他做市商的挂单进行比对。但几乎在同一时间,攻击者在链上发动一笔极高 Gas 费的 USDC 转账,把钱包里的钱全部转走。由于 Gas 费远高于平台中继器的预设设置,这笔「抽干」交易会抢先被网络确认。等到中继器随后将撮合结果提交上链时,攻击者的钱包已经空了,交易因余额不足而失败回滚。
如果故事到此为止,只是浪费了一点中继器的 Gas 费。但真正致命的一步在于:虽然交易在链上失败了,Polymarket 的链下系统却会把所有参与这次失败匹配的无辜做市商订单从订单簿上强制移除。换句话说,攻击者用一笔注定失败的交易,把别人花真金白银挂出的买卖盘「一键清空」了。
用一个类比来说:这就像在拍卖会上高声喊价,等到锤子落下的瞬间翻脸说「我没钱」,但拍卖行却把其他所有正常竞标者的号牌全部没收了,导致这次拍卖流拍。
值得注意的是,社区后续还发现了该攻击的「升级版本」,被命名为「Ghost Fills」(幽灵成交)。攻击者不再需要抢跑转账,而是在订单被链下匹配后、链上结算前,直接调用合约上的「一键取消所有订单」功能,让自己的订单瞬间失效,达到同样的效果。更狡猾的是,攻击者可以同时在多个市场下单,观察价格走势后,只保留有利的订单正常成交,不利的订单则用这个方法取消,实质上创造了一种「只赢不输」的免费期权。
攻击「经济学」:几美分的成本,1.6 万美元的收益
除了直接清除做市商订单,这种链下与链上的状态不同步也被用于猎杀自动化交易机器人。根据 GoPlus 安全团队的监测,受影响的机器人包括 Negrisk 、 ClawdBots 、 MoltBot 等。
攻击者清除别人的订单、制造「幽灵成交」,这些操作本身并不会直接产生利润,那么钱到底是怎么赚到的?
PANews 梳理发现,攻击者的获利路径主要有两条。
第一条是「清场后垄断做市」。在正常情况下,一个热门预测市场的订单簿上会有多个做市商竞争挂单,买一和卖一之间的价差通常很窄,比如买单挂在 49 美分,卖单挂在 51 美分,做市商靠 2 美分的价差赚取微利。攻击者通过反复发动「注定失败的交易」,将这些竞争对手的挂单全部强制清除。此时盘口变成了一片真空,攻击者随即以自己的账户挂出买卖盘,但价差被大幅拉宽,比如买单挂在 40 美分,卖单挂在 60 美分。其他需要交易的用户在没有更优报价的情况下,不得不接受这个价格,攻击者就靠这 20 美分的「垄断价差」赚取利润。这种模式循环往复:清场、垄断、获利、再清场。
第二条获利路径比较直接,就是「猎杀对冲机器人」。用一个具体的例子来说明:假设某个市场上「Yes」的价格是 50 美分,攻击者通过 API 向一个做市机器人下了一笔 1 万美元的「Yes」买单。链下系统确认撮合成功后,API 立刻告诉机器人「你已经卖了 2 万股 Yes」。机器人收到讯号后,为了对冲风险,立刻在另一个关联市场买进 2 万股「No」锁定获利。但紧接着,攻击者在链上让那笔 1 万美元的买单失败回滚,意味着机器人实际上根本没有卖出任何「Yes」,它之前以为的对冲仓位现在变成了一个裸露的单边赌注,手里只有 2 万股「No」却没有对应的空头仓来保护。攻击者此时再在市场上真实地交易,利用机器人被迫抛售这些失去对冲保护的头寸来获利,或者直接从市场价格的偏移中套利。
从成本端来看,每次攻击循环仅需支付 Polygon 网络上不到 0.1 美元的 Gas 费,每次循环耗时约 50 秒,理论上每小时可执行约 72 次。某位攻击者搭建了一套「双钱包循环系统」(Cycle A Hub 与 Cycle B Hub 交替操作),实现了全自动化的高频攻击。链上已有数百笔失败的交易被记录在案。
而从收益端来看,PANews 查阅的一个被社区标记的攻击者地址显示,该账户于 2026 年 2 月新注册,仅参与了 7 个市场,却已实现 16427 美元的总利润,最大单笔获利达 4415 美元,核心获利活动集中在极短的时间窗口内。也就是说,攻击者用总计可能不到 10 美元的 Gas 成本,在一天之内撬动了超过 1.6 万美元的利润。而这也只是一个被标记的地址,实际参与攻击的地址和总获利金额可能远不止于此。
对于受害的做市商而言,损失更难量化。Reddit 社群中运行 BTC 5 分钟市场机器人的交易者表示损失达「数千美元」。而更深层的伤害在于,频繁被强制移除订单导致的机会成本、做市策略被迫调整的营运开销。
更棘手的问题在于,这个漏洞是 Polymarket 底层机制设计的问题,短时间内无法修复,随着这种攻击手法被公开,类似攻击手段会更加普遍,也将进一步损害 Polymarket 本就脆弱的流动性。
社区自救、预警与平台的沉默
截至目前,Polymarket 官方并未发布针对此订单攻击的详细声明或修复方案,也有用户在社交媒体上表示,这个 bug 早在几个月前就已经被多次报告,但始终无人理会。值得一提的是,先前 Polymarket 在面对「治理攻击」(UMA Oracle 投票操纵)事件时,同样选择了拒绝退款的处理方式。
在官方无作为的情况下,社区开始自己想办法。一位社区开发者自发创建了一个名为「Nonce Guard」的开源监控工具,该工具能够即时监控 Polygon 链上的订单取消操作,建立攻击者地址黑名单,并为交易机器人提供通用预警信号。不过这种方案本质上属于加强监控的补丁,并不能从根本上彻底解决这类问题。
与其他套利手段相比,这种攻击手段所带来的潜在影响可能会更加深远。
对做市商而言,辛苦维护的挂单可以在毫无预警的情况下被批量清除,做市策略的稳定性和可预期性荡然无存,这可能直接动摇他们继续在 Polymarket 上提供流动性的意愿。
对于运行自动化交易机器人的用户而言,API 返回的成交信号不再可信,而普通用户在交易中,则可能因瞬间消失的流动性而遭遇巨大损失。
而对 Polymarket 平台本身而言,当做市商不敢挂单、机器人不敢对冲,订单簿深度将不可避免地萎缩,这种恶化的循环则进一步加剧。
相关文章