Masz dość czytania o "phishingu", jakby to był ten sam trik co dziesięć lat temu z fałszywym mailem od banku? Na Solanie ta gra dawno się zmieniła. Nikt już nie musi wyciągać od ciebie seed phrase. Wystarczy, że klikniesz "Approve" na jednej transakcji, a portfel – z twoim kluczem prywatnym bezpiecznie na miejscu – zostaje wyczyszczony do zera w kolejnej sekundzie.

Brzmi jak paranoja? Zapytaj kogokolwiek, kto zminusował SOL, tokeny SPL i pozycję stakingową jednym podpisem pod "darmowym airdropem". Nie łudź się, że to problem "nieogarniętych degenów" – ofiarami padają traderzy, którzy siedzą na rynku od lat. Ta architektura Solany, która daje ci grosze za transakcję i przepustowość rodem z Sealevel, to ta sama architektura, która otwiera napastnikom pole do gry na poziomie uprawnień kont, a nie kluczy prywatnych.

Anatomia drenażu: instrukcje, które oddają kontrolę bez twojej wiedzy

Każdy token SPL i jego młodszy brat SPL-2022 siedzi na osobnym koncie – Associated Token Account (ATA), przypisanym do twojego adresu. Zapamiętaj to, bo napastnicy w ogóle nie mierzą w twój główny portfel. Mierzą w strukturę uprawnień w tych kontach. To jak różnica między włamaniem do sejfu a wyłudzeniem od ciebie podpisu na pełnomocnictwie do sejfu – efekt ten sam, metoda zupełnie inna.

Najprostszy numer to wyłudzenie podpisu pod Approve (albo jej rozwinięciem, ApproveChecked). Ta instrukcja daje pełnomocnikowi prawo do przesyłania lub palenia określonej puli twoich tokenów. Złośliwy dApp sprzeda ci to jako "weryfikację portfela" albo odbiór freebie. Podpisujesz, na oko nic się nie zmienia – a napastnik osobną transakcją, z zupełnie innego adresu, odpala Transfer albo TransferChecked i zabiera dokładnie tyle, na ile go upoważniłeś. To nie kradzież w klasycznym sensie. To ty wystawiłeś mu opcję na własne aktywa i on ją właśnie zrealizował.

Groźniej robi się przy SetAuthority. Ta instrukcja zmienia lub unieważnia role zarządcze w kontach Mint i ATA. Zmiana roli AccountOwner na adres napastnika to koniec gry – twoje konto tokenowe formalnie należy już do kogoś innego, bez apelacji. Zmiana CloseAccount pozwala obcemu zamknąć twoje konto i zgarnąć zdeponowaną tam rentę w SOL. Podpisz to raz, a stracisz kontrolę nad kontem na trwałe – twój klucz prywatny może być czysty jak łza, to nic nie zmienia.

Jeszcze bardziej fundamentalna jest natywna instrukcja Assign z Solana System Program. Domyślnie twoje konto zarządzane jest przez System Program. Assign potrafi przepiąć zarządzanie na dowolny kontrakt napastnika. Od tej chwili to jego kod dyktuje, co dzieje się z twoim stanem konta i twoim SOL – z pominięciem standardowego okienka zatwierdzania, które znasz z Phantoma.

Standard SPL-2022 dorzucił kolejną amunicję. Rozszerzenie PermanentDelegate pozwala emitentowi tokena wpisać sobie stałego pełnomocnika już na etapie tworzenia Mint – taki pełnomocnik zabiera lub pali twoje tokeny bez podpisu, bez pytania, zawsze. Do tego Transfer Fee Config, który potrafi ukryć opłatę sięgającą 100% wartości transferu, płynącą prosto na konto napastnika. Zanim dotkniesz nowego tokena SPL-2022, sprawdź te dwa rozszerzenia w jego strukturze Mint – to pięć minut, które oszczędzą ci całego portfela.

Wektor ataku Instrukcja Mechanizm Skutek dla ciebie
Delegacja tokenów Approve / ApproveChecked Przyznanie limitu wydatkowego obcemu adresowi Utrata puli tokenów w osobnej transakcji
Przejęcie ATA SetAuthority Zmiana właściciela konta tokenowego Trwała utrata konta i aktywów
Przejęcie konta głównego Assign (System Program) Zmiana programu zarządzającego kontem Pełna kontrola napastnika nad SOL i stanem konta
Nadużycie SPL-2022 PermanentDelegate Stały pełnomocnik zapisany w Mint Drenaż bez potrzeby twojego podpisu
Żaden z tych ataków nie wymaga wycieku frazy seed. Jeśli ktoś mówi ci "twój seed jest bezpieczny, więc jesteś bezpieczny" – nie ma racji. Na Solanie ryzyko siedzi w uprawnieniach, nie w kluczu.

Symulacja transakcji: dlaczego zielone światło w Phantomie to nie gwarancja

