マストドン (ミニブログ)

概要

サービスとしてのマストドンは短文投稿型のSNSである。WebUIは、Twitter用のクライアントTweetDeckに類似した外観を持ち、画面は複数のカラムによって分割された構成になっている。
マストドンでは利用者の投稿する短文は「トゥート」と呼ばれており、500文字の制限がある。他の利用者を「フォロー」することで、その利用者の投稿を「ホームタイムライン」と呼ばれるカラム上で読むことができるようになる点は先行サービスと同様である。トゥートの閲覧に関する制限導入が可能なのも同じだが、それらについてはより細かい調整が可能となっている（トゥートとプライバシー機能を参照）。
サーバーは複数の利用者がぶら下がる分岐点（ノード）となり、サーバー間はActivityPub（バージョン1.6.0以前はOStatus）を用いて通信を行う。こうしたマストドンのネットワークは電子メールのそれに類似している。電子メール同様、利用者は自分とは別のサーバーに属する利用者と交流が可能である。また、他のサーバーへと利用者がアカウントを移行させるための機能も提供されている。
「中央集権型」のサービスでは全ての利用者は単一の管理者（Twitter, Inc.など）が運営するサーバーにログインする。また、その様なサービスの運営者はソースコードを公開していないため他の管理者が同一のサービスを運営していることは基本的に無く、クライアントソフトにも運営者を切り替える機能は搭載されていない。
マストドンは管理者も設置場所も異なる多数のサーバーで運用されており、利用者は自分自身でサーバーを選ぶか、自身でサーバーを開設し、アカウントを作成、これにログインする。管理者は自身のインスタンスを自由に操作出来る。また、APIが広く公開されており、クライアントや関連アプリケーションの製作が単一の管理者によって制限されることはない。
なお、バージョンアップに際し、運用するサーバーは管理者の任意のタイミングにバージョンアップが可能となっている。そのため、バージョンが異なるサーバー間や独自で変更を加えているサーバーとの間で不具合が生じる場合もある。
AGPL-3.0に基づき、各サーバーによる独自の改良が可能となっている。これにより、企業向けツールの土台としても利用されている。#使用技術も参照。

利用者とサーバー

Twitterのような中央集権型のサービスであれば利用者はアカウントを作成するだけでサービスを利用できるが、マストドンの場合、利用者は一般的には自分が所属するサーバーを決めてそこにアカウントを作成する必要がある。サーバーを設置するための特別な資格や権限は必要ないため、自分で使用するためのサーバーを新たに設置する事もできる。2017年4月現在、500以上のサーバーが運用されている。
その仕組み上、悪意あるサーバーが自身に登録した利用者を攻撃する・情報を悪用するといった可能性は否定できずこれを防ぐことは困難である。マストドンは信頼できるサーバーにアカウントを作成するよう呼び掛けている。
マストドンのネットワーク全体には利用規約に相当するものは存在しない。その代わり、個々のサーバーの管理者は自身のサーバーの利用者に対し利用規約を設定し、これに違反したアカウントを削除する事ができる。また各サーバーは自身のポリシーに合わない投稿が行われるサーバーとの通信を遮断できる。ロホコは「コミュニティが密接で小規模であるほど、その中で有害な振る舞いは隠蔽されにくい」と述べており、このような小規模コミュニティによるサーバーが自身のポリシーに近い他のサーバーと連合を作ることによって、中央集権型のサービスが支払わざるを得ない、ハラスメントなどの不正行為の対策に割く莫大なコストを削減できると主張している。不正行為そのものを目的としたサーバーが登場する可能性についても考慮されており、各インスタンスは不正サーバーとの通信を遮断する事で自身に属する利用者を保護できる。こうした連合型のSNS特有の不正行為対策とは別に、Twitterのブロックやスパム通報に相当する、ハラスメントの被害者などが利用するための自衛手段も用意されている。
バージョン2.0.0より、実装されたカスタム絵文字の機能でサーバー内の雰囲気などに合わせて自由に絵文字を増やすことができるようになる、分散型特有の機能が追加された。また、Twitterでも使用されている様な「フォローしているアカウントのリスト機能」も追加された。

トゥートとプライバシー機能

利用者は自分のトゥート1つ1つに対し「公開」するか否かを設定できる。利用者の投稿した公開トゥートは、自身がフォローした利用者のトゥートが表示される「ホームタイムライン」と呼ばれるカラムとは別の、「公開タイムライン」と呼ばれるカラムにも集約される。公開タイムラインには「ローカルタイムライン (Local timeline)」と「連合タイムライン (Federated timeline)」の二種類が存在している。ローカルタイムラインではそのサーバーに所属している全利用者の公開トゥートが表示される。
一方連合タイムラインではサーバーが「知っている」全ての公開トゥートが表示される。これは「同一サーバーの全利用者の公開トゥート」・「同一サーバーの利用者がフォローしている(他インスタンスの)全利用者の公開トゥート」を意味する。
利用者はトゥートを投稿する際、「公開 (Public)」・「未収載 (Unlisted)」・「フォロワー限定 (Followers-only)」・「ダイレクト (Direct)」の4段階のプライバシーレベルから一つを選択する。先に述べた通り「公開」に設定したトゥートは公開タイムラインとホームタイムラインの両方に表示される。「未収載」のトゥートは、投稿者のプロフィール画面などからだれでも閲覧できるという点では公開されていることになるが、こちらについては「公開」とは異なり公開タイムラインには集約されない。フォロワー限定とダイレクトは更に閲覧できる利用者の範囲を狭め、前者は利用者のフォロワーに、後者は指定した利用者に閲覧を限定する。

