Схвалення токенів ERC-20: що означає ліміт витрат
Дізнайтеся, хто надає дозвіл на витрати ERC-20, що він дозволяє та чим відрізняється від підключення гаманця або завершеного обміну.
Оновлено:
Головне
- Ліміт витрат ERC-20 — це дозвіл власника токенів визначеному витрачальнику використовувати певну суму.
- Схвалення відокремлене від переказу чи обміну; для переміщення токенів потрібна окрема операція.
- Відключення сайту не скасовує ліміт витрат у блокчейні; для завершеного відкликання потрібна транзакція в блокчейні.
Схвалення токена ERC-20 — це дозвіл визначеному витрачальнику використовувати токени власника в межах установленого ліміту. Це не те саме, що підключити гаманець до застосунку, і саме по собі воно не виконує переказ чи обмін. Розуміння цих відмінностей допоможе розібратися із запитом на дозвіл і зрозуміти, що означає чинний ліміт витрат.
Чому застосунок може запитувати дозвіл
Застосунок, якому потрібен контракт для роботи з токенами ERC-20, може запросити ліміт витрат перед окремою операцією з цими токенами. Схвалення надає визначеному витрачальнику дозвіл на використання активів власника токенів. Це дозвіл, а не переміщення самих токенів.
Сприймайте запит як опис доступу: який токен використовується, кому буде дозволено його витрачати та яку суму дозволено. Не вважайте, що сама назва застосунку вказує, хто саме є витрачальником, або що запитаний дозвіл є доречним. Цей посібник пояснює терміни, але не рекомендує конкретного витрачальника й не закликає нічого авторизувати.
Власник, витрачальник і ліміт витрат
Власник — це обліковий запис, на токени якого поширюється дозвіл. Витрачальник — це обліковий запис або контракт, якому дозволено використовувати ці токени. Ліміт витрат — це сума, яку витрачальник має право використати з балансу власника в межах відповідного контракту токена.
Ці терміни описують зв’язок між власником і витрачальником для конкретного контракту токена. Функція ліміту витрат показує, який дозвіл для цього зв’язку ще діє. Ліміт можна встановити на певну суму; не вважайте, що кожне схвалення встановлює однакову суму або автоматично надає необмежений дозвіл. Фактичний дозвіл залежить від наданого схвалення та поведінки токена.
Схвалення — це не переказ і не обмін
У моделі ERC-20 схвалення, перевірка ліміту витрат і переміщення токенів від імені іншого облікового запису — це окремі операції. Схвалення надає дозвіл. Подальша операція переказу, наприклад transferFrom, є окремим механізмом переміщення токенів із використанням цього дозволу. Тому схвалення ліміту витрат не виконує автоматично запитаний обмін і не означає, що токени вже переміщено.
Ліміт витрат не є записом про те, що авторизований витрачальник використав усю дозволену суму. Він описує залишок дозволу. Схвалення може змінити значення ліміту, а новий виклик схвалення замінює попереднє значення. Поведінка токена й умови дозволу також мають значення, тож не вважайте всі токени чи запити однаковими.
Підключення гаманця й ліміт витрат — різні речі
Відключення сайту від гаманця змінює підключення, але саме по собі не скасовує ліміт витрат ERC-20, записаний у блокчейні. Чинний ліміт може залишатися актуальним, навіть якщо ви більше не відвідуєте застосунок. Тому відключення сайту не слід вважати підтвердженням того, що дозвіл на використання токенів скасовано.
Перевірка ліміту витрат і його відкликання — окремі дії, не пов’язані з відключенням. Відкликання змінює дозвіл у блокчейні лише після завершення відповідної транзакції. Зазвичай така транзакція потребує оплати газу мережі. Саме натискання кнопки на сайті не підтверджує, що дозвіл відкликано.
Що змінюється під час перевірки або відкликання
Перевірка ліміту витрат допоможе побачити токен, витрачальника та суму дозволу, записану в блокчейні. Відкликання змінює ліміт, але не скасовує вже здійснений переказ. Воно також не гарантує усунення всіх ризиків і не дає змоги скасувати попереднє переміщення токенів. Чинний широкий дозвіл може мати значення, якщо витрачальника або його контракт скомпрометовано. Це одна з причин, чому користувачі можуть хотіти розуміти, які дозволи залишаються активними.
У специфікації ERC-20 як спосіб зменшення ризиків на рівні клієнтського інтерфейсу розглядається встановлення ліміту на нуль перед заданням іншої суми. Це не універсальний спосіб відновлення, а поведінка може відрізнятися залежно від токена. Зважайте на вартість газу мережі й перевіряйте, чи завершилася потрібна зміна в блокчейні. Про інші теми NefiSwap читайте в блозі.
Короткі відповіді
Чи виконує схвалення ERC-20 обмін?
Ні. Воно надає витрачальнику дозвіл використовувати токени в межах ліміту. Для переміщення токенів потрібна окрема операція.
Чи скасовує відключення гаманця від сайту ліміт витрат токенів?
Ні. Відключення змінює підключення гаманця, а не ліміт у блокчейні. Відкликання — це окрема зміна в блокчейні.
Чи може відкликання ліміту витрат скасувати переказ?
Ні. Відкликання змінює дозвіл, але не скасовує вже здійснений переказ.
Джерела
- Ethereum ERC specification: ERC-20: Token Standard
- MetaMask: How to revoke smart contract allowances/token approvals
- OpenSea: How can I revoke token approvals and permissions on Ethereum?
This is NefiSwap's own summary of public reporting, prepared with automation. It is not financial advice.
Пов’язані статті
Ethereum
Комісії за газ в Ethereum: як читати комісію перед транзакцією
Дізнайтеся, як поєднуються використаний газ, ліміт газу та комісія за одиницю, і чому попередня оцінка може відрізнятися від комісії, записаної після виконання.
На основі публікацій ethereum.org, Etherscan, MetaMask
Читати статтю