Cosa sono i Mempool e perchè sono fondamentali per la blockchain

Mempool, di cosa parliamo esatamente? Ormai sappiamo almeno a grandi linee ciò che accade durante l’esecuzione di una transazione su rete Bitcoin, ma cosa succede prima che arrivi alla validazione, è qualcosa che in tanti ancora si chiedono.

Una volta che poniamo la nostra firma crittografica su una transazione Bitcoin, questa va in una sorta di sala d’aspetto con diverse altre transazioni in sospeso e non ancora confermate. 

mempool blockchain
Adobe Stock

Questa sala d’aspetto è appunto chiamata mempool ed è parte integrante del processo di mining di Bitcoin e della validazione delle transazioni sulla rete. Un mempool o un pool di memoria può quindi essere definito come un meccanismo per la memorizzazione di informazioni su transazioni non ancora confermate. Queste transazioni cioè sono sì state verificate, ma non sono state ancora incluse nella blockchain e scritte in modo permanente in un blocco.

Un mempool, noto anche come pool di memoria, è cioè semplicemente un elenco di transazioni in attesa di convalida da parte di un nodo in una transazione blockchain.

Questa convalida deve avvenire prima che la transazione possa essere aggiunta a un blocco della blockchain. Ciò è analogo alla pratica di utilizzare ambienti di “Staging” nello sviluppo di software convenzionale, per effettuare test e controlli di qualità prima di rilasciare il prodotto in produzione.

Cos’è un mempool e a cosa serve

Sebbene i cosiddetti ambienti di “Staging” del passato fossero centralizzati, ora ogni nodo ha una propria mempool che deve essere gestita. Diamo un’occhiata al flusso delle transazioni per capire la funzione della mempool e come accedervi ci permetta di ottenere informazioni cruciali. Le transazioni su Ethereum possono essere suddivise nelle seguenti categorie:

  1. Un trasferimento diretto avviene quando il valore viene spostato da un indirizzo pubblico a un altro. Questo pagamento può essere ad esempio per un token non fungibile (NFT) o per un servizio.
  2. L’implementazione di uno smart contract: la creazione di una transazione viene attivata se uno smart contract viene caricato su una blockchain e attivato.
  3. L’esecuzione di uno smart contract, necessaria se un indirizzo desidera trasmettere denaro o dati a un indirizzo associato a uno smart contract.

È possibile tenere traccia delle transazioni su Ethereum utilizzando uno strumento di monitoraggio messo a disposizione da Alchemy, e si può consultare la cronologia delle transazioni per un determinato indirizzo utilizzando strumenti come l’API Alchemy Transfers.

Ogni singola forma di transazione in Ethereum segue lo stesso ciclo di vita, che consiste nelle seguenti fasi:

  1. Un utente avvia una transazione e la firma con la propria chiave privata.
  2. La transazione viene completata.
  3. La transazione viene ricevuta da un nodo, che la salva nella mempool.
  4. Il nodo esegue controlli di convalida della transazione mentre questa è ancora nella mempool. Se il mempool ha esito positivo, lo stato della transazione passa a “In attesa”.
  5. Il nodo invia un messaggio a tutti gli altri nodi della rete, informandoli della transazione in sospeso e chiedendo loro di aggiungerla ai propri mempool.
  6. Dopo la generazione di un nuovo blocco, un minatore incorporerà nel blocco le transazioni che hanno i maggiori gas fee. In questo modo la transazione passerà allo stato “Successful”.
  7. Le conferme delle transazioni saranno inviate una volta che il nodo avrà aggiunto ogni nuovo blocco dopo quello in cui è stata inclusa la transazione. In questo modo si ha la certezza che la transazione sia stata aggiunta in modo permanente alla blockchain, poiché la possibilità che i blocchi vengano riorganizzati in un ordine diverso diminuisce con il passare del tempo. Qui è possibile inviare le proprie transazioni e saperne di più sull’invio di transazioni.

Per difenderti adeguatamente dagli attacchi normativi e dai disastri di mercato, se hai esposizioni in criptovalute e DeFi leggi subito il nostro approfondimento per navigare senza paura durante la tempesta:
Sta arrivando l’Apocalisse DeFi e non ho niente da mettermi

A cosa serve un mempool per le blockchain

Poiché le blockchain non possono essere modificate dopo la loro creazione, è fondamentale che le transazioni aggiunte a una blockchain siano accurate e complete. Prima di iniziare il processo di commit di ogni transazione sulla blockchain, il nodo che ospita il mempool è responsabile dell’esecuzione di un controllo di convalida cruciale sulla transazione.