コンテンツ警告とNSFW

封切りされたばかりの映画の核心(いわゆる"ネタバレ")・閲覧者に不快感を及ぼしうる性的あるいはグロテスクな内容など、誰の目に触れても問題ないとは言えない投稿を行う際、投稿者本人が閲覧者に配慮するための機能として、マストドンは「コンテンツ警告 (CW, Content Warning)」と「NSFW (Not Safe For Work)」の2つを提供している。
コンテンツ警告を使用すると、投稿者が自由に設定できる警告文と本文からなるトゥートは本文が非表示の状態で他の利用者に表示され、「もっと見る (SHOW MORE)」と書かれたボタンをクリックした閲覧者にのみ隠されていた本文が表示される。
画像や動画などのトゥートに添付されたサブコンテンツを非表示にするための機能がNSFWである。利用者がファイルを添付した後新たに出現する目のマーク、あるいは「NSFW」と記されているボタンを押すと、投稿されたサブコンテンツは閲覧者がクリックするまで非表示の状態となる。
トゥート本文とサブコンテンツの両者を隠したい場合、NSFWとコンテンツ警告を同時に使用する事も出来る。サブコンテンツ付きの投稿にコンテンツ警告を使用すると、サブコンテンツにも自動でNSFWが適用される。

承認制アカウント機能

自分のアカウントへのフォローを承認制にできる機能である。承認制アカウントはプロフィールのユーザー名の横に鍵のマークが表示される。承認制アカウントをフォローしようとすると「フォローリクエスト」が送られ、当該アカウントがフォローリクエストを承認することでフォローが成立する。
この機能、またはこの機能を有効にしているアカウントは俗に「鍵垢」とも呼ばれている。ただしこれは、例えばTwitterの"鍵垢"が「フォローを承認制にする」他に「フォロワーにならないとその投稿を見ることができない」機能でもあるのに対して、マストドンの"鍵垢"は単に「フォローを承認制にする」のみの機能でしかない。前述のように投稿範囲を指定することが必要である。これは逆に言えば、マストドンでは「通常のアカウントだがフォロワー限定の投稿をする」「"鍵垢"だが公開投稿をする」といったTwitterではできない芸当が可能であることを意味する。

使用技術

サーバーサイドの言語として Ruby と JavaScript (Node.js)、データベースとして PostgreSQL と Redisを使用。フレームワークとしてサーバーサイドには Ruby on Rails が、フロントエンドには React.js と Redux が使用されている。サーバー間の通信プロトコルには ActivityPub と OStatus が使用されているため、通信はマストドンのサーバー間に限定されず、 GNU social や Pleroma のような 同標準に準拠した他のミニブログのサーバーと相互運用可能となっている。ただし ActivityPub と OStatus はあくまでサーバー間通信を規定するプロトコルであり、クライアントAPI の互換性は保証しない。GNU social のクライアントでマストドンのサーバーにログインする事はできない。
マストドンはバージョン1.6.0より、OStatusからW3Cが策定したActivityPubへの置き換えが始まった。バージョン2.0.0からは、公開範囲が非公開またはダイレクトであるトゥートがOStatusに配信されないという制限が設けられた。このような制限はあるものの、引き続きOStatusとActivityPubのいずれも使用可能である。

オープンソースによる開発

前述の通り、マストドンのライセンスはAffero General Public LicenseでGitHubにて公開されており、各サーバーがライセンスに基づき、独自に改良することが可能である。また、pixivが運営するPawooに実装されたプロフィールページへトゥートをピン留めする機能がマストドン本体に取り込まれるなど、サーバーの独自機能だったものが、マストドンとしての機能に発展することがある。

アカウント数の増加

マストドンが最初に公開されたのは2016年の10月であったが、アカウント数が目立った増加傾向を示したのは2017年の3月末から4月初頭にかけての事であった。2017年4月7日、The Vergeは現段階の[マストドン全体の]コミュニティは小規模なものであり、Twitterを続けている人を引き付けるほどの個性を未だ確立していない、と評した。アカウント @mastodonusercount@social.lou.lt はマストドンの各インスタンスが自己申告したアカウント数を自動的に集計して公表している。これによれば4月7日の時点ではマストドン全体のアカウント数は約10万であったが、4月13日には20万アカウント、4月21日には40万アカウントを突破した。
日本においては、2017年4月ごろ日本のサーバーで著名だった「mstdn.jp」の運営者が、ドワンゴに入社するニュースとともに、niconicoにて「friends.nico」のサーバー制作の発表に含む形でマストドンが紹介されたことで広まった。同じく日本で利用者数が多いpixivでも「Pawoo」サーバーが制作、画像関連の機能が強化され、Twitterでのアカウント凍結で画像投稿に不自由していたユーザーも取りこむ形で利用者が増大していった。なお、どちらも各アカウントからの認証登録が可能となっており、またPawooでは制限がない画像投稿と言う点から日本国外からのサーバーからトラブルを呼びこまないようにそれらにアクセス制限を掛けている。
また、TwitterのAPI使用条件が厳格化されたことにより、ストリーミング機能が実装されていたUser Streams APIが廃止され、サードパーティー製のアプリが使用できなくなることや、AIによる判断で誤ったアカウント凍結の大量発生・凍結基準の厳格化による一般利用者の永久凍結が発生したことから、2018年8月15日午後から16日の午前にかけて、Twitter利用者の一部がマストドンの（大規模）サーバーへ流入するといった現象が起こっている。2019年2月25日にはTwitterの禁止規約の改定に伴い、再度流入先として注目を集めている。