Phase 2 シミュレーション仕様

目的: Phase 1 で合意した全メカニズムを、合成データを用いて統合的に検証する。パラメータ最適化と攻撃耐性の定量化を行い、本実装へのリスク評価を完了する。

期間: 1-2 ヶ月

目次

1. 概要と検証目標

Phase 2 は以下の7つのメカニズムの統合シミュレーション:

  1. 減価メカニズム:パラメータ κ, θ, τ_reset の廃止
  2. 循環の質(Proof of Being):二層構造(Layer 1: 二値判定、Layer 2: 連続スコア)
  3. Mana 配分:75/25 ハイブリッド(決定論 + Bloom イベント)
  4. VRF ランダムネス:検証可能ランダム関数による公平性
  5. デバイス紐づけ(第4軸):複数巣の構造的不利化
  6. 復帰パス(Grace Period):長期離脱からの復帰メカニズム
  7. コミュニティ正規化:月次オフライン分析による相対評価

検証目標(サクセス条件)

1. Sybil ROI の定量化

攻撃者が k 個の巣を操作する場合、全体 Mana に対する期待値:

  • 単純 Sybil(k 巣, 無制限デバイス):ROI(k) < 1/k(損が出る)
  • デバイス制約下(1デバイス = 1巣):ROI(k) ≪ 1/k(大幅に損が出る)
  • 期待値:ROI(100) < 1/150(100巣でも赤字)

2. 正直者の False Positive 率 < 1%

真実の参加者が誤検知されて停止される確率が 1% 以下であること

  • 新規参加者の初期評価:θ 閾値を明確に
  • 農村コミュニティ(低取引量)の誤検知率:具体的に計測
  • 引っ越し、デバイス交換時の Grace Period:30日で十分か検証

3. Mana 配分の公平性

VRF による選出が暗号学的に操作不可能であること

  • 各巣が選ばれる確率:完全に 1/n(±0.001% の誤差範囲)
  • Bloom イベント発生確率:期待通り(25% 配分で実際 24.8%-25.2% など)
  • 決定論的減価の予測可能性:ユーザーが事前に計算可能か

4. パラメータ安定性

各パラメータが「大幅なチューニング不要」な安定値に収束すること

  • ネットワーク規模 N=1K, 10K, 100K の異なるスケールで結果が比例
  • 攻撃者の数 k=1~100 の異なる強度で安定した ROI 曲線
  • パラメータの感度分析:各パラメータ ±10% の変化に対する影響度

2. 最適化パラメータ

以下のパラメータを決定する。各パラメータの探索範囲と目標値を定義。

2.1 減価メカニズム(Decay)

κ (Kappa) - 減価加速係数

役割: 異常スコア S が閾値以下の場合、g(S) = 1 + κ × max(0, θ - S) で減価を加速

制約: 異常でない正直者が最大どれくらい減価されるか(不利益の上限)

探索範囲: 0.5 ~ 3.0

目標値: False Positive 率 < 1% の範囲内での最大値

優先度:

検証内容:

  • κ=0.5 vs 1.0 vs 2.0 vs 3.0 で False Positive 率を計測
  • 攻撃者検出性能(True Positive 率)が κ に応じてどう変化するか
  • ユーザー体験:「不当に減価される」と感じさせない上限値
θ (Theta) - 異常判定閾値

役割: S(v) < θ の場合、Layer 1 の F(v) = 1 (異常フラグ)。減価が加速される

制約: 低すぎるとbot 両方を見落とし、高すぎると正直者を排除

探索範囲: 0.2 ~ 0.7(正規化後の相対値)

目標値: 攻撃パターン検出 True Positive > 95% かつ False Positive < 1%

優先度:

検証内容:

  • 新規参加者:初期スコアが θ 以上に達するまでの期間
  • 農村コミュニティ:低取引量でも θ 以上に達するか
  • 引っ越し直後:デバイス交換後の復帰パスが機能するか
τ_reset 廃止の実装

役割: 「部分リセット」は廃止。三軸スコアと g(S) だけで異常検出

制約: 検証なし。実装上の確認のみ

優先度:

