Что такое Permit и как он работает? Чем отличается от Approve?
Что такое Permit и как он работает? Чем отличается от Approve?
В мире криптовалют и децентрализованных приложений (DeFi) для управления токенами часто требуется подтверждение или разрешение на использование ваших средств. Для этого используются две основные операции: Approve (апрув) и Permit. Несмотря на то что обе они позволяют разрешить сторонним приложениям доступ к вашим токенам, их реализация и преимущества значительно различаются. В этой статье мы рассмотрим, что такое Permit, как он работает, и чем он отличается от традиционного Approve.
1. Что такое Approve?
Approve (апрув) — это операция, с помощью которой пользователь даёт разрешение смарт-контракту или децентрализованному приложению (DApp) на использование своих токенов. Эта операция используется во многих DeFi-протоколах, например, для обмена токенами на децентрализованных биржах, участия в стейкинге или фарминге ликвидности.
Как работает Approve?
- Дать разрешение: Когда вы хотите использовать свои токены в каком-то приложении, например, на децентрализованной бирже, вы сначала должны выполнить операцию approve. Это означает, что вы даёте смарт-контракту или приложению доступ к вашим токенам на определённую сумму. Например, вы даёте разрешение на использование 100 токенов.
- Подтверждение в кошельке: Когда вы подтверждаете approve в кошельке (например, MetaMask), ваши токены становятся доступными для смарт-контракта или приложения, но они не передаются — разрешение даётся только на использование этих токенов в дальнейшем.
- Выполнение операции: После того как разрешение получено, вы можете использовать свои токены для обмена, фарминга, стейкинга или других действий в приложении. Однако важно, что approve — это только разрешение, а не само выполнение действия.
2. Что такое Permit и как он работает?
Permit — это усовершенствованный механизм для предоставления разрешений на использование токенов, который был введён в некоторых современных приложениях. Главное преимущество Permit заключается в том, что он позволяет выполнить approve и саму операцию в одной транзакции, что экономит время и деньги.
Как работает Permit?
- Подписание разрешения: С помощью Permit пользователь подписывает специальное сообщение, которое даёт разрешение на использование токенов. Это сообщение подписывается с помощью приватного ключа пользователя, но при этом не требует отправки транзакции в блокчейн для подтверждения разрешения.
- Объединение транзакций: Вместо того чтобы сначала выполнить операцию approve, а затем инициировать саму транзакцию (например, перевести токены или обменять их), Permit позволяет выполнить оба действия в одном шаге. Смарт-контракт сразу получает разрешение на использование токенов и выполняет нужное действие — например, переводит токены или меняет их.
- Снижение затрат на газ: Поскольку не требуется выполнять две транзакции (одну для approve, другую для самого действия), Permit помогает сэкономить на комиссии за газ, что особенно важно на перегруженных блокчейнах, таких как Ethereum.
3. В чем отличие между Permit и Approve?
3.1 Процесс выполнения
- Approve требует двух отдельных транзакций:
- Первая транзакция — это операцию approve, в которой вы даёте разрешение на использование своих токенов.
- Вторая транзакция — это сама операция с токенами (например, перевод или обмен).
- Permit объединяет эти два шага в одну транзакцию, что позволяет сэкономить время и средства. Вы подписываете сообщение, которое одновременно даёт разрешение на использование токенов и выполняет действие с ними.
3.2 Экономия на газе
- При использовании Approve каждая операция требует оплаты комиссии за газ для каждой транзакции: одна для approve, другая — для выполнения действия.
- При использовании Permit экономится комиссия за газ, так как разрешение и действие выполняются в рамках одной транзакции.
3.3 Подписка и безопасность
- Approve требует от пользователя выполнения двух отдельных транзакций, что может быть неудобно и увеличивает риск ошибок или несанкционированного доступа. Например, если вы случайно дадите смарт-контракту разрешение на использование всех своих токенов, это может стать проблемой, если контракт окажется скомпрометированным.
- Permit требует подписания только одного сообщения, что уменьшает вероятность ошибок. Однако, как и в случае с approve, важно тщательно следить за тем, какие разрешения вы даёте, чтобы не рисковать своими средствами.
3.4 Поддержка токенов
- Approve поддерживается всеми токенами, поскольку это стандартная операция для токенов ERC-20.
- Permit работает только с токенами, которые поддерживают этот механизм, например, токенами с реализованным стандартом EIP-2612, который описывает возможность подписания разрешений.
4. Пример использования Permit и Approve
Предположим, вы хотите обменять токены на децентрализованной бирже (DEX), такой как Uniswap.
- Используя Approve:
- Сначала вы должны выполнить операцию approve, чтобы разрешить смарт-контракту DEX доступ к вашим токенам.
- Затем вы выполняете операцию обмена токенов, и это требует второй транзакции для подтверждения.
- Используя Permit:
Таким образом, Permit позволяет сэкономить на комиссии и времени, объединяя два шага в один.
5. Преимущества и недостатки
Преимущества Permit:
- Экономия на газе: Одно действие вместо двух.
- Упрощение процесса: Меньше транзакций, меньше времени на подтверждения.
- Удобство: Вы подписываете сообщение, а не выполняете два отдельных шага.
Недостатки Permit:
- Ограниченная поддержка: Не все токены поддерживают Permit. Это требует реализации стандарта EIP-2612, который ещё не поддерживается всеми токенами.
- Риск безопасности: Если приватный ключ скомпрометирован, злоумышленник может подписать несанкционированные операции, используя механизм Permit.
Преимущества Approve:
- Широкая поддержка: Поддерживается всеми токенами ERC-20, что делает его универсальным инструментом.
- Простота понимания: Стандартная операция, понятная большинству пользователей.
Недостатки Approve:
- Двойная комиссия за газ: Требует выполнения двух транзакций, что увеличивает затраты на газ.
- Меньше удобства: Необходимо выполнить несколько шагов для завершения операции.
6. Заключение
Permit и Approve — это два механизма, позволяющие пользователям дать разрешение смарт-контрактам на использование своих токенов. Approve является стандартом и требует выполнения двух транзакций, в то время как Permit объединяет эти шаги в одном действии, экономя время и комиссию за газ. Однако, Permit работает не с каждым токеном и требует реализации специального стандарта. В то время как Approve широко поддерживается, он может быть менее удобным и более затратным.
Для пользователей, которые ценят удобство и экономию на транзакционных сборах, Permit является отличным выбором, особенно если они работают с токенами, поддерживающими этот механизм. Однако, если токен не поддерживает Permit, или если вы не уверены в смарт-контракте, Approve остаётся безопасным и универсальным вариантом.