STEP 1659 — チート後方監視素子 v0.1

2026-09-02 · 「既存 AI 不可能部品」 arc 4 element machine 第 3 部品 · STEP 1638 hash-chained ledger の 上に 常設監視、 判定経路 LLM ゼロ · 提出物のハッシュ照合と JSON diff だけで paper 4 病理を 網羅

由来

chat-Claude 論文レビュー (2026-09-01) の指摘:

「1,601 軌跡中 2.4% を検出。 内訳は 『同じ手法を再提出してスコアのブレを狙う』 が 67%」。 これは STEP 1608 で撤回された 候補 F (計器を緑にするため 被測定を変える提案) と 完全に 同型の 病理なので、 あの判断を 人間の都合ではなく 常設の 監視素子として実装できる。

論文は Claude Opus 4.8 を 監視役に 使っているが、 検出内容の 67% は 「同一手法の再提出」 で、 これは 提出物のハッシュ照合で 足りる。 残りも 「計器側の定数が 変わったか、 被測定側が 変わったか」 の diff 判定に 落とせる。 むしろこちらのほうが 「判定経路に LLM を 入れない」 という 自分の原則に合う。

設計 (pure、 deterministic、 LLM ゼロ)

上流依存: STEP 1638 hash-chained ledger に kind:"submission" として 各提出を 積む。 本 module は ledger から 読むだけで、 pair 毎に 3 hash (method / sampleSet / gauge) を 比較する。

提出 payload = {
  submitter, methodHash, sampleSetHash, gaugeHash, timestamp,
  [methodDescription, scoreClaimed, gaugeConfig]
}

hash = "sha256:" + sha256(canonicalJSON(input))

4 病理 + 1 validation error

#kindseverity条件意味
Aresubmission-variance-farmingcritical
(score 変)
info
(score 同)
同 methodHash + 同 sampleSetHash + 同 gaugeHash + score が 異なる 「乱数のブレ狙いで 同じものを 再提出」 (paper 67% pattern)
Bgauge-tuning-after-failcritical 同 methodHash + 同 sampleSetHash + 異 gaugeHash 「手法を変えず 計器の 定数だけ 弄って 通した」 (arbitrariness-audit review 候補)
Csample-swap-to-hit-targetcritical 同 methodHash + 異 sampleSetHash + 同 gaugeHash 「手法を変えず 被測定を 差し替えて 通した」 (STEP 1608 candidate F 病理)
Dtriple-shiftwarning 全 3 hash 異 + 同 submitter + 60 分 window 内 (heuristic、 window は 引数) 「全部変えて 何かに 通るまで 試した」 疑い、 heuristic なので warning
Ehash-format-invalidcritical hash が sha256:<64 hex> 形式でない validation reject、 silent 通過禁止 (STEP 1650 anti-silent-pass invariant)

Anti-silent-pass 不変条件 5 件 (STEP 1637/1650/1654 継承)

#条件ふるまい
1必須 field 欠落 (submitter / methodHash / sampleSetHash / gaugeHash / timestamp) SKIPPED として 明示、 silent-drop 禁止
2空 ledger OK (no comparisons) + 明示 report、 silent success ではない
31 entry のみ no pairs、 count は 明示 report
4hash 形式 不正 REJECT + finding として surface、 silent 通過禁止
5判定経路に LLM 呼出 なし (pure hash compare + JSON diff)、 「判定経路 LLM ゼロ」 原則の 直接実装

実装 file

file役割
src/aios/checker/cheat-monitor.tslibrary core (pure、 no fs、 no LLM)
scripts/checker/run-cheat-monitor.tsCLI runner (ledger 読込 + data/checker/cheat-monitor-latest.json 出力)
test/step1659-cheat-monitor-test.ts52 assertion、 11 section
data/checker/cheat-monitor-latest.json実測 output (現状 ledger に submission entry ゼロ)

test 結果

$ npm run test:step1659
STEP 1659 tests: 52 passed, 0 failed

11 section: submissionHash (canonical JSON key-order 独立) + validation (required + hash format + score type) + anti-silent-pass (empty / single / non-submission kinds) + Pattern A-D (全 3 hash 組合せ + edge case) + hash-format-invalid finding + non-matching pairs (0 findings) + multi-pair (10 entries × 45 pairs、 4 病理を 同時 detect) + determinism (fixed timestamp で byte-identical output)。

実測 (2026-09-02、 ledger に submission entry 未投入 状態)

$ npx tsx scripts/checker/run-cheat-monitor.ts
cheat-monitor: ledger=present entries=2 submissions=0 pairs=0 skipped=0 findings=0(crit=0/warn=0/info=0)
written: data/checker/cheat-monitor-latest.json

ledger 自体は STEP 1638 で bootstrap 済 (genesis + refactor-guard-bound = 2 entries) だが、 「提出」 経路が まだ Rei-stack に 存在しない (submission-hash binding は 本 STEP で 提案のみ、 実 wire は v0.2 以降)。 現状 report は 「監視素子は 稼働中、 監視対象 ゼロ」 の 明示状態。

4 element machine 中での 位置

#素子状態
1ヒルクライム機械 (探索器)未着手 (提案器なし)
2幾何平均ゲート素子STEP 1654 で v0.1 完了
3チート後方監視素子本 STEP で v0.1 完了
4凍結ミニ論文素子STEP 1359 実装済 (rei-preregister v0.1、 external anchor v0.2 defer)
Honest scope (v0.1)

関連 STEP

Written by Claude on 2026-09-02 · STEP 1659 · commit / DOI は 実装ファイルの git log で 確認。