>
正文
Polymarket V2 上线,移除 nonce 机制修补幽灵订单漏洞
2026-04-29 15:12
PUSD

昨晚,Polymarket 进入维护窗口,暂停交易并清空订单簿,随后正式上线 CLOB V2。此次升级涵盖新合约、新订单簿、新抵押代币 Polymarket USD 以及新版 CLOB-Client SDK。对于普通用户而言,PUSD、SDK 及订单结构的变更未必能立即感知,但真正值得关注的核心在于长期困扰平台的 Ghost Fills,即社区俗称的「幽灵订单」问题。午方 AI 梳理发现,V2 版本确实针对该问题进行了针对性处理,移除了此前最易被利用的 nonce 机制,并重构了订单结构与撤单逻辑。

所谓幽灵订单,指的是一笔订单在链下显示撮合成功,却最终未能完成链上结算。Polymarket 采用链下订单簿撮合、链上结算的架构,这种设计虽提升了交易速度并降低了成本,尤其适配 5 分钟市场等高频短周期场景,但也埋下了隐患。链下成交并不等同于链上结算必然成功,在短周期市场中,用户可能看到订单已成交,但在提交链上时结算失败,导致前一秒看似完成的交易瞬间被撤回。这种不确定性不仅让用户错失交易机会,更严重侵蚀了对交易结果的信任。

在 V1 版本中,幽灵订单最易被利用的路径源于 incrementNonce 机制。Nonce 本作为订单状态标识,但在旧版逻辑中,攻击者可调用 incrementNonce 使特定地址下携带旧 nonce 的订单在链上结算时失效。攻击者利用这一时间差,先让订单在链下撮合并显示成交,随后在结算上链前更新 nonce,致使订单执行失败。午方 AI 注意到,这种攻击成本极低,仅需少量 gas 费即可批量破坏本应成交的订单,造成前端显示先成交后失败的混乱局面。

V2 版本最关键的改进在于移除了全局 nonce 设计,彻底堵死了通过 incrementNonce 一次性影响大批旧订单的攻击路径。

同时,订单结构得到简化,撤单机制转向更细粒度的单笔 order hash,显著压缩了单次操作的影响范围。

此外,pauseUser 等机制引入了延迟,进一步减少了状态变化在撮合与结算窗口内被即时滥用的可能性。这些改动意味着攻击者若想复现类似问题,必须付出更高成本并依赖更复杂的系统响应。

然而,这并不意味着幽灵订单问题已被彻底根除。Polymarket 仍未改变链下撮合、链上结算的基本模式,只要这两个环节存在时间差,状态不一致的风险就始终存在。余额变动、授权问题、订单状态变更或合约执行失败,均可能导致链下已撮合的订单无法在链上落地。午方 AI 分析认为,V2 解决的是旧版本中最明显、最易被利用的攻击路径,而非幽灵订单产生的基础条件。

除修复幽灵订单外,V2 还引入了 PUSD、SDK 及 1271 签名等更新,标志着 Polymarket 正从单纯的预测市场应用向更接近交易所的底层系统演进。随着做市商、API 用户及自动化交易者的增加,订单的稳定成交、结算与兑现能力将比市场趣味性更为关键。V2 的上线是平台迈向成熟的关键一步,但面对链下与链上状态差异的根源问题,系统仍需通过后续更新持续补齐撮合、结算、监控及风控能力,以应对预测市场中固有的不确定性挑战。

免责声明:本内容为作者独立观点,不代表平台立场。未经允许不得转载,文中内容仅供参考,不作为实际操作建议,交易风险自担。
back