Наблюдать и распоряжаться — разные полномочия

Bitcoin не хранит «аккаунт с балансом». Кошелёк находит принадлежащие его scripts неизрасходованные выходы — UTXO — и складывает их в понятное пользователю число. Watch-only получает достаточно публичных данных, чтобы повторить этот поиск: адреса или descriptor, историю блокчейна и состояние UTXO. Приватных ключей для действительной подписи у него нет.

Что может watch-only-кошелёк
ДействиеМожет самГраница результата
Показать адреса и поступленияДаТолько для импортированного набора scripts и просканированной истории
Посчитать доступные UTXOДаРезультат зависит от актуальности узла, индекса и диапазона derivation
Создать новый receive addressДа, если descriptor допускает derivationАдрес нужно сверить с доверенным signer
Подготовить PSBTДаЭто предложение транзакции, а не разрешение потратить средства
Подписать и отправить BitcoinНет без signerПодпись создаёт устройство или процесс с приватными ключами
Что может watch-only-кошелёк
Действие
Показать адреса и поступления
Может сам
Да
Граница результата
Только для импортированного набора scripts и просканированной истории
Действие
Посчитать доступные UTXO
Может сам
Да
Граница результата
Результат зависит от актуальности узла, индекса и диапазона derivation
Действие
Создать новый receive address
Может сам
Да, если descriptor допускает derivation
Граница результата
Адрес нужно сверить с доверенным signer
Действие
Подготовить PSBT
Может сам
Да
Граница результата
Это предложение транзакции, а не разрешение потратить средства
Действие
Подписать и отправить Bitcoin
Может сам
Нет без signer
Граница результата
Подпись создаёт устройство или процесс с приватными ключами

Xpub раскрывает ветку адресов, а не право подписи

Extended public key по BIP 32 содержит публичный ключ и chain code. Из него можно выводить non-hardened дочерние публичные ключи в пределах переданной ветки. Поэтому xpub аккаунта способен раскрыть прошлые и будущие receive/change-адреса этой ветки наблюдателю. Он не заменяет seed-фразу и сам по себе не создаёт подпись, но считать его безобидным одиночным адресом нельзя.

Не все публичные данные имеют одинаковый радиус раскрытия
Что переданоЧто обычно видноОсновной риск
Один адресОперации и UTXO этого scriptПубличная история одного реквизита
Xpub веткиНабор выводимых дочерних адресовСвязывание поступлений и будущая слежка
Public watch-only descriptor без WIF/xprvТип script, key origin и правила derivationБолее точная карта кошелька при утечке
Descriptor с WIF или xprvПриватный ключ либо расширенный приватный ключ внутри строкиНепосредственное право подписи в описанной области
Seed / xprvПриватные ключи соответствующей областиНепосредственное право подписывать и тратить
Не все публичные данные имеют одинаковый радиус раскрытия
Что передано
Один адрес
Что обычно видно
Операции и UTXO этого script
Основной риск
Публичная история одного реквизита
Что передано
Xpub ветки
Что обычно видно
Набор выводимых дочерних адресов
Основной риск
Связывание поступлений и будущая слежка
Что передано
Public watch-only descriptor без WIF/xprv
Что обычно видно
Тип script, key origin и правила derivation
Основной риск
Более точная карта кошелька при утечке
Что передано
Descriptor с WIF или xprv
Что обычно видно
Приватный ключ либо расширенный приватный ключ внутри строки
Основной риск
Непосредственное право подписи в описанной области
Что передано
Seed / xprv
Что обычно видно
Приватные ключи соответствующей области
Основной риск
Непосредственное право подписывать и тратить

Descriptor точнее описывает кошелёк, чем строка с префиксом

Один xpub не говорит приложению, какой script строить: Legacy, SegWit, Taproot или другой шаблон. Output descriptor объединяет функцию script, ключ, происхождение, derivation path, wildcard и checksum. Descriptor — формат, а не синоним публичных данных: он способен содержать WIF или xprv. Для watch-only экспортируйте и проверяйте именно public descriptor без приватного материала. Это снижает риск импортировать правильный ключ с неправильным типом адреса и увидеть нулевой баланс. Префиксы вроде xpub, ypub или zpub нельзя использовать как единственный источник истины: поддержка vendor-encoding различается.

Перед импортом зафиксируйте

  • сеть Bitcoin mainnet или отдельный test environment;
  • master fingerprint и путь до экспортированной ветки;
  • script template и внешний/внутренний branch для receive и change;
  • диапазон индексов, который приложение должно просканировать;
  • дату или высоту, с которой начинается поиск истории;
  • checksum descriptor и способ сверки первого адреса на signer.

Если баланс не появился, не импортируйте seed в онлайн-приложение. Сначала сравните descriptor, fingerprint, path, branch и первый адрес с теми данными, которые показывает исходный аппаратный кошелёк.

PSBT переносит заготовку к signer, но не делает её честной

