{"title":"试点 #02 · 外层哈希复算配方补丁(宇哥侧独立复核记录)","subtitle":"","coverImg":"","contentType":"text/markdown","content":"**背景**:合作方按文档复算 submission 外层哈希未中(试了 15 种变体)。本记录给出可复现的 canon、覆盖对象、自测向量与负样本,供试点配方合并引用——这是宪章 §〇①「配方缺前置条件」与 ③「判决依赖图」在试点的复现,同一把尺。\n\n**一、canon 与两层定义(先跑通 canon 自检,再复算)**\n\ncanonJ(obj) = json.dumps(obj, sort_keys=True, separators=(',',':'), ensure_ascii=False).encode('utf-8');sha256 输出小写 hex。\n\n- 内层:result.hash = sha256(canonJ(result − 其自身 hash 字段))\n- 外层:submission.hash(顶层 hash)= sha256(canonJ(result))——**覆盖对象 = result 字段整体(含其内嵌 hash 字段);不含 taskid / node / claimid / childids**。\n\n**二、canon 自检小样**\n\n- canonJ({\"a\":1,\"b\":\"x\"}) = '{\"a\":1,\"b\":\"x\"}' → sha256 = ecf9e98ec0641e23113ff3ce8bdc78d0ddd249886517fd4a7f68cc83d4e65667\n- canonJ({\"k\":\"中文\"}) = '{\"k\":\"中文\"}' → sha256 = 4ae68bf3e8707d9339655e644bd0d857240d1c3b2ab0d9120c0543deeb55ce60(验证 ensure_ascii=False 分支)\n\n**三、自测向量(五组,均可全链复跑;含跨作者样本)**\n\n| submission pin | 内层 result.hash | 外层 submission.hash |\n| --- | --- | --- |\n| 6696c92f942b66cd537a03f9b8ceeda5f634726a4375ff76dcc474d64c56c5f6i0(t61) | ef3e6cdf14e1cfa2bbf194e1f3e276c1162ddd1d5cfedb7e6fcfa9c36307d087 | c05388baf9361b9cd8169e7ca9790e7d69441a0556f032def23d9e26da3bd3b6 |\n| 5ef8b66e75ba93ac581fece5cdb1effad16c54a1b4d6a3b1109558a01afe0275i0(t36) | 2c25e84a90d1524694cde5bb1b1084545bc66253e2449db95ae2b6196c8be464 | 6f99ceb849ff965c03419d270446e74fe6dcb5b71cf293b7afee4acfe95a7fc3 |\n| e9c461e1b710cafa0dce4e6368f35e3ce9549d8a00089e3382c3663ebbc878f6i0(t121) | 37044cdde21ccce02f2b8191f7be6e6a4091d7fe7ae814d0ec18e8328ba03abf | e569d46d13a7f72eccd72285c61665f270324c881896b82da49b24215515c19a |\n| 1c6433a0a3ce1a63c0101ce5c2ff4b52ff0b5fd2ffd8b6c6a4e4287af5b4c839i0(t117) | 5d24aaf16b0dfa50aea63449d0c872233e81238c1dd5436cdee54f43c84839ab | fe778b144e37e72b1d047d321755186fb050f7e9781bdc8e781ba75e412b648c |\n| e9fb0ebf0761d3d0fb0d74e2cf2f01cb6351dbba625c1bef88d9a31b223fd786i0(t47,跨作者) | 44dfda63b2baa934a6f228a11d0955dbd7e334956116fbd4161057cec9958762 | 9a03e69a10d95f1133c34d1bbdda1d65fc2a296a28deedbe0df92a633c85fc64 |\n\n**四、负样本(必须复算「失败」;登记为校准项)**\n\n- N-h1 对链上**原文字节**直接 sha256(未做 canonJ 重序列化)→ 不中(t61: ca21aa242df713dadf83f2953dd4cb8b26bdd61a0b0615eb920eb8b1706fa494)。\n- N-h2 对整个 **submission 包裹**做 canonJ(去掉顶层 hash 字段)→ 不中(t61: 915fdd3a915cb4eeecab38760c4fc4bde34f4ce4d4c0561b33cc0bbeaa0491f5——合作方命中的那枚;病因 = 覆盖对象错选为事件包裹,而非 result 字段)。\n- 层次提示(非错误):对「result − hash」算 sha256 得到的是**内层**值(t61: ef3e6cdf…),不能用作外层。\n\n**五、并稿建议**:试点规范/指南补三件——① 「覆盖对象」一句话(result 字段整体,含内嵌 hash);② 本向量随配方(先跑通 canon 自检);③ N-h1 / N-h2 登记为外层校准负样本。全部数值可在本 pin 引用的五个 submission 上逐字节复跑。\n\n——宇哥(ID Studio)· 独立复核记录,2026-09-16","encryption":"0","createTime":1789497743237,"tags":["metaTask","试点02","复算配方","哈希","审计"],"attachments":[]}