Revoke.cash logo
Что такое Permit2?

Что такое Permit2?

В статье Что такое EIP2612 Permit Signatures? мы обсудили, что Permit Signatures - это способ предоставления апрувов с помощью безгазовых подписей. Но мы также упомянули, что поддержка этих Permit Signatures должна быть реализована самим токеном, что не характерно для большинства токенов. Permit2 - это система, которая была разработана командой Uniswap для решения этой проблемы.

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

Permit2 - это смарт-контракт, которому пользователи должны дать неограниченное разрешение (unlimited approval). После апрува контракта Permit2 его можно использовать для выдачи sub-approvals другим смарт-контрактам. Это можно сделать с помощью функции Permit2.approve(), которая работает так же, как функция approve() для токенов ERC20. Но также это можно сделать с помощью функции Permit2.permit(), которая работает аналогично функции permit() в EIP2612.

Кроме поддержки Permit signatures в токенах, которые их не поддерживают, Permit2 добавляет и другие дополнительные функции. Самое главное - он добавляет срок действия для всех апрувов, сделанных с помощью Permit2. Таким образом, вам не нужно бесконечно апрувать контракт, а можно сделать так, чтобы срок действия апрува истекал автоматически.

Преимущества Permit2

Permit2 имеет те же преимущества, что и оригинальная EIP2612 Permit signatures: меньше проблем для пользователей, поскольку им не нужно отправлять отдельную апрув транзакцию, и потенциально меньший риск, поскольку приложениям не нужно запрашивать неограниченное разрешение (unlimited approvals) при использовании Permit или Permit2 signatures.

Кроме того, Permit2 решает один из главных недостатков EIP2612 Permit signatures - то, что они не поддерживаются большинством токенов. Permit2 решает эту проблему, позволяя использовать безгазовые Permit signatures для каждого токена.

Дополнительное преимущество Permit2 заключается в том, что он также добавляет срок действия к апрувам. Это уменьшает кол-во проблем для пользователей, поскольку им не нужно вручную отзывать все разрешения. Кроме того, снижается риск безопасности, так как уменьшается количество неиспользованных одобрений, которыми могут воспользоваться хакеры.

Недостатки и риски Permit2

Хотя Permit2 имеет важные преимущества, важно отметить, что он также создает некоторые новые риски безопасности по сравнению с обычными апрувами или EIP2612 Permit signatures.

Permit2 Batch MetaMask Popup

Система Permit2 очень гибкая и позволяет выдавать апрувы сразу на несколько токенов. Из-за такой гибкости пользователям сложнее понять, что именно они апрувают. Этим могут воспользоваться фишинговые сайты, чтобы обмануть пользователей и заставить их выдать апрув, который они не хотели выдавать.

Помимо дополнительных рисков для пользователей, это еще и дополнительные трудности для разработчиков приложений. Интеграция с Permit2 требует больше усилий, чем использование обычных апрувов или даже EIP2612 Permit signatures. Этот недостаток сглаживается тем, что Permit2 поддерживает все токены, поэтому усилия могут быть более оправданными, чем в случае с EIP2612 Permit signatures.

Отзыв апрувов Permit2

Говоря об апрувах Permit2, следует учитывать две вещи. Во-первых, это обычный апрув, который вы даете самому контракту Permit2. Этот апрув необходим для того, чтобы контракт Permit2 мог выдавать Permit2-апрувы от вашего имени. Рекомендуется отзывать этот апрув, когда вы больше не используете его. Особенно учитывая дополнительный риск фишинга, о котором мы говорили выше.

Второе, что следует учитывать, - это фактические Permit2-апрувы, которые контракт Permit2 выдает от вашего имени. Часто эти апрувы имеют срок действия, который не должен быть слишком долгим, поэтому вы можете рассмотреть возможность их автоматического истечения. Если срок действия слишком большой, вы все равно можете отозвать или обновить апрув вручную с помощью Revoke.cash.

Permit2 Approvals on Revoke.cash

Переводчик Andrei Kalpovski