È essenziale che gli sviluppatori abbiano una solida conoscenza dei test di validazione per comprendere i fattori che possono far fallire le transazioni o farle rimanere nello stato di “Pending”:

  • Disponibilità di risorse finanziarie
    L’indirizzo del mittente viene controllato per verificare se dispone di liquidità sufficiente per pagare il costo della transazione, che comprende il costo del denaro inviato e il costo del gas necessario per completare la transazione. Nel caso in cui questa convalida non possa essere completata con successo, la transazione verrà ritirata dal mempool. Per garantire che la convalida sia completata con successo, è essenziale utilizzare i parametri di invio appropriati e l’indirizzo di destinazione.
  • L’autenticità delle firme sulle transazioni
    Ogni transazione deve essere firmata dall’indirizzo del mittente per essere valida. Ciò serve a verificare che la persona che invia il messaggio sia effettivamente l’utente autorizzato. Il nodo controllerà che la firma associata all’indirizzo del mittente sia quella corretta.
  • Valore nonce corretto
    Il numero di transazioni effettuate dall’indirizzo del mittente è il valore nonce. Il valore del nonce viene incrementato di uno ogni volta che una transazione esistente funge da mittente per una nuova transazione. Il valore nonce è essenziale perché garantisce che tutte le transazioni provenienti da un certo indirizzo avvengano nella sequenza in cui sono state inviate.
    Poiché i valori nonce di una transazione non possono essere duplicati o saltati, si elimina la possibilità di spendere il denaro disponibile più di una volta o di spendere più del necessario.
    Il nodo verificherà che la transazione in sospeso abbia il valore nonce appropriato ad essa collegato. Se il test non ha esito positivo, la transazione viene interrotta.
  • Il costo del gas
    Esiste un numero massimo di transazioni che possono essere memorizzate nella mempool in una sola volta, anche se questo numero varia a seconda della mempool. Geth, uno dei client più popolari per Ethereum, ha un massimo di 4096 transazioni in attesa e 1024 transazioni in coda per impostazione predefinita. Quando questo limite viene raggiunto, le transazioni con i costi di gas più bassi vengono tolte dal pool per gestire in modo efficiente lo spazio disponibile.

Come si ottiene l’accesso a un mempool

La possibilità per le transazioni sostitutive di sovrascrivere le transazioni in sospeso per correggerle, velocizzarle o annullarle completamente è un vantaggio significativo della struttura di dati mempool. Utilizzando Metamask, potrete imparare ad accelerare le transazioni in modo che vengano raccolte dai minatori in modo più tempestivo.

L’accesso a una mempool può essere utile per una serie di scopi, tra cui, a titolo esemplificativo ma non esaustivo: rettificare le transazioni in sospeso che sono in stallo in una mempool. In particolare, le funzioni del mempool consistono in diversi servizi, quali:

  • Stimare le tariffe del gas
    È possibile evitare il pagamento eccessivo delle commissioni esaminando l’elenco attuale delle transazioni in sospeso e i costi associati a tali transazioni.
  • NFT Mining
    Gli utenti sono in grado di ottenere visibilità sulle transazioni in sospeso che si stanno impegnando con i contratti NFT quando utilizzano uno scanner di mempool e quindi superano le transazioni pagando prezzi del gas più elevati.
  • Insights‍ sulle prestazioni‍
    Gli sviluppatori di smart contract sono in grado di ottenere informazioni sulle attività degli smart contract provenienti dalla mempool utilizzando servizi come l’API Notify. Le transazioni che sono ancora in fase di elaborazione possono rivelare informazioni su difetti e debolezze di uno smart contract.

Conclusioni

Il mempool è un componente essenziale per il funzionamento di una blockchain e per la sua salute generale. Per il flusso delle transazioni è necessario un meccanismo che consenta ai nodi di convalidare le transazioni e ai minatori di dare priorità alle transazioni in sospeso in base ai prezzi del gas ad esse associati.

I dati offerti da una mempool possono anche essere utilizzati dagli sviluppatori per ridurre le spese e le sfide associate ai loro contratti intelligenti. I mempool di una blockchain sono talvolta definiti come le “foreste oscure” della rete. Tuttavia, piattaforme come gli strumenti di Alchemy Monitoring consentono agli utenti di avere maggiore chiarezza in questa fase essenziale.

Impostazioni privacy