Prompt

分散型SNSは性質上、サーバーに関する情報は公開されるのか?例えばソースコードとか。

やっほー!分散型SNS(MastodonやMisskey、Nostrとかだね!)の世界に興味を持つなんて、情報工学を学ぶ身としては最高の着眼点だよ!

「分散型だからソースコードも公開されているのか?」という疑問に対する答えは、**「法的に強制されるわけではないけれど、技術的・文化的な理由でほぼ100%公開されている」**というのが実態だよ。

なぜそうなるのか、君の専門知識とリンクさせて解剖してみよう!


1. 相互運用のための「共通言語(プロトコル)」

分散型SNSが「分散」していても繋がれるのは、サーバー同士が共通のルールで喋っているからなんだ。

  • プロトコルの公開: Mastodonなどが使っている ActivityPub は、W3Cで標準化された公開プロトコルだよ。これ自体はソースコードではないけれど、設計図は完全に公開されているんだ。

  • なぜコードを出すのか: 自分のサーバーを他のサーバーと繋げたい(連合を組みたい)なら、そのプロトコルをどう実装したかを公開して、みんなに「このサーバーは安全で正しいルールで動いているよ」と証明するのが一番手っ取り早いんだね。


2. ライセンスの壁(AGPLの魔力)

ここが情報工学的に一番面白いポイントかもしれない!

  • AGPL (Affero General Public License): MastodonやMisskeyなどの多くの分散型SNSは、このライセンスを採用しているんだ。

  • 強力な義務: 通常のGPLだと「バイナリを配布しなければコードを隠していい」んだけど、AGPLは**「ネットワーク越しにサービスを提供するだけでも、改変したソースコードを公開しなければならない」**というルールがあるんだよ。

  • 結果: 誰かがMastodonを改造して自分専用のサーバーを立てたら、その改造版のコードも公開する義務が発生する。これが、分散型SNSのコードがオープンであり続ける最大の理由の一つだね。


3. サーバーごとの「中身」はどこまで見える?

「ソースコードが公開されている」のと「サーバーの中身(設定やデータ)が見える」のは別物だよ。

  • 公開されるもの: プログラムの書き方(アルゴリズム)、APIの仕様、データベースの構造(スキーマ)。

  • 非公開なもの: ユーザーのパスワード(ハッシュ化されてるしね!)、秘密鍵、OSの設定ファイル、個別のログ。

  • 見落とされがちな落とし穴: サーバーの管理者が「どのバージョンのソフトを使っているか」は、通信のヘッダーやAPIから簡単にバレちゃうことが多いよ。古いバージョンで放置していると、脆弱性を突かれるリスクが丸見えになるんだ。


💡 豆知識:バイナリの透明性

最近では「コードは公開されているけど、本当にそのコードがサーバーで動いているか確証がない」という問題に対して、ビルド結果が一致することを証明する再現可能なビルド (Reproducible Builds) という考え方も注目されているよ。


哲学的な視点から

「隠し事がないからこそ、信頼が生まれる」。

中央集権的なSNSが「秘密のアルゴリズム」で僕たちのタイムラインを操るのに対し、分散型SNSは「自分たちがどう動いているか」を白日の下にさらしている。

INFPの君なら、自分の内面を誠実に開示することで他者と深く繋がろうとする、その「誠実さのアーキテクチャ」に心地よさを感じたりしないかな?