inizio
inizio

Il termine «mempool» è una contrazione delle parole inglesi «memory» e «pool», che può essere tradotto in francese come «memory» e «basin». Pertanto, un mempool è uno spazio temporaneo contenente transazioni Bitcoin in attesa di essere integrate in un blocco. Questo spazio viene gestito da ciascun nodo della rete.
In questo articolo, esaminiamo la natura tecnica dei mempool su Bitcoin e il loro ruolo nel funzionamento del protocollo.
Quando vuoi effettuare una transazione su Bitcoin, il primo passo è firmarla utilizzando le chiavi private contenute in un portafoglio. Una volta firmata, la transazione viene trasmessa a un nodo di rete che garantisce la conformità alle regole stabilite. Se la transazione soddisfa tutti i criteri di validità, questo nodo la propaga agli altri nodi della rete a cui è connessa. Questo processo di streaming continua e, rapidamente, la transazione dovrebbe aver raggiunto la maggior parte dei nodi della rete Bitcoin.

Se la transazione ha commissioni sufficienti, verrà selezionata da un minatore per integrarla in un blocco. Non appena un miner riesce a generare un blocco valido contenente la transazione, viene confermata dalla distribuzione del nuovo blocco sulla rete.
Il «mempool» si riferisce allo spazio di archiviazione temporaneo che ospita transazioni convalidate dai nodi, ma non ancora incluse in un blocco. Finché una transazione attende la conferma, risiede nei mempool del nodo.
Sebbene il termine «mempool» sia spesso usato come se fosse qualcosa di unico, sarebbe più corretto parlare al plurale di «mempool». In effetti, ogni nodo della rete Bitcoin gestisce il proprio mempool e potrebbero esserci differenze tra i mempool di ciascun nodo.
.png)
Il mempool di un nodo è quindi in continua evoluzione in base alle nuove informazioni che riceve. Quando nuove transazioni vengono emesse dagli utenti, il nodo le salva nel suo mempool. Al contrario, quando un miner trova un blocco da aggiungere alla blockchain, il nodo esamina le transazioni confermate in quel blocco e le rimuove dal suo mempool.
.png)
Poiché i mempool rappresentano lo spazio di archiviazione per le transazioni in attesa di conferma, hanno necessariamente dimensioni limitate. Infatti, ogni nodo è libero di definire un limite massimo per il suo mempool personale.
Per impostazione predefinita, su Bitcoin Core (l'implementazione maggioritaria del protocollo Bitcoin), il limite massimo è fissato a 300 MB. Ciò significa che un nodo accetterà transazioni in sospeso fino a raggiungere questo limite massimo. Oltre a ciò, inizierà un processo di definizione delle priorità in base ai costi. Le transazioni che offrono le commissioni più basse possono quindi essere escluse dal mempool del nodo. Concretamente, ciò comporta la cancellazione di queste transazioni dalla sua memoria.
Ogni nodo può modificare la dimensione del suo mempool regolando il parametro Piscina Max Mem nel file di configurazione bitcoin.conf. Tuttavia, la maggior parte dei nodi mantiene il limite predefinito di 300 MB. Esiste quindi una certa omogeneità in termini di capacità dei mempool su Bitcoin.

Questa uniformità ha una conseguenza: quando una transazione viene rifiutata dai mempool da 300 MB, viene di fatto rimossa dalla rete Bitcoin, come se fosse stata annullata. Per prevenire questo scenario, un indicatore chiamato» Tasso di spurgo » ci informa sulle commissioni minime di transazione necessarie per evitare di essere dimenticati dai mempool del nodo.
Ad esempio, se il numero cumulativo di transazioni in sospeso che offrono più di 2 SAT/VB raggiunge i 300 MB, la velocità di eliminazione verrà fissata a 2 SAT/VB. Le transazioni che offrono commissioni inferiori a questa soglia verranno quindi escluse dai mempool. Naturalmente, questo tasso oscilla in base alla domanda di spazio nei blocchi e all'offerta generata dall'attività mineraria.
.png)
➤ Scopri il ruolo dei nodi in Bitcoin.
Come spiegato nella parte precedente, affinché un nodo accetti di aggiungere una nuova transazione non confermata al suo mempool, il mempool deve rispettare determinate regole. Questi standard si dividono in due tipi:
Le regole di consenso sono un po' come le leggi fondamentali del protocollo Bitcoin. Garantiscono la coerenza e l'integrità dell'intero sistema definendo i criteri in base ai quali le transazioni e i blocchi vengono convalidati. Una transazione che viola le regole di consenso non può essere inclusa in un blocco valido. Ad esempio, una transazione con una firma non valida non può essere minata sulla blockchain. Queste regole di consenso sono le stesse per tutti gli utenti di Bitcoin e vengono applicate collettivamente.
Le regole di standardizzazione, invece, sono determinate da ciascun nodo Bitcoin in modo indipendente. Definiscono criteri aggiuntivi per la struttura delle transazioni non confermate che il nodo è disposto ad accettare nel suo mempool e a distribuire ai suoi peer. Queste regole vengono configurate ed eseguite localmente da ciascun nodo. Possono variare da nodo a nodo e si applicano solo alle transazioni non confermate. Pertanto, un nodo accetterà una transazione che ritiene non standard solo se è già inclusa in un blocco valido.
Sebbene queste regole possano differire da nodo a nodo, la maggior parte mantiene le impostazioni predefinite stabilite in Bitcoin Core. Poiché questa implementazione rappresenta oltre il 98% della rete Bitcoin, esiste di fatto un'omogeneità delle regole di standardizzazione tra i nodi.
Una transazione che, sebbene conforme alle regole del consenso, non rispetta queste regole di standardizzazione, avrà quindi difficoltà a diffondersi sulla rete. Tuttavia, può essere inclusa in un blocco valido se raggiunge un valore minore. In pratica, queste transazioni, descritte come non standard, vengono generalmente trasmesse direttamente a un miner tramite canali esterni alla rete peer-to-peer di Bitcoin. Questo è spesso l'unico modo per confermare questo tipo di transazione.
Per illustrare la distinzione tra questi due tipi di regole, prendiamo come esempio le commissioni di transazione. Dal punto di vista del consenso, non ci sono requisiti di commissione. Una transazione può quindi non avere commissioni e può comunque essere integrata in un blocco conforme alle regole di consenso. Il blocco verrà accettato dalla rete di nodi. Ad esempio, ecco una transazione minata senza commissioni: fd456524104a6674693c2994693c29946543f8a0befccce5a352bda55ec8559fc630f5f3
D'altra parte, per impostazione predefinita, le regole di standardizzazione richiedono che le transazioni allocino almeno 1 SAT/VB in commissioni. Quindi, se un nodo riceve una transazione non confermata con zero commissioni, si rifiuterà di integrarla nel suo mempool e non la trasmetterà agli altri nodi.
Una transazione priva di commissioni è quindi valida secondo le regole di consenso e non standard secondo le regole mempool, perché la politica predefinita di Bitcoin Core per il parametro Tariffa MinRelayTX È di 0,00001 (in BTC/kb).
➤ Scopri di più sulle commissioni di transazione Bitcoin.
Il mempool rappresenta un serbatoio temporaneo all'interno dei nodi per le transazioni Bitcoin in attesa di conferma. Ogni nodo di rete ha il proprio mempool.
La capacità dei mempool è limitata, generalmente a 300 MB, in base alla configurazione standard di Bitcoin Core. Pertanto, possono contenere solo un volume limitato di transazioni, con priorità in base alle loro tariffe. Durante i periodi di congestione, viene stabilito un «tasso di eliminazione» per indicare la commissione minima richiesta per evitare di escludere una transazione dai mempool.
Per essere integrate in un blocco, le transazioni Bitcoin devono rispettare le regole di consenso. Un secondo livello di regole più restrittive, chiamato regole di standardizzazione o mempool, viene applicato individualmente da ciascun nodo. Le transazioni che non soddisfano queste regole aggiuntive non vengono aggiunte al mempool del nodo e, pertanto, non vengono propagate attraverso la rete.

