
2026/01/20 8:59
レティキュラム:安全かつ匿名性を備えたメッシュ・ネットワーキングスタック
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
Summary
Reticulumは純粋なPythonで実装されたネットワーキングスタックで、IPやそれ以上のレイヤに依存せず動作します。これにより、IPを含むあらゆるキャリア上でトンネル化が可能です。エンドツーエンド暗号化、イニシエータ匿名性(送信元アドレスなし)、すべてのトラフィックに対する前方秘匿性、および偽造不可能な配信確認を提供します。スタック全体はPython 3が動作できる任意のシステム上でユーザーランドで実行され、カーネルモジュールは不要です。
暗号学的プリミティブには、512ビットCurve25519アイデンティティ、256ビットEd25519署名、256ビットX25519 ECDH、HKDF、SHA‑256/512ハッシュ、AES‑256-CBC(PKCS7パディング付きCBCモード)、HMAC‑SHA256認証、およびFernetスタイルのトークンが含まれます。
サポートされるインターフェースは広範で、Ethernet、RNode経由のLoRa、パケットラジオTNC、KISSモデム、シリアルポート、IP上のTCP/UDP、stdio/pipes、およびカスタムハードウェアモジュールがあります。性能は約150 bits/sから500 Mbps(最大1 Gbpsを目標)までで、低帯域幅リンクに最適化されつつスケーラブルです。
主なユーティリティは以下の通りです:
– デーモンrnsd
,rnstatus
– ステータスとパス探索rnpath
– リンクプロービングrnprobe
– ファイル転送rncp
– アイデンティティ管理rnid
– 遠隔コマンド実行rnx
– 遠隔シェルrnsh
インストールは
pip install rns で行い、純粋Pythonビルドを望む場合はオプションの rnspure を使用します。必要なシステムパッケージは PyCA/cryptography と pyserial です。
接続ブートストラップは
directory.rns.recipes や rmap.world などのコミュニティディレクトリを利用します。アムステルダムテストネットは2026年第1四半期に廃止されるため、ユーザーは代替エントリポイントを設定する必要があります。参照実装はMark Qvist(アイデンティティ <bc7291552be7a58f361522990465165c>)によってReticulum Licenseの下で維持されています。プロトコル定義とマニュアルが権威ある情報源です。
開発資金はMonero、Bitcoin、Ethereum、Liberapay、またはKo‑Fiを通じて提供できます。
プロジェクトは複数のオープンソースライブラリ(例:PyCA/cryptography, PySerial)に依存しており、まだ外部セキュリティ監査を受けていません。重要なアプリケーションで使用する際は注意が必要です。
本文
Reticulum – Public Mirror
すべての開発は別途行われています。
基盤となる哲学と目標を理解するには、Zen of Reticulum をご覧ください。
何が Reticulum なのか?
- 暗号化ベースのネットワーキングスタック
手に入れやすいハードウェアでローカルおよび広域ネットワークを構築できます。 - 高遅延・極端に低帯域幅でも稼働します。
- 次の機能を実現します:
- エンドツーエンド暗号化
- 発信者匿名性
- 暗号学的裏付け付きマルチホップトランスポートの自動設定
- 効率的なアドレッシング
- 再生成不可能な配信確認
ビジョン
誰もが自分自身でネットワークオペレーターになり、広域を独立した相互接続可能な自治ネットワークで覆うこと。
キルスイッチ・監視・検閲・中央管理のない自由な環境です。
Reticulum は「1 つのネットワーク」ではなく、「数千ものネットワークを構築するためのツール」です。
技術的ハイライト
- IP や上位層に依存しない(ただし IP を下位キャリアとして利用可)
- ユーザランドのみで動作;Python 3 だけあれば OK
- カーネルモジュールやドライバは不要
注目機能
| 機能 | 説明 |
|---|---|
| グローバルに一意なアドレッシング・識別子(協調なし) | |
| 異種キャリア上での完全自動設定マルチホップルーティング | |
| 異種トポロジーでの柔軟スケーラビリティ |
データ転送
- 物理媒体は LoRa、パケットラジオ、シリアル、Wi‑Fi、Ethernet、フリースペース光学など多様
- 低帯域幅ネットワークと高帯域幅ネットワークが共存可能
- 発信者匿名性:パケットに送信元アドレスは含まれない
セキュリティ
| プライミティブ | 詳細 |
|---|---|
| アイデンティティキー | 512‑bit Curve25519 キーセット |
| 署名 | 256‑bit Ed25519 |
| ECDH 交換 | 256‑bit X25519 |
| 鍵導出 | HKDF |
| トークン暗号化 | AES‑256 CBC、PKCS7 パディング;HMAC‑SHA256 認証;IV は で生成 |
配信
- 再生成不可能なパケット配信確認
- 要求/応答メカニズム
- 効率的リンク確立:暗号化リンクを設定するのに 3 パケット(297 bytes)
- ハートビートコスト ≈ 0.44 bits/s
API
- ソケットよりもシンプルだが強力
- 任意サイズデータを順序付け、圧縮、チェックサム、進捗報告で扱う
- 信頼性の高い連続配信を実現するチャネルとバッファ機構
参考実装
このリポジトリ内の Python コードが Reticulum の参照実装です。
プロトコルを権威ある形で定義しているため、完全に互換性を持つ実装はすべて Reticulum とみなされます。
ライセンス:Reticulum License(2016 年以降パブリックドメイン)
アプリケーションと例
– Reticulum 上のリモートシェルrnsh- LXMF – Reticulum 上で動く遅延許容型メッセージ転送プロトコル
- LXST – リアルタイム音声・信号輸送;
を含むrnphone - Nomad Network – オフグリッド、暗号化されたメッシュプラットフォーム
- Sideband – ファイル転送・音声通話・テレメトリー・マッピング用 GUI アプリ(Windows/macOS/Linux/Android)
- MeshChat – LXMF クライアントでウェブ UI、画像/音声メッセージング、内蔵ブラウザ付き
サポートされる媒体とインターフェース
| インターフェース種別 | 対応デバイス |
|---|---|
| Ethernet | 何でも |
| LoRa | RNode |
| パケットラジオ TNC(AX.25 オプション) | 何でも |
| KISS モデム | 何でも |
| シリアルポート | 何でも |
| IP 上の TCP/UDP | 何でも |
| stdio/pipes 経由の外部プログラム | 何でも |
| カスタムハードウェア via stdio/pipes | 何でも |
カスタムインターフェースは実装が容易で、プルリクエストとして受け付けられます。
パフォーマンス
- ターゲット帯域幅:250 bits/s → 1 Gbps(現在の利用可能範囲 ≈ 150 bits/s – 500 Mbps)
- 低帯域幅操作を優先;将来のアップグレードで高速化が可能
現状
- コアプロトコル機能はすべて実装済みかつ動作確認済み
- API とワイヤフォーマットは安定;追加は実際の利用に応じて進めます
依存関係(デフォルト rns
パッケージ)
rnsPyCA/cryptographypyserial
これらがない環境では、外部依存なしの同一内容を持つ
rnspure パッケージを利用してください。注意:
rnspure を使用する場合は Cryptographic Primitives セクションをよく読んでください。
接続初期化
Reticulum は公開インターフェースを自動検出します。
最初の接続には、マニュアルの Bootstrapping Connectivity セクションとコミュニティディレクトリ(例:
directory.rns.recipes, rmap.world)を参照してください。
歴史的に開発者向けだったテストネット(アムステルダムエントリポイント含む)は 2026 年 Q1 に停止予定。代替案を設定してください。
インストールと使用
# pip でインストール pip install rns # pip がブロックされている場合はシステムパッケージを有効化 # ~/.config/pip/pip.conf [global] break-system-packages = true # もしくは isolation 用に pipx を使用 pipx install rns
初回実行時にデフォルト設定ファイルが作成されます。
pip が古い場合は pip install --upgrade pip で更新してください。
パケットラジオ、LoRa、シリアルポート、IP リンクでの詳細例はマニュアルの Supported Interfaces セクションを参照。
同梱ユーティリティ
| ユーティリティ | 用途 |
|---|---|
| システムデーモン(常時稼働サービス) |
| インターフェース状態表示 |
| パステーブル検索/管理 |
| 接続診断 |
| ファイル転送プログラム |
| アイデンティティ管理・ファイル暗号化/復号 |
| リモートコマンド実行 |
| フル機能リモートシェル |
すべて低帯域幅リンク(LoRa、パケットラジオ)で信頼性を保ちます。
暗号学的プリミティブ
- アイデンティティキー:512‑bit Curve25519
- 署名:256‑bit Ed25519
- ECDH:256‑bit X25519
- 鍵導出:HKDF
- トークン:AES‑256 CBC、PKCS7 パディング;HMAC‑SHA256;IV は
で生成os.urandom() - ハッシュ:SHA‑256, SHA‑512
OpenSSL(PyCA/cryptography 経由)がデフォルトで X25519、Ed25519、AES‑256‑CBC を提供。
OpenSSL が無い場合は内部に純粋 Python 実装が備わっています。
サポートと寄付
| チャンネル | 住所 |
|---|---|
| Monero | 84FpY1QbxHcgdseePYNmhTHcrgMX4nFfBYtz2GKYToqHVVhJp8Eaw1Z1EedRnKD19b3B8NiLCGVxzKV17UMmmeEsCrPyA5w |
| Bitcoin | bc1pgqgu8h8xvj4jtafslq396v7ju7hkgymyrzyqft4llfslz5vp99psqfk3a6 |
| Ethereum | 0x91C421DdfB8a30a49A71d63447ddb54cEBe3465E |
| Liberapay | https://liberapay.com/Reticulum/ |
| Ko‑Fi | https://ko-fi.com/markqvist |
謝辞
Reticulum は多くのオープンソースプロジェクトに基づいています:
- PyCA/cryptography(BSD)
- Brian Warner の Pure‑25519(MIT)
- Thom Dixon の Pysha2(MIT)
- Python AES 実装
- Curve25519.py(パブリックドメイン)
- I2Plib, PySerial, Configobj, ifaddr, Umsgpack.py など
すべての貢献者とサポーターに感謝します。