Гайд по NOSTR, децентрализованному протоколу обмена сообщениями

0
ПОДЕЛИТЬСЯ

Nostr — это децентрализованный и устойчивый к цензуре социальный протокол обмена сообщениями. Потенциал его огромен, хоть впереди ещё множество вызовов. Однако пользоваться им интересно уже сегодня, что с заметным азартом и делают многие биткойн-инфлюенсеры. В этом посте расскажем о том, что это за протокол, о его основных свойствах и рисках и о том, как им пользоваться — вплоть до того, как перенести на него свой уютный блог и настроить приём донатов.

Новая технология возникает как будто спонтанно и без предупреждения, хоть на самом деле это кульминация десятилетий исследований и разработок множества учёных. Теперь политические идеалисты возносят её как символ освобождения и революцию в мире социальных сетей, тогда как представители элит, напротив, склонны принижать и отвергать её. Однако технари и гики очарованы её потенциалом и с удовольствием экспериментируют с ней в свободное время.

В конце концов появляются предприятия и целые отрасли, стремящиеся заработать на возможностях, открываемых этой технологией. Её влияние становится существенным. Другие же задним числом удивляются, почему не разглядели потенциал технологии раньше.

О какой технологии я говорю? На самом деле сюда можно поставить любую достаточно инновационную и “разрывную” технологию: автомобили, персональные компьютеры, интернет, мобильные телефоны, Биткойн… Nostr.


Навигация:


Что такое Nostr

Этот раздел в значительной мере основывается на посте Джеймсона Лоппа Why Nostr Matters, с некоторыми сокращениями и дополнениями.

NOSTR: Notes and Other Stuff Transmitted by Relays

Nostr — простой протокол (github) обмена относительно небольшими объёмами данных (например, текстовыми сообщениями). Он не полагается на доверенный центральный сервер, и потому устойчив. Он основан на криптографических ключах и подписях, благодаря чему защищён от взлома. Он не полагается на gossip-передачу данных между пирами (узлами одноранговой сети), и потому надёжен.

Nostr — это первое практическое решение для устойчивых к цензуре социальных сетей. Хоть он сам по себе и не является протоколом социальных сетей (подробнее об этом позже), на его основе довольно просто создавать социальные сети. Здесь самые прошаренные спросят: «А как же ActivityPub, ATProtocol и Secure Scuttlebutt, используемые в Mastodon, BlueSky и Scuttlebutt?» Дело в том, что все эти протоколы создают федеративные gossip-сети, и для того чтобы быть в этих сетях полноправным суверенным (цензуростойким) — как бы “высшего сословия” — пользователем, необходимо держать собственный сервер, к чему подавляющее большинство людей, конечно, не готовы. На самом деле уже само наличие многих серверов вместо одного центрального людям непривычно и создаёт проблему в привлечении широкого круга пользователей.

В сравнении с упомянутыми выше федеративными сетями, достичь суверенности в Nostr проще, так как вы можете просто подписаться на множество ретрансляторов — реле — и не зависеть от администратора какого-то одного выбранного сервера.

Nostr — это НЕ:

  • блокчейн,
  • социальная сеть,
  • протокол консенсуса,
  • peer-to-peer сеть, или
  • криптовалютный токен.

Nostr — это проект с открытым исходным кодом и протокол, построенный вокруг идеи самостоятельного контроля данных своей учётной записи и собственных идентификационных данных. Он позволяет пользователям хранить и передавать данные с помощью пар закрытого и открытого ключей. Наряду с децентрализованной идентификацией, протокол Nostr позволяет веб-сайтам и интернет-приложениям получать доступ к этим данным по запросу пользователя — для создания децентрализованных социальных сетей и межсайтового взаимодействия.

Название NOSTR — это аббревиатура, расшифровывающаяся как “Notes and Other Stuff Transmitted by Relays” (“заметки и прочие данные, передаваемые посредством реле”).

Nostr — не единственный протокол социальных сетей

На поле свободных и открытых протоколов социальных сетей есть множество конкурирующих проектов, таких как @bluesky и AT Protocol, Mastodon, Matrix и многие другие. Трудно достоверно утверждать, какой из них закрепится и вырастет в действительно широко используемую сеть, но тезис состоит в том, что у одного из них есть шанс перерасти в стандарт, наподобие HTTP или SMTP, и стать одной из основных составляющих интернет-стека.

Хотя реализация “децентрализованного твиттера” может стать для Nostr отправной точкой и подтверждением концепции, этот протокол предлагает нечто намного большее. Он может претендовать на то, чтобы стать технологическим стандартом, который сделает социальные сети, обмен данными и, что ещё важнее, контролируемый доступ к данным неотъемлемой частью стека самого интернета.

Протоколы, подобные Nostr, направлены не просто на то, чтобы заместить собой нынешний ландшафт социальных сетей и владения данными, но на его обновление и решение ключевых проблем централизации хранения данных и конфиденциальности. Надежда в том, что передача людям права самостоятельно распоряжаться собственными данными и предоставлять (или нет) приложениям доступ к ним улучшит возможности публичного обсуждения и поставит технологии на службу людям, а не правительствам и корпорациям.

Мало того, это открывает миру новый технологический стек для разработки и создания новых решений. И при таком уровне потенциального участия можно ожидать появления множества инноваций, которые, как мы надеемся, сделают пользование интернетом более весёлым и свободным, как это было в годы, предшествовавшие почти полному его поглощению корпорациями.

Ключевые свойства Nostr

  1. Децентрализация. Nostr — децентрализованный протокол, не контролируемый никаким центральным органом или корпорацией. Это означает, что Nostr в целом не подвержен цензуре или манипуляциям со стороны какой-либо одной организации.
  2. Псевдонимность. В отличие от большинства социальных сетей, Nostr не собирает данные пользователей и не продаёт их сторонним рекламодателям. Ни адрес электронной почты, ни номер телефона, ни иные идентификационные данные не связаны с вашим аккаунтом на Nostr. Как и Биткойн, система использует для подтверждения данных только открытые ключи и криптографические подписи.
  3. Монетизация. Nostr предлагает для создателей контента уникальную систему монетизации на основе Lightning Network. В отличие от других социальных платформ, окупающихся в основном за счёт доходов от рекламы, Nostr позволяет создателям контента монетизировать его напрямую, получая донаты и регулярные платежи от своих подписчиков. Провайдеры инфраструктуры Nostr тоже могут монетизировать предоставляемые услуги с помощью lightning-платежей.
  4. Открытый исходный код. Код Nostr открыт: любой желающий может его изучить, использовать, скопировать себе и изменить. Это обеспечивает прозрачность и расширяет возможности для коллаборации при разработке протокола. Каждый может внести свой вклад в развитие Nostr — комьюнити сообща работает над постепенным улучшением протокола. Nostr спроектирован гибким и адаптируемым, и может меняться в соответствии с потребностями пользователей. Это создаёт чувство сопричастности и инвестирования в протокол, что необходимо для его долгосрочного успеха.

Как это работает

Nostr в своей основе — это распределённая система хранения заметок, где заметки — это просто текстовые фрагменты, а сами заметки имеют открытые ключи и подписи, используемые для подтверждения авторства.

Программы-клиенты для Nostr могут по желанию пользователя подписываться на любое количество реле (серверов) и затем публиковать на них собственные заметки и получать заметки, связанные с другими открытыми ключами – пользователями. Все серверы независимы друг от друга и не имеют понятия синхронизации / консенсуса / и т. п.

На самом базовом уровне, это и всё, что есть в Nostr. Хотя, конечно, прямо сейчас разрабатываются самые разнообразные варианты реализации протокола – NIPs (от Nostr Implementation Possibilities).

Для чего это нужно

Nostr устраняет скользкую тему цензуры

Nostr решает проблемы предвзятого управления и цензуры, присущие централизованным социальным сетям. Управляющие практически любой сравнительно популярной социальной сети так или иначе сталкиваются с этой проблемой и вынуждены решать её субъективно в условиях, когда все взаимодействия на сервисах, часто используемых по принципу “городской площади” (как Маск характеризовал Twitter), в действительности происходят на частной территории.

Кроме того, централизованные платформы подвержены внешнему давлению со стороны государств. Работая как компания в определённой юрисдикции, вы вынуждены соблюдать её законы. Протоколы же не имеют представления о юрисдикциях.

Все люди должны иметь право говорить, хотя никто не обязан их слушать. И Nostr предоставляет для спорных высказываний гораздо более надёжный дом. Реле может заблокировать для пользователя возможность публиковать записи, но оно не может запретить ему публиковаться через другие реле. А поскольку пользователи идентифицируются посредством открытого ключа, они не потеряют свой публичный профиль и подписчиков в случае бана на одном или нескольких реле.

В Nostr вы можете иметь довольно высокую степень уверенности в том, что не будете лишены социальной платформы по какой бы то ни было причине. Они могут заблокировать ваш твиттер, Substuck или Instagram, но они никогда не заблокируют ваш профиль в Nostr.

Уникальные свойства

Nostr позволяет реализовать то, чего до сих пор не предлагала ни одна социальная сеть: возможность поставить себя на место другого человека. Хотите увидеть, как выглядит чужая лента? Просто создайте аккаунт только для чтения с его открытым ключом. И если эта функциональность окажется достаточно востребованной, то разработчики клиентского ПО для Nostr смогут добавить в свои программы функцию “посмотреть ленту как …”, — это может быть просто кнопка на странице соответствующего профиля.

