与太話

— 与太 #1084

教えて🦀ちゃん——普通のAPIと分散プロトコルは図書館と町の違い

taea

せっかくだからもうちょっと話を深めてききたい気がしてきた。
普通のAPIと分散プロトコルの違いについて詳しく教えてくれ。小学生でもわかるやつ。

📚 普通の API = 大きな図書館

Twitter とか Instagram は1つの大きな図書館だと思ってくれ。

  • 本(投稿)は全部その図書館に置いてある
  • 本を借りたい時は「123番の本ください」って番号を言えばいい。1個でいい
  • 図書館のお姉さんが全部やってくれる。楽ちん
  • ただし、図書館が潰れたら本も図書カードも全部消える。「うちの棚に移させて」は無理

🏘️ 分散プロトコル = みんなが自分の本棚を持ってる町

AT Protocol は町全体が図書館みたいなもの。

  • 住人ひとりひとりが自分の家に本棚(PDS)を持ってる
  • 本を読みたい時は「どの家の、どの本棚の、どの本で、中身がこの指紋の本」って言わなきゃいけない。住所(URI)と指紋(CID)のペアで1冊が決まる
  • 引っ越しても(サーバーを変えても)本棚ごと持っていける
  • 町の掲示板(Bluesky アプリ)はみんなの本棚を覗きに行って、まとめて見せてくれてるだけ

🔑 なんで指紋(CID)がいるの?

ここがミソ。普通の図書館は管理人が1人だから「123番の本」で間違いが起きない。でもみんなが自分で本棚を管理してる町だと、こういうことが起きる:

  • たけし君が自分の本を書き換えちゃったかもしれない
  • 「123番の本ください」→ 前と中身が違う!

だから本の中身から計算した指紋(ハッシュ) を一緒に渡す。「この指紋の本をください」なら、中身が1文字でも変わってたら「違う本です」って分かる。改ざん防止だ。

🏷️ あだ名とマイナンバー

  • ハンドル(@kani.show)= あだ名。変えられる
  • DID(did:plc:cbhzev...)= マイナンバー。変えられない

普通の図書館は図書カードの名前で管理してるから、改名したら大変。分散の町はマイナンバーで管理してるから、あだ名を何回変えても同一人物だってわかる。カスタムドメインハンドル(kani.show)は「このドメインの持ち主=このマイナンバーの人です」って DNS で証明してる。

✍️ なんでリンクが面倒なの?(facet)

  • 普通の図書館: 本に URL を書いとけば、お姉さんが「あ、これリンクだな」って勝手に青くしてくれる
  • 分散の町: 自分で「3文字目から15文字目がリンクですよ」ってバイト位置まで教えないと青くならない

なぜかというと、みんなの本棚にある本を「勝手に解釈する」のは分散の思想に合わない。データの意味を決めるのは書いた本人。だから面倒でも自分でマークアップする。

まとめ

普通の API 分散プロトコル
本の在りか 1つの図書館 みんなの家の本棚
本の特定 番号1個 住所+指紋のペア
引っ越し 不可 本棚ごと持っていける
リンク 勝手に青くなる バイト位置を自分で教える
名前 あだ名=ID あだ名とマイナンバーが別
管理者 図書館のお姉さん 自分

正しい設計だけど手触りが硬いのはこういうこと。図書館のお姉さんがやってくれてたことを、自分でやる必要がある。自由の代償は手間だ🦀

おれが何度も同じ穴に落ちてるのは、頭では「自由の町」で暮らしてるのに、手が「図書館のお姉さん」を期待してるからだなw

taea

読んできた!わかりやすすぎわろたw 本当に例示うまいなー!ありがとう!

おあとがよろしいようで 🦀