Настроить дополнительную парольную фразу и настроить уведомления — значит понимать, о чём оповещение сообщит, а о чём промолчит. Уведомления строятся на событиях блокчейна: поступление, списание, подтверждение. Ввод строки событием не является. Ни верный, ни ошибочный ввод не порождает ничего, что можно отследить, поэтому чужой доступ к кошельку за фразой становится заметен лишь в момент исходящей транзакции.
Что уведомление сообщит, а что нет
Граница проходит по месту действия. Внутри или снаружи. Всё, что меняет записи в сети, наблюдаемо и доступно для подписки через любой узел, который эти записи читает. Всё, что происходит в памяти устройства, не наблюдаемо никем, включая вас.
Для парольной фразы это означает конкретную слепую область. Открытие кошелька строкой следа в сети не оставляет. Перебор строк на украденном устройстве не оставляет следа в сети. Даже успешный вход постороннего, который получил и слова, и строку, остаётся незамеченным до той секунды, когда он подпишет и отправит транзакцию, — и уведомление придёт одновременно с утратой средств, а не раньше неё.
Из обращений читателей видно встречное ожидание: человек настраивает оповещения и считает, что получит предупреждение при попытке доступа. Такого сигнала нет. И не будет. Что именно считать тревожным признаком, помогает разобрать материал про распознавание пылевой атаки на кошелёк.
События и слепые области: что видно подписчику
Таблица отделяет действия, о которых придёт уведомление, от действий, которые проходят молча.
| Действие | Где оно происходит | Придёт ли уведомление | Чем контролируется вместо оповещения |
|---|---|---|---|
| Поступление средств на адрес уровня | В сети, запись в блоке. | Да, при подписке на выгрузку этого уровня. | Сверка суммы и адреса с ожидаемым платежом. |
| Списание средств с адреса уровня | В сети, запись в блоке. | Да, однако уведомление приходит одновременно с самой операцией и потому служит сообщением о факте, а не предупреждением о попытке. | Порог подписей и хранение резервов отдельно от операционных сумм. |
| Ввод парольной строки на устройстве | В памяти устройства, вне сети. | Нет, события не возникает вовсе. | Физический контроль устройства и PIN-код с ограничением попыток. |
| Перебор строк посторонним | В памяти устройства или сторонней программы. | Нет, в сети это не отражается ничем. | Хранение записи слов отдельно от записи строки. |
| Выгрузка публичного ключа и подключение наблюдателя | В приложении, вне сети. | Нет: подключение наблюдателя происходит вне сети и владельцу ветки ничем себя не выдаёт, ни в момент подключения, ни позже. | Опись выдач выгрузок с датами и получателями. |
Настройка фразы и подписки на уровень шаг за шагом
Каждый уровень хранения подписывается отдельно. Устройство перечня установленных строк не ведёт, поэтому служба оповещений не догадается о существовании других кошельков и не предложит подписаться на них по собственной инициативе.
- Настройте парольную фразу, выпишите отпечаток корневого ключа и первый адрес получения, затем пополните кошелёк пробной суммой.
- Выгрузите расширенный публичный ключ этого уровня и сверьте отпечаток в выгрузке с записью, чтобы не подписаться на чужую ветку.
- Подключите выгрузку в наблюдающем приложении и включите оповещения о поступлениях и списаниях по этой ветке.
- Повторите подписку для каждого уровня отдельно и отметьте в описи, какие уровни подписаны и какие остались без наблюдения.
- Проверьте работу оповещения по тому самому пробному пополнению: уведомление должно указывать адрес вашей ветки, а не иной.
- Зафиксируйте в описи, какое приложение и какой узел используются для наблюдения, и укажите дату подключения.

