Dlaczego analiza smart kontraktów jest ważna
Podłączenie portfela do smart kontraktu zawsze wiąże się z ryzykiem. Nowe tokeny i młode protokoły DeFi mogą mieć ukryte uprawnienia, honeypoty, mechanizmy upgrade lub zbyt szerokie prawa właściciela. Ten poradnik pokazuje, jak sprawdzać smart kontrakty przed podłączeniem portfela.
Celem jest prosta procedura dla początkujących: co otworzyć w explorerze, które miejsca w kodzie są krytyczne, jakie czerwone flagi pojawiają się najczęściej i jak ograniczyć ryzyko przed podpisem lub approve.
Sprawdzanie kodu źródłowego smart kontraktu
Pierwszy krok to weryfikacja kodu w explorerze, takim jak Etherscan, BscScan lub Polygonscan. Zweryfikowany kontrakt pokazuje, że opublikowane źródła odpowiadają wdrożonemu bytecode. Można wtedy sprawdzić ABI, strukturę plików oraz zakładki Read Contract i Write Contract.
Otwórz adres kontraktu, przejdź do zakładki Contract i sprawdź status Verified. Nawet bez umiejętności programowania jest to ważny filtr: opublikowany kod można przepuścić przez skanery, a nieweryfikowany kontrakt pozostaje czarną skrzynką.
Krytyczne funkcje i uprawnienia: approve, transferFrom, permit
approve(spender, amount) daje kontraktowi prawo do wydawania tokenów. Potem może on użyć transferFrom i przenieść zatwierdzoną kwotę bez osobnej zgody na każdy ruch. Szczególnie ryzykowne są nieskończone approvale oraz SetApprovalForAll dla NFT.
Praktyczna zasada: zezwalaj tylko na potrzebną kwotę, unikaj uprawnień bez limitu, sprawdzaj komu przyznajesz prawa i cofaj zbędne zgody po użyciu.
Proxy i aktualizacje: dlaczego to ryzyko
Wzorzec proxy pozwala zachować ten sam adres, ale zmienić implementację kontraktu. To wygodne dla dużych protokołów, lecz wymaga dodatkowego zaufania do admina, multisiga lub governance.
Narzędzia analizy: od skanerów statycznych po rozszerzenia
Jedno narzędzie nie wystarcza. Warto łączyć kilka źródeł, bo obejmują różne klasy ryzyka:
- Slither wykrywa typowe błędy Solidity i daje konkretne wskazówki.
- MythX łączy analizę statyczną, wykonanie symboliczne i heurystyki.
- Remix IDE pozwala wykonać podstawową diagnostykę w przeglądarce.
- Token Sniffer sprawdza tokeny pod kątem wzorców scam i honeypotów.
- GoPlus Security ocenia ryzyka tokena, podejrzane akcje i sygnały phishingowe.
- De.Fi Scanner daje raporty zrozumiałe również dla osób nietechnicznych.
- Dodatkowo: Honeypot.is, usługi revoke, Wallet Guard lub Pocket Universe do symulacji podpisu.
Typowe schematy scam w kodzie tokenów
Fałszywe tokeny często używają tych samych mechanizmów:
- Honeypot: kupno działa, ale sprzedaż jest zablokowana dla większości adresów.
- Dynamiczna blokada: trading może być włączany i wyłączany, a adresy trafiają na blacklisty.
- Zmienialne opłaty: owner może podnieść podatek lub fee do poziomu blokującego sprzedaż.
- Nielimitowany mint: nowe tokeny mogą być tworzone bez twardego limitu.
- Wyjęcie płynności: brak locka LP albo nagłe Remove Liquidity na portfel zespołu.
Skanery wykrywają wiele takich sygnałów, ale decyzja nadal należy do użytkownika. Jeśli kilka czerwonych flag występuje razem, nie łącz portfela.
Kontrakty DeFi: płynność, lending, farming
W DeFi wchodzisz nie tylko w tokeny, ale też w pule, protokoły pożyczkowe i farmy. Podstawowe kontrole:
- Pule DEX: lepiej wybierać znane DEX-y; customowe forki mogą mieć ukryte fee lub funkcje wypłaty.
- Lending: sprawdzaj audyty, limity, mechanikę likwidacji i oracles.
- Farming/staking: oceń emisję, limity depozytów i role ownera w kontraktach typu MasterChef.
- Ogólnie: porównaj bug bounty, multisig, TVL, wiek protokołu i historię incydentów.
NFT i minty (ERC-721/1155): podstawowe kontrole
Przed mintem lub handlem sprawdź co najmniej:
- Oficjalny adres: porównaj kontrakt ze źródłami projektu i marketplace.
- Supply cap: poszukaj
maxSupplyi zasad mintu. - Niebezpieczne zgody: strona trzecia nie powinna wymuszać
SetApprovalForAllbez jasnego powodu. - Metadane: IPFS lub Arweave są bardziej odporne niż centralny CDN.
safeTransferFrom i wysłać posiadane NFT do atakującego.OpenZeppelin i rozpoznawalne szablony
Biblioteki OpenZeppelin są dobrym sygnałem, bo implementują szeroko testowane standardy. Szukaj import "@openzeppelin/...", porównuj z kanonicznymi szablonami i sprawdzaj podobne kontrakty. Uwaga: pułapka często nie tkwi w szablonie, lecz w kilku dodanych liniach.
Funkcje tokenów: podatki, blacklisty, anti-whale
Niektóre mechaniki nie są scamem same w sobie, ale zmieniają ryzyko i użyteczność:
- Taxes/fee: opłaty wejścia i wyjścia zmniejszają wynik; kluczowe są twarde limity.
- Blacklist: może walczyć z botami, ale może też uderzać w holderów.
- Anti-whale: limity salda lub transakcji mogą chronić płynność, ale utrudniać normalne transfery.
- Reflections/rewards: automatyczna redystrybucja komplikuje kod i zwiększa ryzyko błędów.
Co sprawdzać w explorerach: historia, wywołania, eventy
Block explorer to główne narzędzie due diligence:
- Oś czasu: data deployu, częstotliwość interakcji i wzorce aktywności.
- Holderzy: koncentracja u największych adresów, udział ownera i adresy giełd.
- Płynność: lock LP, czas trwania i właściciel tokenów LP.
- Read/Write Contract: możliwość zrozumienia funkcji bez polegania wyłącznie na frontendzie.
- Komentarze/labelki: nie są dowodem, ale bywają sygnałem ostrzegawczym.
- Eventy:
Transferz0x0,Approval,OwnershipTransferred,Paused.
Checklist przed podłączeniem portfela
- Sprawdź adres w explorerze: kod, deploy, holderów, podejrzane transakcje, labelki.
- Użyj skanerów: Token Sniffer, De.Fi Scanner, GoPlus.
- Zweryfikuj frontend: URL, źródła oficjalne i brak podejrzanych linków.
- Użyj burner wallet: osobny adres z minimalnym saldem.
- Minimalizuj approvale: unikaj zgód bez limitu.
- Symuluj transakcję: zobacz, co faktycznie zmieni się po podpisie.
- Wiedz, jak cofnąć zgody: regularnie kontroluj listę approvals.
Czego sprawdzenie nie gwarantuje
- Uczciwości frontendu: interfejs może podmienić adres lub dane.
- Uczciwości zespołu: czysty kod nie chroni przed off-chain rug pullem.
- Ekonomii tokena: technicznie poprawny token może spaść do zera.
- Przyszłych zmian: kontrakty upgradeable zmieniają ryzyko w czasie.
- Socjotechniki: kontrola kodu nie chroni przed phishingiem ani ujawnieniem seed phrase.
Podsumowanie
Bezpieczna interakcja ze smart kontraktami wymaga dyscypliny, narzędzi i rozsądku. Minimum to weryfikacja kodu, skanery, czytanie approvals i zrozumienie tego, co portfel pokazuje przed podpisem.
Żadne narzędzie nie daje pełnej gwarancji. Łącz źródła, zaczynaj od burner wallet i regularnie cofaj zbyt szerokie uprawnienia.
approve, obserwuj proxy upgrades i miej pod ręką narzędzia revoke.