九尾空間

この世はとてもキュービックな空間ですね

で、結局Mastodonって何だったの?

アドベントカレンダーの記事にしようと思って書きはじめましたが、完全にポエムになってしまったのでこちらのほうに投稿して供養したいと思います。

Mastodonがブームになって最初の12月がやってきました。さて、みなさんはMastodonについてどんなイメージをお持ちでしょうか。もうすっかりMastodonの画面を開くのが癖になってしまった方から「一部の人があんな持ち上げていたのに結局流行らなかったな」と冷やかな目で見ている方まで様々な方々がいらっしゃると思います。

しかし、結局のところMastodonって何だったのでしょう? この記事ではその点について語っていきたいと思います。以下の文章は完全に自分の主観です。

Mastodonは(現在の)Twitterの代替にはならない

まずはじめにはっきりと明言しておきます。Mastodonは現在のTwitterの代替にはなりません。

2006年にサービスが開始されてから、Twitterは10年以上もの長い期間にわたって開発がなされ続けてきました。その過程で、Twitterは情報発信をしたい有名人の目に止まったり、果ては大震災の中で情報のライフラインとして働くなどの活躍を果たしたりし、次第に一般の人達へも浸透してゆきました。その過程でTwitterは情報の拡散ツールとしての地位を獲得し、現在は広告による情報の拡散支援や投稿データの販売を主な収入源としています。

それに対してMastodonはまだまだ生まれてから1年ちょっとしか経っていない上に、Mastodonのコア開発者のGargron氏は、Mastodonの開発に際してベンチャーキャピタルや企業などから出資を受けたりすることに対して非常に消極的な姿勢を貫いています。現状、公式アプリの開発や広告などの一般ユーザーを増やすための施策や、投稿が拡散され多くの人の目につきやすくしたりするなどといった企業や個人が広報アカウントを作りやすくするための施策が施されることはほぼ無いといってもよいでしょう。

単純なチャットツールとして使うのならば、よりよい選択肢がある

また、もう1つ明言しておきましょう。単純なチャットツールとして使うのならば、SlackDiscord, Mattermostなどのよりよい選択肢があります。

Mastodonについているフォロー機能などのマイクロブログとしての側面を完全無視して、ローカルタイムラインを中心としたチャットツールとして使った時のことを考えてみましょう。Mastodonには現状グループやチャンネルといった概念は無いため、1つのチャンネルしか作ることができない非常に低機能なチャットツールとしてしか働かないでしょう。

さらに言えば、SlackやDiscordはSaaSなので、そもそもインスタンスをセットアップする手間すらありません。会社のセキュリティ上の理由からオンプレミスな環境で全てを完結させなければならない場合は、Mattermostがよい選択肢でしょう。そもそも外部から見えない環境にMastodonを設置したとしても、例えば検索欄に@nullkal@mstdn.jpなどと入力する人が社内に1人でもいればMastodonはそのユーザーの情報をリモートに取りに行こうとするため、機密性という点でもあまりおすすめできません。

とはいえMastodonというソフトウェアの性質、そしてユーザーの実際の利用実態から考えるに、こちらの方向性には比較的舵が取りやすいかなという気はしています。実際私がとても間近で様子を見させて頂いているfriends.nicoますとどんちほーなどのインスタンスではLTLでのチャット文化がとても活発です。特に興味深い事象としては、そういったインスタンスに所属している人がDiscordのサーバを立てても、そっちへ多くの住民が完全に移住して行ってしまったりしなかったことがあります。つまり、Mastodonのローカルタイムラインには、Discordなどの従来のチャットツールには無い何らかの魅力があると考えられるでしょう。

