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.
