MemChain と暗号化ストレージ
このページでは「MemChain と暗号化ストレージ」が AeroNyx のオープンプライバシープロトコルで果たす役割、実装範囲、プライバシー不変条件、開発とノード運用上の注意点を日本語で説明します。
「MemChain と暗号化ストレージ」は AeroNyx ドキュメントの正式な日本語ページです。AeroNyx はプロトコル層とプロダクト体験を分離し、プロトコルは停止しにくい公開能力を、プロダクトは App、Nodeboard、暗号化チャット、暗号化ストレージ、ノード運用体験を担います。
概要
このページでは「MemChain と暗号化ストレージ」が AeroNyx のオープンプライバシープロトコルで果たす役割、実装範囲、プライバシー不変条件、開発とノード運用上の注意点を日本語で説明します。
AeroNyx アーキテクチャでの位置づけ
このテーマは Nodeboard に属します。AeroNyx を単一の中央集権サービスとしてではなく、クライアント、分散型プライバシーノード、バックエンド調整器、Nodeboard が共有するオープンなプライバシープロトコル能力として理解することが重要です。
現在の実装ポイント
- ユーザー内容に関わる機能は、端末間暗号化または暗号化オブジェクトとして扱います。
- 分散型プライバシーノードはヘルス、容量、接続、経路証明、集計統計を報告できますが、メッセージ本文、アクセス資格情報、ユーザー秘密を読むことはできません。
- Nodeboard は運用可観測性のために、ノード状態、peer discovery、再起動復旧、容量、パケット/トラフィック、プロトコル状態を表示します。
- 現在のバックエンドは調整、順序付け、集計、公開ドキュメント API を担当し、将来は一部を Rust プロトコル層へ移行できます。
プライバシー境界
AeroNyx の中心は blind-node invariant です。リレーノードと MemChain 調整器は、暗号文、タイムスタンプ、証明、集計ヘルス信号、限定されたルーティングメタデータだけを扱います。平文、DNS 内容、宛先、通信関係を知るべきではありません。
ノード運用者が見るべき項目
運用者は帯域、接続上限、IP プール、conntrack、ファイルディスクリプタ、packet drops、pps、bps、peer store、heartbeat の新鮮度、restart recovery を確認します。運用 UI は障害解析を助けるべきですが、ユーザー内容や識別可能なデータを表示してはいけません。
開発者とプロダクト統合
クライアント、App、AI agent、第三者サービスは、AeroNyx の暗号化エンベロープ、署名、ブラインドリレー、匿名資格情報、ヘルスチェック規約を再利用するべきです。新しい API は公開メタデータと E2E payload 内に残すべきフィールドを明確に分ける必要があります。
現在の状態
このページは、AeroNyx が現在公開できるプロトコルとプロダクト設計の境界を説明します。multi-hop routing、blind-signed vouchers、encrypted media blob、MemChain 同期、ノード発見の更新は、同じ translation_key の下で継続的に更新します。
<!-- memchain-external-witness-v1:start -->コミットメント台帳とロールバック保護
MemChain は、暗号化レコードのための追記専用コミットメント台帳を維持します。ブロックには整合性コミットメントと順序メタデータだけが入り、記憶の平文や復号鍵は入りません。これは改ざんとロールバックを検出する仕組みであり、公開ブロックチェーン、分散合意、ファイナリティ、トークン実行を意味しません。
コーディネータは UDP、TUN、公開 API を開く前に、耐久性設定、保存済みチェーン全体、署名付きローカル tip anchor、保存済み checkpoint evidence、運用者が pin した外部ノードの署名 checkpoint を順番に検証します。
| 検証結果 | 起動判断 |
|---|---|
| 一致 | 起動を継続 |
| リモートが古い | 起動を継続 |
| リモートが新しい | ローカル rollback の可能性があるため停止 |
| 履歴が分岐 | 署名履歴が競合するため停止 |
| 署名証拠なし | strict 無効時だけ縮退継続。strict 有効時は停止 |
Witness は運用者が明示的に固定した Ed25519 ID に限られます。permissionless peer が peer store に現れただけで起動権限を得ることはありません。
検証済みの本番展開 — 2026年7月14日
1台の本番 coordinator に、運用者が固定した3つの witness ID が設定されています。独立運用・監査済みの2台の follower が互換 checkpoint service を稼働し、それぞれ同じ33 block・8,339 commitment の履歴を検証して保存しました。Coordinator は両 follower が個別に署名した converged 応答を受理した後、commitment_witness_startup_required = true を有効にしました。
検証済み再起動では startup guard が configured=3、eligible=3、attempted=3、verified=2、converged=2 を記録し、UDP と TUN listener は検査通過後にだけ開かれました。これは運用者が固定した node による rollback evidence であり、consensus、quorum、公開チェーンの finality、token execution ではありません。
heartbeat は witness scope、設定数、strict 要件だけを報告し、ID、endpoint、hash、署名、暗号化内容、所有者、ソーシャル関係は報告しません。
<!-- witness-threshold-enforced-v1:start -->2-of-3 起動しきい値の強制 — 2026年7月14日
本番 coordinator は commitment_witness_min_verified = 2 と commitment_witness_startup_required = true を同時に設定しています。異なる固定 witness から有効な署名証拠が2件未満の場合、起動を拒否します。有効応答が0件なら signed_checkpoint_unavailable、1件なら signed_checkpoint_threshold_unmet です。直近の本番再起動では、UDP、TUN、公開 API listener を開く前に、設定済み3 witness のうち2件を検証しました。
これは運用者が定める起動しきい値であり、ネットワーク consensus、quorum、finality、leader election、fork choice ではありません。Rust heartbeat は startup_minimum_verified を含む集約済みの方針と結果だけを報告し、witness ID、endpoint、checkpoint hash、署名は公開しません。
関連プロトコル仕様
<!-- signed-commitment-ledger-related-v1:end --> <!-- memchain-model-provider-boundary-v1:start -->Bring-your-own brain とモデルプロバイダー境界
MemChain はノードブラインドな保存と任意の認知処理を分離します。運用者が SuperNode cognitive worker を有効にしても、保存ノードや relay ノードにメモリを読む権限が自動的に付与されることはありません。
各コンポーネントが見られる情報
- ノードブラインドな保存/relay ノードが扱うのは暗号文、blind index、制限されたルーティングメタデータ、集約ヘルス信号だけで、既定では平文メモリを受け取りません。
- 有効化された SuperNode cognitive worker は、設定された
structured、summary、fullの privacy level が許可するタスク payload だけを受け取ります。 - 外部モデルプロバイダーは送信された prompt を読めます。
fullは、ユーザーが明示的に同意し、選択したプロバイダーを信頼する場合にのみ使用してください。 - ローカルの OpenAI 互換モデルなら推論を運用者の管理境界内に保てますが、その worker は信頼された処理コンポーネントであり、ブラインド保存ノードではありません。
ランタイム分離
- 成功レスポンスは JSON 解析前に 8 MiB、エラー診断本文は 64 KiB に制限されます。
- 通信、API、解析、空レスポンスの失敗はプロバイダーを永久停止せず、単調時計による 30 秒の cooldown に入れます。
- HTTP 429 の
Retry-Afterは 1-300 秒の範囲で適用され、指定がなければ 30 秒です。 - router は別の健全なプロバイダーへ切り替え、cooldown 終了後に失敗したプロバイダーを自動的に再評価します。定期ジョブは不要です。
<!-- memchain-model-provider-boundary-v1:end -->これらの上限はノードの可用性を守るもので、外部推論を E2E 暗号化するものではありません。外部プロバイダーは独立した明示的な信頼判断です。