ただ、現状のMastodonはあくまでもマイクロブログとして設計されているので、そのような用途へ本格的に用いるのならば相当な量のカスタマイズが必要になると考えられます。例えば以下のようなカスタマイズが考えられます:

  • unlistedな投稿でもハッシュタグ検索に引っ掛るようにする
  • 連合に流れない投稿をする(= ローカルトゥート)機能
  • ローカルタイムラインとホームタイムラインをくっつけたようなタイムラインを作る
  • ローカルタイムラインにもBoost(TwitterでいうところのRT)を表示する
  • デフォルトのカラムにローカルタイムラインを追加する
  • 複数のローカルタイムライン(のようなもの)を作る

Mastodonの利点: 連合

さて、ここまでMastodonについてないないとばかり言ってきましたが、結局のところMastodonの優れたところはどういったところにあるのでしょうか。それは連合にあります。連合とは、Mastodonインスタンスという敷居を跨いだユーザー同士のやりとりを可能にする仕組みのことです。 Mastodonインスタンス同士はOStatusやActivityPubといった特定のプロトコルを介してつながっています。

ActivityPubでは、新しい投稿をしたこと、あなたの投稿をお気に入りに追加したことなどの情報は全て「アクティビティ」として扱われ、フォロワー全員のinboxへとpushされます。これによって、例え自分のアカウントのあるインスタンスとは別のインスタンス上にいる友人の投稿であっても、リアルタイムにホームタイムライン上へ並べることができます。つまり、(インスタンスやアカウントのブロックなどが特段なされていないかぎり)Mastodonのユーザーは自分の所属しているインスタンスに関わらず、相互にやりとりをすることができるということです。

これにはどのような利点が考えられるのでしょうか。私は以下の3つが、特筆できる連合の利点であると考えています。

  1. ルールを自分たちで決めることができる
  2. 投稿したコンテンツを自分の管理下に置くことができる
  3. 全く別の実装とMastodonが相互に対話できる

1. ルールを自分たちで決めることができる

Mastodonは、それぞれのインスタンスがそれぞれの裁量で投稿を管理することができます。例えば、イラストを描く人が多いインスタンスではイラストの無断転載をするアカウントを厳しく取り締まる、などということが考えられます。

また、Twitterのように中央集権型なSNSの場合、サービス提供者の在住する国の法律に縛られてしまうことが多々あります。例えば、海外の多くの国では児童を性的被害から守るという本来の目的から逸脱して、それが例え現実に被害者の存在しないイラストであっても未成年もしくはそれと疑わしい人物の絡むポルノ画像は法律で禁じられていることが多い一方、日本では現状合法です。しかし、海外に本社を持っているSNSの場合、このようなコンテンツは一律に規約で投稿が禁止されてしまっている場合も多いです。一方でMastodonは、それぞれの国内でインスタンスを立てれば、それぞれの国の法律に則ったルールを作ることができます。実際、これはMastodon上で一時期問題になりました。

togetter.com

ルールを自分たちで決めることができる、とはいってもMastodonは決してアナーキズムに支配されている訳ではありません。実際Gargron氏のインスタンスであるmastodon.socialを含め、海外のMastodonインスタンスはどちらかというとユーザーの安全の側に舵を切っているところが多いような印象を受けます。そのためもあってか、表現の自由に舵を切ったGNU socialのインスタンスの人達の中には、Mastodonに人が増えたことに不満を持っている人もいるようです。

https://gs.smuglo.li/doc-src/axisjp.pdf

www.youtube.com

2. 投稿したコンテンツを自分の管理下に置くことができる

Mastodonは、ユーザーという観点でいえば様々なインスタンス上へ散らばってはいますが、投稿したコンテンツに関しては完全に投稿されたインスタンスへ固く紐付けされています。いわばRSSリーダーのすごい版のようなものです (これは古い連合プロトコルであるOStatusで顕著です)。

つまりは、自社関連の情報は自社が管理するインスタンスのみで発信し、そのインスタンスへの新規登録を社内で統制する仕組みを作れば、Twitterのように公式マークなどの仕組みを作らなくとも、ユーザーに「あっ、この投稿はこのインスタンスで行われているので公式情報なんだな」という安心感を与えることができます。

