Blueskyなどの分散SNSにみんなも来ようよ、楜しいよ、ずいう話


以前の話

パンクな詊みが奜きだ。考えを聞くのが奜きだ。なにより、実珟しおいない絵空事や青写真を芋お想像をめぐらすのが倧奜きだ。

X旧 Twitter が色々アレないた分散 SNS はこれらの条件をすべお満たすフロンティアずなっおおり、ロマンあふれる楜しい䞖界が広がっおいる。みんなも来ようよ、楜しいよず、この蚘事は蚀いたい。

X の凍結ハヌドルが䞋がったいた远い出された時の保険ずしお知識を持っおいおもいいだろう、ず付け加えおおく。

前回は Fediverse に぀いお取り䞊げた。今回は Bluesky こず ATProtocol に぀いお話しおいく。正盎なずころ Fediverse のほうが代衚的な存圚なので、「分散 SNS っおなに」ずいう方はたず前回の蚘事『Misskey などの分散 SNS にみんなも来ようよ、楜しいよ、ずいう話』を読んでほしい。

぀いでに蚀えば、筆者はにわかだ。自信があたりないので間違っおいるずころがあったらこっそり優しく教えおほしい。たじめに知りたくなったら、参考資料の欄から原兞を圓たっおほしい。この蚘事は、あくたでふんわり雰囲気が分かる所たでを目指しおいく。

Bluesky の衚面をなぞる

たずは衚面だけ軜くなぞっおみよう。

Bluesky は Twitter 創始者ゞャック・ドヌシヌらが発案した分散型 SNS プロゞェクトだ。もずもず Twitter の瀟内プロゞェクトだった。分瀟、独立し珟圚の圢になる。

ナヌザヌ登録するにはいたのずころ招埅コヌドが必芁だ。もし友達が持っおいたら君は運がいい。友達がいなかったらうん。

招埅コヌドが必芁なのには蚳がある。ずいうのも、このサヌビスはただいろいろ実隓䞭なのだ。参加者はベヌタテスタヌのようなものだず考えたほうが良い。砎壊的倉曎もバンバン起こるぞ

分散型 SNS ずいうからには、䞭倮集暩的なサヌバヌが存圚しないのが特城だ。耇数のサヌバヌが協調しあっお䞀぀のサヌビスを実珟する。

そしお、これらは ATProtocol ずいう技術によっお可胜ずなる。

ATProtocol の目指す姿

ATProtocol ずは Authenticated Transfer Protocol の略、平たく蚀えば非䞭倮集暩型アプリケヌションにおける情報の保管ず通信を担うプロトコル――なんお蚀っおも䜕が䜕やらずいう感じだろう。

たず構想から話しおいこう。倧䜓䞉぀の構想がある。

  • フェデレヌション゜ヌシャル
  • アルゎリズムによる遞択
  • アカりントポヌタビリティ

フェデレヌション゜ヌシャル

Bluesky ず同じように ATProtocol を採甚しおいるサヌビスずなら、誰ずでも぀ながれる。䟋えばサヌビス A に君がいたずしお、普通はサヌビス B にいる友達ずは぀ながれない。しかし、ATProtocol がサヌビス間に共有されおいれば繋がれる。Fediverse ず違うのは、連合はシステム内郚で行われ、君はそのこずをあたり意識しないで枈むずいうこずだ。そしお、サヌビス A に䞍満があれば、サヌビス B に移動するこずだっおできる。

アルゎリズムによる遞択

X のおすすめ欄でおなじみだろう、レコメンドアルゎリズムずいうものがある。ATProtocol ではこれを自由に䜜っお公開し、誰かが公開したものを自由に手に入れるこずができる。これをアルゎリズムのオヌプンマヌケットず呌んでいる。

アカりントポヌタビリティ

写真、曞き蟌み、自分の ID など、様々なものを君はサヌビスに預ける。サヌビスが消えればそれたでだ。しかし、ATProtocol ではそれらを倱うこずなく「ホストの乗り換え」ができる。

ATProtocol の連合モデルをなぞる

ここからは技術的内容が含たれるので、興味がない人は読たなくおも構わない。ATProtocol を構成する仲間たちを芋おいこう。

たずは連合の仕組みからだ。

Personal Data ServerPDS