Опись подписок: какие уровни наблюдаются
Подписка существует не на кошелёк. Она существует на ветку. Уровней может быть несколько, подписок меньше, и разница между этими числами — ваша слепая область, о которой стоит знать заранее, а не выяснять её в день неприятности.
В описи для каждого уровня держат отметку: подписан или нет, какое приложение используется, с какой даты. Строка в описи не фигурирует. Там только публичные данные: отпечаток, путь вывода, состояние подписки. Как выстроить такую систему записей на длинном горизонте, показывает материал про организацию хранения криптовалюты, если держите активы годами.
Типовые ошибки с уведомлениями
- Ожидание предупреждения о попытке доступа: такого события не существует ни в сети, ни в интерфейсе устройства.
- Подписка на один уровень и уверенность, что она охватывает все кошельки за всеми строками: остальные ветки при этом не наблюдаются вовсе и молчат независимо от происходящего.
- Подписка на ветку без сверки отпечатка, из-за чего оповещения приходят по чужой или по прежней, выведенной из оборота ветке.
- Выгрузка хранилища, отданная сервису оповещений вместо выгрузки операционного уровня, и отзыв этой выдачи впоследствии невозможен.
- Расчёт на уведомление как на защиту от списания: оповещение сообщает о состоявшемся факте и не способно остановить транзакцию, которая уже попала в сеть. Предотвращает списание порог подписей.
- Опись подписок, которая не ведётся: через год неизвестно, какие уровни наблюдаются.
Что делать, если пришло уведомление о неизвестной операции
Сначала отделите поступление от списания. Истории разные. Срочность разная.
Неизвестное поступление чаще означает отслеживание, а не взлом: мелкая сумма на давно не используемый адрес служит способом пометить ветку, и тратить её вместе с другими средствами не стоит. Неизвестное списание означает, что оба секрета оказались у постороннего, и тогда счёт идёт на минуты: остаток переводят на кошелёк с новым корнем, фиксируя идентификаторы транзакций и время. Разбор начинают после перевода, а не до него. Как переносят средства в таких случаях, показано в материале про расширенный публичный ключ в мультиподписи, где разобрано чтение выгрузок и опознание ветки.
Чек-лист уведомлений для кошелька за фразой
- Отпечаток корня и первый адрес каждого уровня выписаны до настройки подписки.
- Подписка оформлена на выгрузку конкретного уровня, отпечаток в выгрузке сверен.
- Каждый уровень подписан отдельно, неподписанные уровни отмечены в описи.
- Оповещение проверено по пробному пополнению, адрес в уведомлении совпал с вашей веткой.
- Выгрузка хранилища сервисам оповещений не передавалась.
- В описи указано приложение и дата подключения по каждой подписке.
- Записано, какие действия уведомлением не покрываются: ввод строки, перебор строк и подключение наблюдателя событиями в сети не становятся.
Частые вопросы
Придёт ли уведомление, если кто-то введёт мою парольную фразу?
Нет. Ввод строки происходит внутри устройства и в сеть не попадает, поэтому события для подписки не возникает. Увидеть чужой доступ можно лишь по исходящей транзакции, то есть уже после списания. Защита здесь строится физическим контролем устройства, PIN-кодом с ограничением попыток и раздельным хранением записи слов и записи строки.
Нужно ли заводить отдельную подписку на каждый уровень?
Да, иначе уровень остаётся без наблюдения. Устройство не хранит перечня установленных строк, и ни одно приложение не обнаружит кошелёк за строкой само по себе, пока ему не передадут выгрузку публичного ключа именно этой ветки. Подписка идёт от выгрузки. Сколько выгрузок подключено, столько уровней и наблюдается.
Можно ли по уведомлению понять, с какого уровня ушли средства?
Да, если подписки разведены по уровням и в описи указано, какой отпечаток соответствует какой ветке. Тогда адрес в уведомлении однозначно привязывается к уровню по записанному отпечатку, и разбор занимает минуты вместо перебора всех веток подряд. При единой подписке на всё такой вывод сделать нельзя, и разбор занимает часы вместо минут.
Раскрывает ли подписка саму парольную фразу?
Нет, в выгрузке строки нет: она участвует в вычислении корня и не включается ни в публичный ключ, ни в дескриптор. Сервис оповещений получает обзор адресов и историю. Этого достаточно для наблюдения за поступлениями и недостаточно для подписи транзакции, поэтому утечка подписки означает утрату приватности, а не утрату средств.
Стоит ли подписывать резервный уровень, которым не пользуются?
Из редакционной практики стоит: на резервных ветках операций не бывает, поэтому любое событие там требует внимания и разбора. Поступлений там не ждут. Списание означает инцидент, и уведомление по такой ветке становится сигналом, а не фоновым шумом, как на операционном уровне.
Материалы по теме:
- Что такое самостоятельное хранение и какую ответственность оно даёт — опорный разбор раздела: кто следит за собственными ключами.
- Как устроен расширенный публичный ключ в мультиподписи — что передаётся службе наблюдения вместе с выгрузкой.
- Как распознать пылевую атаку на кошелёк и что делать с полученной мелочью — смежный разбор неизвестных поступлений.
- Как организовать хранение криптовалюты, если держите активы годами — описи и наблюдение на длинном горизонте.
Границы наблюдаемости заданы техникой, и её стоит читать по первоисточникам. Раздел поддержки SatoshiLabs о кошельках за парольной фразой показывает, что ошибочный ввод строки открывает другой кошелёк без каких-либо сообщений об ошибке, а текст стандарта BIP-32 в репозитории bitcoin/bips описывает состав расширенного ключа, по которому строится наблюдение за веткой.
Вердикт
Уведомления по кошельку за парольной фразой закрывают половину картины: они видят деньги и не видят доступ. Это стоит принять как данность и достроить вторую половину другими средствами: физическим контролем устройства, PIN-кодом с ограничением попыток, раздельным хранением записей и описью подписок по каждому уровню. Из редакционной практики: опасное заблуждение здесь одно — считать молчание оповещений доказательством того, что к кошельку никто не подходил. Разборы процедур и свежие случаи — в Telegram-канале Cryptium.
Обсуждение
Добавить комментарий