You need to enable JavaScript to run this app.
Bankless Academy

Управление разрешениями на токены

Защитите кошелёк от нежелательных действий смарт-контрактов.
Начать урок

Главное

  • Разрешения на токены это права, выданные смарт-контрактам, чтобы они тратили токены из кошелька без отдельного подтверждения каждый раз.

  • Если пользователь не знает о выданных правах, ими могут воспользоваться злоумышленники.

  • Инструменты вроде Revoke.cash позволяют легко проверить и отозвать разрешения на токены.

Введение

DeFi отдаёт пользователю контроль над активами, включая приватные ключи, и даёт невиданную власть над собственными деньгами. Но чем больше власть, тем больше ответственность: заботиться о сохранности активов приходится самому.

Пользователям DeFi стоит знать о четырёх частых видах мошенничества:

  • Кража сид-фразы: злоумышленники пытаются выманить сид-фразу, чтобы без спроса добраться до денег. С вашей сид-фразой атакующий выведет всё и будет повторять это каждый раз, когда вы пополните кошелёк. Восстановиться здесь невозможно, единственный выход это завести совершенно новый кошелёк с новой сид-фразой.

  • Прямые переводы ETH: мошенники прячут перевод ETH за вызовом функции, например под именем «Security Update». Старый способ с сырой подписью из MetaMask убрали, поэтому современные фишинговые наборы используют обычные с виду запросы подписи в расчёте, что вы подпишете, не читая, что показывает кошелёк. Попались на такое, и деньги не вернуть, но кошельком дальше можно пользоваться безопасно.

  • Объявления на маркетплейсах NFT: остерегайтесь поддельных объявлений и вредоносных контрактов, которые используют разрешения, выданные площадкам вроде OpenSea. Мошенники могут подсунуть на подпись офчейн-сообщение, которое выставит ваши одобренные NFT на продажу, причём никакой транзакции с токеном не произойдёт.

  • Разрешения на токены: атакующие могут подменить права и добраться до большей суммы, чем вы одобрили. «Одобрения» (approvals) это транзакции в блокчейне, дающие доступ к вашим токенам или NFT. «Разрешения» (permits) дают такой же доступ, но требуют лишь офчейн-подписи без газа. Uniswap и большинство современных торговых приложений работают через эту систему (она называется Permit2). Подписи permit не видны как одобрения в блокчейне, пока их не используют, и у них может быть срок действия. Проверить и отменить их можно во вкладке «Signatures» на Revoke.cash.

    Смарт-контракты набирают популярность, и разрешения на токены нужны, чтобы доверенные контракты проводили транзакции, не получая доступ к приватным ключам. Разрешения позволяют dApp автоматически перемещать токены в вашем кошельке от вашего имени. Это удобно и быстро, но открывает пользователя для мошенничества и доступа без спроса.

В этой статье мы разберём разрешения на токены и покажем созданный сообществом инструмент для управления ими.

Разрешения на токены: понять, настроить, обезопасить

Разрешения на токены это права, выданные смарт-контрактам заранее, чтобы они могли тратить токены из кошелька. Они нужны, чтобы не подтверждать каждый прямой перевод активов отдельно. Но при злоупотреблении разрешения на токены становятся дырой в защите невнимательного пользователя. Поэтому пользователям DeFi важно быть осторожными, разбираться в вопросах безопасности и понимать, как разрешения на токены работают на самом деле.

Выдача прав стороннему контракту состоит из двух шагов:

  1. Подключение кошелька: подключая кошелёк к dApp, вы просто сообщаете его интерфейсу свой адрес, чтобы приложение показало балансы и активность. Само подключение не даёт никаких прав в блокчейне.

  2. Одобрение токена: чтобы работать с dApp, вы затем одобряете его смарт-контракту право перемещать определённые токены от вашего имени. Именно этот шаг даёт реальную возможность тратить.

Управляя разрешениями заранее, пользователь может быть уверен, что ни один контракт не снимет с кошелька больше указанной суммы. К счастью, сообщество создало инструменты, которые дают пользователям DeFi уверенность и спокойствие.

Пошаговая инструкция: Revoke.cash

Revoke.cash позволяет легко управлять разрешениями на токены через простой сайт, где видно и удобно отслеживать разрешения, выданные разным dApp. Разберём по шагам, как этим мощным инструментом сообщества защитить активы и вернуть контроль над кошельком.

1. Подключите кошелёк:

Чтобы начать отзыв разрешений, откройте Revoke.cash и нажмите «Connect Wallet» в правом верхнем углу. Можно и просто ввести публичный адрес кошелька в строку поиска. Когда загрузка закончится, вы увидите список всех своих одобрений токенов в этой сети.

2. Изучите разрешения:

После подключения кошелька можно рассмотреть выданные одобрения. Их можно сортировать, фильтровать и искать по адресу того, кому разрешено тратить. Сортировка «Newest to Oldest» особенно полезна, если вы подозреваете недавнее вредоносное одобрение. Пользуйтесь сортировкой и фильтрами, чтобы увидеть общую картину выданных разрешений. Разрешения выдаются отдельно в каждой сети, поэтому переключайте сеть и повторяйте проверку для каждой, которой пользуетесь.

3. Отзовите ненужные разрешения:

Найдя одобрения, которые хотите отозвать, просто нажмите кнопку «Revoke» рядом с каждым. При желании можно изменить сумму одобрения: нажмите на карандаш рядом с суммой, если разрешение ещё понадобится, но риск хочется снизить.

