Криптоадрес сложно запомнить полностью. Он длинный, выглядит как набор случайных символов, а кошельки часто показывают только начало и конец. Из-за этого пользователь быстро привыкает проверять адрес “на глаз”: первые символы совпали, последние похожи — значит, всё в порядке.
Address poisoning как раз использует эту привычку.
Мошенник создаёт похожий адрес и старается сделать так, чтобы он появился в истории операций кошелька. Потом пользователь копирует адрес не из настоящего инвойса или проверенного источника, а из истории. Деньги уходят на чужой адрес, хотя внешне всё выглядело почти правильно.
Это не редкий edge case для параноиков. Такая атака опасна для пользователей, которые отправляют USDT, делают возвраты, оплачивают инвойсы, переводят средства между кошельками или работают с корпоративными криптооперациями. Для бизнеса это тоже проблема: поддержка видит её уже после фразы “я оплатил, но заказ не появился”.
Что такое address poisoning
Address poisoning — это фишинговая схема, в которой атакующий “отравляет” историю кошелька похожим адресом. Он отправляет небольшую транзакцию, fake token transfer или другое действие, чтобы адрес появился в activity feed, истории операций или блокчейн-обозревателе.
Цель не всегда в самой маленькой транзакции. Цель — чтобы позже пользователь скопировал этот адрес как знакомый.
Адрес может совпадать с настоящим по первым и последним символам. Если кошелёк показывает сокращённую версию, например только начало и конец, фальшивый адрес выглядит убедительно. Но на уровне блокчейна это совершенно другой адрес.
Важно отличать address poisoning от кражи seed phrase. Если украли seed phrase, злоумышленник может получить доступ к кошельку. При address poisoning пользователь сохраняет контроль над кошельком, но сам отправляет средства не туда. Про защиту доступа мы отдельно разбирали в статье про seed phrase и private key.
Как работает схема
Сначала мошенник находит адрес, с которым пользователь уже взаимодействовал. Это может быть личный кошелёк, адрес бизнеса, кошелёк партнёра, адрес для регулярных переводов или payout-адрес.
Затем создаётся похожий адрес. Сделать полностью такой же адрес нельзя, но можно подобрать вариант с похожим началом и концом. Для невнимательной проверки этого часто достаточно.
После этого атакующий отправляет транзакцию или fake transfer, чтобы адрес появился в истории. Пользователь видит знакомые символы, не открывает исходный инвойс, копирует адрес из недавних операций и отправляет средства.
С технической точки зрения блокчейн не “подменил” адрес. Кошелёк не обязательно был взломан. Пользователь просто выбрал неправильный destination, потому что мошенник заранее сделал его похожим и заметным.
Почему история кошелька не должна быть адресной книгой
История операций полезна для проверки активности, но это не список доверенных адресов. Она показывает, что с кошельком что-то происходило. Она не доказывает, что адрес принадлежит нужному человеку или бизнесу.
В истории могут быть:
- настоящие исходящие платежи;
- входящие переводы от неизвестных адресов;
- spam-токены;
- fake transfers;
- адреса, похожие на уже использованные;
- smart contract interactions, которые вообще не являются адресами для оплаты.
Если пользователь воспринимает историю как адресную книгу, он может скопировать poisoned address. Если финансовый сотрудник делает выплаты по старой истории операций, риск становится уже операционным. Если поддержка говорит клиенту “скопируйте адрес из прошлой транзакции”, она невольно подталкивает к плохому сценарию.
Более безопасное правило: адрес для оплаты берётся только из проверенного источника. Для бизнеса это инвойс, checkout, платёжная ссылка, QR-инвойс или внутренний payout-реестр.
Как заметить риск перед отправкой
Address poisoning специально выглядит буднично. Поэтому не всегда будет яркий сигнал вроде красного экрана или предупреждения кошелька. Но есть признаки, из-за которых стоит остановиться.
Подозрительно, если адрес появился в истории без понятного контекста. Вы не помните такой перевод. Токен выглядит странно. Сумма нулевая или микроскопическая. Адрес похож на знакомый только первыми и последними символами. Источник адреса — не инвойс, не договорённость с получателем, не сохранённый whitelist, а просто недавняя активность.
Перед отправкой нужно проверить:
- откуда взят адрес;
- совпадает ли полный адрес, а не только начало и конец;
- правильно ли выбрана сеть;
- ожидает ли получатель именно этот платеж;
- нет ли рядом spam-токенов или странных fake transfers;
- не копируете ли вы адрес из истории вместо исходного источника.
Проверка полного адреса раздражает. Но потеря средств раздражает сильнее.
Как пользователю отправлять крипту безопаснее
Главное правило: не копировать адрес для нового платежа из истории кошелька. История — это журнал событий, а не доверенный справочник.
Если платите бизнесу, адрес должен быть в checkout, инвойсе, QR-коде или платёжной ссылке. Если переводите партнёру или знакомому, адрес лучше подтвердить через канал, который не связан с подозрительным сообщением.
Нормальный сценарий выглядит так:
- Открыть исходный инвойс, checkout или проверенный источник адреса.
- Скопировать адрес оттуда, а не из wallet history.
- Проверить полный адрес или использовать заранее сохранённый whitelist.
- Убедиться, что сеть выбрана правильно.
- Для крупной суммы сначала отправить тестовый перевод, если получатель может его подтвердить.
- Сохранить TXID и данные инвойса на случай обращения в поддержку.
QR-коды и платёжные ссылки помогают снизить ручное копирование, но важен источник. QR-код из официального инвойса полезен. QR-код, присланный неизвестным аккаунтом в мессенджере, — нет.
Если бизнес принимает USDT или другую криптовалюту без полной интеграции, платёжные ссылки и QR-инвойсы помогают чётко показать сумму, сеть, адрес и контекст платежа.
Что делать бизнесу в checkout и поддержке
Address poisoning становится проблемой бизнеса, когда платёжный сценарий слишком ручной. Клиент копирует адрес, выбирает сеть, делает скриншот, пишет в поддержку, ждёт ручной проверки. Чем больше ручных шагов, тем выше шанс, что кто-то возьмёт адрес не из того места.
Хороший crypto checkout должен показывать один понятный платёжный контекст: сумма, сеть, адрес, QR-код, срок действия инвойса и статус. Если поддерживается несколько сетей, выбор сети должен быть явным, а не спрятанным в тексте.
Поддержке тоже нужны правила. Нельзя просить seed phrase или private key. Нельзя советовать “взять адрес из прошлой транзакции”. Нужно просить операционные данные: TXID, сеть, сумму, адрес отправителя, адрес получателя и время.
Правильный вопрос звучит не “дайте доступ к кошельку”, а “пришлите TXID, чтобы мы проверили, пришёл ли платёж на адрес инвойса”. Для этого есть отдельный разбор: как проверить криптовалютный платёж.
Если криптооплата встроена в продукт, лучше заранее продумать API для криптоплатежей. Тогда статус платежа можно связать с заказом, балансом, подпиской или доступом, а поддержке не придётся собирать всё вручную.
Address poisoning, неверная сеть и недоплата — не одно и то же
Если платеж не найден, это не всегда address poisoning. Есть несколько похожих снаружи, но разных внутри проблем.
Неверная сеть — это когда пользователь отправил актив через блокчейн, который бизнес не поддерживает для конкретного инвойса. Например, перепутал token standard или выбрал сеть по привычке. Поэтому выбор сети — один из главных элементов checkout. Отдельно это разобрано в материале про то, как выбрать сеть для приёма USDT.
Недоплата — это когда транзакция есть, но сумма меньше нужной. Так бывает из-за комиссий, ручного ввода суммы, перевода через биржу или неправильного расчёта.
Address poisoning — другой случай. Сумма может быть правильной. Сеть может быть правильной. Но адрес получателя — чужой. Поэтому кейс особенно неприятный: пользователь уверен, что оплатил, а бизнес не видит средств, потому что они ушли не на адрес инвойса.
Поддержке важно сначала определить тип проблемы. Неверная сеть, недоплата, поздний платёж и poisoned address требуют разных ответов. Что-то можно обработать операционно. Что-то требует возврата. Что-то невозможно обратить.
Что делать после подозрительного перевода
Если пользователь понял, что отправил средства на poisoned address, первое действие — остановиться. Не отправлять повторно, не копировать новый адрес из истории, не верить “специалистам по возврату”, которые сразу пишут в личку.
Нужно собрать данные:
- TXID;
- адрес отправителя;
- адрес, куда средства фактически ушли;
- адрес, куда они должны были уйти;
- сеть;
- сумму и время;
- скриншот или данные исходного инвойса, если он был.
После этого стоит обратиться к получателю или сервису, которому предназначался платёж. Если средства ушли на адрес злоумышленника, сам блокчейн обычно не позволит просто отменить перевод. Но данные важны для поддержки, внутреннего разбора, обращения к биржам или фиксации инцидента.
Для бизнеса ответ должен идти по заранее описанной политике. Если средства не пришли на адрес, созданный checkout, бизнес может не иметь доступа к этим деньгам. Поддержка должна объяснить это без обещаний “вернуть всё”. Если возможен возврат или исключение, оно должно проходить по понятной процедуре. Общую логику таких кейсов мы разбирали в статье про возврат криптовалютного платежа.
Как снизить количество таких случаев
Нельзя убрать все ошибки, но можно сделать так, чтобы address poisoning реже приводил к потере средств.
Для пользователя главный шаг — перестать считать историю кошелька источником доверенных адресов. Для бизнеса — убрать статические ручные инструкции там, где нужен управляемый payment flow.
Практический минимум:
- показывать адрес только в официальном инвойсе или checkout;
- всегда показывать сеть рядом с адресом;
- не просить клиентов использовать старые адреса из прошлых платежей;
- применять QR-коды или платёжные ссылки в простых сценариях;
- использовать API-статусы в интегрированных продуктах;
- обучить поддержку просить TXID, а не доступ к кошельку;
- отдельно описать сценарии wrong address, wrong network, late payment и underpayment;
- напоминать клиентам не копировать адреса из wallet history.
Если ошибок оплаты много, address poisoning может быть только частью общей проблемы. Неверная сеть, gas fee, истёкший инвойс и ручной ввод суммы тоже создают нагрузку на поддержку. Для более широкого разбора пригодится статья о том, как снизить failed crypto payments.
FAQ
Address poisoning — это взлом кошелька?
Нет. При address poisoning злоумышленник обычно не получает доступ к кошельку. Пользователь сам отправляет средства на похожий адрес, думая, что это правильный получатель.
Можно ли отменить перевод на poisoned address?
Обычно нет. Подтверждённые блокчейн-транзакции, как правило, финальны. Реальный сценарий — зафиксировать данные, обратиться в поддержку или к площадкам, если это уместно, и не повторить ошибку.
Hardware wallet защищает от address poisoning?
Он помогает защитить private key, но не гарантирует, что пользователь не подтвердит перевод на неправильный адрес. Адрес получателя всё равно нужно проверять.
Можно ли отправить поддержке скриншот истории кошелька?
Скриншот может помочь понять контекст, но он не заменяет TXID, сеть, сумму и адрес получателя. Seed phrase и private key отправлять нельзя.