検証内容:

  • τ リセット廃止後も「高頻度小額ループ」が十分に検出されるか
  • エントロピー軸(予測困難性)で循環パターンが分析されているか
エントロピー軸の感度

役割: E(v) = -Σ pᵢ log pᵢ で行動のランダムさを測定

制約: bot の低エントロピー行動を検出、人間の自然な行動は許容

探索範囲: エントロピー = 0.3 ~ 0.8(正規化後)

優先度:

検証内容:

  • 規則的な bot パターン(毎日同じ時間に同じ額):エントロピー < 0.3
  • 人間の自然な行動(不規則だが相関のある行動):エントロピー > 0.5

2.2 Proof of Being(PoB)二層構造

Layer 1: 二値フラグ F(v)

役割: S(v) < θ の場合 F(v) = 1。配分資格の判定に使用

制約: 検証なし。θ で検証済み

優先度:

検証内容: θ パラメータの最適化に含まれる

Layer 2: 連続スコア S(v)

役割: 減価加速度 g(S) にのみ反映。配分額には影響しない

制約: スコアが高いほど「自然に生きている」評価 → 減衰が遅い

探索範囲: softmin による正規化。スケーリング定数 β の値

優先度:

検証内容:

  • 高スコア者の減衰が実際に遅いか(期待通りか)
  • スコアが配分額に漏洩していないか(意図的な非表示設計を確認)
  • 内発的動機づけが機能しているか:「多く配分される」ではなく「長く保ちたい」
デバイス紐づけ(第4軸)

役割: 1 デバイス = 主要巣は1個。複数巣は異なるデバイスを必須に

制約: 検証不要。実装上の確認のみ

優先度:

検証内容:

  • プラットフォーム別実装(TPM, Secure Enclave, TEE)の正確さ
  • デバイス ID の抽出精度(偽装難度)
  • 複数デバイス所有者の利便性:複数巣運用が「当然」に見えるか

2.3 Mana 配分

75/25 ハイブリッド比率

役割: 各ラウンド Mana の 75% は全巣に均等配分。25% は Bloom イベントで抽選

制約: 比率は経験的な提案。実際に均等で健全なインセンティブが生まれるか検証

探索範囲: 70/30 ~ 80/20

目標値: 配分の Gini 係数が「公平」を示すレベル(推奨 0.2~0.3)

優先度:

検証内容:

  • 75% 決定論的配分で基本的な参加インセンティブが十分か
  • 25% Bloom イベントで「万一のチャンス」が感じられるか
  • 極端な不公平(1人が90%独占)が発生しないか
Bloom イベント パラメータ

役割: 一定期間ごとに全 Mana の 25% を抽選で配分

探索範囲:

  • 間隔:7日 ~ 14日
  • 配分量:全 Mana の 20% ~ 30%

目標値: 「まれだが起こり得る好運」として体験されること

優先度:

検証内容:

  • イベント間隔が短いと期待値ギャンブル化、長いと忘れられる
  • 配分量が多いと決定論的配分の価値が下がる

2.4 Community Normalization

コミュニティ検出アルゴリズム

役割: 月次でオフライン分析。正規化係数 α(c) = global_avg_q / community_avg_q を計算

候補: Louvain, Infomap, Label Propagation, Leiden

選定基準:

  • 計算コスト:N=100K でも数分以内
  • 安定性:同じグラフで何度走っても結果が一貫
  • 解釈性:コミュニティの意味が明確(地理的・社会的)

優先度:

検証内容:

  • 各アルゴリズムで検出されるコミュニティ数が現実的か
  • Louvain のランダムシード依存性を測定
  • Leiden の安定性改善がどの程度まで機能するか
分析周期

役割: 正規化係数 α を月1回計算して固定。その後の個別行動は α に影響しない

探索範囲: 週1回 ~ 3ヶ月ごと

目標値: グラフの安定性(新しい巣の参加による振動) vs 更新頻度のバランス

優先度:

検証内容:

  • 月1回の固定でコミュニティ構造が大幅に変わるか
  • 新規参加者が流入時に α の急な変動が起こるか
  • 週1回 vs 月1回で攻撃者の操作難度がどう変わるか

2.5 Grace Period(復帰パス)