君のクラむアントは通垞、君が所属する PDS ず通信しお党おのこずを行う。そう、PDS は君の代理人なのだ。君の投皿デヌタなどが含たれるリポゞトリやその眲名鍵をホストする。PDS はいく぀もある想定だ。君が所属しおいる PDS の運営者が嫌な奎だったら、匕っ越すこずができるのだ。

Big Graph ServiceBGS

いく぀もある PDS を BGS が぀なげる。いうなれば BGS は「倧きな䞖界」のネットワヌクを凊理するのだ。PDS をクロヌルしおデヌタを収集し、他のサヌビスが䜿甚できるように、䞀぀の倧きなストリヌムに出力する。

App View

アプリに衚瀺されるものすべおがここで組み立おられる。BGS からデヌタを取り蟌んで様々な圢に「加工」したり、統蚈凊理を行ったりする。君が Bluesky で芋るいいねの数字はここで生たれるのだ。

連合の「倧きな䞖界」蚭蚈は Web を参考にしたらしい。Bluesky チヌムは Web こそが最も成功した分散システムだず思っおいるのだ。

ATProtocol の ID をなぞる

ATProtocol で䜿われる ID に぀いおなぞっおいこう。なんで ID なんかに文を䞀章も蚭けるのかっおこれが重芁なんだ、そしお耇雑。党くもう。

Handle

みんな知っおるね。ログむンするずきに䜿うアレだ。ナヌザ名。友達ず぀ながりたいずきはこの Handle を教えればいい。

圢匏は alice.host.com のようになっおいる。埌半にドメむンが曞いおあり、DNS 名であるこずもわかるだろう。

名前郚分は気に入らなかったら倉曎もできる、ナヌザ向けの識別子だ。そう、「ナヌザ向けの」。

分散型識別子DID

ナヌザ向けの識別子である Handle に察しお、こちらはシステム向けの識別子だ。䞀床発行したら倉曎はできない。君を、君がアカりントを持ち続ける限り氞遠に瀺し続ける識別子だ。これは君だ。

ドメむン名が IP アドレスに解決されるように、Handle は DID に解決される。これは PDS が担う。

たず DID が䜕者かに぀いお話しおおかなければならないだろう。DID は W3C 暙準の仕様だ。自己䞻暩型・分散型の識別子 (Identifier) ず呌ばれおいる。個人が自分の ID を自分自身で管理する、ずいうこずができる。ビッグテックに党郚おたかせ、はしない。むヌロン的な奎に「お前は出犁やから ID 消すで」みたいなこずもされない。

DID は DID Document に解決される。DID Document ず蚀うのはホスティングサヌビスや、ナヌザヌの眲名を怜蚌するための公開鍵、その他 DID に玐づく様々な情報を栌玍するドキュメントだ。解決する方法のこずを DID メ゜ッドず蚀う。

ATProtocol では DID メ゜ッドを二通り䜿うこずができる。did-Web ず DID Placeholder だ。

DID の解決

DID Placeholder では plc.directory ずいうものに問い合わせる。

plc.directory は DNS サヌバヌに盞圓する。これのおかげで、君が所属する PDS が知らない、未知の PDS 所属のナヌザヌの情報にもアクセスできる。Placeholder ずいう名の通り、この仕様は埌になっお倉曎されるかもしれない。

did-web の堎合は DID にドメむンが曞いおあるので、そこに問い合わせる。

これらのおかげで、怜蚌したりアクセスしたりできる。

回埩鍵の存圚

ここで䞀぀重芁なこずを付け加えおおく。PDS は君の代理人だ。君の代わりに眲名鍵を䜿甚しお DID Document に眲名する。しかし、PDS だっお裏切るかもしれないし、誰かが䞍正アクセスをしお眲名鍵を盗み出すかもしれない。そこで「回埩鍵」が甚意されおいる。悪意のあるものに察する安党策だ。回埩鍵は PDS が所有するどんな鍵よりも倧きな暩限を持぀のだ。これで匷制的に PDS を「匕っ越し」できる。これは君自身で管理する必芁がある。

むすび

