目的: Phase 1 で合意した全メカニズムを、合成データを用いて統合的に検証する。パラメータ最適化と攻撃耐性の定量化を行い、本実装へのリスク評価を完了する。
期間: 1-2 ヶ月
Phase 2 は以下の7つのメカニズムの統合シミュレーション:
1. Sybil ROI の定量化
攻撃者が k 個の巣を操作する場合、全体 Mana に対する期待値:
ROI(k) < 1/k(損が出る)ROI(k) ≪ 1/k(大幅に損が出る)ROI(100) < 1/150(100巣でも赤字)2. 正直者の False Positive 率 < 1%
真実の参加者が誤検知されて停止される確率が 1% 以下であること
3. Mana 配分の公平性
VRF による選出が暗号学的に操作不可能であること
4. パラメータ安定性
各パラメータが「大幅なチューニング不要」な安定値に収束すること
以下のパラメータを決定する。各パラメータの探索範囲と目標値を定義。
役割: 異常スコア S が閾値以下の場合、g(S) = 1 + κ × max(0, θ - S) で減価を加速
制約: 異常でない正直者が最大どれくらい減価されるか(不利益の上限)
探索範囲: 0.5 ~ 3.0
目標値: False Positive 率 < 1% の範囲内での最大値
優先度: 高
検証内容:
役割: S(v) < θ の場合、Layer 1 の F(v) = 1 (異常フラグ)。減価が加速される
制約: 低すぎるとbot 両方を見落とし、高すぎると正直者を排除
探索範囲: 0.2 ~ 0.7(正規化後の相対値)
目標値: 攻撃パターン検出 True Positive > 95% かつ False Positive < 1%
優先度: 高
検証内容:
役割: 「部分リセット」は廃止。三軸スコアと g(S) だけで異常検出
制約: 検証なし。実装上の確認のみ
優先度: 高
検証内容:
役割: E(v) = -Σ pᵢ log pᵢ で行動のランダムさを測定
制約: bot の低エントロピー行動を検出、人間の自然な行動は許容
探索範囲: エントロピー = 0.3 ~ 0.8(正規化後)
優先度: 中
検証内容:
役割: S(v) < θ の場合 F(v) = 1。配分資格の判定に使用
制約: 検証なし。θ で検証済み
優先度: 高
検証内容: θ パラメータの最適化に含まれる
役割: 減価加速度 g(S) にのみ反映。配分額には影響しない
制約: スコアが高いほど「自然に生きている」評価 → 減衰が遅い
探索範囲: softmin による正規化。スケーリング定数 β の値
優先度: 中
検証内容:
役割: 1 デバイス = 主要巣は1個。複数巣は異なるデバイスを必須に
制約: 検証不要。実装上の確認のみ
優先度: 高
検証内容:
役割: 各ラウンド Mana の 75% は全巣に均等配分。25% は Bloom イベントで抽選
制約: 比率は経験的な提案。実際に均等で健全なインセンティブが生まれるか検証
探索範囲: 70/30 ~ 80/20
目標値: 配分の Gini 係数が「公平」を示すレベル(推奨 0.2~0.3)
優先度: 中
検証内容:
役割: 一定期間ごとに全 Mana の 25% を抽選で配分
探索範囲:
目標値: 「まれだが起こり得る好運」として体験されること
優先度: 低
検証内容:
役割: 月次でオフライン分析。正規化係数 α(c) = global_avg_q / community_avg_q を計算
候補: Louvain, Infomap, Label Propagation, Leiden
選定基準:
優先度: 高
検証内容:
役割: 正規化係数 α を月1回計算して固定。その後の個別行動は α に影響しない
探索範囲: 週1回 ~ 3ヶ月ごと
目標値: グラフの安定性(新しい巣の参加による振動) vs 更新頻度のバランス
優先度: 中
検証内容:
役割: 長期離脱から復帰する際、30日間は減価が加速されない(デバイス一致が条件)
探索範囲: 14日 ~ 60日
目標値: 「十分な緩和期」と「悪用困難」のバランス
優先度: 高
検証内容:
役割: 新デバイスへの復帰申請が 30日以内なら許可
制約: Grace Period と統合。二重にならないか確認
優先度: 中
検証内容:
合成データで以下の攻撃シナリオをシミュレート。各シナリオで Sybil ROI と False Positive 率を計測。
基本パラメータ(各テストケースごとに変動):
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 の均等分布Scenario A: 単純 Sybil(基準)
攻撃者は k 個の巣を持ち、無制限にデバイスを用意できると仮定
攻撃戦略:
期待値:ROI(k) < 1/k(理論値)に対し、実際にどう動くか
Scenario B: デバイス制約下での Sybil
各巣が異なるデバイスを必須と仮定。攻撃者は k 個のデバイスを用意
攻撃戦略:
期待値:Scenario A との Sybil ROI の差を定量化
Scenario C: 高頻度小額ループ(高エントロピー偽装)
攻撃者が自動ツールで「自然に見える取引」を装う
攻撃戦略:
期待値:エントロピー軸と時間軸が「自動ループ」を検出できるか
Scenario D: 農村コミュニティでの False Positive
低い取引量の地域コミュニティが誤検知される可能性
攻撃ではなく、正直な参加者の評価:
期待値:False Positive 率 < 1%
Scenario E: 新規参加者の初期評価
新しく参加した正直な参加者が不当にペナライズされないか
検証内容:
期待値:30日以内に正常スコア範囲に達すること
Scenario F: 長期離脱からの復帰
60日以上不活動な巣が復帰する場合を検証
検証内容:
期待値:真実の復帰者が救済され、悪用が防止されること
Scenario G: 距離軸の価値測定
距離軸なしで三層構造で十分な Sybil 耐性が得られるか検証
比較対象:
期待値:Sybil ROI の差が顕著か、または距離軸なしで十分か結論付ける
攻撃者が k 個の巣を操作する場合、180日間のシミュレーションで獲得した Mana 合計を、正直な巣 1 個の期待値で除した値。
ROI(k) = (Attacker Total Mana) / (Honest Nest Total Mana)
期待値:ROI(k) < 1/k で攻撃が赤字化
目標:ROI(100) < 1/150(100巣でも 67% 以上の損)
Layer 1 の二値判定 F(v) の精度
TPR = 実際の攻撃者が検出される確率FPR = 正直な参加者が誤検知される確率目標:TPR > 95%, FPR < 1%
同じグラフで Louvain などのアルゴリズムを複数回実行した場合のコミュニティ構成の一貫性
Stability = 1 - (variance of cluster assignments)
目標:> 0.95(高い一貫性)
180日後のユーザー間 Mana 保有量の不平等度
Gini = Σ|x_i - x_j| / (2n * mean(x))
期待値:0.2 ~ 0.3(中程度に公平)
警告値:> 0.5(極端な不平等、再検討推奨)
各巣が Bloom イベント(25% 配分)で選ばれる確率が 1/n に近いか
Fairness = 1 - max(|p_selected - 1/n|)
目標:> 0.999(偏りなし)
新規参加者がスコア θ に到達するまでの日数(中央値)
目標:< 30日
長期離脱から復帰申請した正直な参加者が、デバイス検証で認可される確率
目標:> 99%(偽りの復帰だけが拒否される)
同一デバイスで複数の Grace Period を取得できないか(一度限りを確認)
目標:複数回の Grace Period 取得 = 0(不可能)
κ, θ, 分析周期などを ±10% 変化させた場合、主要指標(Sybil ROI, FPR)がどれだけ変わるか
期待値:安定的な設計なら ±10% で ±5% 程度の影響に収まる
推奨スタック:Python + NetworkX + NumPy + Pandas
モジュール 1: ネットワーク生成
モジュール 2: 取引シミュレーション
モジュール 3: スコアリング(Proof of Being)
モジュール 4: Mana 配分
モジュール 5: コミュニティ検出
モジュール 6: 評価指標計算
| テストケース 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 比較 |
スコアレポート(CSV)
コミュニティレポート(JSON)
集計結果(JSON)
時間軸 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 で決定)
| プラットフォーム | デバイス 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 | 中 | サーバー環境では高 |
Phase 2 の完了条件: