Permit
Wzorzec zatwierdzania tokenów ERC-20 (ERC-2612) pozwalający nadać uprawnienie do wydatkowania przez podpisanie wiadomości EIP-712 offline — bez wysyłania osobnej transakcji approve onchain. Protokół korzysta z podpisu, aby zarejestrować allowance.
Jak działa permit
Klasyczne zatwierdzanie ERC-20 wymaga dwóch transakcji: najpierw approve (wyślesz transakcję przyznającą limit protokołowi), potem interakcja z protokołem. Permit łączy to w jedną: użytkownik podpisuje wiadomość EIP-712 zawierającą spender, limit wartości i termin ważności — protokół weryfikuje podpis i rejestruje allowance w tej samej transakcji.
Oszczędza gaz i poprawia UX. Ale przenosi ryzyko: teraz wystarczy podpisać złośliwą wiadomość, żeby przyznać pełen dostęp do tokenów bez wysyłania widocznej transakcji onchain. Portfel pokazuje prośbę o podpis, nie transakcję — wielu użytkowników traktuje je mniej ostrożnie.
Podpisanie permit to równoważne nadaniu allowance. Phishing przez pozornie niewinny 'podpis' jest realnym wektorem ataku. Zawsze czytaj co dokładnie podpisujesz — spender, limit, deadline.
Najczęstsze błędne założenia
- Permit nie oznacza braku zatwierdzenia. Zatwierdzenie nastąpiło przez podpis zamiast transakcji
approve. - Podpis wiadomości to nie bezpieczna operacja automatycznie. Złośliwy podpis permit może opróżnić portfel.
- Permit2 to rozszerzenie pomysłu permit — bardziej elastyczne zarządzanie allowance z wygaśnięciem.
