Почему permit-подпись может открыть доступ к токенам без approve?
Permit-подпись даёт контракту право тратить токены без отдельной on-chain транзакции approve. Пользователь подписывает сообщение, а relayer позже передаёт его токен-контракту, устанавливающему allowance. Это экономит шаг и gas, но опасная подпись способна открыть крупный лимит злоумышленнику, даже если окно кошелька выглядит как бесплатный вход или проверка аккаунта.
Permit-подпись даёт контракту право тратить токены без отдельной on-chain транзакции approve. Пользователь подписывает сообщение, а relayer позже передаёт его токен-контракту, устанавливающему allowance. Это экономит шаг и gas, но опасная подпись способна открыть крупный лимит злоумышленнику, даже если окно кошелька выглядит как бесплатный вход или проверка аккаунта.
Как permit устанавливает allowance?
Стандарт ERC-2612 добавляет функцию permit(owner, spender, value, deadline, signature). Контракт проверяет EIP-712 подпись, срок и nonce, затем записывает allowance и создаёт Approval event. Газ за отправку может заплатить relayer, поэтому владелец токенов не обязательно видит отдельную транзакцию approve в момент подписания.
Почему злоумышленники используют подпись?
Фишинговый сайт может назвать запрос авторизацией, верификацией или claim, хотя внутри указаны адрес spender и высокий лимит. После получения подписи атакующий отправляет permit и вызывает transferFrom. Если кошелёк показывает данные непонятно или сокращённо, пользователь может подтвердить полномочие, не отправляя монету и ошибочно считая действие безопасным.
Что проверить в окне кошелька?
Нужно увидеть домен подписи, сеть, адрес token contract, spender, value, deadline и назначение запроса. Unlimited value и длинный срок требуют особенно ясного объяснения. Открывайте dApp из сохранённого адреса, сверяйте contract в независимом explorer и отклоняйте blind signing. Для редкого взаимодействия безопаснее ограниченный allowance.
Где ограничения и риски?
Не все токены реализуют ERC-2612 одинаково, а Permit2 и собственные схемы имеют другие поля. Nonce не защищает от первого исполнения вредоносной подписи. Отзыв разрешения помогает только до списания и требует on-chain операции. Аппаратный кошелёк защищает ключ, но не исправляет согласие владельца с опасным сообщением.
Какие ключевые выводы?
- Permit меняет allowance по подписи, а не через обычный approve от владельца.
- Relayer может отправить действительную подпись в сеть позже.
- Spender, value, deadline, chain и contract должны быть видны до подписи.
- Nonce защищает от повторного использования одного permit.
- Отзыв allowance после ошибки не возвращает уже списанные токены.
Источники
- ERC-2612
- Permit signature
- Allowance safety
Материал носит информационный характер и не является индивидуальной инвестиционной рекомендацией. Торговля на криптовалютном рынке связана с риском потери средств; результаты на исторических данных не гарантируют результатов в будущем.
Проверьте стратегию на своих данных
ACARO - терминал, который исполняет стратегию на вашем собственном биржевом счёте. Подбор параметров и бэктест на истории входят в подписку.
Смотреть тарифы