К основному содержанию
T TON Adoption
Аналитика DEEP DIVE · 2026

Re:Doubt: форензика подозрительных транзакций в TON

Как пользоваться Re:Doubt от Tonkeeper team для проверки контрактов и кошельков, читать security-score, разобрать подозрительный jetton airdrop и собрать чек-лист перед approve.

Автор
· research lead · security desk
Опубликовано
6 мин. чтения

В TON-экосистеме за последние два года накопилось достаточно скам-паттернов, чтобы вокруг них появилась отдельная инфраструктура. Один из ключевых элементов — Re:Doubt (re-doubt.com), платформа от Tonkeeper team, которая ведёт публичную базу скам-контрактов, drainer-кошельков и токсичных jetton’ов. Этот гайд — практический разбор: как пользоваться Re:Doubt для собственных проверок, что значит его security-score, как он встроен в Tonkeeper и где его недостаточно.

TL;DR

  • Re:Doubt — security-research платформа от Tonkeeper team: публичная база контрактов и кошельков с риск-оценкой.
  • Каждый адрес получает категорию: от «всё чисто» до «подтверждённый drainer / скам / impersonation».
  • Tonkeeper использует эту базу для авто-предупреждений в момент подписи транзакции.
  • Re:Doubt не покрывает fresh-контракты в первые часы — там нужны Tonviewer и ручной анализ.
  • Чек-лист в конце статьи — то, что я прохожу перед approve любой нестандартной операции.

Что такое Re:Doubt и кто его делает

Re:Doubt — это публичный security-инфо-сервис от Tonkeeper team, то есть от той же команды, что делает один из самых популярных некастодиальных кошельков TON. Это важный контекст: оценки Re:Doubt — позиция конкретной независимой команды с большим продуктовым контактом со скам-жертвами, а не «официальный вердикт сети».

Что предоставляет платформа:

  • Карточки контрактов и адресов с категорией риска.
  • Базу известных drainer-кошельков — адресов, на которые сливаются украденные активы.
  • Базу клонов и impersonation-jetton’ов, имитирующих популярные токены (USDT, NOT, DOGS).
  • Публичный API, который интегрирован в Tonkeeper и доступен другим dApp’ам.
  • Аналитические отчёты по крупным инцидентам (вектора атак, утечки, drainer-кампании).

Цель — снизить долю успешных скамов в TON за счёт того, что подозрительные контракты помечаются ещё до того, как пользователь нажмёт «подтвердить».

Security score: как читать оценку контракта или кошелька

На странице любого адреса в Re:Doubt видна оценка риска. Это не «балл 0-100», а категория с пояснением. Чтобы не сочинять цифры, которых я не видел в их доке, приведу категориальную картину:

  • Чисто / без сигналов — система не видит негатива. Не означает «безопасно», означает «нет повода насторожиться».
  • Низкий риск — контракт молод, мало истории, либо есть слабые косвенные сигналы.
  • Умеренный риск — есть жалобы или подозрительные паттерны (типичные для дрейнеров cookie-cutter контракты, неестественная история транзакций).
  • Высокий риск / drainer / scam — подтверждённый вредоносный контракт. Часто с пометкой кампании или цитированием инцидента.
  • Impersonation — контракт пытается выдать себя за известный (например, jetton с тикером USDT, но не от Tether).

К каждой категории Re:Doubt обычно прикладывает причину: «адрес фигурирует в N жалобах», «контракт является копией известного drainer-шаблона», «jetton-минтер имитирует тикер X». Это критично: читай причину, а не только цвет метки.

Интеграция с Tonkeeper — авто-предупреждения в момент транзакции

Самая полезная часть Re:Doubt — это её встроенность в Tonkeeper. Когда ты подписываешь транзакцию, кошелёк фоном дёргает Re:Doubt API по адресу контрагента и контракта. Если приходит негативный сигнал, Tonkeeper показывает жёлтый или красный баннер на экране подтверждения:

  • «Этот адрес помечен как drainer» — красный, с настоятельной рекомендацией отменить.
  • «Этот контракт похож на impersonation известного токена» — жёлтый, требует осознанного «всё равно продолжить».
  • «У этого jetton нет верификации» — мягкое предупреждение, чтобы не путать с реальным USDT.