Phantom, jak większość liczących się portfeli, ma silnik symulacji – zwykle od Blowfish albo Blockaid. Zanim podpiszesz, portfel wykonuje transakcję na sucho i pokazuje, co się zmieni na koncie. W teorii masz podgląd przed wejściem w pozycję. W praktyce to zabezpieczenie ma dziury, i profesjonalne grupy DaaS żyją z ich znajdowania.

Pierwsza dziura to błędna interpretacja UI. Złośliwy dApp konstruuje transakcję tak, żeby symulacja pokazała plusa – na przykład fałszywą nagrodę w SOL. W tej samej transakcji, poza kadrem podglądu, jedzie instrukcja Assign. Silnik źle mapuje zagrożenie, oznacza całość jako bezpieczną. Widzisz zielony ekran z plusem. W rzeczywistości podpisujesz przekazanie kontroli nad kontem.

Druga dziura to już wyższa liga: atak czasowy TOCTOU (Time-of-Check to Time-of-Use). Wykorzystuje lukę między momentem symulacji a momentem faktycznego wykonania transakcji na łańcuchu. Model wykonawczy Solany pozwala programom modyfikować konta zapisywalne w dowolnym momencie – to nie bug, to feature, tylko wykorzystany przeciwko tobie.

Mechanika: napastnik wdraża kontrakt z ukrytą zmienną stanu. Podczas symulacji ta zmienna nie istnieje, więc kontrakt wygląda niewinnie i portfel daje zielone światło. Podpisujesz. Zanim twoja transakcja trafi do walidatorów, napastnik wysyła własną transakcję, która przełącza stan kontraktu i uzbraja złośliwą gałąź. Twoja transakcja realizuje się już na zmienionym stanie. Zamiast bezpiecznego przelotu z podglądu – drenaż.

Case study: drainer Vanish Drainer. Kontrakt sprawdzał istnienie konkretnego konta tokenowego jako warunek aktywacji. Podczas symulacji konta nie było – weryfikacja przechodziła czysto. Napastnik utworzył to konto w bloku 247363970. Transakcja ofiary wykonała się siedem bloków później, w bloku 247363977. Różnica: około dwóch sekund. Żaden statyczny silnik symulacji nie miał szans tego złapać.

Jest w tym jeszcze jeden strukturalny problem: portfele w większości opierają się na zewnętrznych API do symulacji, czyli mają pojedynczy punkt awarii. Grupy przestępcze testują nowe struktury wywołań na własnych środowiskach, sprawdzając, czy Blowfish albo Blockaid je złapią. Znajdą lukę – drenaż rusza masowo na setkach domen phishingowych, zanim dostawcy zdążą zaktualizować bazy sygnatur.

Drainer-as-a-Service: przestępczość jako model subskrypcyjny

Zapomnij o obrazie samotnego hakera w kapturze. Ataki na Solanie to dziś zorganizowany biznes – Drainer-as-a-Service (DaaS). Grupy jak Rublevka Team budują gotowe oprogramowanie drenażowe i wynajmują je partnerom za procent od skradzionych środków. Struktura żywcem wzięta z legalnego SaaS-u, tylko klienci płacą łupem, nie kartą.

Te zestawy są operacyjnie sprytne. Automatycznie rozpoznają, jaki portfel masz w przeglądarce, i dobierają scenariusz ataku pod interfejs Phantoma, Solflare albo Backpacka. Jedną transakcją potrafią uderzyć naraz w natywny SOL, tokeny SPL, rozszerzenia SPL-2022, NFT-y i pozycje Native Stake. Kompleksowo, za jednym podpisem – jak jedno zlecenie, które zamyka całe twoje konto brokerskie.

Żeby ominąć skanery, skrypty DaaS dynamicznie zaciemniają kod i masowo generują jednorazowe adresy programów on-chain, znikające zanim ktokolwiek zdąży je oznaczyć. Do tego socjotechnika: fałszywy komunikat "transakcja nieudana, podpisz ponownie w celu weryfikacji". W praktyce każdy kolejny podpis oddaje uprawnienia do następnego konta tokenowego w twoim portfelu.

Jak realnie zabezpieczyć kapitał

Nie ma jednej sztuczki, która cię ochroni. Jest kilka nawyków nałożonych na siebie – i musisz stosować wszystkie, nie wybiórczo.

Rozdziel hot wallet od cold walletu. Hot wallet – do codziennego handlu, mintowania, DeFi – trzymaj z minimalnym saldem operacyjnym. Cold wallet, gdzie leży twój realny kapitał, nigdy nie łącz z żadnym dApp przez przeglądarkę. To nie jest opcja do rozważenia, to twoja polisa ubezpieczeniowa. Portfel sprzętowy dorzuca fizyczne potwierdzenie transakcji na ekranie urządzenia, co eliminuje większość ataków opartych na manipulacji UI.

Podpisałeś Approve nieświadomie? Samo rozłączenie portfela od strony nic nie da. Zagrożenie zostaje aktywne, dopóki nie wywołasz instrukcji Revoke z SPL Token Program – czyści pole delegate na koncie ATA i zeruje delegated_amount. To jedyny sposób, żeby faktycznie zamknąć tę pozycję.

