
Mempool: gdzie twoja transakcja czeka, zanim stanie się prawdziwa
Naciskasz „wyślij”, a portfel informuje, że transakcja została rozgłoszona. Eksplorator ją pokazuje, ale jako „oczekującą”, a nie potwierdzoną. Przez kilka sekund, minut, a czasem godzin twoja transakcja jednocześnie istnieje i nie istnieje.
Miejsce, w którym przebywa w tym czasie, nazywa się mempool. Zrozumienie go wyjaśnia, dlaczego opłaty zmieniają się z minuty na minutę, dlaczego niektóre transakcje utykają i dlaczego oczekująca transakcja jest obietnicą, a nie płatnością.
Czym właściwie jest mempool
„Mempool” to skrót od memory pool, czyli puli pamięci. To zbiór ważnych, niepotwierdzonych transakcji, które węzeł przechowuje w pamięci, czekając, aż producent bloków je wybierze.
Pierwsza niespodzianka: nie istnieje jeden mempool. Każdy węzeł prowadzi własny. Gdy rozgłaszasz transakcję, portfel przekazuje ją węzłowi, który ją sprawdza i przesyła swoim sąsiadom, a ci przekazują ją dalej. W ciągu kilku sekund większość sieci ma jej kopię, ale pula każdego węzła może się nieco różnić w zależności od tego, co do niego dotarło, jakie ma limity rozmiaru i jakie stosuje własne reguły.
Transakcja w mempoolu przeszła podstawowe kontrole: podpisy są ważne, a monety, które wydaje, istnieją. Nie została jednak dołączona do bloku i dopóki to nie nastąpi, nadal może nie dojść do skutku.
Jak wybierane są transakcje
Miejsce w bloku jest ograniczone, a producenci bloków – górnicy w łańcuchach proof-of-work, walidatorzy w łańcuchach proof-of-stake – zarabiają częściowo na opłatach. Mówiąc ogólnie, wypełniają więc bloki transakcjami, które płacą najwięcej za zajmowane miejsce.
W Bitcoinie i podobnych łańcuchach oznacza to stawkę opłaty: satoshi za wirtualny bajt, a nie łączną opłatę. Mała transakcja z umiarkowaną opłatą może wyprzedzić dużą, która płaci więcej w sumie. W Ethereum i innych łańcuchach EVM chodzi o napiwek priorytetowy doliczany do opłaty bazowej, którą sieć sama dostosowuje z bloku na blok.
Dlatego opłaty rosną i spadają wraz z popytem. Gdy w mempoolu jest spokojnie, niemal każda rozsądna opłata trafia do następnego bloku. Gdy jest tłoczno – popularny debiut, panika na rynku, fala aktywności – transakcje licytują się nawzajem, a te z niską opłatą stoją i czekają.
Dlaczego transakcje utykają
Transakcja, która zapłaciła za mało jak na bieżące warunki, nie kończy się błędem – czeka. Jeśli popyt pozostaje wysoki, może tkwić w mempoolu długo. Węzły nie trzymają jednak transakcji w nieskończoność: gdy ich pule się zapełniają, usuwają te najsłabiej opłacone, a wiele z nich usuwa wszystko starsze niż mniej więcej dwa tygodnie.
Usunięta transakcja nigdy nie została potwierdzona, więc środki nigdy się nie przemieściły – ale dopóki nie zniknie wszędzie, nadal może zostać potwierdzona później. To niewygodny stan pośredni: płatność ani nie jest zakończona, ani anulowana.
Rozwiązaniem zwykle jest zapłacić więcej. Replace-by-fee i podobne techniki pozwalają rozgłosić nową wersję tej samej transakcji z wyższą opłatą, która zastępuje starą w mempoolu.
Oczekujące znaczy publiczne
Wszystko w mempoolu jest widoczne. Każdy, kto prowadzi węzeł, i każdy eksplorator może zobaczyć, co zamierzasz zrobić, zanim stanie się to ostateczne: kwoty, adresy, a w łańcuchach ze smart kontraktami dokładną funkcję, którą wywołujesz.
Przy większości przelewów nie ma to większego znaczenia. Przy handlu może mieć. Boty obserwują mempool w poszukiwaniu dużych swapów i umieszczają wokół nich własne transakcje, aby zarobić na ruchu ceny – zarówno front-running, jak i ataki kanapkowe opierają się na tym, że widać twoją transakcję, gdy jest oczekująca.
Ma to znaczenie również dla każdego, kto otrzymuje środki. Oczekująca transakcja przychodząca nadal może zostać zastąpiona lub usunięta. To jeszcze nie są twoje pieniądze.
Od oczekującej do ostatecznej
Dołączenie do bloku to pierwsze potwierdzenie – transakcja opuściła mempool i trafiła do łańcucha. Każdy kolejny blok zbudowany na nim sprawia, że trudniej ją cofnąć. Ile potwierdzeń wystarczy, zależy od łańcucha i kwoty, ale zasada jest wszędzie taka sama: oczekująca oznacza możliwą, potwierdzona oznacza prawdopodobną, a głęboko potwierdzona oznacza ostateczną.
Jak to wygląda w SSP
Wysyłając z SSP, wybierasz, za jaki priorytet chcesz zapłacić. Ekran wysyłki oferuje ustawienia wolne, normalne i szybkie oparte na bieżących warunkach w sieci, z szacunkiem, ile prawdopodobnie potrwa każde z nich, a w łańcuchach EVM także opcję niestandardową, jeśli chcesz samodzielnie ustawić opłatę.
Zarówno SSP Wallet, jak i SSP Key muszą zatwierdzić transakcję, zanim cokolwiek zostanie rozgłoszone. Gdy transakcja dotrze do sieci, mempool działa dla SSP tak samo jak dla wszystkich innych: wybrana opłata decyduje, jak szybko zostanie podjęta, a dopóki nie zostanie potwierdzona, pozostaje oczekująca.
Uczciwe podsumowanie
Mempool to poczekalnia między „wysłano” a „gotowe”. To wiele poczekalni, nie jedna; jest publiczna; i daje pierwszeństwo temu, kto płaci najwięcej za miejsce w bloku.
Wybierz opłatę dopasowaną do tego, jak szybko potrzebujesz potwierdzenia, nie traktuj oczekującej transakcji – swojej ani cudzej – jako ostatecznej i pamiętaj, że wszystko, co rozgłaszasz, jest widoczne dla całej sieci, zanim zostanie rozliczone.


