AIMP — AIメッシュプロトコル

実験的なサーバーレスネットワーキングプロトコルで、断片化された低帯域ネットワークにおける自律エージェント間の耐障害性のある状態同期を実現します。 Merkle-CRDTと暗号化IDに基づいて構築されています。中央機関、グローバルDNSは不要で、常に書き込み可能です。
論文
著者プロフィール: ResearchGate · ResearchHub
プロトコルスタック
新機能
v0.4.0 — 決定論的意味トポロジー
L3 v0.3.0では、アプリケーションが手動で知識グラフ(Support/Contradictエッジ)を構築する必要がありました。v0.4.0では自律エッジ生成によりこのボトルネックを解消します。
- クレームはオプションの
QuantizedEmbedding([u64; 4]) を持つことができます。これはアプリケーション側で正規の埋め込みモデルから計算された256ビットのSimHashです。
- 各エポック境界で、プロトコルはペアごとのハミング距離(XOR + popcount、ペアあたり約1 ns)を計算し、近いペア(d <= 30ビット)に対してSupportsエッジを、遠いペア(d >= 200ビット)に対してContradictsエッジを発行します。
- エッジの強度は、距離に比例してベーシスポイントで線形にスケーリングします(d=0 → 10000 bps、d=30 → 1000 bps)。
max_k_nearest 上限により、エッジ密度をO(N)に制限し、信頼伝播の爆発を防ぎます。
embedding_version: u32 は、プロトコルレベルのモデルアップグレードのために異なる潜在空間を分離します。
- 自動エッジはL2ゴシップを介して具体化され、ホログラフィックルーティングによりGCを生き延びます。
- デッドゾーン(31-199ビット)は曖昧なクレームを孤立させます — 認識論的に正しい分離です。
// 自律的真実発見: 10,000件のクレーム → 50msスキャン、O(N)エッジ
// 浮動小数点なし、調整なし、中央機関なし
let edges = auto_edge_generator.generate_edges(&epoch_claims);
v0.3.0 — 相関認識信念集約
L3 v0.2.0では、すべてのエビデンスソースが統計的に独立していると仮定していました(ナイーブベイズ)。これにより、物理的に相関のあるセンサー(例:同じ屋上にある100のIoTデバイス)や意味的に相関のあるエージェント(例:同じデータセットでファインチューニングされたLLM)が一致した観測を報告した場合、病的な過信頼が生じます。
v0.3.0ではグリッドセル相関割引を導入します。
- 各クレームにはオプションの
CorrelationCell(u64) — 空間的、意味的、または時間的近接性の離散座標が含まれます。
- 各セル内では、エビデンスは強度でランク付けされ、幾何学的に割引されます:最強のソースは100%の重みを保持し、後続の各ソースは
discount_bps^rank / 10000^rank を受け取ります(デフォルト30%)。
- 30%割引の場合、N個の相関センサーは単一センサーの約1.42倍のエビデンスに収束します(Nに関わらず)。ナイーブなアプローチではN倍の増幅が生じます。
- CRDTの結合律性の課題(幾何学的減衰は部分的なマージに対して非結合的)は、アーキテクチャ的に解決されます:エポック還元は
(temporal_grid, fingerprint, correlation_cell) でバケット化し、完全なセットに対するアトミック計算を保証します。
correlation_cell: None のクレームはv0.2.0と同一に動作します(ゼロ回帰)。
- すべての演算は整数のみ(i32/i64、ベーシスポイント)です。浮動小数点はありません。ZK対応です。
// 100の同一場所センサー、各70%の確信度:
// v0.2.0(ナイーブ): 100 × 847 = 84,700 ミリ対数オッズ → 約100%(過信頼)
// v0.3.0(30%): 847 × Σ(0.3^i) ≈ 1,207 ミリ対数オッズ → 約77%(現実的)
アーキテクチャ
aimp_node/ Rust参照実装(Cargoワークスペースメンバー)
src/
crdt/ Merkle-DAGエンジン、アクターモデル、アリーナアロケータ、クォーラム合意
crypto/ Ed25519アイデンティティ、BLAKE3ハッシュ、ゼロトラストファイアウォール
network/ UDPゴシップ、Noise Protocol XXセッション、ピアごとのレート制限
protocol/ ワイヤフォーマット(MessagePack)、型付きペイロードenum
epistemic.rs L3認識層(v0.3.0):対数オッズ、信頼伝播、相関割引
semantic_topology.rs L3意味トポロジー(v0.4.0):SimHash埋め込み、自動エッジ生成
decision_engine.rs プラグイン可能な決定論的決定エンジン(トレイト+ルールエンジン+ホットリロード)
error.rs 統合AimpError型階層
dashboard/ Ratatui TUI
config.rs 動的設定とバリデーション
event/ 構造化ログ+Prometheusメトリクス(カウンター+ヒストグラム)
tests/ 統合テスト
benches/ Criterionベンチマーク
aimp_testbed/ Python SDK (aimp-client) + CLIツール + カオステスト
deploy/ Systemdサービス、FirecrackerマイクロVM、インストールスクリプト
formal/ TLA+収束+クォーラム安全性+信念収束仕様
docs/ 論文1(Typstソース+PDF)
v0.2.0/ 論文2:認識層(Typstソース+PDF)
v0.3.0/ 論文3:相関認識集約(Typstソース+PDF)
戦略的優位性
主要機能
コアエンジン (v0.1.0)
tokio::mpscによるゼロ共有状態CRDTのアクターモデル
- O(1)挿入とSoAレイアウトのSlab/Arena割り当て
- ChaCha20Poly1305暗号化による保存時の耐久性永続化(redb)
- ドメイン分離によるHKDF-SHA256鍵導出
- キャッシュされたマークルルートと書き込み時無効化
- スラブメモリ回収によるリアルマークアンドスイープGC
- CRDTアクターに統合されたエポックベースのGC追跡
認識層 (v0.2.0 — v0.4.0)
- 整数対数オッズ演算(i32、ミリ対数オッズ) — 浮動小数点なし、100%決定論的
- 2パスマルコフ信頼伝播(Support → Contradiction、発振なし)
- Sybil耐性レピュテーション:新規ノードは0から開始、委任が必要、レピュテーション消費
- グリッド整列エポック還元と具体化された圧縮(サマリーはGCを生き残る)
- サイクル検出(ソートDFS)により確信度インフレループを防止
- v0.3.0: 相関認識集約 — 同一場所センサー/LLMの幾何学的割引
- v0.3.0: アトミックセル還元 — (epoch, fingerprint, cell)によるバケット化でCRDT安全性を確保
- v0.4.0: 決定論的意味トポロジー — SimHash埋め込み、自律エッジ生成
- 主観論理/Dempster-Shaferより98-142倍高速(アーキテクチャ間でビット同一)
ネットワーキングとセキュリティ
- Noise Protocol XX暗号化セッション(デフォルト有効)
- ピアごとのトークンバケットレート制限(整数演算)
- HashSet + VecDequeによるO(1)ゴシップ重複排除
- TTLリプレイ攻撃検出とサーキットブレーカー
- セッションLRU退避(TTL + 最大数)
- ローリングアップグレードのためのプロトコルバージョン範囲ネゴシエーション
決定エンジンと合意
RuleEngine実装を持つプラグイン可能な DecisionEngine トレイト
aimp_rules.jsonからホットリロード可能なルール(再起動不要)
- 永続的な検証済み決定を持つBFTクォーラム投票
- オペコードごとの型付き
Payload enum(コンパイル時安全性)
観測性
- Prometheusカウンター、ゲージ、レイテンシヒストグラム
- サブチェックとHTTPステータスコードを持つ複合
/health エンドポイント
- TUIダッシュボードによる構造化
SystemEvent ログ
運用
- 統合
AimpError 型階層(Box<dyn Error> 不要)
- 設定バリデーション(無効な組み合わせを拒否)
- 5秒タイムアウトによるグレースフルシャットダウン
- Systemd強化サービスファイル
- CI/CD: lint、テスト、セキュリティ監査、ドキュメント、クロスコンパイルリリース
ベンチマーク
Apple Silicon (Mシリーズ)、シングルスレッド、fast-crypto モードでCriterion測定:
システムレベル
5ノードクラスタ、アンチエントロピー同期(インプロセス、Apple Silicon)でシミュレーション:
ネットワーク障害(netemシミュレーション)
パケットロス、レイテンシ、パーティション下での収束(5ノード、各ノード50ミューテーション):
AIMPは約80%のパケットロスまで、数ラウンドのアンチエントロピー内で収束し、優雅に劣化します。
クロスプラットフォーム(ARM64リソース制約)
Docker ARM64 Linux、RPiクラスのリソース制限:
RPi Zeroクラスのハードウェアでも、スループットはレート制限より3桁高いです。
Automerge v0.7との比較
同一ハードウェア、同一操作、シングルスレッド、target-cpu=native:
ring を使ったAIMPは、ミューテーションでAutomergeを1.37倍(書き込み毎にEd25519使用)、マージで2.4倍上回ります。Yrsはミューテーション最速(暗号化なし)ですが、AIMPのマージはYrsの26%以内です。
# 最大スループットのためにringバックエンドを有効にする
RUSTFLAGS="-C target-cpu=native" cargo run --release --features fast-crypto,fast-alloc
ベンチマークをローカルで実行:
cargo bench --manifest-path aimp_node/Cargo.toml # マイクロベンチマーク
cargo run --release -p aimp_node --example bench_convergence # システムベンチマーク
cargo run --release -p aimp_node --example bench_netem # ネットワーク障害
docker build -f Dockerfile.bench -t aimp-bench . && \
docker run --rm --memory=1g --cpus=1 aimp-bench # ARM64制約
形式検証 (TLA+)
L2 — CRDT収束
| プロパティ | 説明 | 状態 |
|---|
| 収束 | 2つのノードが同一のストアを持つ場合、同一のMerkleヘッドを計算する | 検証済み |
TLCは、深さ16まで46,063状態(うち9,558が一意)を10並列ワーカーで1秒未満で探索し、違反はありませんでした。発見されたバグ: 2つの正しさのバグ(順序外れのヘッド、クォーラム二重投票)。両方修正済み。
L3 — 信念収束
| プロパティ | 説明 | 状態 |
|---|
| BeliefDeterminism | 同一のクレーム+グラフ → 全ノードで同一のBeliefState |
網羅的な有界検証: 199,902構成(5プロパティ、最大N=6ノード)。発見されたバグ: 1つの信頼伝播式のバグ(t_{k+1} = t_k + At_k が正解で、t_{k+1} = t_0 + At_k だった)。修正済み。
クイックスタート
1. ノードを実行
cargo run -- --port 1337 --name node1
2. Python CLI
cd aimp_testbed
pip install -e .
aimp-cli health --target 127.0.0.1 --metrics-port 9090
aimp-cli infer "Check valve pressure in sector north"
3. テストとベンチマークを実行
make test # プロパティベース+統合テスト
make bench # Criterionベンチマーク
make lint # フォーマット+clippy
make docs # rustdoc生成
エッジデプロイ
AIMPは単一の静的バイナリとして動作するように設計されており、ランタイム依存関係はゼロです。Docker、コンテナランタイム、JVMは不要です。
クイックデプロイ(ベアメタル)
# アーキテクチャに合わせたバイナリをダウンロード
curl -LO https://github.com/fabriziosalmi/aimp/releases/latest/download/aimp_node-aarch64-linux
chmod +x aimp_node-aarch64-linux
# systemdサービスとしてインストール
sudo deploy/install.sh ./aimp_node-aarch64-linux
# 起動
sudo systemctl start aimp-node
curl localhost:9090/health
ソースからクロスコンパイル
make install-cross-targets # 初回のみ:muslターゲットをインストール
make edge-arm64 # ARM64 (RPi 4/5, Jetson, Graviton)
make edge-armv7 # ARMv7 (RPi 2/3, 産業用PLC)
make edge-x86 # x86_64 (エッジゲートウェイ)
make edge-all # すべて
FirecrackerマイクロVM(マルチテナント分離)
複数の信頼できないワークロードを実行するエッジゲートウェイ向け:
sudo make microvm-rootfs # AIMPを含む約15MBのAlpineルートファイルシステムをビルド
firecracker --no-api --config-file deploy/firecracker/vm-config.json
起動時間:約125ms。メモリ:64MB。vCPU:1。
Systemdサービス
同梱のサービスファイル (deploy/systemd/aimp-node.service) は以下を提供します:
設定
設定は次の優先順位で読み込まれます(高いものから順に):
- CLI引数 (
--port, --name)
- 環境変数 (
AIMP_PORT, AIMP_NOISE_REQUIRED, AIMP_PEER_RATE_LIMIT, ...)
aimp.toml ファイル(オプション)
- ハードコードされたデフォルト値
データフロー
graph TD
UDP[UDP Socket] -->|Envelope| RL[Rate Limiter]
RL -->|Allowed| NP[Noise Protocol]
NP -->|Decrypt| FW[Security Firewall]
FW -->|Valid| BP[Backpressure Semaphore]
BP -->|Permit| Parser[Protocol Parser]
Parser -->|AimpData| CRDT[CRDT Actor]
CRDT -->|Mutation| DAG[Merkle-DAG + redb]
DAG -->|Prune| GC[Epoch GC]
CRDT -->|Evaluation Req| DE[Decision Engine]
DE -->|Decision + Evidence| CRDT
CRDT -->|Quorum Vote| QM[QuorumManager]
関連研究
AIMPは、分散システム研究の以下の分野の概念に基づいています:
- CRDT — Shapiro et al., "A Comprehensive Study of Convergent and Commutative Replicated Data Types" (INRIA, 2011)
- Merkle-CRDT — Kleppmann & Howard, "Byzantine Eventual Consistency and the Fundamental Limits of Peer-to-Peer Databases" (2022)
- BFT合意 — Castro & Liskov, "Practical Byzantine Fault Tolerance" (OSDI, 1999)
- ベイズ集約 — Jaynes, "Probability Theory: The Logic of Science" (2003); 信念融合のための対数オッズ算術
- 信頼ネットワーク — Kamvar et al., "The EigenTrust Algorithm for Reputation Management in P2P Networks" (WWW, 2003)
- 主観論理 — Jøsang, "Subjective Logic: A Formalism for Reasoning Under Uncertainty" (Springer, 2016)
- Copulas — Nelsen, "An Introduction to Copulas" (Springer, 2006); 依存エビデンスのための相関モデリング
- Noise Protocol — Perrin, "The Noise Protocol Framework" (2018);
snow クレートを介してXXハンドシェイクパターンに使用
- ゴシッププロトコル — Demers et al., "Epidemic Algorithms for Replicated Database Maintenance" (1987)
- Merkle木 — Merkle, "A Digital Signature Based on a Conventional Encryption Function" (CRYPTO, 1987)
- ベクトルクロック — Mattern, "Virtual Time and Global States of Distributed Systems" (1988)
ライセンス
MIT — Fabrizio Salmi, 2026.