世界を動かす技術を、日本語で。

私たちはもう分散型になったのか?

概要

  • FediverseAtmosphere のユーザーデータ集中度を経済指標 HHI で測定
  • HHI はサーバーごとのユーザー分布の偏りを数値化
  • 低い値は分散、高い値は集中を示す
  • 技術的・法的・社会的な中央集権性にも言及
  • GitHub でデータやコードを公開、コントリビューション歓迎

FediverseおよびAtmosphereにおけるユーザーデータの集中度

  • Fediverse (Mastodon、Pixelfedなど)と Atmosphere (Bluesky、WhiteWindなど)のユーザーデータ分散状況
  • 測定指標として Herfindahl–Hirschman Index(HHI) を使用
    • HHI=各サーバーのユーザーシェアの2乗の総和
    • 0に近い値 :多くのサーバーにユーザーが均等分散、競争的環境
    • 10,000に近い値 :ほとんどのユーザーが1サーバーに集中、独占的環境
  • 経済学的なHHI評価基準
    • 100未満 :高度に競争的
    • 1500未満 :分散的
    • 2500超 :高度に集中的
  • Fediverse ではアクティブユーザーのデータが各サーバー(インスタンス)に保存
  • Atmosphere ではユーザーデータがPDS(Personal Data Server)に保存
    • Bluesky Social PBC 運営の全PDSは1つの事業体として集計
    • mastodon.socialmastodon.online も同一企業運営のため統合集計

集中度以外の中央集権性指標

  • ユーザーデータの物理的な配置以外にも重要な要素
    • 技術的側面:ネットワーク構造(P2P、リレーなど)、ID管理、インフラ基盤
    • 法的側面:サーバーや企業の法的管轄地
    • 社会的側面:プラットフォーム上の人的権力の分布、特定集団への偏り

コントリビューション・データ公開

  • 他の分散化指標の提案やデータ提供を歓迎
  • GitHub でコード・データを公開
  • コメントやプルリクエスト、分散性やレジリエンス測定の新指標も歓迎
  • 問い合わせ先: Rob Ricci (@ricci@discuss.systems / @ricci.io)

Hackerたちの意見

いいね!ここでの発見には驚かないよ。BlueSkyは(普通のユーザーにとって)ほぼTwitterの代替品みたいなもんだね。Mastodonの総数は少ないけど、エコシステムがAT-Protoエコシステムで見られるような中央集権化をうまく避けているのは素晴らしいことだと思う。AT Protoのサーバーや中継の運営コストは、少人数のプレイヤーにとっては高すぎるんじゃないかな。Mastodonサーバーが数人のピアと選択的に連携するのに比べてね。でも、両方のエコシステムの内部についてはあまり詳しくないから、あくまで漠然とした理解で言ってるけど。

ATProtoは、最終的に何かを得ようとする様々なバックグラウンドを持つ企業や投資家に支えられているっていうデメリットもあるね。これがどうなるかは全く分からないけど。

