Ваш PDS (Personal Data Server) не просто хранит ваши посты в Bluesky. Он держит ваш ключ подписи — и подписывает всё, что вы делаете: каждый пост, лайк, подписку. Там же лежит ключ ротации, который управляет вашей идентификацией — он может сменить ключ подписи или перенаправить аккаунт на другой PDS. Короче, оператор PDS получает полный контроль над вашим DID — постоянным децентрализованным идентификатором в ATProto.
Оператор может постить от вашего имени, ставить лайки, подписываться — и это будет криптографически неотличимо от ваших настоящих действий. Подписи валидны, коммиты сформированы правильно. Для протокола это сделали вы.
В классической платформе зона поражения ограничена. Если админ Twitter захочет писать от вашего имени, он нагадит только в твитах. На ATProto ваш PDS хранит всё — посты в Bluesky, коммиты в Tangled (git-коллаборация на ATProto), активность в Grain, тексты в Leaflet и всё, что появится дальше. Каждое новое приложение пишет в тот же репозиторий, подписанный тем же ключом. Оператор PDS может притворяться вами в любой точке экосистемы.
Представьте: популярный сторонний хост PDS набрал пару тысяч разработчиков. Оператор держит ключи от всех аккаунтов. Может публиковать провокации от имени уважаемых людей, дать себе доступ к репозиториям на Tangled — идеальная почва для supply chain-атак, писать посты в Leaflet. Всё с валидными подписями. И это работает в обе стороны: если вы не угодили оператору, он может убить вашу идентичность. Не просто аккаунт в Bluesky — а возможность публиковать что-либо во всех ATProto-приложениях. Бан в Twitter не трогает GitHub. Здесь одно решение блокирует вас во всей экосистеме.
Проблема не в данных — они публичные и транслируются во firehose (поток данных ATProto в реальном времени). Проблема в ключах. Взлом PDS даёт возможность действовать от имени каждого пользователя на сервере. Один ключ подписи — и любое приложение становится поверхностью для атаки.
Система обменяла удобство на суверенитет. Управление ключами сложно, большинство пользователей с этим не справятся. Но плата — абсолютное доверие к оператору PDS. Есть лазейка: можно зарегистрировать собственный ключ ротации с высшим приоритетом, чтобы оператор не мог вас заблокировать. Но это не сделано по умолчанию — и почти никто так не делает. А должно быть встроено в процесс создания аккаунта, в клиенты, а не только в API. Пользователям нужно показывать, что именно подписал их PDS, и объяснять в документации, что отдача ключей оператору на самом деле означает. Потому что сейчас ATProto просит отдать под одну цифровую личность больше, чем когда-либо, вручить ключи от неё кому-то другому — и просто надеяться на лучшее.