Przejdź do treści
Słownikpodstawyethereumsmart-kontrakty

Mempool

Zbiór transakcji oczekujących na włączenie do bloku — poczekialnia między "wysłane" a "potwierdzone". Każdy węzeł sieci utrzymuje własną kopię mempoolу. Walidatorzy wybierają transakcje z tej kolejki według własnych reguł, zazwyczaj preferując wyższe opłaty. Transakcje w mempoolу są publiczne i widoczne dla wszystkich uczestników sieci.

Droga transakcji od kliknięcia do potwierdzenia

Gdy klikasz "zatwierdź" w portfelu, twoja transakcja jest podpisana kluczem prywatnym i wysyłana do węzłów sieci. Węzły sprawdzają, czy podpis jest poprawny, czy masz wystarczający balans i czy opłata za gas jest sensowna. Jeśli tak — transakcja trafia do ich lokalnego mempoolу i jest rozsyłana do innych węzłów.

Tam czeka, aż walidator/miner zdecyduje ją włączyć do bloku. Na Ethereum bloki wychodzą co ~12 sekund. Jeśli sieć jest niezatłoczona, twoja transakcja wejdzie w kilkanaście sekund. Jeśli sieć jest przeciążona i twoja opłata za gas jest za niska — transakcja może czekać godzinami lub przepaść.

Po włączeniu do bloku transakcja jest "potwierdzona" — ale finalizacja (pewność, że nie zostanie cofnięta) wymaga kilku kolejnych bloków. Dla normalnych transakcji wystarczy 1-3 potwierdzenia. Dla bardzo dużych kwot czeka się na 6+.

Dlaczego mempool jest publiczny i co z tego wynika

Oczekujące transakcje są widoczne dla wszystkich — każdy węzeł, każdy programista, każdy bot. To jest nieodłączna cecha zdecentralizowanej sieci: nie ma centralnego serwera, który trzymałby je w sekrecie.

Boty MEV non-stop monitorują mempool. Gdy widzą twoją dużą transakcję swap na DEX-ie, mogą ją "obsłużyć" przez sandwich attack: kupić token przed tobą (podnosząc cenę), przepuścić twoją transakcję po gorszym kursie, i sprzedać po niej z zyskiem. Wszystko w ciągu jednego bloku.

Dlatego coraz więcej interfejsów DEX oferuje "MEV protection" — prywatne RPC (np. Flashbots Protect), które wysyłają transakcję bezpośrednio do walidatora z pominięciem publicznego mempoolу. Bot nie może zobaczyć transakcji, zanim nie jest już w bloku.

Jak zarządzać transakcją w mempoolу

Przyspiesz
Wyślij tę samą transakcję z tym samym nonce, ale wyższą opłatą za gas. Większość portfeli ma przycisk "Speed up". Walidatorzy przyjmą wersję z wyższą opłatą.
Anuluj
Wyślij transakcję z tym samym nonce, zero ETH do siebie, z wyższą opłatą. Gdy ta wejdzie do bloku, "zużywa" nonce i oryginalna transakcja jest nieważna.
Poczekaj
Jeśli sieć się odkorki, transakcja z niską opłatą może wejść sama po czasie. Bitcoin węzły trzymają transakcje 2 tygodnie, Ethereum może je wcześniej odrzucić przy przeciążeniu.
MEV protection
Zmień RPC w portfelu na Flashbots Protect lub MEV Blocker. Transakcja trafia bezpośrednio do walidatora z pominięciem publicznego mempoolу.

Transakcja w mempoolу to nie potwierdzenie

"Transakcja jest pending" nie znaczy, że jest już bezpieczna. Pending = czeka w kolejce. Może zostać zastąpiona, odrzucona lub czekać bez końca. Nie dostarczaj towarów, nie odblokowuj usług i nie traktuj przelewu jako finalnego, dopóki transakcja nie ma co najmniej kilku potwierdzeń w blockchainie.

Najczęstsze pytania

Na Ethereum: użyj funkcji "Speed up" w portfelu (MetaMask, Rabby) — to wyśle tę samą transakcję z wyższym gas. Jeśli chcesz anulować, użyj "Cancel" w portfelu lub ręcznie wyślij transakcję z tym samym nonce, zero ETH na swój własny adres, z wyższą opłatą. Na Bitcoinie: jeśli twój portfel obsługuje Replace-by-Fee (RBF), możesz zwiększyć opłatę pending transakcji.

Sprawdź nonce. Ethereum wymaga, żeby transakcje były potwierdzane w kolejności. Jeśli transakcja z nonce 5 utknęła, transakcje 6, 7, 8 też będą czekać — bo sieć musi najpierw przetworzyć 5. Anuluj zablokowaną transakcję i reszta się odblokuje.

Na Ethereum: Etherscan.io — wklej hash transakcji. Zobaczysz status (pending, success, failed), użyty gas, nonce i blok. Na Bitcoinie: mempool.space pokazuje stan całego mempoolу, zalecane fee i historię twoich transakcji. Każdy eksplorator blockchainu działa podobnie dla swojej sieci.

Tak — Flashbots Protect, MEV Blocker i podobne serwisy to zaufane narzędzia. Nie mają dostępu do twoich kluczy prywatnych — widzą tylko transakcje, które do nich wysyłasz (tak jak każdy węzeł). Główna różnica: nie rozgłaszają ich do publicznego mempoolу. Możesz dodać je jako alternatywne RPC w ustawieniach sieci w MetaMask.