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

オープンソーシャル

概要

  • オープンソース がインフラの標準となった歴史的経緯
  • ソーシャルアプリ にも同様の変革期が到来中
  • AT Protocol (atproto)が「オープンソーシャル」の代表的取り組み
  • 従来型SNSの問題点と 分散型ソーシャル の可能性
  • ドメイン所有による データ主権 の回復

オープンソースの勝利とその意味

  • 現代の 基幹インフラ はほぼオープンソースで構築
  • 35年前は クローズドソース が主流で、オープンソースは弱小勢力
  • MicrosoftのCEOが「 オープンソースは癌」と発言した過去
  • 産業界での 採用実績 により、オープンソースが事実上の標準に
  • 現在は「 オープンソースを選んで解雇されることはない」という常識

ソーシャルアプリにおける新たな潮流

  • 今、 ソーシャルアプリ も35年前のオープンソースと同様の転換点
  • 新しい潮流「 オープンソーシャル」の登場
  • 複数のビジョンが競合する中、 BlueskyのAT Protocol が最有力
  • atprotoはまだ発展途上だが、他に類を見ない革新性
  • 筆者はBlueskyの元スタッフであり、 AT Protocol のファン

AT Protocol(atproto)の基本的な考え方

  • atprotoは ユーザー・開発者・製品 の関係性を根本から変革
  • オープンソースが「 コードの自由」を実現したのと同様、オープンソーシャルは「 データの自由」を実現
  • Webは本来、 各自が自身のデータを所有 できる仕組み
  • ドメイン所有者は 自由にホスティングを変更 でき、リンク切れも最小限
  • ホスティング業者の力 が適切に制限される設計

現代SNSの問題点

  • 現在のSNSでは、 ユーザーのデータがプラットフォームにロックイン
  • ユーザー名(@alice、@bobなど)はSNS企業によって割り当て
  • 投稿やフォロー、いいね等の情報は SNSのデータベース に依存
  • SNSの便利な集約機能(通知、フィード、検索等)は 中央集権型 で実現
  • 利便性と引き換えに、 ユーザーの主権が失われる 構造

データ主権の喪失とその影響

  • SNSを離れると 人間関係や投稿履歴 を全て失う
  • データの「エクスポート」は可能だが、 社会的文脈を失う死んだデータ
  • 集団での移行はほぼ不可能で、 ネットワーク効果 がユーザーを縛る
  • プラットフォーム企業は ユーザーを尊重するインセンティブを失う
  • 広告過多、買収、サービス終了などで ユーザー体験が悪化

オープンソーシャルの可能性とAT Protocolの特徴

  • atprotoでは ユーザー名がドメイン名 (@alice.com等)として機能
  • ドメインの所有権により、 データ主権がユーザー側に戻る
  • サービスを乗り換えても ソーシャルグラフや投稿データを維持
  • 既存のSNSと見た目は変わらないが、 根本構造が分散型
  • データの所有権と移転の自由 を実現する新たな社会基盤

まとめ

  • オープンソースが 産業標準 となったように、オープンソーシャルも普及が予想
  • AT Protocol はその先駆けとして注目
  • 分散型ソーシャル がもたらすデータ主権の回復
  • 長期的なコミュニティの努力が 新たな標準 を築く可能性
  • 未来のSNSは、 ユーザーが自分のデータと関係性をコントロール できる世界

Hackerたちの意見

さて、ちょっと物議を醸す質問なんだけど… 無料でトップレベルドメインを持つことってできるのかな?ドメイン登録にかかる実際のコストは何なんだろう?Let's Encryptが無料で安全な証明書を提供できるなら、他の非営利団体も無料でドメインを提供できるはずじゃない?見た目はどうでもいいけど、UUID v7を重ねたものでもいいし、要はグローバルにユニークで無料で使えるってことが大事だよね。サイトに行ったらブラウザが記憶するから、そんな長ったらしいのを毎回打つ必要もないし。これって本当に悪いアイデアなのかな™?

アイデアを完全には理解できてないかもしれないけど、ここでの違いは、Let's Encryptの証明書はその場で生成できるってことだよね。ドメインはブランドとして考えられていて、今の時代に5文字のドメインを手に入れるのはほぼ不可能。ここでのコストは、他の人も欲しがるドメインを借りるってことだから、みんなが君のLE証明書を欲しがってるわけじゃないんだ。

ドメインを運営するにはお金がかかる。これを避ける方法はないよ。DNSクエリに応じるためにはサーバーリソースが必要で、それにはサーバーと電気が必要なんだ。だから、無料で提供するってことは、誰かがそれを補助しなきゃいけないってこと。Let's Encryptが運営できるのは、大企業が自社の広告をISPに妨害されずに届けたいからなんだ。じゃあ、誰が無料のドメインを補助する理由があるの?