ATプロトサーバーや中継の運営コストは、マストドンのサーバーが数人の仲間と選択的に連携するのに比べて、小規模なプレイヤーには高すぎると思うけど、これは両方のエコシステムの内部についてあまり理解していない状態で言ってる。これってちょっと違うんだよね。ATプロトは全く違う「形」をしているから、同じように比較するのは難しい。ざっくり言うと、マストドンは小さな独立したTwitterのコピーがあって、それらが「メール」(ざっくり言えば)でお互いに情報を伝え合う感じ。だから、友達のためにサーバーを運営するのは安いけど、世界で何が起こっているかとは切り離されてる。自分のアイデンティティはサーバーに結びついていて(それが自分のウェブアプリ)、他のサーバーの誰かをフォローしたいときは、そのサーバーに自分のサーバーが情報を送ってもらうように頼むんだ。だから、デフォルトではネットワークの見え方がすごく断片的になる。返信やスレッド、いいねの数は、どのサーバーから見ているか、どの情報が転送されているかによって、全部ずれてる。対してATプロトは、実際に集中型サービスと競争できるように設計されている。つまり、分け方が違うんだ。マストドンのモデルは「いくつものTwitterが話し合っている」だけど、ATプロトでは関心の分離がある。ホスティングを交換可能にして(ホスティングがデータの真実の源)、アプリケーションがそのデータを集約する感じ。これって従来のウェブに似てる。すべてのソーシャルメディアユーザーが「自分のウェブサイト」にJSONを投稿して、アプリがそのデータを集約するみたいな。結果的に、ATプロトではデフォルトの動作が、みんなが共有の世界観で動くことになる。常にすべての返信、すべてのコメント、すべてのいいねがカウントされる。デフォルトでは断片的じゃない。こういう違いを考えると、ATプロトの「分散化」は多次元的なものになる。マストドンでは唯一の原始的なものは「インスタンス」—つまり、ユーザーのためにホスティングできるTwitterのようなウェブアプリ全体だけど、ATプロトでは複数の分散型の原始的なものがある。- PDS(パーソナルデータホスティング)はアプリケーションに依存しないデータストア。ブルースカイの実装はオープンソース(ユーザーごとにsqliteデータベースを使用)。同じプロトコルの代替実装もある。ブルースカイの会社が最大のものを運営しているけど、自分用にPDSを運営するのはすごく安い(たぶん月1ドルくらい?)。基本的には構造化されたKV JSONストレージで、マークルツリーとして整理されている。Gitホスティングに似てる。- アプリビューは実際の「アプリケーションバックエンド」。ブルースカイはbsky.appアプリビューを運営していて、つまり人々がブルースカイアプリとして知っているもの。重要なのは、ATプロトでは誰もが自分のアプリビューを運営する必要はないってこと。1つ運営することもできる(ブルースカイアプリビューを運営するのにリアルタイムでネットワーク上のすべてのデータを取り込む場合、月300ドルくらいかかる)。もちろん、マストドンの選択したトレードオフ(ネットワークの部分的なビュー、自分のサーバーユーザーがフォローしているものしか見えない)に満足しているなら、それをもっと安く運営できる。だから、同じようには比較できないってこと。ATプロトはネットワーク上で実際に統一された体験を持つのを簡単にしてくれるけど、コストは通常マストドンの断片的な体験と比較されている。ATプロトはマストドンのようなUX(マストドンのようなコスト)にもスケールダウンできるけど、リアルなものがあるのにそれを選ぶのはあまり魅力的じゃない。- 中継はPDSとアプリビューの「間」にあるもの。基本的に中継は、アプリビューとPDSの間の多対多の接続を避けるための最適化。中継はすべてのPDSからの更新を1つのストリームとして再送信する(アプリビューがそれに登録できる)。中継を運営するのは以前は高かったけど、「Sync 1.1」以降はずっと安くなった(プロトコルの変更で中継がアーカイブしなくてもよくなったから)。今は中継を運営するのに月30ドルくらいかかる。要するに、PDSと中継を運営するのは安い。フルアプリビューを運営するのは高いけど、マストドンの世界にはそれに相当するものがないから、マストドンは常に断片的なんだ。部分的なアプリビュー(マストドンの動作に相当するもの)を運営するのはもっともっと安くなるはずだけど、あまり魅力的じゃないから、実際にやってる人は知らないな。(興味のない情報をフィルタリングするために少しコードを追加する必要もあるし。)

自分と数人の友達のためにPDSサーバーを運営するのは、私の知る限りそれほど高くないけど、やるメリットもあまりないんだ。PDSの目的は、自分のデータとネットワークの他の部分との間にクリーンな分離を持つことだからね。ATプロトで高いのは中継(PDSをクロール/リスニングしてファイアホースを生成)とアプリビュー(すべての投稿やいいねなどのDBを保持してユーザーのリクエストに応じる)だよ。スケールで高くなるし、非ブルースカイの投稿をホスティングするための小さなネットワークが欲しいなら(ホワイトウィンドの長い文字制限みたいな)、イベントのボリュームは管理可能だと思う。でも、ATプロトは自分でホスティングする必要がないように作られている。ブルースカイの中継のファイアホースから読み取るアルゴリズムフィードを実装したり、ブルースカイのアプリビューからデータを取得するフロントエンドを作ったりできる。

IRCやNNTPのような昔ながらのフェデレーテッドなコンテキストをこうやって測るにはどうすればいいんだろう?彼らはどうなるのかな。

freenodeがオーナーを変えたとき、ほとんどの人が1週間も経たずに移動したの覚えてる?簡単で可能だったよね。

小規模なセミプライベートなサークルには、特にウェブフロントエンドを使ったIRCはまだまだいいけど、経験上、規模が大きくなると政治的な問題や文化の違いが多すぎて、アギロブの例みたいに崩壊し始めることがある。IRCは、全世界を巻き込む必要がない同じ考えの人たちのグループにはまだまだいいよ。初期のインターネットでは、もっと多くの人が似たような考えを持っていたから、ほとんどうまくいってた。一般の人たちにはまだまだうまく機能してるって言う人もいるけど、俺はちょっと疑問だな。ウェブインターフェースをセミプライベートに保ち、簡単な認証を使ってリファラーを無効にすると、ボッターや挑発者、その他の厄介者が人々の間に分裂をもたらすリスクが減るんだ。NNTPもいいけど、ほとんどの人は個別に全バイナリグループをミラーする余裕がないし、ほとんどのISPはもうこれを行ってないから、バイナリが欲しい人は商業ニュースフィードを使うか、テキストだけなら無料のNNTP/Usenetプロバイダーを使うのが普通だよ。人々は確かにいくつかの無料プロバイダーとピアリングできるし、検閲のリスクを減らすためにもそうすべきだと思う。IRCのように、人々は自分たちの小さなプライベートまたはセミプライベートなリンクされたNNTPサーバーを作って、分散型のスレッドベースのフォーラムを再現することができるよ。[1] - https://www.eternal-september.org/index.php?showpage=peering