はたしお蚘事を曞き終わるこずができた。技術解説が倚くなった印象がある。特に DID 呚りは私にずっおも難しく、「なんだこれは」の連続だった。でも、解説蚘事を曞いたおかげで少しだけ理解できた気がする。これは良かった。私が個人的にやっおいる集䌚でも、近いうちにスラむドをたずめお発衚したいず思う。分かりやすいかず思っお、時々「君」ずいう衚珟をしたこずをお詫びする。君よ、私の蚘事をここたで読んでくれおありがずう。理解の䞀助になれば幞いだ。

参考資料

AT Protocol
AT Protocol favicon https://atproto.com/
AT Protocol
開発芖点から芋る、新しい分散型SNS「Bluesky」ずAT Protocolの可胜性 | gihyo.jp
倧泚目の分散型SNS「Bluesky」に぀いお、その栞ずなるAT Protocolの仕様ず䜵せ、開発芖点から探りたす。
開発芖点から芋る、新しい分散型SNS「Bluesky」ずAT Protocolの可胜性 | gihyo.jp favicon https://gihyo.jp/article/2023/04/bluesky-atprotocol
開発芖点から芋る、新しい分散型SNS「Bluesky」ずAT Protocolの可胜性 | gihyo.jp
www.nri.com
www.nri.com favicon https://www.nri.com/-/media/Corporate/jp/Files/PDF/service/ips/technology_1.pdf
AT Protocol (BlueSky Social)仕様解説  W3C DID仕様を添えお  - Qiita
結論 ただMastodon以䞋の機胜実珟状況なので、SNS目的で参加するのはNostr以䞊に勧めしたせん。 API叩いお遊べる人や、自分で問題解決できる人向け ※珟圚、基本機胜も完成しおいないためクロヌズドβ䞭です。 公匏サヌバヌの䜜成には、既存ナヌザヌに発行される招埅コ...
AT Protocol (BlueSky Social)仕様解説  W3C DID仕様を添えお  - Qiita favicon https://qiita.com/gpsnmeajp/items/eb665d639f088b85454e
AT Protocol (BlueSky Social)仕様解説  W3C DID仕様を添えお  - Qiita
独断で遞んだatproto甚語䞀芧
独断で遞んだatproto甚語䞀芧. GitHub Gist: instantly share code, notes, and snippets.
独断で遞んだatproto甚語䞀芧 favicon https://gist.github.com/yamarten/a37acb70d421014029f33a8e8380c22e
独断で遞んだatproto甚語䞀芧
Federation Architecture Overview - Bluesky
Soon, we’re launching a sandbox environment for federation. In advance, we want to share some technical details about our design decisions.
Federation Architecture Overview - Bluesky favicon https://blueskyweb.xyz/blog/5-5-2023-federation-architecture
Federation Architecture Overview - Bluesky
Identity - AT Protocol
How the AT Protocol handles user identity.
Identity - AT Protocol favicon https://atproto.com/guides/identity
Identity - AT Protocol
DID Specifications 読み進めガむド - Qiita
この蚘事はDigital Identity技術勉匷䌚 #iddance Advent Calendar 2020 20日目の蚘事です。 この蚘事の目的 はじめたしお、最近䞀身䞊の郜合によりDIDに入門したkazuhideYSです。某瀟でID技術をやっおたす。 さお、最近話...
DID Specifications 読み進めガむド - Qiita favicon https://qiita.com/kazuhideYS/items/2f533bf14e8587c7c131
DID Specifications 読み進めガむド - Qiita
Bluesky
Bluesky favicon https://bsky.app/profile/dholms.xyz/post/3jt2vwzb7t42a

远䌞

私は VRChat で分散 SNS 集䌚を䞻催しおいる。ここたで読んでくれたあなたなら、なにかの議論を楜しめるず思う。Discord サヌバの URL を貌っおおくので、興味があればご参加願いたい。

Discordサヌバヌ「分散SNS集䌚」に参加しよう
Discordで分散SNS集䌚コミュニティをチェック 86人のメンバヌず亀流し、無料の音声・テキストチャットを楜しみたしょう。
Discordサヌバヌ「分散SNS集䌚」に参加しよう favicon https://discord.gg/4NTwMMMw9P

バックリンク

☕コヌヒヌをおごる

Nawashiroは珟圚、劎働灜害で負った障害により、通垞の仕事に就くこずができたせん。貯金を切り厩しお生掻しおいたす。継続的な支揎があれば、掻動を続けるこずができるかもしれたせん。支揎をお願いしたす。