3. 全く別の実装とMastodonが相互に対話できる

Mastodonは、ActivityPub (もしくはOStatus) を介して他のインスタンスとアクティビティのやり取りをします。これが意味することは、ActivityPubさえ実装されていればMastodonから投稿の閲覧やフォロー、お気に入り登録などのアクションを行なったり、もしくは逆にMastodonの投稿を閲覧したり、お気に入り登録したりすることができる、ということです。実際、Mastodonは登場当時GNU social互換を標榜していましたし、現在もMastodonやPleroma、 Friendicaなどの様々なActivityPub, OStatus実装と投稿を相互にやりとりすることができます。

Mastodon自体のライセンスはAGPLですが、それを使用せずフルスクラッチで開発すれば、プロプライエタリなコードベースを有するSNSでもMastodonに対応することができます。これは別にマイクロブログサービスに限ったことではなく、例えば画像や、動画を投稿するサイトの新着をMastodonからフォローできるようにすれば、ユーザーがホームタイムラインを見ることによって素早く新しい投稿に気づくことができるようにしたり、お気に入りの数のデータを受け取ったりすることができるようになります。

理想はTwitterがActivityPubに対応すること

ここまでMastodonの連合はすばらしいという話を語ってきましたが、とはいえ実際のところMastodonが完全にTwitterを置き変えるということはないです。一般ユーザーはインスタンスや連合などという概念になど興味はないですし、余計な概念が増える分混乱も増えるでしょう。mstdn.jpはそういう人達をターゲットにとりあえずインスタンスに迷ったらjpに、といった立ち位置を模索していましたが、Mastodonを始めたユーザーが最初に見るタイムラインはどうしてもローカルタイムラインになってしまうため、そのスケール性に問題が発生しているように感じています。疎外感を持ってしまうユーザーをいかに減らすかといった問題、不快に思う人のいるようなコンテンツをローカルタイムラインに表示される形で投稿することの是非、そういったことに私は日々悩まされ続けています。

連合の恩恵は例えMastodonでなくとも受けることができます。ActivityPubによる連合を実装したMastodon互換なシステムを作るのは1つの手です。しかし、現状私には開発リソースが足りません。mstdn.jpの技術的な側面は現在もほぼ全て自分一人で担当しています。

私が一番理想的だなと妄想しているのはTwitterがActivityPubに対応することです。ActivityPubでは全てのデータをActivity Streams 2.0と呼ばれるオープンなフォーマットに則って表現することになっています。一方で、2014年にTwitterに買収されたGnipが提供するTwitterの投稿データフォーマットはどうやらActivity Streamsに則った形式になっているようで、そこらへんどうにかなったら面白いよなーというようなことを考えています。

結論

MastodonはActivityPubやOStatusによってインスタンス間で相互に連合することのできるマイクロブログサービスです。連合というシステムを用いることによって、それぞれのインスタンス内でルールを自分達で決めることのできる自由を確保しつつ、Twitterのような従来の中央集権型のSNSのようなシームレスなユーザー間のコミュニケーションを実現しています。

一方で、そのインスタンス内のユーザーが全員投稿することのできるローカルタイムラインの影響力が非常に強いため、スケール性の問題をかかえています。分散SNSであるのならば少数のインスタンスにユーザーが集中するのはよくない、という思想の元で意図的にこの設計がなされているというのは充分に考えられますが、大規模インスタンスがスケーラビリティの問題を抱えてしまっている限り、小規模なインスタンスの発展はないと考えています。結局のところMastodonインスタンスを立てること、そして小規模インスタンスにアカウントを作ってもらうことが大きなボトルネックになっていると感じています。これの解決には多大な開発リソースが発生しますし、元のMastodonとは大きく異なる形になりバージョンアップへの追随がとても大変になってしまうと予想されます。そこで個人的にはMastodonとはまた違った新しいシステムを作るのが得策かなと考えています。

参考資料