Powrót do bloga

POD MASKĄ

Anatomia transakcji: co się dzieje między kliknięciem a potwierdzeniem

Klikasz „potwierdź", a potem gapisz się dziesięć sekund na kółko. Rozłożymy na czynniki pierwsze, co się w tych sekundach dzieje, dlaczego płacisz opłatę i co właściwie oznaczają wszystkie te pola w szczegółach transakcji.

Między kliknięciem „potwierdź" a zobaczeniem „gotowe" mija kilka sekund, w których dzieje się zaskakująco dużo. Kiedy już wiesz co, dwie rzeczy, które denerwują ludzi najbardziej, przestają być zagadką: dlaczego czasem to trwa i dlaczego płacisz opłatę nawet za nieudaną transakcję.

Transakcja to podpisane polecenie, a nie przelew pieniędzy

Nie przesuwasz monet jak plików. Tworzysz instrukcję — „wyślij tyle z adresu A na adres B" — i podpisujesz ją swoim kluczem prywatnym. Sam klucz nigdy nie opuszcza twojego urządzenia; podpis to matematyczny dowód, że polecenie pochodzi od tego, kto go trzyma. Sieć je weryfikuje i aktualizuje stan.

Właśnie dlatego podpisywanie to tak wrażliwy akt. Podpisujesz treść, nie intencję. Jeśli strona oszustów podsunie ci polecenie w stylu „pozwól mi zarządzać całym twoim USDC", a ty przeklikasz się przez to, sieć posłusznie wykona dokładnie to, co podpisałeś.

Przejdź tę drogę sam

Ustaw opłatę i wyślij transakcję. Zobaczysz, gdzie czeka i dlaczego opłaca się zapłacić:

Droga transakcji opłata zmienia czas czekania w kolejce
  1. Podpis Twój portfel podpisuje instrukcję twoim kluczem prywatnym. Klucz nigdy nie opuszcza twojego urządzenia.
  2. Mempool Transakcja czeka w kolejce nieprzetworzonych. To tutaj opłata decyduje o kolejności.
  3. W bloku Walidator umieścił ją w bloku. Od tego momentu jest w łańcuchu.
  4. Potwierdzona Kolejne bloki piętrzą się na niej. Im więcej ich jest, tym trudniej ruszyć historię.
czeka na ciebie

Opłata: kto ją dostaje i za co

Każda operacja w sieci kosztuje pracę obliczeniową, mierzoną w jednostkach zwanych gazemJednostka kosztu obliczeniowego. Zwykły przelew kosztuje 21 000 gazu, złożony trade przez kontrakt spokojnie może kosztować dziesięć razy tyle.. Ile gazu zużywa dana operacja, jest ustalone. Ile płacisz za jednostkę, to aukcja — a gdy sieć jest zajęta, wygrywa ten, kto zaoferuje więcej.

To daje nam nieprzyjemną zasadę: płacisz opłatę za wykonaną pracę, nie za sukces. Jeśli transakcja zawiedzie w połowie, praca już się odbyła, a sieć i tak cię za nią obciąża. Dlatego przy każdym nowym kontrakcie warto najpierw wysłać małą kwotę testową.

Na Polygonie to na szczęście drobne Podczas gdy na Ethereum opłata w szczytowych momentach potrafi wystrzelić do dziesiątek dolarów, na Polygonie zwykle mieści się w groszach. Mimo to potrzebujesz trochę POL na adresie — bez tego nie przejdzie nawet najtańsza transakcja.

Rozłóż ją na części

Otwórz transakcję w eksploratorze bloków, a wysypie się na ciebie tabela pól. Kliknij dowolne z nich, a powiemy ci, co oznacza:

Sekcja zwłok transakcji kliknij pole

Kiedy transakcja utyka

Czasem transakcja po prostu wisi w mempoolu i nic się nie dzieje — zaoferowałeś za mało i kolejka wciąż ją pomija. Rozwiązanie tkwi w polu nonce: wysyłasz nową transakcję z tym samym nonce, ale wyższą opłatą. Sieć przetwarza tylko jedną z nich, a stara po cichu odpada. W portfelu nazywa się to „speed up" albo „cancel" i dokładnie to właśnie robi.

Konsekwencja tej samej zasady: transakcje z jednego adresu są przetwarzane w kolejności nonce. Jeśli ta pod numerem 42 utknęła, numer 43 nie przejdzie, bez względu na to, ile jest gotów zapłacić.

Ile potwierdzeń wystarczy

Gdy transakcja trafi już do bloku, technicznie przeszła. Ale zaraz po włączeniu jej sieć wciąż może przetasować kilka ostatnich bloków (reorgSytuacja, w której sieć rozstrzyga między dwoma konkurencyjnymi końcami łańcucha zaproponowanymi niemal w tym samym momencie i odrzuca jeden z nich. Dotyczy to tylko kilku ostatnich bloków — głęboka historia nigdy nie jest ruszana.), więc czekasz, aż nabuduje się na niej więcej bloków. Małe kwoty potrzebują tylko garstki potwierdzeń; duże czekają na finalność — punkt, w którym cofnięcie kosztowałoby atakującego więcej, niż by zyskał.

Dla nas liczy się, że cały ten proces jest publiczny na każdym etapie. Widzimy transakcję sharka w momencie, gdy trafia do mempoola — czyli zanim jeszcze znajdzie się w bloku. Właśnie stąd bierze się przewaga, na której działa PolyTips.

Najgroźniejsza transakcja to ta nudna „Approve" nie przelewa ani centa, więc wygląda niegroźnie. Tymczasem daje kontraktowi prawo do poruszania twoimi tokenami — czasem bez limitu i na zawsze. Zatwierdzaj tylko tam, gdzie naprawdę zamierzasz handlować, i od czasu do czasu odwołuj stare zgody.

Co z tego wynika

  • Transakcja to podpisane polecenie. Podpisujesz treść, nie intencję — czytaj, przez co się przeklikujesz.
  • Płacisz opłatę za pracę, nawet gdy transakcja zawiedzie. Testuj małą kwotą.
  • nonce decyduje o kolejności. Wyprzedź utkniętą transakcję nową, z tym samym nonce i wyższą opłatą.
  • W bloku = się wydarzyło. Potwierdzenia na niej = teraz się już nie ruszy.
  • „Approve" to najcichsza i najgroźniejsza transakcja, jaką kiedykolwiek podpiszesz.

To pokrywa podstawy: rynek, portfel, łańcuch i transakcję. Reszta to cierpliwość — i obserwowanie, dokąd płyną duże pieniądze.