Come far confermare una transazione bloccata nella mempool
Hai una transazione bloccata in uno stato di attesa con poche speranze di essere confermata a breve? Impariamo perché questo accade e come può essere risolto. Le transazioni si bloccano perché la tassa di transazione - ovvero il fee - che hai impostato è troppo bassa. Una fee "troppo bassa" significa semplicemente che i minatori stanno riempiendo i loro blocchi con altre transazioni che pagano fee più alte. A meno che il volume delle transazioni non diminuisca, la tua transazione potrebbe non essere confermata e - fino ad allora - i fondi non raggiungeranno la destinazione prevista.
Tuttavia, va precisato che i tuoi fondi non sono MAI a rischio di perdita quando sono in sospeso. Alla fine saranno confermati, o saranno "dimenticati" dai nodi dopo un certo periodo di tempo e potrai riavere accesso a loro nel tuo wallet. Nel frattempo, potresti avere alcune opzioni per accelerare la tua transazione, a seconda delle caratteristiche offerte dal wallet che hai usato per inviarla. Analizziamo ciascuna di queste opzioni.
La mempool (abbreviazione di "memory pool") è una collezione di transazioni in sospeso che sono state convalidate dai nodi ma non ancora confermate ( cioè incluse in un blocco della blockchain) dai minatori.
È stabilito dal protocollo di rete che le transazioni con una fee troppo bassa saranno rifiutate subito. In altre parole, i nodi non includeranno la transazione nella loro mempool e non si propagherà ad altri nodi. Nel momento in cui scrivo, la fee minima di transazione richiesta per entrare nella mempool è di circa 5 sat/vBtye (satoshis per vByte di dati).
Puoi pensare alla fee come al pagamento dello spazio a blocchi consumato dalla tua transazione. Lo spazio a blocchi si misura in vByte. Ecco perché le fee in Bitcoin non dipendono dalla quantità di fondi che vengono trasferiti, ma dalla quantità di dati che devono essere inclusi nella blockchain.
Sorgente: https://mempool.space/graphs#1m
Questo grafico ti aiuta a visualizzare come le tariffe delle transazioni possono cambiare nel tempo. Quando la domanda di spazio di blocco è alta (cioè un alto volume di transazioni), le commissioni salgono. Essenzialmente, tu come utente devi competere con altri utenti per incentivare i minatori orientati al profitto ad includere la tua transazione nel loro blocco.
Come menzionato sopra, la tua transazione potrebbe alla fine essere "dimenticata" se impostati una fee troppo bassa. Questo perché la mempool di ogni nodo non ha uno spazio infinito, ma è piuttosto limitato a 300MB nell'implementazione tipica. Quando la mempool raggiunge la piena capacità, i nodi tipicamente si liberano delle transazioni con fee più bassa per aggiungere transazioni a feee più alta. Una volta che questo accade, i fondi nella tua transazione "dimenticata" diventano di nuovo accessibili per te.
Il grafico qui sotto ti aiuterà a vedere come questo accade in pratica. Sul lato sinistro del grafico, la mempool si sta svuotando regolarmente, il che significa che anche 1-2 sat/vByte di fee sono sufficienti se siete disposti ad aspettare un po' per le conferme. Sul lato destro, invece, la vostra transazione non sarà mai inclusa nella mempool se la fee è inferiore a 5-6 sat/vByte.
Sorgente: https://mempool.ninja/graphs#6m
La tua transazione può anche essere "dimenticata" a causa dei riavvii dei nodi e dei tempi di scadenza delle mempool. In media, ci vogliono alcuni giorni perché questo accada e perché tu possa riottenere l'accesso ai tuoi fondi. Tuttavia, dipende dal volume delle transazioni e da altre variabili, quindi a volte può richiedere molto più tempo.
Per questi casi, di seguito sono esplicitati altri metodi che puoi provare per ottenere la conferma della tua transazione.
E se tu dovessi creare una nuova transazione inviando gli stessi fondi alla stessa destinazione ma con una fee più alta? Uh-oh... dalla prospettiva di un nodo che vede la nuova transazione, avete appena tentato una doppia spesa. Quando viene rilevata, i nodi semplicemente abbandonano la transazione più recente.
I nodi seguono una politica "first-seen", il che significa che il software del nodo considera la prima transazione che riceve come valida, e qualsiasi transazione successiva che vede tentare di spendere le stesse monete sarà considerata non valida e non si propagherà.
Quindi, quali opzioni esistono se una transazione è bloccata nella mempool e non si vuole aspettare che venga confermata o dimenticata? Di seguito sono riportate le soluzioni più comuni.
Nel 2016, è stata proposta una politica nel BIP125 per consentire transazioni sostituibili. Essenzialmente permette al mittente (cioè al te) di notificare in anticipo ai nodi quando vuole che una transazione sia sostituibile.
Diciamo che invii una transazione e vorresti essere in grado di sostituirla nel caso in cui abbia impostato la fee troppo bassa. Se la funzione RBF è stata abilitata e i nodi hanno implementato la politica RBF, sei fortunato. Quando la transazione sostitutiva viene inviata ai nodi, essi sostituiranno la vecchia transazione con quella nuova e la trasmetteranno ai loro nodi pari.
A quel punto i minatori vedranno la nuova transazione con una fee più alta e sarà più probabile che la includano in un blocco futuro perché così facendo guadagneranno di più.
Ricorda, questo può essere iniziato solo dal mittente. Se sei il ricevente, vorrai dare un'occhiata a una transazione Child Pays for Parent.
Gli UTXO non possono essere spesi parzialmente. Invece, vengono sempre spesi per intero, ma qualsiasi importo rimanente - chiamato "resto" - viene semplicemente rimandato a te come un nuovo UTXO.
In uno scenario in cui il figlio paga per il genitore (CPFP), puoi far confermare la tua transazione in sospeso inviando un'altra transazione a te stesso usando il resto della transazione in sospeso. Crei effettivamente una transazione "figlia" per pagarti il resto ma con una fee più alta, come mostrato di seguito.
Esempio di CPFP; per semplicità, supponiamo che entrambe le transazioni abbiano lo stesso peso (vBytes)
A differenza di una transazione RBF, una transazione CPFP può essere avviata da qualsiasi parte che riceve un UTXO nella transazione madre. In altre parole, entrambe le parti A2 o B dell'esempio precedente possono usare i fondi che ricevono nella transazione madre per coprire una fee più alta in una transazione figlia.
Ecco perché funziona per "sbloccare" transazioni bloccate in un blocco. Mentre i minatori vorrebbero includere solo la transazione figlia perché ha una fee più alta, questo non è possibile. La transazione figlia è basata sulla transazione madre non confermata, quindi è valida solo se la transazionemadre è anche sulla blockchain. Praticamente, diventano un unico "pacchetto".
Questo significa che le fee cumulative delle due transazioni devono essere sufficienti (in termini di sat/vByte) per essere confermate. In altre parole, la media delle due fee deve essere maggiore dell'attuale livello di fee richiesto per ottenere la conferma di una nuova transazione.
Creare una transazione CPFP è molto più difficile in quanto richiede di spendere da una transazione non confermata, cosa che molti wallet non permettono.
Infine, se RBF e CPFP non sono opzioni praticabili, puoi provare un modo più indiretto per far includere la tua transazione in un blocco: un acceleratore di transazioni.
Questo è un servizio offerto dai minatori in cui prenderanno un pagamento esterno (ad esempio utilizzando una altcoin, PayPal o WeChat Pay) per includere la vostra transazione in uno dei loro blocchi. Fondamentalmente, si fornisce un adeguato incentivo finanziario ai minatori pagando loro una tassa extra off-chain. Una rapida ricerca sul vostro motore di ricerca preferito per "BTC transaction accelerator" darà alcuni risultati.
Questi pagamenti esterni per le commissioni di transazione sono noti come pagamenti "fuori banda" e possono potenzialmente risultare in minori entrate per i minatori, quindi questo è controverso. Il protocollo Stratum V2 porta una maggiore trasparenza ai pagamenti fuori banda, come potete leggere in questo articolo di Deribit Insights.
Sta ad ogni sviluppatore di wallet scegliere quale delle opzioni sopra descritte voglia includere per i suoi utenti. Per esempio, i wallet di scambio tipicamente forzano una tassa fissa, non importa l'importo che viene inviato. Questo ha senso, poiché le transazioni bloccate creeranno inevitabilmente utenti infelici e mal di testa per il supporto. I wallet non-custodial (quelli dove controlli le tue chiavi) avranno spesso più opzioni disponibili per "sbloccare" una transazione bloccata.
Come utente di Bitcoin, hai l'opportunità di essere la tua banca. Questo presenta molti vantaggi tra cui la resistenza alla censura ed al sequestro dei fondi, ma significa anche che si può entrare in situazioni confuse come avere una transazione bloccata e non esiste un ufficio reclami a cui rivolgersi. Spero che questo articolo ti abbia aiutato a capire cosa fare e come evitare che questo accada di nuovo in futuro.
Aiutaci a migliorare. Se hai trovato un errore, un'inesattezza, un'imprecisione saremmo lieti se ce lo segnalassi. Grazie in anticipo per la tua collaborazione!
Non hai trovato il tutorial che cercavi e lo vorresti vedere realizzato? Lieti di prendere in considerazione la tua proposta.
Da #nocoiner a #holder. Come organizzare gli elementi necessari per la tua indipendenza monetaria. E' più facile di quanto pensi.
Scopri come