Отозвать или уменьшить разрешение на токены стоит, если:

  1. Недавно развёрнутый смарт-контракт взломали, и он создал уязвимость в децентрализованной бирже, которой вы регулярно пользуетесь.

    В апреле 2023 года похожий взлом случился с популярной DEX SushiSwap: у пользователей украли около 3,5 миллиона долларов. Те, кто не отозвал разрешения на токены, оставались под угрозой.

  2. Вредоносное предложение по управлению обновляет несколько контрактов, чтобы вывести деньги пользователей.

    Более 2,5 миллиона долларов активов пострадали, когда протокол DeFi Atlantis Loans в сети BNB исполнил предложение по управлению, нацеленное сразу на несколько контрактов. Те, кто ограничивал сумму одобрений, снизили риск полного опустошения кошелька.

Не забудьте про делегирования

После обновления Pectra в сети Ethereum (май 2025 года) проверять стоит не только разрешения. Новая возможность кошельков (EIP-7702) позволяет кошельку делегировать работу дополнительному коду. Отсюда удобства вроде пакетных транзакций, но отсюда же и новый трюк дренеров: одна вредоносная подпись установит код-«подметальщик», который мгновенно отправляет атакующему всё, что вы кладёте в кошелёк, а сид-фраза при этом никуда не утекает. В 2025 году исследователи из Wintermute обнаружили, что более 97% ранних делегирований кошельков вели к одному и тому же коду-подметальщику.

Revoke.cash показывает активные делегирования во вкладке «Delegations», но делегированием управляют не приложения, а сам кошелёк, поэтому ненужное делегирование отзывают внутри кошелька. В MetaMask откройте детали аккаунта и переключите его обратно на обычный аккаунт. Если вы никогда не переводили кошелёк в смарт-аккаунт, считайте любое найденное делегирование враждебным.


Пора укрепить оборону кошелька! Надеемся, вам понравился этот выпуск Справочника Исследователя: «Управление разрешениями на токены».

Не забудьте собрать эту запись, если хотите иметь свою копию под рукой в путешествиях или поддержать будущие материалы Bankless Academy. Счастливого пути, Исследователь!


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

Когда пользоваться Revoke.cash?

Заходите на Revoke.cash время от времени, особенно когда каким-то dApp вы не пользуетесь активно, и в первую очередь ради маркетплейсов NFT. Чем меньше одобрений, тем меньше риск потерять деньги из-за взлома, эксплойта или фишинга. Отсортировав одобрения по свежести, вы быстро найдёте подозрительные и отзовёте их, не дав ущербу вырасти.

Защитит ли меня отключение кошелька от эксплойтов с одобрениями?

Отключение кошелька от dApp не защищает ни от эксплойтов с одобрениями, ни от любых других. Выданные ранее одобрения токенов остаются активными и после отключения, потому что они записаны в блокчейне.

Как избежать эксплойтов с разрешениями на токены и похожих рисков?

Разумный подход к разрешениям на токены такой:

  • выдавайте разрешения только доверенным dApp.

  • время от времени пересматривайте разрешения на токены.

  • убирайте ненужные и подозрительные разрешения.

  • проверяйте, нет ли незнакомых делегирований кошелька.

  • следите за обновлениями безопасности в используемых dApp.

Присмотритесь и к сторонним инструментам, например к расширению для браузера от Revoke.cash: оно работает на опережение. Расширение предупредит, если вы собираетесь подписать что-то потенциально опасное, и защитит от фишинга и других вредоносных действий.

Можно ли вернуть деньги через Revoke.cash?

К сожалению, Revoke.cash не возвращает украденное. Это средство профилактики, которое снижает шанс стать жертвой эксплойта с одобрениями. Но если отозвать одобрения, через которые уводили деньги, дальнейшие кражи прекратятся.

Почему кошелёк опустошают каждый раз, когда я его пополняю?

В кошельке может работать «бот-подметальщик»: скрипт следит за скомпрометированным кошельком и мгновенно уводит любые новые поступления, прежде чем вы успеете среагировать. Одна причина это утёкшая сид-фраза. Тогда отзыв одобрений не поможет: бросьте кошелёк и заведите новый. Но не менее вероятная причина это вредоносное делегирование кошелька: код-подметальщик установили через подпись, которую у вас выманили, а сид-фраза при этом не утекала. Проверьте вкладку «Delegations» на Revoke.cash. Если найдёте незнакомое делегирование, отзовите его внутри кошелька (например, через детали аккаунта в MetaMask). Если делегирований нет, а деньги продолжают уходить, считайте сид-фразу скомпрометированной и переходите на новый кошелёк.


Автор

Marcus издаёт рассылку ENS DAO Newsletter. Он исследует, как излишек дохода от комиссий протокола может финансировать разработку на уровне приложений и другую инфраструктуру с открытым исходным кодом.

Редакторы

Tetranome руководит проектом в Bankless Academy и занимается пользовательским опытом, интерфейсом, дизайном и материалами.

Trewkat пишет и редактирует тексты в BanklessDAO. Ей интересно изучать криптовалюты и NFT, особенно то, как лучше всего рассказывать об этом другим.

Меценат

Эта статья без спонсора входит в бесплатное образование Bankless Academy. Соберите статью, чтобы поддержать будущие материалы!