実験方法と判定値
四つの実験手法ファミリー、判定値の六つの状態、事前に宣言した四つのルール、そして再検証を受けてから書かれた四つの分析の規律。このページは、すべての数字を読むための前提です。
#二つの軸
2026-08-17 から、本研究はすべての実験を正式に二つの軸に分けました。これは研究全体で最も重要な構造の調整でした——それまでに積み上げた実験はすべて「悪いものが止められたか」を問うもので、「この層を加えたら、納品されるものが要求により合うようになるか」を問うものは一つもありませんでした。
| 軸 | 問い | 方法 |
|---|---|---|
| 防御軸 | 意図的に誤ったものを納品する参加者がいるとき、このルールがどれだけ防げるか | メカニズムのシミュレーションが中心 |
| 利得軸 | 要求が実行可能な受け入れテストにコンパイルできるとき、納品成功率がどれだけ上がり、代償にどれだけの token がかかるか | 実モデルでの対応のある実験 |
#四つの手法ファミリー
#1. メカニズムのシミュレーション(E1–E9, E12–E24, A1–B5, M1–M5, S1–S3)
答えること:このルールのもとで、ある攻撃戦略や仕組みのパラメータにどれだけの価値があるか。
本物であるもの:ルーティング(本物の Registry.route、UCB + 見習い期間の上限 0.55 + 10 ラウンドごとの見習い枠)、監査(本物の Auditor、sha256(seed:task_id) による決定的サンプリング)、評判(本物の Reputation、五次元 Beta、乗法的 slash、per-stream 半減期 200 イベント)、署名(本物の Ed25519 と hash-chain)。
シミュレーションしているもの:「この納品が良いか悪いか」だけです——それはもともと実験処理であって、仕組みではありません。
制御していないもの:
- 攻撃者の戦略空間はハードコードされた三〜四種類です。現実の攻撃者はもっと強いかもしれません。
- 単一の攻撃者 + 5 人の誠実な住人という固定の生態系規模。
- 盲点の真の値は不明です(外部のアンカーがない)。
#2. 実モデル実験
答えること:パイプライン全体が実モデルで動くか。信頼層のオン・オフで測定可能な差があるか。
手順:EvalPlus MBPP+ v0.2.0(378 問、sha256 で固定)からサンプリング → 各アームが同じ問題群を実行(三アームの prompt テンプレートは一字一句同じ、KS-1)→ 納品後にアームの外の compile_check(t.check)(answer) で品質を独立に判定 → task_id(sha256(prompt+tests)、アーム間で安定)で対応付け → McNemar 正確検定 + 固定シード bootstrap 95% CI + 検出力。
#3. 回帰判定基準(pytest)
答えること:仕組みそのものが後退していないか。
先に失敗する判定基準を書き、それから仕組みを直します(先に赤、次に緑)。各判定基準の説明には「当時の誤った数字」を記録し、退化が音もなく起きないようにしています。
#4. サイト監査
答えること:公開サイトが読めるか、操作が正しいか、水平方向のはみ出しがないか。
- コントラスト:iframe プローブで見えている要素をすべて巡回して computed style を取得し、半透明の前景と実効背景を合成してから WCAG 比を計算(文字 4.5:1、大きな文字と UI の枠線 3:1)。
- 機能:JS でクリックを駆動して操作フローを最後までたどり、DOM の状態と指紋が本当に再計算されたかを照合。
- レスポンシブ:iframe の固定幅で
scrollWidthvsclientWidthを測定。
#判定値:六つの状態
これはサイト全体で最も重要な一組の言葉です。外に向けたすべての主張は、必ずそのどれか一つに収まらなければなりません。
- 成立事前に決めた判定基準を満たした(事前登録し、実行してから答え合わせ)
- 反証主張は誤り。正しい言い方は「訂正後」に記載
- 言い過ぎ核心は成り立つが言い過ぎ、または元の証拠・メカニズムの説明に問題がある
- 識別可能な差なし測った結果、識別できる効果はなかった——それ自体が答えであり、測り終えていないわけではない
- 同符号・未解決事前登録したルールがどの状態も発動しなかった。測れなかった。差がないという意味ではない
- 未再検証まだ再検証に回していない——合格と同じではない
#事前に宣言した四つのルール
- 判定基準は実行開始前に凍結します。 各実験の判定基準、統計手法、四状態ルールはすべて、タイムスタンプ付きで決定文書に書かれています。
- 納品拒否は失敗として数え、分母はすべての問題です。 そうしないと「すべて納品拒否」が成功率 100% になってしまいます。
- インフラの失敗はモデルの失敗として数えません。 サンドボックスが起動しないのは環境の問題であり、モデルの能力の問題ではありません。
- 測れていないことは、ゼロと測れたことと同じではありません。 カバレッジ系の欄はすべて三状態(真/偽/未測定)を採ります。
#四つの分析の規律
この四つは敵対的な再検証を受けてから補ったものです。どれも、私たちが本来なら誤って公表していたはずの結論に対応しています。
#一、集計量について結論を出す前に分解する
集計量について「次元 X は重要でない」と結論する前に、まず分解します。分解できないときは「この操作点では測れない」としか書けず、「重要でない」とは書けません。
出典:E24 の「時間構造の差は 1.81 倍だけ」。aggregate-decomposition
#二、退化した端点で効果量を測らない
端点の数字は最もきれいで、たいてい最も情報がありません。
blindspot = 1.0 のとき、30 個の seed が同一の軌跡につぶれます(sd = 0、有効 n = 1)。audit_rate = 1 かつ audit_accuracy = 1 のとき、caught == bad はコードに書き込まれた恒等式です。
#三、検知確率は単一の積
P(検知) = (1 − 盲点 β) × サンプリング率 p × 監査正解率。同じ積の中の因子を、直交する次元として扱ってはいけません。
出典:「監査を増やしても盲点は救えない」。blindspot-is-a-product
#四、等予算比較では defected == BUDGET を確かめる
上限は常に成り立つので、「このアームはそもそも縛られていなかった」ことは決して捕まえられません。
出典:E19 で「悪事が 2.5 倍多い」を「タイミングがより優れている」と誤読しました。equal-budget-must-bind
#統計上の自己訂正
| 出来事 | 発見の経緯 |
|---|---|
wilcoxon_signed_rank_exact の正規近似の分岐が同順位補正を二重に計算 | n=30、正 20・負 10 のときプログラムは p=0.0288(有意)と出したが、正確値は 0.0987(有意でない) |
bootstrap CI が hash() をシードに使い、プロセスをまたぐと再現できない | 同じデータで 53,478 と 1,628 が出た |
SimConfig.digest() が RNG シードであると同時にすべてのフィールドのハッシュでもあった | 「オプション引数を一つ足す」だけで、E1–E16 のすべての数字が音もなく動く。修正:デフォルト値のフィールドは digest に含めず、三つの config digest をビット単位の再現まで固定 |
| 非公開テスト監査 v1 が 90 件の偽陽性を出した | 「この文章を誰が書いたか」を判定基準に改め、v2 は違反ゼロ |
codebench.py のインデント bug | 378 個の契約のうち 77.2% に ≥2 個の assert があり、FAIL の主張が誤って捨てられていた。99 件を補って計算:38(38.4%)は bug に食われた本物の反例 |
#誠実な限界の三つの層
| 層 | 内容 |
|---|---|
| 仕組みの層 | メカニズムのシミュレーションは安全であることを示せず、攻撃コストの上限の下限を与えるだけです。 |
| 問題の層 | 利得実験は Python のコード生成に限られ、問題は三つの公開問題バンクのローカルなサブセットから取っています。主な実験は単一の 12B 量子化モデルとローカル推論ホストを使っています。 |
| 人の層 | まったく測っていません。 利用者を募集していないので、これによって人が AI に仕事を任せやすくなるかどうかは分かりません。 |

