Che cos’è la Mempool? Ovvero “il Purgatorio Bitcoin”

mempool

Mempool è una memoria temporanea dei nodi bitcoin che accoglie le transazioni inviate al network ma non ancora inserite in un blocco della timechain.

Immagina la mempool come una vasca che raccoglie le transazioni valide propagate al network di nodi. I miner osservano la vasca e scelgono le transazioni che hanno un rapporto spazio occupato/commissioni migliore e le inseriscono nel blocco sul quale stanno lavorando.

Una volta che una transazione è inserita in un blocco aggiunto alla catena, essa sparisce dalla mempool e da pendente che era diviene “confermata”.

Come detto, ogni nodo ha la propria mempool, la propria memoria temporanea. Ogni nodo può impostare la dimensione massima di tale memoria o il tempo passato il quale una transazione non ancora confermata ritorna al mittente (a meno che non venga propagata da altri nodi).

Da ciò ne deriva che piccole differenze di mempool da nodo a nodo sono del tutto normali; per questo la mempool viene definita a-temporale e una transazione diventa temporalmente “certificata” solo dopo essere stata aggiunta in un blocco.

Proprio come le anime nel purgatorio sono in attesa di un traghettatore, le transazioni in mempool sono in attesa di essere inserite in un blocco ed essere confermate. Possiamo immaginare la probabilità e la velocità di inserimento in un blocco come il pagamento al traghettatore d’anime.

Il traghetto ha i posti limitati e chi paga di più sale prima.

Quante mempool esistono?

Innanzitutto non esiste una mempool, ma ne esistono tante quanti sono i nodi del network Bitcoin. Ogni nodo archivia nella propria memoria temporanea (memory pool, abbreviato in mempool) le transazioni non ancora confermate trasmesse dagli altri e dal proprio nodo.

Benché molto simili tra loro ogni nodo ha la propria mempool e ne può stabilire alcune impostazioni. Di fatto, se tutte le mempool fossero uguali, non vi sarebbe necessità di trovare un consenso sullo stato del network attraverso la proof of work. Quindi, quando un miner candida un blocco, prende le transazioni dalla propria mempool.

Ogni nodo può decidere i filtri della propria mempool decidendo che caratteristiche deve avere una transazione per essere propagata. Di base la mempool di un nodo Bitcoin Core ha le seguenti caratteristiche:

Vengono accettate solo transazioni valide con fee superiori a 1 sat/byte. La mempool ha una dimensione massima di 300 MB. Qualora ecceda, le transazioni con fee più basse vengono scartate.

Transazioni che rimangono in mempool per più di 336 ore vengono annullate Una transazione già presente in mempool può essere rimpiazzata da una uguale ma con fee più alte (Replace by Fee).

Scritto da Cyphergatto

Aggiornato al 1 marzo 2024