В чем отличие 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) - может быть очень опасным для невнимательных пользователей и как происходит скам?
- Подписываешь оффчейн-сообщение (подобно тому, как подписываешь swap на Uniswap Permit2)
- Злоумышленник отправляет ТРАНЗАКЦИЮ с твоей подписью и активирует этот permit на блокчейне. (то есть отсутствие газа = не защита, а наоборот: у жертвы меньше “триггеров подозрения”, поэтому в чатах жертв можно увидеть сообщения, да я никакую транзакцию не делал, просто зашел на сайт и подключил кошелек, на самом деле не просто подключил, а подписал как раз таки скамный Permit)
✅ 3. Permit2 (от Uniswap Labs) Это отдельный смарт-контракт («прокси»), который Uniswap придумали, чтобы решить проблему старых токенов и сэкономить газ.
- Ты даешь Один Глобальный Approve (обычно бесконечный) на контракт
Permit2. - Дальше Permit2 работает как управляющий: он позволяет использовать удобные бесплатные подписи даже для тех токенов, которые их не поддерживают (USDT, WETH).
- Срок годности: Подпись сама сгорает через 30 минут (или сколько укажешь).
- Пакетность: Одной подписью можно свапнуть сразу 5 разных монет.
Но главный принцип такой: 👉 Permit2 НЕ может тратить больше, чем ему позволяет обычный approve, который мы дали в первом шаге
Пример: даем approve на → 1000 USDC, Permit2 → ∞ USDC → фактический максимум = 1000 и больше потратить никак не получится, простыми словами approve всегда сильнее, чем Permit2 и если ты сделаешь revoke Approve у Permit2 , то ВСЕ Permit2 разрешения сразу теряют силу никто не сможет списать ваши токены, даже если смарт-контрат подвергся эксплоиту, вся система ”обесточена” - это абсолютный kill-switch для безопасности.
☠️ Главный риск: Ложное чувство безопасности
Многие думают: "Подпись Permit2 имеет срок действия (например, 30 минут), значит хакер не успеет украсть всё за это время". Это фатальная ошибка.
- В пункте 1 ты уже дал бесконечный доступ контракту Permit2 к своим токенам.
- Хакер подсовывает тебе фейковое окно подписи.
- Ты подписываешь.
- Хакер мгновенно (в ту же секунду) использует твою подпись, чтобы забрать деньги через 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 канал будет лучшей благодарностью!