Przejdź do treści
Słownikbezpieczenstwoportfelesmart-kontraktydefi

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.

Najczęstsze pytania

Samo sprawdzanie approvali zwykle polega na odczycie danych publicznych z blockchaina. Ryzyko pojawia się przy podpisywaniu transakcji revoke albo korzystaniu z fałszywej strony. Używaj znanych narzędzi i sprawdzaj adres strony.

Nie. Cofnięcie approvala nie przenosi tokenów. Ustawia tylko pozwolenie dla danego spendera na zero. Jeśli później użyjesz protokołu ponownie, aplikacja może poprosić o nowy approval.

Nie zawsze. Approvale do aktywnie używanych, zaufanych protokołów mogą być praktyczne. Warto jednak usuwać stare, niepotrzebne i unlimited approvale, zwłaszcza do aplikacji, których już nie używasz.

Tak. Revoke jest normalną transakcją onchain. Przy dużej liczbie approvali i drogim gazie koszt może być zauważalny, dlatego czasem warto robić przegląd wtedy, gdy opłaty są niższe.

Zależy od narzędzia. Najczęściej obsługiwane są popularne sieci EVM, takie jak Ethereum i część L2. Inne ekosystemy mogą mieć własne modele uprawnień i inne narzędzia.