Як відкликати дозволи на токени в Ethereum та інших EVM-мережах
Дізнайтеся покроково, як відкликати дозволи в Ethereum та інших EVM-мережах, які дозволи небезпечні, скільки коштує відкликання і чого воно не може скасувати.
Щоб відкликати дозволи на токени в Ethereum або іншій EVM-мережі, підключіть гаманець до надійного сервісу перевірки дозволів (наприклад, Revoke.cash або інструмента перевірки дозволів в оглядачі блоків), виберіть мережу, перегляньте, які контракти можуть витрачати ваші токени, і надішліть транзакцію відкликання для тих, якими ви більше не користуєтеся або яких не впізнаєте. Кожне відкликання — це ончейн-транзакція, яка встановлює ліміт на нуль і коштує невелику комісію за газ.
Дозволи — один із ризиків самостійного зберігання, який найчастіше недооцінюють. Щоразу, коли ви торгуєте на децентралізованій біржі чи користуєтеся DeFi-застосунком, ви, найімовірніше, надаєте контракту право переміщувати ваші токени. Ці права залишаються активними безстроково. Якщо згодом цей контракт зламають або якщо ви схвалили шкідливий контракт, ваші токени можуть вивести без жодного нового підпису з вашого боку.
Як працюють дозволи на токени
Токени ERC-20 — стандарт більшості токенів в Ethereum — містять функцію approve. Коли ви схвалюєте контракт, ви встановлюєте ліміт (allowance): максимальну кількість цього токена, яку контракт може переказати з вашої адреси.
Багато застосунків запитують необмежений ліміт, щоб вам не доводилося схвалювати знову перед кожною угодою. Це зручно, але означає, що контракт може будь-коли — зараз чи в майбутньому — перемістити весь ваш баланс цього токена.
З NFT усе схоже. Функція setApprovalForAll дає оператору право переміщувати кожен NFT із колекції, яка вам належить, тому NFT-дрейнери полюють саме на неї.
Є й новіша схема — підписи permit. Деякі токени та системи (зокрема Permit2 від Uniswap) дають змогу надати ліміт, підписавши офчейн-повідомлення замість надсилання транзакції. Такі підписи виглядають нешкідливо, але можуть дозволяти перекази. Наша стаття про ice phishing і підписи permit розповідає про цей ризик.
Покроково: як відкликати дозволи
- 1Відкрийте надійний інструмент напряму. Введіть адресу вручну або скористайтеся закладкою. Відомі варіанти — Revoke.cash та інструмент перевірки дозволів на токени в Etherscan та інших оглядачах. Існують підроблені сайти для «відкликання», тож ніколи не переходьте за посиланнями з особистих повідомлень чи реклами.
- 2Підключіть гаманець або вставте свою адресу. Вставивши адресу, можна переглянути дозволи без підключення. Підключатися потрібно лише для надсилання транзакцій відкликання.
- 3Виберіть мережу. Дозволи діють у межах однієї мережі. Перевірте Ethereum, а потім кожну мережу, якою користуєтеся, наприклад Arbitrum, Optimism, Base, Polygon чи BNB Smart Chain.
- 4Перегляньте список. Для кожного дозволу ви побачите токен, контракт, що отримав право витрачання, розмір ліміту й часто дату надання.
- 5Визначте, що відкликати. Насамперед займіться необмеженими лімітами, незнайомими контрактами, застосунками, якими більше не користуєтеся, і будь-якими контрактами, пов’язаними з відомим зламом.
- 6Натисніть «відкликати» й підтвердьте в гаманці. Прочитайте запит гаманця: це має бути виклик
approve, що встановлює ліміт на нуль (або, для NFT, викликsetApprovalForAllзі значенням false). - 7Повторіть для кожної мережі. Потім оновіть сторінку, щоб переконатися, що дозволи зникли.
Які дозволи відкликати насамперед
| Тип дозволу | Рівень ризику | Дія |
|---|---|---|
| Необмежений ліміт для невідомого контракту | Високий | Відкликати негайно |
setApprovalForAll для цінної колекції NFT | Високий | Відкликати, якщо ви зараз не виставляєте NFT на продаж |
| Необмежений ліміт для застосунку, яким ви більше не користуєтеся | Середній | Відкликати |
| Обмежений ліміт для надійного застосунку, яким ви часто користуєтеся | Низький | Залишити або зменшити |
| Дозвіл для контракту, пов’язаного зі зламом | Високий | Відкликати негайно |
Чого відкликання зробити не може
Відкликання — це профілактика, а не лікування. Воно не зможе:
- Повернути вже переказані токени.
- Захистити вас, якщо вашу сид-фразу чи приватний ключ викрадено. У такому разі зловмисник може підписати будь-що; переведіть решту активів у новий гаманець, як описано в статті що робити негайно, якщо ваш гаманець скомпрометовано.
- Надійно скасувати вже надані офчейн-підписи permit. Вони мають власні правила терміну дії та nonce, тож якщо ви підписали підозрілий permit, найбезпечніше — перевести відповідні токени в новий гаманець.
Як зменшити ризик дозволів надалі
- Встановлюйте власні ліміти. Багато гаманців дозволяють змінити суму в запиті на схвалення. Схвалюйте лише те, що збираєтеся витратити.
- Використовуйте окремий гаманець для експериментів. Майте одноразовий гаманець для нових застосунків, мінтів та аірдропів, а довгострокові кошти зберігайте в гаманці, який ніколи не підключається до незнайомих сайтів.
- Читайте кожен запит на підпис. Якщо сайт просить підписати повідомлення, якого ви не розумієте, зупиніться.
- Регулярно перевіряйте дозволи. Раз на кілька місяців і після того, як спробували новий застосунок.
- Перевіряйте й підключені сайти. Підключення і дозвіл — різні речі; див. дозволи гаманця та підключені сайти.
Поширені помилки
- Використовувати підроблений інструмент відкликання, знайдений через пошукову рекламу чи відповідь у соцмережах.
- Відкликати дозволи в Ethereum, але забути про той самий гаманець у мережах другого рівня.
- Вважати, що відключення сайту в гаманці видаляє його дозволи. Це не так.
- Ігнорувати малоцінні токени: зловмисники часто вигрібають усе, до чого можуть дотягнутися.
Підсумок
Дозволи на токени — це постійні права, які продовжують діяти ще довго після того, як ви їх надали. Перевіряти їх безкоштовно, відкликати дешево, а регулярна перевірка закриває один із найпоширеніших шляхів, якими користуються дрейнери. Зробіть це частиною своєї рутини, схвалюйте лише необхідне й зберігайте основні активи в гаманці, який майже нічого не підписує.
Поширені запитання
Що таке дозвіл на токен?
Дозвіл на токен — це право, яке ви надаєте смарт-контракту переміщувати певний токен із вашого гаманця в межах встановленої суми. Децентралізованим біржам та іншим DeFi-застосункам потрібні дозволи, щоб працювати. Дозвіл залишається активним, доки ви його не відкличете або доки ліміт не буде вичерпано, навіть якщо ви більше ніколи не відвідаєте застосунок.
Чи потрібно платити газ за відкликання дозволу?
Так. Відкликання — це ончейн-транзакція, яка встановлює ліміт на нуль, тож ви сплачуєте звичайну комісію мережі. В основній мережі Ethereum вона може бути відчутною; у мережах другого рівня зазвичай невелика. Перегляд дозволів безкоштовний.
Чи поверне відкликання дозволу вкрадені токени?
Ні. Відкликання лише запобігає майбутнім переказам цим контрактом. Уже виведені токени повернути відкликанням неможливо. Якщо вашу сид-фразу чи приватний ключ було розкрито, одного відкликання недостатньо; переведіть решту коштів у новий гаманець.
Як часто слід перевіряти дозволи на токени?
Добра звичка — переглядати їх раз на кілька місяців і після кожної сесії, коли ви взаємодіяли з новим або незнайомим застосунком. Також перевірте їх негайно, якщо підозрюєте, що підписали щось шкідливе.
