では、利用者が注意深く事前準備をすると何ができるのか。
PDS が急所になることは ATProto 開発者にも当然認識されており、対策として PDS 間の移行を可能にするようにプロトコルが設計されている。ID だけでなく、データも CAR ファイルとして export/import できる。仕様にとどまらず、少なくとも API と参照実装は整備されている。開発者は真面目に仕事をしている。
ただし、これらの機能に対応する Bluesky の web UI は提供されていない (現状では CAR ファイルの export だけ)。普通の利用者がほとんど抵抗できないといったのはこれが理由。
Bluesky は開発者が元々やりたかったことと利用者が求めることの乖離が激しいようで、開発者のモチベーション維持が難しそう。
話が脱線したが、現状でこの種の機能を使おうとすると、基本は開発者向けの手段、CLI ツール (goat) などに頼ることになる。
https://github.com/bluesky-social/goat
具体的には、アカウントの rotationKeys に 自分が管理する公開鍵を登録し、Bluesky 側が保持している鍵よりも 優先順位を高くしておく (ここまでは自分で検証済み)。
https://whtwnd.com/bnewbold.net/3lj7jmt2ct72r
こうしておくと、仮に Bluesky が敵対的になって余計な変更をしたとしても、72時間以内であれば自分の鍵でその変更を差し戻せる仕様 (未検証)。
ただし、攻撃者に最上位の鍵の秘密鍵を盗まれたらアカウントを掌握されてしまい、利用者としてはお手上げ状態になる。こうなると Nostr でアカウントの秘密鍵が漏洩した場合と変わらない。