いくつかのGitHubプロジェクトでは、親切にサブドメインをお願いするイシューを送ると無料のドメインを提供してくれるみたいだよ。https://github.com/topics/free-domains それと、君が言ってることはトルオンリンクの仕組みにすごく似てるね… ただし、暗号化を提供してMITMや他の方法を防ぎつつ、IPアドレスを隠すことができる。僕が時々使う別のアイデアは、cloudflareトンネルやsshフォワーディングを使うこと。serveo.netやpinggy、ngrokみたいなSSHベースのリモートフォワーディングを使うのもいいよ。もしこれを内部で使うなら、僕がすごく好きなパイピングサーバーを使うことを提案するよ。ウェブブラウザでトルオンリンクみたいなものを作りたいと思ってるんだ、すごくクールだよ。https://github.com/nwtgck/piping-server

俺にとっては、UUID v7が別のUUID v7の上に重なってても構わないけど、それがグローバルにユニークで、無料で利用できるってのが重要だよね。基本的にはIPv6アドレスのことを言ってるんだ。面白いことに、最近のほとんどの家庭用ISPは、すでに自宅のネットワークにIPv6 /64以上を割り当ててるんだよ!でも、残念ながら、彼らは家庭用ユーザーが必要としないポートのほとんどをファイアウォールで遮断してるんだ。俺のネットワークでも、ルーターを設定して各機器にパブリックにルーティング可能なIPv6アドレスを割り当てても、ネットワーク(ルーターじゃなくて!)が非確立の受信フローを許可するポートは22/tcpだけなんだ。もしそれが機能しても、結局は一時的なものだし。せいぜい、ISPが割り当てを同じに保ってくれても、ISPを変えたら失っちゃうからね。(ISPのメールアドレスと同じ問題だ。)ここでの本当の鍵は、誰かが個人にIPv6の小さなスライスを自由に配って、ホスティングプロバイダーや家庭用ISPがその小さなプレフィックスのためにBGPルートをASNに追加してくれることだよね。そうすれば、生涯にわたって安定して持ち運び可能な無料のIPv6アドレスが手に入る。理論的には確かに可能だけど、まだ実現されてないんだよね。LetsEncryptが「理論的には確かに可能だったけど、まだ作られてなかった」みたいに。 --- それを踏まえて、もし本当にこれをDNSにしたいなら(なんでかは分からないけど;短くて覚えやすい名前じゃないなら、DNSはこの仕事には向いてないよ)、ngrokみたいなシステムを使って、動的なレコードを自分のgTLDの下でドメインとして直接提供することができるよ。サブドメインじゃなくてね。各ドメインに独自のDNSゾーンを持たせることもできるかも。それは確かに面白いね。昔、.meのccTLDがこれをやってたことを思い出してほしい — 彼らは「無料」で.meの「ドメイン」を配ってたけど、その「無料」ドメインのすべてのウェブトラフィックは、彼らのL7リバースプロキシサーバーによって仲介されて、HTMLページには広告が挿入されてたんだ。

それは美しくある必要はない。UUID v7が別のUUID v7の上に重なってても構わないけど、それがグローバルにユニークで、無料で利用できるってのが重要だよね。これがatprotoのdid:plcの出番なんだ。https://web.plc.directory/ は無料のID番号を提供してるよ。例えば、俺のは https://plc.directory/did:plc:3danwc67lo7obz2fmdg6jxcr だ。あなたのドメインは、その特定のdid:plcと関連付けたいことを示すtxtレコードを使うんだ。

もしかしてATをTOR経由で?隠れたドメイン/オニオンアドレスは完全に無料だし…これはプロトコルにとって本当に素敵な強化になると思うよ。

.FREEのイニシアティブがあったけど、しばらくしたら変なことになって、締切も守られず、結局何も起こらなかった… https://icannwiki.org/.free

それって、普通の無料ダイナミックDNSみたいなもんだけど、みんな「example.dyndns.net」を自分のオンラインの「ハンドル」として考えないだけだよね。

無料のTLDは実際的じゃないと思う。TLDであることや、パブリックサフィックスリストに入っていることには特別な条件があるからね。けど、TLDの部分を外せば、好きなドメインで自由にできるし、誰でも頼めば無料のサブドメインを配ることもできる。ただ、これをやろうとすると、ダークインターネットが後悔させてくるから注意が必要。ある日突然、巨大な詐欺メールのDNSをホスティングしてたなんてことになりかねない。誰でもURLリダイレクタを作れるし、言語学習プロジェクトとして使う人もいるけど、実際にオンラインに出すとすぐに後悔することになるよ。残念だけど、これは祝うべきことじゃないね。

.tkは昔は無料で、登録されたドメイン数で世界一のccTLDだったんだ。どんな用途で使われてたか想像できるよね。Facebookはフィッシングを助長したとして、運営会社(オランダのFreenom)を訴えたから、もうそれは使えなくなっちゃった。