Сценарий, ради которого это всё построено: тебе приходит «бесплатный» jetton с инструкцией зайти на сайт и «активировать» — типичная drainer-схема. Ты по инерции жмёшь подтвердить операцию, и в этот момент Tonkeeper показывает красный экран Re:Doubt. Спасает реально много людей, потому что атака рассчитана на автопилот.

Другие кошельки TON постепенно подтягивают аналогичные интеграции, но в Tonkeeper она work-out-of-the-box.

Case-walkthrough: подозрительный jetton airdrop

Разберём конкретный workflow. На кошелёк приходит «бесплатный» jetton с тикером USDT-AIR и суммой 5000. В метаданных — ссылка на сайт «активации». Что делает форензик-friendly пользователь:

Шаг 1 — Re:Doubt по jetton-минтеру.

Из карточки jetton’а в Tonkeeper копируем адрес контракта-минтера, вставляем в поиск Re:Doubt. Скорее всего, увидим категорию impersonation или scam — Re:Doubt уже знает про такие токены. Если категория «нет сигналов», но тикер похож на известный — это уже само по себе красный флаг.

Шаг 2 — проверка адреса-отправителя.

Тот, кто прислал airdrop, — обычно drainer-распределитель. Его адрес тоже идёт в Re:Doubt. Часто такие адреса засвечены и имеют пометку.

Шаг 3 — Tonviewer на цепочку.

Открываем Tonviewer, смотрим, кому ещё этот отправитель раздал тот же jetton. Если видим веер из тысяч одинаковых сообщений, отправленных за минуту — это массовая раздача, не «персональный подарок».

Шаг 4 — НЕ заходить на сайт активации.

Это и есть drainer-страница. Она просит подключить кошелёк и подписать «активацию», которая на деле — approve на снятие реальных активов. Подробный разбор драйнеров — в гайде по drainer-сайтам.

Шаг 5 — оставить jetton в кошельке.

Сам факт владения скам-jetton’ом не опасен. Опасен interact с ним (approve, перевод, обмен). Если игнорируешь — он просто висит мёртвым грузом.

Что Re:Doubt не покрывает

Чтобы пользоваться инструментом честно, надо понимать его границы:

  • Fresh-контракты. Если drainer-контракт задеплоен 2 часа назад, у Re:Doubt о нём ещё нет данных. Метка будет «нет сигналов» — но это не значит «безопасно».
  • Атаки через UI, а не контракт. Если жертву обманывают через фейковый Telegram-бот, который генерирует ссылку с подменой адреса — Re:Doubt тут не поможет, потому что контракт назначения может быть легитимный (например, твой собственный, но не тот).
  • Сложные DeFi-эксплойты. Re:Doubt — не аудит. Если в DEX-контракте уязвимость в логике оракула, скор её не увидит.
  • Социальная инженерия. Re:Doubt не знает, что собеседник в Telegram уговорил тебя перевести деньги «другу».
  • Покрытие NFT/dApp слабее, чем по jetton’ам и кошелькам — фокус был исторически на токенах.

То есть Re:Doubt — первый фильтр, а не финальная инстанция.

Дополнительные инструменты: Tonviewer graph, TonStat clusters, manual tonscan

Для серьёзной проверки одного Re:Doubt мало. Что добавить:

Tonviewer (tonviewer.com). Показывает дерево сообщений транзакции и удобный граф связей. Если жертва ищет, куда ушли её деньги, Tonviewer быстро строит цепочку через несколько hops. Сравнение Tonviewer и TonScan — в отдельной статье.

TonStat / on-chain аналитика. Кластерный анализ — попытка понять, что N разных адресов на самом деле принадлежат одному оператору. Помогает увидеть масштаб drainer-кампании.

