Коротка відповідь
Підписи 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, Фішинг.