Коротка відповідь

Підписи Permit (EIP-2612) і Permit2 — головний спосіб крадіжки криптовалюти у 2025–2026 роках. Небезпека в тому, що в гаманці підпис Permit має вигляд беззмістовного рядка, але, підписавши його, ви дозволяєте зловмисникові забрати з вашого гаманця певний токен у межах указаної суми — безстроково або до вказаного терміну. Йому не потрібно, щоб ви самі надсилали кошти: у нього вже є дозвіл їх забрати. Permit2 робить ситуацію ще гіршою, бо дозволяє одним підписом дати доступ одразу до кількох токенів.

Як це працює технічно

Звичайний дозвіл ERC-20 (approve) потребує транзакції в блокчейні: ви її бачите і платите за газ. EIP-2612 запровадив Permit як спосіб зекономити на газі: замість транзакції користувач підписує структуроване повідомлення (EIP-712), яке надає дозвіл певній адресі (spender). Такий підпис дійсний у блокчейні: будь-хто, у кого він є, може надіслати його в контракт токена, і контракт визнає дозвіл.

Для користувача це виглядає так: з'являється вікно з проханням підписати повідомлення з полями на кшталт «owner: 0xВИ, spender: 0xЗЛОВМИСНИК, value: max, deadline: 2099». Якщо ви підпишете, у зловмисника буде доказ, що ви дозволили йому переказати «максимум» цього токена, і він може подати цей доказ у блокчейн у будь-який момент до закінчення терміну.

Permit2 робить усе ще гіршим

Наприкінці 2022 року Uniswap запустила Permit2 — єдиний контракт для дозволів. Підпис Permit2 може дати дозвіл одразу на кілька токенів, з окремою сумою для кожного. Один такий підпис здатен відкрити доступ до ваших USDC, USDT, WETH, stETH та інших токенів водночас.

До того ж Permit2 підтримує пакетні перекази, тож зловмисник може вивести кілька активів одним виконанням Permit2, а не окремою транзакцією для кожного токена.

Чому це важко помітити

Вікно підпису містить структуроване повідомлення з полями «owner», «spender», «value» (часто це 2^256-1, тобто необмежена сума) і «deadline» (часто 2099 рік або величезне число, тобто фактично безстроково).

Людині без технічного досвіду прочитати це неможливо. А багато гаманців показують просто «Confirm signature?» і не пояснюють, чим це загрожує.

Що роблять сучасні гаманці

Rabby Wallet показує підписи Permit із зрозумілим поясненням: кому ви дозволяєте переказувати який токен, у якій сумі й на який строк, з попередженням, що це рівнозначно прямому доступу до балансу. MetaMask до 2024 року цього не робив, а після 2024-го додав схожі попередження.

Апаратні гаманці (Trezor Safe 3 і новіші, Ledger з оновленою прошивкою) показують розібрані поля Permit на екрані пристрою і вимагають фізичного підтвердження.

Як захиститися

Три правила:

Ніколи не підписуйте Permit, якщо тільки не працюєте з відомим dApp, якому він справді потрібен (Uniswap, 1inch у режимі з Permit2). Якщо Permit просить якась сторінка «отримання ейрдропу» чи «верифікації гаманця» — відмовляйтеся.

Перевіряйте адресу spender. Це має бути контракт dApp (в Etherscan він позначений як верифікований), а не чиясь випадкова адреса гаманця.

Щокварталу заходьте на revoke.cash і відкликайте дозволи Permit2, яких не впізнаєте.

Що почитати далі: EIP-2612 Permit, Фішинг.