
Table of Contents
Aby odebrać DApp dostęp do Twoich tokenów, musisz znaleźć zgodę, którą posiada, i cofnąć ją w osobnej transakcji on-chain - odłączenie DApp nie usuwa uprawnienia, a Twoje tokeny pozostają narażone, dopóki limit nie zostanie ustawiony na 0.
Najważniejsze wnioski
- Zgody żyją on-chain - zamknięcie aplikacji lub sesji WalletConnect niczego nie zmienia; uprawnienie do wydawania pozostaje aktywne, dopóki go nie cofniesz.
- Nieograniczone zgody zwiększają szkody - jedno nieograniczone uprawnienie pozwala kontraktowi wydać całe obecne i przyszłe saldo danego tokena.
- Cofnięcie zapobiega przyszłym wydatkom, a nie przeszłej kradzieży - zresetowanie limitu blokuje nowe transfery, ale nie odzyska aktywów, które drainer już przeniósł.
Czym są zgody na tokeny dla DApps?
Zgoda na token dla DApp to uprawnienie, które właściciel portfela nadaje smart kontraktowi, aby ten mógł wydać określony token do ustalonej kwoty. Bez tej zgody zdecentralizowana giełda, rynek pożyczkowy ani żadna inna DApp nie może przenieść Twoich tokenów - to właśnie zgoda pozwala jej wymieniać, stakować lub przesyłać je w Twoim imieniu, gdy z niej korzystasz.
Smart kontrakt to program działający na blockchainie, który automatycznie wykonuje działania, gdy spełnione są z góry określone warunki.
Jak działają zgody na tokeny dla DApps
Zgoda na token przebiega według stałej sekwencji: łączysz portfel z DApp, DApp prosi o zgodę, zostaje ona zapisana on-chain, a od tej pory DApp wykonuje zatwierdzone działanie bez ponownego pytania. Tak działają znane DApps, takie jak Aave i Uniswap. Ponieważ uprawnienie żyje na blockchainie, a nie w sesji aplikacji, pozostaje w mocy długo po tym, jak przestaniesz korzystać z DApp.
Zgody występują w kilku różnych formach:
- Zgoda ograniczona: DApp może wydać tylko kwotę, którą ustawisz, na przykład 500 USDC, i musi poprosić o nową zgodę, aby wydać więcej.
- Zgoda nieograniczona: DApp może wydać dowolną ilość wybranego tokena, w tym tokeny, które trafią do Twojego portfela później.
- Zgoda na token: Smart kontrakt otrzymuje uprawnienie do zarządzania konkretnym tokenem wymienialnym, takim jak USDC lub USDT.
- Zgoda na NFT: Uprawnienie może obejmować pojedyncze NFT lub całą kolekcję, na przykład przez
setApprovalForAll.
Zgoda na token nie ujawnia Twojej tajnej frazy ani nie daje DApp nieograniczonego dostępu do całego portfela. Dotyczy wyłącznie zatwierdzonego tokena, NFT, kwoty i smart kontraktu.
Kiedy użytkownicy portfeli krypto nadają zgody na tokeny?
Zgody na tokeny pojawiają się przy codziennych działaniach DeFi: wymianie tokenów, pożyczaniu, stakingu i sprzedaży NFT. Mogą pozostać aktywne po zakończeniu działania lub odłączeniu DApp.
Wymiana tokenów na DEX: Załóżmy, że robisz swap USDC na ETH na Uniswapie - najpierw zatwierdzasz kontraktowi Permit2 (menedżerowi uprawnień od Uniswap Labs) użycie USDC. Nieograniczona zgoda może pozostać aktywna po zakończeniu lub anulowaniu swapu.
Dostarczanie tokenów do protokołu pożyczkowego: Aby pożyczyć USDT na Aave, zatwierdzasz kontraktowi Aave Pool przenoszenie tokenów z portfela. Niewykorzystany limit może pozostać po wypłacie depozytu lub odłączeniu DApp.
Staking tokenów przez DApp: Przy stakingu przez Aave Umbrella zatwierdzasz kontraktowi stakingowemu przeniesienie wybranych tokenów do puli. Jeśli zgoda przekracza depozyt, pozostały limit może nadal działać po wyjściu ze stakingu.
Wystawianie NFT na sprzedaż: Wystaw NFT na OpenSea, a marketplace może poprosić o dostęp do pojedynczego NFT lub całej kolekcji przez setApprovalForAll. Zgoda obejmująca całą kolekcję pozostaje w mocy, dopóki użytkownik nie cofnie jej w osobnej transakcji.
Odbieranie tokenów z airdropu: Fałszywa strona airdropu może ukryć nieograniczoną zgodę lub podpis Permit za zwykłym przyciskiem Claim. Po Twoim potwierdzeniu drainer portfela może przenieść zatwierdzone tokeny lub NFT bez żadnego nowego żądania w portfelu.
Jakie są zagrożenia związane ze zgodami na tokeny?
Niebezpieczna nie jest sama zgoda, lecz to, w co może się z czasem przerodzić. Najbardziej liczą się trzy zagrożenia:
- Nieograniczony limit: Kontrakt może wydać całe obecne i przyszłe saldo zatwierdzonego tokena, a nie tylko kwotę, którą faktycznie zamierzasz wykorzystać.
- Zaległa zgoda: Uprawnienie działa jeszcze miesiące lub lata po ostatnim kontakcie z DApp, więc zapomniana zgoda pozostaje możliwa do wykorzystania.
- Skompromitowany kontrakt: Nawet legalna DApp może zostać zhakowana po nadaniu zgody, oddając atakującemu dostęp już przez Ciebie podpisany.
Czym są drainery portfeli krypto?
Drainer portfela krypto to złośliwe narzędzie, które za pomocą strony phishingowej lub fałszywej DApp nakłania Cię do nadania uprawnienia do przesyłania Twoich tokenów lub NFT. Zamiast zgadywać Twoją tajną frazę, drainer sprawia, że dobrowolnie podpisujesz dostęp, a następnie wykorzystuje go, aby wyprowadzić Twoje najcenniejsze aktywa. Drainery to duże i aktywne zagrożenie: w 2024 roku ukradły 494 mln USD z około 332 000 adresów portfeli, o 67% więcej niż rok wcześniej (Scam Sniffer, 2024).
Jak drainery portfeli wykorzystują zgody na tokeny
Atak drainera zwykle przebiega według przewidywalnego łańcucha kroków:
- Użytkownik trafia na fałszywą stronę mintu, airdropu lub inwestycji.
- Strona prosi użytkownika o połączenie portfela.
- Użytkownik podpisuje zgodę lub podpis permit.
- Drainer skanuje portfel i wskazuje najcenniejsze aktywa.
- Zatwierdzone tokeny lub NFT zostają wyprowadzone bez żadnego nowego potwierdzenia.
Samo połączenie portfela nie pozwala nikomu przenieść Twoich aktywów - niebezpieczeństwo zaczyna się dopiero po podpisaniu zgody lub złośliwej transakcji. Ten jeden podpis to granica między nieszkodliwym połączeniem a opróżnionym portfelem.
Dlaczego odłączenie DApp nie cofa jej zgody
Odłączenie i cofnięcie to dwa różne działania i tylko jedno z nich usuwa uprawnienie kontraktu do wydawania. Odłączenie zamyka interfejs między Twoim portfelem a DApp; zgoda nadal żyje on-chain.
| Działanie | Co robi | Co pozostaje aktywne |
|---|---|---|
| Odłączenie | Zamyka połączenie między portfelem a interfejsem DApp | Wcześniej nadane zgody on-chain |
| Cofnięcie | Usuwa lub resetuje uprawnienie smart kontraktu do wydawania | DApp musi poprosić o nową zgodę, aby ponownie uzyskać dostęp do tokena |
Aby pokazać różnicę, połączyliśmy Gem Wallet z legalną DApp Uniswap i nadaliśmy Permit2 nieograniczoną zgodę na USDC. Po odłączeniu Uniswapa nie pozostały żadne aktywne sesje WalletConnect, ale Revoke.cash nadal pokazywał zgodę z pełnym saldem USDC jako wartością zagrożoną. Odłączenie zamyka jedynie połączenie z DApp - zgoda on-chain pozostaje aż do osobnej transakcji cofnięcia.
Zatwierdź w Uniswapie, odłącz DApp - a zgoda nadal jest aktywna on-chain w Gem Wallet.
Jak cofnąć zgody na tokeny dla DApps: krok po kroku
Cofnięcie zgody zajmuje kilka minut. Oto cały proces w skrócie:
- Otwórz weryfikator zgód.
- Wpisz adres swojego portfela.
- Wybierz blockchain.
- Przejrzyj aktywne zgody.
- Cofnij lub zmniejsz limit.
- Potwierdź transakcję.
- Zweryfikuj wynik.
Przejdźmy przez każdy krok szczegółowo.
Krok 1: Otwórz zaufany weryfikator zgód
Otwórz weryfikator zgód, taki jak Revoke.cash lub Etherscan Token Approval Checker, i wpisz adres samodzielnie, zamiast klikać w link. Istnieją phishingowe kopie tych narzędzi, więc dokładnie sprawdź domenę, zanim cokolwiek podłączysz.
Krok 2: Wpisz adres swojego portfela krypto
Zacznij w trybie tylko do odczytu, wklejając publiczny adres swojego portfela - dzięki temu zobaczysz każdą aktywną zgodę bez łączenia się i podpisywania. Połączenie przez WalletConnect jest potrzebne dopiero wtedy, gdy będziesz gotowy do cofnięcia.
Krok 3: Wybierz właściwy blockchain
Wybierz sieć, w której nadano zgodę, ponieważ każdy blockchain przechowuje własne zgody. Ethereum, BNB Chain, Polygon, Base i inne sieci trzeba sprawdzać osobno - zgoda w jednym blockchainie jest niewidoczna w innym.
Krok 4: Sprawdź spendera i limit
Przy każdym wpisie sprawdź token, smart kontrakt (spender), zatwierdzoną kwotę, datę nadania i wartość zagrożoną. Nieznany spender lub nieograniczona kwota na tokenie, który posiadasz, to najwyraźniejszy sygnał, że zgodę należy usunąć.
Krok 5: Cofnij lub zmniejsz zgodę na token
Usuń całkowicie zgodę, której już nie potrzebujesz, albo zmniejsz limit do kwoty, którą faktycznie planujesz wykorzystać. Kliknięcie Revoke tworzy transakcję, która resetuje limit wydatków dla tego kontraktu do 0.
Krok 6: Potwierdź transakcję w swoim portfelu
Żądanie otwiera się w Twoim portfelu, na przykład w Gem Wallet, przez WalletConnect. Zanim potwierdzisz, sprawdź, czy:
- Kwota: Zatwierdzony limit zmienia się na 0 USDC.
- Kontrakt: USDC.
- Metoda: Approve.
- Spender: Permit2.
- Sieć: Ethereum.
Potwierdzenie wymaga opłaty sieciowej (na przykład w ETH), ponieważ to właśnie ta transakcja on-chain faktycznie usuwa uprawnienie. Zatwierdź ją w Gem Wallet, aby ją wysłać.
Krok 7: Sprawdź, czy zgoda została usunięta
Odśwież Revoke.cash i potwierdź, że zgoda zniknęła lub jej kwota się zmieniła. W naszym teście pulpit pokazał 0 zgód, 0 USD wartości zagrożonej i pustą listę zgód - dowód, że kontrakt nie może już wydawać USDC, dopóki nie poprosi ponownie.
Kliknij Revoke, potwierdź limit 0 USDC w Gem Wallet i sprawdź, że zgoda zniknęła.
Które zgody na tokeny warto cofnąć?
Nie każdą zgodę trzeba usuwać, ale niektóre są oczywistymi kandydatami. Cofnij zgodę, gdy:
- Nieużywana DApp: Nie korzystasz już z DApp, która ją posiada.
- Nieznany spender: Nie rozpoznajesz kontraktu spendera.
- Nieograniczona kwota: Zgoda została nadana na nieograniczoną kwotę.
- Stara oferta NFT: Uprawnienie jest powiązane z ofertą NFT, którą już zamknięto.
- Zgłoszony hack: Projekt ujawnił hack lub exploit.
- Podejrzane źródło: Zgoda pojawiła się po wątpliwym mincie lub airdropie.
- Zapomniany powód: Nie pamiętasz, po co w ogóle została nadana.
Co zrobić, jeśli Twój portfel krypto już został opróżniony
Natychmiast cofnij każdą aktywną zgodę: cofnięcie zatrzymuje dalsze wydatki, ale nie odzyska aktywów, które już zostały skradzione. Jeśli Twoja tajna fraza lub klucz prywatny wyciekły, utwórz nowy portfel na czystym urządzeniu i przenieś tam pozostałe środki. Jeśli adres obserwuje bot typu sweeper, nie wysyłaj gazu na skompromitowany adres bez osobnego planu ratowania aktywów.
Jak korzystać z DApps i nie dać się opróżnić
Cofanie porządkuje uprawnienia, które już nadano - ale bezpieczniejszym nawykiem jest wychwycenie ryzykownej zgody, zanim ją w ogóle podpiszesz. Kilka zasad pokrywa większość przypadków:
- Zweryfikuj domenę: Sprawdź dokładny adres URL DApp przed połączeniem.
- Ignoruj przynętę na zgodę: Nie podpisuj niejasnych zgód tylko po to, by odebrać airdrop.
- Ogranicz kwotę: Ustaw limit zatwierdzanej kwoty, zamiast nadawać nieograniczoną.
- Uważaj na setApprovalForAll: Traktuj uprawnienia obejmujące całą kolekcję NFT ze szczególną ostrożnością.
- Sprawdź spendera: Upewnij się, że adres spendera należy do prawdziwego protokołu.
- Regularnie czyść: Usuwaj stare zgody według harmonogramu.
- Izoluj ryzyko: Używaj osobnego portfela do nowych i niezaufanych DApps.
Korzystaj z DApps w ponad 100 blockchainach z Gem Wallet - w pełni otwartoźródłowym, niekustodialnym portfelu, który przechowuje klucze prywatne na Twoim urządzeniu i nie zbiera danych osobowych. Pobierz Gem Wallet i łącz się z aplikacjami zgodnymi z WalletConnect, zachowując pełną kontrolę nad swoimi kluczami.


