Риск разрешений кошелька — возможность контракта или оператора перемещать токены после выдачи полномочия. Approval может оставаться активным после завершения обмена, минта или игровой операции, поэтому взломанный либо вредоносный получатель способен воспользоваться постоянным доступом позднее.
Различайте четыре похожих действия#
Фразу «подключить кошелёк» часто используют слишком широко, хотя на каждом этапе меняются полномочия.
| Действие | Обычный результат |
|---|---|
| Подключение | Передача публичного адреса и сведений о сети |
| Подпись сообщения | Подтверждение контроля либо авторизация структурированных данных — в зависимости от содержимого |
| Approve/Permit | Предоставление получателю права расходовать токен до указанного лимита |
| Перевод/обмен | Перемещение активов или исполнение логики контракта |
Подключение может снизить приватность без прямого перемещения токенов. Подпись бывает простой аутентификацией или мощным офчейн-разрешением. Ончейн-approval создаёт повторно используемый лимит. Читайте содержимое запроса, а не надпись на кнопке.
Лимит ERC-20 может пережить исходную транзакцию#
Многие токены требуют approval, прежде чем роутер или протокол сможет перевести их от имени пользователя. Для удобства интерфейс иногда запрашивает максимальный лимит. Ethereum.org предупреждает, что безлимитный доступ позволяет одобренному контракту потратить весь баланс данного токена.
Лимит связан с сочетанием токена, владельца, получателя и одной сети. Перемещение токенов не удаляет его. Если они вернутся позднее, получатель может сохранить полномочие.
Разрешения NFT и подписей устроены иначе#
NFT-контракт может выдать ApprovalForAll, позволяющий оператору переводить все предметы коллекции. Офчейн-permit разрешает расходы подписью и может не появляться как обычная транзакция approval до использования.
Экран typed data безопаснее нечитаемого hex лишь тогда, когда кошелёк корректно объясняет поля, а пользователь их проверяет. Знакомый домен не гарантирует безопасный запрос, если взломан интерфейс или аккаунт проекта.
Ограничивайте масштаб ущерба заранее#
Используйте отдельный кошелёк без долгосрочных активов. Проверяйте контракт по независимому источнику проекта, по возможности разрешайте конкретную сумму и отклоняйте неожиданные операторские права или смену владельца.
После разового действия проверьте и отзовите лимит. Отключение сайта удаляет локальную связь в интерфейсе, но не меняет состояние блокчейна.
Симуляция транзакции полезна, но является прогнозом по текущему состоянию и поддерживаемому декодированию. Она дополняет, а не заменяет проверку контракта, домена и полномочий.
Регулярно проверяйте разрешения#
Проводите аудит, когда:
- протокол сообщает об эксплойте или взломе интерфейса;
- вы перестали использовать приложение;
- у кошелька взаимодействий накопилось много разрешений;
- контракт обновлён или сменил владельца;
- появились необъяснимые операции либо запросы подписи.
В первую очередь проверяйте безлимитные approvals и неизвестных получателей, связанных с ценными балансами. Отзывайте через проверенный обозреватель или известный сервис и подтверждайте результат ончейн.
Часто задаваемые вопросы#
Даёт ли подключение доступ к токенам?
Обычно нет. Оно раскрывает публичный адрес и позволяет сайту запрашивать подписи. Для распоряжения токенами нужен соответствующий approval, permit или транзакция.
Можно ли снова использовать отозванное разрешение?
После подтверждённого отзыва этот лимит больше не должен разрешать расходы. Но может существовать новое или отдельное полномочие.
Всегда ли небольшой лимит безопасен?
Он ограничивает сумму по данному разрешению, но не доказывает подлинность контракта. Разрешённую сумму всё равно можно потерять.
Бывают ли разрешения в нескольких сетях?
Да. Проверяйте каждую сеть отдельно: один адрес может иметь разные лимиты в разных блокчейнах.
Источники#
- Ethereum.org: безопасность и предотвращение мошенничества
- Ethereum.org: отзыв доступа смарт-контракта
- Uniswap: что такое транзакция approval
- OWASP Smart Contract Security: основы UX-безопасности
Предупреждение о рисках: форматы полномочий различаются по стандартам токена, кошелькам и сетям. Перед подписью проверьте точное содержание запроса.
Редакционный стандарт
Материал носит образовательный характер и основан на источниках. Меры безопасности, правила бирж и правовые требования могут меняться — проверяйте важные шаги по официальным данным.