Approval checker
Klasa narzędzi bezpieczeństwa portfela, która pokazuje aktywne allowance dla tokenów oraz approvals dla NFT nadane wcześniej smart kontraktom.
Czym jest approval checker
Approval checker to panel kontroli uprawnień portfela. Przykładem jest Revoke.cash: podłączasz adres, wybierasz sieć i widzisz, które kontrakty mogą obecnie przenosić twoje tokeny lub NFT.
To narzędzie jest potrzebne, bo approvale są zapisane onchain i mogą działać długo po tym, jak przestaniesz używać danej strony. Odłączenie portfela od aplikacji nie usuwa tych uprawnień.
W ekosystemie EVM chodzi głównie o allowance dla tokenów ERC-20 oraz approvals dla NFT. Cofnięcie takiego pozwolenia wymaga osobnej transakcji.
Co dokładnie sprawdza
Dla tokenów ERC-20 narzędzie odczytuje allowance, czyli informację, ile tokenów dany spender może przenieść z twojego portfela przez transferFrom.
Dla NFT sprawdza uprawnienia operatora, najczęściej setApprovalForAll. To może być groźniejsze niż pojedynczy approval ERC-20, bo operator może dostać prawo do przenoszenia całej kolekcji.
Wynik zwykle powstaje z połączenia historii eventów onchain i aktualnego stanu kontraktów. Dzięki temu da się znaleźć stare approvale, które nadal są aktywne.
Co możesz zobaczyć w takim narzędziu
- Token
- Aktywo, którego dotyczy pozwolenie, na przykład USDC, WETH albo konkretna kolekcja NFT.
- Spender
- Adres kontraktu lub operatora, który ma prawo przenieść tokeny.
- Limit
- Kwota zatwierdzona do użycia. Może być ograniczona albo praktycznie nieograniczona.
- Sieć
- Approval jest przypisany do konkretnej sieci, na przykład Ethereum, Arbitrum albo Base.
- Revoke
- Transakcja cofająca uprawnienie, zwykle przez ustawienie allowance na zero albo wyłączenie operatora NFT.
Kiedy warto go używać
To nie jest narzędzie tylko po włamaniu. Najlepiej traktować je jak regularny przegląd uprawnień portfela.
- Po okresie intensywnego używania DeFi.
- Po interakcji z nowym lub mało znanym protokołem.
- Po kliknięciu podejrzanej strony, nawet jeśli środki nie zniknęły.
- Przed przeniesieniem większych środków na stary portfel.
- Raz na kilka miesięcy jako rutynowy przegląd starych pozwoleń.
Przykład praktyczny
- W 2023 roku zatwierdziłeś unlimited approval dla starego DEX-a.
- Przestałeś używać tej aplikacji i odłączyłeś portfel od strony.
- Onchainowy approval nadal istnieje, bo disconnect niczego nie cofa.
- Po sprawdzeniu widzisz, że kontrakt nadal może użyć twoich tokenów.
- Wysyłasz transakcję revoke i ustawiasz pozwolenie na zero.
Permit i Permit2
Nie wszystkie approvale powstają przez zwykłą transakcję approve. EIP-2612 Permit pozwala nadać approval przez podpisaną wiadomość, którą później ktoś może wykorzystać onchain.
Permit2 rozwija ten model i pozwala na bardziej szczegółowe uprawnienia, często z czasem wygaśnięcia. To może poprawić UX, ale nadal wymaga ostrożności przy podpisywaniu.
Dla użytkownika najważniejsze jest to, że podpis poza łańcuchem też może mieć skutki finansowe. Nie traktuj podpisu w portfelu jako czegoś niewinnego tylko dlatego, że nie płacisz od razu gazu.
Najczęstsze błędne założenia
- Disconnect wallet nie jest revokiem.
- Cofnięcie approvala nie odzyska środków, które już zostały ukradzione.
- Unlimited approval do znanego protokołu nadal może być ryzykiem, jeśli kontrakt zostanie przejęty albo zaktualizowany.
- Revoke też jest transakcją i kosztuje gaz.
- Brak widocznej straty nie znaczy, że portfel nie ma starych ryzykownych uprawnień.
Stare approvale są jednym z cichych ryzyk DeFi
Możesz nie mieć otwartej pozycji w protokole, a mimo to nadal mieć aktywne uprawnienie do tokenów. Przegląd approvali pomaga znaleźć takie pozwolenia, ale decyzja o ich cofaniu nadal wymaga sprawdzenia, czy dany kontrakt jest ci potrzebny.
