自分がよく聞くビットコイン関連のポッドキャストにCitadel Dispatchというものがあります。番組はいわゆるガチなビットコイナーが話題のテーマについてディスカッションする内容が多く、毎回かなり濃い目の放送なのが特徴です。
Citadel Dispatchには視聴者からのコメントを寄せることもできるのですが、彼らイチオシの通信手段に"Citadel Chat"というものがあり、どうもこれはMatrixという分散型メッセージプラットフォームのようです。今日はMatrixについて調べて、NostrやMastodonとの違いを見ていきます。
MATRIXとは
Matrixは完全にE2E暗号化(メッセージがサーバーではなくクライアント側で暗号化・復号される) された分散メッセージプラットフォームで、ルームに投稿されたメッセージがそのルームに参加するサーバーに伝播して伝わっていきます。
Matrix自体はプロトコルとして定義されており、クライアントソフトは何種類かあるようです。その中でも今回はブラウザ内でも使えるElementを使用しました。どうも一番完成度が高いらしい実装のようです。
ちなみにElementはUmbrelアプリストアにも掲載されています。
仕組みとしては、各ユーザーはクライアントを動かして任意のサーバーに接続し(自分でサーバーを動かすこともできる)、同一のルームに接続しているサーバーは互いに接続しています。各ルームはメッセージ履歴がJSONとして保管してあり、新しいメッセージを送信すると直前のメッセージとメッセージの内容が署名され、それが同一ルーム上の他のサーバーへと送信されます。(少しブロックチェーンに似ていますね)
ルームの履歴はgitを参考に作られているので、ほぼ同時に更新が行われた場合など、同一のメッセージの後に複数の新しいメッセージが付け加えられた場合(ブロックチェーンで例えると分岐が発生した場合)でも、後から追加されるメッセージによって一本化できるため問題ないようです。
NOSTRやMASTODONとの違い
分散メッセージアプリやプロトコルは非中央集権を標榜するソフトウェアの定番で、現存するものだけでもかなり種類があります。特に有名なのはツイッターを模したMastodonではないでしょうか。LNURLの生みの親であるfiatjaf氏もNostrというものを考案しており、実際に数百人のユーザーがいるようです。