shadowpaper文档交易 ↗
打开 App交易 ↗
底层机制

定价:签名指数价

所有交易按 Binance USDⓈ-M 指数价结算,价格在链下签名,并在同一笔交易中链上验签。

来源#

结算采用 Binance USDⓈ-M 的 BTCUSDT、ETHUSDT 指数价:由多家主流交易所加权计算,成分与权重公开。该指数以 USDT 计价,与结算币一致,无需换算。

签名#

独立的价格签名者运行在单独的机器上,不持有任何资金,对每一条指数更新连同其事件时间戳进行 EIP-712 签名;价格不变时同样签名。

链上校验#

每个批次在结算任何交易之前,为每个市场推入一条签名价。PriceOracle 合约要求:

  • 当前价格签名者的有效签名;
  • 时间戳位于新鲜窗口 [now − 3,000 ms, now + 2,000 ms] 内;
  • 时间戳不早于该市场上一次使用的价格,以防止回放。

任一条件不满足,整批回滚,不结算任何交易。没有新鲜签名价时,该市场暂停一切结算,直至新鲜价格恢复。

示例:新鲜窗口#

某批次在时间戳为 T 的区块中结算,relayer 可附带以下签名价。

签名时间戳规则结果
T − 2.5 秒不早于 T − 3 秒接受
T − 3.5 秒早于 T − 3 秒拒绝,整批回滚
T + 1.5 秒不晚于 T + 2 秒接受
T + 2.5 秒晚于 T + 2 秒拒绝,整批回滚
早于上次使用的价格禁止回放拒绝,整批回滚
接受  ⇔  T − 3,000 ms ≤ 时间戳 ≤ T + 2,000 ms
       且 时间戳 ≥ 该市场上次使用的时间戳

← 公式过长时可横向滑动

因此,每笔交易的结算价格都是其所在区块之前不超过 3 秒内观测到的价格。

交叉校验#

接受开仓前,relayer 将签名价与 OKX 指数价进行比对。两者偏差超过设定容差,或任一数据源中断时,该市场暂停开仓;平仓与清算不受影响。

公开核验#

每条签名价均公开于 /query/prices/signed,链上使用过的每个价格均以事件记录,可与 Binance 公开的指数价历史对照。

信任假设#

合约无法直接读取 Binance,结算依赖签名者如实报告指数。上线时仅有一个签名者。guardian 可即时吊销被盗用的签名者;新签名者只能经 24 小时 Timelock 设定。详见风险。

在 GitHub 上编辑此页 ↗更新于 2026-10-29