01 · Объяснение

Анатомия блокировки USDT: как Tether замораживает токены

С 2017 года Tether заблокировал около 8 000 блокчейн-адресов на $4+ млрд. Разбираем техническую механику: как из обычного перевода рождается событие AddedBlackList, что такое preban → ban, как проверить статус адреса и где находится «окно возможностей».

explainerCryptoAlert Research

Tether имеет техническую возможность заблокировать USDT, находящиеся на любом блокчейн-адресе. После такой блокировки владелец адреса больше не может перевести USDT на другой адрес, даже если они по-прежнему отображаются на балансе.

С 2017 года Tether инициировал блокировки примерно 8 000 блокчейн-адресов с совокупным объёмом активов более $4 млрд.

На фоне общего масштаба обращения USDT эти цифры могут показаться незначительными. Однако для конкретного участника рынка блокировка адреса становится критическим событием, особенно если он уверен, что не совершал ничего противозаконного. Такие случаи происходят не настолько редко, как может показаться. Если часть адресов впоследствии разблокируется, значит, отдельные блокировки действительно были выполнены на основании неправильных выводов инициатора.

Блокировка не происходит произвольно — для неё должны быть основания, а сама процедура имеет юридическую и операционную сторону. Эти аспекты мы разбираем в отдельной статье про то, кто принимает решение. Цель этого материала — объяснить именно техническую механику блокировки USDT.

01База

Как работает обычный перевод USDT

Чтобы понять процесс блокировки, сначала нужно разобраться, как технически происходит обычный перевод USDT.

Рассмотрим пример транзакции USDT в сети TRON. Пользователь инициирует перевод USDT со своего адреса на адрес получателя. В этот момент транзакция обращается к смарт-контракту USDT в сети TRON:

TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t

Именно смарт-контракт отвечает за учёт балансов и обработку переводов токена. Когда выполняется перевод, внутри смарт-контракта вызывается логика передачи токенов от одного адреса к другому. На уровне событий смарт-контракта это фиксируется как событие Transfer — то есть передача актива от отправителя к получателю.

Упрощённо процесс выглядит так:

  1. Пользователь инициирует перевод USDT;
  2. Транзакция обращается к смарт-контракту USDT;
  3. Смарт-контракт проверяет условия выполнения перевода;
  4. Если ограничений нет, баланс отправителя уменьшается, баланс получателя увеличивается;
  5. В блокчейне фиксируется событие Transfer.

Принцип работы USDT в Ethereum устроен схожим образом: перевод также обрабатывается через смарт-контракт токена, а результат успешной передачи фиксируется событием Transfer. Основные различия между TRON и Ethereum связаны с технической средой: стандартом токена, форматом адресов, комиссиями, скоростью обработки транзакций.

Контракты USDT на основных сетях
02Контроль

Механизмы контроля в смарт-контракте USDT

Помимо обычных переводов, смарт-контракт USDT содержит административные функции, позволяющие эмитенту управлять обращением токена в отношении отдельных адресов. В частности, эмитент может добавить адрес в чёрный список, удалить его из чёрного списка, а также сжечь USDT, находящиеся на заблокированном адресе.

Выполнение этих действий отражается через события смарт-контракта. Для анализа блокировок ключевыми являются три события:

  • AddedBlackList — добавление адреса в чёрный список;
  • RemovedBlackList — удаление адреса из чёрного списка;
  • DestroyedBlackFunds — сжигание средств на заблокированном адресе.

Упрощённо логика выглядит так:

  1. Tether добавляет адрес в BlackList;
  2. Смарт-контракт начинает распознавать этот адрес как заблокированный;
  3. При попытке исходящего перевода контракт проверяет статус адреса;
  4. Если адрес находится в BlackList, перевод не выполняется;
  5. Если адрес отсутствует в BlackList, перевод может быть выполнен.
03Двухэтапная блокировка

От preban к ban: как блокировка появляется в блокчейне

Блокировка USDT в сети TRON фиксируется не одним, а двумя связанными on-chain этапами: сначала создаётся операция в Tether MultisigWallet, затем эта операция исполняется и приводит к добавлению адреса в BlackList.

Такую последовательность можно условно разделить на два события:

  1. Preban — создание операции в Tether MultisigWallet.
  2. Ban — фактическое исполнение операции, после которого адрес попадает в BlackList.

Preban: создание операции в Tether MultisigWallet

На этапе preban вызывается метод мультисиг-контракта. В этой транзакции ещё не происходит фактической блокировки адреса — она создаёт операцию, которую мультисиг должен исполнить после необходимого подтверждения.

Ключевые параметры preban-транзакции:

Параметры preban-транзакции в MultisigWallet

В event logs preban-транзакции фиксируются события мультисиг-контракта. TransactionId — внутренний идентификатор операции в Tether MultisigWallet, которая будет исполнена позже.

Где находится адрес будущей блокировки

Адрес будущей блокировки не отображается напрямую в event logs preban-транзакции. Он находится внутри параметра Data, который нужно декодировать по правилам Solidity ABI.

Если операция готовит вызов blacklist-функции, структура data выглядит так:

0xecb93c0 + 32-байтный аргумент address
(<function selector> + <ABI-encoded arguments>)

Первые 4 байта — это selector функции. Остальная часть — ABI-закодированный аргумент. Для получения адреса берутся последние 20 байт аргумента, после чего декодируются.

