Le transazioni che vengono inviate alla blockchain inizialmente sono non confermate. Cosa significa?
Una blockchain è composta da blocchi concatenati l’uno all’altro e questi blocchi contengono le transazioni. Una transazione, per essere valida, deve essere inserita in un blocco e possibilmente deve essere stato aggiunto almeno un ulteriore blocco alla blockchain.
La transazione viene considerata confermata solo quando è stata inserita in un blocco e conta tante conferme quanti sono i blocchi successivi aggiunti alla blockchain, più il blocco stesso in cui è stata inserita.
Infatti, quando un utente invia delle criptovalute ad un indirizzo pubblico, la sua transazione non viene immediatamente inserita nella blockchain, perché è necessario convalidarla.
A seconda del protocollo di consenso utilizzato dalla specifica blockchain, la convalida prevede procedure differenti, ma ad esempio sulla blockchain di Bitcoin, e su tutte quelle basate su Proof-of-Work, questa convalida la effettuano i miner.
Restando sempre su Bitcoin, la transazione inizialmente non viene inviata direttamente alla blockchain, ma alla cosiddetta mempool, che è una sorta di repository temporaneo delle transazioni in attesa di essere inserite in un blocco e quindi confermate.
Per quanto riguarda Bitcoin, la mempool conta sempre molte migliaia di transazioni, arrivando anche a molte decine di migliaia di transazioni in attesa di essere convalidate, nei momenti di maggiore congestione.
È da questa mempool che i miner attingono per verificare che le transazioni siano corrette, che la firma digitale corrisponda a quella del mittente, e quale sia la commissione pagata da ognuna allo stesso miner.
Infatti, sono proprio le commissioni impostate dal mittente a far scegliere ai miner quali transazioni confermare.
Visto che, ad esempio, un blocco della blockchain di Bitcoin non è in grado di contenere più di circa 3.000 transazioni, e dato che ne viene minato in media uno ogni 10 minuti, è logico immaginare che la mempool di Bitcoin sia sempre piena, e molto spesso contenga più transazioni di quante ve ne stiano in un blocco.
Pertanto i miner sono costretti giocoforza a scegliere quali includere, ed in genere scelgono quelle con fee maggiori.
Questo fa sì che, qualora le fee impostate dal mittente della transazioni siano troppo ridotte, la transazione non solo corre il rischio di non essere selezionata per essere inclusa nel blocco successivo, e quindi confermata in pochi minuti, ma corre anche il rischio di non essere inserita nemmeno nei blocchi seguenti.
Per questo motivo ci sono diverse migliaia di transazioni non confermate in attesa di essere inserite in un blocco della blockchain di Bitcoin, ed a volte possono dover attendere anche diversi giorni prima di trovare un miner che accetti di convalidarle.
Va tuttavia detto che una transazione inviata alla mempool non è affatto definitiva, e può essere annullata o modificata, in particolare ad esempio per incrementare le fee in modo da renderla più allettante per i miner.
Purtroppo non tutti i wallet supportano queste funzionalità, soprattutto quelli gestiti da terze parti (ovvero quelli custodian).
Anzi, i wallet migliori sono quelli che suggeriscono all’utente quante fee impostare in modo che la propria transazione sia inclusa nel blocco successivo, o perlomeno in uno dei 5 o 10 blocchi successivi, in modo che l’utente possa scegliere quanto spendere per la transazione a seconda delle proprie esigenze di urgenza.
Bisogna sempre ricordare che una transazione non è da considerare valida fino a che non viene confermata con l’inclusione in un blocco, pertanto le transazioni non confermate sono transazioni non ancora convalidate, in attesa di esserlo.
Infatti, se la transazione non dovesse essere riconosciuta come corretta non verrebbe inclusa in alcun blocco, e quindi di fatto annullata, ed è per questo che è assolutamente necessario attendere che abbia almeno una conferma prima di poterla ritenere valida.
Da notare che più conferme ha, più è sicura, pertanto si sconsiglia di considerare definitiva una transazione che abbia ancora solamente una conferma.
Perché ottenga più conferme è necessario solamente attendere che vengano minati altri blocchi dopo quello in cui è stata inclusa.