Negli ultimi mesi le commissioni (o Fee) di transazioni delle crypto più usate Ethereum e Bitcoin hanno scosso le emozioni delle new entry in questo mondo ed a tratti anche i veterani. In questo articolo andremo a vedere insieme cosa sono le transazioni, cosa sono le commissioni, come vengono calcolati, e cercheremo di comprendere come poterle gestire in autonomia, sia se operiamo sulla Blockchain Bitcoin che su quella Ethereum.

Cosa sono le transazioni?

Le transazioni sono il centro della catena di blocchi, su cui ruota l’intero sistema e le tecnologie applicate ad esso.
Una transazione è un trasferimento di valore o di asset da un indirizzo ad un altro, che viene registrato in modo indelebile nella Blockchain ed è accessibile e scrutabile da chiunque attraverso gli strumenti Explorer di ogni Blockchain. In realtà non è una vera e propria transazione, ma piuttosto un input che corrisponde attualmente, per Bitcoin, alla cifra di 6.25 BTC e che si dimezza ogni 4 anni con l’Halving, fino ad arrivare all’unità indivisibile, a quel punto avremmo raggiunto la massima massima di Bitcoin in circolazione, prefissata intorno ai 21 Milioni.
Una volta effettuata una transazione e firmata con la chiave privata, viene distribuita alla rete ed esaminata dai nodi. le convalida e le inserisce in un blocco per cosi essere successivamente confermate con il processo di mining dello stesso; Più blocchi verranno minati dopo e più conferme riceverà la transazione. Ogni transazione richiede una commissione di transazione (o Fee), per essere eseguita ed elaborata dalla rete, che verrà usata, insieme a tutte le commissioni presenti nel blocco, come ricompensa per il processo di mining. Appunto per questo i Miner, molto spesso favoriscono le transazioni con le commissioni più alte da inserire nel blocco.

Nel sistema Bitcoin molti wallet, oggi, consigliano in modo automatico le Fee di una transazione in base ad un media di mercato, ma esistono anche wallet dove possiamo scegliere tra le varie opzioni consigliate, e in base a queste ci vengono fornite tempistiche stimate diverse per la conferma, ed infine wallet in cui possiamo impostare autonomamente le commissioni.
Attualmente oltre ai dispositivi esterni, sono pochi i wallet che ti danno l’autonomia nell’impostare le commissioni, sia che si parli di Bitcoin che di Ethereum. Alcuni di questi sono: Bitcoin Core, Bitcoin Wallet, Electrum o Trust Wallet.
Oltre a questo negli ultimi anni sono nati sistemi, nel tempo integrati, come il Batching (cioè unire più pagamenti in una singola transazione per ridurre il numero dei dati), il Replace By Fee (RBF) o Tassa di sostituire, cioè un metodo che ci permette di sostituire una transazione, prima di essere confermata, per un’altra con un tasso più elevato (sistema presente in Electrum o Exodus), o il Child Pays For Parent (CPFP) in cui viene creata una transazione con una commissione di mining più alta, in modo che quando questa nuova transazione viene inviata alla rete, forza la conferma di un’altra transazione precedente, ancora non confermata. Questo per incoraggiare i Miner a rendere la conferma di queste transazioni molto più veloce, anche questo implementato nei wallet Electrum, Coinbase e nei dispositivi Trezor.

Per riuscire a comprendere e operare in modo autonomo è importante capire come funzionano e come vengono calcolate le commissioni.

Ogni Blockchain ha il suo sistema per determinare le commissioni di transazione. Ad esempio ci sono differenze tecniche tra le 2 catene più famose, ETH e BTC. Questo articolo non andrà a fondo in merito alle differenze tecniche, ma è importante conoscerle per quanto riguarda le transazioni, per poter svolgere da solo il calcolo delle commissioni.