В TRON адреса могут отображаться в двух формах:

  • Hex-формат — начинается с префикса 41;
  • Base58Check-формат — человекочитаемый адрес, начинающийся с T.

Ban: фактическое добавление адреса в BlackList

Фактическая блокировка происходит позднее, когда созданная multisig-операция исполняется. В ban-транзакции в логах USDT-контракта появляется событие:

AddedBlackList(address target)

Именно это событие является on-chain подтверждением того, что адрес добавлен в BlackList.

04Окно реакции

Окно возможностей: время от preban к ban

Между preban и ban существует временной промежуток. До появления события AddedBlackList адрес ещё не находится в BlackList и технически сохраняет возможность распоряжаться USDT. Именно этот промежуток мы называем окном возможностей.

Дни
Окно раньше
2017–2020-е: между preban и ban проходило до нескольких суток
Часы
Окно сейчас
Типичное среднее: от 1 часа до 24 часов
Минуты
В скоординированных кейсах
При пакетных блокировках — десятки секунд до нескольких минут

Раньше это окно могло составлять дни. Сейчас оно заметно сокращается — в отдельных случаях между preban и ban проходят часы, а иногда — минуты. Это снижает предсказуемость ситуации для владельца адреса и делает оперативную реакцию критически важной.

До события AddedBlackList адрес ещё может выполнять исходящие переводы USDT. Поэтому с точки зрения добросовестного пользователя, который видит риск попадания адреса под блокировку, рациональная последовательность действий выглядит так: сначала вывести средства из-под потенциального ограничения, затем разбираться с причинами блокировки.

05После блокировки

Что происходит после фактического ban

После блокировки адрес больше не может распоряжаться USDT. Исходящие переводы отклоняются логикой смарт-контракта. При этом средства будут продолжать отображаться на балансе, а входящие переводы на такой адрес технически могут поступать.

Дальнейшее развитие зависит от основания блокировки:

  • Адрес может остаться в BlackList бессрочно;
  • Адрес может быть разблокирован через RemovedBlackList;
  • Средства могут быть сожжены через DestroyedBlackFunds с последующим перевыпуском на новый адрес.

После фактической блокировки работа должна переходить в юридический и аналитический контур: установление источника риска, подготовка блокчейн-аналитики, подтверждение происхождения средств и коммуникация с Tether и государственными структурами, которые инициировали данную блокировку — при участии профильных юристов.

06Признаки

Как понять, что твой адрес заблокировал Tether

Пользователь часто замечает блокировку не сразу. На первый взгляд всё выглядит как обычно: USDT отображаются на балансе, сеть работает, адрес корректный, входящие переводы успешно зачисляются. Но при попытке отправить USDT транзакция не проходит.

При этом другие операции с адреса могут выполняться нормально. Например, пользователь может успешно отправлять TRX или другие токены, а проблема будет возникать именно с исходящими переводами USDT. Это важный признак: блокировка Tether применяется на уровне смарт-контракта USDT, а не ко всему блокчейн-адресу в сети TRON.

Исходящие переводы USDT не выполняются, при этом другие операции (отправка нативного токена, получение средств) проходят нормально.

Главный признак блокировки

Если адрес находится в BlackList Tether, смарт-контракт USDT отклоняет попытку исходящего перевода. В кошельке это может выглядеть как ошибка отправки, а в блокчейн-обозревателе транзакция может отображаться со статусом Failed.

При этом важно отличать блокировку Tether от обычных технических проблем:

  • Не хватает нативного токена (TRX, ETH) для оплаты комиссии;
  • Кошелёк не отправляет транзакцию (проблема интерфейса, RPC или кошелька);
  • Сетевая перегрузка или временные сбои инфраструктуры.
07Проверка

Как проверить наличие блокировки через смарт-контракт USDT

Шаг 1. Откройте в Tronscan смарт-контракт USDT в сети TRON: TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t

Шаг 2. Перейдите во вкладку Contract.

Шаг 3. Откройте раздел Read Contract.

Шаг 4. Найдите метод getBlackListStatus. В Tronscan он может отображаться как «8. getBlackListStatus (59bf1abe)».

Шаг 5. Введите адрес, который хотите проверить, и выполните запрос.

Результат вызова getBlackListStatus

Ручная проверка через Tronscan подходит для разовой проверки адреса. Для оперативной реакции лучше использовать автоматический мониторинг: он может отслеживать попадание адреса в BlackList по событию AddedBlackList, а при наличии соответствующей функциональности — выявлять признаки предстоящей блокировки ещё до фактического события AddedBlackList.

08Где смотреть live

Как наблюдать blacklist USDT в реальном времени

Каждое событие — preban, ban, unban, destroy — фиксируется в блокчейне публично. Это означает, что любая сторона может построить мониторинг:

  • Прямой подход — поднять архивную ноду TRON и Ethereum, подписаться на event logs USDT-контрактов через WebSocket. Самый дешёвый по cost, но требует инфраструктуры.
  • Через сторонние сервисы — QuickNode Streams, Alchemy webhooks, Infura. Платно, но без своей инфраструктуры.
  • Через готовый продукт — мы делаем это в реальном времени с 2017 года: alert-feed по Telegram, REST API, MCP-сервер для AI-инструментов, HuggingFace dataset для исследователей.

Что почитать дальше