Grace Period 期間

役割: 長期離脱から復帰する際、30日間は減価が加速されない(デバイス一致が条件)

探索範囲: 14日 ~ 60日

目標値: 「十分な緩和期」と「悪用困難」のバランス

優先度:

検証内容:

  • 30日で復帰者が正常スコアに戻る期間は十分か
  • 短すぎると「引っ越しのたびにペナルティ」
  • 長すぎると「攻撃者が Grace Period を悪用」
  • デバイス交換猶予(30日)との整合性
デバイス交換猶予

役割: 新デバイスへの復帰申請が 30日以内なら許可

制約: Grace Period と統合。二重にならないか確認

優先度:

検証内容:

  • 30日猶予で「自然な引っ越し」を全てカバーするか
  • それ以上の猶予は「異なる人物への資産譲渡」になる可能性

3. 検証シナリオ

合成データで以下の攻撃シナリオをシミュレート。各シナリオで Sybil ROI と False Positive 率を計測。

3.1 ネットワーク仕様

基本パラメータ(各テストケースごとに変動):

  • N = ネットワーク規模:1K, 10K, 100K(3パターン)
  • k = 攻撃者巣数:1, 2, 5, 10, 20, 50, 100(7パターン)
  • T = シミュレーション期間:180 日(6ヶ月)
  • α_day = 日次取引数 / 巣:Poisson(λ=2)(1日に0~5件取引)
  • トランザクション額 = 1~100 の均等分布

3.2 攻撃シナリオ

Scenario A: 単純 Sybil(基準)

攻撃者は k 個の巣を持ち、無制限にデバイスを用意できると仮定

攻撃戦略:

  • k 個の巣を全て均等に運用
  • 毎日ランダムに取引(パターン検出を回避)
  • Bloom イベントで「運を試す」

期待値:ROI(k) < 1/k(理論値)に対し、実際にどう動くか

Scenario B: デバイス制約下での Sybil

各巣が異なるデバイスを必須と仮定。攻撃者は k 個のデバイスを用意

攻撃戦略:

  • k 個の異なるデバイスで k 個の巣を運用
  • デバイス紐づけ検証を突破
  • Sybil ROI(k) ≪ 1/k(大幅な損)

期待値:Scenario A との Sybil ROI の差を定量化

Scenario C: 高頻度小額ループ(高エントロピー偽装)

攻撃者が自動ツールで「自然に見える取引」を装う

攻撃戦略:

  • 複数の巣間で高頻度に取引(毎日複数回)
  • ランダムなタイミングと額(エントロピー軸を回避)
  • 「自然な行動」に見えるパターンで φ スコアを上げる

期待値:エントロピー軸と時間軸が「自動ループ」を検出できるか

Scenario D: 農村コミュニティでの False Positive

低い取引量の地域コミュニティが誤検知される可能性

攻撃ではなく、正直な参加者の評価:

  • 月に数件程度の低頻度取引(農村の実情)
  • 同じ人しか取引しない(コミュニティ内の閉じた循環)
  • θ 閾値が高すぎると誤検知される

期待値:False Positive 率 < 1%

Scenario E: 新規参加者の初期評価

新しく参加した正直な参加者が不当にペナライズされないか

検証内容:

  • 初日~初月のスコア遷移
  • θ に到達する期間(1週間?1ヶ月?)
  • 初期段階での減価加速が「受け入れられる」レベルか

期待値:30日以内に正常スコア範囲に達すること

Scenario F: 長期離脱からの復帰

60日以上不活動な巣が復帰する場合を検証

検証内容:

  • 復帰申請時にデバイス ID が一致すれば Grace Period が付与されるか
  • Grace Period 中に減価が正常に戻るか
  • デバイス交換(30日以内)での復帰パスが機能するか

期待値:真実の復帰者が救済され、悪用が防止されること

Scenario G: 距離軸の価値測定

距離軸なしで三層構造で十分な Sybil 耐性が得られるか検証

比較対象:

  • 三層設計(時間・エントロピー・VRF)
  • 四層設計(+ 距離軸)

期待値:Sybil ROI の差が顕著か、または距離軸なしで十分か結論付ける