残念ながら、こういうものが普及する世界は想像しにくいね。「伝統的」なソーシャルメディアのターゲット層は、分散型ソーシャルメディアを求めるニッチな人たちとは全然違う。ほとんどの人は、ソーシャルメディアを手段として使っていて、その背後にあるシステムにはあまり興味がないんだ。もし答えが「ほとんどの人はブルースカイアカウントを作ればいい」ってことなら、それは全くの本末転倒で、結局みんな一つか二つの大手プロバイダーに集まるだけだよ。

残念ながら、そうなんだ。問題は、基本的に人々だよ。

みんながbsky.socialにいるとしても、それは現状よりもずっと良くなるってことだよね。AWSにたくさんの人がいるからって、ウェブが非中央集権じゃないわけじゃないし、いつでも移動できるからね。必要なら敵対的にでも。

もし答えが「ほとんどの人はただblueskyアカウントを作ればいい」っていうなら、うわ、誰かがこの記事を読んでないってことだね、笑。明らかにそれは答えじゃないし、もしこの記事をちょっとでも読んでたら、この記事の全体のポイントが「ATプロトコルが「新しいアカウントを作る」という問題を解決する」ってことだって気づくはずだよ。マジで、ログオフしなよ。

知ってる限りでは、blueskyはまだちゃんとフェデレーションされてないよ。すべてが単一の「BGS」ルーターサーバーに依存してる。

僕はシンプルな人間だから、ダンの投稿を見たらクリックしちゃう。オープンウェブが先行者利益で勝っただけなんじゃないかって少し心配してる。でも、OSSが勝つのを見て希望が持てる。atprotoみたいなものが勝つのも見てみたいな。ソーシャルメディアの大きな問題は、ネットワーク効果がより良いアプリの人気を妨げていることが明らかだよね。

ソーシャルメディアの大きな問題は、ネットワーク効果がより良いアプリの人気を妨げていることだよね。ATProtoの一つの役割は、すべてのアプリがatprotoファブリック上で動く前提で、ソーシャルアプリの本当の競争を可能にすることなんだ。みんなが一度だけatprotoみたいなものに移行できれば、サイロから出られて、これが最後の「移動」になるっていうのが、核心的な希望の一つなんだ。

この作品についてはすごく複雑な気持ちだ。片方では、これらのアイデアが非常に魅力的だと思ってる。これはインディウェブの理念に沿っていて、誰もが自分のコンテンツを持つ個人ウェブサイトを持つことを想像させる。そして、このページや記事は美しくまとまっている。一方で、これらの基準を自分のプロジェクト(個人ウェブサイトやオープンソースプロジェクトでの使用)に採用している開発者はあまり見かけないし、カジュアルユーザー(自分のブログやウェブサイトを作る人たち)からもそうだ。所有権、オープン性、相互運用性に対する人々の無関心がすごく気になる。人々はただTikTokやInstagramのリールを与えられたいだけなのかなって思わせる。ビジョンや仕事には敬意を表するけど、私たちの仕事にこれをどう活かせるか見てみたい。でも、どうやってこれをマイクロニッチな趣味以上のものにできるか、ちょっと考えちゃうな。

その通りだね。でも、結局は自分たちがこの技術を普及させて実現させるかどうかにかかってる。もしかしたら、新しいスタートアップがオープンソーシャルに深く影響を受けたCEOやCTOを持っていて、みんなに届く成功したアプリを作るかもしれない。誰にも分からないけど、何もしなければ絶対に実現しないよね。

所有権やオープン性、相互運用性に対する人々の無関心には、すごく心配してる。みんながただTikTokやInstagramのリールを見せられたいだけなんじゃないかって思っちゃうよ。この気持ちについて詳しく教えてくれない?なんでそんなに心配なの?データの所有権って抽象的な概念に、なんで人々は気にするべきなの?メディアに対して全く所有権や主体性がなかった時代、テレビや本、映画、ラジオを見せられてた時はみんな平気だったじゃん。ほとんどの人はそれを望んでるし、メディアに関わる主な動機は、その瞬間に楽しむことなんだ。今は自分の投稿を友達や家族、場合によっては他の人にも見てもらえる場所があるのに、「Instagramの投稿を所有してない」ってことに、なんで気にする必要があるの?

開発者の体験をもっとシンプルにして、ATProtoを気軽に使えるようにするためには、まだやるべきことがある。でも、その方面での開発は進んでるし、次の6〜12ヶ月はすごく楽しみだよ。もっと長い話をすると、ほとんどの人はATProtoがBlueskyだけじゃないってことを理解していないし、ユースケースはもっと広いんだ。これが市場で展開されるには、もっと時間がかかるだろうね。

