December 9

В чем отличие Approve от Permit? И что за магический Permit2 на Uniswap, где мы не можем указать сумму, которую хотим доверить смарт-контракту?


💪 Давайте разбираться!

В DeFi мы постоянно жмем кнопки, не глядя. Но 90% потерь случаются из-за непонимания, что именно мы подписываем.

Разберем три основных типа доступа к твоему EVM кошельку

✅ 1. Approve (Классика) Это база. Смарт-контракт не может трогать твои деньги без разрешения. Ты отправляешь транзакцию (платишь газ) и говоришь блокчейну: "Разрешаю этому контракту тратить мои 1000 токенов".

  • Минус: Платишь газ. Висит вечно, пока не отменишь (Revoke).
  • Риск: Если дал "бесконечный апрув" на скам-сайт — выведут всё
  • Тут обязательно следим за своими аппрувами и переодически ревокаем их в rabby или тут

✅ 2. Permit (ERC-2612) Это «Апрув без газа». Ты просто подписываешь сообщение в кошельке (бесплатно). Протокол сам отправляет эту подпись в блокчейн, и она превращается в обычный Approve.

  • Где работает: Современные токены (UNI, 1INCH) или обновленные (USDC, DAI и т д)
  • Почему при работе с USDT не встречается Permit?
    USDT — это «дед» крипты. Его контракт написан до появления стандарта Permit (2020 год). Tether консервативен и не обновляет код токена. Для USDT работает только старый добрый Approve за газ.

Почему Permit (ERC-2612) - может быть очень опасным для невнимательных пользователей и как происходит скам?

  1. Подписываешь оффчейн-сообщение (подобно тому, как подписываешь swap на Uniswap Permit2)
  2. Злоумышленник отправляет ТРАНЗАКЦИЮ с твоей подписью и активирует этот permit на блокчейне. (то есть отсутствие газа = не защита, а наоборот: у жертвы меньше “триггеров подозрения”, поэтому в чатах жертв можно увидеть сообщения, да я никакую транзакцию не делал, просто зашел на сайт и подключил кошелек, на самом деле не просто подключил, а подписал как раз таки скамный Permit)

✅ 3. Permit2 (от Uniswap Labs) Это отдельный смарт-контракт («прокси»), который Uniswap придумали, чтобы решить проблему старых токенов и сэкономить газ.

Approve
Permit2

⚙️ Как это работает:

  1. Ты даешь Один Глобальный Approve (обычно бесконечный) на контракт Permit2.
  2. Дальше Permit2 работает как управляющий: он позволяет использовать удобные бесплатные подписи даже для тех токенов, которые их не поддерживают (USDT, WETH).

В чем плюсы:

  • Срок годности: Подпись сама сгорает через 30 минут (или сколько укажешь).
  • Пакетность: Одной подписью можно свапнуть сразу 5 разных монет.

Но главный принцип такой: 👉 Permit2 НЕ может тратить больше, чем ему позволяет обычный approve, который мы дали в первом шаге

Пример: даем approve на → 1000 USDC, Permit2 → ∞ USDC → фактический максимум = 1000 и больше потратить никак не получится, простыми словами approve всегда сильнее, чем Permit2 и если ты сделаешь revoke Approve у Permit2 , то ВСЕ Permit2 разрешения сразу теряют силу никто не сможет списать ваши токены, даже если смарт-контрат подвергся эксплоиту, вся система ”обесточена” - это абсолютный kill-switch для безопасности.


☠️ Главный риск: Ложное чувство безопасности

Многие думают: "Подпись Permit2 имеет срок действия (например, 30 минут), значит хакер не успеет украсть всё за это время". Это фатальная ошибка.

  1. В пункте 1 ты уже дал бесконечный доступ контракту Permit2 к своим токенам.
  2. Хакер подсовывает тебе фейковое окно подписи.
  3. Ты подписываешь.
  4. Хакер мгновенно (в ту же секунду) использует твою подпись, чтобы забрать деньги через Permit2. Ему не нужно ждать окончания таймера.

Лимит времени защищает от "зависших" разрешений в будущем, но не спасает от мгновенной кражи в моменте.

💡 Кнопка «СТОП» Если ты сделаешь Revoke (отзовешь апрув) именно для контракта Permit2: → Контракт теряет доступ к кошельку. → ВСЕ твои активные подписи Permit2 мгновенно перестают работать.


📋 Чек-лист: Как читать то, что подписываешь?

Прежде чем нажать "Sign" или "Confirm":

Поставь правильный кошелек (Например, Rabby Wallet). Современные кошельки делают Симуляцию транзакции. Перед подписанием они покажут красным: "Вы отдаете 1000 USDC, а получаете 0". MetaMask тоже внедряет эту функцию, но Rabby пока информативнее.

Проверь Spender (Тратящий). Кто просит доступ?

Норма: Контракт Uniswap, 1inch или известный протокол.

Скам: Неизвестный личный адрес кошелька.

Сумма (Amount). Если меняешь 100$, а просят доступ к "Unlimited" (Бесконечность) на сомнительном сайте — это RED FLAG 🚩.

Адрес сайта. Сверяй URL. Скамеры часто меняют одну букву (например, uniswop.org).

P.S
Если вам понравилась данная статья, то подписка на мой Telegram канал будет лучшей благодарностью!