1 ポイント 投稿者 GN⁺ 4 시간 전 | 1件のコメント | WhatsAppで共有
  • 「Blueskyのインスタンス」を探すという問いは、Mastodonのインスタンスモデルをatprotoにそのまま当てはめたものであり、atprotoはホスティングとアプリ集約を分離して設計されている
  • RSSとGoogle Readerのように、データはアプリの中に閉じ込められず、ホスティングされたリポジトリにあり、複数のアプリがそのデータを取得して表示する形で動作する
  • Mastodonのインスタンスは、ホスティング・アプリ・アイデンティティ・連合関係がひとつの箱に束ねられた構造であり、管理者の判断やインスタンス障害がユーザー体験に直接影響する
  • atprotoでは、ユーザーはホスティングを移したり、新しいアプリを作って試したりでき、Tangled、Semble、SidetrailのようなアプリはBlueskyとは別個に動作する
  • atprotoの分散性を見るには、「Blueskyインスタンス数」よりも、代替ホスティングへの移行新しいアプリのエコシステムが実際に機能しているかを見るべきである

RSSとGoogle Readerに近いモデル

  • RSS時代には、ユーザーは自分のブログに記事を投稿し、Google ReaderやFeedlyのようなアプリが複数ブログの記事を集約していた
  • 記事はGoogle Readerの中に「住んでいる」のではなく、それぞれのブログやホスティング先に残っている
  • 核心はホスティングと集約の分離である
    • ホスティングは実際のコンテンツが存在する場所である
    • 集約アプリは複数ソースのコンテンツを見せる投影(projection)に近い

中央集権的ソーシャルメディアとMastodonの対応

  • 従来のソーシャルメディアは、すべてのユーザーをひとつのアプリと空間に集める方式で運営されている
  • この構造では中央集権化と強いネットワーク効果が生まれ、分散型ソーシャルネットワークの議論はこの問題をどう分割するかから始まる
  • Mastodon的なアプローチは、各コミュニティが自分たちの「小さなFacebook」または「小さなTwitter」を運営する方式であり、その箱がインスタンスである

Mastodonインスタンスが束ねるもの

  • ユーザーは特定のインスタンス「の中」に属することになる
    • Mastodonのログイン形式が[email protected]なのも、アイデンティティにインスタンスが含まれるためである
    • ユーザーは抽象的な「Alice」ではなく、「instance #1のAlice」になる
  • 異なるインスタンスのユーザー同士がやり取りするには、インスタンス同士がメッセージをやり取りしなければならない
    • Aliceがinstance #1にいてBreeがinstance #2にいるとき、AliceがBreeをフォローすると、Breeの投稿がinstance #1へ転送される
    • この転送関係が**連合(federation)**である
  • ホスティングとアプリが一緒に束ねられているため、ユーザーはインスタンスに強く依存することになる

インスタンス結合が生む制約

  • インスタンス管理者同士で対立が起きると、互いに連合を停止できる
    • この場合、ユーザーは友人の投稿をもう見られなくなることがある
  • ユーザーのインスタンスが停止すると、そのインスタンスにひも付いたアイデンティティも消える
    • フォロワーが追っていたのは「そのインスタンスのユーザー」だからである
  • インスタンス間の接続矢印は**O(n²)**で増加する
    • 現時点では大きな問題ではないかもしれないが、この方式のソーシャルネットワークが人気を得れば重要になる可能性がある

atprotoの核心的な違い

  • atprotoはMastodon的なインスタンス概念を前提にせず、RSSとGoogle Readerのモデルへ立ち返る
  • ネットワークレベルでホスティングと集約を分離する
    • データはホスティングにある
    • アプリは複数人のホスティングからデータを集約する
  • したがってatprotoにはインスタンスがない
    • ホスティングは変更できる
    • アプリは複数ホスティングのデータを集約する
  • この構造は、「ひとつのアプリを複数コピーで運用すること」よりも、さらに豊かな分散構造として読める

ユーザー自身ができる分散化

