テクノロジー

分散型SNS, Fediverse, ActivityPub, Webfingerについて調べてみた。

こんにちは。竹沢です。今年に入って、X (Twitter)のサービス変更をはじめとして、MetaのThreadsの開始などSNS周りでのニュースがよく流れてきます。X (Twitter)を使い始めて14年くらい経ちますが、今年は特にニュースが多い印象を受けます。

現在、特に私が興味があるのは分散型SNSです。しかし、単語として何となく聞いたことはあるものの定義や仕組みについてよく知りませんでした。そこで、Fediverseなどの分散型SNSに関連した単語について調べてみました。

分散型SNSとは?

英語版Wikipedia1)の説明を引用すると以下です。

A distributed social network or federated social network is an Internet social networking service that is decentralized and distributed across distinct service providers (similar to email, but for social networks), such as the Fediverse or the IndieWeb.

https://en.wikipedia.org/wiki/Distributed_social_network

そのまま訳すと、分散型SNSとは、異なるサービス提供者にdecentralized( = 分権化)されていて、distributed( = 分散化)されたSNSですね。分権と分散って何が違うの?って思ったので調べてみると、こちらの資料2)に分かりやすくまとまっていました。

分散化: 中央のサーバーではなく、各自が用意したサーバーにSNSソフトを入れられる

分権化: オープンソースで公開されているソフトが多いので理論上は自分で設置してSNSのルールは自分で決められる

https://www.slideshare.net/masatoshiyokota/sns-15

そしてもう1つ同じ資料に書かれていたのが連合化です。

連合化: 単にローカルなサーバーにインストールできるだけでなく、複数のサーバーが同じSMS(またはプロトコル)を使うことで、まとめて一つの大きなSNSのように振る舞う

https://www.slideshare.net/masatoshiyokota/sns-15

ただ異なるサービス提供者に分散化/分権化されているだけではなくて、サービス同士が相互に接続できて一つのSNSみたいに振る舞えることも特徴なようです。

歴史

詳しくは先ほど参照した資料2)に載っていますが、私が読んで気になった部分を残しておきます。

2003年~ WinnyとSNS存在以前の「分散SNS」

https://www.slideshare.net/masatoshiyokota/sns-15

この時代はP2Pなので、「分散型SNS」とはまた違いますよね。連合化はしていない?ですし。

2007年~ 異なるSNSを結びつける、オープンな規格の登場

https://www.slideshare.net/masatoshiyokota/sns-15

Twitterのサービス開始が2006年なので、そのすぐ1年後には複数のサービスを繋ぐオープンプロトコルが出てきてたんですね。

2010年~ 広がる分散SNS

https://www.slideshare.net/masatoshiyokota/sns-15

全く追えてなかったですが、分散型SNSも出ていたんですね。IS(イスラム国)でも分散型SNSが使われていたなんて初めて知りました。

主なサービス

個人的に聞いたことがあるのはMastodonやMisskeyあたりですが、他にも多くのサービスがある3)ようです。

Fediverse

Fediverseは↑の分散型SNS同士が相互接続された巨大なネットワークのことです。federation( = 連合 ) と universe( = 宇宙 ) からなる造語です。こちらの動画4)がわかりやすかったです。

ActivityPub

ActivityPubは分散型SNS同士が相互通信する時に使われるプロトコルの1つです。プロトコル自体は他にもOStatus、Matrixなどあるようです。

Mastodon、Misskey、GNU SocialなどがActivityPubをサポートしているようですね。MetaのThreadsもサポートする予定があるみたい5)です。

とりあえずドキュメント6)の概要を読んでみました。

  • ActivityPubではユーザーはアクターとして表現される
    • Actorはinbox(世界中からメッセージを受け取る)とoutbox(世界中にメッセージを送る)を持つ
  • メッセージを送る
    • 自分のoutboxにPOSTリクエスト
    • 送りたい人にinboxにPOSTリクエスト
  • メッセージを読む
    • 自分のinboxにGETリクエスト
    • メッセージを読みたい人のoutboxにPOSTリクエスト

自分の理解が正しければ、これってメールの仕組みに少し似ているのでは?と思いました。

また、フォロワーに対してその全員のinboxにPOSTするのは大変だな?と思ったのですが、Shared Inboxという仕組みで、同じサーバー(インスタンス)のフォロワーに対しては1回で済むらしい7)です。

Webfinger

WebfingerはURIで識別される人やエンティティに関する情報を返すためのプロトコル8)です。

ActivityPubでいうと、例えば「相手のinboxってどこにあるの?」みたいなのを調べたりするときに使います。

例として、Mastdonのwebfingerのドキュメント9)を読んでみます。

https://mastodon.social/.well-known/webfinger?resource=acct:gargron@mastodon.social にアクセスするとレスポンスの中に

{
  ...
  "links": [
    {
      "rel": "self",
      "type": "application/activity+json",
      "href": "https://mastodon.social/users/Gargron"
    }
  ],
  ...
}

があって https://mastodon.social/users/Gargron.json にアクセスすると

{
  ...
    "inbox": "https://mastodon.social/users/Gargron/inbox",
    "outbox": "https://mastodon.social/users/Gargron/outbox",
    "endpoints": {
        "sharedInbox": "https://mastodon.social/inbox"
    },
  ...
}

inboxやoutboxの情報が返ってきました。このようにしてinboxやoutboxの場所を知るのですね。

感想

結局、中央集権型のサービスの方が利用者にとっては「楽」だと思うので、どこまで分散型への移行が進むかは予測が難しいです。

ただ、企業や公的機関による公益性の高い情報発信は、分散型SNSへの移行・併用が進むと良いのかなと個人的には思います。

また、X(Twitter)自体がFediverse対応することに期待したいです。今後も分散型SNS周りのニュースは追っていきたいです。

読んでいただきありがとうございました。

References

1) Distributed social network – Wikipedia

https://en.wikipedia.org/wiki/Distributed_social_network

2) マストドンを生んだ分散SNS 15年の歴史 | PPT

https://www.slideshare.net/masatoshiyokota/sns-15

3) 分散型SNSユーザー有志

https://fediverse.pcgf.io/

4) What is the Fediverse? – YouTube

https://www.youtube.com/watch?v=pX_agVMr2r0

5) MetaのThreads、Mastodonなどと相互運用可能に ActivityPubプロトコル採用で – ITmedia NEWS

https://www.itmedia.co.jp/news/articles/2307/06/news121.html

6) ActivityPub

https://www.w3.org/TR/activitypub/

7) 分散型SNS「Misskey」、それを支える技術スタック | gihyo.jp

https://gihyo.jp/article/2023/02/misskey-01

8) WebFinger

https://webfinger.net/

9) WebFinger – Mastodon documentation

https://docs.joinmastodon.org/spec/webfinger/

author img for takezawa

takezawa

前の記事へ

次の記事へ

一覧へ戻る
PAGE TOP