Наблюдать и распоряжаться — разные полномочия
Bitcoin не хранит «аккаунт с балансом». Кошелёк находит принадлежащие его scripts неизрасходованные выходы — UTXO — и складывает их в понятное пользователю число. Watch-only получает достаточно публичных данных, чтобы повторить этот поиск: адреса или descriptor, историю блокчейна и состояние UTXO. Приватных ключей для действительной подписи у него нет.
| Действие | Может сам | Граница результата |
|---|---|---|
| Показать адреса и поступления | Да | Только для импортированного набора scripts и просканированной истории |
| Посчитать доступные UTXO | Да | Результат зависит от актуальности узла, индекса и диапазона derivation |
| Создать новый receive address | Да, если descriptor допускает derivation | Адрес нужно сверить с доверенным signer |
| Подготовить PSBT | Да | Это предложение транзакции, а не разрешение потратить средства |
| Подписать и отправить Bitcoin | Нет без signer | Подпись создаёт устройство или процесс с приватными ключами |
- Действие
- Показать адреса и поступления
- Может сам
- Да
- Граница результата
- Только для импортированного набора 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Сформируйте реквизит вне онлайн-компьютера
Получатель, сумма и назначение должны существовать в независимом канале до создания PSBT.
- 2Подготовьте PSBT в watch-only
Зафиксируйте выбранные inputs, recipient outputs, change и абсолютную fee вместе с fee rate.
- 3Проверьте всё на signer
Экран доверенного устройства должен показать адреса и суммы. Если он не способен отобразить существенные поля, подпись остаётся слепой.
- 4Верните подписанный контейнер
Онлайн-устройство может финализировать и broadcast, но после этого нужно сохранить итоговый txid.
- 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 безопасен.
Источники
Мы используем прямые ссылки и фиксируем дату проверки. Полный текст чужих материалов не перепечатывается.
- Bitcoin Core 31.0 — createwallet Bitcoin Core · Проверено 18 августа 2026 г. в 22:30 GMT+5
- Bitcoin Core 31.0 — importdescriptors Bitcoin Core · Проверено 18 августа 2026 г. в 22:30 GMT+5
- Bitcoin Core — output descriptors Bitcoin Core · Проверено 18 августа 2026 г. в 22:30 GMT+5
- BIP 32 — Hierarchical Deterministic Wallets Bitcoin BIPs · Проверено 18 августа 2026 г. в 22:30 GMT+5
- BIP 174 — Partially Signed Bitcoin Transaction Bitcoin BIPs · Проверено 18 августа 2026 г. в 22:30 GMT+5