「Blueskyインスタンス数」が的外れな理由

  • Mastodonでは、分散性をインスタンス数で測るのは自然である
    • Mastodonでできる主な分散の方法が、ホスティングとアプリが結合した箱をより多く運営し、互いに会話させることだからである
  • atprotoでは、すべてのアプリがAtmosphere全体の投影に近い
    • FeedlyやGoogle ReaderがBlogosphere全体を表示するのと同じ構造である
  • Blueskyデータベースサーバーの完全なコピーを複数運用することは可能だが、Google Readerのコピーをたくさん運用するのと同じくらい一般的に有用というわけではない
  • 一部のコピーは特定の必要のために存在する
    • Blackskyは、異なるモデレーション哲学のような特定の要求に応える事例である
    • reddwarf.appクライアントは専用データベースなしで、コミュニティ運営の無料キャッシュであるconstellationを使っている
  • Relayのような共有ネットワーク基盤は、1年間低コストで運用されてきたという

atprotoで見るべき指標

  • atprotoの分散性を見るには、「Blueskyインスタンス数」ではなく次を見るべきである
    • 人々が代替ホスティングへ移行しているか
    • 人々が新しいアプリを作り、使っているか
  • ホスティングとアプリを分離すれば、クローズドなソーシャルと連合型ソーシャルの両方で壊れたインセンティブを修正できる
  • ユーザーのデータはアプリの外に置き、アプリはそのデータの上で集約する構造こそがatprotoの核心である