TonScan (tonscan.org). Классический эксплорер, удобен для ручного просмотра отдельных транзакций. Не имеет встроенного security-скоринга, но даёт полную raw-информацию. Базовый гайд по TonScan — в статье про чтение транзакций.

toncenter / tonweb CLI. Для тех, кто пишет свой анализ — официальный API и SDK позволяют тащить данные пачками и считать что угодно.

Чтение on-chain метрик. Если хочется понимать, как вообще оценивается здоровье сети и где смотреть макро-уровень, посмотри гайд по on-chain метрикам.

Чек-лист перед approve любой TON-транзакции

То, что я прохожу мысленно перед нажатием «подтвердить» на сумму, которую жалко потерять:

  1. Я инициировал эту операцию? Если кошелёк сам выскочил с запросом — это уже плохой знак.
  2. Адрес получателя сверен побайтно? Не «начало и конец совпадают» — а полностью.
  3. Re:Doubt по адресу контракта и получателя — что говорит? Если красное или жёлтое — стоп.
  4. Сумма и jetton — то, что я ожидаю? Не «1.0 TON» вместо «0.1 TON» из-за подмены поля.
  5. Контракт верифицирован? Если это DEX или знакомый dApp — там есть верификация.
  6. Я понимаю, что именно подписываю? «Approve», «transfer», «mint» — все это разные операции с разными последствиями.
  7. Сайт открыт по корректному URL? Без подмены домена через unicode или typo.
  8. Если это «бесплатно» — где подвох? «Активируй и получи N USDT» = drainer в 99% случаев.

Этот чек-лист легко проходить за 30 секунд, но он закрывает 90% типовых атак.

Заключение

Re:Doubt — это не «антивирус для TON», а публичная база сигналов, на которую полагаются крупные кошельки. Она хорошо ловит уже известные скамы и сильно снижает успех массовых drainer-кампаний. Но fresh-контракты, тонкие атаки через UI и социальная инженерия — это уже не её зона. Поэтому сочетание: Re:Doubt + Tonviewer + здравый смысл + чек-лист — даёт реалистичный уровень защиты для активного пользователя TON.

Если попадаешь под подозрение, что тебя пытались обмануть — детальный разбор типичных схем в топ-10 скамов TON в Telegram и как работают drainer-сайты.

Источники

Частые вопросы

Нет. Re:Doubt делает команда Tonkeeper (тот же коллектив, что и популярный кошелёк). Это независимая security-research платформа, а не часть TON Foundation. Поэтому её оценки — это позиция конкретной команды, а не «вердикт сети».
Нет, как и любому автоматическому скору. Re:Doubt хорошо ловит уже известные паттерны: drainer-шаблоны, copy-paste скам-контракты, верифицированные жалобы. Но fresh-контракты, неизвестные ранее жертвы и тонкие атаки через социальную инженерию автоматическим анализом не поймать. Скор — это первый сигнал, а не вся проверка.
Не подтверждать транзакцию по инерции. Открыть адрес контракта в Re:Doubt и Tonviewer, посмотреть категорию риска и историю. Если это просто новый контракт без репутации — оценить, осознанно ли ты с ним взаимодействуешь. Если есть прямые жалобы и drainer-паттерны — отменить операцию.
Да, ядро системы — это база контрактов и кошельков. Туда попадают и jetton-минтеры (можно проверить «реальный» ли это USDT или клон с похожим тикером), и NFT-коллекции, и кошельки, которые сеть пометила как drainer/wash. Но степень покрытия по NFT и приложениям ниже, чем по жетонам.
Нет. Отсутствие красной метки означает только «у системы пока нет негативных сигналов». Это не аудит и не гарантия. Большинство свежих скам-контрактов первые часы выглядят чистыми, потому что жалоб ещё не поступило. Для серьёзных сумм этого скора недостаточно — нужен ручной анализ и здравый смысл.

Похожие материалы