Свобода от федераций. Все прочие платформы “свободы слова” по-прежнему имеют централизованные аспекты. Пользуясь социальным приложением, у которого есть какие бы то ни было “условия обслуживания”, вы по определению не суверенны в отношении своих социальных сетей. У пользователей того же Mastodon было немало возможностей осознать это на собственном опыте. Как я уже говорил, простые пользователи не станут держать собственный сервер. И как результат, мало кто способен справиться со злоупотреблениями, которые так свойственны администраторам “общественных пространств”.

Гайд по NOSTR, децентрализованному протоколу обмена сообщениями

Свобода от антифункций

Nostr элегантен в своей простоте. В нём вы не найдёте многих “антифункций”, таких как:

  • платная реклама, наполняющая вашу ленту шумом;
  • алгоритм, искажающий охват аккаунтов и вмешивающийся в формирование вашей ленты совершенно непрозрачным образом;
  • произвольные лимиты на длину и тип публикуемого контента;
  • Непредсказуемые подчас правила рендеринга встраиваемых мультимедиа;
  • предупреждения “железной няни” о размещении негативных высказываний;
  • незашифрованные личные сообщения, которые могут быть прочитаны админами (а значит, и не только);
  • постоянная угроза того, что если вы нарушите всё более сложные и часто меняющиеся условия предоставления услуг, ваш аккаунт будет подвержен цензуре так или иначе.

Nostr — это свобода. Но в настоящее время это подразумевает и свободу от излишеств тоже.

Как Nostr вписывается в стек Биткойна

Nostr — это совершенно новый интернет-протокол; он не имеет ничего общего ни с Биткойном, ни с какими бы то ни было решениями на основе Биткойна. Nostr не имеет блокчейна или собственного токена и не предусматривает передачу ценности по своей сети.

Это только инструмент для передачи данных различным пользователям и вызова этих данных из различных приложений с целью коммуникации. Хотя базовая технология Nostr может быть использована для управления логинами и профилями пользователей, а также контентом, наполняющим эти профили, и реализована также сеть микроплатежей на основе Lightning Network.

Проблемы и вызовы

Управление ключами. Большинство пользователей не очень безопасно обращаются со своими закрытыми ключами, как минимум храня их на устройствах, подключенных к интернету, что гарантированно периодически будет приводить к плачевным результатам. Возможность делегировать и отзывать ключи будет важна как для индивидуальной безопасности, так и для поддержки корпоративных/командных аккаунтов. Одно из преимуществ централизованных сервисов с API состоит в предоставлении доступа для сторонних интеграций. Но при использовании протокола, основанного на закрытых ключах, мне бы пришлось открыть для подобных интеграций “режим бога”, который (пока) не может быть отозван. NIP-26 предусматривает отзыв делегирования, но, к сожалению, только по истечении срока его действия — вместо бессрочного делегирования с возможностью отзыва. Аннулирование ключей в NIP-041 — вот за чем я слежу.

Масштабирование. На момент написания у Nostr меньше 100 000 активных пользователей в сутки. Всплески роста создают всплески дополнительной нагрузки на инфраструктуру, обеспечивающую работу реле, в результате чего обнаруживаются слабые места, которые затем устраняются разработчиками. Например, недавно можно было наблюдать, как разработчики Nostr активно внедряют CDN и оптимизаторы изображений, чтобы снизить загрузку канала. И на долгом пути к по-настоящему массовому использованию будет возникать ещё много проблем масштабирования.

Гайд по NOSTR, децентрализованному протоколу обмена сообщениями

Положительные стимулы для создания реле. На сегодня большинство реле работают бесплатно. Понятно, что это не выглядит надёжной моделью для массового принятия. Некоторые реле уже поддерживают подписку с оплатой через Lightning; я ожидаю, что со временем появятся сервисы, оценивающие и ранжирующие реле на основе качества данных и предлагаемых услуг. Ранние варианты подобного ранжирования можно найти на https://nostr.watch/relays/find and https://nostr.info/relays/.

Отрицательные стимулы для спамеров. NIP-013 описывает способ затребовать, чтобы к заметкам прилагалось подтверждение выполненной работы в качестве механизма защиты от спама, хотя я не думаю, что это получит большое распространение. Вместе с тем, например, Iris на сегодня, принимает события только в пределах 3 степеней разделения вашей социальной сети. Реле по подписке тоже могут выполнять роль антиспам-пэйволлов.

Подтверждение личности и поиск учётных записей. Самозванцы, выдающие себя за других, пока не являются большой проблемой в Nostr, но определённо будут. Мне очень нравится подход Nostr с базами ключей nostr-директорий в качестве доказательства того, что ваш аккаунт действительно принадлежит вам путём связывания её с другими известными аккаунтами. Я ожидаю, что nostr-клиенты будут заинтересованы в интеграции сервисов идентификации и репутации, таких как nostr.directory или hive.one, чтобы, создавая аккаунт, новый пользователь мог найти профили, на которых можно подписаться.

Фрагментация данных и пользовательского опыта. Для меня неясно, насколько это большая проблема, но это определённо должно раздражать маркетологов, которые любят разнообразные метрики. Природа Nostr такова, что вы никогда не можете быть полностью уверены в том, что видите 100% доступных данных, поскольку они разбросаны по произвольному количеству независимых серверов.

Гайд по NOSTR, децентрализованному протоколу обмена сообщениями

Эта проблема фрагментации распространяется также на любые метрики и взаимодействия в целом. Например, открыв собственный профиль в разных клиентах, я могу увидеть разное количество лайков, ответов, репостов и запов.

Долгосрочная доступность данных. Эта проблема похожа на предыдущую, но касается скорее долгосрочного сохранения ссылок и данных. Не удивлюсь, если в будущем появятся сервисы зеркал, которые будут сканировать популярные реле, проверять целостность ваших заметок и репостить их на новые реле, если копий осталось не так много.

Фрагментация сети. Как крайний пример вышеизложенного, что произойдёт, если у вас 0 общих реле с другим пользователем, с которым вы бы хотели обмениваться заметками? На сегодня вы просто не сможете с ним коммуницировать. Это направление по-прежнему находится в активной разработке и может стать ещё большей проблемой при значительном увеличении количества реле.

Поиск / индексирование. Ещё одно следствие фрагментации данных состоит в том, что поиск по всей вселенной Nostr естественным образом сложно выполнить без запроса к каждому отдельному реле. Я полагаю, что мы можем ожидать появления оптимизированных под Nostr поисковых систем, решающих эту проблему.

Курирование ленты / рекомендации. Хотя выше я включил подобный “алгоритм” в список “антифункций”, он может представлять некоторый интерес как отключаемая опция, и спрос на настраиваемые алгоритмы автоматизированного курирования ленты тоже можно предположить. Они должны быть построены на основе других служб индексации, которые могут просеивать контент из вашей ленты и алгоритмически похожих аккаунтов, чтобы отфильтровать шум и рекомендовать новый сигнал. Каждая программа-клиент может решать, как отображать посты пользователям, так что у вас всегда будет возможность читать что хотите и в том порядке, в каком хотите — алгоритмически ли построенную ленту, выбрав из нескольких доступных на рынке вариантов, или в простом хронологическом порядке.

Надёжность произвольных серверов. То, что замедляет работу множества веб-клиентов для Nostr: они делают десятки, если не сотни, сетевых запросов к различным серверам, разбросанным по всей глобальной сети, потому что:

  • в Nostr отсутствует централизованный хостинг медиаконтента, поэтому люди порой загружают встраиваемый в заметки контент на не слишком надёжные веб-серверы;
  • в NIP-05 есть люди, сохраняющие кастомные JSON-файлы на личных доменах.

Гайд по NOSTR, децентрализованному протоколу обмена сообщениями

Перевернуть веб-архитектуру с ног на голову

Интересно, что все проблемы, перечисленные в предыдущем разделе, традиционно решаются в инфраструктуре централизованных веб-сервисов, таких как Twitter или Facebook (запрещён в России). Но поскольку у Nostr нет центрального хостинга, все эти функции отданы на аутсорс сторонним сервисам. И здесь в дело вступает свободный рынок. Оптимальный ожидаемый результат состоит в том, чтобы каждая из этих частей желаемой функциональности эволюционировала в конкурентный рынок поставщиков услуг, а не в монополию одного реле/сервера/компании на все эти услуги.

Только начало

Гайд по NOSTR, децентрализованному протоколу обмена сообщениями

Джеймсон Лопп провёл несколько тестов на вовлечённость в различных социальных сетях, которыми пользуется сам, и результат Nostr неизменно был выше ожидаемого. Вовлечённость для его заметок в Nostr составляет на 25–100% больше, чем для твитов, притом что размер аудитории в твиттере больше раз в сто. Может быть, это эффект раннего периода, и со временем этот показатель будет снижаться. Время покажет.

Nostr развивается с каждым днём. Несколько месяцев назад здесь не было даже лайков и репостов, не говоря уже о возможности донатов через Lightning.

Гайд по NOSTR, децентрализованному протоколу обмена сообщениями

Из списка проектов на nostr.net видно, что множество людей занято разработкой инструментов и приложений, повышающих полезность и удобство протокола. Очередной аналог Twitter — далеко не единственное применение для Nostr. В списке уже есть блог-платформы, клоны Pastebin, зашифрованные чаты и даже игры (шахматы) на основе Nostr. Операторы реле тем временем тоже совершенствуют инструменты для инфраструктуры с помощью CDN, оптимизаторов изображений, индексаторов данных, спам-фильтров и т. д.

Как начать пользоваться Nostr

В Nostr вы создаёте свой аккаунт путём создания пары из закрытого и открытого ключей. Создав закрытый ключ, вы можете начинать публиковать записи с помощью специальных программных клиентов, которые будут передавать ваши заметки через реле по умолчанию либо по вашему выбору.

