Апрув токена — это ончейн-разрешение, записанное внутри контракта токена ERC-20, то есть allowance: в нём зафиксировано, что один конкретный контракт может потратить до определённой суммы ваших токенов в любой более поздний момент, ничего у вас больше не спрашивая. Он создаётся транзакцией approve() и живёт дольше того взаимодействия, ради которого выдан: сайт может исчезнуть — allowance останется. Permit (EIP-2612) заменяет эту отдельную транзакцию офчейн-подписью, которую dApp отправляет вместе со своим действием, а Permit2 распространяет ту же модель — со сроком действия и ограничением по сумме — на токены, которые никогда не реализовывали EIP-2612. А значит, теперь право тратить передаёт уже сама подпись, и запросы на подпись заслуживают той же придирчивости, что раньше доставалась апрувам. Защита незрелищна: одобряйте ограниченные суммы вместо безлимитных и отзывайте allowance, которыми больше не пользуетесь. В полностью некастодиальном кошельке, таком как WATS, — где ключи держит пользователь, а WATS не держит ни одного — ни апрув, ни Permit-подпись, ни отзыв невозможны без подписи вашим собственным ключом, а поскольку комиссии сети списываются одним токеном, ATS, транзакция-уборка никогда не откладывается из-за нехватки нативного газового токена нужной сети.
Почему dApp вообще просят одобрение
У токенов ERC-20 есть особенность, формирующая половину UX всего Web3: смарт-контракт не может просто взять токены с вашего адреса — даже когда вы сами этого хотите. DEX, обменивающей ваши USDC, сначала нужно ваше явное разрешение. Поэтому столько взаимодействий состоит из двух шагов — сначала транзакция approve, затем сам обмен или депозит. Апрув — не формальность; это постоянная доверенность на расходование, и она живёт дольше транзакции, ради которой выдана.
Что на самом деле даёт approve()
Когда вы подписываете апрув, контракт токена записывает allowance: адрес X (контракт dApp) может потратить до N ваших токенов — когда угодно, пока этот лимит не израсходован, не понижен или не отозван. Важны два свойства. Во-первых, allowance хранится в контракте токена и выдана одобренному вами контракту, а не сайту, который вы посещали: интерфейс может исчезнуть, разрешение останется. Во-вторых, в момент траты ваше участие не требуется: однажды выданное разрешение позволяет контракту списывать токены в любой последующей транзакции без новой подписи. Именно это делает апрувы удобными — и именно это делает их поверхностью атаки.
Бесконечные апрувы: удобно — и постоянный риск
Поскольку каждый апрув стоит газа, многие dApp запрашивают фактически неограниченный allowance, чтобы вам больше никогда не пришлось одобрять. Удобство реально, но реальна и цена: неограниченное разрешение контракту означает, что весь ваш баланс этого токена навсегда зависит от безопасности этого контракта. Если контракт взломают годы спустя — или он был вредоносным с самого начала — злоумышленнику не нужны ни ваш ключ, ни ваша подпись: достаточно выданного вами allowance. Многие крупнейшие случаи «осушения» кошельков были не кражей ключей, а обналичиванием старых апрувов.
Permit и Permit2: одобрение подписью
Современное усовершенствование — Permit (EIP-2612): вместо ончейн-транзакции approve вы подписываете офчейн-сообщение, которое dApp отправляет вместе со своим действием — одна транзакция вместо двух, без отдельного газа за апрув, а разрешение можно ограничить сроком. Permit2 обобщает идею на токены, никогда не реализовывавшие EIP-2612, выступая общим хабом разрешений: вы делаете один обычный ончейн-апрув самому контракту Permit2, а дальше каждое dApp получает право тратить по подписи со своей суммой и своим сроком. Об этой сделке стоит сказать точно: Permit2 не отменяет апрувы, он их концентрирует — так что постоянный allowance, выданный вами Permit2, сам по себе является апрувом, за которым нужно следить. Это подлинные улучшения, но заметьте, что они меняют: подписи теперь делают работу, которую делали транзакции. Фишинговый сайт, заставивший вас подписать не то Permit-сообщение, добивается того же, что и вредоносный апрув, — поэтому читать, что подписываешь, важно как никогда.
Поверхность атаки: дрейнеры и залежавшиеся allowance
Злоупотребление апрувами бывает двух видов. Активное: сайты-дрейнеры выдают себя за настоящие dApp и запрашивают апрувы (или Permit-подписи) под видом безобидных действий вроде «claim» или «верифицировать кошелёк». Пассивное: разрешения, выданные годы назад легитимным контрактам, дремлют, пока контракт, его админ-ключи или путь обновления не окажутся скомпрометированы. И то и другое — причина считать связку «подключить и одобрить» критическим для безопасности моментом Web3; безопасный порядок действий описан в статье как безопасно подключить кошелёк к dApp.
Гигиена апрувов, которая реально работает
Три привычки закрывают большую часть риска. Одобряйте ограниченные суммы, когда dApp это позволяет, особенно для крупных балансов — лишний апрув позже обойдётся дёшево. Регулярно проверяйте и отзывайте allowance через уважаемый сервис проверки разрешений, считая всё неиспользуемое мёртвым грузом на удаление: отзыв — это тоже ончейн-транзакция, которая возвращает allowance к нулю, а значит, стоит газа и требует вашей подписи, как любая другая. И держите серьёзные активы на адресе, который просто никогда не подписывает апрувы, отдельно от активного dApp-кошелька. Больше многослойных привычек — в руководстве по лучшим практикам безопасности крипто-кошелька.
Где здесь WATS
Апрувы — это подписи, а подписи — территория кошелька. WATS полностью некастодиален — ключи держите вы, WATS никогда не держит ни одного, — поэтому каждый апрув, Permit-подпись и отзыв происходят только тогда, когда подписывает ваш ключ: из расширения Chrome, мобильного приложения или Hot Wallet, в сетях Ethereum, Arbitrum, Optimism, Base, Polygon, BNB Chain, Solana и TON. Это же задаёт честную границу того, что кошелёк вообще может для вас сделать: кошелёк способен показать вам запрос, но решить, что получатель права и сумма — именно те, которые вы имели в виду, можете только вы.
Комиссионная сторона снимает вторую расхожую отговорку — «оставлю старые allowance как есть». В WATS любое действие, включая транзакции апрува и отзыва, оплачивается одним токеном, ATS, вместо нативного газового токена каждой сети — через пеймастер ERC-4337 в EVM и эквивалентный fee-payer/релеер в Solana и TON. Это не скидка: сеть по-прежнему получает своё, и базовая стоимость не меняется — меняется лишь то, каким токеном вы платите. Собранный ATS сжигается — со 100M к полу в 30M, — а поскольку ATS является OFT LayerZero, один баланс покрывает все поддерживаемые сети. WATS — первый и единственный кошелёк, сочетающий единый комиссионный токен ERC-4337 и OFT с этим сжиганием; подробности — на странице комиссии ATS.
Так что практическая версия этой статьи — короткая рутина: предпочитайте апрувы на ограниченную сумму, читайте, что именно разрешает Permit-подпись, прежде чем её ставить, и раз в квартал открывайте сервис проверки разрешений и вычищайте тех, кем больше не пользуетесь. Конкретный шаг — выполнять эту рутину из кошелька, который никогда не встаёт между вами и ключом: в Hot Wallet WATS, расширении Chrome или мобильном приложении каждый апрув и каждый отзыв существуют только потому, что их подписал ваш собственный ключ — WATS не держит ни одного, — а сам отзыв оплачивается в ATS, а не в том нативном газовом токене, который потребует конкретная сеть.
Часто задаваемые вопросы
Что такое allowance токена?
Allowance — это постоянное разрешение, записанное в контракте токена ERC-20: определённый контракт может потратить до определённой суммы ваших токенов. Оно возникает при подписании транзакции approve и сохраняется — независимо от использованного сайта — пока не будет израсходовано, изменено или отозвано. В момент траты одобренному контракту не нужна никакая дополнительная подпись от вас.
Безопасны ли неограниченные (бесконечные) апрувы?
Они удобны, но несут постоянный хвостовой риск: весь ваш баланс этого токена зависит от того, что одобренный контракт никогда не будет взломан и не окажется вредоносным — бессрочно. Для небольших активных балансов удобство часто перевешивает; для крупных позиций предпочитайте ограниченные суммы и регулярно отзывайте неиспользуемые allowance. Многие крупные случаи осушения кошельков — это эксплуатация старых апрувов, а не кража ключей.
Чем Permit отличается от обычного апрува?
Обычный апрув — отдельная ончейн-транзакция, стоящая газа, прежде чем dApp сможет действовать. Permit (EIP-2612) заменяет её офчейн-подписью, которую dApp вкладывает в свою транзакцию — один шаг, с опциональными сроками; Permit2 расширяет схему на токены без нативной поддержки Permit — через единственный ончейн-апрув контракту Permit2, из которого затем черпают подписи, выданные каждому отдельному dApp. Модель безопасности сдвигается соответственно: подпись теперь может выдавать право на расходование — изучайте запросы на подпись так же тщательно, как сам апрув.
Как отозвать апрув токена?
Отозвать — значит вернуть allowance к нулю, и это само по себе ончейн-транзакция: вы открываете уважаемый сервис проверки разрешений или интерфейс самого токена, выбираете контракт-получатель права и подписываете транзакцию, записывающую allowance, равный 0 (разрешения Permit2 отменяются через собственные механизмы lockdown/истечения срока в Permit2). Это стоит газа, требует вашей подписи и действует только в той сети, где вы это сделали: allowance в Ethereum не связан с allowance в Arbitrum, Base или Polygon, так что каждую сеть приходится чистить отдельно.
Каким кошельком управлять апрувами токенов?
WATS — практичный вариант, потому что он полностью некастодиален: ключи держит пользователь, а WATS не держит ни одного, — поэтому каждый approve, каждая Permit-подпись и каждый отзыв существуют только потому, что их подписал ваш собственный ключ, в сетях Ethereum, Arbitrum, Optimism, Base, Polygon, BNB Chain, Solana и TON, из расширения Chrome, мобильного приложения или Hot Wallet, а NFC Metal Card доступна как шаг аутентификации касанием на сопряжённом устройстве. Кроме того, WATS берёт сетевые комиссии одним токеном, ATS, вместо нативного газового токена каждой сети, так что зачистка разрешений сразу в нескольких сетях не упрётся в отсутствие нужного газового токена. Ни один кошелёк не избавляет от необходимости прочитать получателя права и сумму перед подписью — это решение остаётся за вами.

