Настроить уведомления о движении средств и проверить официальность источника — значит решить два вопроса подряд: сколько данных служба просит и кому эти данные уходят. Оповещение требует не ключей, а карты ваших адресов. Карта не отзывается. Отданный расширенный публичный ключ нельзя забрать обратно, поэтому порядок такой: сначала выбрать модель раскрытия, затем проверить адресата, и лишь потом включать оповещение.
Что именно просит служба оповещений
Запрос выглядит безобидно: вставьте строку, начинающуюся на xpub, и получайте сообщения о движении средств. Строка не секрет. Подписать по ней нельзя. Но она раскрывает наблюдателю всю ветку целиком — прошлые адреса, текущий остаток, историю расходов и каждый адрес, который кошелёк выдаст вам в будущем.
Отсюда вытекает несимметричность, которую легко упустить. Приватный ключ при утечке означает потерю денег, и это понятно каждому. Публичный ключ при утечке означает потерю приватности навсегда, и это понимают реже. Разница в том, что приватный ключ меняют сменой ветки за одну транзакцию, а раскрытую историю не отменяет ничто.
Техническая сторона здесь менялась дважды. Ранняя схема фильтров по BIP-37 перекладывала отбор на сервер, и клиент сообщал узлу фильтр, по которому его адреса опознавались. Поздняя схема по BIP-157 и BIP-158 переносит отбор на устройство владельца: узел отдаёт детерминированные фильтры по блокам, сжатые кодированием Голомба — Райса, а клиент сопоставляет их у себя и не раскрывает серверу ни одного адреса. Модель запроса важнее названия службы. Как устроен сам расширенный ключ и чем он отличается от отпечатка, разобрано в материале про расширенный публичный ключ в мультиподписи.
Сравнение моделей: сколько данных уходит наружу
| Модель наблюдения | Что узнаёт сторона | Охват оповещения | Можно ли отозвать |
|---|---|---|---|
| Передача расширенного публичного ключа службе — самая удобная модель, при которой служба сама выводит адреса и следит за всей веткой без участия владельца. | Всю ветку, включая будущие адреса. | Полный, новые адреса добавляются сами. | Нет, ключ не отзывается. |
| Передача списка конкретных адресов — владелец сам перечисляет то, за чем следить, и ветка целиком остаётся за пределами знания службы. | Только перечисленные адреса. | Неполный, новые адреса вручную. | Частично, список правится. |
| Клиентские фильтры по блокам — узел отдаёт детерминированные фильтры на каждый блок, а сопоставление с адресами идёт на устройстве владельца. | Факт запроса блоков, не адреса. | Полный, при своём предельном охвате. | Нечего отзывать. |
| Собственный узел с наблюдающим кошельком — модель без внешней стороны вообще, требующая места на диске, времени на синхронизацию и постоянного питания. | Ничего, сторона отсутствует. | Полный и настраиваемый. | Вопрос не возникает. |
| Оповещение внутри приложения кастодиального сервиса — сторона уже знает о вас всё, поскольку сама держит ключи и ведёт счёт по вашим операциям. | Всё, включая личные данные. | Полный в границах сервиса. | Только закрытием счёта. |
Как проверить официальность источника перед настройкой оповещений
Проверка адресата делается до передачи данных, потому что обратного хода у этого шага нет и ни одна последующая проверка уже ничего не исправит. Порядок короткий. Четыре внешних признака и один внутренний.
- Откройте адрес службы набором руками либо из закладки и сверьте домен целиком, включая домен верхнего уровня: подделки отличаются одним символом или сменой зоны при том же названии.
- Сверьте имя издателя в магазине приложений. Оно должно совпадать с названием службы, а не напоминать его.
- Найдите в документации службы ответ на вопрос, какие данные она хранит и как долго; отсутствие такого раздела само по себе признак.
- Проверьте, принимает ли служба список адресов вместо расширенного ключа. Такая возможность говорит о зрелости продукта.
- Убедитесь, что служба не запрашивает seed-фразу, приватный ключ или подпись транзакции ни на каком шаге настройки, включая шаг проверки владения.
- Отдайте ключ отдельного счёта, а не основного: создайте новый счёт в кошельке, переведите на него наблюдаемую часть средств и раскрывайте ветку только этого счёта.

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