PSBT — контейнер для неподписанной Bitcoin-транзакции и метаданных, которые помогают участникам дополнить и подписать inputs. Онлайн watch-only может выбрать UTXO и подготовить outputs. Отдельный signer проверяет данные и добавляет подпись. После финализации получается обычная network transaction, которую можно передать узлу.

Безопасная граница между двумя устройствами

  1. 1
    Сформируйте реквизит вне онлайн-компьютера

    Получатель, сумма и назначение должны существовать в независимом канале до создания PSBT.

  2. 2
    Подготовьте PSBT в watch-only

    Зафиксируйте выбранные inputs, recipient outputs, change и абсолютную fee вместе с fee rate.

  3. 3
    Проверьте всё на signer

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

  4. 4
    Верните подписанный контейнер

    Онлайн-устройство может финализировать и broadcast, но после этого нужно сохранить итоговый txid.

  5. 5
    Сверьте запись в сети

    Проверьте именно итоговый txid, outputs и подтверждения, а не статус файла или сообщение приложения.

Техническое подтверждение начинается после broadcast: подписанный контейнер и зелёная галочка signer ещё не означают включение в блок. Для отчёта или расчёта сохраните txid и отдельно проверьте, что сеть видит ожидаемые outputs.

Если xpub или descriptor утёк

Действие зависит от того, какой секрет раскрыт
СобытиеЧто считать скомпрометированнымРазумное следующее действие
Опубликован один адресПриватность этого адреса и связанных on-chain эвристикНе переиспользовать реквизит и пересмотреть disclosure
Утёк xpub или public descriptor без WIF/xprvПриватность всей описанной веткиУдалить доступ у наблюдателя; для будущей unlinkability использовать независимый новый кошелёк, понимая, что on-chain перенос может связать старую и новую историю
Утёк descriptor неизвестного составаСначала неизвестно: privacy-only или signing materialНемедленно проверить строку на WIF/xprv офлайн; при приватном материале действовать как при утечке ключа
Онлайн watch-only заражёнИстория, адресная книга и создаваемые PSBTНе подписывать старые заготовки; переустановить монитор из проверенного источника
Раскрыт seed/xprv либо private key non-hardened потомка вместе с parent xpubПраво распоряжения соответствующими средствами; в последнем случае восстанавливается parent xprvСоздать независимый новый кошелёк на чистом signer и перевести средства после проверки
Действие зависит от того, какой секрет раскрыт
Событие
Опубликован один адрес
Что считать скомпрометированным
Приватность этого адреса и связанных on-chain эвристик
Разумное следующее действие
Не переиспользовать реквизит и пересмотреть disclosure
Событие
Утёк xpub или public descriptor без WIF/xprv
Что считать скомпрометированным
Приватность всей описанной ветки
Разумное следующее действие
Удалить доступ у наблюдателя; для будущей unlinkability использовать независимый новый кошелёк, понимая, что on-chain перенос может связать старую и новую историю
Событие
Утёк descriptor неизвестного состава
Что считать скомпрометированным
Сначала неизвестно: privacy-only или signing material
Разумное следующее действие
Немедленно проверить строку на WIF/xprv офлайн; при приватном материале действовать как при утечке ключа
Событие
Онлайн watch-only заражён
Что считать скомпрометированным
История, адресная книга и создаваемые PSBT
Разумное следующее действие
Не подписывать старые заготовки; переустановить монитор из проверенного источника
Событие
Раскрыт seed/xprv либо private key non-hardened потомка вместе с parent xpub
Что считать скомпрометированным
Право распоряжения соответствующими средствами; в последнем случае восстанавливается parent xprv
Разумное следующее действие
Создать независимый новый кошелёк на чистом signer и перевести средства после проверки

Новая watch-only-конфигурация считается проверенной, когда она находит ожидаемую историю, выводит тот же первый receive address, создаёт PSBT с корректным change и не способна подписать его без отдельного устройства. Это проверяемая архитектурная граница, а не обещание, что любой экран с надписью watch-only безопасен.

Источники

Мы используем прямые ссылки и фиксируем дату проверки. Полный текст чужих материалов не перепечатывается.

  1. Bitcoin Core 31.0 — createwallet Bitcoin Core · Проверено 18 августа 2026 г. в 22:30 GMT+5
  2. Bitcoin Core 31.0 — importdescriptors Bitcoin Core · Проверено 18 августа 2026 г. в 22:30 GMT+5
  3. Bitcoin Core — output descriptors Bitcoin Core · Проверено 18 августа 2026 г. в 22:30 GMT+5
  4. BIP 32 — Hierarchical Deterministic Wallets Bitcoin BIPs · Проверено 18 августа 2026 г. в 22:30 GMT+5
  5. BIP 174 — Partially Signed Bitcoin Transaction Bitcoin BIPs · Проверено 18 августа 2026 г. в 22:30 GMT+5
Материал носит информационный характер и не является индивидуальной рекомендацией. Криптоактивы связаны с риском волатильности, технических сбоев, хищения и полной потери средств.