Sulla Blockchain di Bitcoin le Fee sono misurate sulla grandezza in Byte della transazione e non sulla quantità di crypto trasferite, quindi nel caso di Bitcoin dovremo fare un calcolo moltiplicando i Satoshi xi Byte. Bitcoin funziona con un sistema di Input ed output, dove ogni input è l’output di una transazione precedente, spendibile attraverso una dimostrazione di proprietà, convalidata dalla chiave privata, ed ogni transazione ha un peso di circa 225 Byte. Potremmo definire gli input come ciò che viene inviato, e gli output come ciò che riceviamo o che ci viene ritornato sotto forma di resto, e finché non diventano nuovi input, tecnicamente vengono chiamati UTXO (Unspent Transaction Output).
Quindi più output serviranno per creare l’input richiesto e maggiore sarà la grandezza in byte della transazione, quindi il costo. Infatti sulla Blockchain di Bitcoin potremmo trovare o effettuare transazioni di 1BTC che hanno commissioni minori di transazioni di 0.05 BTC.

Facciamo un esempio pratico:
Dobbiamo acquistare uno regalo ad un amico per il suo compleanno;
Stabiliamo innanzitutto che ogni taglio di banconota dai 10 ai 100 € abbia un peso di 10 grammi che equivalgono ai Byte.
Immaginiamo di avere nel nostro portafoglio 10 banconote che equivalgono a 10 output non spesi (UTXO), dal valore di 10 € cadauno;
Quindi nel portafoglio abbiamo in totale 100 € suddiviso in 10 banconote (UTXO), con un peso complessivo di 100gr (Byte);
Adesso immaginiamo di spendere per il regalo 80 €;
Così, data la disponibilità del nostro portafoglio, prendiamo 8 banconote (UTXO) da 10 € che equivalgono a un peso di 80 gr. (Byte) per formare il nostro input di 80 €, e concludiamo l’acquisto.
Secondo la struttura di Bitcoin la costruzione “complessa” e pesante di questa transazione implicherà un costo maggiore di commissione;
Se invece nel portafoglio avessimo 2 banconote (UTXO) da 50 €, con un peso stabilito di 10gr (Byte) cadauna, quindi per un peso totale di 20gr (Byte), la commissione sarebbe minore in quanto servire meno UTXO per comporre la transazione, di conseguenza meno peso complessivo.
E in quest’ultimo caso, abbiamo un esempio di resto, infatti i 20 € di resto rappresentano un output, e vengono inviati ad un nuovo indirizzo di nostra proprietà, detto “di cambio”, diventando una sua volta un UTXO non speso, ma spendibile in un nuovo “acquisto”.

Come possiamo calcolare le commissioni adesso che abbiamo capito che dipende tutto dalla grandezza della transazione?

Iniziamo decidendo quanti Satoshi siamo disposti a pagare per Byte. Poniamo il caso che la nostra transazione sia di 0.05 Bitcoin e abbia un peso di 225 byte (peso medio di una transazione di Bitcoin con 1 UTXO) e vorremmo pagare 100 Satoshi per Byte, il calcolo da fare è:

  – 225 Byte x 100 Satoshi = 22.500 Satoshi (commissione totale della transazione)

In questo caso, il nostro wallet ha preso solo 1 UTXO, ma, se per raggiungere la cifra di 0.05 BTC, il nostro wallet raggruppasse 2 o più UTXO, dovremo applicare un calcolo del genere:

   – (2 UTXO) 450 byte x 100 Satoshi = 45.000 Satoshi

Cosi facendo, notiamo che, anche inviando la stessa cifra, la transazione aumenterà perchè aggregando gli UTXO la grandezza di script delle transazioni aumenta, aumentando di conseguenza la dimensione in Byte, come visto nell’esempio pratico.
Purtroppo non tutti i wallet consentono di vedere la situazione in UTXO, e anche se esistono metodi per raggrupparli, sono sconsigliati perchè creerebbero un unico indirizzo che, se fosse violato, ci farebbe perdere tutte le finanze.
Potrebbe essere d’aiuto anche in questo caso l’explorer dove possiamo, attraverso il nostro indirizzo, vedere tutti i nostri trasferimenti in quanto è tutto tracciato e tracciabile fino alla prima transazione dello stesso.