4. 評価指標

4.1 Sybil 耐性指標

Sybil ROI(k)

攻撃者が k 個の巣を操作する場合、180日間のシミュレーションで獲得した Mana 合計を、正直な巣 1 個の期待値で除した値。

ROI(k) = (Attacker Total Mana) / (Honest Nest Total Mana)

期待値:ROI(k) < 1/k で攻撃が赤字化

目標:ROI(100) < 1/150(100巣でも 67% 以上の損)

True Positive Rate (TPR) / False Positive Rate (FPR)

Layer 1 の二値判定 F(v) の精度

  • TPR = 実際の攻撃者が検出される確率
  • FPR = 正直な参加者が誤検知される確率

目標:TPR > 95%, FPR < 1%

Community Detection 安定性

同じグラフで Louvain などのアルゴリズムを複数回実行した場合のコミュニティ構成の一貫性

Stability = 1 - (variance of cluster assignments)

目標:> 0.95(高い一貫性)

4.2 公平性指標

配分 Gini 係数

180日後のユーザー間 Mana 保有量の不平等度

Gini = Σ|x_i - x_j| / (2n * mean(x))

期待値:0.2 ~ 0.3(中程度に公平)

警告値:> 0.5(極端な不平等、再検討推奨)

VRF 公平性

各巣が Bloom イベント(25% 配分)で選ばれる確率が 1/n に近いか

Fairness = 1 - max(|p_selected - 1/n|)

目標:> 0.999(偏りなし)

4.3 ユーザー体験指標

新規参加者の安定化期間

新規参加者がスコア θ に到達するまでの日数(中央値)

目標:< 30日

復帰パスの成功率

長期離脱から復帰申請した正直な参加者が、デバイス検証で認可される確率

目標:> 99%(偽りの復帰だけが拒否される)

Grace Period 悪用防止

同一デバイスで複数の Grace Period を取得できないか(一度限りを確認)

目標:複数回の Grace Period 取得 = 0(不可能)

4.4 パラメータ感度分析

各パラメータの影響度

κ, θ, 分析周期などを ±10% 変化させた場合、主要指標(Sybil ROI, FPR)がどれだけ変わるか

期待値:安定的な設計なら ±10% で ±5% 程度の影響に収まる

5. 実装仕様

5.1 シミュレーションエンジン構成

推奨スタック:Python + NetworkX + NumPy + Pandas

モジュール 1: ネットワーク生成

  • N 個の巣とランダムなコミュニティ構造を生成
  • Small-world ネットワーク(Watts-Strogatz)で現実的な取引関係を模擬
  • 攻撃者 k 個の巣をプラグイン

モジュール 2: 取引シミュレーション

  • 日ごとに各巣が Poisson(λ) 個の取引を実行
  • 取引先:近傍ノードの確率 p_local、遠方ノードの確率 1-p_local
  • 攻撃者巣のみ異なる戦略(高頻度ループなど)

モジュール 3: スコアリング(Proof of Being)

  • 三軸スコアを日次で計算:D(v), T(v), E(v)
  • 正規化後に S(v) = softmin([D, T, E])で連続スコア
  • F(v) = 1 if S(v) < θ(二値フラグ)
  • 減価加速度 g(S(v)) = 1 + κ × max(0, θ - S(v))

モジュール 4: Mana 配分

  • 日次 / ラウンドごとに新規 Mana を生成
  • 75%:全 F(v)=0 の巣に均等配分
  • 25%:Bloom イベント時(7-14日ごと)に VRF で抽選
  • 減価計算:decay(v) = decay(v) × g(S(v))^日数

モジュール 5: コミュニティ検出

  • 月1回、取引グラフの Louvain クラスタリング
  • コミュニティごとに平均スコア q_c を計算
  • 正規化係数 α(c) = global_avg_q / q_c を計算して固定(30日間有効)
  • 実装:python-louvain or NetworkX

モジュール 6: 評価指標計算

  • 180日シミュレーション終了後、指標を一括計算
  • Sybil ROI, TPR, FPR, Gini, 新規参加者期間など
  • CSV / JSON で出力

5.2 テストケース設定