Do audytu i odwoływania uprawnień masz konkretne narzędzia, nie musisz zgadywać:

  • Famous Foxes Revoke (famousfoxes.com/revoke) — podstawowy, rekomendowany w oficjalnych dokumentacjach bezpieczeństwa skaner ATA do odwoływania złośliwych delegacji.
  • Revoke.cash — panel multichainowy do monitorowania i anulowania aktywnych pozwoleń na wielu sieciach naraz.
  • 20lab / Smithii Tools — do trwałego zarządzania uprawnieniami zaawansowanymi: zrzeczenia się mint authority, freeze authority czy prawa do zmiany metadanych.
Typ uprawnienia Skutek revokacji (null) Co to daje
Delegate Allowance Zeruje limit delegata, czyści pole pełnomocnika Blokuje drenaż przez wcześniej zatwierdzone kontrakty
Mint Authority Trwale zamraża podaż tokena Deweloper nie dodrukuje ci tokenów pod nogami
Freeze Authority Gwarancja, że żadne konto nie zostanie zamrożone Ochrona przed zablokowaniem środków przez projekt
Close Authority Blokuje lub trwale usuwa możliwość zamknięcia ATA Chroni rentę SOL zdeponowaną na koncie

Jedna techniczna różnica, o której warto wiedzieć: ustawienie uprawnienia na null to co innego niż wysłanie go na adres spalarni. Null jest czytelną instrukcją w stanie systemu – jasny sygnał dla audytorów i skanerów DEX, że funkcja jest trwale wyłączona. Przekazanie do portfela bez klucza prywatnego daje ten sam efekt, ale niepotrzebnie zajmuje miejsce w pamięci łańcucha i jest mniej czytelne dla narzędzi audytowych.

Spamowe NFT-y same w sobie cię nie okradną – zagrożeniem są linki w nich umieszczone, nie samo ich posiadanie. Funkcja Burn Token w Phantomie usuwa taki token, zamyka jego konto ATA i oddaje ci zarezerwowaną rentę (ok. 0,002 SOL za konto). Drobna kwota, ale porządek w portfelu to też higiena bezpieczeństwa.

Koszt tej ostrożności? Praktycznie zero. Revoke to pojedyncza transakcja za ułamek centa opłaty sieciowej. Portfel sprzętowy to jednorazowy wydatek rzędu kilkuset złotych. Zestaw to przeciw potencjalnej stracie całego portfela – rachunek sam się broni.

Zostałeś zdrenowany – co robisz w pierwszych minutach

Jeśli widzisz nieautoryzowane transfery, liczy się szybkość, nie perfekcja.

  1. Przestań wpłacać na skompromitowany adres. Boty śledzące mempool przejmą każdy nowy depozyt SOL, nawet ten wysłany tylko na pokrycie opłat transakcyjnych.
  2. Odwołaj pozostałe delegacje przez zweryfikowany interfejs (np. Famous Foxes Revoke) na wszystkich niewyczyszczonych kontach ATA.
  3. Ewakuuj resztę aktywów – ocalałe tokeny, pozycje stakingowe – na zupełnie nowy portfel wygenerowany z nowej frazy seed na czystym urządzeniu.
  4. Porzuć skompromitowany adres i seed na stałe. Boty drenażowe monitorują taki adres bez przerwy. Każda próba ponownego użycia kończy się natychmiastową utratą wpłaconych środków.
Strata ze skradzionych kryptoaktywów, mimo bólu, nie zwalnia cię z rozliczenia PIT-38 za rok, w którym miałeś realne zyski z innych transakcji. Podatek Belki (19%) liczysz od dochodu wykazanego w rocznym zeznaniu, a nie od stanu portfela na dziś. Skonsultuj to z doradcą podatkowym, jeśli skala straty jest znacząca – to nie jest coś, co warto zgadywać samodzielnie.

Co dalej

Poleganie wyłącznie na zielonym ekranie symulacji już nie wystarcza – widziałeś dlaczego. Trzy rzeczy realnie zmieniają twoje ryzyko: pełne rozdzielenie hot i cold walletu, portfel sprzętowy do zarządzania kapitałem i regularny audyt przyznanych delegacji. Każdą transakcję zmieniającą uprawnienia zarządcze traktuj jak potencjalny drenaż, dopóki nie udowodni ci inaczej – niezależnie od tego, co pokazuje podgląd.

Deweloperzy portfeli i silników bezpieczeństwa mają swoją robotę do odrobienia: dynamiczna analiza transakcji odporna na TOCTOU i interfejsy, które pokazują SetAuthority, Assign czy Approve wprost jako przekazanie uprawnień, niezależnie od wyniku symulacji bilansu.

Teraz otwórz swój portfel i sprawdź listę aktywnych delegacji na famousfoxes.com/revoke. Jeśli znajdziesz choć jedną, o której nie pamiętasz – odwołaj ją, zanim zrobi to za ciebie ktoś inny.