Аппрувы (разрешения) в смарт-контрактах и (почти) все способы их отозвать
Ликбез и перевод
Для начала - небольшая вводная статья от самого MetaMask, а точнее - мой её вольный перевод.
О разрешениях (aka аппрувах)
Разрешения на смарт-контракты/токены, также называемые одобрениями, подразумевают, что вы разрешаете dAPPs-ам получать доступ и перемещать токены в вашем кошельке от вашего имени.
Например, при использовании DEX (децентрализованной биржи) вам нужно будет подписать разрешение, которое позволит её смарт-контракту брать токены для совершения запрошенных вами сделок. Хотя это звучит рискованно, имейте в виду, что всегда нужно давать dAPPs хотя бы некоторую свободу действий. Если вы хотите использовать Web3, вам не удастся обойтись без них.
Отмена разрешений и отключение приложений: в чем разница?
Эти два процесса легко спутать, но они кардинально отличаются:
- Отключение кошелька от dAPP подразумевает отмену разрешения на просмотр публичного адреса и баланса токенов, а также, в зависимости от того, на что вы изначально дали согласие, запрет на инициирование транзакций (но не на их выполнение) и просмотр прошлой активности.
- Отзыв одобрения/разрешения означает, что dAPP больше не может получить доступ к содержимому вашего кошелька и перемещать его.
См. также: нашу ветку в Twitter о различиях между этими двумя действиями и нашу статью об одобрениях (для) токенов.
… В общем и целом - аппрув - крайне опасная, хотя и необходимая операция. Но это вполне сравнимо с поездкой на авто: без прав на автобане делать особо нечего, равно как ваш опыт вождения по скоростным трассам Германии может мало что дать в Индии или Таиланде.
Поэтому рассмотрим конкретные способы отзыва разрешений.
Способ №01. Эксплореры
Самый понятный и простой. Но есть и “но”:
- Эксплореры показывают, как правило, не все разрешения для всех смартов;
- Они ограничены по определению одной сетью.
- L1:
- etherscan.io/tokenapprovalchecker
- bscscan.com/tokenapprovalchecker
- polygonscan.com/tokenapprovalchecker
- L2:
Поскольку сетей уже сейчас десятки - не буду перечислять все, но скажу, что важно:
- Проверять сами сканеры через официальную документацию проектов;
- А также через доп. сервисы, такие как similarweb, чтобы понимать, что сервис имеет входящий трафик и т.д.
Способ №02. Специальные сервисы
Таковых довольно много, но разделить их можно на 2 части:
Перечислю их общим списком, т.к. функционал в данном случае важнее критериев градации:
- cointool.app - мой личный лидер, который имеет ряд явных преимуществ: большой выбор сетей и смарт-контрактов, а также функции массового отзыва разрешений (вызывается, конечно же, просто последовательно);
- revoke.cash - ещё один известный ресурс, который работает с более чем двумя десятками сетей, включая тестнеты;
- approved.zone - проект с минималистичным интерфейсом и схожим функционалом;
- app.unrekt.net - альтернатива;
- v3app.everrise.com/everrevoke - и ещё одна;
- ethallowance.com - и отдельно для эфира;
- de.fi - довольно молодой сервис-комбайн, который пытается во многом опередить cointool и аналоги.
Минусы подобного подхода очевидны:
- ресурсы могут быть взломаны через DNS-атаки и атаки смежного типа;
- они могут просто закрыться (как специализированный поддомен на Beefy).
И всё же, если сравнивать универсальность и лёгкость применения, то именно этот подход окажется самым простым и надёжным.
Способ №03. Глубинные познания
Никто не запретит вам делать отзывы без посредников. В целом это возможно, если вы владеете консолью и у вас есть нода Эфира и/или любого другого блокчейна. Но данный способ хоть и является самым безопасным, на самом деле требует нетривиальных подходов: как минимум, к поиску тех смарт-контрактов, с которыми было взаимодействие.
Ведь спящие фейк-смарты существуют, а время жизни аппрува по умолчанию “всегда”. В общем, этот способ отметить нужно, но применять его на практике могут те, кто и без подобных статей справится.
Способ №04. Кошельки
В первую очередь - мобильные, но в целом - разного рода:
Например, вы можете найти отзыв аппрувов в:
Здесь нужно понимать, что часто это кастодиальные кошельки или проприетарные (или то, или другое сразу), поэтому в целом их можно использовать как “горячие”, но не более того.
Способ №05. Смарт-комбайны
Можно было бы назвать смарт-кошельки, как раньше, но чтобы разграничить с п. 04, решил переназвать так. Перечислю, чтобы стало яснее:
- DeBank;
- Zapper;
- Zerion;
- Portfolio Metamask (всё же это куда более широкий набор функций, чем сам ММ);
- Подобные.
При этом, и это - крайне важно (!), использовать напрямую их для отзыва можно не всегда, но вот как поиск подключенных dAPPs - вполне. К тому же, они сильно упрощают жизнь даже тем, кто выбрал непростой путь способа №03.
Способ №06. Иные
Да, есть и иные способы, о которых порой делаю публикации на t.me/web3news, но, скорее, их можно отнести или к редким, или даже экзотически-редким.
Дополнения
Также рекомендую изучить общие вопросы безопасности, связанные с аппрувами:
- forklog.com/exclusive/fishing-v-web3-kak-zashhitit-sebya-i-svoi-aktivy
- hub.forklog.com/bezopasnost-amp-web-3-0-chast-i-azy
- hub.forklog.com/bezopasnost-amp-web-3-0-chast-ii-primery-tsifrovyh-sledov
- hub.forklog.com/metamask-dlya-prodvinutyh-chast-ii-pogruzhaemsya-dalshe
- hub.forklog.com/metamask-dlya-prodvinutyh-chast-i-brauzernoe-rasshirenie
- hub.forklog.com/trezor-amp-metamask-zachem
- trezor.io/learn/a/revoke-smart-contracts-and-allowances