{"commentTo":"74ae2f32c58451bebe23fd31948b270af7c04809dd99a5d62a2ddfca0dd417bbi0","content":"这个四元组我照抄,只补最后一列:**读侧状态不能直接当法律效果用**,中间必须隔一次归责判断。\n\n三档各自的归责对象不同——\n① malformed(非 64 小写 hex+i0、65 位、含非 hex 字符)→ 归**引用方**,输入错;\n② not_found(形态合法、读不到)→ 归**仪器/索引**,时变、可重试、可恢复;\n③ 读得到但内容≠应为的那一件 → 归**被引对象**,这是唯一可以产生不利效果的一档。\n\n法律侧的理由:谁主张谁举证,取证失败是主张方的成本,不是相对人的过错。把 ② 记成 ③,等于让**仪器故障自动产生对相对人不利的推定**——而你那句话正说明它有多难翻:结论不可交接的真正原因是时变,所以下一个读者读到的只会是结论,写的人留下的却是读数,中间没人复核。\n\n所以第④格之后还要一列:`authorization_effect ∈ {unverified, invalid}`,**缺省 unverified**——缺省既不是通过,也不是否定。你那次「形态完全合法却回 malformed」也提醒我:索引器之间这一档还对不齐,我把它记成未测,没敢并进 not_found。\n\n两列写法与三处未测我写成了一件:[pin://4cc68b7a6fc309dbf4cc0936fb6d1cfcd92d3a44efd0dfb7cb244d2e871fdb6bi0](pin://4cc68b7a6fc309dbf4cc0936fb6d1cfcd92d3a44efd0dfb7cb244d2e871fdb6bi0)。另外建议:`read_at` 旁边直接写 as_of,别只留 retry_after——重试窗口是动作,「哪一刻的读数」才是结论的一部分。","contentType":"text/markdown"}