Итак:

  1. Создайте пару из открытого и открытого ключей с помощью Nostr-клиента, например, anigma.io или astral.ninja. Первый создаст для вас пару ключей автоматически. Второй спросит, хотите ли вы создать пару ключей, и если вы согласитесь, сгенерирует их для вас. Эта пара ключей используется для “самосуверенной” идентификации пользователя в системе Nostr. Если вам нужен простой метод создания и управления ключами, то лучшим вариантом будет установить веб-кошелёк вроде Alby. В Alby есть встроенная поддержка команд Nostr, что поможет вам создать закрытый ключ, на основе которого вы сможете сгенерировать открытый ключ для дальнейшего использования в различных приложениях для Nostr.
  2. Сохраните закрытый ключ: после создания пары из закрытого и открытого ключей вам нужно сохранить закрытый ключ и хранить его в секрете подобно seed-фразе от биткойн-кошелька. Если вы потеряете созданный только что закрытый ключ, то всегда сможете сгенерировать новый, но возможность управления прежним профилем потеряете.
  3. Создайте несколько ключей, если нужно: один ключ можно использовать на любом количестве nostr-клиентов. Если хотите создать несколько профилей, то можете создать дополнительные пары ключей.
  4. Заполните свой профиль: из клиента по выбору должно быть доступно обновление вашего имени пользователя, картинки и прочих параметров, количество которых может зависеть от конкретного nostr-клиента. Программа-минимум — это имя пользователя, раздел About Me и картинка профиля.
  5. Запостите что-нибудь: nostr-клиент должен отображать посты других пользователей. Кроме того, он должен позволять вам как минимум создавать сообщения и фолловить других пользователей (Astral, Damus и пр, позволяют фолловить пользователей, anigma.io нет — она больше напоминает Telegram и имеет публичные чатрумы.
  6. Найдите других пользователей: В Astral.ninja есть общая лента, в которой вы можете видеть посты других пользователей. На странице nostr.io/stats приведены некоторые из наиболее популярных пользователей. На странице damus.io/channels вы найдёте некоторые из самых известных публичных каналов.

Поскольку ваш закрытый ключ не привязан к конкретному приложению, вы можете использовать его для доступа к своему аккаунту в любом Nostr-клиенте по своему выбору. Это как протокол электронной почты: SMTP позволяет получать и отправлять письма в любом почтовом клиенте с поддержкой этого протокола — в браузере, на мобильном или на десктопе.

Теперь подробнее…

Управление ключами

Создание пары ключей — это ваша первая точка контакта с Nostr. Это можно сделать просто в Nostr-клиенте либо использовать специальную программу для создания и управления ключами (о них чуть ниже).

Я бы рекомендовал не спешить с этим и делать всё осознанно. Если вы забудете сохранить или потеряете свой закрытый ключ, этот аккаунт будет потерян навсегда. Вам придётся генерировать новый ключ и начинать всё сначала, и на этот раз сохраните свой закрытый ключ в надёжном месте и не теряйте: это единственная связь с вашей учётной записью.

Здесь нет какой-то центральной организации, управляющей аккаунтами, поэтому нет и сервиса восстановления аккаунта или вообще какого бы то ни было второго шанса: не ваш закрытый ключ — не ваш аккаунт.

Получив закрытый ключ, вы можете использовать его для генерации HEX- и открытого ключей.

  • Private key – Храните его в безопасном месте и не сообщайте никому (совсем никому).
  • Public key – Этим ключом вы будете делиться с другими, по нему они смогут найти ваш аккаунт в своём Nostr-клиенте.
  • Hex key – Старый формат; он понадобится вам, чтобы верифицировать NIP.

Не стоит вручную копировать и вставлять закрытый ключ на любом сайте с поддержкой Nostr, поскольку как трудно быть уверенным в невозможности перехвата вашего ключа — через фишинговый ли сайт или атаку посредника (man in the middle). Вместо этого, я бы рекомендовал использовать специальные инструменты для хранения ключей от Nostr (см. ниже) и генерации подписей на их основе. Это применимо только при использовании веб-клиента для Nostr, который вы открываете в браузере. При использовании десктопных и мобильных приложений ключи хранятся локально на устройстве, и приложение обращается к ним для подписи по необходимости.

Инструменты управления ключами Nostr

Ваш закрытый ключ Nostr потенциально может открывать многие аккаунты и вы можете выбирать, вводить ли ключи в программном клиенте, хранить ли их в браузере или, что безопаснее, создать более защищённое хранилище для ваших ключей, к которому nostr-клиенты будут обращаться за подписью, но не будут иметь доступа к самим ключам. Такие приложения и называют инструментами управления ключами.

Если идея более безопасного управления своими ключами вас заинтересовала, но вы не знаете доступных вариантов, то можете попробовать одно или несколько из перечисленных ниже решений.

Хорошей практикой будет также обращаться с закрытым ключом как с важным паролем и хранить его в менеджере паролей со сквозным шифрованием, как Bitwarden или 1password.

Alby Wallet

У lightning-кошелька Alby есть расширение для браузера, которое, помимо прочего, генерирует ключи для Nostr. Расширение Alby упрощает генерацию и хранение ключей: они хранятся в самом расширении.

Чтобы сгенерировать ключи для Nostr в Alby, нужно перейти в настройки расширения, нажать Generate, и вы получите новый закрытый ключ, привязанный к аккаунту Alby. После этого вы сможете взаимодействовать с nostr-клиентами, используя Alby для подписи любых действий в них.

Blockcore Wallet

Blockcore Wallet — это программное решение для управления кошельками, учётными записями, идентификацией и подписями в различных интернет-сервисах. Blockcore Wallet является кроссплатформенным и работает в различных режимах: есть расширение для браузера, Progressive Web App, нативные мобильное и настольное приложение и многое другое.

Расширение Blockcore Wallet есть для браузеров на основе Chromium: Chrome, Edge Opera, Brave и т.д. Поддержки Firefox нет и не планируется.

Узнать больше: GitHub

Расширения Nostr

Если вы не заинтересованы в использовании для Nostr многофункционального кошелька, можете выбрать более простое расширение, выполняющее только одну функцию: хранение и управление ключами, а также подпись сообщений в любом клиенте для Nostr.

Расширение для управления ключами Nostr Доступно в браузерах
Wen Chrome и прочие Chromium, Firefox
Nos2x Chrome и прочие Chromium,
для Firefox можно использовать этот форк
Flamingo Chrome и прочие Chromium

Клиенты для Nostr

Клиенты для Nostr — это программные приложения, позволяющие пользователям подключаться к протоколу Nostr и взаимодействовать с различными реле, хранящими данные. Авторизовавшись в Nostr-клиенте с помощью закрытого ключа, вы получаете доступ к функциям этой программы для выполнения таких действий, как создание своих постов или комментирование, лайки или репосты, — то есть к стандартному функционалу социальных сетей. Поинтересовавшись несколькими такими программными клиентами, вы обнаружите, что многие из ранних сервисов выглядят как несколько урезанные аналоги Twitter.

Но такой базовый уровень приложений для обмена сообщениями между пользователями — лишь один из вариантов использования Nostr. Поскольку это открытый протокол, который каждый может использовать и строить на его основе собственные решения, то с усилением конкуренции за привлечение и удержание пользователей можно ожидать расширения разнообразия и функциональности Nostr-клиентов.

При этом важно, что коммуникации между пользователями Nostr происходят на базовом уровне протокола. То есть, зафолловив кого-то, вы можете получать новые заметки и статусы от него независимо от того, какой клиент для Nostr используете вы или этот пользователь. При смене платформы-клиента вам не придётся заново искать чей-то профиль и снова на него подписываться.

Примечание насчёт смены Nostr-клиентов: при переходе на другой Nostr-клиент, один набор данных, который может не перенестись автоматически, — это ваш список реле. Недостающие реле вам, вероятно, придётся добавить в список вручную.

Если вы чувствуете, что этого объяснения для вас недостаточно, возможно, лучшим следующим шагом будет просто найти какой-то из клиентов для Nostr и попробовать чуть поиграться с ним через клиенты, перечисленные ниже.

Типы клиентов для Nostr

Веб-клиенты

Первый и самый распространённый способ доступа к сети Nostr — это просто открыть в браузере один из многочисленных веб-клиентов к ней.

Имея закрытый ключ, вы можете перейти на любой из перечисленных веб-сайтов, залогиниться и начать взаимодействовать с другими пользователями так же, как на сайтах обычных социальных сетей.

Веб-клиент Доменное имя
Astral Ninja https://astral.ninja/
Coracle Social https://coracle.social/
Hamstr https://hamstr.to/
Iris https://iris.to/
Primal https://primal.net/
Nostrgram https://nostrgram.co/
Nostr Rocks https://nostr.rocks/
Satellite https://satellite.earth/
Snort Social https://snort.social/
Yo! Sup https://yosup.app/

Мобильные приложения

Мобильный клиент Android IOS
Current ✅ ✅
Damus ❌ ✅
Amethyst ✅ ❌
Nostur ❌ ✅
Plebstr ✅ ✅

Десктопные приложения

Десктопный клиент Windows Linux MacOS
More-Speech ✅ ✅ ✅

Выбор nostr-клиента

Выбор клиента в конечном счёте зависит от устройства, операционной системы и личных предпочтений, но вот несколько наших фаворитов:

  • Amethyst (Android)
    • Vitor Pamplona, ведущий разработчик Amethyst, проделал фантастическую работу. Amethyst — отличный клиент уже сегодня и кажется, что крупные обновления продолжают поступать чуть не каждый день.
  • Damus (iOS)
    • Damus сыграл огромную роль в принятии Nostr, реализуя новые функции и предлагая замечательный пользовательский опыт в Nostr для владельцев айфонов.
  • snort.social (web)
    • Классный клиент для пользования на компьютере или на мобильном в виде PWA; тоже быстро развивается и вводит новые функции.
  • Iris.to (web)
    • Ещё один отличный веб-клиент, быстро выходящий в лидеры в своей категории.

Реле

Количество разнообразных реле — ключевой элемент децентрализации Nostr. Подобно тому как полные узлы Биткойна широко распределены, и потому нет единого источника истины, на который необходимо было бы полагаться, отсутствие центрального сервера обеспечивает устойчивость Nostr, а в сочетании с криптографическими ключами и подписями это обеспечивает и защиту от взлома на уровне протокола.

Nostr защищён от взлома и на уровне отдельного пользователя тоже при условии безопасного хранения ключей.

Взаимодействуя с Nostr через любой из доступных программных клиентов, вам нужно выбрать реле, на которые вы хотели бы транслировать и хранить там публикуемые посты и откуда они потом будут подтягиваться в ленты других пользователей.

Вероятнее всего, когда вы авторизуетесь в nostr-клиенте, в нём уже будут подключены определённые реле, через которые программа отправляет сообщения по умолчанию. Скорее всего, это публичные реле, чтобы вы, как новый пользователь, сразу могли подписываться на другие профили, публиковать свои сообщения и видеть сообщения с публичных реле в своей глобальной ленте.

Хотя публичные реле занимают своё законное место в экосистеме Nostr, это также источник большого количества спама, поскольку публиковать сообщения на них может кто угодно. Используя только публичные реле, вы рискуете в какой-то момент обнаружить, что ваша глобальная лента стала совершенно непригодна для чтения и забита спамом, реферальными ссылками, lightning-счетами с просьбой о донате и, конечно, порно.

Это также ограничивает охват ваших постов, поскольку многие серьёзные пользователи Nostr не подключают ленту от публичных реле, предпочитая более чистый отфильтрованный поток с платных. Пользователи, конечно, увидят ваш контент, если они на вас подписаны, но публиковаться через публичные реле без большого числа подписчиков в надежде привлечь к себе внимание — это как кричать в холодное и безвоздушное космическое пространство. В этом случае оптимально будет выбрать хотя бы одно платное реле, чтобы ваши сообщения попадали в ленты, из которых люди с удовольствием берут контент, даже если не следят за обновлениями этих пользователей.

Гайд по NOSTR, децентрализованному протоколу обмена сообщениями
Управление реле в Astral Ninja

Чтобы добавить реле, всё, что вам нужно сделать, это перейти на страницу настроек своего Nostr-клиента, выбрать реле и вставить URL, который будет выглядеть как-то так:

  • wss://nostr.relay.example

Какие-то программы при этом предложат вам выбор:

  • Read (на чтение чужих постов)
  • Write (на запись: транслировать свои посты)

В простом случае нас интересуют обе опции, так что ставьте обе галки, сохраняйте настройки и примите поздравления: вы настроили своё первое реле.

Реле, как правило, различаются по качеству — например, по времени работы, фильтрации спама и обрезке контента, — так что не помешает время от времени проводить аудит используемых реле; вам не нужно иметь миллион реле — лучше выбрать те, что обеспечивают вам наилучший опыт, и удалить те, что засоряют ленту.

Выбор правильных реле

Основополагающей для Nostr является идея личного суверенитета и ответственности: вы сами полностью контролируете свои данные и использование протокола. Каждое nostr-реле, к которому вы подключаетесь, получает информацию о вашем IP-адресе (в лучшем случае это будет адрес VPN или Tor), о том, когда вы пользуетесь Nostr, когда публикуете события и с кем взаимодействуете. Хотя значительная часть этой информации является общедоступной — в конце концов, речь идёт о протоколе социальных сетей, — возможность выборочного раскрытия информации является важным преимуществом Nostr.

Выбор реле — во многом дело личных предпочтений, поскольку это влияет на то, какие посты вы будете видеть в общей ленте и кто сможет видеть ваши посты. Но ограничить их число разумно необходимым минимумом будет хорошим решением с точки зрения как безопасности, так и производительности nostr-клиента. Также может быть полезно использовать платные реле.

Список реле и их относительная полезность на ранних этапах развития сети может часто меняться, но я приведу здесь несколько широко рекомендуемых опций:

  • nostr.wine
    • nostr.wine — это платное реле с безупречной репутацией и уникальной дополнительной услугой для платных пользователей:
    • их сервис фильтрации и трансляции позволяет через них публиковать события на других самых популярных реле.
      • Подробнее это описано здесь.
  • nostr.mutinywallet.com
    • Это реле на самом деле просто прокси, публикующее события для вас на всех известных реле с помощью инструмента под названием Blastr.
    • Это может быть отличной опцией для write-only реле, гарантирующей, что ваши посты дойдут до практически каждого пользователя Nostr.
    • Но, используя для передачи событий только это прокси-реле, вы открываете возможности для цензуры, поскольку в какой-то момент они могут просто перестать транслировать ваши события по какой бы то ни было причине. Если для вас это имеет значение, лучше использовать для записи событий несколько реле.
  • relay.nostr.band
    • relay.nostr.band применяет спам-фильтр ко всем обрабатываемым событиям, обеспечивая гораздо лучшее качество общей ленты, чем большинство других реле, и может быть отличным выбором для read-only реле.

Где найти Nostr-реле

Как вариант, можно посмотреть здесь:

Как подписаться на платное реле

Найдя платное реле, на которое хотели подписаться, вы можете связаться с его оператором по его открытому ключу или любому предоставленному контакту. Тот вышлет вам lightning-счёт на оплату. Получив оплату, оператор вносит ваш открытый ключ в белый список и на том всё: реле открыто для вас, можно подключаться и пользоваться.

Если оператор реле использует сетап вроде Nostream, то процесс может быть ещё проще. Всё, что вам будет нужно сделать, это перейти на их сайт,

  • ввести свой открытый ключ или подпись из инструмента управления ключами по своему выбору (см. Инструменты управления ключами);
  • оплатить соответствующий lightning-счёт;
  • после того, как заказ обработан, скопировать URL реле;
  • добавить его в соответствующем разделе в настройках клиента и сохранить настройки.

Как запустить своё Nostr-реле

Если вы оценили надёжность Nostr и хотите поддержать сеть или отказываетесь доверять свои данные кому бы то ни было и скорее предпочтёте настроить собственное реле, вот пара руководств по его настройке в качестве отправной точки:

  1. Set up a Nostr Relay server in under 5 minutes
  2. GitHub

Если вас заинтересовала идея платного реле, то вот ссылка на ещё один отличный гайд по теме. А сочетание собственных Nostr-реле и маршрутизирующего lightning-узла, при правильной настройке, потенциально может генерировать для вас регулярный доход от растущей экосистемы Биткойна и Nostr.

Настройка ленты

В отличие от обычных социальных сетей, в Nostr нет алгоритмического формирования ленты и автоматически предлагаемых постов. Лента формируется из контента, публикуемого пользователями, на которых вы подписались. Если у вас нет подписок, то не будет и лента будет пустой, а если вы не подписаны на активных пользователей, то она будет выглядеть довольно вяло и скучно.

Посты отображаются в хронологическом порядке и вы полностью контролируете, кто будет занимать время в вашей ленте.

Дополнительные фильтры и алгоритмы построения ленты могут быть реализованы на стороне программных клиентов: например, лента “friends and followers”, состоящая из постов, с которыми взаимодействовали те, кто у вас в друзьях, либо популярных среди ваших фолловеров, или отдельная лента “популярных постов”, получивших наибольшее число лайков, репостов, запов и комментов.

Как найти аккаунты для фолловинга

Nostr-каталоги

Если ваша лента выглядит пустовато или вы не понимаете, как найти, на кого бы стоило подписаться, чтобы в Nostr имело смысл заглядывать почаще, то над исправлением ситуации придётся поработать самостоятельно, однако есть способы несколько упростить эту задачу.

Веб-каталоги играли значимую роль с самых первых дней интернета; веб-сайт, который отбирает, систематизирует и отображает данные по определённой нише, всегда будет полезным инструментом для старта. Nostr не исключение: здесь тоже появляются курируемые каталоги аккаунтов для упрощения поиска пользователей.

nostr.directory

Это публичный каталог, позволяющий любому желающему зарегистрироваться и указать на сайте свой публичный ключ от Nostr и подключить другие социальные аккаунты, например, Twitter.

На сайте nostr.directory можно также залогиниться со своим твиттер-аккаунтом, и сервис выдаст вам список из пользователей, на которых вы уже подписаны, которые также оставили в каталоге свой публичный ключ в Nostr.

В зависимости от ваших подписок в твиттере, этого уже может быть более чем достаточно, чтобы оживить вашу ленту и заложить хорошую основу для ваших взаимодействий в Nostr.

Примечание: не стесняйтесь и сами добавиться в каталог, чтобы другие, присоединившись к Nostr, тоже могли легко вас найти.

bitcoinnostr.com/directory

Курируемый каталог популярных аккаунтов из биткойн-твиттера, мигрировавших в Nostr. Здесь вы найдёте довольно много известных имён из биткойн-комьюнити.

Копируйте ключ интересующего аккаунта, вставляйте в своём Nostr-клиенте, жмите Follow, и ваша лента заметно преобразится.

nostr.band

Это поисковая система и инструмент кураторства, который пригодится вам, если вы хотите получить максимальную отдачу от своего аккаунта в Nostr.

Можно воспользоваться поиском по пользователям или контенту либо рекомендациями сервиса в отношении популярных аккаунтов или постов.

Поиск в Twitter

Если вы пользователь твиттера, то можете воспользоваться поиском в нём по запросам вроде:

  • Nostr
  • Npub
  • #plebchain
  • #bitcoinnostr

Это должно дать вам довольно неплохой список твитов от пользователей, поделившихся своими открытыми ключами Nostr — копируйте их либо просто переходите по ссылке на профиль в Nostr, где применимо.

Поиск в stacker.news

Есть пользователи Stacker news? Можете повторить здесь тот же поиск:

  • Nostr
  • Npub
  • #plebchain
  • #bitcoinnostr

Это должно вывести вам какое-то количество пользователей, поделившихся своим открытым ключом от Nostr. Всё то же самое: копируйте ключ в свой Nostr-клиент либо просто переходите по ссылке на профиль, где применимо; осматривайтесь, подписывайтесь.

Настройка профиля в Nostr

Верификация

Nostr использует совершенно иной подход, нежели твиттер, позволяя пользователям “верифицировать” профиль с помощью DNS и простого веб-сервера.

После того как вы верифицировали свой NIP-05 ID, уже никто не сможет создать аккаунт с тем же ID, так что понимающие это пользователи смогут легко отличить любого, кто скопировал ваше имя пользователя, фото и данные профиля, как часто бывает в обычных социальных сетях.

Хотя мы определённо рекомендуем использовать полностью самостоятельный, “самосуверенный”, подход к верификации аккаунта на Nostr и хостить его на собственном реле, мы понимаем, что многие не готовы рассматривать такой вариант, поэтому ниже приводим несколько надёжных сервисов верификации Nostr:

  • Подробнее о верификации вы можете прочитать в вики протокола
  • NIP-05 Simple Guide (самостоятельный хостинг)
    • Этот широко рекомендуемый гайд проведёт вас через весь процесс верификации от начала до конца.
  • Easy-nip5 (самостоятельный хостинг)
    • Простое серверное решение для верификации, позволяющее быстро настроить полную верификацию на VPS с вашим доменным именем.
  • Bitcoiner.chat (посредник)
    • Bitcoin QnA создали простой в использовании инструмент для бесплатного получения верифицированного аккаунта на домене bitcoiner.chat. Это отличное решение для тех, кто не может самостоятельно провести верификацию, предоставляемое одними из наиболее достойных доверия людей в этой сфере (если позволите такую оценку).
  • Nostr Plebs! (посредник)
Гайд по NOSTR, децентрализованному протоколу обмена сообщениями
Верифицированный nostr-аккаунт с галкой

Чтобы связать свои аккаунты в обычных социальных сетях с Nostr, можно воспользоваться таким сервисом, как:

Следуйте инструкциям, включающим в себя публикацию определённого сообщения на соответствующей платформе.

Например, если вы хотите связать с аккаунтом в Nostr твиттер-аккаунт, то вам понадобится опубликовать твит с определённой текстовой строкой, который затем можно будет использовать для подтверждения связи между аккаунтами.

После этого успешно связанные аккаунты отобразятся на странице вашего профиля в nostr.directory.

Гайд по NOSTR, децентрализованному протоколу обмена сообщениями

Бейджи

У свободы от цензуры и, главное, независимости в интернете, которую даёт Nostr, есть и обратная сторона. Поскольку запустить протокол, создать пару из открытого и закрытого ключей и начать публиковать посты может кто угодно, это способствует появлению изрядной доли спама. В отсутствие возможности цензурировать пользователей необходима структура стимулов, которая бы создавала своего рода входной барьер для дегенеративного спама, шиткойн-скамеров или доставучих троллей.

Не представляется возможным обеспечить свободу и устойчивость к цензуре, не открыв при этом двери недобросовестным акторам и деструктивному поведению. И если Nostr не предотвращает изначально попытки спамеров, ботов и фейковых аккаунтов использовать сеть не по назначению, то следующей лучшей опцией будет обеспечить методы фильтрации, очевидной верификации и форму социального рейтинга.

Верификация профиля, подписки на платные реле и, теперь, бейджи как раз призваны помочь пользователям разобраться в этом хаосе.

Бейджи ≠ верификация

В Nostr реализована NIP-05 верификация профилей на основе доменных имён (см. раздел Верификация профиля в Nostr выше), для которой вы можете выбрать свой домен либо домен стороннего сервиса. Например:

  • bitnovosti@getalby.com – уникальный ID с доменом стороннего сервиса,
  • BN@bitnovosti.io – уникальный ID с собственным доменом.

Когда профиль верифицирован, уже никто не сможет создать аккаунт с таким же ID, и знающие это пользователи смогут быстро отличить любого, кто попробует скопировать ваше имя пользователя, фото и данные профиля, как это часто случается в социальных сетях.

NIP-05 упрощает проверку того, связан ли открытый (npub) ключ с определённым идентификатором, который нельзя воспроизвести, но это не самый интуитивно понятный способ для большинства пользователей. Кроме того, вы в любой момент можете сменить свой NIP-05 ID на другое доменное имя, так что это и не самый надёжный способ тоже, но это хороший первый шаг.

Бейджи представляют собой совершенно иной способ добавления кастомных идентификаторов к вашему профилю и могут использоваться с любыми аккаунтами, не обязательно верифицированными — только создатель бейджа определяет условия его получения.

Идея бейджей не только в том, чтобы обозначить свою принадлежность к какой-то группе, это также способ добавить индивидуальности вашему профилю, обозначить те или иные интересы или показать вашу благонадёжность как участника соответствующих сообществ. И это ещё один наглядный идентификатор уровня легитимности аккаунта. Кроме того, это создаёт дополнительный стимул для владельцев профилей действовать как ответственные пользователи Nostr, если они хотят получить те или иные бейджи.

Конечно, каждый волен игнорировать эти “стимулы”, если угодно. Либо вы можете участвовать в сообществах по интересам и построить хорошую репутацию для профиля. Второе также значительно усложнит создание “клонов” вашего аккаунта, поскольку мошенникам будет затруднительно получить бейджи, которые есть у вас.

Гайд по NOSTR, децентрализованному протоколу обмена сообщениями

Что это и как это работает

Разного рода бейджи — Badges, Profile Badges или Badge Awards — могут выдаваться их создателями в знак признания, благодарности или за участие в выполнении определённой задачи. Любой пользователь может создавать бейджи, устанавливать условия для их получения, награждать других пользователей своими бейджами или, наоборот, лишать их.

Бейджи в Nostr — это новые события, которые профили могут транслировать на реле для создания и присваивать различным открытым ключам. Любой пользователь Nostr может выпустить бейдж, который будет привязан к его открытому ключу как ключу создателя бейджа. Закрытый ключ этого пользователя единственный будет иметь доступ к списку пользователей, награждённых этим бейджем. Для добавления в список нового пользователя, создатель бейджа обновляет этот список, включая в него открытые ключи, которые, по его мнению, соответствуют критериям получения бейджа.

После передачи на реле обновлённого списка пользователи из списка смогут разблокировать этот бейдж и добавить его в свой профиль. Количество бейджей, которое может быть присвоено открытому ключу (аккаунту) неограничено: у пользователя могут быть хоть сотни и тысячи бейджей. При этом пользователь сам выбирает, какие бейджи будут отображаться у него в профиле и в каком порядке. Он также может отказаться от получения того или иного бейджа.

Создание, редактирование и присвоение бейджей

Для создания бейджа можно воспользоваться специальным клиентом, как badges.page. Это первый такой клиент, со временем наверняка появятся и другие.

  • Перейдите на страницу badges.page
  • Залогиньтесь со своим nostr-ключом
  • Нажмите Create
  • Придумайте название бейджу, задайте описание
  • Укажите URL картинки для разрешения 1024×1024
  • Укажите URL для миниатюры – 512×512 (xl), 256×256 (l), 64×64 (m), 32×32 (s) and 16×16 (xs)
  • Ниже вы должны увидеть предварительный просмотр своего бейджа
  • Если всё устраивает, нажимайте Save/Publish и подпишите бейдж своим ключом

Примечание: для создания миниатюры изображения можно воспользоваться сервисом наподобие Canva. Получив изображение, вы можете загрузить его в любой файлообменник, на собственный сайт либо воспользоваться nostr-клиентом, поддерживающим прямую загрузку файлов.

Гайд по NOSTR, децентрализованному протоколу обмена сообщениями

Созданные бейджи отображаются в разделе Created вашего профиля. Каждый бейдж имеет уникальный ID [события создания], который выглядит примерно так:

naddr1qq3hwefdv3hkuapddejk2epddehj6um5d9hxk6tw943xzer8v5kkyctyvajsygr7e5l7vdf7cnznvune86q5ghp2xxwv7z3f32gaw7kulguxk5hnp5psgqqqw5usv94m0r

Гайд по NOSTR, децентрализованному протоколу обмена сообщениями

Если вам что-то не нравится в созданном вами бейдже, там же можно его отредактировать. Для внесения изменений понадобится подписать их вашим ключом.

Для награждения бейджем нужно добавить в список бейджа соответствующих пользователей по их уникальному открытому (npub) ключу либо по NIP-05 ID (см. раздел Верификация nostr-аккаунта). Для большинства создателей бейджей, по-видимому, будет предпочтительно добавление по npub.

После этого получатель, залогинившись по своему npub-ключу в клиенте с поддержкой бейджей, автоматически получит уведомление о том, что он может получить новый бейдж. Все предложенные бейджи можно увидеть также на общей странице бейджей вашего профиля; там же вы можете принять их (подписав это действие своим ключом) или отклонить.

Примечание насчёт спама и мошенничества с бейджами

Поскольку бейджи могут быть созданы кем угодно и присвоены кому угодно, контроль своего списка бейджей остаётся на вашей ответственности: вы сами следите за тем, чтобы в нём отображались бейджи только тех сообществ и людей, которым вы доверяете.

У спамеров есть возможность создавать бейджи с широкими списками пользователей под видом того или иного сообщества — только чтобы затем переименовать этот бейдж. Мошенники тоже могут создавать поддельные бейджи и предлагать заплатить за участие в каких-то сообществах — только чтобы оставить вас с бесполезным бейджем в профиле. Это просто стоит иметь в виду и проявлять разумную разборчивость, особенно если кто-то предлагает вам заплатить за получение бейджа.

У создателя бейджа есть также возможность выстроить вокруг него некоторого комьюнити, после чего передать или продать ключ от бейджа другому пользователю. Либо соответствующий ключ может быть, например, похищен. В обоих случаях вы можете обнаружить себя причисленным к некой новой группе, на которую никак не соглашались.

Nostr и приватность

Хотя Nostr как таковой не является протоколом конфиденциальности — помимо прочих проблем, клиенты по умолчанию передают реле IP-адреса пользователей, — он может привнести некоторые улучшения в конфиденциальность Биткойна.

Улучшение приватности и масштабируемости BIP47

BIP47 — это Bitcoin Improvement Proposal по созданию многоразовых платёжных кодов, защищающих конфиденциальность пользователей при многократно повторяемых платежах (мы писали о нём довольно подробно здесь). Без платёжных кодов, лучшим способом для пользователей избежать повторного использования адресов при многократных платежах, по идее, является ручная генерация нового адреса для каждой транзакции, что довольно утомительно.

Чем плохо повторное использование адресов? Когда пользователь использует для отправки транзакций один и тот же адрес, это позволяет любому исследователю блокчейна легко кластеризовать все транзакции с этого адреса, построить граф на основе истории его платежей и получить лучшее представление о составе адресов кошелька, его балансе, обороте средств и получателях транзакций. Поэтому предотвращение повторного использования адресов является лучшей практикой сохранения конфиденциальности в Биткойне и уже реализовано по умолчанию во многих биткойн-кошельках. Однако, когда пользователь выполняет частые регулярные платежи одному и тому же контрагенту, каждый раз генерировать новый адрес может быть неудобно.

BIP47 позволяет покупателю сгенерировать набор адресов, которые будут использоваться в платежах продавцу. Иначе, если покупатель платит, например, раз в месяц, продавцу пришлось бы раз в месяц отправлять продавцу новый адрес. С BIP47 же покупатель создаёт для продавца отдельный платёжный код, который работает подобно расширенному открытому ключу. Это позволяет покупателю автоматически генерировать новый адрес для каждого платежа продавцу.

Такой обмен создаёт несколько проблем, обусловленных архитектурой сети Bitcoin. Первые две — экономические: транзакция уведомления, необходимая для создания платёжного кода, “весит” 80 байт, что может подразумевать довольно высокую комиссию для пользователей в будущем или в периоды высокой загрузки сети. Кроме того, транзакции уведомления создают неотправляемые выходы, что со временем раздувает UTXO-сет. Это увеличивает вычислительную нагрузку на узлы Биткойна, которым для валидации транзакций на сегодня необходимо хранить весь UTXO-сет Биткойна, то есть каждый выход, который не был использован в качестве входа новой транзакции.

Примечание: необходимость хранить весь текущий UTXO-сет потенциально может быть устранена в будущем благодаря реализации UTreeXO, переносящего бремя доказательства того, что транзакция расходует действительный UTXO, на владельца UTXO, сокращая требования к дисковому пространству с гигабайтов до килобайтов.

Помимо этого, транзакция уведомления создаёт так называемую токсичную сдачу. Когда пользователь получает сдачу от транзакции уведомления и тратит этот выход на некий третий адрес, сторонний наблюдатель получает возможность соотнести повторяющиеся платежи пользователя с неповторяющимися, даже если тот не допускает повторного использования адресов.

Кроме того, для каждого кошелька может быть только один адрес уведомления. Если продавец хочет установить соединение для повторных платежей с десятью покупателями, то сторонний наблюдатель сможет получить представление о клиентской базе продавца, поскольку всем десяти покупателям придётся отправить транзакции уведомления на один и тот же принадлежащий продавцу адрес для уведомлений.

Так вот, вместо создания транзакций уведомления, платёжными кодами можно обмениваться через Nostr. В отличие от других способов коммуникации, Nostr для этого подходит, поскольку здесь нет центрального органа, который потенциально мог бы цензурировать обмен сообщениями. В то же время все личные сообщения в Nostr зашифровываются по умолчанию, устраняя необходимость вычисления общих [криптографических] секретов. Инициация платёжных кодов BIP47 через Nostr позволяет избежать раздувания UTXO-сета нерасходуемыми выходами, прослеживания связи между регулярными и однократными платежами, а также раскрытия клиентских баз продавцов, устранив выходы с токсичной сдачей и повторное использование адресов.

Nostr Pay-To-EndPoint

В Биткойне для сопоставления транзакций с субъектами сети сервисы блокчейн-анализа используют эвристику по общему владению входами. В этой эвристике входы одной транзакции, предоставляемые разными публичными ключами, классифицируются как принадлежащие одному субъекту сети. Благодаря архитектуре на основе UTXO, в которой входы и выходы транзакций связаны, протокол Биткойна поддаётся также анализу суммы подмножеств. Этот анализ позволяет рассчитать вероятность того, что определённые входы и выходы транзакции принадлежат одному и тому же субъекту сети, даже если для входов используются разные открытые ключи. Например, если транзакция имеет входы номиналом 1, 4, 7, 23 и 6, а выходы номиналом 5 и 36, то можно сделать вывод, что входы 1 и 4 и входы 7, 23 и 6 принадлежат одному субъекту сети.

Гайд по NOSTR, децентрализованному протоколу обмена сообщениями
Источник: Knowledge Discovery in Cryptocurrency Transactions

Pay-to-EndPoint (P2EP) — это переосмысление технологии Pay-to-IP (P2IP) Сатоши Накамото, закодированной в оригинальном биткойн-клиенте, с целью сохранения конфиденциальности. Одной из форм P2EP-транзакций являются PayJoin — транзакции, разработанные специально чтобы нарушить эвристику по общему владению входами. PayJoin-транзакции содержат входы и от отправителя, и от получателя. Обмен информацией о том, какие UTXO будут использоваться в качестве входов, происходит в любом альтернативном канале связи, например, Tor. Результатом является создание частично подписанной биткойн-транзакции (PSBT). Когда обе стороны согласились с условиями и подписали транзакцию, PayJoin-транзакция выглядит в блокчейне неотличимо от любой другой биткойн-транзакции. Но поскольку в качестве отправителя здесь выступают и отправитель, и получатель, это нарушает эвристику по общему владению входами, а также анализ суммы подмножеств: например, стороны могут внести входы номиналом 3 и 5, а выходы транзакции будут содержать 6 и 2.

Гайд по NOSTR, децентрализованному протоколу обмена сообщениями
Источник: Pay To EndPoint (Adam Fiscor, 2018)

Очевидная проблема: PayJoin-транзакции сложно координировать, поскольку оба участника должны быть онлайн одновременно. Если, инициировав транзакцию, пользователь, например, закрывает компьютер или просто нарушается подключение к сети, то транзакция уже не может быть передана. В Nostr же коммуникации происходят асинхронно, то есть пользователи могут получить необходимую информацию от реле, как только соединение будет восстановлено. Использование в качестве конечных точек P2EP-транзакции ключей Nostr вместо Tor Onions существенно упрощает координацию транзакций.

Ещё одной реализацией P2EP является LN-URL. С помощью LN-URL, вместо утомительной необходимости генерировать новые счета под каждую транзакцию, пользователи могут получить статическую конечную точку, указывающую на веб-сервер, автоматически генерирующий новые счета. Однако, поскольку веб-серверы зависят от глобальной службы доменных имён (DNS), пользователи LN-URL неизбежно раскрывают идентификационные данные хостинг-провайдеру, а также свой IP-адрес получателям платежей, если только не принять дополнительных мер предосторожности. Поэтому широкое внедрение LN-URL может нанести ущерб псевдонимности Lightning Network. Вместо веб-сервера, пользователи могли бы использовать в качестве конечных точек LNURL-транзакций Nostr-ключи, чтобы скрыть свою личность.

Nostr для CoinJoin

PayJoin хороши для нарушения эвристики по общему владению входами, равно как и анализа суммы подмножеств, но они не обеспечивают конфиденциальность отправителя и получателя друг перед другом, представляя собой, по сути, двусторонние CoinJoin, ограниченные двумя участниками. Это означает, что отправитель и получатель знают собственные входы и выходы, исходя из чего легко определить входы и выходы партнёра по транзакции. И если только PayJoin не сопровождается CoinJoin-транзакциями, пользователи рискуют раскрыть партнёрам по PayJoin баланс своего кошелька, а также его прошлые и будущие транзакции.

В системах с анонимной суммой, таких как WabiSabi (протокол координации CoinJoin в Wasabi Wallet), ключи Nostr могут функционировать как коммуникационные конечные точки для координации CoinJoin-транзакций. Это позволяет отправителю и получателю CoinJoin-транзакции обмениваться учётными данными, необходимыми для участия в раундах CoinJoin, что, по сути, позволяет осуществлять конфиденциальные платежи в рамках CoinJoin. Благодаря использованию ключей Nostr в качестве конечных точек CoinJoin, сотрудничающие стороны остаются в неведении относительно балансов и транзакций своих контрагентов. Одновременно с тем это позволяет пользователям PayJoin экономить на комиссиях, облегчая платежи непосредственно в CoinJoin, вместо необходимости последовательного использования PayJoin и CoinJoin.

Ещё один вариант применения Nostr с CoinJoin состоит в поиске координатора. Большинство CoinJoin-координаторов работают через Tor, чтобы скрыть участников CoinJoin, однако у пользователей на сегодня нет возможности простого поиска новых координаторов, не считая JoinMarket, CoinJoin-маректплейса, ориентированного на более продвинутых пользователей CoinJoin. Пользователи CoinJoin могут добавлять своих координаторов в Wasabi Wallet, но нет простого способа автоматизировать процесс обновления координаторов из-за отсутствия платформы для публикации. Вместо этого, пользователи (при желании) вынуждены искать новых координаторов в социальных сетях и на форумах и добавлять их вручную. Однако публикация координаторами объявлений о своих услугах на подобных платформах не выглядит оптимальной и для них тоже: как минимум, любой пользовательский профиль может быть легко заблокирован сервисом.

Если Tor — это анонимный переадресатор, то есть протокол, облегчающий анонимную передачу и получение сообщений между одноранговыми узлами, то Nostr может функционировать как анонимная доска объявлений. Координаторы CoinJoin могут объявлять о своих услугах через тип события в Nostr, а CoinJoin-кошельки — автоматически извлекать из реле нужные данные для отображения в своих программных клиентах. Трансляция серверов координаторов через Nostr, например, с помощью плагина Servers CoinJoin от BTCPay или как предложено в программе Vortex для CoinJoin с поддержкой Lightning, может устранить необходимость ручного поиска и добавления координаторов в CoinJoin-клиентах, способствуя децентрализации ландшафта координации CoinJoin.

Обход требований к IP с помощью Nostr

Я здесь об этом ещё не упоминал, но первоначально протокол Nostr эволюционировал из попытки создания разработчиком LNBits полностью децентрализованного маркетплейса под названием Diagon Alley. По мере эволюции протокола Diagon Alley мутировал в расширение NostrMarkets: нативный маркетплейс, позволяющий продавцам и покупателям запускать интернет-магазины и взаимодействовать с ними посредством реле. В NostrMarkets покупатели могут подписаться на публичный ключ продавца и получать предложения товаров через реле, вместо прямого доступа к веб-сайту продавца. Это повышает устойчивость интернет-магазинов к цензуре, поскольку продавцы не зависят от веб-сайтов, доступ к которым можно заблокировать или изъять их сервера. Вместо этого, предложения магазина хостятся всеми реле, к которым тот подключился — как и заметки любого пользователя. Даже если сервер продавца будет изъят, магазин можно будет легко восстановить, так как все заметки с предложением товаров распределены по реле сети Nostr. NostrMarkets обеспечивает координацию и заказов и платежей с помощью зашифрованных личных сообщений в Nostr, а платежи осуществляются в Lightning Network.

В дополнение к устойчивости к цензуре, расширение NostrMarkets позволяет создавать и полностью анонимные маркетплейсы. Вместо того чтобы открывать IP продавца всему миру, и продавцы, и покупатели, раскрывают свои IP только реле, к которому подключаются, что легко устранить, запуская клиент или магазин через Tor. И в отличие от запуска магазина полностью в Tor, что сделает его доступным только через Tor-браузер и веб-страницы .onion, NostrMarkets можно пользоваться из любого браузера или со смартфона, что улучшает пользовательский опыт при сохранении конфиденциальности в коммуникациях клиент – сервер. Поскольку обмен сообщениями ведётся через зашифрованные личные сообщения в Nostr, а платежи выполняются через Lightning Network, платежи в NostrMarkets остаются сравнительно конфиденциальными при условии, что lightning-узел работает через Tor, поскольку личные сообщения о координации платежей неотличимы от любых других личных сообщений в Nostr.

Ещё один способ обойти требование IP-адреса при коммуникации клиент – сервер — это NOSTREST. REST (сокращение от Representational State Transfer) является частью программной архитектуры веб-сети, используемой для коммуникации между серверами и клиентами посредством запросов GET, POST, PUT, DELETE и PATCH. Но при отправке клиентом REST-запроса на сервер раскрываются IP-адреса, что потенциально может приводить к раскрытию информации, позволяющей идентифицировать личности пользователей. @__escapee__ предложил (GitHub) решение в виде REST API бриджа на основе Nostr под названием NOSTREST. Благодаря использованию ключей Nostr без идентифицирующих заголовков, и пользователям, и операторам серверов, нет нужды знать IP-адреса своих контрагентов. Таким образом, реализация NOSTREST может улучшить конфиденциальность биткойн-приложений, использующих REST, поскольку серверам при этом не нужны IP-адреса клиентов.

Компромиссы конфиденциальности Nostr

Подход с прокси-реле, используемый в Nostr, превосходен в плане децентрализации и устойчивости к цензуре, но в чём он не очень хорош, так это в отношении защиты конфиденциальности пользователей по умолчанию. Поскольку для коммуникации с большинством пользователей Nostr сегодня вам необходимо подключаться к различным реле, то каждому из этих реле вы будете раскрывать свой IP-адрес (ваш уникальный идентификатор в интернете), напрямую связывая его с вашим цифровым профилем в Nostr. Это может быть использовано для связи вашего профиля в Nostr с прочей онлайн-активностью, для связывания между собой без вашего на то согласия нескольких контролируемых вами профилей в Nostr и, в общем случае, даже для того, чтобы дать операторам реле приблизительное представление о том, где вы находитесь.

Ещё одна ключевая проблема этого подхода заключается в отсутствии центрального сервера для хостинга медиафайлов с изображениями, аудио и видео, из-за чего пользователям, чтобы поделиться ими через Nostr, приходится загружать медиафайлы на сервер по своему выбору. Кака результат, чтобы корректно отображать изображения и видео в вашей ленте, клиенту Nostr придётся подключаться к любому количеству ненадёжных серверов, на которых хранятся соответствующие медиафайлы. И хотя это устраняет необходимость доверия к одному централизованному серверу, это также подвергает вас опасности отслеживания или получения вредоносного контента от третьих лиц, к которым вы можете подключаться, вольно или невольно. К счастью, большинство Nostr-клиентов начинают предотвращать загрузку контента из ненадёжных источников, но это всё ещё представляет существенный риск для вашей конфиденциальности и безопасности.

Важно понимать всем пользователям

Наконец, есть ещё две важные оговорки в отношении конфиденциальности в Nostr, о которых важно знать, хоть они и не обязательно представляют проблему для рядового пользователя.

Во-первых, для личных сообщений в Nostr используются публичные события, а содержание сообщения шифруется закрытым ключом получателя. Это означает, что, хотя содержание сообщений зашифровано, метаданные о том, с кем и когда вы вступали в переписку открыты всем.

Вторая оговорка заключается в том, что “запы” — lightning-донаты, отправляемые к тем или иным постам в Nostr в знак того, что вам понравился пост и вы благодарны автору за труд, — по умолчанию являются публичными и раскрывают сумму, время и комментарий к платежу всей сети Nostr.

В некоторых nostr-клиентах при этом реализована опция отправки “приватных запов”, которые шифруют всю информацию, кроме времени и суммы, для получателя и скрывают отправителя и любые комментарии к платежу от остальных пользователей Nostr.

Важные составляющие защиты собственной конфиденциальности при использовании Nostr:

Nostr для блогинга

Число разного рода блогеров и создателей контента только растёт, и в последние годы этот рост ещё ускорился. Люди хотят укрепить своё влияние в обществе, привлечь клиентов или просто поделиться своими идеями. Но, построив библиотеку контента, как вы обезопасите её от удаления из общего доступа в сети?

В сервисах вроде Medium или Substack вам очень легко начать публиковать свои тексты — всё, что вам понадобится, это email адрес, — но вы доверяете сервису хостинг своего контента, и он может удалить его или закрыть к нему доступ в любой момент. Не предусмотрев такого сценария, вы можете остаться даже без копий своего контента. И потеряете доступ к аудитории, которую так долго выстраивали, по крайней мере частично.

Но что, если вы хотите минимизировать доверие к посредникам, самостоятельно контролировать собственные данные и сохранять контакт с подписчиками независимо от действий посредников? Для решения этих задач и создан Nostr.

Nostr-клиенты для блогов

Большинство ранних клиентов Nostr ориентированы на воссоздание пользовательского опыта Twitter или Reddit, где пользователи публикуют короткие записи или делятся ссылками. Подобный стёб, мемы и короткие реплики по любому поводу занимают и большую часть нынешней ленты Nostr, но появляются и новые клиенты, предлагающие создателям контента возможность перехода на Nostr как основную платформу для публикации.

С помощью этих клиентов вы можете постить длинные статьи прямо на реле и делиться ссылкой на них в формате короткого поста для стандартных социальных клиентов Nostr. Это, в общем, воспроизводит тот же процесс, что и с обычными социальными сетями, только оба поста будут доступны в Nostr.

BlogStack

Blogstack — это платформа для блогов наподобие Medium, построенная на основе протокола Nostr: пользователи подписывают посты своими ключами и транслируют их на реле, к которым подключены.

Гайд по NOSTR, децентрализованному протоколу обмена сообщениями

Habla News

Habla News — ещё одна платформа для блогов на основе Nostr с WYSIWYG редактором: окно предпросмотра отображается рядом с редактором, и вы сразу видите, как будет выглядеть результат.

Гайд по NOSTR, децентрализованному протоколу обмена сообщениями

Примечание: при публикации постов в этих редакторах, они не будут автоматически добавлены в ваши ленты короткого контента: репостить ссылку на каждый пост придётся вручную. Однако ваши читатели смогут комментировать эти посты и присылать вам запы (донаты), используя свои аккаунты, как обычно.

Зачем переносить свой блог на Nostr

  • Распределённая резервная копия вашего текущего блога (или нескольких).
  • Возможность расширить аудиторию когортой пользователей Nostr.
  • Построение базы фолловеров, доступа к которой вас будет уже совсем непросто лишить.
  • Простая монетизация контента в BTC посредством “запов”.
  • Место для размещения более спорного контента.
  • Возможность развернуть некоторые из ваших коротких заметок в Nostr в более объёмные посты.
  • Создание более вовлекающего и интерактивного контента на Nostr.
  • Мгновенное размещение контента на нескольких платформах.
  • Сохранение анонимности: для создания и управления учётной записью не требуется никаких личных данных.

Как перенести свой блог на Nostr

Для переноса контента из текущего блога на Nostr вам нужно экспортировать посты из текущей платформы и импортировать их в Nostr, воспользовавшись для этого специальным инструментом migrate.nostr.com:

  1. Перейдите на migrate.nostr.com
  2. Выберите в выпадающем меню платформу, контент из которой вы переносите. На сегодня поддерживаются Substack, WordPress и Ghost; список будет расти — инструмент находится в активной разработке.
  3. Загрузите экспортированный csv файл
  4. Загрузите экспортированный .HTML файл
  5. Подпишите действие своим ключом

Инструмент конвертирует файлы в markdown и даст вам выбрать, какие посты вы хотите загрузить в Nostr.

Затем каждый выбранный пост будет загружен на реле, с которыми у вас установлено соединение для записи и которые поддерживают события NIP-23 (github; вкратце – поддерживают публикацию длинных постов). После загрузки каждый блог будет доступен в nostr-клиентах с поддержкой NIP-23 и для каждой успешно загруженной статьи будет назначен свой открытый ключ.

Проверьте каждый импортированный пост в NIP-23 клиенте по своему выбору и убедитесь, что контент перенесён корректно. Если нет, то придётся отредактировать пост вручную в клиенте и ретранслировать его, подписав обновление своими ключами.

Развёрнутое руководство по переносу контента из Substack, Medium, Ghost и WordPress можно найти в этом посте от The Bitcoin Manual.

Подробное руководство по встраиванию постов в Nostr на свой веб-сайт — здесь.

Zaps / запы

Наконец, “запы” (zap). Пользователи Nostr уже с первого дня могли отправлять друг другу донаты и пожертвования с помощью Lightning Network, но NIP-57 (github) ещё больше сблизил эти сети.

NIP-57 определяет новый тип заметок, называемый lightning Zap, представляющие собой оплаченные квитанции, отправленные lightning-узлом, называемым zapper. Заметки с запросами “запов” получают данные из lightning-инвойса (сумму платежа, отправителя и получателя) и формируют новое событие в Nostr, которое затем может быть захвачено реле и отображено программными клиентами.

Lightning-инвойсы в Nostr позволяют программным клиентам для Nostr отображать платежи от различных пользователей в сети. Эти “запы” можно использовать для донатов и пожертвований пользователям сети, оплаты товаров и услуг, разблокировки платного контента и даже для предотвращения рассылки спама.

Настройка запов в профиле

Nostr — это история про взаимовыгодное взаимодействие — отдавать и получать, — поэтому, если планируете отправлять кому-то запы, то будьте готовы и получать их. Чтобы подготовить свой профиль в Nostr к перенаправлению платежей на свой lightning-кошелёк, вам понадобится:

  • кошелёк, совместимый с Lightning Network и с поддержкой zaps;
  • профиль в Nostr;
  • nostr-клиент с поддержкой zaps.

Чтобы подключить запы в своём профиле, нужно сгенерировать lightning-адрес в кошельке по выбору. В свойствах своего профиля в Nostr вставьте этот адрес в поле LN address либо LUD-06. Сохраните изменения.

Если всё в порядке, вы должны увидеть иконку Lightning рядом со своим профилем и под всеми своими заметками. Теперь любой пользователь сможет мгновенно перечислить вам донат со страницы вашего профиля или прямо из просматриваемой заметки.

Совет: пользуясь Nostr на десктопе, вы можете облегчить себе жизнь, используя браузерный кошелёк, такой как Alby, который может обрабатывать как подписание событий в Nostr, так и lightning-платежи.

Отправка запов

В зависимости от используемого клиента для Nostr, вы можете видеть иконку молнии ⚡ или кликабельное слово zap в профиле пользователя или и под каждым его постом тоже. Клик по иконке откроет меню отправки запа-доната, например:

Гайд по NOSTR, децентрализованному протоколу обмена сообщениями

Если при отправке вы выбрали zap type: Public, то после успешного выполнения он будет отражён на вкладке Zaps в профиле пользователя. Это означает, что любой может увидеть, сколько запов и кому вы отправили.

Гайд по NOSTR, децентрализованному протоколу обмена сообщениями

После успешной отправки запов к посту отправленная сумма будет добавлена к сумме запов под постом. Можно посмотреть и список пользователей, отправивших запы этому посту, — так же, как вы можете посмотреть и пользователей, поставивших лайк или поделившихся этим постом.

Гайд по NOSTR, децентрализованному протоколу обмена сообщениями

Непрошедшая отправка

Zap как тип событий может поддерживаться не всеми клиентами и кошельками, поэтому какие-то из ваших зап-платежей могут “не пройти”. Запы требуют определённых метаданных, чтобы клиенты могли их получить и связать с профилями или постами. Если они не могут получить эти данные от кошелька, связанного с профилем, то некоторые клиенты могут автоматически обработать как стандартный lightning-платёж, другие — вернуть статус неудачной попытки. Во втором случае вы всё равно можете отправить пользователю платёж, используя стандартный LN-URL или lightning-адрес.

Гайд по NOSTR, децентрализованному протоколу обмена сообщениями

Перенаправление запов

Одно из последних обновлений в мире zap(ов) — это возможность перенаправить запы к тому или иному посту другим пользователям вместо вашего кошелька.

Чтобы настроить перенаправление запов:

  • Создайте пост (можно протестировать это на Snort.Social)
  • Выберите опцию Advanced
  • Вставьте новый lightning-адрес или LN-URL, на который вы хотите направить платежи, получаемые к этому посту
  • Опубликуйте пост

После успешной публикации поста любые запы, поступившие к этому посту, будут игнорировать кошелёк по умолчанию для вашего аккаунта и направляться на кошелёк, который вы обозначили в настройках поста.

Сценарии использования

  • Сбор средств — для проекта, отдельного пользователя или сообщества.
  • Вознаграждение автора оригинального контента.
    Предположим, вы увидели интересную статью и у автора обозначен lightning-адрес. Вы можете репостнуть статью и прописать для этого репоста lightning-адрес автора исходного поста, чтобы все запы направлялись на него. Так вы поддержите автора оригинального контента.

Опасности, связанные с перенаправлением запов

Важно сохранять бдительность и проверять запросы перед тем, как жать кнопку Zap. Мошенники используют самые разнообразные тактики, чтобы обманом выманить деньги, а поскольку в Nostr вы используете биткойн, то нет никакой возможности вернуть средства, после того как вы передали их мошеннику. Здесь нет способа заморозить аккаунт, как-то пометить его или запросить возврат средств. Единственная ваша защита — это ваша собственная внимательность и сообразительность.

Поскольку Nostr — это открытый протокол, мошенникам не составляет труда имитировать аккаунты популярных компаний или пользователей или создать профили брендов и личностей, которых ещё нет в Nostr. Профиль может выглядеть точно как официальный, но запы будут пересылаться на другой lightning-адрес.

Если платёжный запрос кажется вам подозрительным:

  • Проверьте NIP-05 ID профиля.
  • Проверьте, кто подписан на этот аккаунт.
  • Загляните в комменты к его постам и в историю постов подозрительного профиля.
  • Проверьте, что адрес отправки запов совпадает с обозначенным в аккаунте, если только в посте не указано прямо, что запы пересылаются.
  • Что-то может быть не так, если пользователь запрашивает запы для определённого поста, а не старых сообщений или своего профиля.

Хотя эти советы могут помочь вам отсеять 99% скамеров, всё равно остаётся, условно, 1%, который сможет получить доступ к официальному профилю пользователя в Nostr и нажиться на его подписчиках. Единственный способ от этого защититься — это быть наготове, подвергать сомнению любой запрос об оплате или донатах и понимать, как работают эти скамы с lightning-инвойсами.

 


DYOR

Если Nostr вас заинтересовал и вы хотите узнать о нём больше, не останавливайтесь на прочитанном здесь — пусть этот неисчерпывающий обзор станет отправной точкой для вашего собственного исследования. А начать можно, например, с этого:


Подписывайтесь на BitNovosti в Telegram!
Делитесь вашим мнением об этой статье в комментариях ниже.

На основе постов Джеймсона Лоппа, Foundation и The Bitcoin Manual

ОСТАВЬТЕ ОТВЕТ

Please enter your comment!
Please enter your name here