Uno dei miti da sfatare riguardanti Bitcoin è legato al costo per transazione (commissioni di mining).
Nello specifico, il mito è: “Più l’importo della transazione è elevato, maggiore è la spesa in commissioni.
Questo equivoco è probabilmente dovuto a ciò che avviene con i sistemi di pagamento classici, specialmente con i pagamenti transnazionali: solitamente si paga una commissione in percentuale al transato.

Con Bitcoin le cose funzionano diversamente: ci si potrebbe potenzialmente trovare nella situazione in cui trasferire un miliardo di dollari in bitcoin costa meno che trasferire pochi USD.

Come mai?
Quando trasferiamo bitcoin, il nostro wallet costruisce la transazione, aggregando delle quantità di BTC disponibili.
Immaginiamo il nostro wallet Bitcoin come un classico portafoglio per i contanti. Al suoi interno abbiamo qualche banconota da 10 euro, qualcuna da 20, alcune monete e così via, per un totale di 130 euro.
Nel caso dovessimo pagare una bene o servizio che costa 100 euro, dovremmo ovviamente sommare le varie banconote fino a raggiungere la cifra richiesta. Se superiamo la cifra e paghiamo, otterremo un resto (nel caso in cui ad esempio pagassimo con una banconota da 50 e tre da 20 euro).

In Bitcoin il procedimento è molto simile: quelle definite in precedenza “quantità di bitcoin disponibili” vengono in realtà chiamati output non spesi (UTXO) e diventano, tutti o in parte, gli input della nostra transazione, ossia le “banconote” che andranno a formare il totale transato.

Sulla sinistra una transazione che utilizza un unico UTXO come input, sulla destra una transazione che utilizza molteplici UTXO come input e trasferisce il totale in un unico output. Fonte: https://commons.wikimedia.org/wiki/File:Bitcoin_Transaction_Inputs_and_Outputs.png

Immaginiamo di avere un totale di 0,01 bitcoin nel nostro portafoglio — o 1’000’000 satoshi, se preferiamo ragionare con questa unità di misura — , pari ad oggi a circa 80 euro. Questi bitcoin sono però il risultato di molti output non spesi, perché per averli abbiamo ricevuto una decina di transazioni di importo diverso.
Nel caso in cui dovessimo pagare un bene/servizio dal costo di 100’000 satoshi (0,001 BTC), il nostro wallet prenderà i nostri “contanti” e li sommerà fino a ottenere una somma uguale o maggiore dell’importo dovuto.
Ipotizziamo che la somma totale sia di 0,0015 BTC e sia il risultato di 4 UTXO sommati tra loro: pagheremo 0,0015 BTC, 0,001 BTC andranno al venditore mentre 0,0005 BTC torneranno nel nostro wallet, e costituiranno un unico output non speso.

Quindi, recap:

  1. avevamo 0,01 BTC (bilancio) composti da una decina di UTXO: 0,0002 BTC+ 0,0007 BTC + 0,0001 BTC + 0,0005 BTC + …
  2. Il wallet somma i primi quattro UTXO e ottiene 0,0015 BTC.
  3. Paga questi 0,0015 BTC a un venditore, ottiene indietro un unico UTXO di 0,0005 BTC (resto), che si somma agli altri output che costituiscono il bilancio totale restante.

Una transazione costituita da molti input ha un peso in byte maggiore di una con pochi o addirittura un unico solo input. Non paghiamo in base alla quantità di bitcoin spostati, piuttosto si può dire che paghiamo in base alla quantità di output non spesi che andremo a utilizzare come input della nostra transazione.

Le commissioni ai minatori si pagano in sat al byte (o sat/vbyte per quelle SegWit).
Ipotizziamo di voler pagare 4 sats/byte perché ci troviamo in una situazione in cui non c’è congestione nella rete Bitcoin e siamo piuttosto sicuri che la nostra transazione verrà confermata entro poche ore, andando a far parte della storia transazionale della catena di transazioni (blockchain).
Un buon wallet permette, tra le altre cose, di impostare manualmente le commissioni, quindi andiamo a selezionare 4 sats/byte e scegliamo l’importo da pagare.

In Edge Wallet possiamo stabilire quali commissioni utilizzare, scegliendo tra Alta, Standard, Bassa o Personalizzata. Con quest’ultima opzione possiamo specificare le fee in satoshi/byte.