1件のコメント

 
GN⁺ 4 시간 전
Hacker Newsのコメント
  • 「Blueskyのインスタンスはどこにあるんだ」という質問をわざと誤解して、ATProtoを持ち上げてActivityPubを貶しているように見える
    そうすると、ATProtoのリレーとその長所短所、ActivityPubのアカウント移行とその長所短所のような興味深い技術的事実が省かれたり歪められたりして、似た問題を解こうとしている2つのプラットフォームの間に不要な対立を生む
    「インスタンス」をサーバー、実行中のソフトウェア、仮想マシン、コンテナのような一般的な意味で使う人もいるだろうに、なぜわざわざMastodon的な概念としてだけ受け取るのか分からない
    図と説明は良かったが、ActivityPubへのさりげない当てこすりは、情報伝達というより敵意から出たものに感じられて残念だった

    • 記事のトーンは意図的に少しおどけたものにしたが、「Blueskyのインスタンスはどこにあるんだ」という質問は、アプリインスタンス数を分散化の尺度と見るアーキテクチャ上の誤解からよく出てくると考えている
      「Google Readerのインスタンスはどこにあるんだ」と比較すると、その質問の不自然さがよく分かると思ったし、記事の最後の2つの図は、初期のatproto/ActivityPub議論でよく見落とされていた点をかなりうまく説明していると思う
      リレーを入れなかった理由はここに書いた: https://news.ycombinator.com/item?id=48600963
      リレーはモデルの核心というより性能最適化に近いので、記事ではモデル自体に集中したかった
    • 文脈によるが、ATProto、ActivityPub、Mastodon周辺の議論では、「インスタンス」は通常、ユーザーデータとプロフィールURLをホストするActivityPubノードを指すことが多く、記事もその文脈を狙ったもののように見える
      単語に特定の概念と構造が結びつき始めると、「分散型ソーシャルメディア」と聞いて多くの人がActivityPub式の連合構造を思い浮かべ、ATProtoを見て「なぜ人々が登録するBlueskyインスタンスが1つしかないのか」と尋ねるようになる
      まったく新しい観点ではないとしても、こうした既存の連想が頭の中で固まっている人たちに後で再リンクする価値のある有用な記事に見える
    • ATProto対ActivityPubは、Fediverseの東西教会大分裂のように見えるかもしれない
      「filioque」勅令の代わりに、「連合」の定義をめぐって双方が食い違う話をするブログ記事が行き交っているわけだ
    • MastodonとATProtoの区別と比較は必要だと思う
      Fediverseモデルは従来のソーシャルネットワークの観点から理解しやすいが、ATProtoはユーザーにデータ主権を与えつつ、中央集権型ソーシャルネットワークの拡張性を得ようとする新しい概念だ
  • ここの比喩は破綻していると思う
    RSSはGoogle Readerにまったく依存しておらず、全盛期でさえ、今のメールがGmailに依存しているより依存していなかった
    ATProtoでは、AppViewが有用になるにはリレーに大きく依存し、リレーの運用コストもかなり高い
    また、RSSの図の黄色い円がブログを意味しているのに対し、Facebook投稿を意味する円は性質が異なる。ブログはそれ自体で独立している
    ATProtoが悪いという意味ではないが、この記事は明確にするというより混乱を増やしているように感じる

    • リレーは今では実際かなり安くなった
      以前は全トラフィックを保存していたので少し高かったが、sync 1.1でその部分が外れ、今では月20ドルの仮想マシンでもかなり簡単に動かせる
    • リレーがAT Protocolインフラの中で比較的重い部類なのは確かだが、運用費は今のところおおよそ月30ドルで、たいていの人が負担できる水準だ
      本当に高価で難しいのは、中央集権型であれ分散型であれ変わらないモデレーション
      この記事の著者は9か月前にリレーに関するありがちな誤解を扱っている: https://news.ycombinator.com/item?id=45077291#45078223
  • 私が見るに、リレーはATProtoを高性能に動かすための接着剤だ
    コンテンツには無関係にデータを運び、各AppViewが把握すべきサービス数を減らす役割を果たしているように見える
    記事でも述べられているように、Mastodonに対する大きな改善点は、リレー、AppView、PDSがそれぞれ異なるスケーリング要件を持つ別個のサービスだという点であり、システム設計上の問題に対するかなり美しい解法だ
    [1] https://atproto.com/guides/glossary

    • その通り、リレーはそれを行う1つの方法だ
      ただし、見えない最適化であり、ほかの戦略もあるので、記事ではほとんど省いた
      たとえば今日では、多くの小規模アプリは独自のデータベースインデックスを作らず、Constellation(https://constellation.microcosm.blue/)に依存しているため、リレーをまったく使っていない
    • リレーでコンテンツを直接削除することもある
      ホスティングすると違法になるコンテンツだけを削除していると主張しているが、それがどこまで本当なのかは分からないし、今後変わるリスクも常にある
      https://docs.bsky.app/blog/blueskys-moderation-architecture#...
  • 2つの方式の違いを説明している点はよかった。
    ただし、「インスタンスが解決する問題をATProtoはどう解決するのか」という問いには答えておらず、もどかしかった。
    たとえば投稿のデフェデレーションを、友人の投稿が見えないかもしれない原因不明の理由程度に片づけてしまうと、「ではatprotoはデフェデレーションが解決する問題をどう解決するのか」に答えられない。
    このフレーミングから自然に出てくる基本的な答えは「解決しない」である。

    • モデレーションのことを聞いているのなら、すべてがRSSである世界で期待されるやり方に近い形で動く。
      ホスティングのレベルでは、blogspot.com や Cloudflare が特定の案件でブロックするのと同じように、明白に違法なものを理由にホスティング事業者がアカウントを停止できる。
      アプリケーションのレベルでは、アプリ管理者とモデレーターが、ユーザー生成コンテンツを扱うほかのウェブサービスと同じように調整する。
      アプリ開発者が選ぶ問題であり、Reddit のようにユーザー領域のモデレーションの基本要素を提供することも、Bluesky のように別個のモデレーションサービスを差し込むこともできる。
      互いに争いうる「コミュニティインスタンス」に相当するものがないため、デフェデレーションもない。あるのはホスティング、アプリ、そしてアプリ開発者の選択によるアプリレベルのモデレーションだけである。
    • よりよい問いは「ActivityPub はデフェデレーションが生み出す問題をどう解決するのか」だと思う。
      これは Microsoft がメールでやっていることと本質的に似ている。最大手のプロバイダー以外からのメッセージを捨て、実質的にデフェデレーションすることで、ユーザーがメッセージを届けるには Microsoft やほかの既存大手事業者を使わざるをえないようにする。
      そうなると新しいインスタンスはメッセージを届けられず、ユーザーも獲得できない。既存の大手事業者には新しいインスタンスと連合しないという歪んだインセンティブが生まれる。
      このようなアーキテクチャの選択は、長期的には寡占を固定化する効果がある。
      スパム対策に必要だと言われるが、DKIM や逆引きDNS などを正しく設定すれば Gmail に通常どおり配送できるように、そうしていないプロバイダーもあるし、彼らがより多くのスパム問題を抱えているわけでもない。
      明白な代替案はクライアント側でフィルタリングすることだ。Microsoft のような運営者ではなく、uBlock のような性質のフィルターリスト提供者がフィルターを供給すれば、特定のインスタンスを運営していない以上、全員を自分のインスタンスへ誘導するインセンティブはない。
    • そうした問題は解決できていない。
      firehose 全体を消費できる AppView が非常に多くあり、そのあいだを自由に選べて、自分でも安価に運用できる代替宇宙であれば別だが。
      ATProto は、デスクトップやモバイルの RSS リーダーなしで、Google Reader または同規模の複製サービスでしか RSS を読めない世界の RSS に近い。
  • アヒルのようにガーガー鳴くならアヒルだ。
    アカウントには単一のPDSがあり、DID はユーザーの正式なデータフィードであり書き込み先でもある PDS を指している。
    データは複製できるが、PDS が正本として扱われる。
    これは分散アーキテクチャというより、クライアント/サーバーアーキテクチャにはるかに近い。
    P2P データベースもなく、DHT やピアに書き込むわけでもない。PDS に書き込み、その書き込みが選択的にミラーされる。
    発見も DNS で行われるので、ピアにデータを問い合わせるわけでもない。
    リレーにはピアとしてではなく、PDS に正本としてホストされたデータのコピーを要求するクライアントとして接続する。
    PDS をインスタンス、リレーをミラーと呼ぶことが無理だとは思わない。

    • そう表現してもよい。
      ただし、Mastodon を語る人たちが「インスタンス」と言うときに普通意味しているものとは異なる。
      Mastodon でインスタンスとは、データホスティング、アプリ、コミュニティ、モデレーションが結びついた不可分の束である。
  • ATprotoは、一貫性のために真の分散化を犠牲にし、MastodonとActivityPubは、よりアクセスしやすい分散化のために真の一貫性を犠牲にしている、という理解
    一般的なセルフホスト利用者にとっては、ActivityPubノードを運用するほうが、ATのコンテンツリレーを運用するよりはるかに取り組みやすいから
    ATで「分散化」できるのは結局のところ自分のデータだけで、ネットワークの一部を共同所有するというより、自分のデータの所有に近い
    HNでもすでに何度も繰り返されてきた話でもある

    • 興味深い見方だけど、今の自分の理解では、AtProtoのほうがよりアクセスしやすく、より分散化されているように感じる
      ActivityPubでは、インスタンス運営がデータ、アプリケーション、その後の拡張の問題まで全部引き受けることになるので、自分で運用責任を負うか、他人のインスタンスに縛られるかのどちらかを選ぶ必要がある
      選んだインスタンスが気に入らず移ろうとしても、まだ変わっていなければ、ほぼ最初からやり直しになる状態
      AtProtoでは、同じアイデンティティを保ったまま別のアプリケーションプラットフォームへ移るのが簡単で、プラットフォームからデータを持ち出してセルフホストするのも、ユーザー体験としては難しくても少なくとも可能ではある
      例えば最近Tangledを初めて使ってみたけど、既存のbskyベースのドメイン(h14h.com)でログインできた。新しいアカウントや新しいユーザー名を作る必要はなく、すでにそこにあったかのようだった
      VPSでgitリポジトリをセルフホストする設定も、長くても午後半日仕事で、ほとんど気にしなくていいバックエンドサービスとして動いている
      最悪の場合、tangled.orgに「リポジトリが古く、最新のTangledと互換性がない可能性があります」といったバナーが出て、最新バージョンでDockerイメージを再ビルドしてデプロイすれば解決する
      アーキテクチャとしてはAtProtoのほうが確かに頭に入れるのは難しいけど、実際にユーザーに触れさせるところまで持っていくのはずっと単純だと思う
    • 「真の」分散化なんてものがあるのか、よく分からない
      自分の頭の中では、ひとつのスライダーというよりトレードオフのビュッフェに近い
      ちなみにAPの世界でも、個人や小さなチームがリレー、ミラー、キャッシュ、AppViewなどを運営している。ただ、規模が大きくなるほど高くつく可能性がある、という点はその通り
    • それも一部ではあるけれど、全体を説明し切れてはいない
      ATは一貫性だけでなく、アプリ全体にまたがる共有データモデルも提供している
      だからアプリ同士が他のアプリのコンテンツを参照してレンダリングできる。型付きJSONのWebのような形で、異なるアプリは同じネットワークを見るレンズだ
      誰でも既存データの上に新しい体験を作れるし、APにはこれに相当するものがほとんどない
      APはデータをアプリに結び付けるが、ATでは、世界中のデータが入ったひとつのグローバルデータベースをすべてのアプリがクエリしているのに近い
      なぜ議論がいつもリレーで止まってしまうのか分からない。今では、その気になればリレーはだいたい月30ドルで動かせるし、Blueskyやコミュニティのリレーを無料で使うこともできる
      多くのアプリはリレーをまったく使わず、Constellation(https://constellation.microcosm.blue/)のようなコミュニティインデックスに依存している。独自サーバーやデータベースすら動かしていないアプリもある
    • Mastodonにもコンテンツリレーはある
      でもむしろ逆に、ATprotoのほうがより分散化されている、あるいは少なくともそうなろうとしている、と主張したい
      ActivityPubの世界では、アイデンティティ、アプリケーション、ホスティングが本質的に結び付いている
      Lemmyを使うには、そのLemmyインスタンスに2つ目の恒久的に分離されたActivityPubアカウントを作るか、自分のMastodonインスタンスがLemmyに理解できるメッセージを送れる範囲でしかLemmyを使えない
      新しいActivityPubアプリはどれも新たな相互運用性の問題を生む。各アプリが自分のアイデンティティとホスティングを所有しているからだ
      自分がセルフホストしたMastodonインスタンスがLemmyサーバーにアイデンティティを提供し、そのLemmyサーバーが自分のインスタンスに、自分の代わりにコンテンツをホストしろと指示する方法はない
      ATProtoが言っているレベルに合わせるには、少なくともそのくらいは必要だ。ただ、実在するATProtoがどこまでそれに当てはまるのかは分からないし、現実に存在するActivityPubも、支持者たちが言うほど相互運用的ではない
  • このブログはアーキテクチャをうまく説明している
    でも実際には、Blueskyという会社が主要アプリを運営し、ユーザーデータの大半をホスティングしていることが「問題」だと思っていた
    プロトコルレベルでは分散化されていても、実際のシステムは統制主体という観点では依然としてかなり中央集権的だ
    必ずしもBlueskyの責任だという意味ではないけれど、ここまではそういう流れだったのではないかと思う

    • 「問題」は、人々が問題を探していることにある
      この問題はBlueskyやATProtoに特有のものではなく、営利組織でも非営利でもボランティア集団でも、誰かが常に問題にする対象を見つける
      自分は投資家でもないし、初期ユーザーだったという以外にBlueskyと利害関係もない。自分なりの限界の中でプロトコル、会社、ウェブサイトも理解している
      サイトとアプリはよく動いている。人々は、より大きくより良い解決策を作ることより、問題探しに集中しすぎている
      大多数は、LemmyやMastodonのような暫定的なP2P解決策を望んでいない。コンテンツが一か所にあり、その主体に責任を問えることを望んでいる
      だからP2Pソーシャルネットワークは決して大衆化しないと思う。LemmyやMastodon周辺のドラマは、Twitter、Reddit、Facebookなどを全部合わせたより多かった
      これは自分の2セントだけど、配偶者や友人たちも同じ考えのようだ
    • 別のアプリ、別のユーザーデータホスティング、個人ホスティング、別のバックエンドサービスがある
      理論上も実際上も分散化されている
      ただ、Blueskyが最大の部分を運営しているので、コミュニティやマインドシェアのレベルでは分散化されていないとは言えるけれど、その点も変わりつつある
    • 本当にうまく説明しているのだろうか?
      「インスタンスはない」と言うだけで、そのアーキテクチャが認証、同期、発見といった問題をどう回避しているのかは説明していない
  • Google Reader をたとえに選んだのは、不吉に感じる
    RSS は Google Reader の終了後も生き残ったが、RSS を使っていたすべてのコミュニティが生き残ったわけではなく、その多くは今でも RSS が何なのかも知らない
    分散化されたものだと主張しながら、分散化エコシステムにおける巨大な 社会的中央集権化 を良い事例のように繰り返し指し示すのは、ほとんどフロイト的にすら感じられる
    とくに私たちは、その結末をすでに知っている
    Google Reader は多くの RSS の家をひとつに束ね、ソーシャルグラフやコメントのような価値を加えたが、Google 幹部の気まぐれで崩壊し、RSS をほぼ殺し、印象的なソーシャルグラフを破壊した
    そんなたとえでは ATProto に大きな信頼は持てない

    • atproto の核心は、ソーシャルグラフ も「ブログ/RSS」側に存在するということ
      アプリはそれをインデックスするだけ
      だからこのたとえでは、誰でも同じグラフを使って Google Reader を復活させたり競合したりできる
      気になるなら、今 http://leaflet.pub が実際にそういう形で動いている
    • 不吉だが正確ではある
      デスクトップやモバイルの RSS リーダーは使えず、Google Reader や同規模のクローンサービスでしか RSS を読めないと想像すればいい
    • その代わり、今は優れた RSS リーダーがたくさんある
      最近も誰かが NetNewsWire について話していた
  • 重要な違いは、ブログには自分の Web サイトがあり、RSS フィードに全文を必ず載せる必要はないということ
    Bluesky は普通そうは動かない。PDS にあるものはすべて複製される
    また、簡単に複製できるよう、ブログ全文を PDS に入れることを推奨している
    そうすると、インデックスしたい者は誰でもコピーを持っていけて、彼らがそれで何をしようと制御できない
    必ずそうしなければならないわけではない。自分の Web サイトにブログを載せて、Bluesky にはリンクだけを投稿することもできる

    • それは、ブログを直接引っ張っていくスクレイパーとどう違うのか?
    • 正直に言えば、それは atproto が 生データのプロトコル だからでもある
      atproto アカウントの上に HTTP フロントエンドを載せるのは推奨されるやり方で、実際そうしている人も多い
      私も pfrazee.com でそうしているし、正本が atproto にある私の leaflet ブログ記事も、自分のブログでレンダリングしている
  • RSS との比較は誤解を招く
    Atproto アプリは、ユーザーのコンピュータ上で動いてコンテンツの出所に直接つながる RSS リーダーとは違う
    Atproto アプリは、読者に提供するコンテンツを制御し、フィルタリングし、形作る サーバー
    Atproto アプリは、検閲、シャドウバン、広告表示、アルゴリズムフィード化を好きなように行える
    ユーザーは無力で、クリエイターは叫ぶことしかできない被害者になる
    誰でもデータをどこにでもホストできるという事実は、そのデータを配布する手段がなければ完全に無意味だ

    • それは事実ではない
      まず、そうしたことをしない別の AppView を使える
      フィードはユーザーの望む形でアルゴリズム化できるし、複数のアプリがあれば、ひとつの中央の作り手が望むアルゴリズムに縛られることもない