Przy zakupie NFT albo wymianie tokenów możesz zatwierdzić transakcję, a chwilę później zobaczyć, że aktywa trafiły pod niewłaściwy adres. Smart kontrakt zwykle wykona wtedy zapisany w nim warunek automatycznie, ale jego działanie zależy od kodu, uprawnień i danych, z których korzysta. Samo słowo „smart” nie oznacza, że program rozumie umowę ani ochroni Cię przed błędnym kliknięciem.

Kod automatyzuje reguły, ale nie ocenia, czy są dla Ciebie korzystne
- Smart kontrakt to program w blockchainie, który uruchamia określone funkcje po otrzymaniu transakcji.
- Odczyt danych z kontraktu zwykle nie zmienia jego stanu; zapis, na przykład wymiana tokenów, wymaga transakcji i opłaty sieciowej.
- Oracle dostarcza kontraktowi informacje spoza blockchaina, ale wprowadza dodatkowe źródło ryzyka.
- ERC-721 opisuje sposób śledzenia i przesyłania NFT, nie gwarantuje praw do dzieła ani jego trwałego przechowywania.
- Podpis przed transakcją może przyznać aplikacji szerokie uprawnienia do tokenów, dlatego sprawdź, co dokładnie zatwierdzasz.
Smart kontrakt wykonuje instrukcje, a nie rozstrzyga, co strony miały na myśli
Wyobraź sobie automat z napojami: wybierasz produkt, wrzucasz pieniądze, a urządzenie sprawdza warunek i wydaje towar. Program zapisany w blockchainie działa podobnie. Po wywołaniu funkcji sprawdza dane transakcji i stan sieci, a potem wykonuje zakodowane instrukcje. Nie interpretuje niejasnych ustaleń ani nie pyta, czy ktoś popełnił błąd.
Na Ethereum taki program ma adres i może przechowywać dane oraz aktywa. Użytkownik wchodzi z nim w interakcję przez portfel, podpisując transakcję. Jak opisuje dokumentacja Ethereum, odczyt informacji nie zmienia stanu blockchaina, natomiast zapis, taki jak transfer tokena czy wybicie NFT, wymaga transakcji i zużywa gas, czyli opłatę za wykonanie operacji.
Właśnie tu łatwo o pomyłkę: przycisk „Połącz portfel” może służyć tylko do odczytu adresu, a „Zatwierdź” może uruchomić operację albo udzielić kontraktowi zgody na dysponowanie tokenami. Podpis nie jest samą formalnością; liczy się to, jaką funkcję i jakie uprawnienia obejmuje.
Kontrakt nie sprawdzi sam, czy paczka dotarła ani jaka jest cena rynkowa
Blockchain widzi dane zapisane w swojej sieci, nie widzi kuriera pod drzwiami ani ceny waluty na zewnętrznej giełdzie. Jeśli kontrakt ma zareagować na takie zdarzenie, potrzebuje pośrednika danych zwanego oracle. Oracle pobiera informację spoza łańcucha i przekazuje ją do programu, a więc jego wiarygodność staje się częścią całego mechanizmu.
Przy płatności za usługę warunek „zapłać po dostarczeniu” nie zadziała sam, jeśli sieć nie dostanie wiarygodnego potwierdzenia dostawy. Automatyzacja usuwa część ręcznej obsługi, ale nie usuwa zaufania; przesuwa je na kod, konfigurację i źródło danych. W przypadku DeFi błędna lub opóźniona cena dostarczona przez oracle może wpłynąć na rozliczenie, choć sam kontrakt działa zgodnie z instrukcjami.
Uważam, że właśnie ten podział jest najuczciwszym sposobem opisywania smart kontraktów: kod automatyzuje decyzję, lecz nie gwarantuje poprawności informacji, na których tę decyzję oparto. To ograniczenie widać także przy tokenach NFT.
ERC-721 śledzi NFT, ale nie potwierdza praw do obrazu
W NFT warto oddzielić token od pliku i od praw do utworu. Standard ERC-721 określa podstawowy sposób identyfikowania, śledzenia i przesyłania niewymienialnych tokenów. Unikalny identyfikator tokena wraz z adresem kontraktu wskazuje konkretny NFT w danej sieci, ale sam standard nie przesądza, czy kupujący otrzymuje prawa autorskie ani czy obraz będzie dostępny bezterminowo.Metadane, czyli informacje opisujące NFT, mogą wskazywać na plik przechowywany poza blockchainem. Jeśli ten plik zniknie albo serwer przestanie działać, zapis tokena może pozostać w sieci, podczas gdy grafika przestanie się wyświetlać. Posiadanie NFT i posiadanie praw do dzieła to różne rzeczy; przed zakupem sprawdź warunki sprzedaży oraz sposób przechowywania pliku.
To dobry przykład różnicy między standardem technicznym a obietnicą handlową. Standard porządkuje komunikację między portfelami i aplikacjami, lecz nie jest certyfikatem wartości ani gwarancją, że każdy projekt z napisem „NFT” działa tak samo.
Nie każdy smart kontrakt podlega unijnym wymogom dla udostępniania danych
W obiegu łatwo spotkać twierdzenie, że prawo UE ustanowiło jeden zestaw wymogów dla wszystkich inteligentnych kontraktów. To zbyt szerokie ujęcie. Artykuł 36 Data Act ma określony zakres: dotyczy smart kontraktów wykorzystywanych do wykonywania umów o udostępnianie danych, a nie automatycznie każdej transakcji w DeFi czy każdego NFT.
Data Act stosuje się od 12 września 2025 roku. W zakresie wskazanym w artykule 36 rozporządzenie przewiduje między innymi wymogi dotyczące odporności, kontroli dostępu i bezpiecznego zatrzymania lub przerwania działania. Szczegóły znajdziesz w rozporządzeniu UE 2023/2854. Dla użytkownika oznacza to, że sama obecność blockchaina nie odpowiada na pytanie, jakie przepisy mają zastosowanie do konkretnej usługi.
Jeśli korzystasz z aplikacji związanej z udostępnianiem danych, sprawdź, kto wdrożył kontrakt i jaka umowa opisuje działanie usługi. Zakres prawny zależy od funkcji kontraktu i relacji między stronami, nie wyłącznie od technologii, na której go uruchomiono.
Po podpisaniu sprawdź uprawnienie, a nie tylko historię transakcji
Transakcje w blockchainie bywają nieodwracalne, a błąd w kodzie zwykle nie znika po wykryciu. Dokumentacja Ethereum podkreśla, że wdrożonego kodu często nie da się łatwo zmienić, by naprawić lukę, zaś audyt pomaga wychwycić część błędów, ale nie daje gwarancji ich braku. „Zaudytowany” nie znaczy „wolny od ryzyka”.
Jeśli coś wygląda inaczej, niż zakładano, rozpoznaj rodzaj problemu, zanim podejmiesz kolejne kroki:
| Sytuacja | Prawdopodobna przyczyna lub skutek | Co zrobić |
|---|---|---|
| Portfel prosi o zgodę na tokeny, choć chcesz tylko sprawdzić saldo | Żądanie może dotyczyć uprawnienia do wydawania tokenów, nie samego odczytu | Przerwij i sprawdź nazwę funkcji oraz zakres zgody w portfelu |
| Transakcja jest podpisana, ale aktywa nie dotarły | Operacja mogła nie zostać potwierdzona albo wykonać inną funkcję niż oczekiwana | Sprawdź status i szczegóły transakcji w eksploratorze właściwej sieci; nie podpisuj kolejnej na ślepo |
| Tokeny zniknęły po wcześniejszym zatwierdzeniu aplikacji | Kontrakt mógł wykorzystać udzielone wcześniej uprawnienie | Sprawdź aktywne zgody i rozważ ich cofnięcie w narzędziu portfela lub sieci; zgłoś incydent platformie |
| Transakcja zakończyła się powodzeniem, ale dane NFT nie ładują się | Token może istnieć, a plik lub metadane poza łańcuchem mogą być niedostępne | Zweryfikuj adres kontraktu i identyfikator tokena, a następnie sprawdź źródło metadanych |
Przy podejrzanym podpisie nie wpisuj ponownie frazy odzyskiwania portfela na stronie, która obiecuje „cofnąć” transakcję. Fraza odzyskiwania daje kontrolę nad portfelem, więc przekazanie jej może umożliwić kolejną kradzież. Tekst ma charakter informacyjny i nie zastępuje porady prawnej ani finansowej; przy utracie środków skonsultuj się z prawnikiem lub doradcą, a incydent zgłoś odpowiedniej platformie i właściwym organom.
Przed podpisem ustal, co dokładnie oddajesz pod kontrolę kodu
Najbezpieczniej traktować każdy podpis jak zgodę na konkretną operację, a nie jak kliknięcie „dalej”. Sprawdź sieć, adres kontraktu, funkcję oraz zakres przyznawanego uprawnienia; jeśli komunikat portfela jest nieczytelny, wstrzymaj transakcję i zweryfikuj ją w dokumentacji aplikacji lub u jej oficjalnego operatora.
Smart kontrakt potrafi wykonać regułę szybciej niż człowiek, ale nie potrafi ocenić, czy ta reguła jest rozsądna, zgodna z obietnicą sprzedawcy ani oparta na prawdziwych danych. Gdy patrzysz na ekran zatwierdzenia, najważniejsze pytanie brzmi więc nie „czy to blockchain?”, lecz „jaką dokładnie kontrolę przekazuję?”