Fermata #64 - Bitcoin Training: Coin Control (Parte 1)
Come ottimizzare la spesa in commissioni di transazione gestendo gli UTXO del proprio wallet? Bitcoin Training dedica un approfondimento in due puntate al coin control. Parte 1: più UTXO, più problemi
In questo articolo approfondiremo le situazioni in cui potrebbe essere necessario gestire attivamente gli UTXO del proprio wallet. Descriveremo in particolare i problemi che possono derivare dall'accumulo di molti UTXO e le strategie che si possono utilizzare per risolverli.
Per cogliere al meglio ogni passaggio è consigliata la lettura preventiva della fermata #38, in cui è spiegato il concetto di Unspent transaction output (UTXO).
Qui puoi ascoltare un estratto gratuito di Bitcoin Train Podcast!
Per accedere alla completa versione narrata dell’articolo ed entrare nel gruppo Telegram dedicato alla newsletter, abbonati a Bitcoin Train!
Come gli UTXO possono influire sull’utente
Ogni UTXO nel wallet esiste come un singolo pezzo di dati, come una moneta fisica depositata in un salvadanaio. Detenere un gran numero di UTXO, dunque, significa immagazzinare molti dati che dovranno essere elaborati prima di inviare i bitcoin a un nuovo indirizzo, il che può essere considerato simile allo spedire un intero salvadanaio a un destinatario. Questo può influire principalmente in due modi.
Errori di firma dovuti a limitazioni del signing device (hardware wallet): alcuni signing device non sono in grado di firmare transazioni con troppi dati a causa della loro memoria limitata. Conoscere le limitazioni dei propri dispositivi consente di prevenire tali situazioni o di affrontarle in totale sicurezza.
Commissioni elevate quando si è costretti a usare bitcoin in momenti inopportuni: come spiegato nella fermata #23 (e anche più avanti nell’articolo), le commissioni delle transazioni variano in base alla quantità di dati da scrivere on-chain. Più sono gli input di una transazione, maggiore sarà il costo di quest’ultima. Se l’obiettivo è evitare commissioni elevate, mantenere un numero relativamente basso di UTXO può fare la differenza.
Analizziamo entrambi i concetti in dettaglio.
Limitazioni dei signing device
Gli attuali signing device più popolari, quelli di Ledger e Trezor, possono potenzialmente firmare transazioni con oltre 50 input, ma il processo potrebbe richiedere diversi minuti per essere completato o potrebbe finire per non avere successo.
Un modo per evitare il problema è quello di spostare i bitcoin in diverse transazioni più piccole. Anziché firmare l'invio di tutti gli input in una volta sola, mandando una parte degli UTXO alla volta il dispositivo può avere più fortuna nel gestire i dati e nel fornire le firme.
In futuro i nuovi modelli di signing device saranno migliorati per gestire un numero sempre maggiore di output non spesi. Il Coldcard Mk3 (rilasciato nel 2019), per esempio, è in grado di firmare transazioni con un massimo di circa 20 UTXO come input, mentre il modello più recente Mk4 (rilasciato nel 2022) non ha limiti (o almeno non ne ha uno in cui un utente tipico potrebbe imbattersi).
Come vedremo più avanti, per evitare che una grande quantità di UTXO si trovi nel wallet è possibile regolare la frequenza con cui si depositano i bitcoin nel portafoglio e consolidare gli output non spesi.
Gestire le commissioni delle transazioni
Acquistare bitcoin tramite piani di accumulo o mining può facilmente portare all’ammassamento di molti UTXO nel proprio wallet. Questo può portare a dover pagare commissioni elevate nel momento in cui ci sia la necessità di spendere i bitcoin acquisiti.
Quanto possono essere sostanziose le commissioni? Rivediamo come vengono calcolate.
Annuncio sponsorizzato
Acquistare bitcoin con un’esperienza unica che massimizza la privacy e in modo immediato, tutto tramite Telegram: a offrire questa possibilità è Bitcoin Voucher Bot, al quale accedere scannerizzando il QR Code o cliccando qui.
Senza dover completare alcuna pratica di KYC, Bitcoin Voucher Bot permette di comprare e vendere bitcoin sia on-chain che tramite Lightning Network con bonifico SEPA, con un limite di € 900 al giorno. E’ anche possibile effettuare swap - convertire quindi la liquidità in proprio possesso - tra on-chain e LN e tra on-chain e Liquid (e viceversa, in entrambi i casi). Non è tutto, perché grazie a Bitcoin Voucher Bot si può anche acquistare l’abbonamento a Mullvad VPN - pagando in bitcoin tramite Lightning Network - per incrementare la privacy della propria navigazione. Provalo!
Il calcolo delle commissioni
Le commissioni sono determinate dal prezzo per ogni byte di dati moltiplicato per il numero di byte richiesto dalla transazione. Se si devono spostare molti UTXO, la transazione conterrà più byte di una con pochi input.
La maggior parte dei wallet consente di scegliere il costo per byte. Scegliendo un importo basso come 1 sat/vb (satoshi per byte) o 3 sat/vb, il costo sarà il minimo possibile, mentre con un importo di 10 sat/vb o 30 sat/vb, il prezzo sale di 10 volte.
Perché mai si dovrebbe scegliere un tasso di remunerazione più alto? Per garantire che la transazione sia confermata più velocemente.
Come spiegato nella fermata #23, lo spazio all’interno di ogni blocco della timechain di Bitcoin non è infinito e dunque solo un numero limitato di transazioni può esservi scritto. In media, è possibile elaborare circa uno o due megabyte di dati ogni dieci minuti. Questo significa che se le transazioni di tutto il network superano i 2MB1 nella finestra temporale che intercorre tra l’approvazione di un blocco e quello successivo non tutte potranno essere aggiunte al nuovo blocco. Alcune transazioni dovranno attendere più a lungo. Qual è il criterio che porta alla selezione delle transazioni da inserire e da scartare? La commissione. Quando i miner selezionano le transazioni da includere nel blocco che stanno estraendo, sono incentivati a includere prima quelle che pagano loro le commissioni più alte.
Naturalmente, se il network non è intasato la scelta di una commissione bassa è preferibile. Se la domanda è alta, selezionando commissioni minime ci si potrebbe trovare davanti a una transazione che non verrà confermata fino a quando il network non si sarà liberato. In questi casi una possibile soluzione è quella di aumentare a posteriori la commissione della transazione se il wallet supporta la funzione Replace by fee (RBF)2.
Esempi di diversi contesti di mercato delle commissioni
Per visualizzare i diversi contesti è utile analizzare la mempool, il limbo in cui le transazioni vengono inviate e conservate in attesa di essere inserite in un blocco. Consideriamo inizialmente i primi due mesi di quest’anno, quando la domanda è rimasta bassa.
L'altezza dell'area colorata rappresenta la quantità di dati di transazione arretrata, in attesa di essere inserita in un blocco. Sebbene si siano verificati picchi temporanei di domanda, questi si sono attenuati nel giro di pochi giorni. I diversi colori rappresentano i diversi livelli di commissione tra le transazioni in attesa; il colore rosa più vicino al fondo mostra le transazioni da 1 sat/vb, che sono state elaborate regolarmente.
Torniamo poi indietro di un anno, ai primi due mesi del 2021, quando gli utenti effettuavano molte più transazioni durante il mercato rialzista.
Il quadro è molto diverso. Con una domanda sostenuta, il numero di transazioni in attesa di essere approvate continuava a crescere. Le transazioni con commissioni basse, come quelle indicate in rosa e viola chiaro, non sono state elaborate per diverse settimane. Gli utenti che volevano vedere approvate le proprie transazioni in poco tempo impostavano commissioni sempre maggiori; le transazioni evidenziate in verde e giallo avevano commissioni dai 10 sat/vb ai 50 sat/vb.
Durante questo periodo la mempool non si è completamente liberata fino a giugno, quando il prezzo di bitcoin è sceso e l'entusiasmo si è spento.
L’ammasso di transazioni accumulato in quel periodo ha impiegato circa sei mesi ad essere smaltito, per cui in questi mesi era necessario alzare l’importo delle commissioni in caso di necessità di approvazione rapida. C'è stata persino una settimana, nell'aprile 2021, in cui le uniche transazioni elaborate avevano commissioni di circa 100 sat/vb o superiori, come mostrato in grigio e rosso scuro.
I numeri
La situazione più costosa è quella in cui ci si trova se si hanno molti UTXO da spostare con breve preavviso mentre il contesto tariffario è estremamente elevato.
Indipendentemente dalla quantità di bitcoin da spostare, le commissioni possono variare moltissimo. Disponendo di 0,9 BTC sotto forma di 100 UTXO e dovendoli inviare con una commissione di 100 sat/vb, il costo sarà di 2.000 volte superiore rispetto all’invio dello stesso imposto ma sotto forma di 5 UTXO con una commissione di 1 sat/vb.
Per comodità consideriamo un prezzo di 50.000 euro per bitcoin. A questo tasso di cambio 1.000 satoshi valgono 50 centesimi, mentre 2.000.000 di satoshi (0,02 BTC) valgono 1.000 euro. E’ verosimile che nell’aprile dello scorso anno diversi utenti abbiano pagato questo prezzo per effettuare una singola transazione.
Per gestire il rischio di volatilità del prezzo delle commissioni, una cosa che può essere controllata è il numero degli UTXO detenuti.
Strategie per prevenire un elevato numero di UTXO
Esistono due modi principali per mantenere il conteggio degli UTXO a un livello ragionevolmente basso.
Controllare la frequenza dei depositi
Se si è impostato un piano di accumulo con invio dei satoshi diretto al proprio wallet è facile trovarsi a dover gestire molti output non spesi. Un trasferimento al giorno, per esempio, farà ammassare oltre 300 UTXO in meno di un anno (e un prezzo potenziale di migliaia di euro per spostarli in futuro). Ecco una valida alternativa:
acquistando abitualmente bitcoin su un exchange, magari più volte alla settimana, è utile prendere in considerazione la possibilità di inviarli in blocco una o due volte al mese. In questo modo, ci si ritroverà con meno di 25 nuovi UTXO all'anno.
I miner, invece, se fanno parte di una pool, dovrebbero essere in grado di regolare le soglie di pagamento, modificando la frequenza con cui i guadagni vengono inviati al wallet. Aumentando la soglia i satoshi saranno inviati meno spesso ma con importi maggiori, permettendo così di accumulare meno UTXO nel tempo.
Attenzione: queste alternative comportano il mantenimento di una parte dei propri bitcoin sotto la custodia di terze parti (exchange/pool) per un periodo di tempo più lungo e introducono quindi un maggior rischio di custodia.
Eseguire un consolidamento strategico degli UTXO
Disponendo già di molti UTXO nel wallet, c'è una mossa per ridurre potenzialmente le commissioni future in modo sostanziale: fare un consolidamento UTXO prendendo alcuni o tutti i propri output non spesi e combinarli in modo da lasciare la quantità di bitcoin in un unico, o pochi, UTXO.
Per farlo basta creare una transazione contenente gli UTXO che si desidera consolidare e inviarli a se stessi. Ad esempio, con dieci UTXO da 0,1 BTC, è possibile raggrupparli e inviarli a un nuovo indirizzo generato dal proprio wallet. Il risultato finale sarà un singolo UTXO. Tuttavia, non si disporrà più precisamente di 1 BTC, perché un consolidamento UTXO non viene visto dalla rete in modo diverso da altre transazioni, quindi ci sarà una piccola differenza dovuta al pagamento delle commissioni.
L’azione può tornare utile se fatta in periodi in cui la domanda di transazioni è bassa e quindi lo è anche il mercato delle commissioni. Consolidare i propri UTXO con commissioni basse (strumenti come txfees.watch possono essere utili per individuare il momento giusto), permette di essere più preparati ad affrontare un contesto di commissioni più elevate quando si verificherà. Avere un solo UTXO ed essere costretti a spostarlo per 50 sat/vb o 100 sat/vb sarà molto meno doloroso che dover inviare molti UTXO a quei prezzi.
Queste operazioni, tuttavia, hanno un costo in termini di privacy, di cui ci occuperemo nella seconda parte.
GIVEAWAY DI NATALE!
Volete far capire a parenti e amici in parole semplici perchè Bitcoin vi ha conquistato? Lorenzo Primiterra ha scritto la miglior guida per farlo: “Mamma, ho comprato bitcoin!”
Per i lettori di Bitcoin Train Lorenzo ha messo a disposizione quattro copie gratuite del suo libro! Una copia sarà messa in palio per ognuno dei quattro articoli in uscita da oggi a Natale:
Fermata #64 - oggi 10 dicembre;
Fermata #65 - sabato 17 dicembre;
Fermata #66 - mercoledì 21 dicembre:
Fermata #67 - sabato 24 dicembre.
Per partecipare condividete l’articolo su Twitter scrivendo cos’è per voi Bitcoin. Taggatemi (@federico_rivi) e utilizzate l’hashtag #BitcoinTrain.
Per ognuno dei quattro articoli selezionerò il tweet più originale e contatterò il vincitore per l’invio del libro. L’unica informazione richiesta sarà un indirizzo di spedizione.
Bitcoin Train ringrazia Lorenzo per questa splendida opportunità. Non perdete l’occasione di orange pillare parenti e amici!
Bitcoin Train consiglia: BitBox02!
Per non delegare la responsabilità della custodia a terze parti, come gli exchange, è necessario proteggere autonomamente le proprie chiavi private e il modo più sicuro per farlo è offline. Per questo esistono i signing device: dispositivi privi di connessione Internet studiati appositamente per proteggere le chiavi private.
Il preferito di Bitcoin Train è BitBox02, prodotto da Shift Crypto. Il codice sorgente è completamente open-source e, a differenza degli altri principali signing device sul mercato, consente il backup e il ripristino della seed-phrase anche tramite una micro-SD. E’ disponibile sia nella versione Multi Coin che in quella Bitcoin-only (consigliata).
Potete provarlo acquistandolo da questo link. Per ulteriori informazioni potete rispondere a questa e-mail oppure scrivermi tramite i miei contatti.
***
Questo NON è un messaggio pubblicitario. BitBox02 è un prodotto che ho testato personalmente. Provatelo e fatemi sapere come vi trovate!
Il limite virtuale di ogni blocco è di 4MB, ma quasi mai vengono scritti blocchi superiori ai 2MB.
RBF: metodo che consente di sostituire una versione di una transazione non confermata con una versione diversa della transazione che paga una commissione di transazione più alta. Sebbene sia una funzione prevista dal protocollo Bitcoin, non tutti i wallet la implementano.