白皮书 / 准入、签名与订单承诺
Dexter 白皮书

准入、签名与订单承诺

每一笔订单——挑战赛尝试、资金账户、公开钱包——都经过相同的准入门。该门防止意外重复提交、重放陈旧签名,以及未授权签名者冒充账户。对资金交易者而言,它是在成交之前将你的交易历史锚定到 Base 的层,这就是为什么排行榜排名和 90 / 10 支付可以从链上重建,而非从平台内部数据库重建。

最近更新:2026 年 5 月 24 日
3 节 阅读 1 分钟 白皮书章节

六项要求对每一笔订单进行门控。它们按固定顺序运行,任一失败都会在定价层看到请求之前中止该请求。前三项是签名者与负载检查;后三项是时间、承诺与执行形态策略。

要求 存在的原因
代理授权 通过 POST /agent/authorize 将明确的签名者密钥绑定到账户策略;来自任何其他密钥的订单在签名检查之前即被拒绝
EIP-712 订单签名 证明已授权的签名者同意运行时即将执行的精确负载——市场、方向、规模、价格、有效窗口
单调递增 seq 每个账户拥有严格递增的序列计数器;先前 seq 的重放被拒绝,运行时排序具备确定性
createdAtTs / goodTilTs 守卫 拒绝陈旧、向未来偏移或过期的负载,使得 10 分钟前的签名无法漂移进入撮合路径
OrderCommitRegistry 锚 当承诺守卫激活时,网关在下单之前通过 commitOrder / commitOrders 将订单哈希记录到链上;运行时拒绝撮合承诺缺失的订单
仅 IOC 执行 生产强制 GATEWAY_REQUIRE_IOC;非 IOC 负载在网关被拒绝,因此活跃执行路径保持狭窄,且不存在挂单工作面

#已授权的签名流

客户端不能签出一笔订单后指望平台接受。账户首先通过 POST /agent/authorize 注册自身策略,记录允许其代为行动的具体签名者密钥。这种分离在实践中很重要:账户的提款密钥、KYC 绑定与推荐现金永远无需接触交易会话——硬件钱包、会话密钥或 API 客户端接管签名面,而钱包的其余部分从不暴露。

授权一旦存在,每一笔订单就以 EIP-712 类型化负载到达,而非未签名指令。签名结构携带市场、方向、规模、限价、有效窗口(createdAtTs、goodTilTs)以及账户的单调递增 seq。引擎在门口拒绝未授权签名者、缺失 seq、过期或向未来偏移的时间戳,以及非 IOC 负载——这些失败均无法到达定价或风控层。在生产中,这一点由网关的 GATEWAY_REQUIRE_IOC 与运行时负载校验器共同执行,因此同一规则在独立的代码路径上被检查两次。

#排序与链上承诺证据

单调递增的排序为运行时提供确定性的事件顺序。每个账户的 seq 严格递增,因此两个独立观察者重放相同链时,看到的成交顺序相同。运行时拒绝任何 seq 不大于该账户先前已接受 seq 的负载——重放、网络重排或重复重试全部坍缩为单一已接受事件。

当生产环境启用承诺守卫时,网关在运行时被允许撮合之前,通过 commitOrder(单条)或 commitOrders(批量)将订单哈希锚定到 Base 上的 OrderCommitRegistry 合约。这一步实现了两件不同的事。它收紧准入:运行时不会为承诺缺失的订单定价。它同时产生一份公开、带时间戳、链上的记录,证明订单以签名者所证实的形式存在,且早于任何可能产生的成交——这正是后续争议审查所对照的依据。

TEXT
 POST /agent/authorize
   -> 签名者策略对该账户生效
   -> 客户端签出 EIP-712 IOC 负载(市场、方向、规模、价格、createdAtTs、goodTilTs、seq)
   -> 网关强制 GATEWAY_REQUIRE_IOC 并校验负载形态
   -> commitOrder(orderHash) 落入 Base 上的 OrderCommitRegistry
   -> 运行时再次检查签名者、seq 单调性、时间戳与承诺存在性
   -> 此后才运行 vAMM 定价与成交逻辑

#审视准入边界

准入栈不是仪式。它的存在让技术审阅者仅凭公开状态就能回答三个问题:订单时刻该账户授权的签名者是谁、请求彼此之间到达的顺序如何,以及运行时是否撮合了一个已被链上锚定的负载。如果任一答案是"我们无法判断",平台就在其自身准入契约之外运行。在代理授权、单调递增 seq 与 OrderCommitRegistry 锚的共同支撑下,三个答案均来自审阅者无需信任平台之言即可获取的数据。

#为何这对排行榜与支付至关重要

  • 交易历史锚定在 Base 上。每笔订单的哈希在运行时撮合之前通过 commitOrder 进入 OrderCommitRegistry。登榜成绩或 90 / 10 资金账户支付可从链上复现——平台无法重写支付计算所依据的历史,因为每个承诺的时间戳比其所依据的成交更早。
  • 单调递增 seq 防止重复计数。网络重试、中继器竞速,或客户端 Bug 重新发送负载,全部坍缩为一个已接受事件,因为 seq 已经推进。排行榜不会重复计数一笔成交,利润分成提款也不会因稍后到达的重复成交主张而被争议。
  • 代理授权隔离交易面。持有挑战赛入场、资金账户支付与 DXTR 质押的钱包无需签署交易。POST /agent/authorize 将独立的签名者——硬件钱包、会话密钥、API 客户端——绑定到账户策略。如果交易密钥泄露,提款、KYC 绑定与推荐现金仍留在原始钱包上,处于攻击者触及之外。
  • createdAtTs / goodTilTs 阻断重放窗口。签名仅在其声明的有效窗口内有效。10 分钟前捕获的签名负载今天无法重放,即使签名密钥稍后被入侵——运行时在任何后续检查之前根据时间戳守卫拒绝它。
  • 对所有人同一道门。跟单客户端、机构 API 集成与零售钱包都通过同一边界授权、签名、承诺与提交。不存在让平台按不同规则接纳某一类订单的特权车道。