August 19

Аппрувы (разрешения) в смарт-контрактах и (почти) все способы их отозвать

Ликбез и перевод

Для начала - небольшая вводная статья от самого MetaMask, а точнее - мой её вольный перевод.

О разрешениях (aka аппрувах)

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

Например, при использовании DEX (децентрализованной биржи) вам нужно будет подписать разрешение, которое позволит её смарт-контракту брать токены для совершения запрошенных вами сделок. Хотя это звучит рискованно, имейте в виду, что всегда нужно давать dAPPs хотя бы некоторую свободу действий. Если вы хотите использовать Web3, вам не удастся обойтись без них.

Отмена разрешений и отключение приложений: в чем разница?

Эти два процесса легко спутать, но они кардинально отличаются:

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

См. также: нашу ветку в Twitter о различиях между этими двумя действиями и нашу статью об одобрениях (для) токенов.

… В общем и целом - аппрув - крайне опасная, хотя и необходимая операция. Но это вполне сравнимо с поездкой на авто: без прав на автобане делать особо нечего, равно как ваш опыт вождения по скоростным трассам Германии может мало что дать в Индии или Таиланде.

Поэтому рассмотрим конкретные способы отзыва разрешений.

Способ №01. Эксплореры

Самый понятный и простой. Но есть и “но”:

  1. Эксплореры показывают, как правило, не все разрешения для всех смартов;
  2. Они ограничены по определению одной сетью.

Примеры:

Поскольку сетей уже сейчас десятки - не буду перечислять все, но скажу, что важно:

  • Проверять сами сканеры через официальную документацию проектов;
  • А также через доп. сервисы, такие как similarweb, чтобы понимать, что сервис имеет входящий трафик и т.д.

Способ №02. Специальные сервисы

Таковых довольно много, но разделить их можно на 2 части:

  1. Комбайны по работе с токенами;
  2. Специализированные утилиты отзыва разрешений.

Перечислю их общим списком, т.к. функционал в данном случае важнее критериев градации:

  • cointool.app - мой личный лидер, который имеет ряд явных преимуществ: большой выбор сетей и смарт-контрактов, а также функции массового отзыва разрешений (вызывается, конечно же, просто последовательно);
  • revoke.cash - ещё один известный ресурс, который работает с более чем двумя десятками сетей, включая тестнеты;
  • approved.zone - проект с минималистичным интерфейсом и схожим функционалом;
  • app.unrekt.net - альтернатива;
  • v3app.everrise.com/everrevoke - и ещё одна;
  • ethallowance.com - и отдельно для эфира;
  • de.fi - довольно молодой сервис-комбайн, который пытается во многом опередить cointool и аналоги.

Минусы подобного подхода очевидны:

  1. ресурсы могут быть взломаны через DNS-атаки и атаки смежного типа;
  2. они могут просто закрыться (как специализированный поддомен на Beefy).

И всё же, если сравнивать универсальность и лёгкость применения, то именно этот подход окажется самым простым и надёжным.

Способ №03. Глубинные познания

Никто не запретит вам делать отзывы без посредников. В целом это возможно, если вы владеете консолью и у вас есть нода Эфира и/или любого другого блокчейна. Но данный способ хоть и является самым безопасным, на самом деле требует нетривиальных подходов: как минимум, к поиску тех смарт-контрактов, с которыми было взаимодействие.

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

Способ №04. Кошельки

В первую очередь - мобильные, но в целом - разного рода:

  1. Мобильные;
  2. В виде аддонов (экстеншенов, расширений для браузеров);
  3. Десктопные.

Например, вы можете найти отзыв аппрувов в:

  • BitKeep (Bitget);
  • Rabby;
  • И многих других.

Здесь нужно понимать, что часто это кастодиальные кошельки или проприетарные (или то, или другое сразу), поэтому в целом их можно использовать как “горячие”, но не более того.

Способ №05. Смарт-комбайны

Можно было бы назвать смарт-кошельки, как раньше, но чтобы разграничить с п. 04, решил переназвать так. Перечислю, чтобы стало яснее:

  • DeBank;
  • Zapper;
  • Zerion;
  • Portfolio Metamask (всё же это куда более широкий набор функций, чем сам ММ);
  • Подобные.

При этом, и это - крайне важно (!), использовать напрямую их для отзыва можно не всегда, но вот как поиск подключенных dAPPs - вполне. К тому же, они сильно упрощают жизнь даже тем, кто выбрал непростой путь способа №03.

Способ №06. Иные

Да, есть и иные способы, о которых порой делаю публикации на t.me/web3news, но, скорее, их можно отнести или к редким, или даже экзотически-редким.

Дополнения

Также рекомендую изучить общие вопросы безопасности, связанные с аппрувами:

  1. forklog.com/exclusive/fishing-v-web3-kak-zashhitit-sebya-i-svoi-aktivy
  2. hub.forklog.com/bezopasnost-amp-web-3-0-chast-i-azy
  3. hub.forklog.com/bezopasnost-amp-web-3-0-chast-ii-primery-tsifrovyh-sledov
  4. hub.forklog.com/metamask-dlya-prodvinutyh-chast-ii-pogruzhaemsya-dalshe
  5. hub.forklog.com/metamask-dlya-prodvinutyh-chast-i-brauzernoe-rasshirenie
  6. hub.forklog.com/trezor-amp-metamask-zachem
  7. trezor.io/learn/a/revoke-smart-contracts-and-allowances

До!