Если ты хоть раз заходил в новый 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. Классический сценарий:

  1. Заходишь на сайт проекта
  2. Подключаешь MetaMask или Trust Wallet
  3. Нажимаешь "Deposit" или "Stake"
  4. Не подтверждай транзакцию сразу!

На этом этапе кошелёк показывает всплывающее окно с деталями. Там будет строка "Interacting with contract" или "Contract address". Это и есть адрес, который нужен для проверки.

Лайфхак: Если используешь расширение Rabby Wallet, оно автоматически подсвечивает контракты и показывает их Security Score до отправки транзакции. У меня Rabby заблокировал уже три попытки взаимодействия с малоизвестными контрактами — просто не дал подписать транзакцию.

Сценарий 2: Проверка уже выполненной транзакции

Если ты уже провёл транзакцию (например, добавил ликвидность вчера), но теперь сомневаешься — открой block explorer:

Заходишь в свой кошелёк через 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.

После подключения:

  1. Переходишь в раздел Portfolio
  2. Находишь вкладку Security (иконка щита)
  3. Нажимаешь "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):

  1. Proxy Implementation Detected Контракт — это прокси-прокладка. Реальная логика находится в другом контракте, адрес которого может поменять владелец.

    Что это значит: Сегодня контракт честно начисляет доход, завтра владелец отправляет транзакцию и меняет логику на "забрать все токены себе". Ты не получишь никакого уведомления.

    Пример из жизни: В 2022 году проект на BSC использовал именно такую схему — 3 месяца работал легально, накопил $4M в пулах, потом за 1 транзакцию админ подменил контракт и вывел всё на Tornado Cash.

  2. Unverified Source Code Код контракта не опубликован на Etherscan.

    Что это значит: Даже опытный аудитор не сможет проверить, что именно делает контракт — доступен только скомпилированный байт-код. Это как если бы тебе дали программу в виде набора нулей и единиц, без исходников.

Средние риски (Medium Risk):

  1. 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:

  1. Открой контракт
  2. Вкладка "Read Contract"
  3. Найди функцию owner() или admin()
  4. Если это обычный 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 сэкономил мне время и деньги.

Настройка: После установки:

  1. Открой расширение
  2. Settings → Security Level → выбери "High" (блокирует небезопасные контракты автоматически)
  3. Enable → Threat Detection

Минус: Stelo иногда выдаёт ложные срабатывания на новые контракты (ещё не добавлены в базу). Но лучше перестраховаться.

Revoke.cash

Установка: Revoke.cash (доступно как сайт и расширение).

Как работает: Revoke показывает все активные разрешения (approvals), которые ты дал смарт-контрактам. Если ты когда-то подключился к dApp, но больше им не пользуешься, контракт всё ещё может списывать токены.

Интерфейс:

  1. Подключаешь кошелёк
  2. Видишь список всех контрактов с доступом к твоим токенам
  3. Рядом — кнопка "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 на длительный срок.

Где проверить:

Ищешь адрес токена проекта → видишь, заблокирована ли ликвидность и на сколько. Если unlock через 2 недели — красный флаг (команда может забрать ликвидность и слить токен).

Реальный кейс: В 2023 я нашёл farming с APY 500% на Polygon. Проверил — ликвидность unlocked. Через 4 дня команда вывела LP-токены, цена упала на 98%. Я не участвовал, потому что видел этот риск заранее.

Что делать, если контракт провалил проверку

У тебя три варианта:

Вариант 1: Отказаться полностью

Если баллов меньше 50 и есть High Risk предупреждения — просто не взаимодействуй. Даже если APY космический.

Правило: Лучше пропустить потенциальную прибыль, чем потерять капитал.

Вариант 2: Тестовая сумма на отдельном кошельке

Если проект вызывает интерес (например, высокий APY, но молодой контракт), создай жертвенный кошелёк:

  1. Новый MetaMask аккаунт
  2. Переведи туда $50—100
  3. Протестируй проект: внеси, выведи, посмотри, как работает

Главное: Никогда не держи на таком кошельке основные средства. Даже если тест прошёл успешно, это не гарантия безопасности.

Вариант 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 безопасность — не параноя, а необходимость.