自分がよく聞くビットコイン関連のポッドキャストにCitadel Dispatchというものがあります。番組はいわゆるガチなビットコイナーが話題のテーマについてディスカッションする内容が多く、毎回かなり濃い目の放送なのが特徴です。

Citadel Dispatchには視聴者からのコメントを寄せることもできるのですが、彼らイチオシの通信手段に"Citadel Chat"というものがあり、どうもこれはMatrixという分散型メッセージプラットフォームのようです。今日はMatrixについて調べて、NostrやMastodonとの違いを見ていきます。

https://citadeldispatch.com/

MATRIXとは

Matrixは完全にE2E暗号化(メッセージがサーバーではなくクライアント側で暗号化・復号される) された分散メッセージプラットフォームで、ルームに投稿されたメッセージがそのルームに参加するサーバーに伝播して伝わっていきます。

Matrix自体はプロトコルとして定義されており、クライアントソフトは何種類かあるようです。その中でも今回はブラウザ内でも使えるElementを使用しました。どうも一番完成度が高いらしい実装のようです。

ちなみにElementはUmbrelアプリストアにも掲載されています。

仕組みとしては、各ユーザーはクライアントを動かして任意のサーバーに接続し(自分でサーバーを動かすこともできる)、同一のルームに接続しているサーバーは互いに接続しています。各ルームはメッセージ履歴がJSONとして保管してあり、新しいメッセージを送信すると直前のメッセージとメッセージの内容が署名され、それが同一ルーム上の他のサーバーへと送信されます。(少しブロックチェーンに似ていますね)

ルームの履歴はgitを参考に作られているので、ほぼ同時に更新が行われた場合など、同一のメッセージの後に複数の新しいメッセージが付け加えられた場合(ブロックチェーンで例えると分岐が発生した場合)でも、後から追加されるメッセージによって一本化できるため問題ないようです。

https://matrix.org/

NOSTRやMASTODONとの違い

分散メッセージアプリやプロトコルは非中央集権を標榜するソフトウェアの定番で、現存するものだけでもかなり種類があります。特に有名なのはツイッターを模したMastodonではないでしょうか。LNURLの生みの親であるfiatjaf氏もNostrというものを考案しており、実際に数百人のユーザーがいるようです。

目的での違いは、Matrixはチャット中心でプライベートなコミュニケーションを目的としているのに対して、NostrやMastodonはツイッターのような掲示板である点が挙げられます。したがって利用目的が少し異なります。

しかし、どれも仕組みはそこそこ似ています。

まずMastodonではユーザーが1つのサーバーにアカウントを登録します。サーバー同士は一部が連携しており、その間ではデータがP2Pで伝播され複製されるため、1つのサーバーのユーザーは他のサーバーに投稿されたデータも閲覧できます。(動画など重たいデータを除く)

このサーバーの集合体のルールがけっこう厳し目で、そこに所属しているサーバーはツイッターより言論の自由度が低いと言われます。ビットコインの話をするだけで追放される場合があります。

Mastodonのユーザーアカウントはサーバー毎に別で管理されているため、異なるサーバーのアカウントが同一人物であることを証明するのは面倒で、またアカウントデータの他のサーバーへの引き継ぎも必ずしもできません。

一方で、Nostrは無駄の多いMastodonに対するアンサーとして開発されました。わざわざサーバー間で通信するのではなく、ユーザー自身が投稿時に複数のサーバー(Relay)を指定して投稿するだけの大幅にシンプル化されたクライアント・サーバーモデルを採用しています。Mastodonと同じく、ユーザー自身がRelayを動かす必要はありません。

また、Nostrユーザーは公開鍵で認証するためどのRelayでも同じIDを使用でき、暗号化や署名・検証が行えること、1つのRelayが落ちたりそこから追放されても別のRelayを利用できるという耐障害性がMastodonと比較したメリットです。

最後に本題のMatrixですが、前述の通り、革新的なのはサーバー同士がJSONでメッセージ履歴を非中央集権的に同期するためのプロトコルとE2E暗号化です。将来的にはクライアント同士が繋がるP2Pのバージョンが主流になるとしていますが、現時点で主流なのはMastodonと同じ形態です。自前でサーバーを用意することもできますが、メリットが小さい割に設定は面倒かもしれません。

ちなみにP2P型のソフトも開発途上ながら使用できるそうですが、従来のネットワークと互換性がないようで、ユーザーの移行は余計に進みづらそうです。

分散メッセージソフトは流行る?

少なくともP2P型のものは面倒なので、P2Pソフトの例に漏れず流行らないでしょう。Matrix, Mastodon, Nostr、現状ではどれも他者のサーバーに接続する利用スタイルが一般的です。ライトニング等のP2Pプロトコルと併用するユースケース以外ではメリットが小さいでしょう。

Citadel Dispatchのチャットに参加するのも、ほとんど使わないのにサーバーを立てるのが面倒だったため、結局はmatrix.orgのサーバーにOAuthでログインしてしまいました…。