Что такое Permit Signatures?
Описание Permit
Last updated
Описание Permit
Last updated
Из-за необходимости платить за газ многие приложения предпочитают запрашивать неограниченные разрешения (апрувы), что означает, что вам нужно заплатить за газ только один раз. Это может быть риском для безопасности, поскольку приложение сохраняет этот неограниченный доступ на неопределенный срок. В идеале вы должны выдавать только ограниченный апрув, который покрывает конкретное количество токенов, необходимое для определенной транзакции. Но тогда вам придется платить за газ за каждый апрув.
пытается решить эту проблему, позволяя подписывать сообщение об одобрении offchain. Таким образом, вам не нужно будет отправлять onchain-транзакцию и вы сможете предоставить ограниченный апрув без оплаты за газ.
EIP2612 является дополнением стандарта ERC20, что означает, что токены ERC20 могут реализовать эту дополнительную функциональность, но большинство токенов ее не поддерживают. Permit Signatures основаны на стандарте , который определяет стандартизированный способ подписи структурированных данных. Данные, которые необходимо подписать для Permit signatures, содержат ту же информацию, что и при выдаче апрувов onchain: authorised spender address (ASA) и количество токенов.
Затем эти данные и соответствующую подпись можно передать в функцию токена permit()
, которая проверяет подпись и "активирует" апрув onchain, после чего он становится таким же, как и обычный onchain апрув. Хотя этот вид подписи необходимо "активировать" onchain, onchain активация может быть совмещена с транзакцией, для которой вам нужен апрув, так что вам не нужно отправлять отдельную транзакцию.
Как уже говорилось выше, основная проблема, которую решают Permit Signatures, заключается в том, что вы можете выдавать апрувы без необходимости отправлять отдельную транзакцию по утверждению. Это дает два важных преимущества:
Уменьшение проблем для пользователей, поскольку им не нужно платить за газ или ждать, пока транзакция будет добыта.
Снижение риска безопасности, так как можно выдавать ограниченное количество апрувов, которые покрывают только необходимое количество токенов для конкретных транзакций.
Хотя Permit Signatures обладают рядом важных преимуществ, у них есть и недостатки. Один из них заключается в том, что они не поддерживаются большинством токенов, поэтому вы не можете рассчитывать на их доступность. Из-за ограниченной поддержки в токенах ERC20 они также не поддерживаются многими приложениями. Для того чтобы смарт-контракты поддерживали Permit Signatures, им необходимо специально реализовать эту поддержку, что создает дополнительные трудности для разработчиков.
Поскольку Permit Signatures - это offchain подписи, они также часто используются скамерами, чтобы обмануть пользователей и заставить их дать апрув. Многие кошельки, такие как MetaMask, теперь отображают предупреждение, когда вы подписываете onchain апрув, но для Permit Signatures такие предупреждения отсутствуют. Таким образом, может показаться, что вы просто подлючаете кошелёк на сайте, но на самом деле вы даете апрув.