Если ты хоть раз заходил в новый DeFi-проект, тебе предлагали «подключить кошелёк» и «дать разрешение». За этой простой кнопкой скрывается смарт-контракт — программа, которая получит доступ к твоим токенам. В 2023 году только через rug pull (внезапный слив ликвидности) инвесторы потеряли $298 млн. Большинство этих случаев можно было предотвратить, если бы люди знали, как проверить смарт-контракт перед тем, как дать ему права на свои деньги.
Я столкнулся с этим на собственном опыте, когда чуть не влил $2000 в farming-пул на BNB Chain, который De.Fi Scanner оценил на 30/100 по безопасности. Контракт оказался прокси — это значит, что владелец мог в любой момент подменить логику и опустошить пулы. В этом гайде покажу, как я теперь проверяю все контракты перед взаимодействием, и почему тебе не нужно быть программистом, чтобы защитить свои активы.
Что такое De.Fi Scanner и зачем он нужен
De.Fi Scanner — это бесплатный инструмент для анализа безопасности смарт-контрактов в режиме реального времени. Ты вставляешь адрес контракта, сканер разбирает его код и выдаёт оценку от 0 до 100, где:
- 90—100 — минимальный риск (проверенные протоколы вроде Uniswap V3)
- 75—89 — низкий риск (есть небольшие нюансы, но работать можно)
- 50—74 — средний риск (требуется дополнительная проверка)
- 0—49 — высокий риск (категорически не рекомендуется)
Основная фишка — Scanner автоматически находит критические уязвимости:
- Proxy-функции (владелец может заменить логику контракта)
- Отсутствие верификации исходного кода
- Функции паузы (админ может заморозить твои токены)
- Скрытые комиссии при выводе
- Нестандартные делегирования прав
Важно понимать: De.Fi не гарантирует 100% защиту. Это первый слой проверки. Если контракт набрал меньше 50 баллов, дальнейшие действия — только аудит у специалиста. Но для 90% сомнительных проектов Scanner покажет красные флаги сразу.
Подготовка: где взять адрес смарт-контракта для проверки
Прежде чем проверять контракт, нужно его правильно найти. Вот три основных сценария.
Сценарий 1: Ты собираешься вложиться в farming-пул
Допустим, ты нашёл проект на BNB Chain, который обещает 150% APY на паре BNB/USDT. Классический сценарий:
- Заходишь на сайт проекта
- Подключаешь MetaMask или Trust Wallet
- Нажимаешь "Deposit" или "Stake"
- Не подтверждай транзакцию сразу!
На этом этапе кошелёк показывает всплывающее окно с деталями. Там будет строка "Interacting with contract" или "Contract address". Это и есть адрес, который нужен для проверки.
Лайфхак: Если используешь расширение Rabby Wallet, оно автоматически подсвечивает контракты и показывает их Security Score до отправки транзакции. У меня Rabby заблокировал уже три попытки взаимодействия с малоизвестными контрактами — просто не дал подписать транзакцию.
Сценарий 2: Проверка уже выполненной транзакции
Если ты уже провёл транзакцию (например, добавил ликвидность вчера), но теперь сомневаешься — открой block explorer:
- Ethereum: Etherscan.io
- BNB Chain: BscScan.com
- Arbitrum: Arbiscan.io
- zkSync Era: Explorer.zksync.io
Заходишь в свой кошелёк через explorer, находишь последние транзакции и смотришь колонку "To" — это адрес контракта, с которым ты взаимодействовал. Копируешь его и идёшь проверять.
Пример из моей практики: Я проверял farming на zkSync Era через их explorer. Интерфейс там непривычный — вместо привычной таблицы транзакций показывает карточки. Нужная информация спрятана глубже: сначала кликаешь на транзакцию, потом на вкладку "Internal Transactions", и только там видишь реальный контракт, который получил твои токены.
Сценарий 3: Проверка через расширение Stelo или Revoke.cash
Когда используешь защитные расширения (о них ниже), они перехватывают запросы на подпись транзакций. Stelo, например, показывает не только адрес контракта, но и предупреждает, если проект не верифицирован.
В окне расширения кликаешь на строку с адресом контракта — оно открывает explorer автоматически. Там уже можешь скопировать адрес для De.Fi Scanner.
Табличка-шпаргалка:
| Сеть | Block Explorer | Быстрая ссылка на свой кошелёк |
|---|---|---|
| Ethereum | Etherscan | etherscan.io/address/[твой_адрес] |
| BNB Chain | BscScan | bscscan.com/address/[твой_адрес] |
| Arbitrum | Arbiscan | arbiscan.io/address/[твой_адрес] |
| Polygon | PolygonScan | polygonscan.com/address/[твой_адрес] |
| zkSync Era | zkSync Explorer | explorer.zksync.io/address/[твой_адрес] |
Теперь, когда у тебя есть адрес контракта, переходим к сканированию.
Пошаговая инструкция: как проверить контракт через De.Fi Scanner
Разберу процесс на реальном кейсе — проверю контракт farming-пула, который предлагал ~20% APY на застейканном эфире (liquid staking derivatives).
📢 Больше практических разборов — в канале «Сергей Зиненко | DeFi-Гедонист». Подписывайтесь, чтобы не пропустить.
Шаг 1: Открой De.Fi и подключи кошелёк
Заходишь на de.fi и подключаешь кошелёк через WalletConnect или расширение MetaMask. Это нужно для доступа к разделу Security.
После подключения:
- Переходишь в раздел Portfolio
- Находишь вкладку Security (иконка щита)
- Нажимаешь "Scanner"
Откроется окно с полем ввода адреса.
Шаг 2: Вставь адрес контракта и выбери сеть
Допустим, я проверяю контракт на Ethereum: 0x...082D (для примера сокращаю).
Вставляю адрес в поле. De.Fi автоматически определяет сеть — в моём случае Ethereum Mainnet. Если контракт существует на нескольких сетях (например, одинаковые адреса на Arbitrum и Optimism), сканер покажет выпадающий список — выбирай ту, где планируешь взаимодействовать.
Жмёшь "Scan".
Шаг 3: Анализ начинается — что происходит под капотом
Scanner загружает байт-код контракта из блокчейна и прогоняет его через набор эвристик:
- Ищет паттерны известных скамов (например, функция
rugPull()) - Проверяет, есть ли верификация исходного кода на Etherscan
- Анализирует распределение прав (кто владелец, есть ли мультисиг)
- Сравнивает с базой данных инцидентов (De.Fi ведёт Rekt Database — реестр взломов)
Обработка занимает 5—15 секунд.
Шаг 4: Читаем результаты — красные флаги
Вот что я увидел для контракта Acselmetrix (liquid staking на Ethereum):
Общий балл: 30/100 — высокий риск.
Критические проблемы (High Risk):
Proxy Implementation Detected Контракт — это прокси-прокладка. Реальная логика находится в другом контракте, адрес которого может поменять владелец.
Что это значит: Сегодня контракт честно начисляет доход, завтра владелец отправляет транзакцию и меняет логику на "забрать все токены себе". Ты не получишь никакого уведомления.
Пример из жизни: В 2022 году проект на BSC использовал именно такую схему — 3 месяца работал легально, накопил $4M в пулах, потом за 1 транзакцию админ подменил контракт и вывел всё на Tornado Cash.
Unverified Source Code Код контракта не опубликован на Etherscan.
Что это значит: Даже опытный аудитор не сможет проверить, что именно делает контракт — доступен только скомпилированный байт-код. Это как если бы тебе дали программу в виде набора нулей и единиц, без исходников.
Средние риски (Medium Risk):
Owner Can Pause Functions Владелец может остановить часть функций (например, вывод средств).
Scanner даже показывает ссылку на инцидент в Rekt Database, где подобная функция была использована для блокировки активов пользователей на 2 недели.
Вывод: Контракт с баллом 30/100 и двумя High Risk — это автоматический отказ. Я закрыл вкладку и не отправил туда ни цента.
Шаг 5: Сравни с проверенными контрактами
Для контраста я проверил Uniswap V3 Router на Ethereum — 96/100. Единственное замечание: "Контракт использует delegate call" (техническая особенность, не баг).
Такая разница в баллах — это маркер. Если новый проект набирает меньше 70, а аналог на Uniswap — под 100, спроси себя: зачем рисковать?
Расшифровка основных ошибок и рисков
Давай разберу топ-5 предупреждений, которые ты увидишь чаще всего.
1. Proxy Implementation (Upgradeable Contract)
Как выглядит: "Contract uses proxy pattern" или "Upgradeable via proxy".
Что это: Контракт разделён на две части:
- Proxy (фасад) — принимает твои транзакции
- Implementation (логика) — выполняет действия
Владелец может поменять Implementation на любой другой контракт, даже не предупредив тебя.
Когда это нормально: Крупные протоколы (AAVE, Compound) используют proxy для обновлений без миграции пользователей. Но там управление через DAO с задержкой (timelock) — решение принимается голосованием, и до активации проходит 48—72 часа.
Когда это скам: Если владелец — один кошелёк (не мультисиг, не DAO). Проверь это через Etherscan:
- Открой контракт
- Вкладка "Read Contract"
- Найди функцию
owner()илиadmin() - Если это обычный EOA-кошелёк (начинается с 0x, не контракт) — красный флаг
Мой опыт: В 2023 я проверял yield aggregator на Arbitrum. Proxy с одним владельцем. Я запросил у команды пруф мультисига — они игнорировали вопрос 3 дня. Через неделю проект закрылся с формулировкой "технические проблемы". Сейчас сайт недоступен.
2. Unverified Contract Source
Как выглядит: "Source code not verified on Etherscan".
Что это: Разработчик не опубликовал исходный код (Solidity) на block explorer. Доступен только скомпилированный байт-код.
Почему это опасно: Ты не можешь проверить, соответствует ли контракт описанию на сайте. Может быть написано "5% комиссия", а в коде — "100% при выводе".
Исключение: Некоторые L2 (например, zkSync Era) используют нестандартные компиляторы, и верификация там сложнее. Но крупные проекты всё равно публикуют код — просто в GitHub, если не на explorer.
Решение: Если контракт не верифицирован, найди его GitHub-репозиторий. Сравни хеш скомпилированного кода из репо с тем, что задеплоено. Если репо нет — не вкладывайся.
3. Owner Can Pause or Modify
Как выглядит: "Contract has pause function" или "Owner can change fees".
Что это:
В коде есть функции вроде pause(), setFee(), blacklist(), которые может вызвать только владелец.
Легитимное использование: Протоколы добавляют паузу для экстренных случаев (например, обнаружена уязвимость — лучше заморозить контракт, чем потерять средства). Но должен быть механизм задержки (timelock).
Опасное использование: Владелец может заморозить вывод, накрутить комиссию до 50% или внести твой адрес в чёрный список.
Проверка:
Открой контракт на Etherscan, вкладка "Contract" → "Read as Proxy". Найди переменную paused или fee. Если её можно менять без ограничений — риск.
4. High Concentration of Tokens
Как выглядит: "Top 10 holders own 85% of supply".
Что это: Большая часть токенов проекта сосредоточена у узкой группы адресов.
Риск: Если топ-холдеры начнут продавать одновременно, цена токена обвалится. Для farming-пулов это означает обесценивание наград.
Пример: В 2024 году я фармил токен на Polygon, APY 300%. Через De.Fi увидел, что 60% токенов у команды (unvested). Через месяц они анлокнулись, команда слила на рынок, токен упал на 92%. Мои награды стоили уже копейки.
Как проверить вручную: Etherscan → вкладка "Holders" → смотри распределение. Здорово, если топ-10 держат меньше 40%, и среди них есть контракты пулов ликвидности (значит, токены locked).
5. Delegate Call in Loop
Как выглядит: "Uses delegatecall inside loop".
Что это: Технический паттерн, который может привести к реентерабельности (reentrancy attack) — классическая уязвимость смарт-контрактов.
Почему опасно: Атакующий может вызвать функцию контракта рекурсивно и вывести больше токенов, чем положено. Так был взломан The DAO в 2016 году ($60M украдено).
Что делать: Если видишь это предупреждение, а контракт не прошёл аудит — обходи стороной. Даже если ты не программист, это сигнал, что код написан небрежно.
Защитные расширения для браузера: Stelo и Revoke.cash
De.Fi Scanner — мощный инструмент, но каждый раз вручную копировать адреса утомительно. Я использую два расширения, которые автоматизируют проверку.
Stelo Wallet Guardian
Установка: Chrome Web Store → поиск "Stelo".
Как работает: Stelo перехватывает запросы от dApps на подпись транзакций и показывает всплывающее окно с анализом:
- Адрес контракта
- Оценка безопасности (интегрируется с несколькими базами данных)
- Предупреждения о рисках
Пример из практики: Я зашёл на сайт yield farming на BNB Chain. Нажал "Deposit", и Stelo заблокировал транзакцию с сообщением: "Contract not verified. Proceed with caution." Я открыл детали, скопировал адрес, проверил через De.Fi — 28/100. Stelo сэкономил мне время и деньги.
Настройка: После установки:
- Открой расширение
- Settings → Security Level → выбери "High" (блокирует небезопасные контракты автоматически)
- Enable → Threat Detection
Минус: Stelo иногда выдаёт ложные срабатывания на новые контракты (ещё не добавлены в базу). Но лучше перестраховаться.
Revoke.cash
Установка: Revoke.cash (доступно как сайт и расширение).
Как работает: Revoke показывает все активные разрешения (approvals), которые ты дал смарт-контрактам. Если ты когда-то подключился к dApp, но больше им не пользуешься, контракт всё ещё может списывать токены.
Интерфейс:
- Подключаешь кошелёк
- Видишь список всех контрактов с доступом к твоим токенам
- Рядом — кнопка "Revoke" (отозвать разрешение)
Мой ритуал: Каждое воскресенье я захожу на Revoke.cash и проверяю approvals. Если вижу контракт, которым не пользовался 2+ месяца — отзываю. В ноябре 2024 я обнаружил разрешение для контракта, который уже был взломан (узнал из Rekt Database) — отозвал за 5 минут до того, как хакеры добрались до моих токенов.
🎓 Научиться зарабатывать в DeFi — курс «DeFi-Гедонист» с практикой и поддержкой. Подробности в канале «Сергей Зиненко | DeFi-Гедонист».
Табличка: Stelo vs Revoke.cash
| Функция | Stelo | Revoke.cash |
|---|---|---|
| Проверка перед транзакцией | ✅ | ❌ |
| Список активных approvals | ❌ | ✅ |
| Автоматическая блокировка | ✅ | ❌ |
| Интеграция с De.Fi Scanner | Частично | Нет |
| Поддержка сетей | 15+ | 40+ |
Рекомендация: Используй оба. Stelo — для проактивной защиты, Revoke.cash — для регулярного аудита.
Чек-лист: когда контракт можно считать безопасным
Собрал критерии, которые использую сам. Если контракт проходит хотя бы 4 из 6 пунктов — риск приемлемый.
1. Балл De.Fi Scanner выше 75
Это базовый фильтр. Меньше 75 — дополнительная проверка обязательна.
2. Исходный код верифицирован
Открой контракт на Etherscan → вкладка "Contract". Должна быть галочка "Contract Source Code Verified" и видны исходники на Solidity/Vyper.
3. Прошёл аудит известной компанией
Ищи в документации проекта (обычно раздел "Security" или "Audits"). Топ-аудиторов:
- CertiK
- Trail of Bits
- OpenZeppelin
- Quantstamp
Проверь, что отчёт опубликован и соответствует версии контракта (hash кода должен совпадать).
4. Управление через мультисиг или DAO
Если у контракта есть админ-функции (pause, upgrade), владелец должен быть:
- Мультисиг (например, Gnosis Safe) с порогом 3/5 или выше
- DAO с таймлоком минимум 24 часа
Как проверить:
Etherscan → вкладка "Read Contract" → функция owner(). Если это не EOA-кошелёк (адрес начинается с 0x, но это контракт), кликни на него. Должен открыться контракт мультисига или DAO.
5. Длительность работы минимум 6 месяцев
Новые контракты — это риск. Лучше подождать полгода и посмотреть, были ли инциденты.
Проверка: Etherscan → "Contract Creation" → смотришь дату деплоя. Если контракт младше 3 месяцев, а TVL (total value locked) уже $10M+, это подозрительно — либо гениальный продукт, либо скам-ловушка.
6. Ликвидность токена заблокирована
Для farming-пулов важно, чтобы LP-токены проекта (ликвидность на DEX) были locked на длительный срок.
Где проверить:
- Team.Finance (локер для Ethereum, BSC, Polygon)
- Unicrypt
Ищешь адрес токена проекта → видишь, заблокирована ли ликвидность и на сколько. Если unlock через 2 недели — красный флаг (команда может забрать ликвидность и слить токен).
Реальный кейс: В 2023 я нашёл farming с APY 500% на Polygon. Проверил — ликвидность unlocked. Через 4 дня команда вывела LP-токены, цена упала на 98%. Я не участвовал, потому что видел этот риск заранее.
Что делать, если контракт провалил проверку
У тебя три варианта:
Вариант 1: Отказаться полностью
Если баллов меньше 50 и есть High Risk предупреждения — просто не взаимодействуй. Даже если APY космический.
Правило: Лучше пропустить потенциальную прибыль, чем потерять капитал.
Вариант 2: Тестовая сумма на отдельном кошельке
Если проект вызывает интерес (например, высокий APY, но молодой контракт), создай жертвенный кошелёк:
- Новый MetaMask аккаунт
- Переведи туда $50—100
- Протестируй проект: внеси, выведи, посмотри, как работает
Главное: Никогда не держи на таком кошельке основные средства. Даже если тест прошёл успешно, это не гарантия безопасности.
Вариант 3: Заказать аудит
Если ты планируешь вложить $10k+, имеет смысл оплатить независимого аудитора (стоимость $500—2000 за экспресс-проверку).
Как найти аудитора:
- ImmuneFi — площадка bug bounty, там есть контакты аудиторов
- Code4rena — конкурсные аудиты (дешевле)
- Телеграм-каналы вроде @smart_contract_audit_ru
Аудитор проверит конкретно тот контракт, в который ты вкладываешься, и даст заключение.
Продвинутые техники: ручной анализ через Etherscan
Если ты хочешь копнуть глубже, вот что смотрю я после De.Fi Scanner.
Проверка функций контракта
Etherscan → вкладка "Contract" → "Read Contract". Ключевые функции:
owner()илиadmin()— кто владелецpaused()— на паузе ли контрактfee()илиperformanceFee()— комиссииMAX_SUPPLY— максимальная эмиссия токена (для governance-токенов)
Если видишь функции вроде rug(), honeypot(), scam() — это троллинг или откровенный скам. Бывает, разработчики добавляют такие имена ради мема, но лучше не рисковать.
Проверка транзакций владельца
Копируешь адрес владельца контракта (из функции owner()) и смотришь его активность:
- Если он деплоил 50 похожих контрактов за последний месяц — это фабрика скамов
- Если выводил большие суммы на биржу сразу после запуска проекта — подозрительно
Пример: Я нашёл проект на Arbitrum, где владелец контракта деплоил по 3—5 farming-контрактов в неделю. Каждый работал 2—4 дня, потом закрывался. Классическая схема serial rugger.
📢 Больше практических разборов — в канале «Сергей Зиненко | DeFi-Гедонист». Подписывайтесь, чтобы не пропустить.
Анализ распределения токенов
Etherscan → вкладка "Token" → "Holders". Смотришь:
- Сколько % у топ-10 холдеров
- Есть ли среди них контракты пулов (хороший знак — токены locked)
- Есть ли burn-адрес (мёртвые токены, хороший знак)
Если один адрес держит 40%+ и это EOA (не контракт) — риск дампа.
Кейс: как я проверил контракт на zkSync Era
Реальная история из моего опыта в ноябре 2024.
Задача: Проверить farming-контракт на zkSync Era, куда я отдал LP-токены.
Шаг 1: Открыл explorer.zksync.io, нашёл свою транзакцию.
Проблема: Интерфейс zkSync Explorer отличается от Etherscan. Транзакции показаны карточками, а не таблицей. Адрес контракта спрятан во вкладке "Internal Transactions".
Шаг 2: Скопировал адрес контракта, вставил в De.Fi Scanner.
Результат: 42/100. Критический риск — контракт не верифицирован.
Шаг 3: Попытался найти исходный код в GitHub проекта. Нашёл репозиторий, но последний коммит — 6 месяцев назад, а контракт задеплоен 2 недели назад. Код не совпадал (разные хеши).
Решение: Я вывел ликвидность в тот же день и потерял только gas fees (~$0.20). Через 3 недели проект закрылся без объяснений.
Вывод: zkSync Era — перспективная L2, но там много молодых проектов с низкими стандартами безопасности. Всегда проверяй верификацию кода, даже если сеть новая.
Ограничения De.Fi Scanner: что он НЕ покажет
Scanner — это не панацея. Вот что он пропустит:
1. Социальная инженерия
Если разработчики создали DAO с мультисигом, но контролируют все ключи — Scanner покажет "безопасно", но это иллюзия. Проверяй, кто входит в мультисиг (адреса должны принадлежать публичным фигурам).
2. Экономические атаки
Контракт может быть технически безопасным, но экономическая модель — сломанной. Например, гиперинфляция governance-токена сделает farming-награды бесполезными.
Scanner этого не видит — нужен анализ токеномики вручную.
3. Зависимости от оракулов
Если контракт использует Chainlink для получения цен, а оракул взломают или начнёт врать — контракт может выполнить некорректные операции.
Scanner проверяет код контракта, но не анализирует, насколько надёжны внешние зависимости.
4. Flash loan атаки
Технически сложные атаки, когда злоумышленник берёт огромный кредит на 1 блок, манипулирует ценами и опустошает пулы. Требуется глубокий аудит.
Что делать: Используй De.Fi Scanner как первый слой. Для крупных сумм ($5k+) добавляй:
- Проверку команды проекта (LinkedIn, Twitter, GitHub)
- Анализ токеномики
- Мониторинг сообщества (Discord, Telegram)
Если проект анонимный и обещает 1000% APY — это почти наверняка скам, даже если Scanner дал 80/100.
FAQ
Сколько стоит использование De.Fi Scanner?
De.Fi Scanner бесплатен для базовых проверок. Есть премиум-план ($29/месяц), который добавляет мониторинг твоих активных позиций и уведомления о новых рисках. Я пользуюсь бесплатной версией — её достаточно для ручной проверки перед каждым вложением.
Можно ли доверять баллу De.Fi, если он высокий?
Высокий балл (90+) означает, что автоматические эвристики не нашли явных проблем. Но это не гарантия — Scanner может пропустить сложные уязвимости или экономические риски. Всегда комбинируй De.Fi с проверкой аудитов, возраста проекта и репутации команды.
Что делать, если контракт не найден в De.Fi Scanner?
Возможные причины: (1) контракт на экзотической сети, которую Scanner не поддерживает, (2) адрес введён неправильно, (3) это не контракт, а обычный кошелёк. Проверь адрес через block explorer — там будет метка "Contract" рядом с адресом, если это смарт-контракт.
Как часто нужно проверять контракты, с которыми уже взаимодействовал?
Для активных позиций (стейкинг, farming) — раз в месяц заходи на Revoke.cash и смотри, не добавились ли новые approvals. Если используешь протокол постоянно (например, Uniswap), достаточно проверить один раз и периодически читать новости о безопасности.
Безопасно ли давать De.Fi Scanner доступ к кошельку?
De.Fi подключается через WalletConnect или расширение кошелька в режиме "read-only" — он только читает данные, не может подписывать транзакции. Это безопасно. Но я рекомендую подключать через одноразовую сессию WalletConnect (после проверки отключай).
Что дальше
Теперь ты знаешь, как проверить смарт-контракт перед тем, как доверить ему свои активы. Главное правило, которое я выучил за 3 года в DeFi: если сомневаешься — не вкладывай. Лучше пропустить 10 потенциально прибыльных проектов, чем один раз потерять капитал в скаме.
Следующий шаг — научиться читать аудиторские отчёты. Даже базовое понимание того, что означают "reentrancy", "integer overflow" или "access control", поможет тебе оценивать риски точнее. В моём Telegram-канале канал «Сергей Зиненко | DeFi-Гедонист» я регулярно разбираю свежие аудиты и показываю, на что обращать внимание.
Установи Stelo и Revoke.cash прямо сейчас — это займёт 3 минуты, но может спасти тысячи долларов. И помни: в DeFi безопасность — не параноя, а необходимость.