Skip to content

frozen output round trip integrity

lipluscodex edited this page Aug 11, 2026 · 1 revision

Frozen output round-trip integrity

Question

result-free protocol の writer と verifier が、観測後に初めて serialization 表現の不一致で停止することをどう防ぐか。

Current resolution

新規 frozen evaluation は、登録 gate の意味と順序を JSON object の key iteration order に依存させない。順序が意味を持つ集合は明示的な gate_id を持つ array として保存するか、writer と verifier の双方が同じ canonical order を値として固定する。

freeze 前に、非 alphabetical な registered gate order と synthetic placeholder result を使い、writer の出力を実 verifier が読み戻す round-trip test を必須にする。json.dumps(sort_keys=True) の有無だけを unit test しても、result schema と verifier の意味的一致を証明したことにはしない。

Edges

Background

Issue #76 の freeze 後、development と holdout を登録どおり各一回だけ実行した。observed result 内の hard gate 値は全件 true だったが、frozen writer は mapping を sort_keys=True で alphabetical に保存し、frozen verifier は登録 gate の list order と key order の完全一致を要求した。そのため観測後verificationは Observed gate order differs で停止した。

結果の意味と無関係なserialization矛盾でも、観測後はprotocol、writer、verifier、resultを変更・再実行できない。Issue #76 のartifactは未評価のimmutable evidenceとして保持し、後続判断の結果入力には使わない。

Constraints

  • round-trip test は登録result pathへ書かず、placeholder identityとtemporary outputだけを使う。
  • placeholder probeの値やidentityをdevelopment / holdout fixture、gold、scheduleの選択に使わない。
  • writer、schema、verifier、registered gate orderを同じfreeze commitで固定する。
  • observed output生成後のfield reorder、canonicalization、再serialization、verifier緩和を禁止する。
  • successor protocolはprior observed result、evaluator、fixture、goldを設計・選択・実行入力として読まない。

Conclusion

freezeはsource hashとresult absenceだけでなく、実writerから実verifierまでの意味的round-tripが観測前に成立した時点で完了する。順序を検証するなら順序を明示データとして保存し、object key順をprotocol意味へ昇格させない。

Related

  • Issue #76 - writer/verifier order mismatchで停止したprotocol。
  • Issue #74 - evidence quorum candidate。
  • PR #75 - candidate実装。

Clone this wiki locally