数学をするのは簡単なはずだよ: https://netsplit.de/networks/

フェデイはもっと分散してるけど、実際にはあんまり一貫性もないんだよね。これがフェデイに入ることができたユーザーの一番の不満だと思う。俺は気にしないけど、すごく前進してると思うし、現実的な期待を持つことが大事だね。

一貫性ってどういう意味?(フェデバースは使ったことないから、全然わからない)。

Nostrもこれに加えてほしいな。ユーザーベースの集中がフェデイモデルに対する批判の一つだからね。ユーザーのアイデンティティが単一の中継に存在しないから、適応するのはちょっと変かもしれないけど。

変な感じになるよね。ほとんどのクライアントが複数のリレーにプッシュするから、アカウントって言っても、要はユーザーのデバイス上の公開鍵ペアなんだよね。

今日知ったのは、ハーフィンダール・ハーシュマン指数について。ちょっと変わったケースを試してみたくなったんだ。1980年代後半に、マイクロソフトがマッキントッシュのスプレッドシート市場で100%を超える市場シェアを持っていたことがあったんだよ。どうしてそんなことが可能なの?市場シェア(特定の期間について)は、参加者の売上を市場全体の売上で割ったものなんだけど、実はロータスが失敗したスプレッドシート「ロータスジャズ」の返品が売上を上回っていたんだ。だから、ロータスはマイナスの市場シェアを持っていて、マイクロソフトはエクセルの売上が市場の総売上を超えちゃったんだ。結果的に、100%を超える市場シェアになったってわけ。正確な数字は覚えてないけど、少なくとも他に1社は競合がいたと思う。数字を仮にすると、マイクロソフト: 102%、ロータス: -2% って感じかな。この場合、ハーフィンダール・ハーシュマン指数は102^2 + (-2)^2 = 10404 + 4 = 10408になる。だから、この異常なケースではHHIが10,000を超えることもあるんだ。追記: 明確にするために「特定の期間について」を追加したよ。

この記事をオンラインで一生懸命探したけど、見つからなかった。(どこかのマイクロフィッシュにあるかも…)でも、面白い逸話は見つけたよ: > ロータスの幹部が後に冗談を言った。「最初の月に62,000本出荷したけど、次の月には64,000本返品された。そんな失敗だったから、海賊版を送り返してきたんだ。」 https://www.forbes.com/2003/12/16/cx_el_macslide.html

HHIはすごく役立つ指標だよね。気に入ってくれて嬉しい!正規化されたシェアの二乗の合計は、いろんな文脈でとても役立つことが証明されてる。市場シェアだけじゃなくて、投票もその一例だね。

このページでは、ハーフィンダール・ハーシュマン指数(HHI)に基づいて、フェディバースとアトモスフィアの集中度を測定しています。HHIは、業界内の企業間の競争を測るために使われる経済指標です。数学的には、HHIはすべてのサーバーの市場シェアの二乗の合計です。この指標は初めて聞いたけど、すごく面白くて理解しやすいね。もしこれを0から100にスケールダウンしたら(100で割ることで)、数字がもっと直感的に理解できると思う。逆にするのもアリかも(0が集中型、100が分散型みたいに)。ウェブサイトのタイトルが分散化への進展を測ることを示唆してるからね。

逆に、100に正規化しなかった理由は、指標が線形であるという印象を与えないためかもしれないね。2500というスコアを見ると「それって何を意味するの?」って思うけど、25/100で提示されたら「それは高い集中度だ」とは思わないだろうし。

じゃあ、WordPressとRSSでいいんじゃない?

分散型サービスのプロトコルや技術は20年以上前からあるんだよね。問題は技術じゃなくて、ユーザーなんだ!普通の人は「分散型であるべき」って要求に入れてないと思う。教育が足りないせいかな。まあ、同意するけど :)

Nostrを追加したらいいけど、Nostrはこのモデルにはあまり合わないんだよね。Nostrはアイデンティティを保持するための単一サーバーが必要なくて、アプリが同時にいくつもの「リレー」に接続する仕組みなんだ。

Nostrもリストに加えてくれたら最高だね。

つまり、私たちは分散型じゃないってことだね。Gitはいい試みだったけど、GitHubやGitLab、他のバリエーションに集中しちゃった。BitTorrentは分散型だったけど、トラッカーサイトが自然な集中点になってた。Bitcoinも分散型だったけど、Coinbaseや他のサイトがあったしね。SMTPもスパム問題のせいで事実上集中化してるし。