Конфиденциальность, Разрешения и безопасность подписи
В этой статье в качестве примеров используются сети EVM и стандарт ERC-20 Разрешения. Отключение DApp только прекращает локальное соединение между веб-сайтом и кошельком. Интерфейс кошелька, который управляет этим соединением, имеет техническое имя: Provider. Отключение не меняет утвержденную сумму расходов, записанную на блокчейн (Allowance). Для отзыва разрешения требуется транзакция. Утвержденная сумма уменьшается или обнуляется только после успешного завершения транзакции в правильной сети. Другие криптотокены, NFT и системы разрешений могут подчиняться другим правилам.
1. В чем разница между отключением сайта и отзывом разрешения?
Сравнение | Отключение сайта | Отзыв разрешения ERC-20 |
Что меняется | Локальное соединение, сохраненное кошельком | Утвержденная сумма расходов, зафиксированная контрактом жетон ( |
Требуется транзакция блокчейн. | Нет | Да |
Обычно взимается плата за сеть | Нет | Да. Счет, отправляющий транзакцию отзыва, выплачивает комиссию в собственном активе сети. |
Можно изменить утвержденную сумму ( | Нет | Да. Успешная транзакция может уменьшить его или обнулить. |
Область применения | Текущее соединение между кошельком и сайтом | Только выбранная сеть, учетная запись, жетон и утвержденная сторона ( |
После отключения веб-сайт обычно не может отправлять запросы к кошельку через предыдущее соединение. Однако он по-прежнему может запросить уже известный ему общедоступный адрес и запросить повторное соединение. Полное сравнение четырех распространенных действий кошелька см. В чем разница между подключением кошелька, подписанием сообщений, подписанием транзакций и разрешениями на использование токенов?.
2. Где хранится разрешение ERC-20?
Стандартная запись разрешения ERC-20 идентифицируется пятью значениями: владелец актива (Owner), контракт жетон (Token), одобренная сторона (Spender), утвержденная сумма расходов (Allowance) и сеть. После транзакции, выполняющей функцию одобрение (approve) успешно, новая утвержденная сумма записывается в контракт жетон на блокчейн. Он не хранится в браузере cache или клиенте кошелька.
Если утвержденная сумма, баланс жетон владельца актива и правила контракта жетон позволяют это, утвержденная сторона может использовать функцию контракта, например transferFrom, для передачи крипто-токенов. Тот, кто отправляет эту контрактную операцию, должен отправить транзакцию и оплатить комиссию сети. Владельцу актива обычно не требуется предоставлять для этого еще одну подпись. transferFrom операция. Закрытие веб-сайта, удаление записи о подключении, смена телефона или переустановка кошелька не меняют утвержденную сумму на блокчейн.
Примечание об области применения: Разные правила могут применяться к разрешению для одного NFT, разрешению для всех NFT (setApprovalForAll), Permit2 и разрешениям в сетях, отличных от EVM. Способы их отзыва также могут различаться. Не считайте, что любое разрешение можно отозвать, установив одобренную сумму ERC-20 равной нулю.
3. Срок действия Разрешения истекает автоматически? Что означает срок действия Permit?
Стандартная утвержденная сумма ERC-20 (
Allowance): Обычно он не имеет срока действия по умолчанию. Он остается до тех пор, пока не будет израсходован, заменен новой суммой, уменьшен или обнулен транзакцией. Конкретный контракт жетон может вести себя по-разному.Ограниченное разрешение: Лимит ограничивает количество крипто-токенов, которые можно использовать; он не устанавливает срок годности.
Срок действия подписи (
deadline): В таких механизмах, как ERC-2612, это поле обычно ограничивает возможность отправки подписанного сообщения разрешения. Создание подписанного сообщения (Permit) не меняет немедленно утвержденную сумму на блокчейн. Подписанное сообщение должно быть успешно отправлено. В этот момент его значение последовательности (nonce), срок годности (deadline), а другие условия проверки должны оставаться действительными. Только тогда разрешение вступит в силу. Как только разрешение вступит в силу, утвержденная сумма не исчезнет только потому, что срок действия исходного сообщения истек.
Длительное или неограниченное использование Разрешения может увеличить постоянное воздействие. См. Что такое Unlimited Approval?.
4. Что следует проверить при отзыве разрешения?
Подтвердите сеть и учетную запись: Отзыв разрешения в одной сети не приводит к изменению Разрешения в другой сети.
Подтвердите жетон и одобренную сторону (
Spender): Не полагайтесь только на имена или значки. Проверьте адрес контракта и утвержденную сторону.Выберите правильное действие по отзыву: Для стандартного разрешения ERC-20 уменьшите утвержденную сумму или установите ее на ноль, если это необходимо. Следуйте соответствующему стандарту контракта и официальным инструкциям для других типов разрешений.
Подготовьте плату сети: Для отзыва разрешения ERC-20 обычно требуется транзакция блокчейн. Отправляющему счету необходим собственный актив сети для оплаты комиссии.
Дождитесь успешного выполнения, затем проверьте еще раз: Подписание или трансляция транзакции не означает, что отзыв вступил в силу. Запросите утвержденную сумму на блокчейн (
Allowance) снова только после того, как транзакция была включена в блок и успешно выполнена.
Некоторые аппаратные устройства не могут полностью декодировать каждый параметр контракта или отзыва. Проверьте сеть, тип транзакции, контракт и читаемые поля, фактически отображаемые на устройстве. Если важная информация отсутствует, отличается от ожидаемой или может быть подписана только слепой подписью, остановитесь и проверьте запрос еще раз. См. Что следует проверить перед подтверждением транзакции на аппаратном кошельке?.
5. Часто задаваемые вопросы
Удаляет ли закрытие браузера или удаление кошелька существующее разрешение блокчейн?
Нет. Эти действия не меняют состояние контракта на блокчейн.
В моей учетной записи в настоящее время нет этой криптовалюты жетон. Должен ли я по-прежнему просматривать старое разрешение?
Подумайте, как учетная запись может быть использована позже. Если та же криптовалюта жетон снова будет отправлена на адрес, действительная утвержденная сумма все равно может позволить исходной одобренной стороне использовать transferFrom чтобы передать его.
Охватывает ли один отзыв каждую сеть?
Нет. Разрешения обычно записываются отдельно для каждой сети, учетной записи, контракта жетон и утвержденной стороны. Проверяйте каждый индивидуально.
Почему разрешение все еще появляется после того, как я его отозвал?
Убедитесь, что транзакция отзыва выполнена успешно, что вы просматриваете правильную сеть и учетную запись, а также является ли отображаемое разрешение суммой, утвержденной ERC-20, разрешением оператора для NFT (NFT Operator) или другой тип разрешения.
Ключевой принцип: Отключите локальные соединения, которые больше не используются. Если разрешение блокчейн больше не требуется, сначала проверьте сеть, учетную запись, контракт жетон и утвержденную сторону. Затем удалите это разрешение в соответствии с соответствующим стандартом разрешений.
