Come funziona la mempool
Ogni transazione Bitcoin attraversa una fase di attesa prima di diventare definitiva. Nel momento in cui premi invia, la transazione non salta subito nella blockchain. Entra invece in una sala d'attesa dove resta insieme a migliaia di altre transazioni in sospeso, tutte in competizione per lo spazio limitato del blocco successivo. Quella sala d'attesa è la mempool, e capirla è la differenza tra una transazione che si conferma in pochi minuti e una che rimane ferma per ore.
Questo articolo guarda da vicino cosa è la mempool, perché in realtà non ne esiste una sola, come i miner decidono quali transazioni confermare e cosa puoi fare quando una transazione si blocca. Si basa sui concetti trattati in come vengono verificate le transazioni Bitcoin e scende di un livello più in profondità nell'economia e nella meccanica della conferma.
Che cosa significa mempool
La parola mempool è l'abbreviazione di memory pool, ovvero pool di memoria. Puoi immaginarla come una sala d'attesa dove le transazioni valide riposano finché un miner non le seleziona per un blocco. Quando una transazione viene trasmessa alla rete non è ancora confermata. È semplicemente in sospeso, conservata nella memoria dei nodi che l'hanno ricevuta, in attesa del proprio turno.
La mempool è strettamente legata al mining. Un miner che sta assemblando un blocco candidato non inventa le transazioni. Le prende dalla mempool. In questo senso la mempool è la riserva di lavoro da cui i miner attingono. Il ruolo del miner nella scelta e nella conferma di queste transazioni è trattato in dettaglio in il ruolo dei miner nella rete Bitcoin.
Un punto importante dà il tono a tutto ciò che segue. La mempool non è la blockchain. È memoria temporanea. Una transazione che si trova nella mempool non è ancora avvenuta in senso definitivo. Lo diventa solo quando viene scritta in un blocco. Fino ad allora può essere sostituita, scartata o superata da transazioni che pagano commissioni più alte.
Non esiste una sola mempool
Viene naturale immaginare la mempool come un'unica grande lista condivisa che tutti possono vedere. Quell'immagine è sbagliata, e correggerla è la chiave per capire Bitcoin come rete decentralizzata.
Ogni nodo tiene la propria mempool. Quando Alice invia Bitcoin a Bob, la sua transazione raggiunge prima un nodo. Quel nodo la verifica e, se è valida, la conserva nella propria memoria e la passa ai nodi a cui è collegato. Quei nodi fanno lo stesso. La transazione si propaga verso l'esterno attraverso la rete, un passaggio alla volta.
Poiché questa diffusione richiede tempo, due nodi non hanno mai esattamente lo stesso insieme di transazioni nello stesso istante. Alcuni nodi hanno già ricevuto una certa transazione mentre altri non l'hanno ancora vista. Ogni nodo ha quindi la propria copia leggermente diversa della mempool.
Per questo è più corretto parlare della mempool come di un concetto piuttosto che di un luogo fisico unico. La sovrapposizione tra i nodi è molto alta, di solito ben oltre il novantanove percento, ed è per questo che gli explorer tendono a concordare tra loro. Ma quella piccola differenza residua spiega perché due siti possono riportare conteggi di transazioni leggermente diversi e perché a volte una transazione può comportarsi in modo sorprendente.
La propagazione nella rete è veloce ma non istantanea. I nodi non inoltrano ciecamente i dati grezzi della transazione a tutti. Annunciano prima di conoscere una transazione inviando solo il suo breve identificatore. Un peer che non l'ha ancora vista richiede allora la transazione completa, e solo a quel punto vengono inviati i dati completi. Questo scambio evita di inondare la rete di dati duplicati e aggiunge piccoli ritardi deliberati che aiutano anche a proteggere la privacy del punto di origine.
How a Transaction Spreads
No single global mempool exists. Alice's transaction ripples outward hop by hop, and each node stores its own copy.
Each node validates the transaction, stores it in its own mempool, then passes it to its peers.
Come un nodo decide se accettare una transazione
Un nodo non accetta tutto ciò che gli viene consegnato. Prima che una transazione entri nella sua mempool, il nodo la verifica rispetto alle regole della rete e alla cronologia registrata sulla blockchain.
Controlla diverse cose. Le monete che si vogliono spendere devono esistere davvero e devono essere ancora non spese, il che significa che ci devono essere fondi sufficienti dietro la transazione. Le firme digitali devono essere valide, a prova del fatto che il mittente è autorizzato a muovere quelle monete. E la transazione non deve essere in conflitto con nulla di già presente nella mempool. Se due transazioni cercano di spendere le stesse monete, si tratta di un tentativo di doppia spesa, e il nodo mantiene la prima valida che ha visto rifiutando la seconda.
Se uno di questi controlli fallisce, la transazione viene rifiutata e non entra mai nella mempool. Se tutto passa, il nodo la conserva e la inoltra. La crittografia che rende possibili quei controlli sulle firme è spiegata in cos'è la crittografia, e l'intero processo di verifica è trattato in come vengono verificate le transazioni Bitcoin.
Il viaggio di una transazione
Aiuta ripercorrere l'intero percorso che una transazione compie. Prima il tuo wallet crea e firma la transazione, poi la trasmette a un nodo. Quel nodo la verifica e, se è valida, la inserisce nella sua mempool e la condivide con i suoi peer. La transazione si propaga ora nella rete e aspetta.
Un miner che assembla il blocco successivo seleziona le transazioni dalla propria mempool, di solito iniziando da quelle che pagano la commissione più alta, e include la tua tra queste. Quando quel miner trova un blocco valido e il resto della rete lo accetta, la tua transazione ha una conferma. È passata ora dalla memoria temporanea della mempool alla memoria permanente sulla blockchain. Man mano che altri blocchi si accumulano sopra, il numero di conferme cresce e la transazione diventa sempre più difficile da invertire.
The Journey of a Transaction
From wallet to confirmed. The mempool is the only temporary stop: everything from mining onward is permanent and secured by proof of work.
Create and sign
Private key authorises the spend
Broadcast
Sent to network nodes
Node validates
Inputs, signatures, rules
Mempool
Waiting by fee rate
Mined
Included in a block
Confirmations
Each new block adds one
Create and sign
Private key authorises the spend
Broadcast
Sent to network nodes
Node validates
Inputs, signatures, rules
Mempool
Waiting by fee rate
Mined
Included in a block
Confirmations
Each new block adds one
Zero confirmations means the transaction is in the mempool but not yet secured by any proof of work. Each block mined on top adds one more confirmation.
Spazio nel blocco, peso e byte virtuali
Lo spazio nel blocco è scarso, e proprio la scarsità crea la competizione. Un nuovo blocco viene trovato in media circa ogni dieci minuti, e ogni blocco può contenere solo una certa quantità.
Nei primi anni un blocco era limitato a un megabyte di dati. L'aggiornamento SegWit del 2017 ha cambiato il modo in cui questo limite viene misurato. Invece di un tetto fisso sulla dimensione, i blocchi hanno ora un peso massimo di 4.000.000 di unità di peso. Per renderlo più semplice da ragionare, la rete usa anche i byte virtuali. Un byte virtuale equivale a quattro unità di peso, quindi un blocco contiene all'incirca 1.000.000 di byte virtuali di transazioni.
Il motivo del cambiamento è sottile. SegWit applica uno sconto a una parte di ogni transazione chiamata witness, che contiene le firme. I dati witness vengono conteggiati a un quarto del peso degli altri dati. Questo non rende la transazione fisicamente più piccola su disco o in rete. Una transazione di trecento byte resta di trecento byte. SegWit conta semplicemente la parte delle firme con un peso ridotto nel decidere quanto riempie un blocco. L'effetto pratico è che oggi un blocco pieno tipico si attesta intorno a un megabyte e mezzo o due di dati reali, anche se il vecchio concetto di un megabyte non esiste più.
I byte virtuali contano perché sono l'unità con cui si misurano le commissioni. Quando confronti quanto paga una transazione rispetto a un'altra, stai confrontando la commissione per byte virtuale, non l'importo totale inviato.
Block Space, Weight, and the SegWit Discount
A block holds at most 4,000,000 weight units. Core transaction data counts at 4 weight units per byte; signature data counts at only 1. Fees are priced in virtual bytes, where 1 vB = 4 weight units.
Part 1: how weight units are counted
Raw size
200 bytes
Total weight
500 wu
Virtual bytes
125 vB
500 wu / 4
Values are illustrative. The signatures still take up the same bytes on the wire. They are simply counted at a quarter of the weight when filling a block.
Part 2: block capacity
Block limit
4,000,000 wu
= 1,000,000 virtual bytes
1 vbyte = 4 weight units
Typical full block
1.5 to 2.0 MB
actual on-disk bytes
exceeds old 1 MB due to discount
Before SegWit (2017)
flat 1 MB cap
replaced by weight limit
still equivalent for non-SegWit txs
Il mercato delle commissioni
Poiché lo spazio nel blocco è limitato e la domanda varia, si forma un mercato. Il prezzo per entrare è la commissione, misurata in satoshi per byte virtuale, scritta come sat/vB. Un satoshi è la più piccola unità di Bitcoin, un centomilionesimo di una moneta intera.
Ecco la parte che sorprende molte persone. La commissione non ha nulla a che vedere con quanto denaro stai inviando. Inviare l'equivalente di un Euro o Dollaro può costare esattamente la stessa commissione di inviare l'equivalente di un milione di Euro o Dollaro, perché la commissione dipende da quanto spazio nel blocco occupa la transazione, non dal suo valore. Una transazione con molti input occupa più byte virtuali e quindi costa di più da confermare alla stessa commissione.
Un modo utile per immaginare il mercato delle commissioni è una stazione degli autobus. Gli autobus partono all'incirca ogni dieci minuti, e ognuno ha un numero limitato di posti. I passeggeri sono le transazioni in attesa di salire. Chi è disposto a pagare un posto prioritario sale sul prossimo autobus, mentre chi paga meno aspetta un autobus successivo e meno affollato. Quando la stazione è gremita i prezzi salgono, perché tutti fanno offerte per i pochi posti disponibili. Quando la stazione è tranquilla puoi salire a basso costo. Le commissioni e la ricompensa del blocco insieme pagano i miner per il loro lavoro, una struttura di incentivi legata anche all'halving di Bitcoin, che riduce costantemente la sovvenzione del blocco nel tempo.
Blocks Flowing Through the Mempool
The mempool assembles pending transactions into projected blocks. When a miner solves a block, it crosses the line and joins the confirmed chain. Fee rates drive which transactions make it in first.
In ~20 min
~3sat/vB
1 – 8 sat/vB
1.7 MB
2,720 txs
In ~10 min
~5sat/vB
2 – 12 sat/vB
1.8 MB
2,960 txs
Next block
~8sat/vB
3 – 20 sat/vB
1.9 MB
3,100 txs
Mined
#953,331
avg 8 sat/vB
1.9 MB
3,100 txs
Just now
Mined
#953,330
avg 6 sat/vB
1.8 MB
2,960 txs
~10 min ago
Mined
#953,329
avg 5 sat/vB
1.8 MB
2,880 txs
~20 min ago
Current fee tiers
Sped up for illustration. In reality a new block is found on average about every ten minutes.
Come stimare la commissione giusta
Il modo intelligente di impostare una commissione è guardare a ciò di cui la rete ha realmente bisogno in quel momento, anziché tirare a indovinare. Gli explorer della mempool esistono proprio per questo.
Uno strumento come mempool.space mostra i blocchi previsti, costruiti dalla mempool attuale, accanto ai blocchi già minati. I blocchi previsti vengono ricalcolati ogni paio di secondi, quindi cambiano man mano che arrivano nuove transazioni e vengono trovati nuovi blocchi. Il sito raggruppa le commissioni consigliate in fasce come nessuna priorità, priorità bassa, priorità media e priorità alta, ciascuna associata alla rapidità con cui vuoi confermare. Questi suggerimenti sono una guida, non una promessa, perché ogni miner ha una visione leggermente diversa della mempool e un proprio modo di selezionare le transazioni.
Un altro strumento ben noto sono le statistiche della mempool di Johoe, che mostrano le transazioni non confermate come bande colorate impilate per commissione, con la banda che paga di meno in basso e quelle che pagano di più in alto. Di solito ogni nuovo blocco rimuove solo la fetta superiore della domanda. Se una banda resta lì per ore senza ridursi, significa che le transazioni a quella commissione non vengono confermate perché transazioni che pagano di più continuano ad avere la precedenza. Per scegliere una commissione, punti pari o sopra le bande che si sono liberate di recente.
La regola generale è semplice. Quando la rete è tranquilla non c'è motivo di pagare troppo. Quando è affollata, una commissione un po' più alta ti risparmia un'attesa lunga e incerta.
Quando una transazione si blocca
Se paghi una commissione troppo bassa, la tua transazione può restare nella mempool a lungo. Non è persa e non è rotta. Sta semplicemente aspettando un momento in cui la domanda cala abbastanza da spingere i miner a includerla.
C'è però un limite a quanto può aspettare. Per impostazione predefinita, i nodi scartano una transazione bloccata da circa due settimane. Quando una transazione lascia la mempool senza essere minata, è come se non fosse mai avvenuta. Le monete che cercava di spendere tornano disponibili, ed erano sempre sotto il tuo controllo per tutto il tempo. Puoi allora ripubblicare la stessa transazione o costruirne una nuova.
L'eliminazione e la commissione minima
Ogni nodo ha un limite di memoria per la propria mempool, di solito impostato per impostazione predefinita su qualche centinaio di megabyte. Quando la mempool si riempie, il nodo deve fare spazio. Lo fa eliminando per prime le transazioni con la commissione più bassa e alzando la propria commissione minima al livello di ciò che ha appena scartato. Le transazioni che pagano sotto quella soglia non verranno nemmeno inoltrate.
Questa soglia minima poi scende lentamente durante i periodi tranquilli, finché il successivo picco non la rialza. In una rete calma la soglia si aggira di solito intorno a un satoshi per byte virtuale, che funge da costo di base pratico per far inoltrare una transazione.
Sbloccare una transazione bloccata: RBF e CPFP
Se non vuoi aspettare, ci sono due modi consolidati per dare una spinta a una transazione bloccata.
Il primo è Replace By Fee, ovvero RBF. Sostituisce la tua transazione non confermata con una nuova versione che paga una commissione più alta. La sostituzione riutilizza almeno uno degli stessi input, il che garantisce un conflitto con l'originale, così solo una delle due può confermarsi. La maggior parte dei wallet moderni espone questa funzione come un pulsante per aumentare la commissione. Dalla fine del 2024 il comportamento predefinito di Bitcoin Core tratta le transazioni come sostituibili anche senza un segnale esplicito, il che ha reso l'aumento delle commissioni più affidabile in tutta la rete. Puoi anche usare RBF per annullare di fatto un pagamento, sostituendolo con una nuova transazione che rimanda le stesse monete a te stesso.
Il secondo è Child Pays For Parent, ovvero CPFP. Qui lasci stare la transazione bloccata e crei invece una nuova transazione che spende uno dei suoi output non confermati aggiungendo una commissione alta. Un miner che vuole la generosa commissione sulla transazione figlia deve includere anche quella genitore, perché la figlia non può essere valida senza di essa. Le due si confermano insieme come pacchetto. Questo è particolarmente utile quando non puoi usare RBF, per esempio quando sei il destinatario anziché il mittente. CPFP di solito costa un po' di più in totale, dato che finisci per pagare lo spazio nel blocco di entrambe le transazioni.
Entrambe le tecniche si basano sulla stessa idea di fondo. I miner seguono il denaro, quindi aumentare la commissione effettiva rende la tua transazione più attraente da includere. Le condizioni che devono essere soddisfatte perché una transazione possa spendere l'output di un'altra dipendono dalle regole di scripting di Bitcoin, approfondite in capire Bitcoin Script.
RBF and CPFP: Two Ways to Rescue a Stuck Transaction
When a low-fee transaction is stuck in the mempool, two techniques can push it through: replace it entirely, or attach a high-fee child that pulls it along.
Replace By Fee
RBF
Original tx
2 sat/vB
Replacement tx
20 sat/vB
Same input reused, so the two conflict. Only the higher-fee version confirms.
Child Pays for Parent
CPFP
Parent tx
2 sat/vB
Child tx
40 sat/vB
The child cannot confirm without the parent, so a miner takes both together.
Both methods work by raising the effective fee that miners earn for including the transaction.
Leggere un explorer della mempool
Gli explorer di blocchi e mempool trasformano l'idea astratta di una sala d'attesa in qualcosa che puoi davvero guardare. Per qualsiasi transazione, un explorer mostra di solito il suo identificatore, chiamato TxID, che funziona come un'impronta digitale di quella transazione ed è esso stesso il risultato di una funzione di hash. Mostra anche il numero di input e output, l'importo totale movimentato, la commissione in sat/vB, la commissione totale pagata e la dimensione della transazione in byte virtuali.
Alcuni explorer vanno oltre e animano la mempool stessa. I visualizzatori rappresentano ogni transazione in sospeso come un blocco colorato, dimensionato per valore o per byte virtuali e colorato per età o commissione, e poi mostrano quei blocchi cadere dentro ogni nuovo blocco minato non appena viene trovato. Queste viste rendono la competizione per lo spazio davvero visibile e sono un buon modo per sviluppare un'intuizione su come cresce la blockchain, un blocco alla volta.
Politica della mempool e regole di consenso
C'è qui una distinzione che inganna anche utenti esperti, e chiarirla è una delle idee più illuminanti di tutto Bitcoin.
Le regole di consenso sono le regole valide per l'intera rete che definiscono cosa rende valido un blocco o una transazione. Niente doppie spese, firme valide, il limite di offerta, il limite di peso del blocco e così via. Se infrangi una regola di consenso ti separi dalla rete, perché nessun altro accetterà il tuo blocco.
La politica della mempool è diversa. È l'insieme locale di regole che un nodo usa per decidere quali transazioni valide è disposto a conservare e inoltrare. La commissione minima, i tipi di script che considera standard e la dimensione della sua mempool sono tutte questioni di politica. Due nodi onesti possono adottare politiche leggermente diverse senza essere affatto in disaccordo sulla blockchain. Una transazione che un nodo rifiuta di inoltrare per la sua politica può comunque essere perfettamente valida, e può comunque finire in un blocco se un miner sceglie di includerla direttamente. Quando arriva quel blocco, il nodo lo accetta senza obiezioni.
In breve, le regole di consenso decidono cosa è vero. La politica decide cosa un determinato nodo si prende la briga di trasmettere.
Zero conferme
Una transazione che si trova nella mempool ha zero conferme. È visibile ed è valida, ma non è ancora protetta da alcuna proof of work. Quella distinzione ha conseguenze concrete.
Finché una transazione non viene minata, può in linea di principio essere sostituita da una versione in conflitto o spesa due volte. Per questo accettare un pagamento con zero conferme comporta un rischio, soprattutto per qualcosa di valore significativo. Un commerciante che accetta pagamenti a zero conferme per un piccolo acquisto immediato sta facendo una scommessa calcolata sul fatto che nessuno si prenderà la briga di invertire un importo minimo. Per somme più grandi, l'approccio sicuro è attendere le conferme. Una linea guida molto usata è attendere sei conferme, circa un'ora, dopo le quali la probabilità di un'inversione diventa minima. Questo è il significato pratico della frase secondo cui la mempool non è la blockchain.
La mempool come livello di sicurezza
La mempool fa più che mettere in coda i pagamenti in sospeso. Aiuta anche a difendere la rete.
Immagina un aggressore che cerca di inondare ogni nodo con un flusso infinito di transazioni minuscole per esaurire memoria e banda, un attacco di tipo negazione del servizio. La combinazione di una commissione minima di inoltro e di un limite di dimensione della mempool rende questo costoso e autolimitante. Man mano che la mempool si riempie, la soglia minima sale, quindi ogni transazione spam aggiuntiva costa più della precedente. Le transazioni più economiche e di polvere sono le prime a essere eliminate. Inondare la rete su larga scala diventa quindi economicamente doloroso anziché gratuito, ed è esattamente il tipo di progettazione degli incentivi che mantiene Bitcoin robusto senza alcun operatore centrale a fare da vigile.
Conclusione
La mempool è dove l'economia di Bitcoin diventa tangibile. È la sala d'attesa tra il momento in cui premi invia e quello della conferma, una memoria di transazioni in sospeso conservata da ogni singolo nodo anziché un'unica lista condivisa. I miner attingono da essa e danno priorità in base alla commissione, perché lo spazio nel blocco è davvero scarso e il mercato per esso è reale.
Capire tutto questo ti dà un controllo pratico. Puoi leggere un explorer per impostare una commissione sensata, riconoscere perché una transazione è bloccata e usare Replace By Fee o Child Pays For Parent per sbloccarla. E puoi tenere sempre presente la regola più importante. Una transazione nella mempool non è ancora avvenuta davvero. La conferma in un blocco è ciò che la rende definitiva, ed è la linea che separa una sala d'attesa da un registro permanente.
Fatti Chiave
La mempool (abbreviazione di memory pool) è la sala d'attesa che ogni nodo tiene per le transazioni valide non ancora inserite in un blocco.
Non esiste una mempool globale unica. Ogni nodo ne conserva la propria copia, quindi due nodi possono avere insiemi leggermente diversi di transazioni non confermate nello stesso momento.
I miner scelgono le transazioni in base alla commissione, misurata in satoshi per byte virtuale (sat/vB), non in base alla quantità di Bitcoin inviata.
Lo spazio nel blocco è limitato a 4.000.000 di unità di peso, circa 1.000.000 di byte virtuali, e in media viene minato circa ogni dieci minuti.
Una transazione con zero conferme resta nella mempool e non è ancora protetta dalla proof of work, quindi può essere sostituita o spesa due volte finché non viene minata.
Replace By Fee (RBF) e Child Pays For Parent (CPFP) sono i due modi principali per accelerare una transazione bloccata su una commissione troppo bassa.
Domande frequenti
No. La mempool contiene le transazioni non ancora confermate. Vive nella memoria di un nodo, non nella blockchain. Una transazione entra a far parte della blockchain solo quando un miner la inserisce in un blocco. Fino a quel momento resta non confermata e può ancora essere scartata, sostituita o spesa due volte.
Quasi sempre perché la commissione pagata è troppo bassa per la domanda attuale. I miner riempiono ogni blocco prima con le transazioni che pagano di più, quindi una transazione a bassa commissione aspetta finché la rete si calma e le transazioni concorrenti vengono confermate. Le tue monete non sono perse. Puoi aspettare, ripubblicare la transazione oppure usare Replace By Fee o Child Pays For Parent per aumentare la commissione effettiva.
Sì. Ogni nodo ha un limite di memoria e, per impostazione predefinita, Bitcoin Core scarta le transazioni in attesa da più di circa due settimane, oppure elimina quelle con la commissione più bassa quando la mempool è piena. In quel caso gli input tornano spendibili e la transazione può semplicemente essere ripubblicata finché è ancora valida.
Una commissione più alta la fa confermare prima, ma non cambia il livello di sicurezza una volta che è in un blocco. La sicurezza deriva dalle conferme, cioè dalla proof of work accumulata sopra il blocco. Una linea guida comune è attendere sei conferme, circa un'ora, prima di considerare definitivo un pagamento di importo elevato.
Fonti
- 1.Greg Walker, Learn Me A Bitcoin: Memory Pool
- 2.The Mempool Open Source Project: FAQ and Fee Estimation
- 3.Johoe's Bitcoin Mempool Statistics
- 4.Bitcoin Optech: Replace By Fee
- 5.Bitcoin Optech: Child Pays For Parent
- 6.Bitcoin Core Onboarding: Mempool Lifecycle
Non è una consulenza finanziaria. CanoeBit pubblica esclusivamente contenuti educativi. Nulla di quanto scritto costituisce una raccomandazione di acquisto, vendita o detenzione di asset.
Continua il percorso Come funziona Bitcoin
Passo 10 di 11