Silent Payments позволяют получать биткоины через один многоразовый идентификатор, не направляя каждый платёж на один и тот же публично отслеживаемый адрес. Кошелёк — приложение или устройство для получения и отправки биткоинов. Кошелёк отправителя вычисляет новое назначение платежа, а кошелёк получателя позднее узнаёт его в цепочке. Порядок описывает BIP352. Получателю не нужно быть онлайн или перед каждым платежом передавать новый адрес.
Если Боб разместит обычный Bitcoin-адрес на сайте, любой сможет наблюдать за поступлениями в обозревателе. Обозреватель блоков — приложение для поиска транзакций и блоков определённой сети. Выдавать каждому новый адрес лучше, но кто-то должен их передавать. Silent Payments решают именно эту проблему. Боб публикует постоянные данные, а Алиса создаёт из них выход для конкретного платежа, то есть запись суммы и условия её дальнейшего расходования. Публичный контакт не повторяется в цепочке как один и тот же адрес получения. [1] [3] [9] [7]
Адрес Silent Payments содержит открытый scan key и открытый spend key. Приватный ключ — секретное числовое значение; соответствующий открытый ключ можно передавать другим. Названия описывают роли: scan key связан с поиском платежей, spend key — с их расходованием. Соответствующие приватные ключи остаются у Боба. В mainnet, основной сети Bitcoin, он начинается со sp1 и использует Bech32m. Это не обычный Taproot-адрес с началом bc1p и не резервная копия кошелька. Открытая пара позволяет совместимому отправителю вычислить назначение платежа, но не даёт права тратить или списка поступлений Боба. [1] [5] [9]
Чтобы заплатить Бобу, кошелёк Алисы выбирает ранее полученные суммы. Ссылки на эти суммы образуют входы новой транзакции. Для вычисления назначения используются ключи входов, соответствующих правилам BIP352; подходит не каждый тип входа. Алиса объединяет их приватные ключи с открытым scan key Боба методом ECDH. Этот криптографический метод позволяет обеим сторонам независимо получить один и тот же секрет, не передавая приватных ключей. Из секрета и его привязки к конкретным входам кошелёк выводит изменение открытого spend key Боба и получает ключ нового выхода. Привязка к входам предотвращает повторение назначения при повторном использовании ключа входа. Если Алиса применяет RBF, то есть заменяет неподтверждённую транзакцию, например для повышения комиссии, и меняет входы, кошелёк должен вычислить назначение заново. Просто использовать прежний результат нельзя. [1] [4]
Кошелёк Боба сканирует подходящие транзакции и вычисляет возможные выходы с помощью его приватного scan key и открытых данных входов. Найдя совпадение, он учитывает выход среди его средств. В цепочке это выход Taproot без отдельного уведомления. Бобу не нужно быть онлайн при отправке или заранее отвечать Алисе, но позднее кошелёк должен обработать необходимые данные. [1] [6]
Scan key находит платежи; spend key вместе с выведенными данными позволяет тратить. Приватный spend key можно держать отдельно от онлайн-сканера. Утечка одного приватного scan key не позволяет украсть деньги, но вместе с открытыми данными может раскрыть поступления. Передача его чужому сканирующему серверу поэтому влияет на приватность. Seed и приватный spend key такому серверу не отправляют. [1]
Silent Payments не требуют особой транзакции уведомления, но вычисления и передача данных не бесплатны. Получатель изучает подходящие транзакции и выполняет описанные криптографические вычисления. На телефоне важны индексация, источник данных и время с последнего сканирования. Обычного списка адресов недостаточно. Узел — программа, которая проверяет транзакции и блоки и обменивается данными с другими участниками сети. Свой узел и сторонний поставщик имеют разные требования и последствия для приватности и доступности. [1] [2] [8]
Боб может использовать labels — производные варианты платежей, например для разных проектов. Для каждого не требуется полностью независимое сканирование. Однако публичные варианты имеют общий scan key, поэтому наблюдатель может установить общего владельца. Метка помогает Бобу классифицировать поступление, но не позволяет выдавать эти варианты за несвязанных получателей. Специальная метка сдачи обозначает остаток собственного платежа Боба. Если он расходует ранее полученную сумму, превышающую платёж вместе с комиссией, остаток возвращается в его кошелёк. Это не возврат денег от продавца. BIP352 резервирует для этого метку m = 0. При восстановлении кошелёк всегда ищет её и не должен публиковать её как контакт для платежей других людей. [1] [4]
Представим, что Боб потерял телефон, но сохранил резервную копию. Seed — секретное начальное значение, из которого кошелёк выводит ключи; обычно пользователь сохраняет его через Seed Phrase, слова для восстановления в определённом порядке. Однако сами слова не означают, что любое приложение найдёт Silent Payments. Оно должно поддерживать тот же способ выведения ключей и поиск таких платежей. Копия использованных labels и дата начала использования кошелька облегчают восстановление. Для поиска текущих средств можно сканировать нужные данные транзакций с оставшимися UTXO: отдельно полученными суммами, которые ещё не потрачены. Полная история требует более широкого просмотра цепочки. Поэтому пустой экран до завершения сканирования не обязательно означает потерю денег. [1]
Silent Payments уменьшают связи из-за повторного адреса, но не скрывают суммы, время подтверждения и историю расходуемых входов. Алиса знает свой платёж Бобу, а заказ может содержать персональные данные. Если Боб позднее объединит несколько UTXO, он может вновь раскрыть их связь. Silent Payments — не CoinJoin, а сочетание не становится автоматически безопасным: BIP352 отмечает отсутствие формального доказательства для независимых сотрудничающих отправителей. [1] [3]
В BIP352 авторами названы josibake, Ruben Somsen и Sebastian Falbesoner; номер был присвоен в 2023 году. При проверке 17 октября 2026 года статус — Complete. Это не означает поддержку во всех кошельках: отправку, получение, сканирование и восстановление проверяют отдельно. Протокол использует существующий Taproot и не требует нового Soft Fork, то есть принятого сетью ужесточения правил действительности транзакций и блоков. Старые приложения без поддержки не смогут правильно обработать адрес sp1. [1] [2]
Для полной картины прочитайте эту статью вместе с Приватность в Bitcoin, Псевдонимность, Taproot, CoinJoin, Replace-by-Fee (RBF), UTXO. На эту статью также ссылаются Приватность в Bitcoin, Transaction Labeling.