Vediamo adesso qualche strumento che può comunque aiutarci e indirizzarci verso la scelta di Satoshi giusta:

1-  https://statoshi.info/d/000000017/fee-estimates?orgId=1

Usando questo strumento avremo chiaro testuale di Satoshi per Byte che attualmente vengono usati mediamente per pagare le transazioni e per avere una conferma nel tempo più breve possibile;

2-  Commissioni Bitcoin per la transazione

In questo strumento, più dettagliato, possiamo trovare le corrispondenze tra Satoshi per Byte e tempi probabili di conferma da parte dei Miner, cioè il numero di blocchi che dovremmo attendere e il probabile tempo di attesa, per vedere la nostra transazione con la prima conferma .
Utilizzando il grafico come esempio, ad oggi, se decidessimo di pagare la nostra transazione tra i 19 ed i 20 Satoshi per Byte, la nostra transazione potrebbe probabilmente essere compresa tra il 3 ° ed il 46 ° blocco, per un tempo d’attesa che va dai 30 ai 480 minuti.
Sempre utilizzando il grafico se invece decidessimo di pagare 111 o + Satoshi per Byte allora avremmo la possibilità di vedere la nostra transazione inserita nel blocco in costruzione e quindi con un attesa cha va dai 0 ai 30 minuti.
Se volessimo usare questo grafico dopo aver fatto una transazione, per capire quanto dovremmo attendere, basterà fare il calcolo inverso. Quindi, poniamo il caso che abbiamo pagato la nostra transazione in BTC 10.000 Satoshi, e questa ha una dimensione di 450 Byte per sapere quanto aspettare calcoleremo:

    – 10.000 (Satoshi pagati) / 450 (Byte Tx) = 22,22 (Satoshi per Byte)

e riprendendo il nostro grafico vediamo che attualmente pagando tra i 22-23 Satoshi per Byte la nostra transazione potrebbe essere inclusa tra il 3 ° ed il 46 ° blocco in un tempo che va dai 30 ai 480 minuti a seconda della congestione della rete;

3-  https://www.blockchain.com/charts/avg-confirmation-time

Per chi fosse interessato, qui può trovare anche il costo medio di transazione per blocco.

Purtroppo non è possibile avere un dato certo sull’importo in Satoshi x Byte di commissione da pagare per essere sicuri che la nostra transazione venga confermata al più presto, né tantomeno capire da soli quale sia la scelta migliore al momento del trasferimento perchè ciò dipende dal mercato e dalla congestione della rete. Ma con questi strumenti ed imparando ad utilizzarli possiamo sicuramente operare con più sicurezza ed in base all’urgenza che abbiamo nel vedere confermata la nostra transazione.

Per quanto riguarda Ethereum le cose cambiano un pò. Infatti su Ethereum le transazioni, sono istruzioni firmate crittograficamente dagli account e non utilizzano il sistema UTXO ma piuttosto un sistema a stati. Ogni stato è in pratica il saldo corrente, ed ogni transazione aggiorna questo stato (saldo) che viene quindi trasmesso alla rete.
Nel sistema Ethereum con la nascita dell’EVM (Ethereum Virtual Machine) e gli Smart Contract, sono stati implementati diversi tipi di transazioni. In Ethereum il valore di valore, che fa sia da cryptovaluta che da “carburante” per la piattaforma, è l’Ether. La sua più piccola unità si chiama Gwei (Gas weight) e corrisponde grosso modo al Satoshi in quanto unità, ma è da tenere a mente che Ethereum lavora su 10 decimali al contrario di Bitcoin che ne ha 9.Quindi diciamo che:

       – 1 Gwei = 0.000000001 Ether (notare 1 decimale in più)

