Jak sprawdzić, co podpisujesz w portfelu

Najgroźniejsze błędy w portfelu często wyglądają jak zwykłe kliknięcie Sign, Confirm, Approve albo Permit. Zanim podpiszesz, sprawdź domenę aplikacji, sieć, typ operacji, kontrakt, spendera, kwotę, limit i symulację. Seed phrase nigdy nie jest potrzebna do podpisania transakcji.

Opublikowano

Krok 1: sprawdź kontekst przed oknem portfela

Zanim patrzysz na okno portfela, sprawdź stronę, z której przyszło żądanie podpisu. Domena, zakładka, adres aplikacji i sieć powinny pasować do czynności, którą sam zacząłeś.

Jeżeli kliknąłeś link z reklamy, wiadomości prywatnej, komentarza albo fałszywego claimu, zatrzymaj się. To typowy scenariusz phishingu: interfejs może wyglądać znajomo, ale żądanie podpisu prowadzi do innego kontraktu.

Portfel pokazuje skutki na tyle dobrze, na ile aplikacja, portfel i standard podpisu potrafią je opisać. Pierwszy filtr to zawsze źródło żądania: skąd przyszło i czy pasuje do akcji, którą świadomie rozpocząłeś.

Krok 2: rozpoznaj typ operacji

Transfer przenosi ETH albo tokeny. Approval daje kontraktowi prawo użycia tokena do określonego limitu, czyli ustawia allowance. Permit może dać podobne uprawnienie podpisem off-chain, bez osobnej transakcji approval.

Swap wymienia tokeny przez kontrakt lub agregator. Bridge przenosi aktywo między sieciami albo tworzy reprezentację tokena po drugiej stronie. Claim zwykle odbiera token, NFT albo nagrodę, ale fałszywe claimy często próbują wyciągnąć approval, permit albo zgodę przez Permit2.

Zwykła wiadomość logowania nie powinna przenosić środków, ale nadal może tworzyć ryzyko, jeśli podpisujesz niezrozumiałą treść albo żądanie podszywa się pod znany standard. Nie podpisuj pustych, losowych ani nieczytelnych komunikatów.

Co oznaczają popularne komunikaty

Send / Transfer
Przeniesienie aktywa. Sprawdź odbiorcę, token, kwotę, sieć i opłatę.
Approve
Zgoda dla spendera na użycie tokena. Sprawdź limit, token i adres spendera.
Permit
Podpis, który może ustawić allowance bez osobnej transakcji on-chain. Sprawdź token, spendera, wartość i deadline.
Sign message
Podpis wiadomości, często do logowania. Sprawdź, czy treść jest czytelna i czy nie udaje zgody na operację finansową.
Contract interaction
Wywołanie funkcji kontraktu. Sprawdź aplikację, metodę, symulację i skutki dla tokenów.

Krok 3: odczytaj spendera, kwotę i limit

Przy tokenach ERC-20 najważniejsze pola to token, spender i allowance. Token mówi, którego aktywa dotyczy zgoda. Spender to adres, zwykle kontrakt aplikacji, który po zgodzie może używać danego tokena z Twojego portfela do ustalonego limitu.

Jeżeli portfel pokazuje unlimited, infinite albo bardzo wysoką wartość, sprawdź, czy aplikacja faktycznie potrzebuje tak szerokiego limitu. W wielu portfelach można ustawić spending cap niższy niż domyślny.

Przy permitach sprawdź też deadline i verifying contract. Podpis może nie kosztować gazu w momencie podpisania, ale później aplikacja lub atakujący może użyć go on-chain, jeśli jest ważny i daje spenderowi prawo do tokena.

Krok 4: użyj symulacji i eksploratora

Przy większej kwocie sama nazwa przycisku nie wystarcza. Użyj portfela z podglądem skutków, symulacji transakcji albo eksploratora bloków, który pokazuje kontrakt, metodę i przewidywane zmiany sald.

Symulacja nie jest gwarancją bezpieczeństwa. Może wyglądać poprawnie, ale stan kontraktu może zmienić się przed wykonaniem transakcji. Może też nie uwzględnić złośliwej logiki aktywowanej w innym kontekście.

Jeśli kontrakt jest niezweryfikowany, metoda nieczytelna, domena podejrzana albo portfel pokazuje utratę tokenów, których nie spodziewałeś się ruszać, przerwij proces. Brak pewności jest wystarczającym powodem, żeby nie podpisywać.

Krok 5: sprawdź skutki po podpisie

Po transakcji sprawdź hash transakcji w eksploratorze właściwej sieci. Porównaj tokeny, kwoty, kontrakty i status wykonania.

Jeżeli podpis obejmował approval albo permit, sprawdź później uprawnienia w approval checkerze. Cofnij stare albo niepotrzebne zgody, zwłaszcza po użyciu nowej aplikacji, claimu albo mało znanego DEX-a.

Gdy problem dotyczy złej zgody tokenowej, cofnij zgodę i rozważ przeniesienie zagrożonego tokena na inny adres. Gdy mogło dojść do wycieku seed phrase albo klucza prywatnego, traktuj cały portfel jako przejęty i przenieś środki na nowy portfel utworzony z nową seed phrase.

Seed phrase nigdy nie jest częścią podpisu

Portfel podpisuje transakcję lokalnie. Aplikacja nie potrzebuje seed phrase, klucza prywatnego, pliku backupu ani kodu odzyskiwania. Strona prosząca o takie dane nie pomaga w podpisie, tylko próbuje przejąć portfel.

Najczęstsze pytania

Zwykła, czytelna wiadomość logowania nie przenosi tokenów sama z siebie. Ryzyko pojawia się, gdy podpis dotyczy permitu, zlecenia off-chain, delegacji uprawnień albo niezrozumiałej struktury akceptowanej później przez kontrakt.

Nie. Approval nie przenosi tokenów od razu. Daje spenderowi prawo użycia tokena do określonego limitu. Jeśli spender jest złośliwy albo zostanie przejęty, może później wykorzystać przyznane uprawnienie.

Nie w pełni. Hardware wallet chroni klucz prywatny przed wyciekiem z komputera, ale nadal może podpisać złą transakcję, jeśli ją zaakceptujesz na urządzeniu.

Najpierw rozpoznaj typ ryzyka. Przy złej zgodzie tokenowej cofnij zgodę i przenieś zagrożony token, jeśli limit nadal może być użyty. Przy możliwym wycieku seed phrase albo klucza prywatnego utwórz nowy portfel z nową seed phrase i przenieś środki z zagrożonego adresu.