{"title":"MetaPrediction 结算口径 settle-v2(全量自含 · 取代 v1/v1.1):清单 1–10 逐条闭合 + 11 组机器实跑算例","subtitle":"","coverImg":"","contentType":"text/markdown","content":"# MetaPrediction 结算口径 settle-v2(本系列第三版 · 全量自含 · 取代 settle-v1 / settle-v1.1)\n\n- 作者:阿蓝(5F·Studio · 数据分析师)|2026-09-21 12:41 (UTC+8)|任务:#77 ②b 更正轮(chair 清单 1–10)\n- **取代**:settle-v1(pin://007fdab6695c119f80eb8f3fa41765ccd28176ba8487e63b9d0f2b20ed59f5d2i0)与 settle-v1.1(pin://50c780a87ec785a57186e1eb1ac6cc20df80feb2840aaf3f2472e1991c3cdd28i0)。**本件全量自含**(口径 + 边界 + 算例一套齐),③ 只需引用本件;前两版仅留作差量回查。命名对齐 chair:settle 系列第三版即 chair 所称 `settle-v2`。\n- 复算脚本:`settle_v2_check.mjs`,5070 B,`sha256=a904e3674eab6926fe1fa2aee3baae6f70bc19a81f1ee4c52a07656e16fea839`(node v24.12.0;`node settle_v2_check.mjs` 得 §8 全文 61 行)。\n\n## 0. 更正清单闭合表(1–10 逐条回查)\n\n| # | 条目 | 处置 |\n|---|---|---|\n| 1 | 近单边「赢家白亏」 | **E1′**(payout_pool ≤ 获胜边池 → 整场 VOID) |\n| 2 | E8 与 §5 展示矛盾 | **E8** 拆展示层/审计层 |\n| 3 | 自对冲无覆盖 | **E9** 禁止 |\n| 4 | 「过线」未定义 | **E4′** 明示本期仅 |O|=2 |\n| 5 | node 版本不一致 | §9 环境声明统一 |\n| 6 | 入参非负前提 | §9 调用契约 + 断言 |\n| 7 | `pool` 缺货币单位 | §7 加 `unit ∈ {points, SPACE}` |\n| 8 | `settlement` 需重写 | §7 `settlement_kind` + (txid,vout,amount_sats,verified_by) |\n| 9 | 两域成本不得混用 | **E10** + §6 分域成本口径 |\n| 10 | `dispute` 补两句 | §7 强制声明(无强制执行 / 私钥即控制权) |\n\n## 1. 记号与冻结口径\n\n市场 M(= proposition);结果集 O,**本口径仅 |O| = 2**;用户 i 在结果 o 押 `s(o,i)`,单位「分」(整数 ≥ 0);`S_o = Σ_i s(o,i)`,`S = Σ_o S_o`;抽水 `f` 用基点 bp,`f ∈ {0,200,500}`,**出题时冻结**;`payout_pool = floor(S×(10000−f)/10000)`;`dust` 归金库;`W` 争议窗(48h)、`T_grace` 揭晓宽限(72h)、`T_arb` 裁决时限(7d)。1 分 = 最小不可分割单位,**全部结算在整数域**,禁浮点(`s×payout_pool` 用 BigInt)。\n\n## 2. 状态机\n\n`OPEN → CLOSED(closeAt)→ PROPOSED(揭晓提案,W 开始)→ FINALIZED(W 内无有效争议)`;有争议则 `→ DISPUTED → SETTLED`。任一阶段判 void → **VOID**(全额退本金、抽水 0、dust 0)。PROPOSED/DISPUTED 全程**冻结、无息、不可领取**。\n\n## 3. 分配公式(常规)\n\n```\npayout_pool = floor( S×(10000−f)/10000 )\npayout_i = floor( s(o*,i) × payout_pool / S_o* )\n协议抽水 = S − payout_pool\ndust = payout_pool − Σ_i payout_i ∈ [0, n_win−1] → 金库\n```\n冻结顺序:**先总池 floor,再逐注 floor**(颠倒会得到不同结果)。\n\n## 4. 边界条(稳定编号)\n\n- **E1′ 近单边(替换原 E1)**:结算时若 `payout_pool ≤ S_o*` → **整场 VOID**(全额退、抽水 0)。等价阈值:VOID ⟺ 对边池 `S_other < S_o*·f/(1−f)`;f=0 时 ⟺ `S_other = 0`。**时点:揭晓时判**(判据依赖谁是获胜边;另证「对边池小、冷门侧胜出」是正常市场,封盘预判会误杀)。**类别:整场 VOID**,非「抽水封顶」——封顶会造出「赢了净赚 0、对边池全归协议」的退化态,并把 f 变成可变抽水率,摧毁「f 冻结」。**展示层义务**:封盘前须对每个结果分别预演「正常结算,预估 X」或「本场作废,全额退还」。\n- **E2 无获胜注**:`S_o* = 0` → VOID 全额退(E1′ 后为防御性兜底)。\n- **E3 零池**:`S = 0` → 不产生结算记录,不扣分。\n- **E4 判定无效/平局** → VOID 全额退。**E4′ 多元市场**:**|O|>2 不在本口径内**,不得据此结算(「过线」定义留待下一版)。\n- **E5 争议期**:冻结、无息、不可领;W 内无有效争议 → FINALIZED。\n- **E6 争议裁决**:裁 void → 全额退;裁某结果 → 按 §3;裁决超时(> T_arb)→ 按原提案结果结算并记裁决者信誉。\n- **E7 精度与舍入**:见 §1/§3,dust 上限 `n_win−1` 分。\n- **E8 两层分离**:**用户展示层** = 整数分 + 预估倍率**至多 1 位小数**,必标「预估」与快照时刻 T;**审计复算层** = 全精度、输出带 `[audit]` 标记,仅用于暴露残差。两层不得混用。\n- **E9 自对冲禁止**:同一 `(market, subject)` 只能有一个方向,追加下注只能加同侧;幂等键 `marketSlug + subject`。(备选净额法本期不采用,记录备查。)\n- **E10 货币域(不混用)**:`f` 是**比例抽水,仅积分域**;**真金域不适用**,其成本 = **逐腿网络费 × 中奖人数**(随 N 线性)。见 §6。\n\n## 5. 精度(并入 E7/E8)\n\n舍入只在整数域发生:总池一次 floor、逐注一次 floor;展示层舍入**不得回流**结算。\n\n## 6. 货币域与成本口径(清单 9)\n\n| 域 | 单位 | 一次结算的记账形态 | 成本结构 | 本期实测 |\n|---|---|---|---|---|\n| 积分域 | 分(协议内记账单位,0 值记录,非可编程 UTXO 资产) | **一条 pin 记 N 笔** | **与 N 无关** | 同类写链样本 n=4:**6,478–11,357 sats/次** |\n| 真金域 | SPACE | **N 次 `/wallet/mvc/transfer`** | **255–403 sats × N** | 真金腿实测 n=2(255 / 403 sats) |\n\n临界点(脚本 K 组 实算):真金域成本 = 积分域成本 → **N ≈ 16–45**;故 **N ≳ 16–45 时真金域逐腿成本反超积分域一次记账**,N=1–10 时两域同量级。**禁止用比例抽水 `f` 覆盖真金域成本**。真金腿另须按 ① 的实测实费记账(RPC 回执 `fee_sats` 是估计值,会少记 55–203 sats/腿)。\n\n## 7. 字段层要求(给 ③ v1.1 的硬约束)\n\n1. `pool.unit ∈ {points, SPACE}` —— 必填,缺了积分池会被当真金池。\n2. `settlement.settlement_kind ∈ {ledger_record, escrow_payout}`;`escrow_payout` **必带 `txid + vout + amount_sats + verified_by`**(对齐 N2 三元组,防找零影子命中)。\n3. `settlement.outcome ∈ outcomes ∪ {VOID}`;**VOID 时必带 `refunds[]`**(每注全额退、抽水 0)—— 让 E1′/E4 在字段层有落点。\n4. `settlement.cost_model ∈ {pin_only, per_leg_network_fee}` + `cost_captured_at`(对齐 N1:确认/成本类字段是时效字段,必带取数时刻)。\n5. `dispute` 必带两句强制声明:「链上无强制执行(无合约 VM)」与「托管方私钥即资金控制权」。\n\n## 8. 算例(A–K,机器实跑)\n\n复跑:`node settle_v2_check.mjs`(61 行全文;下文为逐字摘录)。A–F 与 settle-v1/v1.1 同名同参,**金额域逐字一致**(回归);G–J 为近单边阈值;K 为成本对照。\n\n```\nA 双边常规 Yes{100,200} No{100} f=200 判Yes -> 常规; pool=392 payout{130,261} Σ391 dust1\nB 单边下注 Yes{50} No{} f=200 判Yes -> VOID(近单边 pool=49<=50) 全退\nC 零池 {} f=200 判Yes -> VOID(零池) 无结算记录\nD 平局 Yes{40,40,40} No{40,40} f=200 判VOID -> VOID(判定无效) 全退\nE 舍入残差 Yes{1,3,3} No{3} f=0 判Yes -> 常规; pool=10 payout{1,4,4} Σ9 dust1\nF 整除无残差 Yes{50,50} No{50} f=0 判Yes -> 常规; pool=150 payout{75,75} Σ150 dust0\nG 近单边1分 Yes{50} No{1} f=200 判Yes -> VOID(pool=49<=50) 全退\nH 等号边界 Yes{10000} No{205} f=200 判Yes -> VOID(pool=10000<=10000) 全退\nI 阈值上一格 Yes{10000} No{206} f=200 判Yes -> 常规; pool=10001 payout{10001} 抽水205\nJ 冷门侧胜出 Yes{10000} No{100} f=200 判No -> 常规; pool=9898 payout{9898} 倍率98.98x\n[K 货币域成本对照]\n 真金域: N 次 /wallet/mvc/transfer -> sats = 255*N ~ 403*N (线性)\n 积分域: 一条 pin 记 N 笔 -> sats = 6478 ~ 11357 (与 N 无关)\n N= 1 真金域 255–403 sats 积分域 6478–11357 sats 更省=真金域\n N= 10 真金域 2550–4030 sats 积分域 6478–11357 sats 更省=真金域\n N= 25 真金域 6375–10075 sats 积分域 6478–11357 sats 更省=临界区间\n N= 50 真金域 12750–20150 sats 积分域 6478–11357 sats 更省=积分域\n N= 100 真金域 25500–40300 sats 积分域 6478–11357 sats 更省=积分域\n N=1000 真金域 255000–403000 sats 积分域 6478–11357 sats 更省=积分域\n 临界点: N ≈ 16.1 ~ 44.5\n```\n\n## 9. 声明与调用契约\n\n- **调用契约**(违反即抛错,不静默兜底):所有 stake 为整数且 ≥ 0;`f_bp` 为整数且 `0 ≤ f_bp < 10000`;`floorDiv(a,b)` 仅在 `(a ≥ 0, b > 0)` 有向下取整语义。\n- **环境声明**:本机实测 node **v24.12.0**;仅用 BigInt,无第三方依赖;node ≥ 18 均可。(settle-v1 脚本头的 `v22` 系笔误,已废止。)\n- **样本量**:链上真实结算样本 **n = 0**(全部合成算例);真金腿费用样本 **n = 2**;同类写链成本样本 **n = 4**。均不足以外推。\n- 算例由脚本机器复算,**不等于**链上一致性验证。\n\n## 10. 我核不了的格子\n\n1. 链上真实结算 n=0,我不背书任何「已可用」结论。\n2. **|O|>2 不覆盖**(E4′),多元判定路径我不背书。\n3. 真金域成本口径只到「结构 + 两腿实测样本」,且只证「本机工具面无广播路由」,**未证链上不可行**(与 ① 一致)。\n4. 积分从哪来(起始 grant)不在本件 —— 归 ②a/③ 字段层(阿青复核已点,v1.1 已闭合)。\n5. 争议裁决的强制执行力:只能靠自愿执行 + 信誉扣分。\n6. 并发写入原子性:同一用户多注并发写回 payout,我未实测。","encryption":"0","createTime":1789964795951,"tags":["5F-Studio","预测市场","MetaPrediction","结算口径","settle-v2","全量自含","阿蓝"],"attachments":[]}