Gdy wysyłasz kryptowalutę, transakcja zazwyczaj nie pojawia się od razu w potwierdzonym bloku. Pomiędzy kliknięciem „wyślij” a pojawieniem się potwierdzenia często występuje ważny etap pośredni: mempool transakcji.
Mempool, skrót od „memory pool”, to tymczasowy zbiór prawidłowych transakcji, które zostały rozgłoszone w sieci blockchain, ale nie zostały jeszcze umieszczone w bloku. Działa jak poczekalnia, w której transakcje konkurują o ograniczone miejsce w bloku.
Zrozumienie działania mempooli pomaga wyjaśnić, dlaczego niektóre transakcje są potwierdzane niemal natychmiast, podczas gdy inne wymagają więcej czasu, dlaczego opłaty sieciowe mogą nagle wzrosnąć oraz dlaczego czasami transakcja może sprawiać wrażenie zablokowanej.
Czym jest mempool transakcji?
Mempool transakcji to tymczasowy obszar przechowywania utrzymywany przez węzły blockchain dla transakcji, które zostały odebrane i zweryfikowane, ale nie zostały jeszcze potwierdzone w blockchainie.
Gdy tworzysz i rozgłaszasz transakcję, uczestniczące węzły sprawdzają, czy jest ona zgodna z zasadami sieci. W zależności od blockchaina kontrole te mogą obejmować weryfikację podpisów cyfrowych, sprawdzenie, czy nadawca ma wystarczające środki, potwierdzenie, że dane wejściowe nie zostały już wydane, oraz sprawdzenie, czy transakcja ma prawidłowy format.
Jeśli transakcja przejdzie wymagane kontrole, węzeł może dodać ją do swojego lokalnego mempoola.
Następnie górnicy lub walidatorzy mogą wybierać transakcje do umieszczenia w przyszłych blokach.
Ważnym słowem jest tutaj lokalny. Blockchain nie musi mieć jednego uniwersalnego mempoola, który wygląda identycznie u każdego uczestnika. Poszczególne węzły utrzymują własne pule transakcji, a pule te mogą się nieznacznie różnić, ponieważ transakcje rozprzestrzeniają się w sieci z czasem, a węzły mogą korzystać z różnych konfiguracji lub limitów zasobów.
Droga transakcji blockchain
Typowa transakcja przechodzi przez kilka etapów, zanim stanie się częścią blockchaina.
Najpierw portfel tworzy transakcję. Użytkownik określa szczegóły, takie jak adres docelowy, kwota oraz, w sieciach, w których ma to zastosowanie, opłata transakcyjna.
Następnie transakcja jest podpisywana cyfrowo przy użyciu odpowiedniego klucza prywatnego. Podpis ten potwierdza, że transakcja została autoryzowana, bez ujawniania samego klucza prywatnego.
Następnie portfel rozgłasza podpisaną transakcję do jednego lub kilku węzłów w sieci.
Węzły te weryfikują transakcję. Jeśli zostanie uznana za prawidłową i spełnia ich zasady, mogą umieścić ją w swoich mempoolach i przekazać dalej do innych węzłów.
Transakcja czeka następnie, aż górnik, walidator, producent bloku lub inny odpowiedni uczestnik sieci umieści ją w bloku.
Gdy blok zawierający transakcję zostanie zaakceptowany przez sieć, transakcja zostaje potwierdzona.
Mempool znajduje się więc pomiędzy rozgłoszeniem a potwierdzeniem transakcji.
Dlaczego transakcje muszą czekać?
Blockchainy mają zazwyczaj ograniczoną przepustowość transakcji.
W zależności od konstrukcji sieci blok może zawierać tylko określoną ilość danych, obliczeń lub transakcji. Jednocześnie użytkownicy mogą rozgłaszać tysiące transakcji konkurujących o dostępną przepustowość.
Jeśli napływający popyt jest niższy niż dostępna przepustowość, transakcje mogą szybko przechodzić przez mempool.
Gdy popyt staje się większy niż liczba transakcji, które sieć może natychmiast przetworzyć, powstaje kolejka.
Wyobraź sobie stację kolejową, na której czekają setki pasażerów, ale każdy pociąg ma ograniczoną liczbę miejsc. Jeśli pasażerowie przybywają szybciej, niż pociągi są w stanie ich zabierać, stacja staje się coraz bardziej zatłoczona.
Przeciążony mempool działa w podobny sposób.
Jak opłaty transakcyjne wpływają na mempool
W wielu sieciach blockchain opłaty transakcyjne wpływają na to, które transakcje otrzymują wyższy priorytet.
Bitcoin jest dobrze znanym przykładem. Górnicy mają ekonomiczną motywację do tworzenia bloków z transakcji, które zapewniają atrakcyjne opłaty w stosunku do ilości zajmowanego miejsca w bloku.
Oznacza to, że w okresach przeciążenia transakcje oferujące wyższe, konkurencyjne stawki opłat mogą zostać potwierdzone przed transakcjami oferującymi niższe stawki.
Transakcja z niską opłatą nie musi być nieprawidłowa. Może po prostu pozostać niepotwierdzona, ponieważ inne transakcje są bardziej atrakcyjne dla górników.
Wraz ze wzrostem zapotrzebowania na miejsce w blokach użytkownicy mogą konkurować, zwiększając swoje opłaty. W ten sposób powstaje tak zwany rynek opłat.
Mempool dostarcza więc przydatnych informacji o aktualnym zapotrzebowaniu na przepustowość blockchaina.
Rozmiar transakcji również ma znaczenie
Częstym błędnym przekonaniem jest to, że priorytet transakcji zależy wyłącznie od bezwzględnej wysokości opłaty.
W sieciach takich jak Bitcoin szczególnie ważna jest zależność między opłatą a rozmiarem transakcji.
Transakcja z relatywnie wysoką łączną opłatą może nadal być mniej atrakcyjna niż inna transakcja, jeśli zajmuje znacznie więcej miejsca w bloku.
Dlatego opłaty w Bitcoinie są często określane za pomocą stawki opłaty mierzonej w satoshi na wirtualny bajt, czyli sat/vB.
Na przykład dwie transakcje mogą mieć taką samą łączną opłatę, ale jeśli jedna z nich zajmuje o połowę mniej miejsca w bloku, jej stawka opłaty będzie wyższa.
Oprogramowanie portfela zazwyczaj szacuje odpowiednie stawki opłat na podstawie aktualnych warunków w sieci oraz oczekiwanej przez użytkownika szybkości potwierdzenia.
Co się dzieje, gdy mempool jest przeciążony?
W okresach dużej aktywności blockchaina liczba niepotwierdzonych transakcji może znacznie wzrosnąć.
Może się tak zdarzyć podczas dużych ruchów na rynku, premier tokenów, wzmożonej aktywności NFT, nagłego wzrostu handlu, dużego zainteresowania popularnymi aplikacjami lub innych wydarzeń generujących znaczny popyt na transakcje.
Wraz ze wzrostem mempoola może wydarzyć się kilka rzeczy.
Średni czas potwierdzenia może się wydłużyć. Konkurencyjne opłaty transakcyjne mogą wzrosnąć. Portfele mogą zalecać wyższe opłaty, a transakcje wysłane z wyjątkowo niskimi opłatami mogą pozostawać oczekujące dłużej niż zakładano.
Przeciążenie nie musi oznaczać, że blockchain przestał działać. W wielu przypadkach oznacza po prostu, że zapotrzebowanie na miejsce w blokach tymczasowo przekracza dostępną przepustowość.
Dlaczego transakcja może utknąć?
Transakcja może wydawać się „zablokowana”, jeśli przez długi czas pozostaje w mempoolach bez potwierdzenia.
Jednym z częstych powodów jest zbyt niska opłata transakcyjna w stosunku do aktualnego zapotrzebowania w sieci.
Załóżmy, że użytkownik rozgłasza transakcję, gdy zalecane opłaty są stosunkowo niskie. Niedługo później aktywność w sieci gwałtownie rośnie, a użytkownicy zaczynają płacić znacznie wyższe opłaty.
Górnicy mogą wielokrotnie wybierać transakcje z wyższymi opłatami, pozostawiając pierwotną transakcję w kolejce.
W zależności od używanego blockchaina i portfela mogą istnieć mechanizmy pozwalające poradzić sobie z taką sytuacją.
Bitcoin obsługuje na przykład techniki takie jak Replace-by-Fee (RBF), dzięki którym odpowiednią niepotwierdzoną transakcję można zastąpić inną wersją oferującą wyższą opłatę.
Inną techniką jest Child Pays for Parent (CPFP). W takim przypadku nowa transakcja wydaje wyjście z niepotwierdzonej transakcji, oferując jednocześnie wystarczająco atrakcyjną opłatę. Górnik może wtedy mieć motywację, aby potwierdzić obie transakcje razem.
Obsługa tych metod zależy od transakcji, portfela, zasad stosowanych przez węzły oraz sieci.
Czy transakcje mogą zniknąć z mempoola?
Tak.
Przyjęcie transakcji do mempoola nie gwarantuje, że ostatecznie pojawi się ona w blockchainie.
Węzły mają ograniczone zasoby i ustalają zasady określające, jak długo transakcje pozostają w ich mempoolach. Transakcje mogą zostać usunięte, jeśli zbyt długo pozostają niepotwierdzone, są w konflikcie z inną zaakceptowaną transakcją, przestają spełniać zmieniające się wymagania lub muszą zostać odrzucone, ponieważ mempool węzła osiągnął skonfigurowany limit pojemności.
Ponieważ węzły utrzymują własne mempoole, jeden węzeł może usunąć transakcję, podczas gdy inny nadal będzie ją przechowywać.
Zniknięcie transakcji z mempoola konkretnego węzła również nie oznacza automatycznie, że środki zostały utracone. Jeśli transakcja nigdy nie została potwierdzona, to ostatecznie potwierdzony stan blockchaina określa, które środki nadal można wydać.
Mempoole nie są identyczne we wszystkich blockchainach
Termin „mempool” jest powszechnie kojarzony z Bitcoinem, ale wiele systemów blockchain posiada jakąś formę tymczasowego przechowywania oczekujących transakcji.
Dokładny mechanizm może się jednak znacznie różnić.
Na przykład Ethereum również posiada pule oczekujących transakcji, ale jego architektura oparta na kontach i system opłat tworzą inną dynamikę wyboru transakcji niż model UTXO Bitcoina.
Inne architektury blockchain mogą inaczej obsługiwać oczekujące transakcje lub używać określeń takich jak pula transakcji, pula oczekujących transakcji czy kolejka transakcji.
Niektóre sieci są oparte na architekturach, w których tradycyjna koncepcja mempoola znana z Bitcoina odgrywa mniej istotną rolę lub działa w zupełnie inny sposób.
Z tego powodu lepiej traktować mempool jako ogólną koncepcję, zamiast zakładać, że każdy blockchain implementuje go dokładnie w ten sam sposób.
Mempool a przejrzystość blockchaina
Publiczne dane z mempoola mogą dostarczać ciekawych informacji na temat aktywności sieci.
Eksploratory blockchain i wyspecjalizowane usługi monitorujące mogą wyświetlać informacje takie jak liczba oczekujących transakcji, szacowane opłaty transakcyjne, wielkość kolejki, rozkład opłat transakcyjnych oraz ostatnie zmiany zapotrzebowania w sieci.
Informacje te mogą pomóc użytkownikom zdecydować, czy wysłać transakcję od razu, czy poczekać, aż przeciążenie sieci się zmniejszy.
Dane te mogą również zapewnić badaczom i analitykom niemal aktualny w czasie rzeczywistym obraz zapotrzebowania na transakcje, zanim zostaną one trwale zapisane w blokach.
Informacji z mempoola nie należy jednak traktować jako idealnego obrazu całej sieci, ponieważ poszczególne węzły mogą widzieć różne zestawy oczekujących transakcji.
Mempoole a prywatność
Publiczne rozgłaszanie transakcji ma również znaczenie dla prywatności.
Zanim transakcje zostaną potwierdzone, są rozgłaszane w sieci peer-to-peer. Badacze i zaawansowani obserwatorzy mogą analizować sposób rozprzestrzeniania się transakcji między węzłami, próbując uzyskać informacje o ich możliwym pochodzeniu.
Techniki skoncentrowane na prywatności i zabezpieczenia na poziomie sieci mogą utrudniać tego rodzaju analizę, ale aktywność mempoola przypomina, że prywatność w blockchainie obejmuje coś więcej niż tylko to, co ostatecznie pojawia się w bloku.
Znaczenie może mieć również sposób, w jaki transakcja dociera do sieci.
Mempoole a podwójne wydawanie
Mempoole odgrywają również rolę w sposobie, w jaki węzły obsługują sprzeczne transakcje.
Wyobraź sobie, że dwie transakcje próbują wydać te same środki.
Obie nie mogą ostatecznie być prawidłowe w potwierdzonym stanie blockchaina. Węzły wykorzystują reguły konsensusu i lokalne zasady dotyczące transakcji, aby określić sposób obsługi sprzecznych transakcji przed ich potwierdzeniem.
Jest to jeden z powodów, dla których niepotwierdzonej transakcji nie należy zawsze traktować jako równoważnej transakcji potwierdzonej.
W sytuacjach o niskim ryzyku firmy mogą czasami zdecydować się na uznawanie niepotwierdzonych transakcji, ale wiąże się to z innymi założeniami dotyczącymi bezpieczeństwa niż oczekiwanie na potwierdzenie w blockchainie.
Co mempoole mówią nam o skalowalności blockchaina
Mempoole w wyraźny sposób pokazują jedno z podstawowych wyzwań stojących przed systemami blockchain: ograniczoną przepustowość.
Gdy zapotrzebowanie na transakcje przekracza tempo, w jakim sieć może je przetwarzać, jakiś mechanizm musi określić, które transakcje otrzymają dostęp do ograniczonych zasobów.
W niektórych sieciach głównym mechanizmem stają się opłaty.
Inne systemy próbują zwiększać przepustowość poprzez większe lub częściej tworzone bloki, alternatywne architektury konsensusu, sieci Layer 2, rollupy, kanały płatności, równoległe wykonywanie operacji lub inne technologie skalowania.
Rosnący mempool jest więc czymś więcej niż tylko zbiorem opóźnionych transakcji. Może pokazywać zależność między zapotrzebowaniem w sieci, dostępną przepustowością oraz mechanizmami ekonomicznymi wykorzystywanymi do przydzielania zasobów blockchaina.
Czy warto sprawdzić mempool przed wysłaniem kryptowaluty?
W sieciach, w których opłaty transakcyjne znacznie się zmieniają, przed wysłaniem transakcji warto sprawdzić aktualne warunki w sieci.
Jeśli przelew nie jest pilny, poczekanie na spokojniejszy okres może obniżyć wymaganą opłatę. Jeśli liczy się szybkość potwierdzenia, aktualna sytuacja w mempoolu może pomóc określić, czy opłata sugerowana przez portfel jest odpowiednia.
Nowoczesne portfele często wykonują tę analizę automatycznie, szacując opłaty na podstawie ostatnich bloków i oczekujących transakcji.
Mimo to zrozumienie tego, co dzieje się w tle, znacznie ułatwia interpretację dostępnych opcji opłat.
Wybór między opcjami takimi jak „wolno”, „normalnie” i „szybko” często oznacza wybór tego, jak konkurencyjna będzie twoja transakcja w porównaniu z innymi transakcjami czekającymi na ograniczone miejsce w bloku.
Mempool jest poczekalnią blockchaina
Mempool jest jednym z mniej widocznych, ale kluczowych elementów działania wielu sieci blockchain.
Łączy moment rozgłoszenia transakcji z momentem, w którym staje się ona częścią blockchaina. Gdy transakcja tam czeka, konkuruje z innymi transakcjami o ograniczoną przepustowość sieci.
Zrozumienie tego procesu pomaga wyjaśnić wiele codziennych sytuacji związanych z kryptowalutami: zmieniające się opłaty, oczekujące transakcje, opóźnienia potwierdzeń, szacowanie opłat oraz przeciążenie sieci.
Gdy następnym razem portfel wyświetli „Oczekująca” zamiast „Potwierdzona”, nie musi to oznaczać, że z transakcją stało się coś złego. Może ona po prostu czekać w kolejce transakcji sieci na swoją szansę na umieszczenie w bloku.
Pick your reaction
Dodaj swój komentarz