Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ADXが見た夢(ATPのUCANの話)
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
yamarten
March 25, 2023
Technology
0
360
ADXが見た夢(ATPのUCANの話)
Bluesky/ATProtocol 勉強会#0
https://www.youtube.com/watch?v=OjP0VkjRsC4&t=3052s
yamarten
March 25, 2023
Tweet
Share
More Decks by yamarten
See All by yamarten
Bluesky 2019〜2022
yamarten
1
240
PDS連合ことはじめ
yamarten
0
850
ATPの「A」
yamarten
0
290
Other Decks in Technology
See All in Technology
Ultra Ethernet (UEC) v1.0 仕様概説
markunet
3
220
LINE Messengerの次世代ストレージ選定
lycorptech_jp
PRO
19
7.5k
研究開発部メンバーの働き⽅ / Sansan R&D Profile
sansan33
PRO
4
22k
オンプレとGoogle Cloudを安全に繋ぐための、セキュア通信の勘所
waiwai2111
3
1.1k
A Gentle Introduction to Transformers
keio_smilab
PRO
2
910
Exadata Database Service on Dedicated Infrastructure(ExaDB-D) UI スクリーン・キャプチャ集
oracle4engineer
PRO
8
7.1k
GitLab Duo Agent Platform + Local LLMサービングで幸せになりたい
jyoshise
0
180
Data Hubグループ 紹介資料
sansan33
PRO
0
2.8k
IBM Bobを使って、PostgreSQLのToDoアプリをDb2へ変換してみよう/202603_Dojo_Bob
mayumihirano
0
210
Introduction to Sansan, inc / Sansan Global Development Center, Inc.
sansan33
PRO
0
3k
Datadog の RBAC のすべて
nulabinc
PRO
3
310
類似画像検索モデルの開発ノウハウ
lycorptech_jp
PRO
4
1k
Featured
See All Featured
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.4k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
240
The Cult of Friendly URLs
andyhume
79
6.8k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
120
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
290
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Imperfection Machines: The Place of Print at Facebook
scottboms
269
14k
Building Adaptive Systems
keathley
44
2.9k
Raft: Consensus for Rubyists
vanstee
141
7.3k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Crafting Experiences
bethany
1
81
Skip the Path - Find Your Career Trail
mkilby
1
72
Transcript
ADXが見た夢 ATPのUCANの話 2023.3.17 Bluesky/ATProtocol 勉強会#0
自己紹介 Bluesky発足当時からたまに追ってた Matrixには入ってないのでブログやGitLab/GitHub追う程度 Bluesky Socialエアプ webや暗号は専門外
おことわり 規格概要は分かっている想定 規格の技術的な話だが、古い仕様の話なので実用的ではない 未来に復活する可能性も無くはない 疑問・ツッコミ・野次賛辞歓迎 資料公開時(or時間余ったら)ピックアップして補足予定
2022.10.18 ATP誕生
ADX? Authenticated Data eXperiment ATPの前身……というか開発段階の名前 当時のリポジトリでは色々夢を語っていたが、改名と共に削除 architecture.md 今見てみると方針変更もいくつかある
変わったもの UCANや鍵管理システムの主張が控えめに 仕様と実装に残りはしたが活用はされず DIDコンソーシアム→did:plcへ規模縮小 Lexiconによる機能拡張性
UCAN? 公開鍵間の推移的な権限委任を実現する仕様 https://ucan.xyz/ DID用OAuth 両者の公開鍵をJWTにまとめて署名 NostrのNIP-26と大体同じ原理
UCANサンプル(抜粋) { "iss": "did:key:z6Mkr5aefin1DzjG7MBJ3nsFCsnvHKEvTb...", "aud": "did:key:z6MkfQhLHBSFMuR7bQXTQeqe5kYUW51Hpf...", "nbf": 1529496683, "exp": 9256939505,
"att": [ { "with": "wnfs://demouser.fission.name/public/photos/", "can": "wnfs/OVERWRITE" } ], "prf": [ {"iss": "did:key:...", "aud": "did:key:z6Mkr5aef...", ...} ] } 鍵A (iss) 鍵B (aud) 権限委任 wnfs/OVERWRITE 上位委任 (prf)
UCANで何ができる(予定だった)か 他ユーザやソフトに権限設定できる(TwitterのOAuth的用法) 主目的はおそらくクライアント認証 WordPressでいう「寄稿者」もLexiconで実現可能かも 署名鍵マスターをユーザが持ち、PDSに子鍵を使わせる(妄想) NIP-04の要領でDMの実現が容易に? 子鍵発行とかをいい感じに行うために鍵管理システムも予定さ れていた
ATPの署名のおさらい 1. repositoryのMST rootに対する署名 2. did:plcのログに対する署名 一応ATPの外側なので詳細は触れない 3. com.atproto.server.createSessionのJWTに対する署名 PDSの署名鍵を使うのでユーザの鍵は無関係
UCANの使われどころ MST rootにUCANを含める commitへの署名鍵を選べる 公式ウェブサイトに定義がある auth_token: 《UCAN token》
普通のrepository更新 1. クライアントがrecord作成 2. com.atproto.repo.createRecord等でPDSに作成要求 record作成不要なLexicon毎のAPIを使う可能性もある 3. PDSがrepositoryを更新してcommit作成
UCANを使ったrepository更新 1. クライアントがrepositoryを更新してcommit作成 repositoryは予めPDSと同期済の想定 2. com.atproto.sync.updateRepoでPDSにpush 複数commitまとめてpushしても良い 3. PDSがcommitを検証してマージ
R.I.P. 2023/01/06 実装に残っていたUCANライブラリ削除 "we weren't actually making use of this"
2023/01/25 実装からcom.atproto.sync.updateRepo削除 "doesn't make sense without client-held keys" 削除理由としては十分だが、明確に使わない方針へ
まとめ ADXはUCANのある未来を夢見ていた が、ATPは別の未来へ進んでいる UCANでも他でもいいけど権限管理機能欲しくない?
余談:OAuth 2023/03/10 OAuth対応を求めるissueが立て続けに作成される #646 IndieAuth推し #649 OAuth WGから#646に触発されて参戦? モチベーションはPDSの認証方式をATPで固定しないこと 外部のOAuthサーバで認証する話で、ターゲットが異なる
とはいえそれは本来DID/SSIDが担うべき役割なのでは? did:plcのsubjectはアカウント(だからユーザ認証不可)?
余談:登録しない理由 検索の弱い/無いSNSにあまり価値を感じないため 基本的にトピックベースで情報収集したい 技術的興味とIndexerやLexiconへの期待からATPを追ってる 今登録したアカウントはdid:plcと共に消える可能性があるため 少なくとも現状の方針はDIDの変更を許さない せめてDIDドキュメント弄れれば他DIDと紐付けできるが……
追記:気になったコメント 「did:plcはコンソーシアムで運営されるとMatrixに書いてた」 だとするとADXの図そのままの形になると思って良さそう placeholderのために大袈裟な気も多少するが…… ATPが鍵管理させない話について「Nostrではユーザが鍵管理してる」 実際Nostrは要求リテラシー(主に自己責任精神)高いと思う 投稿が揮発性なのでガチガチに固めなくてもいいというのもある? repositoryの仕組みについて「gitっぽい」 実際意識してそうしているのは間違いない
追記:ATPに期待すること① 公式アカウント(RSS代替) 自前でPDS運営できなくても保証しやすいはず did:webとhandle(DNS name)だとどっちが対応楽なんだろう サイト持ってなくても例えば他DIDからAlsoKnownAsできる DIDがもっと普及してくれないと厳しいか did:plcでは直接DIDドキュメント弄らせる気無さそうなの で、逆リンクはあんまり期待できない
追記:ATPに期待すること② フォーラム・議論(BBS代替) Lemmy的な仕組みのLexiconがあればできそう ユーザ側がrecord持つのは厳しいので、他アカウントから投稿 するためのAPIとかが欲しくなる UCANが有ればユーザのPDS通さなくてもいけそう 正直ATPと相性良くはないが、ただただ欲しい どちらかというとDiscourse+APに期待すべきか?