Siccome abbiamo molti input, la nostra transazione avrà un peso importante e quei 4 sats/byte potrebbero comportare un costo totale in commissioni anche relativamente elevato.
Se ad esempio la nostra transazione avesse un peso di 400 byte, finiremo con il pagare 1’600 satoshi (4 x 400 byte).
La nostra transazione da 0,0001 BTC avrà dunque una commissione di 1’600 satoshi (0,00001600 BTC).

Ora immaginiamo di essere milionari e di voler transare 1’000’000 di euro in BTC, ossia circa 124,5 bitcoin. Se avessimo questi bitcoin in un unico output non speso, la nostra transazione avrà il minor peso possibile: ipotizziamo 200 byte.
A parità di sat/byte, dunque, questa transazione comporterà un costo in commissioni di soli 800 satoshi (4 x 200 byte), contro i 1’600 satoshi della precedente.

Dunque con 800 satoshi (0,064 euro), abbiamo spostato 1 milione di euro in bitcoin, mentre precedentemente con 1’600 satoshi (0,13 euro) abbiamo spostato solo 80 euro.

Nella prima abbiamo speso lo 0,1625% in commissioni, nella transazione da 1 milione di euro ne abbiamo speso lo 0,0000064%.

Comprendiamo perciò che spostare 1, 100 o 1 milione di bitcoin non fa differenza, a patto di avere una transazione con lo stesso peso in byte.

Come possiamo spendere il meno possibile in commissioni?

Innanzitutto, come detto precedentemente, dobbiamo scegliere un wallet che ci dia la possibilità di impostare una commissione personalizzata; scartiamo dunque tutti quelli che non ci danno questa possibilità.

In questo esempio, scegliendo una commissione di 4 sats/byte su Edge Wallet, spenderei un totale di 1314 satoshi, perché questo specifico portafoglio ha molti UTXO da sommare per questa spesa.

Un altro suggerimento utile è avere un numero ridotto di output non spesi all’interno del wallet, ma non sempre quest’ultimo ci permette di sapere quali e quanti UTXO compongono il nostro bilancio totale.
Possiamo perciò decidere di consolidare i nostri output non spesi in un unico output da spendere con il minor spreco possibile di satoshi per le commissioni di transazione.

Consolidare i fondi presenti sul vostro light wallet, è piuttosto semplice: basterà copiare un indirizzo di ricezione e inviare allo stesso l’importo massimo (max amount), sempre ricordandosi di stabilire prima le fee che desiderate pagare.

Attenzione però!
Se da un lato consolidare gli output permette di avere transazioni più leggere e dunque meno costose in termini di commissioni, dall’altro espone a problemi di privacy.

Immaginiamo di consolidare tutti i nostri output del portafoglio da 0,01 bitcoin e di dover spendere, come in precedenza, 0,001 BTC per l’acquisto di un bene o servizio: il venditore non vedrà solo 0,0015 BTC come nell’esempio sopra esposto, ma potrà conoscere l’intero bilancio del nostro wallet, perché per effettuare il pagamento dovremo inviare tutto il nostro denaro (un unico UTXO) da 0,01 BTC e ricevere il resto.

Se facessimo un parallelismo con i trasferimenti bancari, è come se il negoziante che deve ricevere un bonifico, vedesse l’intero nostro bilancio invece del solo importo richiesto.

Ricordate dunque questo compromesso quando vorrete consolidare i vostri output e, possibilmente, dividete i vostri portafogli: quello che utilizzate per le spese (hot wallet) dovrebbe sempre essere diverso da quello che contiene i vostri risparmi (cold wallet).


Se avete chiaro il funzionamento di Bitcoin saprete che i bitcoin, intesi come unità informatica, non esistono; quando ci si scambia dei bitcoin si aggiorna in realtà un registro pubblico che certifica la proprietà degli stessi (la blockchain), firmando le transazioni con la nostra chiave privata, l’unico dato informatico realmente in nostro possesso. Quindi, non spostiamo bitcoin ma ne aggiorniamo la proprietà.

Per eseguire queste transazioni abbiamo bisogno di un portafoglio, in inglese wallet. Esistono diversi wallet, il più delle volte open source e gratuiti, ma possiamo distinguerne sostanzialmente due tipologie: i full node wallet e i wallet SPV (Simplified Payment Verification).

Continue reading →