Na twoim przedmiocie pojawia się oferta kupna na 12,5 ETH, podczas gdy kolekcja zmienia właścicieli w okolicach 0,5 ETH. Liczba jest prawdziwa w tym sensie, że ktoś naprawdę wpisał ją do podpisanego zlecenia. Czego liczba nie mówi, to w jakim tokenie została policzona, a właśnie to jedno pole zamienia transakcję, którą zamierzasz przyjąć, w zupełnie inną transakcję.
Czym naprawdę jest oferta kupna
Oferta kupna to strona kupującego w tym samym schemacie podpisanych zleceń, którego stronę sprzedającego niosą fałszywe oferty. Kupujący nigdzie nie wysyła pieniędzy. Podpisuje wiadomość, w której wskazany jest przedmiot, kwota, kontrakt waluty i termin ważności, a marketplace przechowuje ten podpis i renderuje go jako wiersz na twojej stronie.
W tym momencie na łańcuchu nic się nie poruszyło. Transfer następuje, kiedy przyjmujesz ofertę, bo to twoje przyjęcie jest transakcją realizującą zlecenie: wysyła NFT z twojego portfela i ściąga tokeny kupującego. To ty ją wysyłasz, więc przeczytanie zlecenia jest twoim zadaniem, a nie zadaniem podpisującego.
EIP-712, standard Ethereum do haszowania i podpisywania typowanych danych strukturalnych, nadaje tym wiadomościom czytelny kształt. Powstał przeciwko sytuacji, którą sam opisuje: podpisywane wiadomości są nieprzejrzystym ciągiem szesnastkowym pokazywanym użytkownikowi bez kontekstu o elementach, z których wiadomość się składa. Podpis strukturalny uczynił ofertę czytelną. Nie uczynił jej uczciwą.
Wiersz z walutą rozstrzyga, ile oferta jest warta
Oferta niesie kwotę i adres tokena, w którym ta kwota jest policzona. Strona składa kwotę dużym stopniem pisma, a adresu nie składa nigdzie. W tym układzie zawiera się cała możliwość: kwota jest zawsze tylko ilością czegoś, a co to jest, wskazuje drugie pole.
Symbole tokenów niczego nie identyfikują. W ERC-20 zarówno name, jak i symbol są opcjonalne, a standard mówi wprost, że metoda może służyć poprawie użyteczności, ale interfejsy i inne kontrakty nie mogą zakładać obecności tych wartości. Wdrażający wybiera te ciągi swobodnie, więc kontrakt, którego symbol czyta się dokładnie jak kontrakt opakowanego etheru, kosztuje jedno wdrożenie i może zostać wybity w dowolnej ilości, jakiej zechce jego autor.
Oferta wyrażona w takim tokenie nie jest fałszerstwem i rozliczy się dokładnie tak, jak zapisano: oddajesz przedmiot i dostajesz podaną liczbę jednostek tokena, za którym nie stoi żaden kupujący. Sprawdzeniem jest więc porównanie adresów, a ERC-721 mówi to samo po stronie przedmiotu, nazywając parę adresu kontraktu i identyfikatora tokena globalnie unikalnym i w pełni kwalifikowanym identyfikatorem konkretnego aktywa w łańcuchu Ethereum. Tożsamość mieszka w adresie. Symbole to etykiety narysowane na wierzchu.
Dlaczego wysokość oferty niczego nie dowodzi
Oferta 25 razy powyżej poziomu, na którym kolekcja handlowała, czyta się jak łut szczęścia, a stwierdza coś znacznie słabszego: ile jeden adres deklaruje, że zapłaciłby. Powiedzenie tego nic nie kosztuje. Ofertę można anulować, zanim do niej dotrzesz, i zatrzymuje się ona na terminie wpisanym w jej treść.
Oferty można też tworzyć celowo, żeby ktoś na nie patrzył. Oferty ustawiane między adresami pod jednym operatorem tworzą pozór popytu tak samo, jak wash trading tworzy pozór wolumenu, a ani strona marketplace'u, ani łańcuch nie zapisują, kto którym adresem steruje.
Praktyczną formą tego jest oferta zbudowana po to, by ją zobaczono, a nie po to, by ją zrealizowano. Zakotwicza sprzedającego na liczbie albo ściąga uwagę na kolekcję, podczas gdy inne przedmioty z tej kolekcji są w tę uwagę sprzedawane. Traktuj ofertę jako wypowiedź jednego adresu o samym sobie, a poziom, na którym kolekcja rzeczywiście handluje, zachowaj jako osobne pytanie.
Oferta, która w rzeczywistości jest prośbą o zatwierdzenie
Niektóre powiadomienia o ofertach wcale nie są ofertami. Strona istnieje po to, by postawić przed tobą prośbę o podpis, a prosi o stałe uprawnienie do twojej kolekcji, nie o zakup. ERC-721 definiuje setApprovalForAll jako włączenie lub wyłączenie zatwierdzenia dla strony trzeciej, zwanej operatorem, do zarządzania wszystkimi aktywami wywołującego, a operator z takim uprawnieniem może przenieść każdy przedmiot w kolekcji, nie pytając ponownie, co jest mechanizmem stojącym za drenażem portfela.
Strona waluty ma własną wersję. ERC-2612 dodaje funkcję permit, dzięki której limit można ustawić podpisaną wiadomością zamiast transakcją wysyłaną przez posiadacza, a podpisywane dane są ustrukturyzowane zgodnie z EIP-712. Zatwierdzenie tokenów, które przychodzi tą drogą, nie zostawia transakcji do zauważenia w chwili podpisu, a ERC-20 już ostrzega, że ponowne wywołanie approve nadpisuje bieżący limit nową wartością.
EIP-712 daje ci również pole, które oddziela prawdziwą prośbę od jej kopii. Separator domeny wskazuje kontrakt, dla którego podpis jest ważny, a uzasadnienie wyjaśnia, że separator zapobiega kolizji struktur poza tym identycznych, ponieważ dwie aplikacje mogą dojść do identycznej struktury, która nie powinna być zgodna. Specyfikacja przewiduje, że agenci użytkownika mogą na tej podstawie prowadzić ochronę przed phishingiem pod konkretny kontrakt. W praktyce oznacza to przeczytanie kontraktu weryfikującego w rozkodowanej prośbie, zanim przeczytasz cokolwiek, co strona napisała wokół niej.
Oferty przychodzące spoza marketplace'u
Oferta, która dociera do ciebie wiadomością prywatną, mailem albo linkiem wewnątrz przedmiotu zrzuconego komuś do portfela, pominęła jedyne ogniwo procesu, które w ogóle dawało się sprawdzić: interfejs marketplace'u otwarty przez ciebie. Wiadomość potrafi odtworzyć ten układ co do szczegółu, bo układ jest publiczny.
Nawykiem, który to zamyka, jest wejście na marketplace przez adres zapisany przez ciebie samego i poszukanie oferty właśnie tam. Oferta, która istnieje, będzie na stronie twojego przedmiotu. Ta, która istnieje wyłącznie w wiadomości, ofertą nie jest, a na końcu linku czeka prośba o podpis.
Co wiersz oferty może, a czego nie może obiecać
| Co pokazuje wiersz | Czym to jest | Co to rozstrzyga |
|---|---|---|
| Kwota | Pole w podpisanym zleceniu | Sama z siebie nic |
| Symbol waluty | Dowolny tekst wybrany przez wdrażającego token | Nic |
| Adres kontraktu waluty | Tożsamość oferowanego aktywa | Co naprawdę otrzymasz |
| Termin ważności | Pole w podpisanym zleceniu | Najpóźniejszy moment realizacji, a nie najwcześniejszy moment wycofania |
| Zasoby kupującego | W ogóle nie część zlecenia | Nic, choć zbyt niskie saldo cofa realizację |
Przejdź środkową kolumnę i wzorzec jest taki, że każdy wiersz poza jednym to twierdzenie, a wiersz z adresem to tożsamość. To na niego warto poświęcić uwagę i to jego interfejs renderuje najmniejszym stopniem pisma.
Co sprawdzić, zanim przyjmiesz
| Co sprawdzić | Z czym porównać | Co mówi rozbieżność |
|---|---|---|
| Adres kontraktu waluty | Adres publikowany przez samego emitenta | Płacą ci innym aktywem |
| Kontrakt przedmiotu i identyfikator tokena | Przedmiot, który uważasz za sprzedawany | Zlecenie wskazuje na coś innego |
| Co dokładnie autoryzuje prośba | Działanie, które zamierzałeś wykonać | Dajesz dostęp, a nie sprzedajesz |
| Kontrakt weryfikujący w prośbie | Marketplace otwarty przez ciebie samego | Podpis jest przeznaczony dla cudzego kontraktu |
| Aktualne zatwierdzenia na kolekcji | Operatorzy, których zamierzałeś upoważnić | Uprawnienie nadane wcześniej nadal jest otwarte |
Kolejność ma tu znaczenie. Adres waluty idzie pierwszy, bo rozstrzyga, czy transakcja w ogóle istnieje, a sprawdzenie podpisu idzie przed sprawdzeniem ceny, bo prośbę dającą dostęp nie obchodzi, jaka cena stała na stronie.
Podsumowanie
Oferta kupna to podpisana wiadomość z kilkoma polami, z których marketplace renderuje duże jedno. Kwota jest polem, które przekonuje, adres waluty jest polem, które rozstrzyga, i nigdy nie pokazuje się ich w tym samym rozmiarze. Przeczytanie tego drugiego to cała obrona przed ofertą wyrażoną w tokenie, który skopiował symbol.
Drugą połową jest prośba o podpis. Przyjęcie oferty to sprzedaż, która przenosi jeden przedmiot i płaci ci za niego, a prośba o uprawnienia operatora do całej twojej kolekcji sprzedażą nie jest wcale: w chwili podpisu nie kosztuje nic, a potem daje wszystko. Sprawdź adres waluty, sprawdź, co autoryzuje podpis, i wchodź na marketplace przez adres, który wpisałeś sam. Aby dalej poznawać podstawy, śledź kolejne materiały Bitbase Academy.
Powiązane artykuły
Inne artykuły Bitbase na ten temat:
- Manipulacja ceną minimalną na marketplace'ach NFT
- Bezpieczeństwo logowania w krypto: jak chronić konto
- Oszustwa związane z airdropami i lista bezpieczeństwa przed odebraniem
- Krypto on-ramp vs off-ramp: na czym polega różnica?
- Kultowe monety i przejęcia przez społeczność (CTO)
Zastrzeżenie: ten artykuł to treść edukacyjna Bitbase Academy, wyłącznie w celach informacyjnych. Nie stanowi porady inwestycyjnej, handlowej, podatkowej ani finansowej. Kryptoaktywa są zmienne — samodzielnie oceń ryzyko. Napisano w wrześniu 2026 r.; sprawdzaj aktualne oficjalne informacje.
Źródła
[1] Propozycje ulepszeń Ethereum (EIP), EIP-712: Typed structured data hashing and signing eips.ethereum.org
[2] Propozycje ulepszeń Ethereum (EIP), ERC-20: Token Standard eips.ethereum.org
[3] Propozycje ulepszeń Ethereum (EIP), ERC-721: Non-Fungible Token Standard eips.ethereum.org
[4] Propozycje ulepszeń Ethereum (EIP), ERC-2612: Permit Extension for EIP-20 Signed Approvals eips.ethereum.org






