Разрешение на токены (approval, или allowance) — транзакция, которой вы даёте смарт-контракту право переводить определённый токен из вашего кошелька в пределах некоторой суммы. Это необходимая часть многих операций со стандартом ERC-20 и подобными: например, когда вы меняете токены на децентрализованной бирже или подключаете кошелёк к Web3-сервису, контракт сначала просит разрешение.
Почему это вопрос безопасности
Разрешение остаётся в силе и после того, как вы покинули сайт. Многие интерфейсы по умолчанию просят безлимитное разрешение, чтобы не подтверждать каждый раз. Если контракт вредоносный или его позже взломают, он может забрать ваши токены без новой подписи. На этом и построены так называемые drainer-схемы: поддельный «airdrop», «бонус» или «подтверждение аккаунта» просит подписать транзакцию, которая на деле является разрешением для контракта злоумышленника.
Как с этим сталкивается игрок казино
- Обычный депозит в казино не требует разрешения. Вы отправляете токен на адрес казино обычным переводом. Если «депозит» просит подписать транзакцию approve, остановитесь и проверьте, где вы находитесь.
- Казино со входом через Web3 могут попросить подключить кошелёк и подписать сообщение. Подпись сообщения для входа — обычное дело; разрешение на токены для входа — нет.
- Подозрительные ссылки в соцсетях и чатах — главный источник вредоносных разрешений.
Как защититься
- Читайте в окне подтверждения кошелька, что именно подписываете. Слова «approve», «allowance», «setApprovalForAll» или «permit» означают разрешение.
- Если разрешение нужно, ограничьте сумму тем, что действительно будете использовать.
- Для игры используйте отдельный небольшой горячий кошелёк, а крупную сумму держите в холодном кошельке, который не подключается ни к одному сайту.
- Время от времени проверяйте и отзывайте старые разрешения. Для Ethereum это можно сделать, например, с помощью инструмента Etherscan для проверки разрешений; отзыв — тоже транзакция, и за неё платится комиссия за газ.
Если вы подписали не то разрешение
Немедленно отзовите разрешение и переведите оставшиеся токены в новый кошелёк, сид-фраза которого никогда не была в сети. Уже выведенные токены вернуть нельзя. Сообщите о случае в полицию и сохраните TXID. Безопасное поведение собрано в руководстве безопасность крипто-казино. Техническая справка: ethereum.org security.