L’unità di misura utilizzata per la potenza di calcolo della richiesta per elaborare una transazione sull’Ethereum Virtual Machine è detta Gas. Nella Blockchain Ethereum usiamo i Gwei per pagare il Gas. Quindi possiamo dichiarare che più gas paghiamo e più potenza di calcolo daremo alla nostra transazione per il processo di Mining, cioè più Gas daremo alla nostra transazione e più velocemente questa verrà elaborata. Di base, in Ethereum, ogni transazione ha un costo di 21.000 unità di Gas, ea seconda della complessità dell’operazione che faremo sull’EVM il Gas aumenterà.
Detto questo possiamo calcolare le commissioni di Ethereum eseguendo questo calcolo:

       – 21.000 (costo del gas) x X Gwei

Quindi se decidessimo di pagare 50 Gwei per la nostra transazione il calcolo da fare sarà il seguente:

       – 21.000 (Gas) x 50 (Gwei) = 1.050.000 (costo totale del Gas)

Anche nel sistema Ethereum purtroppo non è possibile sapere precisamente il costo di Gas, in quanto questo cambia a seconda del mercato, cioè di quanto gli altri nodi della rete Ethereum sono disposti a pagare per le transazioni, però come per Bitcoin abbiamo a disposizione degli strumenti che ci illustrano il costo standard di Gas attuale consigliato da pagare in Gwei:

1-  https://etherscan.io/gastracker

Questo strumento è molto completo, e ci consiglia in 3 diverse varianti di velocità: bassa, media e alta, importo da pagare, specificando anche il tempo circa in cui dovrebbe essere confermata la transazione ed il valore corrispondente in Euro. Insieme a questi dati possiamo trovare anche i vari costi in € o $ delle varie transazioni possibili per operare anche con altre funzioni del sistema Ethereum. In questa pagina troviamo anche un grafico che rappresenta il Tempo di Conferma medio per Prezzo del gas degli ultimi 1000 blocchi… Molto semplice, no ?.

Ancora più semplice e chiaro troverete quest’altro strumento:

2-  https://ethgasstation.info/calculatorTxV.php

Come il primo divide il costo del gas in 3 possibili opzioni:
Standard veloce e Trader, con velocità che variano dai <5 minuti a “Al più Presto”. In questo sito troviamo una disposizione anche un semplice calcolatore di gas, di cui possiamo usufruire per simulare una transazione e calcolare il gas che servirà per essa, in base ai tempi che siamo disposti ad attendere.


Come abbiamo visto negli anni con il bisogno di aumentare la scalabilità sono nati sistemi che hanno anche il permesso di abbassare il costo delle fee, queste ultime non sempre alla portata di tutti, ed altri, che implementati nell’ecosistema, hanno già portato miglioramenti. Ad esempio il protocollo Segwit (Segregate Witness) che riduce le dimensioni necessarie per archiviare le transazioni in un blocco, e separare le firme delle transazioni dalle transazioni Bitcoin, quindi inserire più transazioni in un unico blocco. In questo modo sono ottenute transazioni Bitcoin più fluide e veloci, quindi commissioni più basse e che sicuramente diminuiranno ancora con la propagazione della rete. Purtroppo non molti dispositivi ancora oggi utilizzano l’utilizzo di questa rete. Dopo Segwit nasce anche la Lightning Network,
Anche Ethereum nonostante la scalabilità delle transazioni già di molto maggiore rispetto alla rete Bitcoin, ma con Fee da capogiro, ha già esposto come la Sidechain, oi Token dedicati al pagamento del Gas come GasToken, ma probabilmente sarà con l’implementazione del protocollo di PoS, che sostituirà il nativo PoW, che Ethereum mostrerà dei veri miglioramenti in futuro, in termini di ulteriore scalabilità delle transazioni e di commissioni più accessibili a tutti.
Ad ogni modo come abbiamo visto le transazioni sono davvero il centro di una Blockchain. Così il titolo provocatorio, “comprenderle e prezzarle”, che ho scelto, intende trasmettere che ogni volta che facciamo una transazione, solo se riusciremo a darle il giusto “valore”, verrà confermata “Al più Presto”!

                                                                                                                                                                            Andrea Alessi

Categories:

Tags:

No responses yet

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *