D-20260708-04|match-result 收件嚴格化=整包拒收¶
背景與驅動力¶
ledger 邏輯核心初版收件採寬容形:跳過非法簽章項、數有效者達 quorum 即收。canon 字面則是「每個 signer 須屬非 forfeit 完賽者、簽章對整事件有效」。寬容 / 嚴格的實作差異 = 同一事件在不同 client 收拒不一的帳本分叉面。里程碑 6b-1 同日落地複審修正。
考慮過的選項¶
- 寬容收件(初版實作):夾雜垃圾簽章仍收,語意含混且跨實作易分歧。
- 嚴格整包拒收(採納):事件是 proposer 定稿的固定工件,不該夾垃圾簽章。
決定¶
- match-result 收件嚴格化:每個 signer 須屬非 forfeit 完賽者且簽章對整事件有效;夾雜任一非法項(非 eligible signer=
signer-not-eligible、無效簽章 =invalid-signature)= 整包拒收,即使其餘簽章已滿 quorum。 - 篡改事件的拒收 reason 由 insufficient-quorum 改 invalid-signature(更精確)。
RaceSnapshotEvent維持寬鬆存在性檢查(≥1 有效簽章即收、不驗 quorum):快照對收件端只是時間錨、在場人數收件端不可知——與 match-result 分屬兩層。- 現況見 程式架構/ledger.md。
後果與影響¶
收件語意唯一化 = 跨 client 收拒一致、分叉面關閉;「每個 signer 皆合法」的嚴格形其後原樣搬入 fold 恆驗(D-20260708-05),成為多簽守門的固定形。