Только в образовательных целях; не является инвестиционной рекомендацией. Инвестиции могут привести к убыткам.
Краткий ответ
Авторизация кошелька, или одобрение токена, — allowance от владельца одному адресу spender. В ERC-20 approve(spender, amount) записывает её, а transferFrom расходует остаток. Приватный ключ и другие токены не передаются. Одобрение меняет состояние, а входная подпись обычно off-chain. Permit ERC-2612 — подписанные данные для создания allowance без газа владельца, но это всё равно разрешение. ETH не использует ERC-20 allowance. Проверяйте токен, spender, сумму, срок и сеть; подключение сайта не даёт права тратить.
Завершение этой проверки не доказывает безопасность актива, транзакции или системы.
Как это работает
- Пользователь отправляет approve; 0 означает отсутствие остатка, большое значение показывается как безлимитное.
- Spender позже вызывает transferFrom; контракт проверяет баланс и allowance, переводит токены и обычно уменьшает allowance.
- Изменение — переход состояния on-chain; замена положительных значений может конкурировать в mempool, поэтому при необходимости используйте подтверждённый ноль сначала.
- Permit ERC-2612 — подписанное сообщение: проверьте токен, chain ID, nonce, deadline, spender и сумму, так как его может отправить другой.
- Одобряйте только проверенный spender и нужную сумму, симулируйте вызов, сверяйте receipt, события, баланс и allowance. Для отзыва отправьте 0 в правильной сети; подтверждённый перевод не отменяется.
Пример
У Алисы 100 USDC, и она одобрила проверенный роутер на 40. Он может потратить максимум 40 USDC, но не ETH и не другой токен; после 15 остаётся 25. Безлимитное разрешение охватывает будущие пополнения, поэтому нужно проверить контракт, выбрать конечную сумму и отправить approve(router, 0).
Риски
- Злонамеренный или обновлённый spender может использовать все токены allowance.
- Безлимитное одобрение охватывает будущие пополнения.
- Ошибки сети, контракта, адреса, десятичных знаков или calldata скрывают опасный запрос.
- Ожидающие изменение или отзыв могут конкурировать с transferFrom; ноль не отменяет выполненный перевод.
- Permit-подпись можно отправить позже; отключение сайта её не аннулирует.
- Нестандартные, комиссионные, rebasing, приостановленные или callback-токены ведут себя иначе; проверьте итоговое состояние.
Распространённые заблуждения
- «Подключение кошелька даёт право тратить». Полномочие возникает из approval, permit или подтверждённой транзакции.
- «Подпись без газа безопасна». Релейер может отправить её позже.
- «Отключение сайта отзывает approval». Подключение и on-chain allowance различны.
- «Безлимит позволяет сразу забрать всё». Нужны вызов, баланс и совместимый код, но лимита суммы нет.
- «Успешная симуляция доказывает безопасность». Проверьте сеть, calldata, получателя, код, receipt и балансы.
Связанные темы
- Токены ERC-20
- Гонка одобрений ERC-20
- Nonce и deadline ERC-2612
- Риск подписи Permit2
- Симуляция транзакции
Источники
- ERC-20: Token Standard - Ethereum Improvement Proposals (дата доступа: 2026-08-22)
- ERC-2612: Permit Extension for EIP-20 Signed Approvals - Ethereum Improvement Proposals (дата доступа: 2026-08-22)
- Ethereum security and scam prevention - Ethereum.org (дата доступа: 2026-08-22)