Офчейн-підпис вартістю 84 000 USDC
Грудень 2024. Дніпровський холдер заходить на «новий DEX з нульовими комісіями», який рекламують у Telegram-каналі. Сайт просить підпис з міткою Permit — без транзакції, без газу, без попереджень MetaMask. Він підписує.
Через одинадцять секунд 84 000 USDC зникають. Підпис Permit дав чужій адресі право списати весь баланс USDC, і дрейнер викликав transferFrom у ту ж секунду, як сигнатура була передана.
Чим небезпечний EIP-2612 Permit
EIP-2612 придумали для економії газу: замість окремої транзакції approve користувач підписує офчейн-повідомлення, а спендер включає цей підпис при виклику контракту. Підпис без газу, виглядає безпечно — MetaMask показує structured-data-промпт, а не транзакцію. Але ефект ідентичний безлімітному схваленню. Оскільки при підписі нічого в блокчейн не записується, revoke.cash не бачить цієї загрози.
Чотири мітки підпису, на яких варто завмерти
Permit— EIP-2612, безгазове схвалення ERC-20.PermitSingle/PermitBatch— контракт Permit2 від Uniswap, ще потужніший.setApprovalForAll— схвалення цілої NFT-колекції.0x1626ba7eабо довільний hex — generic typed-data, гаманець не може пояснити, що ви підписуєте.
Якщо гаманець показує будь-яку з цих міток і сайт не верифікований мейнстрім, яким ви вже користувалися — відхиляйте підпис і закривайте вкладку.
Легітимні застосування
Реальні Permit-використання існують: Uniswap, 1inch, CowSwap, кілька великих lending-протоколів економлять користувачам газ через Permit та Permit2. Захист — не «ніколи не підписувати Permit», а «підписувати Permit лише за URL, який ви набрали самі, у протоколі, яким уже багато разів користувалися».
Якщо підписали і кошти ще на місці
У вас хвилини. Відкрийте той самий гаманець, переведіть весь баланс токена на свіжу адресу. Підпис Permit дає атакуючому право переказати — але не заважає вам переказати першим. Швидкість вирішує.