Помню, как год назад один мой знакомый потерял $4 300 за секунду. Не взлом, не фишинг — старый токен-аппрув контракту, который вдруг решил выкачать все USDC с кошелька. С тех пор я каждые две недели провожу ревизию разрешений. И сегодня покажу, как именно это делать через De.Fi — самый мощный инструмент для отзыва разрешений смарт-контрактам.

Если ты активно пользуешься DeFi (свапы, стейкинг, LP-позиции), твой кошелёк сейчас напоминает квартиру со ста открытыми дверями. Каждый раз, когда ты даёшь approve токену для работы с DEX или lending протоколом, ты выдаёшь ключ от этой двери. Проблема: 90% этих ключей висят мёртвым грузом, создавая векторы атаки.

De.Fi Scanner (https://de.fi) — это не просто ревокер. Это комплексный инструмент анализа безопасности кошелька, который показывает:

  • Какие контракты имеют доступ к твоим активам
  • Насколько рискованный каждый контракт (делегирование, прокси, upgradeable логика)
  • Сколько денег находится под угрозой
  • Историю эксплойтов похожих контрактов

Почему De.Fi, а не Revoke.cash или Etherscan

Я пользовался Revoke.cash два года — отличный инструмент для базового ревока. Но когда у тебя активы размазаны по 8 сетям и 40+ протоколам, нужно что-то мощнее.

De.Fi vs Revoke.cash:

Параметр De.Fi Revoke.cash
Мультичейн сканирование Автоматически все сети Вручную переключать
Анализ рисков Оценка каждого контракта Нет
Батч-отзыв До 10 транзакций разом По одной
История эксплойтов Встроенная база Нет
Цена газа Оптимизация через батчинг Стандартная

В моей практике De.Fi экономит 40% на комиссиях за счёт группировки транзакций. Когда ты отзываешь 15 апрувов в Ethereum, разница между $120 и $70 ощутима.

Как устроен De.Fi Shield: анатомия проверки

Когда ты подключаешь кошелёк к https://de.fi и переходишь в раздел Shield, запускается многоуровневый скан:

Этап 1: Сбор данных (15—30 секунд) De.Fi обращается к нодам всех поддерживаемых сетей (Ethereum, Arbitrum, Polygon, BSC, Optimism, Base, Avalanche и ещё 20+) и собирает:

  • Список всех ERC-20 токенов на балансе
  • Все активные апрувы (функция allowance() в контрактах)
  • Адреса контрактов, которым выданы разрешения
  • Суммы апрувов (часто это uint256.max — бесконечное разрешение)

Этап 2: Анализ контрактов (10—20 секунд) Для каждого контракта De.Fi проверяет:

  • Наличие delegatecall() — может передать управление другому контракту
  • Паттерн Proxy (upgradeable контракты) — логика может измениться завтра
  • Возможность установки комиссий (некоторые LP-контракты позволяют владельцу установить fee до 100%)
  • История эксплойтов похожих контрактов в базе Rekt Database

Этап 3: Подсчёт рисков De.Fi суммирует:

  • Total Risk — общая сумма активов под угрозой
  • High Risk Contracts — количество контрактов с критичными уязвимостями
  • Risk Score (%) — твой общий процентиль безопасности

Типичный кошелёк активного DeFi-юзера выдаёт 80—120 активных апрувов. Из них 40—60% — высокорискованные. У меня на тестовом кошельке было 96 контрактов на $1 132 под риском.

Пошаговая инструкция: отзываем разрешения через De.Fi

Шаг 1: Подключение и первичный скан

Открываешь https://de.fi, подключаешь MetaMask (или любой WalletConnect-совместимый кошелёк). Переходишь в раздел Security → Shield.

Ждёшь завершения скана. На моём кошельке с активностью в 7 сетях это заняло 42 секунды.

Видишь картину:

Total Risk: $1,132
High Risk Contracts: 96
Risk Score: 72% (High)

Шаг 2: Приоритизация — какие апрувы отзывать первыми

De.Fi сортирует контракты по убыванию риска. Вверху списка — самые опасные. В моём случае первым шёл Aggregation Router V5 (1inch) с тремя проблемами:

  • Delegatecall vulnerability
  • $306 активов под риском
  • Апрувы на USDC, DAI, bridged USDC

Критерии приоритета:

  1. Сумма риска >$100 — отзываем всегда
  2. Контракты с delegatecall — потенциальная передача управления
  3. Upgradeable Proxy — логика контракта может измениться
  4. Неиспользуемые протоколы — если не юзал 3+ месяца, зачем держать апрув

В моей практике 80% рисков приходятся на топ-20 контрактов. Начни с них.

Шаг 3: Групповой отзыв (батчинг)

Нажимаешь Revoke на контракте. De.Fi показывает:

  • Сеть (Arbitrum, BSC, Ethereum и т.д.)
  • Список токенов с активными апрувами
  • Количество транзакций для отзыва

Фишка De.Fi — батч-транзакции. Когда у контракта апрувы на 5 токенов, De.Fi группирует их:

  • Первый клик: показывает одну транзакцию (обычно самый дорогой актив)
  • Второй клик: показывает все оставшиеся разом

Пример из моего скринкаста:

📢 Больше практических разборов — в канале «Сергей Зиненко | DeFi-Гедонист». Подписывайтесь, чтобы не пропустить.

  • Контракт Aggregation Router на Arbitrum
  • Апрувы: USDC ($180), DAI ($96), bridged USDC ($30)
  • Первый Revoke → одна транзакция (USDC)
  • Повторный Revoke → две транзакции батчем (DAI + bridged USDC)

Экономия газа: вместо трёх отдельных транзакций по ~$2.50 каждая — две транзакции ($2.50 + $4.10 батч). Итого $6.60 вместо $7.50.

Шаг 4: Подтверждение в MetaMask

Когда нажимаешь Revoke, происходит:

  1. De.Fi формирует транзакцию отзыва (approve(contract, 0))
  2. MetaMask показывает запрос на переключение сети (если нужно)
  3. Ты подтверждаешь транзакцию
  4. Ждёшь включения в блок (5—30 секунд в зависимости от сети)

Реальный пример из Ethereum:

  • Контракт: DEX Router (какой-то малоизвестный свап)
  • Апрувы: USDC, DAI
  • Комиссия за две транзакции: $9.40 (базовый fee 25 gwei)
  • Результат: убрали $220 из-под риска

Да, $9 — дорого. Но когда видишь контракт с delegatecall и возможностью upgrades, понимаешь: это страховка от потери $220.

Шаг 5: Обновление и проверка

После отзыва апрува контракт исчезает из списка не сразу. Нужно:

  • Нажать Refresh в интерфейсе De.Fi
  • Подождать повторного скана (15—30 секунд)
  • Убедиться, что контракт исчез или сумма риска уменьшилась

В моём кейсе:

  • Было: 96 контрактов, $1 132 риска
  • После отзыва первых трёх: 94 контракта, $826 риска
  • Разница: $306 вынесли из-под угрозы

Разбор реальных кейсов: какие контракты я отзываю всегда

Кейс 1: Aggregation Router (1inch, ParaSwap)

Проблема: Delegatecall vulnerability.

Эти контракты — агрегаторы DEX. Они разделяют ордер на части и исполняют через разные DEX (Uniswap, Curve, Balancer). Для этого используют delegatecall() — вызов кода другого контракта в контексте текущего.

Теоретический вектор атаки:

  1. Агрегатор обновляет логику (большинство upgradeable)
  2. Новая версия содержит бэкдор
  3. Через delegatecall активируется функция, которая вызывает transferFrom() на твоих токенах

Реальность: ни 1inch, ни ParaSwap не скамили юзеров. Но в 2023 году был кейс с китайским агрегатором, который через апдейт контракта выкачал $2.3M.

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

Кейс 2: Upgradeable Proxy контракты (Gamma Strategies Hypervisor)

Проблема: Контракт может установить комиссию за вывод до 100%.

Gamma Strategies — протокол автоматизированного LP на Uniswap V3. Их Hypervisor контракты управляют позициями. В коде прописано: владелец может установить withdrawFee до 100%.

Не означает, что Gamma так сделает — у них репутация. Но технически возможность есть.

Реальный кейс из моего скринкаста:

  • Контракт: Hypervisor в Arbitrum
  • Апрувы: WETH ($85), USDT ($42)
  • Я не использовал Gamma 4 месяца
  • Решение: отозвал оба апрува

Почему это важно: в январе 2025 малоизвестный LP-протокол на Base обновил контракт и установил 30% комиссию за вывод. Юзеры потеряли $180K, пока не подняли шум в Twitter.

Кейс 3: DEX Router с неясной репутацией

Проблема: Неизвестный контракт, малая ликвидность, потенциальный скам.

В моём списке был контракт просто с названием "Router" в сети Ethereum. De.Fi показал:

  • Delegatecall: Yes
  • Upgradeable: Yes
  • История эксплойтов: Нет данных (плохой знак)
  • Активы под риском: $97

Не помню, когда давал этот апрув. Возможно, тестировал какой-то малоизвестный DEX.

Решение: отозвал без раздумий. Комиссия $9, но сплю спокойнее.

Кейс 4: Momo Proxy (BSC)

Проблема: Шесть активных апрувов, upgradeable логика.

Этот контракт висел на моём тестовом кошельке с апрувами на шесть разных токенов в BSC. De.Fi классифицировал его как высокорискованный.

Процесс отзыва:

  • Первый клик Revoke → одна транзакция
  • Повторный клик → пакет из шести транзакций
  • Комиссия в BSC: ~$0.30 за весь батч (преимущество дешёвых сетей)
  • Результат: все шесть апрувов отозваны за 12 секунд

Это показывает силу De.Fi в дешёвых сетях. В Arbitrum или Polygon ты можешь зачистить 20 апрувов за $2—3.

Частые ошибки при отзыве разрешений

Ошибка 1: Отзывать всё подряд, включая активные позиции

Если у тебя открыта LP-позиция на Uniswap или стейкинг на Aave, отзыв апрува сломает функциональность. Ты не сможешь вывести средства без повторного апрува.

Как избежать: Перед отзывом проверь в интерфейсе протокола:

  • Есть ли открытые позиции?
  • Нужен ли апрув для вывода?

Если сомневаешься — открой позицию в протоколе, закрой её, потом отзывай апрув.

Ошибка 2: Игнорировать малые суммы

"Зачем отзывать апрув на $5 в DAI?" — думал я в 2023. Пока один эксплойт не показал: атакующие часто начинают с малых сумм, тестируя вектор. Потом переходят к крупным кошелькам.

Моя политика: отзываю всё, что не использую 2+ месяца, независимо от суммы.

Ошибка 3: Не обновлять скан после отзыва

De.Fi не обновляется автоматически. После каждого батча отзывов нажимаешь Refresh вручную. Иначе видишь устаревшую картину.

Ошибка 4: Забывать про ERC-721 и ERC-1155

De.Fi сканирует и NFT-апрувы (функции setApprovalForAll). Если ты давал разрешение маркетплейсу на управление всей коллекцией, это тоже вектор риска.

Пример: в 2024 был эксплойт OpenSea-клона, который через setApprovalForAll передал NFT на левый адрес. Юзеры потеряли Bored Apes.

Анализ контрактов через De.Fi Scanner: детектив-режим

De.Fi не только отзывает — он помогает понять, что за контракт перед тобой.

Что показывает Scanner

Когда кликаешь на контракт в списке, De.Fi раскрывает:

  • Тип уязвимости: Delegatecall, Upgradeable Proxy, Owner-controlled fees
  • Exploit Examples: если похожий контракт уже эксплуатировали, будет ссылка на разбор
  • Contract Info: адрес, дата создания, количество транзакций
  • Token Approvals: полный список токенов и лимиты

Реальный пример из скринкаста: Контракт: OptimizedTransparentUpgradeableProxy

  • Проблема: Upgradeable → логика может измениться
  • Exploit Example: ссылка на кейс DeFi100 (exit scam через upgrade)
  • Апрувы: bridged USDC ($220)

Клик на "Exploit Example" открывает статью, где разобран скам: протокол обновил контракт, добавил функцию rugPull(), вызвал её — $32M улетели.

Как я использую Scanner для исследования

Когда вижу незнакомый контракт:

  1. Копирую адрес контракта
  2. Проверяю на Etherscan/Arbiscan:
    • Verified код (если не verified — красный флаг)
    • Возраст контракта (если <3 месяцев — осторожность)
    • Количество holders (если <100 — подозрительно)
  3. Смотрю в De.Fi раздел "Exploit Examples"
  4. Гуглю название контракта + "exploit" / "hack"

Если хотя бы один пункт вызывает сомнения — отзываю апрув.

Экономика отзыва: когда комиссии оправданы

Сравнение стоимости по сетям (март 2026)

Сеть Стоимость 1 revoke Батч из 5 Время
Ethereum $3.50—12.00 $15—40 15 сек
Arbitrum $0.80—2.50 $3—8 5 сек
Optimism $0.60—2.00 $2—6 8 сек
Polygon $0.05—0.20 $0.20—0.60 3 сек
BSC $0.15—0.40 $0.50—1.20 4 сек
Base $0.10—0.30 $0.30—0.90 6 сек

Данные актуальны для gas price: ETH 25 gwei, ARB 0.1 gwei, средняя загрузка сетей.

Моя стратегия оптимизации расходов

В Ethereum:

  • Отзываю только контракты с риском >$200
  • Жду low gas (ночь по UTC, выходные)
  • Группирую отзывы — делаю раз в месяц батчем

В L2 (Arbitrum, Optimism, Base):

  • Отзываю всё с риском >$50
  • Не жду low gas, разница копеечная
  • Делаю сразу по мере обнаружения

В дешёвых сетях (Polygon, BSC):

  • Отзываю всё, даже $5
  • Комиссии настолько низкие, что можно делать каждую неделю

За последние 3 месяца я потратил на отзывы:

  • Ethereum: $47 (13 контрактов)
  • Arbitrum: $12 (28 контрактов)
  • Polygon: $1.80 (34 контракта)

Итого $60.80 за защиту активов на сумму $18 400. Это 0.33% — дешевле любой страховки.

Автоматизация: можно ли делегировать отзыв

Вопрос, который мне задают: "Можно ли автоматизировать ревок через бота?"

Технически — да. Можно написать скрипт на ethers.js, который:

  1. Сканирует кошелёк через Alchemy/Infura API
  2. Получает список апрувов
  3. Формирует транзакции отзыва
  4. Отправляет их через приватный ключ

Почему я не делаю:

  • Нужно хранить приватный ключ в скрипте (огромный риск)
  • Нет человеческого контроля — можно отозвать активную позицию
  • De.Fi уже достаточно быстр для мануальной работы

Компромисс: я настроил уведомления.

Через Dune Analytics создал дашборд, который отслеживает новые апрувы на моём кошельке. Каждый новый апрув → alert в Telegram. Раз в неделю захожу в De.Fi и чищу.

Продвинутые тактики: защита через multisig и hardware wallet

Multisig для крупных сумм

Если управляешь суммой >$50K, один кошелёк — плохая идея. Моя схема:

Hot wallet (MetaMask):

  • Максимум $5K для ежедневных DeFi операций
  • Еженедельный ревок всех апрувов через De.Fi
  • Активность: свапы, LP, тестирование протоколов

Cold wallet (Ledger):

  • Основная часть капитала
  • Подключаю только к проверенным протоколам (Aave, Uniswap, Curve)
  • Апрувы даю временные (не uint256.max, а точную сумму)
  • Отзыв сразу после использования

Gnosis Safe (multisig):

🎓 Научиться зарабатывать в DeFi — курс «DeFi-Гедонист» с практикой и поддержкой. Подробности в канале «Сергей Зиненко | DeFi-Гедонист».

  • Долгосрочные позиции (staking, LP на 6+ месяцев)
  • 2-of-3 подписи для любой транзакции
  • Апрувы даются только через батч-транзакции с таймлоком

Временные апрувы: недооценённая фича

Большинство юзеров дают бесконечный апрув (approve(contract, 2^256 - 1)). Это удобно — не нужно апрувить каждый раз. Но рискованно.

Альтернатива: точный апрув.

Пример:

  • Хочешь заswapать 1000 USDC на ETH через 1inch
  • Вместо бесконечного апрува даёшь approve(1inch, 1000)
  • Делаешь свап
  • Апрув автоматически "сгорает" (allowance = 0)

Реализация в MetaMask:

  1. Когда сайт просит апрув, MetaMask показывает "Edit Permission"
  2. Выбираешь "Custom Spend Limit"
  3. Вводишь точную сумму (например, 1000)
  4. Подтверждаешь

Недостаток: каждый свап требует нового апрува (+$0.50—3 комиссии). Но для крупных сумм это оправданно.

Чеклист цифровой гигиены: рутина на каждую неделю

Моя еженедельная процедура (каждое воскресенье, 15 минут):

1. Скан через De.Fi Shield

  • Подключаю все активные кошельки (у меня их 3)
  • Запускаю скан
  • Смотрю Total Risk и количество High Risk Contracts

2. Приоритизация

  • Отзываю всё с риском >$100
  • Отзываю контракты с delegatecall, которые не использовал 2+ недели
  • Отзываю все незнакомые контракты

3. Проверка NFT

  • Перехожу в раздел NFT approvals
  • Отзываю setApprovalForAll для неиспользуемых маркетплейсов
  • Оставляю только OpenSea и Blur (если торгую)

4. Документация

  • Записываю в Obsidian, какие контракты отозвал
  • Фиксирую суммы комиссий
  • Отмечаю протоколы, которые больше не использую

Эта рутина за год сэкономила мне ~$0 (потому что эксплойтов не было), но дала спокойствие на $100K (столько прошло через мои кошельки).

Альтернативы De.Fi: когда использовать другие инструменты

Revoke.cash

Когда использую:

  • Нужен быстрый ревок одного апрува
  • Работаю с экзотичной сетью (например, Fantom, Moonbeam)
  • Хочу проверить апрувы чужого кошелька (De.Fi требует подключения)

Минус: нет анализа рисков, нужно самому оценивать опасность контракта.

Etherscan / Arbiscan

Когда использую:

  • Проверяю код конкретного контракта
  • Смотрю историю транзакций (De.Fi этого не показывает)
  • Проверяю verified статус

Минус: нужно знать адрес контракта, нет группировки по рискам.

Unrekt (за платной подпиской)

Когда использую:

  • Управляю >$100K и хочу enterprise-уровень мониторинга
  • Нужны алерты в реальном времени при подозрительной активности
  • Требуется compliance-отчётность

Минус: $99/месяц, избыточно для обычного юзера.

Для 90% кейсов De.Fi хватает с головой. Это мой основной инструмент с сентября 2024.

Реальная статистика: что я нашёл на своих кошельках

За последние 6 месяцев я прогнал через De.Fi три кошелька (один основной, два тестовых). Вот что обнаружил:

Основной кошелёк (активность 2.5 года):

  • Активные апрувы: 142
  • High Risk: 67 (47%)
  • Total Risk: $4 830
  • Отозвал: 58 контрактов
  • Комиссии на отзыв: $38

Тестовый кошелёк #1 (активность 8 месяцев, из скринкаста):

  • Активные апрувы: 96
  • High Risk: 96 (100% — потому что только тестирую новые протоколы)
  • Total Risk: $1 132
  • Отозвал: 72 контракта
  • Комиссии: $18

Тестовый кошелёк #2 (старый, забытый):

  • Активные апрувы: 203
  • High Risk: 184 (91%)
  • Total Risk: $0 (все токены вывел год назад, но апрувы остались)
  • Отозвал: все 203
  • Комиссии: $4.50 (всё в Polygon и BSC)

Самая шокирующая находка: на третьем кошельке висели апрувы к 11 контрактам, которые уже не существуют (протоколы закрылись). Но формально апрув оставался валидным.

Частые вопросы от учеников

"Если я отозвал апрув, а потом захочу снова использовать протокол?"

Просто дашь апрув заново. Это займёт одну транзакцию (~$0.50—3 в зависимости от сети). Неудобно, зато безопасно.

Моя тактика: для протоколов, которые использую регулярно (>1 раз в неделю), оставляю апрув. Для остальных — отзываю.

"Может ли отзыв апрува сломать открытую позицию?"

Нет. Апрув даёт контракту право забрать твои токены. Если ты уже внёс токены в протокол (например, в LP или lending), они находятся в контракте. Отзыв апрува не влияет на них.

Но: отзыв апрува может помешать добавить ликвидность или вывести средства (если протокол требует апрув для вывода). Перед выводом придётся дать апрув заново.

"De.Fi показывает риск $500, но у меня на кошельке $10K. Почему?"

De.Fi считает только суммы, на которые есть активные апрувы. Если ты держишь $9.5K в токенах без апрувов (просто лежат на балансе), они не учитываются в Total Risk.

📢 Больше практических разборов — в канале «Сергей Зиненко | DeFi-Гедонист». Подписывайтесь, чтобы не пропустить.

Это правильно: без апрува контракт не может забрать токены.

"Я отозвал апрув, но контракт всё равно висит в De.Fi"

Два варианта:

  1. Не обновил страницу (нажми Refresh)
  2. У контракта остались апрувы на другие токены (разверни список и проверь)

Иногда De.Fi кэширует данные на 30—60 секунд. Просто подожди и обнови.

Что дальше

Цифровая гигиена — это не разовая акция, а привычка. Я научился не параноить по каждому апруву, но держу процесс под контролем.

Мои рекомендации:

  • Новичок: проверяй De.Fi раз в месяц, отзывай всё с риском >$100
  • Активный юзер: еженедельный скан, отзыв неиспользуемых контрактов
  • Крупные суммы: используй multisig + hardware wallet, апрувы только временные

В следующий раз расскажу, как анализировать смарт-контракты через De.Fi Scanner перед тем, как дать апрув — это вторая часть безопасности.

Подписывайся на мой Telegram канал Telegram-канал «DeFi-Гедонист» — там разбираю свежие эксплойты и делюсь тактиками защиты капитала в DeFi.

Храни ключи в холоде, а апрувы — под контролем.

FAQ

Как часто нужно отзывать разрешения смарт-контрактам?

Зависит от активности. Если ты пользуешься DeFi еженедельно, проверяй De.Fi Shield раз в 7—10 дней. Если редко (раз в месяц) — достаточно ежемесячной ревизии. Главное: отзывай апрувы к протоколам, которые не использовал 2+ месяца, независимо от суммы риска.

Сколько стоит отозвать разрешение через De.Fi?

Стоимость зависит от сети. В Ethereum: $3—12 за одну транзакцию, в Arbitrum/Optimism: $0.80—2.50, в Polygon/BSC: $0.05—0.40. De.Fi оптимизирует расходы через батчинг — группирует несколько отзывов в одну транзакцию, экономя до 40% комиссий.

Что такое delegatecall и почему это опасно?

Delegatecall — функция в Solidity, которая позволяет контракту A вызвать код контракта B, но выполнить его в контексте контракта A. Это создаёт уязвимость: если контракт B обновят (или он изначально злонамеренный), он получит доступ к балансам контракта A, включая твои апрувнутые токены. De.Fi помечает такие контракты как высокорискованные.

Можно ли потерять деньги, если отозвать апрув к активному протоколу?

Нет, потерять деньги нельзя. Отзыв апрува просто запрещает контракту в будущем забирать твои токены. Если токены уже находятся в протоколе (LP, стейкинг), они остаются там. Но ты не сможешь добавить ликвидность или (в редких случаях) вывести средства без повторного апрува.

Чем De.Fi лучше Revoke.cash для отзыва разрешений?

De.Fi автоматически сканирует все сети, анализирует риски каждого контракта (delegatecall, upgradeable логика), показывает историю эксплойтов и группирует транзакции в батчи. Revoke.cash — базовый инструмент без анализа рисков, требует ручного переключения между сетями. Для активных DeFi-юзеров De.Fi экономит время и деньги.