Bitsocial と Reticulum
Reticulum は、LoRa 無線、パケット無線、シリアルリンク、Wi-Fi、Ethernet、TCP、UDP、I2P など、利用できるあらゆる伝送媒体の上にネットワークを構築するための、暗号技術に基づくネットワークスタックです。Bitsocial と並べて語られるのは、どちらも間に入る企業を取り除くからです。ただし両者はそれを異なる層で行うため、競合ではなく補完し合う関係にあります。
異なる層
Reticulum はネットワーク層を置き換えます。IP アドレスも DNS も認証局もアカウントも使わずに、暗号化されたルーティング可能なエンドポイントをアプリケーションに提供し、MTU が 500 バイトで毎秒 5 ビットしか出ないような低速なリンクでも動き続けるよう設計されています。投稿、コミュニティ、モデレーションは定義しておらず、それらはその上に構築されるアプリケーションが追加します。
Bitsocial はソーシャルプロトコルです。ブラウザのタブからの利用も含め、通常のインターネット接続上の IPFS/libp2p スタックで動作し、コミュニティ、パブリケーション、コミュニティごとのスパム対策チャレンジを定義します。ピアツーピアプロトコル と ブラウザ ピアツーピア を参照してください。
Bitsocial のスタックに当てはめると、Reticulum が収まるのはおおよそ libp2p の位置であり、Bitsocial プロトコルの位置ではありません。
Reticulum の仕組み
- アイデンティティ。 Reticulum のアイデンティティは 512 ビットの鍵セットで、暗号化用の X25519 鍵と署名用の Ed25519 鍵から成ります。
- デスティネーション。 アプリケーションはデスティネーションを作成し、各デスティネーションは 16 バイトに切り詰めた SHA-256 ハッシュでアドレス指定されます。パケットには送信元アドレスが含まれません。
- アナウンス。 デスティネーションは、アナウンスを送信することで到達可能になります。トランスポートノードはアナウンスを転送し、送信元へ戻る次のホップを記憶するため、ネットワーク全体の地図を持つノードは必要ありません。
- 暗号化。 トラフィックは既定で暗号化され、一時鍵と前方秘匿性が用いられます。
- LXMF。 LXMF メッセージング層は、署名付きメッセージ、直接配送、そしてオフラインの受信者に向けたプロパゲーションノード経由の蓄積転送を追加します。
この方式で作られたアプリケーションには、メッセージング用の Sideband や、メッセージングとホスト型ページのための Nomad Network があります。Reticulum のマニュアルには プログラムの一覧 が掲載されています。
比較
| 論点 | Reticulum | Bitsocial |
|---|---|---|
| 何であるか | ネットワークスタック | ピアツーピアのソーシャルプロトコルとアプリ |
| 想定する環境 | 低速な無線リンクまで含む、あらゆる伝送媒体 | ブラウザタブを含むインターネット接続 |
| アイデンティティ | X25519 と Ed25519 の鍵セット | 利用者とコミュニティの Ed25519 鍵ペア |
| アドレス | アイデンティティとアプリケーション名のハッシュ | コミュニティの公開鍵のハッシュ |
| ピアの発見 | トランスポートノードが広めるアナウンス | HTTP ルーターがプロバイダーピアを返す |
| ソーシャル機能 | Nomad Network などのアプリケーションが追加 | コミュニティ、投稿、返信、モデレーションをプロトコルが定義 |
| スパム対策 | インターフェースごとのアナウンスのレート制限、受信者やノードが要求できる LXMF のプルーフオブワークスタンプ | 投稿が受理される前に課される、各コミュニティのチャレンジ |
| オフライン配送 | LXMF のプロパゲーションノードがメッセージを蓄積転送 | ピアがコミュニティの最新状態を配信し続けるが、公開にはそのコミュニティのノードがオンラインである必要がある |
Bitsocial は Reticulum 上で動作できるか?
現時点ではできません。Bitsocial には Reticulum 用のトランスポートがなく、そのデータモデルはインターネット並みの帯域幅を前提としています。クライアントはコミュニティのメタデータや投稿のコンテンツをピアから取得し、pubsub メッセージをやり取りしますが、これは 500 バイトのパケットを前提とし、スループットが毎秒数ビットから数キロビットで測られるようなリンクにはあまり適しません。
現実的な道筋はもっと限られています。インターネットから切り離されているあいだはローカルのメッシュ上で動作し、インターネットにアクセスできるピアやゲートウェイに到達できるようになったら、より広い Bitsocial ネットワークと同期するクライアントです。これはプロトコルの変更ではなく、新しいクライアントとブリッジを作ることになり、現在のロードマップには含まれていません。
開発者向け
Reticulum は Reticulum ライセンス の下で公開されています。MIT 風の条項に 2 つの制限を加えたものです。このソフトウェアは、人に危害を加えるよう設計されたシステムや、AI や機械学習の学習用データセットの作成に使用してはなりません。Reticulum のコードを Bitsocial のアプリに同梱する前に、ライセンスを読んでください。
リファレンス実装は Python で書かれています。Reticulum のメンテナーは、Reticulum と LXMF の非公式な移植のいくつかは機械生成されたもので、メンテナーが無効とみなすライセンス上の主張を伴っていると警告しています。そのため、リファレンス実装かマニュアルに掲載されたプログラムを優先してください。