テストケース ID N(規模) k(攻撃巣数) Scenario 期待結果
T001 1K 1 A(単純 Sybil) ROI(1) ≈ 0.8~1.2(≥1/k)
T002 1K 10 A ROI(10) < 1/10 = 0.1
T003 10K 50 A ROI(50) < 1/50 = 0.02
T004 100K 100 A ROI(100) < 1/150 ≈ 0.0067
T005 10K 10 B(デバイス制約) ROI(10) << 0.1(Scenario A との差を定量化)
T006 10K 5 C(高頻度ループ) 攻撃巣が F(v)=1 で検出されるか(TPR > 90%)
T007 10K 0 D(農村) 正直な低頻度取引者の FPR < 1%
T008 10K 0 E(新規参加) 30日以内にスコア θ に到達
T009 10K 0 F(復帰) デバイス一致時復帰率 > 99%
T010 10K 0~100 G(距離軸価値) 三層 vs 四層の Sybil ROI 比較

5.3 出力形式

スコアレポート(CSV)

  • day, nest_id, D_score, T_score, E_score, S_score, F_flag, decay_amount, mana_received, total_mana

コミュニティレポート(JSON)

  • month, cluster_id, member_count, avg_score, normalization_alpha

集計結果(JSON)

  • testcase_id, N, k, scenario, sybil_roi, tpr, fpr, gini, stability, notes

6. タイムライン

Week 1-2: 設計・開発

  • シミュレーションエンジンの基本モジュール開発
  • ネットワーク生成 + 取引シミュレーション
  • スコアリング(三軸)の実装

Week 3-4: 検証・チューニング

  • Scenario A-G の実行(全テストケース)
  • パラメータ κ, θ の探索
  • 初期結果の分析と修正

Week 5-6: 詳細分析

  • Sybil ROI の詳細グラフ化
  • パラメータ感度分析
  • False Positive の詳細調査

Week 7-8: レポート作成・合意

  • 最終レポート作成
  • パラメータ決定値の提案
  • Phase 3 実装前の合意形成

7. 付録

7.1 参考:三軸スコア計算式

時間軸 T(v)

T(v) = activity_rate(t) × freshness(t)

activity_rate = 最近14日間の取引数 / 7日ごとの平均取引数

freshness = 最後の取引からの経過日数に基づく減衰(指数減衰)

予測困難性軸 E(v)

E(v) = −Σ p_i log(p_i)

p_i = 時間帯 i での取引の相対頻度

高い E(v) = 行動がランダム(人間的)、低い E(v) = 行動が規則的(bot的)

距離軸 D(v)

D(v) = 一貫性スコア - 移動コスト

距離軸は現在の設計では Layer 2 に統合。Phase 2 で四層設計との比較で価値を測定。

統合スコア S(v)

S(v) = softmin([D, T, E], β)

softmin で「最も弱い軸」を強調。β はスケーリング定数(Phase 2 で決定)

7.2 参考:デバイス紐づけの実装

プラットフォーム デバイス ID ソース テンパリング耐性 可用性
Windows TPM 2.0 Endorsement Key / CPU Serial 95%+ (2010年以降のPC)
macOS Secure Boot + Keychain / System UUID 99%+ (Apple Silicon 以降)
iPhone Secure Enclave / Keychain 最高 100% (iOS 2.0+)
Android TEE (Hardware Keystore) / IMEI 中~高 75%+ (Android 6.0+)
Linux TPM 2.0 / BIOS UUID サーバー環境では高

7.3 成功基準チェックリスト

Phase 2 の完了条件:

  • ☐ Sybil ROI(100) < 1/150 を達成
  • ☐ False Positive 率 < 1% を達成
  • ☐ κ, θ の最適値を決定
  • ☐ Bloom イベント間隔と配分量を決定
  • ☐ 分析周期(月1回 vs 他)を決定
  • ☐ Grace Period 期間を決定(30日 vs 他)
  • ☐ コミュニティ検出アルゴリズムを選定
  • ☐ ZK-SNARK 証明コストが実用的か確認
  • ☐ 距離軸の要否を結論付ける
  • ☐ 全テストケースでサクセス条件を満たすレポート作成