Реализация AI-детекции rug pull / скам-токенов в мобильном приложении
DeFi-кошелёк без защиты от скама — это приложение, которое помогает пользователям терять деньги удобнее. Rug pull, honeypot, mint backdoor — эти атаки происходят не потому что пользователи глупы, а потому что on-chain паттерны скам-токенов неочевидны без автоматизированного анализа. Задача: встроить в мобильное приложение детектор, который предупреждает до транзакции.
Что детектирует AI-модель и откуда берутся сигналы
Скам-токен имеет характерные on-chain и bytecode-паттерны. Сигналы делятся на три уровня:
Bytecode-анализ смарт-контракта. Honeypot — классика: функция покупки работает, функция продажи всегда откатывается (revert). В байткоде это видно как асимметрия в ветвлении transfer/transferFrom. Mint backdoor — скрытая функция с модификатором onlyOwner, которая позволяет эмитировать новые токены и разбавить сапплай. Renounced ownership без lock liquidity — частый паттерн rug: владелец сжигает ключи, но ликвидность не заморожена.
On-chain метрики. Концентрация холдеров: если топ-10 адресов держат >60% supply при рыночной капитализации <$1M — красный флаг. Liquidity lock: через Unicrypt или Team.Finance можно проверить, заперта ли ликвидность и на сколько. Возраст контракта и число транзакций: контракт старше трёх дней с >500 транзакциями статистически менее рискован.
Социальные сигналы. Telegram с накрученными участниками, Twitter без органической активности, несоответствие между числом холдеров и activity в соцсетях. Слабый сигнал сам по себе, но в комбинации с on-chain метриками увеличивает точность.
Архитектура детектора
Классификатор работает на сервере — on-device ML здесь нецелесообразен: данные для инференса берутся из blockchain RPC и внешних API, которые мобильный клиент не может кэшировать локально.
Pipeline на сервере:
Адрес контракта
→ Bytecode via eth_getCode (RPC)
→ Disassembly (evm-disasm / whatsabi)
→ Feature extraction (function selectors, transfer patterns, owner checks)
→ On-chain metrics (holders, liquidity lock, age) via Etherscan/Dexscreener API
→ ML classifier (gradient boosting / XGBoost) → risk_score [0.0 – 1.0]
→ Risk label: LOW / MEDIUM / HIGH / CRITICAL
XGBoost показывает хорошие результаты на табличных фичах без необходимости переобучать при каждом апдейте — достаточно дообучить на новых примерах скамов. Precision ~91%, recall ~88% на нашем датасете из ~120 000 токенов (из публичных баз GoPlus Security, Token Sniffer).
Альтернатива — GNN (Graph Neural Network) на графе транзакций: выявляет wash trading и координированные pump-and-dump через анализ connected components. Дороже в обучении и деплое, но точнее для сложных схем.
Мобильный клиент: интеграция без блокирующего UX
Пользователь вводит адрес токена или сканирует QR — приложение должно предупредить до того, как он нажмёт «Подтвердить».
// Android: Coroutines + Retrofit
viewModelScope.launch {
val result = tokenRiskRepository.analyze(contractAddress)
when (result.riskLabel) {
RiskLabel.CRITICAL -> showBlockingWarning(result)
RiskLabel.HIGH -> showWarningDialog(result)
RiskLabel.MEDIUM -> showInlineWarning(result)
RiskLabel.LOW -> proceed()
}
}
Критически важно: CRITICAL и HIGH — показываем предупреждение с конкретными причинами ("Функция sell заблокирована в контракте", "Ликвидность не заморожена"), а не просто "Это скам". Пользователь должен понять, почему. UX-антипаттерн — блокирующий диалог на каждый токен: wolf crying effect снижает доверие к предупреждениям.
Кэширование и offline-режим
Risk score кэшируем на 15 минут на клиенте и 1 час на сервере — контракт не меняется так быстро. Cache key — contractAddress + chainId. В офлайн-режиме показываем последний кэшированный score с timestamp. Если кэша нет — предупреждаем пользователя, что проверка недоступна.
На iOS: URLCache с diskCapacity: 50 * 1024 * 1024. На Android: OkHttp CacheInterceptor с той же логикой. Это снижает количество API-запросов и latency при повторном посещении токена.
Поддержка нескольких сетей
EVM-совместимые сети (Ethereum, BSC, Polygon, Arbitrum, Base) — один и тот же анализатор bytecode. Разные только RPC endpoints и способы получения холдеров. Solana — другая VM (SBF), нужен отдельный парсер для SPL-токен аккаунтов через @solana/web3.js / Helius API. TON (Tact/FunC) — своя архитектура, готовых детекторов меньше.
Этапы внедрения
Определение поддерживаемых сетей → сбор датасета скам-токенов → feature engineering + обучение классификатора → серверный деплой → мобильная интеграция (API клиент + кэш + UI предупреждений) → A/B тест с пользователями → мониторинг precision/recall в продакшене → дообучение на новых скамах.
Сроки: интеграция готового API (GoPlus Security, Token Sniffer) в мобильный клиент — 2–3 недели. Собственный детектор с обучением и серверным деплоем — 6–10 недель. Стоимость рассчитывается индивидуально.







