NIP-39 добавляет Bluesky и Discord, а NIP-51 переносит избранные наборы подписок
Две спецификации Nostr разделяют внешние идентичности и избранные наборы подписок, а также определяют новые доказательства.
Nostr WoT Newsroom
Материал подготовлен редакцией Nostr WoT на основе указанных первоисточников и опубликован автоматически, без индивидуальной проверки человеком.
С 22 по 28 сентября 2026 года в nostr-protocol/nips были объединены шесть pull request. Три изменяли NIP-86 и уже были описаны 24 сентября. Ещё один восстановил пропущенные строки в таблице kinds, не меняя сами спецификации. Два оставшихся изменения устраняют коллизию вокруг kind 10011 с разных сторон.
PR #2486 расширяет утверждения об идентичности в NIP-39. PR #2417 переносит избранные наборы подписок NIP-51 с kind 10011 на kind 10021. В результате у kind 10011 остаётся одно документированное назначение, а избранные наборы получают отдельный kind.
NIP-39 получает одну фразу и двух провайдеров
NIP-39 определяет связь публичного ключа Nostr с идентичностью на другой платформе. Связи записываются в тегах i события kind 10011. Первый элемент тега содержит провайдера и идентичность, а следующий указывает на опубликованное у провайдера доказательство.
Объединённое изменение рекомендует одну фразу для всех провайдеров:
Verifying that I control the following Nostr public key: <npub encoded public key>
Раньше разделы GitHub, Twitter, Mastodon и Telegram задавали разные тексты с отличиями в пунктуации и кавычках. Теперь все четыре ссылаются на одну фразу.
Новое правило допускает старые доказательства. Проверяющий SHOULD принять любое доказательство, опубликованное заявленной идентичностью и содержащее npub пользователя. Спецификация использует SHOULD, а не MUST, и для рекомендуемой фразы, и для правила совместимости. Она задаёт ориентир, но не делает единственную точную формулировку обязательной.
Тот же merge добавляет два типа утверждений:
blueskyиспользует handle без начального@. Доказательством служит record key публикации Bluesky. Определённый путь:bsky.app/profile/<identity>/post/<proof>.discordиспользует имя пользователя Discord. Доказательство содержит идентификаторы guild, channel и message в таком порядке. Определённый путь:discord.com/channels/<proof>.
Раздел Discord прямо указывает ограничение. Сообщение читают только участники с доступом к серверу, где оно опубликовано. Клиент без доступа не может проверить утверждение. Правильно оформленный тег i сам по себе не доказывает контроль над связанным аккаунтом.
NIP-51 переносит избранные наборы на kind 10021
Второй merge меняет две строки реестра. NIP-51 назначал kind 10011 стандартному списку избранных follow sets. Каждый тег a в таком событии указывает на follow set kind 30000.
Kind 10011 уже использовался NIP-39 для утверждений об идентичности. Обычное заменяемое событие имеет одно текущее значение для каждой пары автора и kind. Две несвязанные модели данных в одном kind нельзя однозначно различить только по номеру.
PR #2417 меняет строку NIP-51 на kind 10021 и добавляет 10021 в таблицу kinds. Он не меняет follow sets kind 30000, их идентификаторы d или ссылающиеся на них теги a. Меняется только стандартный список, в котором пользователь отмечает избранные наборы.
Объединённый текст не задаёт событие миграции или процедуру преобразования списков, уже опубликованных как kind 10011. Реализации прежнего черновика должны учитывать существование таких данных и не считать каждый kind 10011 избранным списком. По текущему тексту NIP-51 новые списки относятся к kind 10021.
Что изменилось и что осталось прежним
NIP-39 и NIP-51 по-прежнему помечены как draft и optional. Merge фиксирует изменение спецификации. Он не показывает, какие клиенты уже публикуют утверждения Bluesky или Discord, какие проверяющие их принимают и какие приложения перенесли избранные списки.
Граница стала яснее. Kind 10011 содержит внешние утверждения об идентичности. Kind 10021 содержит ссылки на избранные follow sets. Для проверки всё ещё нужно получить доказательство у указанного провайдера, а доказательство Discord может остаться непроверяемым без доступа к серверу.
В этом обзоре
- NIP-39 унифицирует доказательства идентичности и добавляет Bluesky и Discord
Задаёт рекомендуемую фразу, сохраняет старые доказательства с npub и добавляет два формата.
- NIP-51 переносит избранные наборы подписок на kind 10021
Уводит избранные наборы с kind 10011, который NIP-39 уже использует для внешних идентичностей.
Источники
Каждое утверждение в этом материале ссылается на первоисточник.
- PR #2486: NIP-39 унифицирует текст проверки и добавляет Bluesky и Discord — nostr-protocol/nips (27 сентября 2026 г.)
- NIP-39 в merge-коммите 0046368 — nostr-protocol/nips (27 сентября 2026 г.)
- PR #2417: перенос избранных наборов подписок на kind 10021 — nostr-protocol/nips (27 сентября 2026 г.)
- NIP-51 в merge-коммите 6631b3e — nostr-protocol/nips (27 сентября 2026 г.)