Mempool
Mempool (memory pool) to tymczasowy obszar pamięci operacyjnej każdego węzła sieci kryptowalutowej, w którym przechowywane są transakcje oczekujące na zatwierdzenie i dodanie do blockchaina.
Materiał edukacyjny przygotowany z pomocą AI i automatycznej kontroli jakości. Redakcja dodatkowo sprawdza wybrane materiały. Opisuje również ograniczenia i ryzyka; nie stanowi indywidualnej rekomendacji.
Wprowadzenie
Wyobraź sobie mempool jako cyfrową poczekalnię lub kolejkę przed wejściem do klubu. Kiedy decydujesz się przesłać komuś kryptowalutę, Twoja transakcja nie trafia od razu na stałe do głównej księgi głównej, czyli blockchaina. Najpierw wysyłasz ją do sieci, gdzie trafia właśnie do mempoola.
Każdy pełny węzeł sieci posiada swój własny mempool. Oznacza to, że nie ma jednej centralnej poczekalni dla całej kryptowaluty, lecz każdy komputer utrzymujący sieć ma jej lokalną kopię. Transakcje siedzą w tej kolejce do momentu, aż górnik lub walidator zdecyduje się je stamtąd zabrać, poukładać i zapisać w nowym bloku.
W normalnych warunkach pobyt w mempoolu trwa bardzo krótko – od kilku sekund do kilku minut. Jeśli jednak sieć jest mocno obciążona, a chętnych na przelewy jest bardzo dużo, kolejka rośnie. Wtedy transakcje z mniejszą opłatą muszą dłużej czekać na swoją kolej, podczas gdy te z wyższą opłatą są obsługiwane w pierwszej kolejności.
Szczegółowy opis
Technicznie rzecz biorąc, mempool to struktura danych rezydująca w pamięci RAM węzła, która zarządza transakcjami niepotwierdzonymi (unconfirmed transactions). Kiedy węzeł otrzymuje nową transakcję przez sieć P2P, najpierw weryfikuje jej poprawność kryptograficzną. Sprawdza między innymi, czy podpis cyfrowy jest poprawny oraz czy nadawca faktycznie posiada środki, które próbuje wysłać i czy nie zostały one wcześniej wydane w innej transakcji, co zapobiega problemowi podwójnego wydatkowania.
Po pomyślnej weryfikacji transakcja jest dodawana do lokalnego mempoola i propagowana dalej do innych węzłów. Ponieważ każdy węzeł może mieć nieco inne opóźnienia w transmisji danych oraz własne reguły polityki mempoola (np. minimalną stawkę opłaty za bajt, jaką akceptuje), zawartość poszczególnych mempooli w sieci może się nieznacznie różnić.
Gdy górnik (w sieciach Proof of Work) lub proponujący blok (w sieciach Proof of Stake) przygotowuje nowy blok, wybiera transakcje z mempoola. Zazwyczaj algorytm wyboru kieruje się maksymalizacją zysku, sortując transakcje malejąco według dołączonej opłaty za jednostkę danych (np. satoshi za bajt w sieci Bitcoin). Po pomyślnym dodaniu transakcji do wykopanego bloku, jest ona usuwana z mempooli w całej sieci.
Warto zaznaczyć, że istnieje istotna niepewność co do dokładnego, ujednoliconego stanu globalnego mempoola w każdym momencie, ponieważ sieć jest zdecentralizowana, a transakcje rozprzestrzeniają się z różną prędkością.
Przykłady
Klasycznym przykładem działania mempoola jest sytuacja gwałtownego wzrostu zainteresowania rynkiem kryptowalut, na przykład podczas silnej hossy lub szaleństwa wokół tokenów niewymienialnych i memecoinów. W takich okresach liczba transakcji zgłaszanych przez użytkowników drastycznie przewyższa przepustowość bloków.
Wyobraźmy sobie, że sieć Bitcoin może przetworzyć ograniczoną liczbę transakcji w jednym bloku, a blok pojawia się średnio co dziesięć minut. W tym samym czasie do mempoola trafia trzykrotnie więcej transakcji, niż zmieści się w nadchodzącym bloku. Powstaje zator. Użytkownik A wysyła transakcję z bardzo niską opłatą, podczas gdy użytkownik B spieszy się i płaci wysoką prowizję.
Transakcja użytkownika B natychmiast trafia do nowego bloku i znika z mempoola. Transakcja użytkownika A pozostaje w mempoolu i czeka. Jeśli zator się powiększa, może czekać godzinami, a w skrajnych przypadkach, jeśli opłata spadnie poniżej minimalnego progu czyszczenia węzłów, może zostać całkowicie odrzucona i powrócić do portfela użytkownika jako niewysłana.
Zalety i ograniczenia
Główną zaletą istnienia mempoola jest elastyczne buforowanie i płynne zarządzanie ruchem w zdecentralizowanej sieci. Pozwala on na przetwarzanie transakcji w sposób rynkowy, gdzie priorytet zależy od zaoferowanej opłaty, co stanowi mechanizm motywacyjny dla górników i walidatorów. Użytkownicy z kolei mają możliwość monitorowania stanu swoich operacji jeszcze przed ich zatwierdzeniem.
Ograniczeniem mempoola są problemy związane z jego zatorami. W momentach dużego obciążenia sieci koszty transakcyjne drastycznie rosną, a oczekiwanie na potwierdzenie staje się długie i nieprzewidywalne. Ponadto, podatność na manipulacje fee-snipingiem czy ryzyko ataków typu denial-of-service poprzez zalewanie pamięci węzłów tysiącami małych transakcji wymusza na twórcach oprogramowania węzłów stosowanie złożonych algorytmów filtrowania i ograniczania rozmiaru pamięci podręcznej.