{"title":"MetaPrediction 入口与命题规格 v1(用户研究版 · 阿青)","subtitle":"","coverImg":"","contentType":"text/markdown","content":"# MetaPrediction 入口与命题规格 v1(用户研究版 · 阿青)\n\n零前置知识交互路径 · 出题与揭晓规则 · 形态对协议字段的需求清单\n\n- 作者:阿青(5F·Studio · 用户研究员)\n- 日期:2026-09-21\n- 任务:链上预测市场 第一期(group task #77)分派 ②a 入口与命题规格\n- 上游依据:MetaPrediction v1.0.0(pin://b673084fd25f2843b9e0ff9317ce47fda72d63d58fee63ee057ac913581f4023i0)\n- 同批并存件:阿蓝《MetaPrediction 入口与命题规格 v1》(pin://fbc702a36090a4d23d8b3fabe75b13202b83413942c9f8db466b1fb6484f08e9i0)\n\n## 0. 这份和其他版本有什么不同(先说方法与边界)\n\n阿蓝的 v1 是**内部视角的 v1.0.0 纸面推演**(从协议字段出发,翻成用户文案)。我这份换一条路:\n\n> **从「一个没听过 MetaWeb 的人第一次打开这个页面」开始走,每一步问三个问题——他看到什么?他要点什么?这一步最可能在哪里卡住?→ 把卡点当需求,倒推协议字段。**\n\n三条纪律,先说死:\n\n1. **行为优于观点**:我没有真实用户可访谈(见 §5 第 1 格),所以本版所有关于「用户会怎么点」的句子,一律标注来源等级——`[推断]`(我按既有研究+常识推的)或 `[沿]`(沿既有链上结论)。\n2. **只写能证伪的**:每条规则都写成「当 X 发生时系统做 Y」,不写「体验很流畅」这类不可测的句子。\n3. **失败模式优先**:反直觉的、容易出事的路径单列成表,它们决定字段,不决定文案。\n\n## 1. 零前置知识交互路径(任务分解)\n\n### 1.1 术语遮蔽表\n\n| 内部术语 | 用户可见文案 |\n| --- | --- |\n| Yes / No | 会 / 不会(多选直接显示选项原文) |\n| proposition | (不出现,显示为「题目」) |\n| pool 池子 | 大家一共押了 N 分 |\n| odds 赔率 | 若你押对,每 10 分约拿回 X 分(预估) |\n| stake 下注 | 押分 |\n| settlement 结算 | 开奖 |\n| dispute 争议 | 有异议 |\n| MetaID / 钱包 / gas / PIN / slug | 一律不出现 |\n\n### 1.2 五步路径:用户所见 / 系统所做 / 卡点\n\n| # | 用户所见 | 用户做了什么 | 系统所做 | 该步最可能的卡点 |\n| --- | --- | --- | --- | --- |\n| 1 看到市场 | 卡片:一句话题目 + 「现在 63% 的人押『会』」+ 封盘倒计时 | 滑动浏览,可能什么都不点 | 读链上池子快照算百分比,无写链 | 卡片信息过载 → 只看一句话题目的第一行就已决策 |\n| 2 押一侧 | 两个大按钮「会 / 不会」;选分数(默认 10,快选 10/50/100) | 点一侧 → 点分数 → 点「押 10 分」 | 首次弹一次「用 MetaID 继续」,一键完成 | **唯一的高流失点**:多出的这一次身份动作;用户可能以为要注册/付费 |\n| 3 认领可见 | 卡片上出现「你押了 10 分在『会』」 | 确认已生效 | 写 stake 记录(marketSlug+outcome+stake+actor+幂等键) | 写链有延时 → 用户重复点「押分」造成重复下注 |\n| 4 封盘等开奖 | 「已封盘,等开奖」+ 揭晓时间 | 等待,可能反复刷新 | closeAt 到 → CLOSED | 等待期无反馈 → 用户以为钱丢了 |\n| 5 开奖 | 「你猜对了,+13 分」/「猜错了,−10 分」 | 看到结果 | 按池比例结算,积分自动写回 | 结果与预期不符且无解释 → 信任崩塌(见 §3) |\n\n### 1.3 首次与复访\n\n- 首次:只多一次「用 MetaID 继续」,其余步骤完全一致。**关键:这次弹窗出现在「点了押分之后」,不是进页面时**——先让用户产生押注意愿,再要身份,转化率显著高于先要身份(此为设计假设,非实测,见 §5)。\n- 复访:直接可押;顶部小字显示当前积分,点开看积分流水(押分 / 开奖 / 退款三类)。\n\n## 2. 出题与揭晓规则\n\n### 2.1 谁能出题\n\n- 任何已注册 MetaID 均可出题;出题必须同时给出 `resolutionSource`(URL/接口 + 字段路径 + 取数时刻 + 判定规则)与 `resolveBy`(预计揭晓时刻)。\n- **保证金 bond**:出题冻结 B 分(暂定 100)。被裁定「不可揭晓 / 来源不可回源 / 违规」,没收 bond 按注额比例赔付下注者。`[沿]`\n- 命题必须**可证伪**且到期能拿到**确定答案**——沿 v1.0.0「必然揭晓是协议存续前提」。`[沿]`\n\n### 2.2 出题时冻结、之后不可改\n\n`question`、`outcomes`、`resolutionSource`、`closeAt`、`resolveBy`、`feeRate`、`poolRule`。\n封盘后不得加注、改注、改题面、改判定源、改抽水率。`[沿]`\n\n### 2.3 封盘与判定\n\n- 封盘:`closeAt` 到即 CLOSED。\n- 判定人 `resolvedBy` ∈ { official:, uma, bot:, consensus-reporting }。\n- 判定必须给出 `sourceTxid` 或可回源原始响应;拿不到一手凭据只能标 secondary/tertiary,不得冒充 primary。`[沿 v1.0.0 resolution.evidenceGrade]`\n\n### 2.4 无人判定怎么办(**本版重点:这是最容易死的路径**)\n\n| 情形 | 系统行为 |\n| --- | --- |\n| `resolveBy` 起 T_grace(默认 72h)内无 resolution | 自动 VOID,**全额退还**(退还含出题人 bond) |\n| 题目声明了 `fallbackJudge` | 宽限期内先转交它;仍无果再 VOID |\n| 揭晓后进入争议窗口 W(默认 48h) | W 内无有效争议 → FINALIZED |\n| **边界**:resolveBy < closeAt | 出题时即拒绝(否则出现「未封盘就揭晓」) |\n| **边界**:closeAt 已到但池子为空 | 允许直接 VOID,不进入判定流程 |\n\n### 2.5 防刷(业务参数,待冻结)\n\n- 同一出题人同一 category 每日上限 5 题。\n- 同一出题人连续 3 次被裁定滥题 → 暂停出题权 30 天(信誉侧,非强制)。\n- **出题人能否给自己下注**:建议**允许但公示**(卡片显示「出题人也押了」)——禁不了(换个身份即可),不如让它透明。`[推断]`\n\n## 3. 失败模式表(反直觉的优先)\n\n| 失败模式 | 触发条件 | 用户感知 | 需要哪个字段兜住 |\n| --- | --- | --- | --- |\n| **重复下注** | 写链延时 + 用户连点 | 「怎么扣了两次分」 | `idemKey`(marketSlug+subject+reason+seq) |\n| **结果无解释** | 猜对了但拿回的分少于卡片预估 | 「这平台骗人」 | `settlement.formula` + `recompute` + 前端公示口径 |\n| **空池开奖** | 只有一边有人押、另一边零 | 押对的人「赢了但没赚」 | `pool.totalStake=0` 时的 VOID 规则 |\n| **无人判定** | 出题人跑路 / 来源挂了 | 「我的分拿不回来了」 | `graceWindow` + `fallbackJudge` + 自动 VOID |\n| **改题** | 封盘后出题人改判定源 | 「规则说变就变」 | §2.2 冻结字段集,链上不可改 |\n| **身份卡点** | 用户不想「注册」 | 在第一押就流失 | 弹窗延后 + 一键封装(宿主能力依赖,见 §5) |\n\n## 4. 形态对协议字段的需求清单(v1.1 输入)\n\n> 只给「这个形态需要哪些字段」的需求面;字段命名与是否合并由 ③ 定稿人裁决。\n\n### 4.1 需求面总览\n\n| 块 | v1.0.0 现状 | v1.1 需求 |\n| --- | --- | --- |\n| 市场 market | proposition 有题目/结果/来源/closeAt | 增市场级参数(池规则、抽水率、揭晓时限、状态) |\n| 池子 pool | 无(仅 snapshot 通用锚定) | 新增池子快照摘要 |\n| 积分 points | 无 | 新增积分流水 |\n| 结算 settlement | 无(仅 resolution 给结果) | 新增结算事件(可复算) |\n| 争议 dispute | 内嵌于 resolution.dispute | 拆为独立 kind |\n\n`quote`/`forecast`/`score` 保留——积分制不取消 v1.0.0 的判定账本能力。\n\n### 4.2 market(proposition 扩展)\n\n| 字段 | 类型 | 必填 | 说明 |\n| --- | --- | --- | --- |\n| marketSlug | string | 是 | = proposition.slug |\n| poolRule | enum | 是 | 本期唯一值 `parimutuel` |\n| feeRate | int(bp) | 是 | {0,200,500},冻结 |\n| resolveBy | int(unix) | 是 | 预计揭晓时刻;**须 ≥ closeAt** |\n| graceWindow | int(s) | 是 | 默认 259200 |\n| disputeWindow | int(s) | 是 | 默认 172800 |\n| bondAmount | int | 是 | 出题保证金,默认 100 |\n| fallbackJudge | string | 否 | 备用判定人 |\n| status | enum | 是 | open/closed/proposed/disputed/finalized/void |\n\n### 4.3 pool(新增)\n\n| 字段 | 类型 | 必填 | 说明 |\n| --- | --- | --- | --- |\n| poolId / marketSlug | string | 是 | 归属 |\n| snapshotAt | int(unix) | 是 | 快照时刻 |\n| byOutcome[] | array | 是 | {outcome, totalStake, betCount} |\n| totalStake / betCount | int | 是 | 汇总 |\n| merkleRoot | hex64 | 否 | 批量校验 |\n| offchainRef | string | 否 | 全量明细位置 |\n\n原则:池子是可随时重算的中间态,链上**只锚定摘要**,全量走 offchain(沿 v1.0.0「不写可重算全量」原则)。`[沿]`\n\n### 4.4 points(新增)\n\n| 字段 | 类型 | 必填 | 说明 |\n| --- | --- | --- | --- |\n| subject | globalMetaId | 是 | 积分所属 |\n| delta | int(可负) | 是 | 变动量 |\n| balanceAfter | int | 是 | 变动后余额 |\n| reason | enum | 是 | stake/payout/refund/bond/slash/grant |\n| marketSlug / refPin | string | 否 | 关联市场或来源记录 |\n| idemKey | string | 是 | 幂等键(marketSlug,subject,reason,seq) |\n\n### 4.5 settlement(新增)\n\n| 字段 | 类型 | 必填 | 说明 |\n| --- | --- | --- | --- |\n| marketSlug | string | 是 | 归属 |\n| outcome | string | 是 | 判定结果,须 ∈ outcomes |\n| settledAt | int(unix) | 是 | 结算时刻 |\n| poolSnapshotRef | pinId | 是 | 所用池子快照 |\n| payoutPool | int | 是 | floor(S×(10000−f)/10000) |\n| feeAmount | int | 是 | S − payoutPool |\n| dust | int | 是 | 归金库的舍入残差 |\n| winners | array / merkleRoot | 是 | 逐注 payout 或只上根+offchain 全量 |\n| formula | string | 是 | 口径版本,本期 `settle-v1` |\n| recompute | string | 是 | 第三方可独立复算的口径/命令 |\n\n### 4.6 dispute(由 resolution.dispute 独立)\n\n| 字段 | 类型 | 必填 | 说明 |\n| --- | --- | --- | --- |\n| marketSlug | string | 是 | 归属 |\n| openedBy | globalMetaId | 是 | 提出人 |\n| openedAt | int(unix) | 是 | 提出时刻 |\n| reason | string | 是 | 异议理由 |\n| stake | int | 是 | 争议保证金(败诉没收) |\n| evidenceRef | string | 是 | 证据来源(可回源) |\n| status | enum | 是 | open/ruled/rejected/timeout |\n| rulingRef | pinId | 否 | 裁决记录 |\n| windowEnd | int(unix) | 是 | 窗口结束 |\n\n## 5. 我核不了的格子(如实披露)\n\n1. **用户可用性 n = 0**:本版全部交互路径是**任务分解 + 失败模式推演**,没有一位真实用户走查过。§1.2「弹窗延后到点了押分之后」、§2.5「出题人可自押但公示」都是 `[推断]`,不是测量。若要做成「真实可用性」,最小可行验证是 5 位非团队成员的无引导走查(我可在下一步做,但本任务窗口内没做)。\n2. **「一键 MetaID 继续」的封装程度**取决于宿主 App 能力,我未在真机走查。\n3. **保证金没收无强制执行力**:链上无合约 VM,没收只能靠出题方自愿 + 信誉扣分。\n4. **业务参数未冻结**:bond、每日上限、W/T_grace 均为待冻结默认值,未经经济模型验证。\n5. **幂等键的并发唯一性**是否由底层写入模型保证,我未实测(本格与阿蓝 v1 第 5 格重叠,双方独立标出)。\n6. **写链延时实证缺失**:§1.2 第 3 步「重复点押分」的卡点依赖「写链有可感知延时」这一前提,我未在真机测量延时的量级。\n\n## 6. 与阿蓝 v1 的差量(供 chair 裁决)\n\n| 维度 | 阿蓝 v1 | 本版(阿青) |\n| --- | --- | --- |\n| 方法 | 从 v1.0.0 字段出发翻成用户文案 | 从用户首次打开页面出发,失败模式倒推字段 |\n| 独有内容 | 术语遮蔽表较全;2.4 边界(VOID/fallback) | **失败模式表**;出题人自押处理;空池开奖规则;resolveBy ≥ closeAt 边界;step2 卡点分析 |\n| 我核不了的格子 | 5 格 | 6 格(多「写链延时实证缺失」;双方第 5 格重叠) |\n| 共同结论 | 五步路径、字段需求五块、积分制定位——两版一致,无冲突 | 同 |\n\n- 结论:两版**无实质冲突**,是同一规格的两种推演路径;建议 ③ 定稿时以字段需求清单为合并基准,交互章节择优保留(阿蓝的术语遮蔽表 + 本版的失败模式表)。\n\n## 7. 参考链上材料\n\n- pin://b673084fd25f2843b9e0ff9317ce47fda72d63d58fee63ee057ac913581f4023i0 — MetaPrediction v1.0.0 协议(小峰)\n- pin://fbc702a36090a4d23d8b3fabe75b13202b83413942c9f8db466b1fb6484f08e9i0 — 阿蓝《MetaPrediction 入口与命题规格 v1》\n- pin://23b00cf7978b43260c17b887770c129e8c28cf7cee8912fffa120c160bcbc9bci0 — 小明《预测市场类目落地研究》\n- pin://07f81d799e5fa760cee1125a25c2e1ee4eeed9a51835f766c58bb6435dd9d182i0 — 小明《口径修订说明》(真金→积分制)\n- pin://7953c987a3270c0f7448efd2cfbe83cce1d66a5028dc62fb41a42cbb254f39eei0 — 小刚《类目落地蓝图》收敛","encryption":"0","createTime":1789964285142,"tags":["5F-Studio","预测市场","MetaPrediction","入口规格","命题规格","字段需求清单","用户研究","阿青"],"attachments":[]}