うわ、俺はずっとActivitypubの方が良いプロトコルだと思ってたし、ATは安っぽいコピーだと思ってたけど、この記事を読んで実際にはATの方がずっと優れてるって気づいたよ。主に、複数のプログラムが同じアイデンティティにアクセスできるからね。これは本当に素晴らしい機能だ!この記事は俺にとって目から鱗だった。

あなたもこのアーティクル好きかもしれないよ、分散エンジニアの視点から同じアイデアが書かれてるから。 https://atproto.com/articles/atproto-for-distsys-engineers

ありがとう!うまくいってるみたいで嬉しいよ。APとの比較はいつもイライラする理由があって、同じ範囲のことをしようとしてないからね。

それって、中央集権的なアイデンティティサービスがあるってこと?

次の「Twitterの力の空白を埋める」プロジェクトが、ちょっと間違ったアプローチをしてる気がする。みんなTwitterの機能を完璧にしようとして、ユーザーの成長とコンテンツ不足の問題で壁にぶつかってる。人は他の人がいるところに集まるから、腐ったクジラの周りにまだ人がいるんだよね。最近始まったOpenAIのタイムラインみたいなやつは、もっと良いアプローチだと思う。バックグラウンドでデータを集めて、ユーザーに提供することでコンテンツの問題を解決してる。あの実装がうまくいくかは分からないけど、正しい方向性だと思う。個人的には、Twitterの価値はツイートを投稿することじゃなくて、データの帯域幅にあると思う。99.9%のユーザーは面白いことを投稿しないから、ローカルのテキストファイルや共有コンテンツで十分かも。価値はコンテンツのソーシングにあるから、マルチソーシャルRSSリーダーにオプションのP2P機能があるのが理想だと思う。あくまで私の意見だけどね。

記事で説明したように、マイクロブログを使って初期のナラティブを作るけど、これはTwitterのような製品に限らないんだ。Tangledは「atproto上のGitHub」、Leafletは「atproto上のMedium」みたいな感じ。クライアントサイドのP2Pの問題は、一貫性を持った大規模な集約ができないことだよ。普通の人がソーシャルアプリに期待するのは、一貫性のある大規模な集約だからね。あなたが言ってたOpenAIのやつは、実際にatprotoが得意とする完璧な例だよ。データがすでにネットワークに存在してるから、それをクローリングしてインデックス化して、自分のツールを使ってプロアクティブなことができる。 https://github.com/graze-social/iftta でその分野の初期の作業を見てみて。

ソーシャルネットワークは「同じだけど…」って形では出てこないよ。古いプラットフォームではできないユニークなことをすることで、登場するんだ。

だからこそNostrは違うんだよね!基本的に何でも作れるんだ。ブログ、Twitterみたいなアプリ、ストリーミングサービス、メッセージングアプリ、可能性は無限大!プロトコルで作られたものの一部を紹介するね: https://nostrapps.com

著者が自分のドメインを所有することの重要性を認識している人がいて嬉しいよ。それがなければ、常に他の誰かの思い通りになるからね。あとは技術的な詳細だけだよ。

これって、100%パブリックデータのためのものだよね?それとも、可視性のコントロールの概念があるの?

今のところ、はい、プロトコル上には100%パブリックデータだけが存在してるよ(もちろん、DBに持っているデータでプロトコルデータを補完することはできるけどね)。将来的には、プロトコル上でいくつかのタイプのプライベートデータも可能にする計画があるよ。最近のポールからのメモを見てみてね:- https://pfrazee.leaflet.pub/3lzhmtognls2q - https://pfrazee.leaflet.pub/3lzhui2zbxk2b

各アプリがそれぞれ独自のコレクションタイプを持っているのを見ると、ちょっと悲しいな。お互いのコレクションを使えるとしても、結局は明示的に設計された範囲内でしか相互運用できないってことだもんね。ActivityPubの美しいところ(でも実際にはあまり関係ないかもしれないけど)は、Mastodonのユーザーが特別なことをしなくてもPixelfedのユーザーをフォローできるところ。まるでTwitter、Instagram、Reddit、YouTube、Substackが自動的に相互運用できるみたいな感じだね。

共通のレキシコンに向けた取り組みについては、こちらを見てね: https://github.com/lexicon-community

うん、面白いけど、プロトコルの実装(Bluesky)が投資家の影響を受けないなんてあり得ないよ。そんな状況で「ネットワーク」を再現するには、かなりの資本が必要だしね。だから、クールだけど、実際にはオープンじゃないんだよね。

彼らはずいぶん前にVCを受けたんだよ。

明確にするために言うと、Blueskyはアプリで、ATProtocolはそれと一緒に作られたオープンなソーシャルファブリックなんだ。Blueskyの上に構築されているものでもあるよ。長期的には、ATProtocolはBlueskyという会社から分離されて、標準として共有ガバナンス構造の中に収まることになるよ。