はてなキーワード: identi.caとは
インターネットを日常的に利用する諸氏はMastodonというマイクロブログサービスを知っているだろう。
ある程度のITの知識を持った者ならば自身でマイクロブログサービスを始められるオープンソースなソフトウェアだ。
2017年当時学生だったハンドルネームnullkalがmstdn.jpというドメインを取得しMastodonサーバーを開設したことによって日本で注目を浴びた。
しかし、本質ではない。一部の真実を表現しているので誤りでは決してないが、本質かと言われれば決してそうではないと返せる。
Mastodon(と分散SNS)という言葉と存在を知る多くの人々が本質を理解できていなかったため「劣化Twitter」などと評価せざる得なかった。
そして、不幸なことにMastodonが話題となった当初、それを報じるインターネットメディアもまたMastodonの本質を理解できていなかったので、Mastodonに関する記事を読んだ多くの人々の評価がMastodonへアカウントを作らずとも「劣化Twitter」として固定されてしまった。
私の友人はMastodonを指してこう言った。
「Mastodonって不人気だけど何故かプログラマーな人が多いよね」
おかしな話だ。コンピュータやインターネットの技術に詳しく専門分野に関しての審美眼には信頼のあるプログラマーが何故か不人気なものへクールさを見出していると言うのだから。
そこでこのエントリでは、日本語情報も多いMastodonを例にして分散SNSの本質を解説しつつ、何故プログラマーが分散SNSへクールさを見出しているのかを語っていこうと思う。
2007年、インターネット上に「OpenMicroBlogging」と呼ばれる通信プロトコルが登場した。
OpenMicroBloggingは分散SNSで使われることを想定した通信プロトコルで、OpenMicroBlogging実装SNSとして「Identi.ca」が開設される。
Facebookは2004年設立、Twitterは2006年設立であり、Facebook設立からわずか3年後、Twitter設立からわずか1年後に分散SNSが登場したことになる。
オープンなSNSでよく語られるのは「中央集権SNSへのアンチテーゼ」だ。
これらの表現は悪いわけでない、悪いわけでないが分散SNSの理解へ誤解を生む。
誤解を生む理由は「わかりやすい」のだ。「自身のサービス内で強権を奮うFacebook運営やTwitter運営へNOを突きつけよう!」「我々の手にオープンなSNSを!」といういかにもな正義は非常にわかりやすい。
だからこそ一部でこの表現が支持されてしまい声たからかに叫ばれ、多くの人々の分散SNSの本質的な理解を妨げた。
インターネットを長らく観測してきたお歴々はご存知だろうが、そもそも「ユーザー自身が管理者となり自分自身のルールを運用できるオープンなSNSは分散SNS登場以前から存在している」のだ。
日本国内であればmixiクローンSNSとして「OpenPNE」などがFLOSSコミュニティでは非常に有名だ。
では、これまでのオープンなSNSと分散SNSは何が違うのか?
分散SNSは大前提として通信プロトコルありきで開発されている点が違うのだ。
思い出して欲しい。Identi.caの前にOpenMicroBloggingが作られていることを。
後に整理されてIdenti.caは「GNU Social」と、OpenMicroBloggingは「OStatus」と呼ばれるようになるが、Mastodonもまた通信プロトコルありきで開発されており、MastodonがありきとしたのがそのOStatusなのだ。
OStatusのベースであるOpenMicroBloggingは設計が古いため、現在ではOStatusの事実上の後継であるモダンな設計のActivityPubへ差し替えられるという大きな変化はあったが基本は変わらず、MastodonはActivityPubありきで開発されている。
多くの人々はSNSと言えばTwitterやFacebookやInstagramなどを想像してしまい、分散SNSと言われるとMastodonやGNU Socialを連想してしまう。
はっきりと言おう、この認識自体が根本的に最初の誤解であるのだ。
分散SNSは通信プロトコルありきで開発されており、ActivityPubなどの通信プロトコルによってSNSサーバー同士が相互接続し形成されている。
このネットワークそのものが分散SNSだ。Mastodonは分散SNSを形成するSNSサーバーでしかない。
すなわちMastodonは分散SNS方式SNS、分散SNS型SNSなどと表現したほうがより正確な意味を持たせられるのだ。
ただこれは情報技術に詳しいはずの技術者でさえ誤解しやすい部分であり、よりわかりやすく説明するためにActivityPubなどで形成されるネットワークのことを「Fediverse Network」と表現することが多くなっている。
つまり「Mastodon ≒ 分散SNS」「Fediverse Network = 分散SNS」という図式が成り立つ。
Mastodonはやろうと思えばFediverse Networkに接続しないこともできるということを理解しておかなければならない。
ActivityPubなどの通信プロトコルによってSNSサーバー同士が相互接続することにより形成されるネットワーク(= Fediverse Network)そのものが分散SNSであると言った。
それを知るためにはFediverse Networkの特性を知らなければならない。
Fediverse Networkを形成するActivityPubを現在は様々なSNSがサポートしている。
代表例を挙げればマイクロブログサービス型の「Mastodon」「GNU Social」「Pleroma」「Misskey」「microblog.pub」、Facebookのような名鑑名簿型の「Friendica」「Hubzilla」、写真投稿型の「PixelFed」、動画投稿型の「PeerTube」、電子掲示板型の「Prismo」などがActivityPubをサポートしている。
ここで疑問を投げかけてみよう。
もし、何らかの理由でMastodonの開発が停止し、この世から完全にMastodonサーバーが消滅した場合、Fediverse Networkはどうなるか?
答えは簡単だ「Fediverse Networkは維持されたまま」である。
単にこの世からMastodonが消え失せるだけであってActivityPubが形成するFediverse Networkへ対応しているのはGNU SocialやFriendicaなど他にも多数あるのだ。
Mastodonが使えないのであればGNU Socialを使えば良いというような形式のネットワークをインターネット老人会のお歴々はよくご存知で、おそらくこう表現するのではないか。
GMailが使えないのであればYahoo!Mailを使えば良い。それと全く同じだ。
そうつまり、分散SNSの本質それは「SNSの形態を取った次世代のE-Mail」なのである。
分散SNSの本質はSNSの形態を取った次世代のE-Mailであるからこそ「Twitterの代替」や「中央集権SNSへのアンチテーゼ」などという言説は分散SNSの本質を表現できているとは言えないのだ
TwitterはE-Mail Networkのような特性を持っておらず、E-Mail NetWorkはそもそも分散されている(E-Mail NetWorkはそのように設計されたから)。
ましてや、そもそもシステムの根本から違うので「劣化Twitter」という言説もまた分散SNSの本質などではない。分散SNSはTwitterクローンですらないのだから。
分散SNSの本質はSNSの形態を取った次世代のE-Mailであるからこそ、そのアカウント数はE-Mailと同様にゆっくりと増え続ける。
過去の日本ではユーザーが望む望まない、ユーザーが使う使わないへ関係なくDoCoMo携帯電話のiモードへ加入するだけでE-Mailアカウントが付いてきた。
分散SNSのアカウントはそのようにして増える。今後登場するであろう人気WebサービスがActivityPubをサポートしているとユーザーは意識せずともFediverse Networkへアクセスできてしまうのだ。
分散SNSの本質はSNSの形態を取った次世代のE-Mailであるからこそ、プログラマーたちにとってクールなのだ。
現在、GMailアカウントがどのように使われているか?を少し考えるだけで、SNSの形態を取った次世代のE-Mailである分散SNSがどれだけ刺激的で新しいインスピレーションを生み出してくれるかが理解できるだろう。
有子「あっキレイなお花!」
有子「いい考えね!じゃあさっそく・・・あれ?」
共太「ん?どうしたんだ?」
共太「なっなんだってー!」
-----
共太「最近SNSのアカウントが巻き込まれ凍結されるって話をよく聞くけどまさか有子のアカウントがなぁ・・・」
有子「私なにも悪いことしてないよ!お花や猫の写真をシェアしたりしてただけだもん!」
分美「あら?どうしたの?」
共太「あっ分美お姉さん!ちょうど良いところに」
有子「分美お姉さん・・・何も悪いことしてないのに私のTwitterアカウントが凍結されちゃって・・・」
分美「あら大変!でも仕方ないわよねぇTwitterシステムの上では巻き込まれ凍結はどうしても防げないわ」
共太・有子「えっそうなの!?」
分美「Twitterは問題のありそうなアカウントを独自のアルゴリズムで自動で凍結しちゃうのよ。コンピュータプログラムで判定しているからどうしとても間違えてしまうことがあるわ」
有子「プログラムが相手じゃ間違えてますよってお話することも難しいよね」
共太「Twitterが勝手に始めたことを押し付けてくるなんてヒドイじゃないか!」
有子「私の友達だって悪いことしてないのに何度も凍結されちゃって悲しい思いをしてたんだよ!」
有子「前に少しだけ話題になった気がするけど私よく知らない」
分美「分散SNSはねTwitterやFacebookみたいなSNSが動くサーバシステムを個人個人が自由に設置して、設置されたみんなのサーバ同士が繋がり合ってコミュニティネットワークを作ろうって試みなの」
分美「分散SNSを構成するサーバは個人の持ち物だから、持ち主の個人が独自にルールを定めることができるのよ」
分美「TwitterやFacebookのサービスを利用しているとTwitterやFacebookが定めたルールに利用しているユーザは従わなきゃならないけど、分散SNSはサーバ毎にルールを定められるので凍結される可能性を低くできるわ」
有子「あれ?じゃあもしかして私が分散SNSのサーバを設置したら・・・」
分美「良い点に気が付いたわね!そう、有子ちゃんが分散SNSサーバを設置したら有子ちゃんがルールよ!」
共太「すっげぇ!じゃあボクの分散SNSサーバを利用したかったら100円な!」
分美「ふふふ、共太クンの分散SNSサーバだからそのルールはもちろん定めて良いわ・・・でも分散SNSを利用するユーザにはルールを選ぶ権利があるのよ?」
有子「なるほどね!もし私の分散SNSサーバの利用が無料だったら共太クンの分散SNSサーバを使おうって思うユーザなんか居なくなるじゃない!」
分美「そうねユーザが困っちゃうようなルールを定めればユーザは利用しないだろうし、更に法律に違反するルールを定めて実行しちゃうとお巡りさんに捕まってしまうリスクも当然あるのよ」
共太「自由にルールを決められても好き勝手にしちゃ駄目なんだ・・・」
共太「でもさぁ思ったんだけど新しいSNSってユーザ数が少ないよな」
有子「SNSってやっぱりいっぱいユーザが居たほうが楽しいしね」
分美「実はね、分散SNSっていわゆる『過疎』になる可能性が非常に低いのよ。設置したら既に誰かが居るわ」
共太「えっ!?SNSを設置して直ぐは誰も居ないに決まってるじゃないか!」
有子「そうよね?居たとしてもSNSを設置した管理人さんだけでしょ?」
分美「それが分散SNSのメリットの1つなのよ。分散SNSは点在する分散SNSサーバ同士が相互接続することで成り立っているの」
分美「だから例えば分散SNSサーバαが既に設置されている状況であれば、分散SNSサーバβが新たに設置されたとき、分散SNSサーバβから既に存在する分散SNSサーバαを利用するユーザが見えてコミュニケーションが取れるのよ」
有子「えぇ!?それってすごいことじゃない!!」
共太「自分の分散SNSサーバを利用してくれるユーザを積極的に探さなくても良いわけか」
分美「わざと他のユーザを集めないで管理人がたった1人だけで利用している『お一人様』と呼ばれている分散SNSサーバだってあるわよ。他にも家族だけとか学校の友達だけの分散SNSサーバがあったり、お絵かき趣味の人のためや音楽趣味の人のための分散SNSサーバもあるわね」
有子「なるほど学校のお友達なら見知った仲だし凍結なんてほとんどありえないもんね!」
共太「通ってるスポーツクラブで分散SNSサーバ設置したら面白そうだなぁ!」
分美「独自のルールを定められるってことは利用するユーザを好きに選ぶこともできるってわけ!そしてなおかつさっきも言ったとおり他の分散SNSサーバのユーザともコミュニケーションが取れるから便利」
分美「そんな便利な分散SNSコミュニティネットワークを形成しているのが『ActivityPubプロトコル』よ!」
分美「早い話が分散SNS同士の会話がちゃんとできるようにする方式規格のことなんだけど、実際に重要なのは利用する分散SNSサーバがActivityPubプロトコルに対応しているかどうかってこと」
分美「実は分散SNSってActivityPubプロトコルが登場する以前にも様々なプロトコルが考案運用されてきたの」
分美「例を挙げればOStatusプロトコル、DFRNプロトコル、Diasporaプロトコル、Zotプロトコルあたりが有名ね」
分美「でも問題はプロトコルが違えば相互にコミュニケーションが取れないことなの」
有子「あれ?分散SNSサーバは他の分散SNSサーバと相互にコミュニケーションが取れるんじゃなかったっけ?」
分美「そう、それを実現したのがインターネットで使われる技術の標準仕様を定める団体である『W3C』が制定したActivityPubプロトコルってわけ!」
共太「そうかActivityPubプロトコル以前は分散SNSでも相互接続できない分散SNSがあったんだな」
分美「W3Cが標準仕様であるActivityPubプロトコルを定めてくれたお陰で、分散SNSのほとんどは積極的にActivityPubプロトコルを採用するようになり、ほとんどの分散SNSサーバとほとんどの分散SNSサーバの相互接続コミュニケーションが完成したわ」
共太「へぇ!ActivityPubプロトコルって凄いんだなぁ」
分美「うん!じゃあ先ず最初に語らなきゃいけないのは『GNU Social』ね!Twitterに触発されたマイクロブログ系SNSよ」
分美「GNU Socialは分散SNS最初期に登場した分散SNSで2007年まで遡るわ」
分美「12年前はidenti.caっていう名前だったの。GNU Socialという名前に落ち着いたのは2013年よ」
共太「それでも6年も前か。その時から分散SNSを考えていたなんて凄いなぁ」
分美「分散SNSのヒントになっているのは2002年に登場したP2Pファイル交換システムの『Winny』なのよ日本製ね」
分美「WinnyのあとにBitTorrentが登場したり色々日本でも問題になり善悪の評価が定まらないけれど革新的なシステムだったのは確かで、それが現代で分散SNSという実装に応用されているわ」
分美「GNU Socialの特徴はなんと言ってもその安定性の高さね。最初期に登場したこともあり機能性に乏しさは感じるしアップデートは驚くほど少ないわ。でも後に登場した分散SNSへ強い影響を与えたの」
共太「アップデートが少なくて済むほど安定してるってことか?」
分美「それもあるし、GNU Socialはプラグインによる機能追加に対応しているのよ。新機能が欲しいなら自分で作れという文化なのGNU Socialは」
分美「次に紹介するのは日本で最も人気のある分散SNS『Mastodon』ね」
分美「Twitterアカウントの凍結騒ぎで一時期Twitterでも話題にのぼったわね。MastodonはGNU Socialに触発されたマイクロブログ系SNSよ」
分美「GNU Socialを参考としたためGNU Socialと互換性がありつつも、よりもモダンな外観や機能を備え、コミュニティが活発でアップデートも非常に多いのが特徴だわ」
共太「それだけ聞くとMastodonの方が良いように感じるなぁ」
分美「日本国内にMastodonサーバは膨大に存在するし分散SNS選びに迷ったらMastodonって考えるのも悪くはないわ。情報も非常に多いしね」
分美「ただMastodonの欠点としてはGNU Socialに比べるとより高性能なサーバマシンが必要になることね。とある有名なC++プログラマが『富豪的プログラミングだ』と揶揄したのはMastodonコミュニティでは有名な話よ」
有子「自分でMastodonサーバを設置するときにサーバマシンの用意に困るわけね」
分美「まぁとは言っても今の普及価格帯ノートパソコンくらいで十分に動くわ。利用状況によるけどサーバをレンタルするとしても月額2,000円以下かしら」
分美「そんな重いMastodonに触発され動作が軽いことを念頭に置かれ開発されたマイクロブログ系分散SNS『Pleroma』も検討に値するわね。Mastodonと一部機能に互換性を持っているの。Mastodon用クライアントアプリが使えたりするのよ」
有子「GNU Socialを参考にしたMastodon、Mastodonを参考にしたPleromaか面白いなぁ」
共太「お姉さん!なんかもっとこうドーンッとスゴイやつってないの?」
分美「あるわよ?例えば『Hubzilla』なんかは高機能すぎるくらい高機能よ。SNS機能に加えて、ユーザ単位の公開範囲の限定、チャット、アドレス帳、カレンダー、オンラインストレージ、簡易Webページ作成、RSSフィードリーダー、Facebook連携、Twitter連携、ActivityPub連携etc...」
共太「スゲェ!なんでもアリかHubzilla!」
分美「もともと『ハブ』になることがコンセプトらしいわね。でも今挙げた機能はHubzillaの最大の特徴じゃないの」
有子「えっこの時点で高機能なのに?」
分美「HubzillaはZotプロトコルによるGridネットワークを特徴としていて、これはサーバ認証とユーザ認証が別個に管理されているのよ」
分美「端的に言うとHubzillaサーバαとHubzillaサーバβで1つのユーザアカウントを運用できるのよ。例えば普段使ってるHubzillaサーバαが何らかの障害でダウンしても、ユーザアカウントそのままでHubzillaサーバβで利用できちゃうのよ。普通はサーバが変わるとユーザアカウントも変えなくちゃいけないわよね。Hubzillaはユーザアカウントを維持できるの」
共太「えっHubzilla凄すぎない?」
有子「まさに分散SNSだね。サーバ1つ無くなっても他のサーバが使えちゃう」
分美「非常に先進的な試みをHubzillaはやってるんたけど、その豊富すぎる機能や細かな設定項目、更には複雑な外観で素人お断り感がスゴイのよ・・・」
分美「あるわよ?」
共太「ちょっと思ったけど何でもあるんだねw」
分美「筆者の増田もこのエントリ書くため改めて調べてみて驚いてるらしいわ。それでもっと気楽な高機能な分散SNSには『Misskey』があるわ。なんと国産よ」
分美「投稿テキストへ太字などが設定できたり、昨今のチャットサービスなどで定番化しつつあるいいね!に変わる様々な反応を送れるリアクション機能、ユーザを指定して会話できるグループトーク、様々な情報を表示するウィジェット、更にはリバーシゲームが楽しめたりするわ。他にも機能いっぱい」
有子「エンターテイメントって感じ!結構好きかも!Hubzillaは敷居が高すぎる・・・」
共太「エンターテイメントと言えばマイクロブログ系SNS以外には分散SNSってないの?」
分美「あるわよ。Hubzillaを見たときSNS部分はFacebookっぽいなと感じたと思うのだけれど、よりFacebookっぽい分散SNSに『Friendica』があるわ」
分美「FriendicaはFacebookクローンと言って良いほどFacebookと機能が酷似していて分散SNSでFacebookの機能を求めているのであれば一番手っ取り早いかもね」
共太「あるとは思ってたけどやっぱりFacebookっぽい分散SNSもあるのか」
有子「えっじゃあもしかしてInstagramっぽいのも・・・」
分美「あるわよwInstagramっぽい分散SNSは『PixelFed』ね。Instagramと同様に投稿する写真へエフェクトフィルタがかけられるわ」
有子「あるんだw」
分美「あるわよwYoutubeっぽい分散SNSは『PeerTube』というの。PeerTubeの凄さはActivityPubプロトコルへの対応だけじゃなく動画配信自体も分散機能を持つこと」
共太「あるんだw」
https://peertube.fr/videos/watch/217eefeb-883d-45be-b7fc-a788ad8507d3」
分美「この動画は実際にPeerTubeへ投稿されている動画なのだけれど、複数人が同時に視聴するとPeerTubeはYoutubeにない動画配信挙動をするの」
分美「それは視聴者αに続いて視聴者βが動画の視聴を始めると、視聴者βへはPeerTubeサーバから動画配信されるだけでなく視聴者αからも動画配信されるのよ。これはWebTorrentという技術を使って実現しているわ」
分美「理論上の話になるけれど、1GBの動画をYoutubeが2人へ配信した場合は当然ながらYoutubeサーバは合計2GB配信することになるけれど、PeerTubeサーバの場合は合計1.5GBで済んでしまうのよ。残り0.5GBは他の視聴者からまかなう」
有子「これは本当に凄いじゃない!お姉さん当然100人が同時視聴するとPeerTubeサーバの送信量はYoutubeサーバに比べてもっと下がるんでしょ!?」
分美「もちろん理論値だし様々な状況によってPeerTubeサーバの送信量は変わるけど間違いなくYoutubeサーバが100人へ配信するよりは送信量がかなり少なくなるわ」
分美「ちなみに引用しているPeerTubeサーバはわざとフランスのPeerTubeサーバを選んでいるわ。私1人だと何度も動画が途中で止まったけれど増田に貼った時点でどうなるか楽しみね」
共太「PeerTubeスゲェな!もっと知られていても良さそうなのに」
分美「個人の動画配信って自宅サーバでやらない限りはレンタルサーバとかだとかなりお金掛かるのよ。PeerTubeだと送信料が抑えられると言っても積み重なるとかなりの額になるしね」
分美「そして例えばJ:COMとか一部のインターネットプロバイダはWebTorrentなどのP2P通信に規制をかけているところもあるわ。そのようなプロバイダを契約しているとPeerTubeの旨味は活かせないわね」
有子「PeerTubeもActivityPubプロトコルでリプライしたりできるんてしょ?」
分美「できるわ」
https://peertube.cpy.re/videos/watch/da2b08d4-a242-4170-b32a-4ec8cbdca701
分美「この動画はPeerTubeとMastodonのやりとりのデモ動画よ。Mastodon上でPeerTube動画を視聴してリプライしてるわね。そのリプライはPeerTubeへ反映されているの」
有子「すごい!まったく違うWebサービスなのにやりとり出来ちゃってる!」
共太「さっきのPixelFedもやりとりできるんだろ?いいね!とか。これがActivityPubプロトコル・・・!!」
分美「ActivityPubプロトコルは今後ともどんどん様々なWebサービスに広がっていくわ。現在開発中だけれど電子掲示板Redditに触発されActivityPubプロトコルを組み込んだ電子掲示板『Prismo』は良い例ね。Prismoが正式に稼働するとMastodonから電子掲示板の雑談へ参加できるようになるわ」
分美「そして別にActivityPubプロトコルへ対応するため新しくWebサービスを始める必要もないのよ。例えば過去に日本国内で栄華を極めたmixiあたりがActivityPubプロトコルをサポートしたら一気にmixiから観測できるアクティブユーザが数十万人増えるわ。起死回生の一手として検討に値するわね。はてなハイクもそうよ」
分美「ユーザが居ないこと、ユーザを集めることが問題になるのならば常にアクティブユーザが居ることへ期待できるActivityPubプロトコルを採用するのはアリなのよ。 Permalink | 記事への反応(3) | 20:57