December 25, 2024

Что такое Permit и как он работает? Чем отличается от Approve?

Что такое Permit и как он работает? Чем отличается от Approve?

В мире криптовалют и децентрализованных приложений (DeFi) для управления токенами часто требуется подтверждение или разрешение на использование ваших средств. Для этого используются две основные операции: Approve (апрув) и Permit. Несмотря на то что обе они позволяют разрешить сторонним приложениям доступ к вашим токенам, их реализация и преимущества значительно различаются. В этой статье мы рассмотрим, что такое Permit, как он работает, и чем он отличается от традиционного Approve.


1. Что такое Approve?

Approve (апрув) — это операция, с помощью которой пользователь даёт разрешение смарт-контракту или децентрализованному приложению (DApp) на использование своих токенов. Эта операция используется во многих DeFi-протоколах, например, для обмена токенами на децентрализованных биржах, участия в стейкинге или фарминге ликвидности.

Как работает Approve?

  1. Дать разрешение: Когда вы хотите использовать свои токены в каком-то приложении, например, на децентрализованной бирже, вы сначала должны выполнить операцию approve. Это означает, что вы даёте смарт-контракту или приложению доступ к вашим токенам на определённую сумму. Например, вы даёте разрешение на использование 100 токенов.
  2. Подтверждение в кошельке: Когда вы подтверждаете approve в кошельке (например, MetaMask), ваши токены становятся доступными для смарт-контракта или приложения, но они не передаются — разрешение даётся только на использование этих токенов в дальнейшем.
  3. Выполнение операции: После того как разрешение получено, вы можете использовать свои токены для обмена, фарминга, стейкинга или других действий в приложении. Однако важно, что approve — это только разрешение, а не само выполнение действия.

2. Что такое Permit и как он работает?

Permit — это усовершенствованный механизм для предоставления разрешений на использование токенов, который был введён в некоторых современных приложениях. Главное преимущество Permit заключается в том, что он позволяет выполнить approve и саму операцию в одной транзакции, что экономит время и деньги.

Как работает Permit?

  1. Подписание разрешения: С помощью Permit пользователь подписывает специальное сообщение, которое даёт разрешение на использование токенов. Это сообщение подписывается с помощью приватного ключа пользователя, но при этом не требует отправки транзакции в блокчейн для подтверждения разрешения.
  2. Объединение транзакций: Вместо того чтобы сначала выполнить операцию approve, а затем инициировать саму транзакцию (например, перевести токены или обменять их), Permit позволяет выполнить оба действия в одном шаге. Смарт-контракт сразу получает разрешение на использование токенов и выполняет нужное действие — например, переводит токены или меняет их.
  3. Снижение затрат на газ: Поскольку не требуется выполнять две транзакции (одну для approve, другую для самого действия), Permit помогает сэкономить на комиссии за газ, что особенно важно на перегруженных блокчейнах, таких как Ethereum.

3. В чем отличие между Permit и Approve?

3.1 Процесс выполнения

  • Approve требует двух отдельных транзакций:
    1. Первая транзакция — это операцию approve, в которой вы даёте разрешение на использование своих токенов.
    2. Вторая транзакция — это сама операция с токенами (например, перевод или обмен).
  • 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:
    1. Сначала вы должны выполнить операцию approve, чтобы разрешить смарт-контракту DEX доступ к вашим токенам.
    2. Затем вы выполняете операцию обмена токенов, и это требует второй транзакции для подтверждения.
  • Используя Permit:
    1. Вместо двух шагов, вы просто подписываете одно сообщение, которое даёт разрешение и сразу выполняет операцию обмена токенов в одной транзакции.

Таким образом, Permit позволяет сэкономить на комиссии и времени, объединяя два шага в один.


5. Преимущества и недостатки

Преимущества Permit:

  • Экономия на газе: Одно действие вместо двух.
  • Упрощение процесса: Меньше транзакций, меньше времени на подтверждения.
  • Удобство: Вы подписываете сообщение, а не выполняете два отдельных шага.

Недостатки Permit:

  • Ограниченная поддержка: Не все токены поддерживают Permit. Это требует реализации стандарта EIP-2612, который ещё не поддерживается всеми токенами.
  • Риск безопасности: Если приватный ключ скомпрометирован, злоумышленник может подписать несанкционированные операции, используя механизм Permit.

Преимущества Approve:

  • Широкая поддержка: Поддерживается всеми токенами ERC-20, что делает его универсальным инструментом.
  • Простота понимания: Стандартная операция, понятная большинству пользователей.

Недостатки Approve:

  • Двойная комиссия за газ: Требует выполнения двух транзакций, что увеличивает затраты на газ.
  • Меньше удобства: Необходимо выполнить несколько шагов для завершения операции.

6. Заключение

Permit и Approve — это два механизма, позволяющие пользователям дать разрешение смарт-контрактам на использование своих токенов. Approve является стандартом и требует выполнения двух транзакций, в то время как Permit объединяет эти шаги в одном действии, экономя время и комиссию за газ. Однако, Permit работает не с каждым токеном и требует реализации специального стандарта. В то время как Approve широко поддерживается, он может быть менее удобным и более затратным.

Для пользователей, которые ценят удобство и экономию на транзакционных сборах, Permit является отличным выбором, особенно если они работают с токенами, поддерживающими этот механизм. Однако, если токен не поддерживает Permit, или если вы не уверены в смарт-контракте, Approve остаётся безопасным и универсальным вариантом.