Super Guida Blockchain

Scarica in formato pdf o txt
Scarica in formato pdf o txt
Sei sulla pagina 1di 211

K

CC
B L O H AIN

I D A
G U
P E R
SU
SUPER GUIDA BLOCKCHAIN
Introduzione dei co-fondatori di start2impact

Siamo emozionati, non lo nascondiamo.

Quella che avete fra le mani è la prima Super Guida originale di start2impact!

Rappresenta il risultato del nostro continuo e costante sforzo per darvi il mindset e le
competenze per affrontare i prossimi decenni 10 passi avanti rispetto alla media.

Come sapete solitamente tendiamo a selezionare le migliori risorse gratuite online per le
Super Guide, ma per Blockchain quelle attuali non sono ancora dello stesso livello di quelle
disponibili per tutti gli altri mondi del digitale e dell’innovazione.

Così abbiamo deciso di creare noi i contenuti.

In questa decisione la cosa più bella è stata collaborare con uno dei membri di start2impact,
Giacomo Enrico Petrut, che ha frequentato il Master in Blockchain Technology &
Management del nostro Super Coach Gian Luca Comandini, Membro del Gruppo di esperti
in Blockchain del Ministero dello sviluppo economico.

Giacomo ha voluto condividere tutto quello che ha imparato attraverso il Master e i suoi
studi personali, consapevole che la condivisione è la strada per diventare un punto di
riferimento del settore.

Perché la vera forza di start2impact è la community, persone unite da valori e passioni che
puntano a diventare un punto di riferimento per tutti coloro che vogliono cogliere le
opportunità del digitale e dell’innovazione per migliorare il nostro Pianeta.

Dentro questa Super Guida c’è molto di più di un contenuto formativo, c’è la fiducia in un
mondo migliore, un mondo in cui i leader di domani sarete voi.

Gherardo e Virginia
co-fondatori di start2impact

1
Presentazione dell’Autore

Ciao a tutti ragazzi, mi chiamo Giacomo Enrico Petrut e sono il ragazzo 20enne autore di
questa Super Guida.

Innanzitutto complimenti per aver preso coraggio nel cimentarvi in un mondo che
sicuramente al giorno d’oggi è tutto da scoprire, ma che in un futuro a mio parere impatterà
sulle nostre vite a 360 gradi.

Prima di cominciare con la guida voglio dirvi giusto un paio di cose: il mio percorso inizia un
anno fa, quando grazie ad un evento organizzato da un club all’università viene invitato Gian
Luca Comandini per parlare di Blockchain.

Inutile dire che riesce subito a catturare la mia attenzione, facendomi scoprire una parola che
non avevo mai sentito, Blockchain, termine che all’epoca come per alcuni di voi oggi, non mi
diceva nulla.

A partire da lì inizia per me un percorso importante, caratterizzato da molte notti passate a


studiare tutto quello che il web mi offriva riguardo questa tecnologia.

Non contento delle informazioni acquisite in pochi mesi e avendo sempre più sete di sapere,
ho preso parte al primo Master in Italia organizzato a Roma da Gian Luca Comandini, dove
ho potuto approfondire ulteriormente queste tematiche.

La cosa che mi ha spinto ad avvicinarmi alla Blockchain e che mi spinge tuttora cercando di
divulgarla il più possibile è il fatto di far comprendere a tutti quanto potenziale si celi dietro
questa tecnologia.

Una tecnologia che riporta noi persone al centro grazie alle mille applicazioni che si possono
creare, snellendo la burocrazia e i processi che oggi ci complicano la vita facendoci perdere
tempo in cose inutili.

Come tutte le nuove tecnologie, la blockchain più viene compresa, studiata e diffusa, più il
valore che essa porterà sarà grande.

Si stanno percorrendo pian piano tutti gli step che hanno caratterizzato Internet dagli albori
arrivando fino ad oggi, dove non riusciamo a passare più di 24 ore senza essere collegati.

Con la Super Guida che ho scritto, ho cercato di semplificare e rendere più chiari possibili
concetti molto tecnici.

Se alcune volte non ci sono riuscito chiedo perdono e sappiate che potrete inviare una mail a
[email protected] per ulteriori chiarimenti. Sarà un piacere per me rispondervi.

Detto questo, buona Blockchain a tutti!

2
Indice

Preambolo 6

Storia monetaria 9

Bitcoin 16

Blockchain 43

Il Mining 60

Transazioni Bitcoin 77

Bitcoin Address 89

Notarizzazione di file su blockchain 96

Le Altcoin 115

Exchange 139

Smart Contract 142

Come si risolvono i problemi di Bitcoin? 144

I Modelli di Fundraising nati grazie alla Blockchain 159

Il ruolo dei Media 182

Extra 185

3
Glossario
Bitcoin ≠ bitcoin = Bitcoin --> protocollo o rete mentre bitcoin --> moneta o valuta

Smart Contract = trasposizione in codice di un contratto ‘intelligente’ sviluppato su


blockchain (che deve essere programmato attentamente dallo sviluppatore) basato su
determinate condizioni e clausole che vengono eseguite in modo completamente autonomo
una volta che viene avviato.

PoW = Proof-Of-Work, è un meccanismo di consenso in cui determinati hardware (CPU,


GPU o meglio ancora ASIC), che come risultato a operazioni di calcolo matematici molto
complesse che richiedono molte risorse sia in termini di energia elettrica che potenza
computazionale, ottengono una prova di lavoro che gli concede il diritto di aggiornare la
blockchain creando un nuovo blocco di transazioni come accade con Bitcoin.

DPoS = Delegated Proof-of-Stake, algoritmo di consenso secondo il quale alcuni nodi più
piccoli delegano dando il loro potere decisionale verso un nodo validatore in base
all’ammontare di crypto messo a stake

PoS = Proof-of-Stake, è un meccanismo di consenso con cui si punta a raggiungere il


consenso della rete con il minimo sforzo computazionale. Con questo meccanismo il diritto di
creare un blocco avviene in modo deterministico in base a quanta ricchezza espressa in una
determinata criptomoneta si possiede.

Scam = Truffa

Whitepaper = Nel mondo Blockchain viene inteso come documento in cui si descrive il
progetto

Moneta fiat = Moneta a corso legale come sterlina, dollaro e euro

IoT = Internet delle cose/Internet Of Things

Wallet = portafoglio digitale dove vengono contenute le criptomonete

Malware = un qualsiasi programma informatico usato per disturbare le operazioni svolte da


un utente di un computer

Miner = società o persona che tramite l’utilizzo di dispositivi ASIC programmati per svolgere
solo un compito fatto bene (in questo caso parlando di Bitcoin il compito è calcolare più hash
al secondo possibili) permettono di fare la PoW mantenendo vivo Bitcoin

Blockchain Permissionless = Blockchain pubblica

4
Blockchain Permissioned = È una blockchain in cui bisogna avere l’autorizzazione da un
ente centrale per accedervi. Una permissioned non è necessariamente una blockchain
privata. Vi è un articolo a fine guida che vi potrebbe chiarire meglio le idee.

DLT (Distributed Ledger Technology) = è un registro distribuito detenuto dagli utenti che
partecipano alla rete. La differenza con la blockchain è quella di non essere decentralizzata e
di avere i dati organizzati in blocchi. Ci sono alcuni consorzi come R3 (Corda), Hyperledger
Fabric ( prodotto di IBM) che invece si sono delle DLT ma non sono considerate blockchain
essendo centralizzate. Tutte le blockchain sono DLT, ma non tutte le DLT sono blockchain.

Mining pool = cooperativa di piccoli miner che si alleano nel tentativo di riuscire a creare un
blocco

5
PREAMBOLO
Iniziamo questo percorso con una semplice domanda:

Perché abbiamo avuto e abbiamo la necessità tuttora di affidarci al denaro? Perché non
possiamo usare il baratto per regolare i nostri scambi commerciali?

Molto tempo fa, come prima forma di scambio tra due o più soggetti si utilizzava il baratto.

Questo però presentava un grosso problema, perché in primis tutti i beni dovevano avere il
proprio corrispettivo negli altri ed in secondo luogo era molto meno scalabile del denaro, in
quanto tutto era prezzato in base a un solo bene.

Immaginando ora un mercato composto da 5


beni, se vogliamo usare il baratto ogni bene
dovrebbe essere prezzato in tutti gli altri beni in
modo da sapere quanto equivale qualsiasi
quantità di un bene di un certo tipo in un altro
(es. quanto corrisponde una certa quantità di
carne in pesce e viceversa).

Quello che otteniamo è un mercato che scala in maniera quadratica, perché il numero di
prezzi di cui devo tener traccia è circa il quadrato del numero dei beni (diciamo ‘’circa’’
perché il prezzo della carne in carne è sempre uno quindi non ne devo tener traccia).

Grazie alla formula n^2-n, in cui n è il numero di beni, si riesce a capire


quanti beni dobbiamo monitorare.

Applicando questa formula al nostro mercato che abbiamo preso come


esempio (5^5-5) troviamo 20 beni di cui tener traccia.

Iniziamo ad usare uno di questi beni come commodity intermediary


che sarà il bene su cui ci baseremo per prezzare tutti gli altri.

Decidiamo che l’acciaio sarà il bene su cui ci baseremo perché è


facilmente reperibile.

Tutto il meccanismo, ora diventa più semplice perché abbiamo un bene che assume la
funzione monetaria, in modo che tutti gli altri siano prezzati in base ad esso.

Facendo così, non necessitiamo più di avere il prezzo di una certa quantità di carne per un
tot. quantitativo di pesce, perché tutto viene prezzato con un bene unico.

6
Questo meccanismo fa scalare tutto il sistema economico in maniera lineare, perché
abbiamo 5 beni di cui l’acciaio che non viene considerato perché è quello su cui ci basiamo.

Di conseguenza dovremo tenere traccia solo di 4 beni.

Ora, per un mercato moderno con milioni di beni e servizi chiaramente il sistema del baratto
è impossibile da mettere in pratica.

L’unica soluzione possibile all’epoca era quella di dare caratteristiche e funzioni commerciali
ad un bene intermedio (la moneta) che ha reso possibile lo sviluppo di mercati complessi in
cui si riusciva a tenere traccia di tutti i prezzi e della liquidità dei mercati.

Molto spesso succedeva che un pescatore ad esempio, riusciva a trovare molto prima
qualcuno che era disposto a scambiare la carne con il suo pesce piuttosto di qualcuno era
disposto a offrirgli dell’acciaio.

Possiamo ipotizzare che gli allevatori di bestiame fossero spinti a fare lo scambio dal fatto di
non voler mangiare solo carne, ma nell’altro caso verrebbe a mancare l’incentivo per i
pescatori che poi avrebbero dovuto fare uno scambio tra il pesce e l’acciaio.

Essendo difficile trovare una controparte che sia disposta a fare lo scambio pesce/acciaio, il
pescatore dovrebbe prima scambiare il pesce in un altro bene che potrebbe interessare al
venditore d’acciaio per riuscire a scambiare e soddisfare anche il suo bisogno.

Ci accorgiamo quindi che tutto il processo diventa molto macchinoso e sorge il problema di
poca liquidità tra coppie di beni, un problema che non si presenta se usiamo una moneta
unica identificativa che rende gli scambi commerciali molto più semplici.

Una moneta quindi per essere adottata deve avere le seguenti caratteristiche:

1. trasportare ricchezza nello spazio: con essa devo riuscire a portarmi in giro tutta la
mia ricchezza, cosa parecchio difficile in passato se ero un allevatore e tutta la mia
ricchezza era espressa in bestiame.

Di sicuro non sarei riuscito a portarmi ogni volta in giro tutto il bestiame per
concludere un accordo commerciale a causa di vari fattori come lo smarrimento o il
furto.

Nel caso si adottasse una moneta invece riuscirei a svolgere tutte queste operazioni
in maniera molto più facile;

2. trasportare ricchezza nel tempo: devo riuscire a conservare tutta la ricchezza per
lungo tempo, possibilmente per anni, mentre il mio bestiame col passare del tempo
ovviamente invecchia e perde di valore.

Se vendessi il tutto per delle monete d’oro dopo 2 anni avrei quasi l’assoluta certezza
che quelle monete d’oro avranno lo stesso valore e riuscirei a trasmettere il mio
patrimonio tranquillamente anche alle generazioni future;

7
3. trasportare ricchezza tra i mercati: devo riuscire a trasportare il valore in diversi
mercati, andando dall’economia locale a quella di un altra città più distante, riuscendo
ad utilizzare e spostare la mia ricchezza anche in un altro stato o città.

4. alto rapporto valore/peso: portando poco peso devo riuscire a spostare tanto valore
(1 grammo d’oro = 30 euro circa).

Per esempio l’oro, per quanto possa essere pesante, riesce a concentrare tantissimo
valore in un oggetto piccolissimo. Per questo motivo è molto efficace se si vuole
trasportare tanto valore in poca massa;

5. durabilità ( non si deteriora nel tempo): questa è una caratteristica fondamentale che
altre forme di denaro come il bestiame per esempio non possono avere, dato che col
passare degli anni, l’animale invecchia e muore;

6. scarsità ( non ci deve essere una grande disponibilità): come le prime due
caratteristiche, il concetto di scarsità non è da meno.

Per assurdo, se utilizzassimo i granelli di sabbia come moneta di scambio,


sicuramente ci andrebbe bene per il fatto che non sono deteriorabili nel tempo, ma vi
è una quantità talmente numerosa e facilmente reperibile in natura che questa
moneta giustamente scenderebbe di valore in pochissimo tempo.

Basterebbe semplicemente che un individuo andasse in spiaggia e riempisse un


secchiello per diventare ricco.

8
STORIA MONETARIA:
dalla preistoria ad oggi

Prima di iniziare a spiegare cos’è Bitcoin e capire cosa c’entra la Blockchain, è doveroso fare
un’analisi di tutta la storia monetaria dagli inizi della civiltà umana per contestualizzare e
capire bene perché tutto questo ha favorito la nascita di questo ecosistema.

Tutto ha inizio circa 20-25 mila anni fa, quando grazie ai primi reperti archeologici siamo
riusciti a capire che qualcosa che abbia un utilizzo simile al denaro esisteva già da molto
tempo, ben prima che si inventasse la scrittura o qualunque altro sistema per tener traccia
della ricchezza.

Le prime forme di denaro erano beni scarsi in natura


come ossa di animali, conchiglie rare oppure metalli
preziosi.

In particolare, i metalli hanno avuto un grande successo


perché erano il bene più scarso in natura.

Se fossero state prese come unità di misura le ossa di


animali, non avrebbe avuto molto senso essendo molto
semplici da reperire. Sarebbe bastato allevare quanti più
animali possibile per ottenerne una discreta quantità.

Dal metallo, in un secondo momento si è passati all’oro


perché riusciva a conservare meglio il valore durante il corso degli anni.

Ovviamente la forma grezza dell’oro che si usava all’inizio non portava i vantaggi di oggi.

Infatti, basare la propria economia sull’oro era molto efficiente ma si presentarono delle
complicazioni.

Quando si accettava un pagamento in oro, bisognava verificare due cose:

1. Il peso/quantità del bene;

2. Il livello di purezza. Anche se esistevano vari sistemi per verificare questa


caratteristica, il procedimento era molto macchinoso e dispendioso in termini di
tempo.

Infatti ogni volta i commercianti per riuscire a calcolare la massa ( moltiplicando


densità per volume), dovevano dotarsi di bilancini oppure bisognava riscaldare l’oro
per controllare una volta raggiunto un certo valore di brillore il valore corrispettivo di
purezza desiderato.
9
Capite bene che sono tutti metodi poco pratici qualora si doveva verificare uno
scambio di valore tra due soggetti.

Una prima innovazione che è riuscita a


facilitare il commercio, è stata quella di
coniare delle monete di metallo.

L’incaricato di creare moneta come


accade oggi era un ente o un’istituzione
autorevole di cui tutti si fidavano.

Generalmente all’epoca era il re o


l’imperatore di turno.

Semplicemente prendevano la moneta e vi si stampava sopra un simbolo identificativo e con


questo si certificava per tutta la popolazione quanto fosse la quantità di oro e il livello di
purezza che aveva ciascuna moneta.

Quindi, io cittadino, se vedevo una moneta con sopra il simbolo dell’imperatore, sapevo che lì
sopra c’erano n grammi d’oro e che corrispondevano a un determinato grado di purezza.

Chi riconosceva il simbolo dell’imperatore non doveva fare altro che fidarsi, perché tutto il
sistema era molto difficile da manomettere da potenziali truffatori.

Le transazioni nella vita commerciale di tutti i giorni così erano diventate estremamente più
rapide e semplici rispetto a dover ogni volta controllare l’oro per non rischiare di essere
derubato dalla controparte da un momento all’altro.

Questo era sicuramente un sistema più efficiente di quello precedente che però diede vita ad
un primo problema relativo alla fiducia che ci portiamo fino ai giorni nostri.

Bisognava riporre la fiducia in questo re o imperatore che aveva il potere di battere moneta
ad un costo fisso, decidendo lui stesso la quanta quantità di metallo prezioso o oro che
doveva esserci in ogni moneta.

Nonostante ciò, anche l’Impero Romano che era tra gli emettitori di moneta ritenuti tra i più
affidabili, poteva abusare della fiducia che la gente riponeva in loro.

Vi sono casi infatti che testimoniano come l’Impero quando si trovava di fronte a difficoltà
economiche, la prima cosa che si faceva era quella di abbassare la percentuale d’oro o
d’argento presente nelle monete senza dire nulla nessuno.

10
In questo modo si trovarono facilmente i fondi che andavano finanziare le attività
dell’impero, continuando però ad emettere moneta sempre allo stesso valore nominale,
senza che sia presente in esse l’oro o l’argento dichiarato.

Durante gli ultimi secoli dell’impero romano inoltre la situazione degenerò notevolmente.

Alla nascita della moneta, il 95% di essa era in argento, mentre comparandola con una del III
secolo dopo Cristo (circa gli ultimi 10 anni dell’Imperatore Emiliano), la stessa moneta
presentava solo il 20% di argento.

Nel giro di 300 anni gli imperatori piano piano avevano tolto sempre più argento dalle
monete fino ad arrivare ad una quantità quasi nulla.

Questo in archi temporali relativamente ridotti come 20-30 anni questi poteva sembrare un
sistema molto stabile a bassa inflazione, ma quando si andava ad analizzare periodi più ampi
si è rivelato un sistema inadeguato per il mantenimento del patrimonio delle persone, proprio
come accade oggi con la moneta fiat.

Ed è proprio questo il grande problema che nasce quando il potere di emettere moneta è in
mano ad un ente centrale collegato al governo di un paese o più.

Questo è solo uno dei tanti esempi di insuccesso nel corso di 300 anni.

Sicuramente la soluzione di un ente centrale che abbia il potere di emettere una moneta
unica risolse il problema di dover ogni volta verificare il prezzo di metalli preziosi, oro e
quant’altro.

Ciononostante però non risolse il problema di dover portare dietro grosse quantità di monete
con sé.

Molto spesso infatti, i grossi mercanti che attraversavano tutta l’Italia con ingenti quantità di
monete, a parte il costo di trasporto dovevano pensare anche ad un aspetto che riguardava
la sicurezza.

Era un problema non da poco riuscire a trasportare sacchi voluminosi e pesanti pieni di
monete senza dare nell’occhio vivendo col timore di essere derubato durante le soste o
quello di poterle perdere durante il tragitto.

11
L’EVOLUZIONE DELLA MONETA:
le note di credito
Le note di credito inventate in Cina intorno all’XI-XII secolo d.C. e
arrivate in quella che noi oggi chiamiamo Europa furono l’evoluzione
che permise di risolvere questo problema.

Sono nate principalmente per risolvere la carenza di metallo che


serviva per creare monete in una regione che stava crescendo molto
economicamente.

I cinesi iniziarono ad utilizzare questo nuovo sistema che consisteva


nell’emettere delle cosiddette note di credito (semplicemente delle
tavolette) emesse però da un governo che certificavano una certa
quantità di denaro che si poteva ritirare presentandosi in uno dei depositi dello stato.
Insomma, una versione primordiale di una ‘’banca’’.

Tutto questo si rivelò molto più comodo perché un mercante invece di andare in giro con un
sacco di monete d’oro, d’argento o metalli preziosi, poteva spostarsi con la tavoletta che gli
dava il diritto di ritirare la quantità di argento scritta nella nota di credito in qualsiasi
momento e in qualsiasi deposito.

Quello che succedeva però, talmente erano spessi gli scambi commerciali era che un
mercante non andava nemmeno a riscuotere la quantità d’argento a cui aveva diritto, ma
semplicemente passava la nota di credito ad un altro soggetto.

Questo meccanismo si diffuse facilmente perché era molto più comodo da trasportare e
tenere al sicuro siccome non si necessitava nemmeno di una cassaforte.

Sicuramente era un sistema molto più pratico, ma che presentava lo stesso problema di trust
in quanto bisognava fidarsi che nel deposito in cui si andava a ritirare le monete fosse
presente effettivamente la quantità di metalli preziosi dichiarati.

Facendo un esempio, se su una nota di credito mi dava il diritto di ritirare 100 monete
d’argento e erano state emesse 1000 di queste note di credito. Nel deposito era facile
trovarsi invece di 100.000 monete d’argento solo 50.000 con il rischio di quando qualcuno
voleva riscattarle di non poterlo effettivamente fare per mancanza di monete nel deposito.

Questa poi è diventata la prassi dei sistemi di alcune banche dei giorni nostri.

Generalmente più fiducia si ripone in un certo sistema, ente o istituzione più questo è
efficiente ma tende ad essere anche molto più rischioso.

12
Nel caso precedente si aveva il rischio che la nota di credito non fosse in grado in realtà di
riscattare il valore del metallo a cui corrispondeva perché l’ente acquistando fiducia, poteva
benissimo abusarne mettendo più note di credito in circolazione di quanto ne riuscisse
effettivamente a contenere il deposito.

Ora arriviamo alla fase finale dell’evoluzione della moneta, ovvero le monete fiat.

Le monete fiat sono tutte quelle che hanno corso legale nei vari paesi e che usiamo
comunemente tutti i giorni, come il dollaro, euro, sterlina e cosí via.

Possiamo dire oggi le banconote che custodiamo gelosamente hanno in un certo senso la
stessa caratteristica delle note di credito ma con una piccola differenza.

Bisogna sapere che a differenza delle prime monete d’oro dell’Impero Romano, le monete
fiat non hanno nessuna garanzia (se non la fiducia riposta nella banca di turno che ci
garantisce il valore) che giustifica il valore ci sia effettivamente dietro quelle banconote totali
emesse.

In particolar modo, il presidente Richard Nixon nel 1971 mise fine agli accordi di Bretton
Woods, dividendo di fatto l’oro dal dollaro, che aveva fatto da sottostante garantendo così il
valore controllandone l’inflazione.

Quest’ultimo punto infatti è estremamente importante, è logico che la FED (Federal Reserve,
banca centrale americana) prima dell’annullamento di questi accordi non poteva emettere
quando voleva grandi quantitativi di moneta perché avrebbe dovuto detenere dell’oro come
garanzia del valore per ogni singolo dollaro emesso, con la fine di questi si è di fatto dato il
via ad un fenomeno inflattivo che negli ultimi anni si è sempre di più incrementato.

Nota bene però, che l’inflazione è un grande problema per tutte le monete fiat che dietro non
hanno nessun bene sottostante, è semplicemente carta straccia che ha del valore solamente
grazie a tutte le persone che ripongono la propria fiducia nell’ente che la stampa (e bisogna
dire anche con costi tendenti allo 0).

Cosa da non sottovalutare è che l’istituzione di cui ci fidiamo è una banca centrale
appoggiata da uno o più governi che raccolgono tasse, gestendo l’economia di interi paesi
quindi hanno una forza economica non indifferente che riesce a dar valore al denaro che tutti
noi utilizziamo.

Finché ci fidiamo del fatto che la banca centrale non abusi del suo
potere va tutto bene, ma quando la banca inizia a farne un uso
improprio stampando un sacco di moneta monetaria per cercare di
risollevare crisi economiche di alcuni paesi, pagare i debiti di un
governo o finanziare una guerra, si sta di fatto svalutando la moneta.

Il che è un grosso problema per chi ripone il proprio patrimonio in


quella moneta.

13
L’ipotesi che oggi una banca centrale inizi a stampare grosse quantità di moneta, facendo
diminuire il patrimonio delle persone non è così assurda come può sembrare, visto che ci
sono vari casi nella storia delle monete che hanno visto il loro valore crollare.

Un esempio è la moneta dello Zimbabwe, che lo stato ha iniziato a emettere senza porsi
limiti arrivando addirittura a stampare banconote per un valore di 100 triliardi di dollari. Un
altro ancora è il caso del Venezuela che proprio in questi anni si trova in una situazione di
iperinflazione in cui alcune famiglie sono riuscite a risollevarsi proprio grazie a Bitcoin,
iniziando a ‘produrlo’ grazie a dei macchinari.

Celebre è il caso del franco tedesco dopo la Prima guerra mondiale in cui c’erano i bambini
che giocavano con le banconote per strada come se fossero banconote del Monopoli.

E se dubitate ancora, un altro caso è stato nel


dopoguerra quando la moneta ungherese ottenne il
record per più alta inflazione.

In generale le monete fiat - per quanto ce ne siano


alcune che funzionano abbastanza bene come il
dollaro o l’euro - hanno un’età media di circa 26 anni
prima che collassino per fenomeni di iperinflazione o
per altre questioni politiche.

Quindi se crolla un governo, tendenzialmente anche


la moneta fiat associata a quel governo crolla e non
ha più valore.

Soprattutto nei paesi in cui non c’è la possibilità di


accedere a monete fiat più affidabili come l’euro e il
dollaro.

La base monetaria di un Paese è strettamente correlata alla sua crescita economica.

Se una nazione europea cresce economicamente, la BCE (Banca Centrale Europea) può
incrementare la massa monetaria in modo che ci sia stabilità del valore della moneta e non ci
sia carenza di massa monetaria, che farebbe di fatto aumentare il valore della moneta in
circolazione, attuando così delle operazioni di inflazione che possono risollevare economie.

Anche a livello macroeconomico, il fatto che la banca abbia la capacità di creare moneta dal
nulla ha dei vantaggi, vantaggi che però hanno il loro lato negativo dal momento in cui si
abusa di questo potere portando il risparmiatore e l’utilizzatore della moneta a diminuire il
suo patrimonio con il passare del tempo.

14
Grazie inoltre allo sviluppo della tecnologia, la maggior parte della base monetaria oggi è
ormai digitale.

Questo progresso ha permesso l’emissione di nuova moneta completamente dal nulla visto
che con la digitalizzazione si sono eliminati di fatto tutti i costi relativi alla stampa fisica di
banconote.

Un altro punto è il fatto che la moneta fiat digitale è interamente gestita tramite intermediari.
Se si vuole mandare un pagamento digitale a una terza parte, che si tratti di un bonifico
bancario tramite sistemi più innovativi come Satispay, PayPal o quelli delle varie startup del
momento, o se mi affido ad una banca tradizionale, si tratta comunque di un sistema di
intermediari.

Questo sì ci garantisce una maggiore efficienza, perché gli intermediari riescono a fare
un’economia di scala, ma si sta dando il potere a tutti questi intermediari di decidere
potenzialmente quali transazioni sono consentite oppure no.

Il problema della censura delle transazioni non è da sottovalutare perché si può facilmente
usare la scusa della prevenzione dell’illegalità per farne un uso illegittimo, censurando varie
transazioni.

In passato infatti sono successi casi di censura che riguardavano solamente questioni
reputazionali dell’intermediario, in cui si preferiva non processare transazioni di un certo tipo
di clienti nonostante non stessero facendo nessun tipo di attività illegale.

Di fatto viviamo in un sistema monetario attuale estremamente efficiente in cui sì, si riescono
a trasferire grosse quantità di valore dall’altra parte del mondo in tempi relativamente brevi e
a costi relativamente ridotti, ma siamo arrivati ormai all’apice storico di fiducia che gli
utilizzatori della moneta ripongono verso le istituzioni.

Non solo ci stiamo fidando di qualcun altro perché non venga diluita la base monetaria, ma
gli diamo il permesso di usare i nostri soldi nel modo più opportuno per loro e nella peggiore
delle ipotesi potrebbe verificarsi che i nostri risparmi vengano mossi o confiscati come
successo nel 1992, quando il governo italiano si era preso la libertà di confiscare il 2% di
tutti i conti correnti.

O più recentemente nel 2013 come successo a Cipro quando il governo decise di effettuare
un prelievo forzoso dai conti dei loro cittadini.

Ci stiamo fidando in maniera molto pesante di istituzioni considerate fidate che nella
maggior parte dei casi non abusano del proprio potere ma quando lo fanno, fanno danni
molto consistenti.

15
BITCOIN
Analizziamo ora come Bitcoin e la sua community stanno cercando di risolvere i problemi
che abbiamo esposto fino ad ora.

Innanzitutto, Bitcoin vuole evitare che nel nuovo sistema finanziario si ripresentino le stesse
problematiche che hanno caratterizzato il vecchio sistema finanziario.

Si punta quindi alla decentralizzazione, minimizzando la necessità di fiducia verso terze


parti.

Bisogna sapere che Bitcoin non è nato dal


nulla, il primo documento fu il whitepaper
pubblicato sotto lo pseudonimo di Satoshi
Nakamoto (tutt’ora non ci sono fonti certe
su chi sia realmente) nell’Ottobre 2008,
mentre il primo blocco della blockchain di
Bitcoin è datato il 3 Gennaio 2009 con
inciso il titolo del The Times di quel giorno:
‘’Il cancelliere sull’orlo del secondo
salvataggio delle banche’’. Chiaramente ha
voluto lasciarci un messaggio ben chiaro.

Il tentativo di creare qualcosa come Bitcoin


però è iniziato da circa una ventina di anni, con vari esperimenti che peccavano su vari punti
di vista.

Infatti le parti come quella dell’identità, la Proof-Of-Work e il registro distribuito sono cose
che erano state risolte già negli anni ‘90, ciò che mancava era trovare il modo di dare un
ordine cronologico alle transazioni.

L’idea era quella di creare una forma di moneta deflazionaria che fosse migliore di quella che
utilizziamo tutti noi oggi soggetta a fenomeni di inflazione da parte delle banche.

Questo ecosistema come detto prima non è nato completamente da zero, il merito di Satoshi
Nakamoto è stato quello di trovare il modo di aggiungere il pezzettino mancante che ha
collegato il tutto creando un sistema completamente permissionless, trustless e censorship
resistant.

Andiamo a vedere un po’ come Bitcoin ha cercato di risolvere, marginare e mitigare i


problemi della moneta fiat.

Abbiamo visto che tutti i problemi nascono nel momento in cui andiamo a riporre fiducia in
un ente/istituzione fiduciario.

16
Analizzando la storia, è facile quindi giungere alla conclusione che quando si ripone molta
fiducia in un solo soggetto, questo ne abusa.

L’obiettivo di Bitcoin è quello di minimizzare al massimo la necessità di fiducia verso terze


parti in modo da evitare tutta questa serie di problemi che derivano dal riporre fiducia in
altre istituzioni.

L’obiettivo dei pionieri di bitcoin era quello di creare nel mondo digitale un’esperienza di
pagamento simile al contante, ma non solo al contante inteso come banconote, bensì anche
alle monete d’oro del passato, in generale tutto ciò che ha forma di moneta fisica e che non è
controllata da enti centrali.

Quali sono i sotto-obiettivi di questo sistema?

- transazioni peer-to-peer: direttamente da chi la manda a chi la riceve, zero


intermediazione;
- Censorship resistance, resistenza ai tentativi di censura delle transazioni: abbiamo
visto che i sistemi di moneta digitale moderni, ma anche quelli ‘’tradizionali’’ hanno
forti problemi di censura perché tutto è gestito tramite intermediari.

La possibilità di censurare viene usata non solo per casi di illegalità ma anche per
questioni di business e questo può essere un grosso problema per gli utilizzatori.

Un caso recente in cui c’è stata l’impossibilità di un’azienda di ricevere transazioni


nonostante l’operazione fosse lecita è quello degli Stati Uniti.

Le aziende che lavorano nel settore della pornografia per questioni reputazionali
dell'operatore sono state escluse da servizi come PayPal o di varie startup più
“innovative” che non vogliono avere a che fare con questo tipologia di aziende per
non far cadere in cattiva luce l’immagine del brand.

Capiamo bene, che il problema della censura non si verifica solo in caso di
compimento di azioni illegali, ma può essere usato benissimo come mezzo di
estorsione per tagliare fuori un individuo dal sistema finanziario rendendolo incapace
di processare transazioni.

Questo succede anche a livello macroeconomico, pensiamo alla situazione dell’Iran


che è stato tagliato fuori dal sistema bancario mondiale perché ha problemi politici
con gli Stati Uniti in merito la transizione delle navi petrolifere.

Ma pensiamo ancora a tutte le aziende italiane che hanno a che fare con l’Iran perché
esportano beni di lusso. Nessuna riesce più a farsi pagare perché per questioni
geopolitiche che non riguardano l’Italia e nemmeno il contesto politico Europeo.

Il fatto che la moneta sia così strettamente politicizzata crea enormi problemi,

17
annullando anche il principio del libero commercio che vige tra i paesi che non hanno
nessun conflitto di interessi/politico tra di loro;
- permission-less, ovvero senza bisogno di autorizzazioni per accedere al sistema:
ad esempio oggi se io voglio avere un conto corrente, inviare o ricevere bonifici dal
mio datore di lavoro per farmi pagare lo stipendio o i fornitori, o inviare bonifici ai
miei dipendenti devo chiedere il permesso a qualcuno.

In pratica: devo andare in banca, dimostrare che sono una ‘’brava’’ persona, che ho
una buona storia di credito per poi pagare una commissione per il servizio offerto. Di
fatto sto chiedendo il permesso a qualcuno.

Col contante invece io posso avere una banconota di 10 euro pur essendo minorenne
e spenderla dove voglio senza chiedere il permesso a nessuno. Uno degli obbiettivi è
proprio quello di ricreare questo tipo di assenza di richiesta di permesso anche nel
mondo digitale;

- riserva di valore: Per mantenere il patrimonio in questa nuova moneta digitale essa
deve essere in grado di conservare il valore nel tempo;

- tutela della privacy: ad oggi, nel sistema tradizionale la privacy c’è e non c’è.

Ovviamente la gente comune non può vedere cosa faccio io con il denaro, oppure
cosa faccio con il mio conto corrente e vedere a chi mando i bonifici, ma gli
intermediari che gestiscono questo sistema hanno visione totale di quello che
succede e attuano una violazione della privacy ogni volta che vedono dove vanno i
nostri soldi e capiscono cosa ne facciamo.

Oggi l’unica forma di anonimato per eccellenza è il contante, perché solo le due parti che
hanno un rapporto economico hanno visione e consapevolezza che quella transazione il
giorno x alle ore y sia realmente accaduta.

18
SCOMPONIAMO IL PROBLEMA PER OTTENERE I VARI OBIETTIVI CHE SI ERANO
PREFISSATI I PIONIERI DI BITCOIN

1. CHI effettua le transazioni?

2. DOVE si tiene traccia delle transazioni?

3. QUAL È l’oggetto della transazione?

4. QUANDO avvengono le transazioni?

Questi sono i 4 problemi che se riusciamo a risolvere senza la necessità di doversi fidare di
qualcuno ci porteranno a creare un sistema di moneta in cui non ci sono problemi di fiducia
verso terze parti.

1. CHI effettua le transazioni? Chi processa e invia le transazioni? Come viene gestita
l’identità dei partecipanti alle transazioni?

- Sistemi centralizzati (banche, PayPal)

Oggi una terza parte fidata gestisce le identità di tutti tramite l’uso di credenziali (username
e password).

Puoi accedere a PayPal grazie al classico processo di login con username e password che
rappresenta la tua identità.

Quando devi mandare soldi a qualcuno, PayPal fa da intermediario, controllando chi è


l’utente destinatario e se si accorge che stai facendo qualcosa che va contro la loro politica
aziendale può decidere di chiuderti in qualsiasi momento l’account.

- Sistema decentralizzato (bitcoin)

In questo sistema le persone si riconoscono a vicenda usando un sistema di firme digitali.

Mentre prima PayPal mi confermava l’identità di chi mi sta mandando i soldi ora, con Bitcoin
non c’è una terza parte su cui posso fare affidamento quindi quando un soggetto manda
una transazione deve inserire anche una firma digitale che lo identifica.

Così facendo non sto affidando il processo a un intermediario, ma si è in grado di


riconoscere la sua firma digitale perché conosco la sua chiave pubblica perché è visibile a
tutti e grazie a questa ho la conferma se quella è effettivamente la persona che si sta
interfacciando con me.

Tutte le altre parti che sono in qualche modo interessate alla transazione possono verificare
19
che sia veramente lei perché hanno la possibilità di verificare loro stessi grazie ai dati
presenti nella blockchain pubblica, eliminando il bisogno di appellarsi a un intermediario.

Qual è il grande vantaggio dei servizi centralizzati? In caso io perda la password dell’account
sono tranquillo perché posso scrivere al servizio clienti e in qualche modo riesco a
recuperarla.

Mentre il vantaggio del sistema decentralizzato invece è che nessuno mi può tagliare fuori
dal sistema, bloccare le transazioni o eliminare la mia identità (account per intenderci)
perché questa è rappresentata dalla mia firma digitale di cui solo io possiedo la chiave
privata.

Se mi si rompe il computer e non ho nessun backup o nessuna chiavetta esterna in cui è


salvata questa chiave privata, io ho perso effettivamente l’accesso ai miei fondi per sempre.

Questo significa che non posso più identificarmi nel sistema e non esiste un supporto clienti
a cui potersi appellare per recuperare le credenziali, dato che l’unico che conosceva la
password ero io.

Abbiamo capito quindi che è presente una sorta di compromesso:


col sistema centralizzato posso anche non fidarmi ‘di me stesso’, ma devo fidarmi di una
terza parte, mentre col sistema decentralizzato devo caricarmi di responsabilità perché devo
prestare molta attenzione alla mia chiave privata.

2. DOVE si tiene traccia delle transazioni?

Perché dobbiamo tenere traccia delle transazioni per sapere chi ha i soldi? Perché se
teniamo traccia delle transazioni sappiamo che A ha dato dei soldi a B, che poi li ha dati a C
e che quindi C è quello che ha i soldi al momento mentre A e B non ce li hanno più.

- Sistemi centralizzati

Una terza parte fidata mantiene un registro in cui tiene traccia di tutte le transazioni come
PayPal o eBay che controlla che io abbia i soldi effettivamente su PayPal.

Questo può essere utile quando lo storico rappresenta una mole significativa di dati e
quando devo vendere qualcosa.

In background il sistema controlla grazie ad una terza parte che chi compra abbia
effettivamente la disponibilità per pagare.

Il problema però sta nel fatto che se c’è solo un utente che ha la possibilità di verifica. A suo
piacere e volere può potenzialmente eliminare un utente dal sistema, cancellare il fatto che
lui detenga dei soldi, o aggiungere denaro ad un conto rispetto che ad un altro o tutta
un’altra serie di manipolazioni che possono creare grossi problemi.

20
È vero anche, che tutti questi intermediari sono altamente regolamentati e quindi per loro
non è cosí facile alterare le informazioni, ma potenzialmente sono tutte casistiche che
potrebbero succedere per altre cause come un attacco hacker o per un errore informatico.

- Sistemi decentralizzati

In questo tipo di sistemi non c’è una terza parte fidata. Ognuno conserva una copia in locale
dell’intero registro di transazioni sul proprio computer.

Questo vuol dire che non c’è nessuno che può manipolare autonomamente lo storico delle
transazioni, nessuno può eliminare o tagliare fuori dal sistema altri soggetti o spostare i
fondi di proprietà altrui da un conto all’altro.

Anche se qualcuno andasse a modificare lo storico della propria copia del registro, quella
stessa copia poi non combacerebbe più con quella degli altri nodi che partecipano al
network e il sistema nel momento di verifica non accetterebbe di conseguenza nessuna
attività da parte di quel soggetto.

Quando io ricevo un pagamento non chiedo più a nessuna terza parte se quella persona che
mi sta mandando i soldi ce li ha davvero, controllo direttamente dalla mia copia del registro
condiviso in rete.

Poi, tramite la copia che ho in locale, controllo se effettivamente ha disponibilità dei soldi che
mi sta per inviare.

Il vantaggio è proprio questo: nessun ente, nessuna istituzione ha il potere o l’onere di


manipolare il registro, nemmeno tramite attacchi hacker o vulnerabilità informatiche che si
potrebbero sfruttare.

Precisiamo che sì, non mi devo fidare di nessuna terza parte per tenere traccia di tutto lo
storico delle transazioni perché tutto lo storico lo possiedo io, ma il lato negativo – per così
dire – è che devo anche disporre di una discreta quantità di spazio nel mio computer per
contenere tutto lo storico del registro.

Potrei inoltre dover sostenere anche costi legati alla banda per scaricare i dati da condividere
con gli altri, costi per il processore che verifica che questi dati siano corretti in tempi brevi e
tutta una serie di costi legati all’hardware relativi alla gestione di questi dati che non avrei
avuto se mi fossi affidato al sistema centralizzato.

Questo crea una sorta di limite, motivo per cui possiamo capire che Bitcoin non potrà gestire
almeno sulla blockchain, un enorme quantità di dati.

Se si dovesse gestire un’enorme quantità di dati espressa in MB/GB, il costo di utilizzo


incrementerà di Bitcoin influenzato dai costi di un supercomputer con 100 terabyte di hard
disk e una banda di 3GB al secondo per poter processare e tener conto di tutte le
transazioni che avvengono ogni giorno, diventando cosí un sistema inutilizzabile per la
maggior parte delle persone che non dispongono di una tecnologia soffisticata.

21
Il compromesso in questo caso è che Bitcoin, limitando la quantità di dati e quindi di
transazioni che si possono fare, porta il vantaggio che qualsiasi persona con un computer
dalle discrete caratteristiche è in grado di conservare tutto lo storico delle transazioni con un
peso di circa 300GB oggi. In più ne può verificare la trasparenza in autonomia senza
interpellare o avvalersi di nessuna terza parte.

C’è gente che lo fa addirittura da piccoli device da 50 euro o semplicemente da telefono


perché non serve un hardware particolarmente costoso per tutto ciò.

Il trade-off che si presenta, sta nell’usare: o un hardware estremamente costoso, che poche
persone possono permettersi, per leggere molti dati in poco tempo, o nel limitare la quantità
di transazioni che si possono fare con Bitcoin permettendo così a tutti di riuscire di storarlo
(salvarlo in locale).

Ad ogni modo vedremo nelle successive lezioni come la situazione viene mitigata con
soluzioni più avanzate.

3. QUAL È l’oggetto della transazione? Cosa ci stiamo scambiando?

- Sistema centralizzato

Un soggetto attesta che stiamo scambiando una moneta emessa da una banca centrale,
delegando tutto a un ente centrale che funziona in modo efficiente.

- Sistema decentralizzato

In Bitcoin chiunque può emettere moneta.

Qualsiasi persona ha la possibilità di emettere massa monetaria a patto che dimostri di aver
speso una certa quantità di ‘fatica’ per emettere quella moneta.

Questa dimostrazione di fatica viene chiamata Proof-Of-Work ( prova di lavoro).

Con la Proof-Of-Wook è possibile dimostrare a tutti che si è spesi una certa quantità di
risorse espressa in potenza di calcolo ed energia trovando il risultato richiesto dal protocollo,
detto anche hash che inizia con un numero ben definito di zeri, risolvendo problemi molto
complessi.

Questo è simile a quello che è successo per secoli con l’oro essendo che non esisteva una
Banca Centrale dell’Oro che aveva il monopolio sulla sua emissione.

Chiunque può e poteva andare con un piccone a scavare in qualsiasi zona o lungo i fiumi con
i retini per vedere se riusciva a trovare delle pepite d’oro.

22
Per riuscire a fare tutto ciò grazie al progresso tecnologico, ovviamente oggi si hanno dei bei
costi ma non sempre l’oro è garantito come ricompensa del lavoro svolto.

Stessa cosa avviene con la Proof of Work.

Per capire ancora meglio, pensiamo ad un esempio:

Perché quando si compra dell’oro in un negozio non ci domandiamo da dove proviene?

Perché so che l’oro è relativamente scarso, quindi per ottenere quella quantità d’oro, i
minatori/l’azienda non l’avrà creato dal nulla ma ci saranno stati dei processi di lavoro
costosi e complessi per ottenerlo.

L’idea stessa che sia costoso da trovare garantisce non solo la scarsità ma ne attribuisce
anche un grosso valore.

Per questo motivo l’atto di creare nuovi bitcoin si chiama minare, perché è estremamente
simile all’atto di minare oro con tutte le caratteristiche che abbiamo descritto sopra.

23
LA PROOF OF WORK:
Cos’è e come funziona
Facciamo un approfondimento di come funziona la Proof-of-Work per emettere moneta nel
sistema Bitcoin.

Anni fa si utilizzava, per prevenire lo spam di email, il protocollo hashcash, un sistema di


PoW.

Applicato a Bitcoin, oggi al posto con le email di avere un messaggio testuale, si ha una
transazione.

Una transazione bitcoin chiaramente non è un testo, ma per semplificare il concetto più o
meno la si può tradurre in una stringa con scritto → Manda 50 bitcoin da Satoshi ad Hal.

Dicendo quindi semplicemente la quantità da trasferire da chi, verso chi, semplicissimo.


(50 bitcoin da Satoshi ad Hal).

Una nuova transazione con emissione di moneta è senza il mittente, quindi diventa → 50
bitcoin ad Hal. In questo modo sto creando 50 bitcoin nuovi, che non vengono dalla persona
che ce li aveva prima perché nessuno li aveva e stanno per essere generati dal nulla.

Si tratta semplicemente una transazione senza il mittente che indica solo l’amount e il
ricevente.

Come faccio però a prevenire con questo sistema che chiunque sia in grado di produrre
moneta dal nulla?

In questo caso Hal, può creare bitcoin, ma l’operazione verrà ritenuta valida solo se dimostra
di aver speso una certa quantità di risorse attribuendogli il diritto di scrivere il messaggio nel
registro che tutti possiedono.

Quindi quello che Hal fa nella pratica è: prendere il messaggio ‘50 bitcoin verso Hal’, provare
a calcolare l’hash e aspettare che il computer gli dia come risultato – ovvero come output –
una cosa simile a questa:

Hash che però dovrà iniziare con una certa quantità di zeri.

24
La quantità di zeri da trovare è l’indice di difficoltà del meccanismo. Più zeri deve avere un
hash più sarà difficile ‘’trovarlo’’. Con il progresso tecnologico sono stati inventati computer
sempre più performanti che hanno permesso di calcolare sempre più hash al secondo
arrivando prima al risultato.

Agli albori di Bitcoin, il numero di zeri era molto basso e pur avendo una potenza
computazionale bassa si riusciva a trovare subito l’hash corretto.

Hal può benissimo creare la transazione che manda 50 bitcoin ad Hal, ma può farlo solo se
trova la combinazione tra stringa e nonce che restituisca un hash che inizia con 0.

Il nonce è da intendere come un numero randomico o valore variabile randomico che


utilizziamo come input per cercare di trovare l’hash giusto.

Questo processo è molto lungo perché l’operazione di hash è un’operazione matematica in


cui per una determinata stringa di parole e numeri corrisponde un determinato hash.

Di conseguenza cambiando un solo valore ( nonce) alla nostra stringa predefinita l’hash
cambia completamente.

Ci sono vari siti online che ti permettono di calcolare l’hash.

In caso volessi cimentarti e provare basta digitare su google “calcolo hash”, inserire una
sequenza di parole qualsiasi, scegliere l’algoritmo SHA256 e premere invio.

Prova a cambiare qualcosa nella stringa man mano finché non ti esce un hash che inizia per
0 per renderti conto anche della difficoltà dell’operazione.

25
Quando troviamo l’hash che inizia con 0, abbiamo la prova di lavoro che ci attribuisce il
diritto di creare una transazione che manda 50 bitcoin a noi stessi.

Ora abbiamo minato dei bitcoin.

Trovando l’hash richiesto dal network si è in grado di dimostrare che è stata fatta una
determinata fatica, considerato che il computer è stato lì e ha impiegato del tempo ed
energia a fare calcoli su calcoli per trovare l’hash che iniziasse con un certo numero di zeri.

(Chiaramente ora ci abbiamo messo poco perché trovare un hash che inizia con 0 è
abbastanza facile, il problema è quando bisogna
trovare hash che iniziano con 20 zeri perché lì
computer ci metterà giorni e giorni trattandosi di
un'operazione casuale/randomica).

Per fare tutto ciò, oggi si usano dei dispositivi


chiamati ASIC, ovvero degli hardware ben specifici
creati appositamente per risolvere un’operazione di
calcolo ben precisa.

Chi compra questi dispositivi e fa quest’attività di


mining quotidianamente sono i miner.

Questi macchinari hanno bisogno di moltissima energia elettrica che fa schizzare in alto la
bolletta a fine mese.

Minando, questi ASIC stanno ‘’facendo fatica’’ perché hanno bisogno di grossa potenza di
calcolo e molta elettricità per riuscire a eseguire più tentativi al secondo possibili nel trovare
hash giusto che inizia con tot. zeri.

Come in miniera, i minatori minano imperterriti alla ricerca di pepite d’oro, così anche i miner
cercando di trovare l’hash giusto per avere il diritto di emettere bitcoin.

È importante trovare l’hash giusto perché, come detto prima, tutti nel network possono
provare a intestarsi una transazione a se stesso con l’ammontare di Bitcoin desiderato, ma
se l’hash non è quello richiesto tutti i nodi rifiuteranno questa transazione.

26
Chiunque quindi può verificare che la stringa 50 bitcoin verso Hal, con nonce 9 per esempio
ha l’hash che inizia con 0.

Poi può essere benissimo che Hal abbia avuto una botta di fortuna e lo abbia trovato al
primo tentativo, ma probabilisticamente ha fatto un sacco di fatica, ed è questo l’elemento
che ci interessa.

Facendo chiarezza, il valore dell’energia spesa dai miner per trovare l’hash, per ragioni di
mercato e di sostenibilità del modello economico, tende al valore dei bitcoin.

Il processo di mining diventa un vero e proprio modello di business dal momento in cui la
gente compra hardware apposta per fare questo o sviluppa operazioni su larga scala
creando addirittura grossi capannoni per minare.

Ma perché si dovrebbe creare questo business?

Tutto questo cela grandi guadagni soprattutto si fa il lavoro fatto bene, riuscendo a
comprare hardware a costi relativamente bassi e ad avere accesso ad energia a basso costo
arrivando così a produrre nuovi bitcoin ad un costo minore di vendita sul mercato.

Se il valore di bitcoin è molto più alto del costo di produzione c’è sempre più gente che si
metterà a minare alimentando la competizione.

I margini di profitto con più competizione tendono a diminuire e il prezzo di bitcoin sale.

Se il valore di bitcoin invece è molto più basso rispetto a quelli di produzione la gente
smetterebbe di minarlo e si avrebbe meno competizione.

27
Con meno competizione i margini tornano a salire e quindi si tende più o meno ad essere in
pari nel lungo termine.

Poi ci può sempre essere il caso di chi ha energia gratis perché vive vicino alla centrale
elettrica in disuso da anni e quindi ha accesso ad un sacco di energia elettrica gratis
riuscendo sicuramente a guadagnarci di più rispetto ad un italiano che paga l’energia a 12
cent/kilowatt ora.

In Italia, per chi ci sta pensando (e so che lo state facendo) l’attività di mining non ha
particolarmente successo (almeno per Bitcoin) non solo per i costi dell’energia, ma anche per
costi di raffreddamento e costi relativi all’acquisto di questi hardware specifici.

Inoltre detto che se anche in Italia ci fosse la possibilità di avere accesso ad energia a basso
costo, a questo punto converrebbe venderla sul mercato a 12 cent/kilowatt ora piuttosto che
minare bitcoin perché si guadagnerebbe di più.

Quindi giustamente l’attività di mining tende a svilupparsi dove l’energia costa poco.

Basta pensare che i bitcoin vengono minati a 4 cent/kilowatt ora in Cina, quindi anche se si
ha accesso ad energia a basso costo in un mercato dove l’energia costa molto, a questo
punto converrebbe vendere direttamente l’energia e non spendere tempo cercando di
minare bitcoin.

Stessa cosa vale anche per tutta una serie di sistemi innovativi come i pannelli solari.

Su larga scala, almeno in Italia, non porta dei vantaggi a causa: dell’elevato costo
dell’energia, elevati costi di raffreddamento hardware e l’impossibilitá di acquistare questi
ultimi a basso costo dal momento in cui non siamo un paese produttore di questi dispositivi
come la Cina ad esempio.

Una buona soluzione per abbattere i costi di raffreddamento dell’hardware sarebbe quella di
andare in paesi freddi in modo da riuscire a contenere la temperatura grazie al clima freddo
mentre questi ASIC lavorano, surriscaldandosi.

Per chi invece pensa di fare mining in cloud, possiamo dire che ha poco senso anche questa
soluzione: immaginiamo di avere una macchina che stampa soldi, a quanto saremmo
disposto ad affittarla?

A un prezzo maggiore dei soldi che genera ovviamente, altrimenti non avrebbe senso
metterla in affitto ad una terza parte.

Un cloud è più o meno questo, tu hai un computer che stampa soldi, a quanto saresti
disposto a darlo in affitto ad una persona in remoto? Ovviamente ad un prezzo maggiore,
quindi chiunque offrisse questo servizio difficilmente permetterebbe di far fare grossi profitti
agli utilizzatori.

28
I BITCOIN SONO UNA RISORSA
INFINITA?
I bitcoin come abbiamo visto, non sono ‘’solo’’ costosi da minare, ma hanno anche una
capitalizzazione fissa limitata.

La quantità che si poteva creare inizialmente era di 50 bitcoin ogni 10 minuti circa
(spiegheremo successivamente il perché di questo “circa”).

La regola del protocollo è che la quantità di bitcoin che si emette per ogni nuovo blocco ogni
4 anni venga dimezzata, per mantenere la sua natura deflazionaria.

Se un giorno infatti ne venissero minati troppi, il protocollo aumenterebbe la difficoltà grazie


al sistema di aggiustamento automatico in modo che la quantità minabile ogni giorno
rimanga quella predefinita dal protocollo, a prescindere da quanta gente sta facendo attività
di mining.

In questo modo sappiamo da qui fino alla fine dei tempi quanti bitcoin potranno essere creati
ogni giorno.

In particolare, grazie alla regola è stato possibile calcolare il momento in cui il dimezzamento
non sarà più possibile perché si sarà arrivati all’unità minima di bitcoin, cosa che avverà
intorno al 2140.

Secondo questo modello di emissione quindi il numero massimo di bitcoin creati sarà di 21
milioni.

Dal momento che questo sistema dimezza ogni 4 anni, nei primi 10 si è prodotta la maggior
parte della quantità disponibile di bitcoin.

Pensiamo che solo nei primi 4 anni si sono prodotto circa la metà di bitcoin esistenti oggi e
ora dopo solo 10 anni siamo a 18 milioni su 21 totali.

Tutto ciò è positivo?

29
Grazie a queste regole il risparmiatore ha delle garanzie che nessun’altro asset può garantire
riguardo la base monetaria del bitcoin.

Io risparmiatore non solo so che non verranno emesse nuove quantità di bitcoin perché so
con precisione quanti ne verranno emessi ogni giorno fino alla fine dei tempi, ma so anche
che essendo una risorsa limitata, dopo un determinato periodo non ne verranno più creati e
diventeranno un bene particolarmente adatto a conservare valore senza subire fenomeni
inflattivi.

30
Si è visto inoltre con alcuni studi che bitcoin è addirittura migliore dell’oro.

Comparando i due grafici dal 1900 ad oggi, si nota che il tasso di inflazione è qualcosa di
imprevedibile, ma mentre nel grafico del bitcoin la curva dell’inflazione tende ad appiattirsi,
quella dell’oro tende a salire perché le tecniche di estrazione di tale risorsa col tempo
migliorano estraendone man mano sempre più facilmente.

E per quanto appunto l’oro venga considerato come il bene più stabile in circolazione, dal
momento in cui nessuno può controllarne l’emissione in modo arbitrario, non offre nessuna
certezza del suo futuro.

Anche se continuerà effettivamente ad essere costoso estrarlo, le tecniche di estrazione nel


corso del tempo potrebbero migliorare e non solo.

Ad esempio, potrebbero essere scoperti nuovi giacimenti d’oro come successo nel ‘500,
quando gli spagnoli tornarono dall’America con enormi quantità d’oro, inflazionandone
quella in circolazione.

In quel caso, i nobili francesi che avevano tutto il loro patrimonio in oro, si videro svalutare la
loro ricchezza a causa dell’enorme flusso di oro che da quel momento in poi circolava nei
mercati europei.

Con Bitcoin, anche se venissero inventati supercomputer in grado di processare miliardi e


miliardi di hash al secondo, la quantità minabile rimarrebbe fissa, più di quello non si
potrebbe minare.

Possiamo dire che ad oggi per quando esista solo da 10 anni offre delle garanzie che nessun
altro tipo di asset è in grado di offrire oggi.

Il prezzo di bitcoin, come quello di qualsiasi altro bene sul mercato è determinato da
domanda e offerta, dove almeno dal lato dell’offerta abbiamo delle certezze col passare
degli anni che non è possibile inflazionare.

Detto ciò, torniamo al punto 4 dove eravamo rimasti.

4. QUANDO avvengono le transazioni?

Ipotizziamo di avere 3 utenti: A, B e C. L’utente


A ha minato bitcoin per conto suo svolgendo
tutto in maniera assolutamente corretta grazie

31
alla Proof-Of-Work e manda all’utente B 50 bitcoin firmati con la sua firma digitale.

B vede che i bitcoin sono stati creati in maniera corretta e che inoltre le firme digitali
corrispondono.

Al contempo peró l’utente A fa la stessa cosa per l’utente C, cioè manda una transazione di
50 bitcoin e anche qui tutto corrisponde correttamente.

Vi è un problema però → Come si fa a decidere quale transazione è avvenuta prima?

L’utente B potrebbe dire che quella indirizzata a lui è stata inviata per prima, perché
ovviamente lui ha visto prima quella, ma anche C potrebbe dire la stessa cosa. In tutto
questo l’utente A non dice più nulla perché ha già ricevuto il bene che ha comprato e per lui
la questione è chiusa.

Tutti hanno una concezione soggettiva di quale transazione sia avvenuta prima e quale dopo
quindi bisogna trovare un modo affinché tutti siano d’accordo su un'unica versione.

Qui il network del protocollo Bitcoin potrebbe dividersi in due ramificazioni: la parte che
pensa che B abbia i soldi e la capacità di spenderli e la parte invece che pensa che il
proprietario sia C.

Analizziamo come si risolverebbe il problema con il sistema centralizzato e decentralizzato.

- Sistema centralizzato

Semplicemente qui PayPal di turno (la terza parte fidata) fornisce un ordine cronologico
delle transazioni di B e C decidendo di fatto a chi sono andati i soldi e chi ha la capacità di
spenderli.

Il sistema tradizionale si dimostra perfetto in questo caso anche se la terza parte


rappresenta il punto di vulnerabilità (single point of failure).

La terza parte in una disputa potrebbe non fornire tutte le transazioni che partono da B
oppure non considerare valide le transazioni che partono da esso, negandogli di fatto la
possibilità di spendere i suoi soldi.

Ed ecco che ritorna il problema della censura, in cui bisogna chiedere il permesso per usare il
sistema e se la terza parte non è d’accordo sull’utilizzo che ne fai potrebbe non tagliarti fuori
in qualsiasi momento.

32
- Sistema decentralizzato

Satoshi Nakamoto però si è complicato la vita architettando Bitcoin, introducendo di fatto il


sistema di firma digitale, PoW, e così via proprio per non avere la necessità di affidarci ad
una terza parte per avere l’ordine cronologico delle transazioni.

In un sistema decentralizzato come Bitcoin, chiunque ha il potere di dare un ordine


cronologico alle transazioni nel momento in cui si crea un nuovo blocco di transazioni, a
patto che dimostri di aver svolto una certa quantità di lavoro.

Hal una volta fatta la PoW, trovato l’hash necessario, crea il nuovo blocco di dati che oltre a
contenere la stringa in cui si assegna 50 bitcoin come ricompensa, inserisce tutte le
transazioni nella pool che aspettano di essere validate nella rete.

Per ordinare questa catena di blocchi si utilizza un timestamp, che contiene l’ora in cui è
stato creato questo blocco di dati, riuscendo così a capire cosa è venuto prima e cosa è
venuto dopo anche se il vero fine come vedremo successivamente è un’altro.

In questo caso, prendiamo per esempio il caso che include la transazione di Alice verso Bob
di 9 bitcoin, quella di Carol verso Ivan di 10 bitcoin e quella di Ted verso Jane di 2 bitcoin.

Tutte queste transazioni sono quelle delle persone che stanno transando sul network in quel
preciso momento e hanno condiviso la transazione perché vogliono che Hal, o gli altri miner
che stanno in quel momento creando un nuovo blocco di transazioni per aggiornare la
blockchain, inserisca anche le loro rendendo così pubblica a tutta la rete il loro scambio di
valore.

Bisogna sapere che nel protocollo Bitcoin non si ragiona per transazioni ma per UTXO
(unspent transaction output) ovvero per output di transazioni non spesi, quello che viene
scambiato non è la moneta in sé come la intendiamo tutti noi oggi, ma il diritto di spendere
una determinata transazione.

La regola generale che vige nel network è quella che i miner possono includere transazioni a
patto che non si spendono soldi che sono già stati spesi dai precedenti proprietari, ovvero
non si spenda la stessa somma due volte, facendo così double spending.

Quindi se Alice prima aveva già mandato i soldi a qualcun altro, Hal non può includere la
transazione di Alice perché avendoli già inviati precedentemente ad un’altra persona non ha
più il diritto di spendere quel determinato output.

A dirla tutta in realtà può farlo, ma non gli conviene perché quando creerà questo blocco e
includerà transazioni che sono già state spese, il network si accorgerà dell’errore perché tutti
i nodi saranno sincronizzati controllando ogni blocco.

Se si inserisce un’informazione considerata invalida come per esempio una ricompensa


maggiore, quando le regole del network in quel momento hanno come limite 50 BTC, o una
transazione già spesa, Hal di fatto si sta dando la zappa da solo sui piedi.

33
Perché non solo Hal verrà scoperto perdendo i 50 bitcoin di ricompensa dalla creazione del
blocco, ma renderà praticamente inutile tutta l’energia spesa per trovare l’hash con n zeri
solamente per aver incluso 1 transazione su 3000 invalida permettendo così ad Alice di
spendere i soldi due volte.

È chiaro che Hal è più incentivato a comportarsi bene ed essere onesto per ricevere la
ricompensa di 50 bitcoin piuttosto che aiutare Alice a rubare dei soldi di qualcun altro.

Quindi Hal sicuramente farà in modo di includere solo transazioni con soldi che non sono
mai stati spesi prima e soprattutto avrà una particolare attenzione a non includere mai due
transazioni che spendono gli stessi soldi (output).

Tutto questo si può facilmente controllare perché come Hal, tutti i partecipanti al network
hanno un registro con tutti i blocchi contenenti le transazioni validate precedentemente.

Così quando bisogna includere la transazione di Alice che invia dei bitcoin a Bob, i nodi
controllano in tutta la blockchain, in tutti i conti e tutte le transazioni per capire se Alice ha
davvero i soldi e se (cosa più importante) non sono ancora stati spesi.

Solo dopo questo processo di verifica si potrà includere la transazione e allo stesso modo si
procederà a controllare ad esempio la transazione di Carol, accorgendosi però che
l’ammontare era già stato speso 3 giorni fa e quindi la sua transazione non va inclusa
altrimenti tutto il blocco risulterebbe invalido.

I miner oltre a fare la PoW, devono fare anche questo processo di verifica descritto che viene
svolto generalmente in automatico in pochi secondi.

Tutto si basa su ciò che conviene o non conviene.

Il protocollo Bitcoin è stato creato per incentivare i miner in maniera da offrirgli maggiori
ricompense, ad essere onesti includendo solo transazioni valide per far si che tutto
l’ecosistema ne benefici senza incorrere in problemi o truffe di qualsiasi tipo.

Una volta che un miner trova l’hash, lo include nel blocco insieme a tutte le transazioni
verificate e lo propaga per tutta la rete rendendolo noto al network prendendosi così oltre al
reward stabilito per ogni blocco, anche le commissioni che gli utenti hanno stanziato
affinché la loro transazione venga inclusa nel blocco.

In questo modo essendo Bitcoin una rete aperta a tutti, qualsiasi utente in qualsiasi
momento (essendo collegati ad internet) può controllare il blocco che Hal ha inserito nella
blockchain.

Infatti il wallet quando deve accettare un pagamento controlla in background tutte le


transazioni che sono state validate fino ad allora, venendo a scoprire così se un soggetto che
vuole acquistare un bene ha effettivamente la disponibilità per pagare.

34
I miner sono fondamentali, sono il cuore che mantengono costantemente aggiornata tutta la
rete dando un ordine cronologico alle transazioni.

La scelta dell’ammontare della commissione che si vuole offrire al miner per incentivarlo a
includere la propria transazione è libera.

Già di default le varie applicazioni come i wallet ti consigliano la fee da inserire in modo che
tu non debba aspettare troppo affinché la transazione venga validata, questa potrà poi
essere modificata in base anche all’urgenza che si ha.

Ovviamente più si offre prima i miner includeranno la transazione nel blocco perché così
otterranno più remunerazione, meno si offre più si dovrà aspettare affinché i miner prendano
la nostra transazione e la inseriscano nel blocco, dato che dovranno esaurire prima quelle
che offrono più commissioni.

Come già detto chiunque può essere un miner ed è per questo motivo che se Hal un domani
non vuole più fare mining perché non è più un business sostenibile, la rete non collassa.
Come lui, sparsi nel mondo ci sono n miner e attualmente circa 8/9k nodi che verificano le
transazioni e i blocchi.

Il miner ormai è diventato un mestiere, chiunque si può cimentare, anche se pochi, vuoi per il
clima della regione in cui vivono, vuoi per la corrente a basso costo riescono a mantenere
effettivamente i costi inferiori ai ricavi, ottenendo un profitto.

Tutto questo per dire cosa?

Non ci sono delle persone incaricate di gestire la sicurezza dello storico, ma chiunque può
smettere e ricominciare in qualsiasi momento perché la rete ormai non ne risente più.

Finché ci sono incentivi economici affinché l’attività di mining venga fatta, sicuramente i
miner continueranno con la loro attività.

35
BREVE RECAP
Gli obiettivi per creare una moneta digitale trustless che non abbia bisogno di una parte
fidata sono:

- Peer-to-peer transactions: nessun intermediario.


Il miner non è considerato un intermediario perché chiunque lo può essere e quindi
nessuno ha davvero il potere. I soldi passano da A a B, il miner fa da ‘facilitatore’ ma
comunque non ha nessun potere poiché non possiede l’esclusiva;

- Censorship resistant: è resistente alla censura.


Un miner potenzialmente può voler non includere le transazioni di Alice perché è un
suo oppositore politico, ma questo non avrebbe nessuna rilevanza perché Alice deve
solo aspettare che un altro miner a cui non interessa nulla dei suoi problemi politici
per includere la sua transazione nel blocco perché quello che gli interessa è la fee
offerta.

La censura di un miner diciamo, al massimo può rallentare il tempo in cui una


transazione viene inserita in un blocco, perché banalmente se il 20% dei miner al
mondo mi odia e non vogliono inserire la mia transazione vorrà dire che dovrò
aspettare il 20% in più del tempo necessario ad avere la mia transazione confermata.

Ad ogni modo è difficile che un mio oppositore politico possa sapere qual è il mio
indirizzo bitcoin perché ci sono una quantità talmente vasta di indirizzi pubblici di cui
non si sa chi sia il proprietario reale che è sempre più difficile attuare operazioni di
censura;

- Permission-less: accessibile a tutti, senza avere il permesso di qualcuno.

Per usare Bitcoin devo semplicemente scaricare un software open source, non devo
aprire un account, non devo chiedere il permesso a nessuno, posso anche essere un
minorenne che abita in qualsiasi paese del mondo e scaricare il software usando
Bitcoin senza problemi;

- Store of value: è una riserva di valore non soggetto ad inflazione.

Riesce a far mantenere il concetto di scarsità, ha la capacità di conservare il valore di


Bitcoin nel tempo ma questo non vuol dire che il prezzo non fluttui in base al
mercato:

Se qualcuno tiene i soldi in Bitcoin non per forza essi conservano il proprio valore, ciò
che è certo è che sicuramente non saranno soggetti a fenomeni di inflazione e
iperinflazione, che sono i motivi che hanno fatto fallire la maggior parte delle monete
fiat nel corso dell’ultimo secolo;

36
- Privacy-aware: rispetta la privacy degli utenti

Diciamo che con Bitcoin questa feature la consideriamo per metà perché è vero che
in nessuna transazione è scritto il nome e cognome di chi ha effettuato la transazione
ma è anche vero che nel corso degli anni sono stati creati vari sistemi che hanno
permesso di verificare l’identità di chi voleva comprare crypto negli exchange.

Sono nati inoltre anche vari servizi che hanno permesso la ricostruzione di tutta la
storia finanziaria di un wallet sfruttando proprio il fatto che le transazioni sono
formate da output che diventano input quando poi si vogliono spendere.

Ma diciamo che si fanno delle spese che per assurdo so che mia moglie non potrebbe
consentire, mia moglie guardando la blockchain di Bitcoin non riuscirà a capire così
facilmente quali sono i miei soldi e vedere come li ho spesi.

Al contempo però come abbiamo detto tutte le transazioni sono visibili a tutti nella
blockchain quindi se qualcuno riesce a creare un collegamento tra l’identità reale e la
chiave pubblica su Bitcoin, riuscirebbe potenzialmente a scoprire cose sia sulla vita
finanziaria passata che sulle operazioni future.

Questo infatti potrebbe farlo non solo il Governo o l’ente terzo che ha erogato il
servizio come accade oggi per PayPal, ma anche il vicino di casa smanettone.

Da alcuni punti di vista vediamo quindi come questa caratteristica porta dei vantaggi,
mentre da altri punti di vista rappresenta ancora un punto che deve essere
perfezionato.

Fondamentalmente se siamo sempre attenti ad utilizzare una chiave pubblica diversa


per ogni transazione, facendo in modo che le transazioni non siano collegabili tra
loro, attuando così tutta una serie di accorgimenti che potrebbero essere quelli di:
usare software che si collegano a internet con Tor in modo che non rivelino il nostro
indirizzo IP o usare un wallet che mischia gli output, sarà difficile risalire a chi ha
realmente effettuato la transazione.

Con tutta questa serie di accorgimenti si riuscirà ad avere un livello di privacy


piuttosto alto, se invece un utente è completamente disinteressato verso la sua
privacy, usa sempre la stessa chiave pubblica, e invece che usare il proprio nodo
scaricando tutta la blockchain si collega ad un nodo esterno che vede facilmente il
suo indirizzo IP e tutto quello che sta facendo non avrà grandi difficoltà a conoscere
la sua identità e le transazioni che fa.

Se in più si aggiunge il fatto di mettere l’indirizzo per donazioni Bitcoin in un sito


pubblico su internet, in questo caso è come non avere privacy.

Di per sé quindi Bitcoin non garantisce la privacy, ma se un utente sta attento


potenzialmente può arrivare ad avere livelli di privacy maggiori a quelli a cui siamo
abituati con i sistemi attuali, l’unico livello di privacy non ancora raggiungibile sono il

37
livello dei contanti, perché non lasciano nessuna traccia. Le banconote che si hanno
in portafoglio possono essere state usate da bande criminali per commissionare un
omicidio senza che tu lo venga mai a sapere.

Conclusioni di questa prima parte:

Bitcoin è quindi una buona moneta?

Confrontiamolo con le monete fiat, chicchi di caffè, oro e diamanti.

Per capire se Bitcoin è una buona valuta dobbiamo valutare:

- fungibilità: se ogni unità di moneta è indistinguibile dalle altre.

Le monete fiat o le banconote hanno questa caratteristica perché ognuna è


indistinguibile essendo completamente uguale all’altra.

Nelle prime civiltà americane invece si usavano chicchi di caffè come sistema
monetario ma non erano una moneta particolarmente efficiente perché vi erano
chicchi molto diversi tra loro essendo alcuni più grandi e altro più piccoli.

L’oro e i diamanti potenzialmente possono essere indistinguibili perché un grammo


d’oro è difficile da distinguere dall’altro, proprio come i bitcoin.

- divisibilità: ovvero in quante sottounità possiamo dividere una moneta.

La moneta fiat come l’euro può essere divisa fino ai centesimi, sufficientemente
piccoli per qualsiasi tipo di spesa.

Per alcuni discorsi di micro-transazioni nel mondo IoT, con la versione elettronica
dell’euro non ci sarebbe nessun limite particolare e si potrebbero transare anche
quantità inferiori a quelle che esistono offline anche se ora nessun sistema
tecnologico lo permette.

Con i chicchi di caffè invece non si potrebbe fare perché se si dividono si rompono
molto facilmente.

Anche i diamanti non possono essere divisi più di tanto, perché spesso il valore del
diamante è correlato alla sua grandezza e forma.

L’oro peró si puó dividere facilmente anche in piccolissime quantità, ma diventerebbe


tutto poco pratico dal punto di vista della misurazione.

38
Se devo pagare il panino 10 euro, equivalenti ad 1/3 di 1 grammo d’oro come riesco
a misurarlo?

Potrei farlo solo con una bilancia super precisa, ma dovrei assicurarmi anche della
purità di quel grammo d’oro che complicherebbe il processo di verifica non poco.

Bitcoin invece può essere diviso ad oggi fino all'ottava cifra decimale.

Questo vuol dire che se Bitcoin arrivasse a valere mai un milione di euro potremo
ancora esprimere cifre equivalenti a 1 centesimo di euro.

- portabilità: quanto facile è trasportare ma anche conservare una moneta.

La moneta fiat è abbastanza comoda da trasportare sia nella sua versione cartacea
sia nella sua versione digitale perché se ho un milione di euro in banca e voglio fare
un bonifico, in qualsiasi posto mi trovi riesco a spostarli.

I chicchi di caffè non sarebbero comodi da trasportare perché dovrei portarne grosse
quantitá in giro rischiando di perdere il tutto o di essere derubato.

Diamanti e oro riescono a condensare tanto valore in poca massa e in realtà non
sono così male, ma se si prova a prendere un aereo con un lingotto d’oro in valigia
sicuramente si potrebbero avere dei problemi e comunque su grosse quantità si
avranno a prescindere delle problematiche dovute al trasporto e alla sicurezza.

Bitcoin invece è estremamente portabile, non per niente è una delle sue
caratteristiche migliori.

Ma riprendendo il concetto di prima cos'è un bitcoin? I bitcoin non sono un oggetto


digitale, esiste la capacità di spendere dei bitcoin sul registro, ma non il bitcoin
stesso.

Quindi ciò di cui ho bisogno è la conoscenza di una chiave privata che mi permetta di
spendere dei bitcoin presenti nel registro distribuito.

Se qualcuno ricorda la chiave privata che può tenere su un foglietto di carta, su una
chiavetta USB o nel caso qualcuno avesse una buona memoria, potrebbe
potenzialmente girare il mondo senza niente.

Basterebbe accedere così in qualsiasi parte del mondo con un qualsiasi dispositivo
per riuscire solo con la chiave privata a spendere i bitcoin.

Si potrebbero attraversare confini nazionali con miliardi di dollari di valore in bitcoin


senza il rischio che vengano confiscati o controllati e soprattutto senza portare nulla

39
di pesante addosso che darebbe nell’occhio, rendendo questa valuta estremamente
portabile.

Il che vuol dire che non è solo facile da trasportare ma anche da conservare. Se si
volesse conservare 10 milioni di euro in casa, ad oggi bisognerebbe costruire una
cassaforte assicurandosi di nasconderla in un posto sicuro, oppure bisognerebbe
metterli in banca e fidarsi di qualcuno.

Avendo però 10 milioni di euro di valore in Bitcoin si può nascondere il foglietto che
contiene la chiave privata in un buco sottoterra che nessuno mai andrà a cercare,
oppure più semplicemente mettere il codice in un computer scollegato da internet
equipaggiando l'hard disk criptato con sistemi di sicurezza molto complessi.

- scarsità: che non sia facilmente creabile, nel senso che non si può creare moneta dal
nulla.

Con la moneta fiat, una persona qualsiasi non può creare moneta dal nulla, ma solo la
banca centrale europea ha il diritto di stampare nuova moneta a seconda
dell'andamento economico, politico dell’area geografica di competenza.

La moneta fiat però è ritenuta scarsa fino a quando l’ente incaricato di gestirne
l’emissione si comporta in maniera responsabile e corretta.

Passando ai chicchi di caffè, è palese che non sia un bene scarso perché potrei
coltivarne una grossa quantità a costi ridotti e di conseguenza creare massa
monetaria abbastanza facilmente.

Diamanti e oro sicuramente sono decisamente più scarsi, molti potrebbero obiettare
dicendo che sono presenti ingenti quantitá di diamanti nei magazzini delle grosse
multinazionali e che in realtà non sono così scarsi come sembrano, ma secondo il
valore di mercato rimangono ancora difficili da estrarre.

Lo stesso vale per l’oro, c’è una scarsità naturale che ne rende difficile la reperibilità.

Bitcoin invece è scarso per tutta una serie di motivi che abbiamo elencato prima.

Non solo è costoso da ‘’creare’’, ma abbiamo visto come si ha un limite di unità


disponibili creabili in un lasso di tempo e a lungo andare vi è anche una quantità
massima di bitcoin ben definita che può essere creata.

Anche se arrivassero gli alieni con i supercomputer non potrebbero creare più di
quella quantità specifica al giorno.

40
- durabilità: quanto riesce la moneta a conservarsi nel tempo senza perdere valore.

Sicuramente questo non è un punto a favore delle monete fiat, non tanto perché la
banconota di per sé si deteriora, ma perché il valore della banconota dipende dal
governo della banca centrale che l’ha emessa e i governi purtroppo tendono a non
durare per sempre.

Ci sono casi più o meno longevi come il governo Americano che ha più di 200 anni di
longevità ma la maggior parte ha avuto vita molto corta.

Anche se guardassimo solo il caso italiano, che non ha ancora avuto diciamo
nessuna crisi di governo che ha portato il paese in condizioni off-limits, nonostante il
periodo in cui stiamo vivendo, se oggi ci ritroviamo in casa delle lire possiamo stare
tranquilli perché nemmeno alla Banca d’Italia possiamo più convertirle in euro.

Se possediamo ancora delle lire, senza che sia successa una crisi economica o
finanziaria a causa di una guerra o un evento catastrofico che abbia avuto un impatto
sulla moneta, in Italia di fatto questa moneta non ha più nessun valore.

Quando si parla di durabilità, come abbiamo già visto, vanno anche presi in
considerazione i fenomeni inflattivi.

I chicchi di caffè invece si usurano nel tempo.

Mentre diamanti e l’oro si conservano molto bene.

Per farvi però un esempio se si andasse ora nei fondali oceanici e si trovasse un
galeone d’oro affondato nel 1500 riuscendo a tirare fuori tutto l’oro, esso si
troverebbe in uno stato ancora buono perché conserva tutta le sue proprietà e
riusciremo a venderlo sul mercato con grande facilità.

Addirittura potremmo venderlo ad un prezzo maggiore facendolo passare come un


oggetto da collezione.

Lo stesso accadrebbe con una moneta d’oro romana del 200 a.C.

Tralasciando il fatto che ormai dopo tutti gli anni trascorsi varrà sicuramente più
dell’oro, se la fondessimo sempre oro è.

41
Stessa cosa vale per i diamanti, anche loro si conservano molto bene nel tempo.

Bitcoin chiaramente esiste solo da 10 anni e forse è azzardato definirlo durabile, però
guardiamo le sue proprietà:

a. esiste solo nel mondo digitale, quindi non ha nessun problema legato al
deterioramento;
b. il suo valore non si basa su nessun ente o istituzione che può smettere di
funzionare e di esistere da un giorno all’altro, in più a livello tecnico non c’è
niente che possa far pensare che Bitcoin non sia durabile.

Può esserci sempre un’apocalisse nucleare in cui verranno distrutti tutti i computer e ci
costringerà a tornare all’età della pietra svalutando enormemente il valore del bitcoin, ma se
non succede nulla di particolarmente grave dovrebbe conservare le sue proprietà anche
durante il corso dei secoli, decenni e millenni.

Poi se un giorno dovesse crollare tutto il sistema che regge la crittografia delle firme digitali,
Bitcoin potrebbe anche risentirne in maniera piuttosto grave facendo perdere ogni tipo di
affidabilità e valore, ma quel caso sarebbe abbastanza simile ad un apocalisse nucleare, dal
momento in cui tutti i sistemi finanziari moderni si basano sulla stessa crittografia su cui si
basa Bitcoin.

Se si rompe quella, ad oggi sicuramente Bitcoin, per quanta poca capitalizzazione ancora vi
è, sarebbe l’ultimo dei problemi.

42
L'architettura della Blockchain:
Il Network
Fino ad ora penso di avervi stressato abbastanza parlando di Bitcoin come unico esempio di
Blockchain e sicuramente vi starete chiedendo a quale setta ho preso parte, ma di base ciò
che voglio farvi capire è che si sta analizzando Bitcoin non perché nutro per questo una forte
simpatia, ma perché è il più vecchio utilizzo della Blockchain che non ha mai avuto problemi.

Tutte le stesse caratteristiche come la


decentralizzazione, peer-to-peer
transaction e il fatto di essere
censorship resistant vengono utilizzati
anche nelle altre blockchain.

Cercando di dare una definizione di


blockchain, la si può intendere come
suggerisce il nome come una catena di
blocchi in cui ogni blocco di dati è
collegato a quello precedente in modo da aver ben chiaro quale blocco è avvenuto prima e
quale dopo grazie ad un sistema basato sugli hash e non grazie ai timestamp come si è
detto in un primo momento.

Con questo sistema si riesce a capire quale blocco è stato creato prima nel caso in cui, due
blocchi che spendono gli stessi soldi ma con destinatari diversi vengano diffusi in
contemporanea nella rete.

Ogni blocco deve includere tassativamente l’hash del blocco precedente, in modo da capire
esattamente l’ordine di tutti questi blocchi.

Semplifichiamo con un esempio il concetto.

Se io ho un blocco e tramite l’hash si riesca a identificarlo come blocco 1, partendo da


questo riuscirei a ricomporre tutta la catena, sapendo che il blocco dopo deve contenere
tutto quello che è contenuto nel blocco precedente.

Non devo spendere soldi che erano già stati spesi e così via.

I miner devono fare attenzione a non fare nulla che sia in contrasto con la storia del blocco 1.

Tutto ciò però può essere in contrasto con la storia del blocco 3, quindi come faccio a sapere
che il blocco 3 viene dopo il blocco 2 e non dopo il blocco 1?

Grazie all’hash che fa riferimento al blocco 2.

43
Ogni miner includerà tra le informazioni anche l’hash del blocco precedente che sarà
anch’esso oggetto del procedimento di PoW.

Ok, ma se ci sono due persone, uno in Cina e uno in Canada, che in contemporanea trovano
il blocco B della catena che ha all’interno l’hash del blocco A, quale dei due blocchi è quello
valido?

Ipoteticamente entrambi sono usciti allo stesso secondo ma quelli in Canada hanno visto
quello del canadese e in Cina quello del cinese perché il tempo di diffusione nel loro stato
giustamente è minore rispetto a quello di diffusione in tutto il resto del mondo.

Come si fa a decidere quindi quale considerare valido?

Si aspetta che esca il blocco C.

Nel momento in cui c’è solo il blocco B, c’è una divergenza nel network, ovvero certe
persone pensano che sia valido il blocco B-canadese mentre altre il B-cinese non essendo
ancora ben chiaro quale dei due è valido.

Quindi ci saranno tutti i miner che iniziano a lavorare al blocco C, ma quelli che hanno visto
prima il blocco B-canadese inizieranno a lavorare inserendo l’hash di quel blocco come
quello precedente e stessa cosa varrà per i miner che hanno visto prima il blocco B-cinese.

Ora chi trova il blocco C è il gruppo che deciderà qual è quello valido.

Nel senso io che ho trovato il blocco C, inserisco il riferimento al blocco B-canadese e in


questo momento tutti i nodi della rete vedono due catene:

● Una che passa per il blocco B-canadese che arriva al blocco C


● Una che arriva al blocco B-cinese e si ferma, perché nessuno ha trovato ancora il
blocco successivo.

Tutti i nodi della rete sanno che in un momento di indecisione si segue la catena più lunga
che presenta più blocchi anche se entrambe sono valide, abbandonando di conseguenza
l’altra.

In questo modo anche quelli che prima avevano considerato come valido il blocco B-cinese
iniziano a lavorare sul nuovo blocco C.

Ipotizziamo che io veda prima il blocco B-cinese e nel momento in cui appare anche il
B-canadese io continui imperterrito a lavorare su questo perché penso sia quello giusto.

Quando esce il blocco C e controllo il riferimento al blocco precedente rendendomi conto che
quello giusto era effettivamente il B-canadese, cancello questo buttando di fatto cosí il
tempo e l’energia impiegata e mi rimetto in pari con la catena che tutto il network riconosce
come quella valida e da seguire.

44
In questo modo anche senza nessun coordinatore centrale si riesce a convergere e ad avere
una storia unica della rete.

Questi problemi sono comuni e succedono spesso a causa della latenza tra i miner che non
riescono a comunicare bene tra di loro rientrando nei costi già preventivati del miner.

Prima di considerare una transazione immutabile e scolpita nella pietra, è bene aspettare
che siano usciti un paio di blocchi dopo che la transazione è avvenuta, in modo da avere
delle garanzie che quel blocco non possa essere cancellato da un altro che sta sviluppando
contemporaneamente una catena piú lunga.

Ci sono altri casi rari in cui le due catene potrebbero continuare a formarsi per una serie di
blocchi, quindi per essere sicuri anche quando si scambiano ingenti quantità di denaro
bisognerebbe aspettare almeno 6 blocchi (1 blocco circa 10 minuti).

I blocchi li posso vedere o scaricando tutta la blockchain di bitcoin fatta fino ad ora, oppure
ogni volta che un peer li condivide. Ma quello che potrebbe succedere è che un peer
malevolo mi mandi una catena alternativa dicendomi che quello che lui considera come
storia di bitcoin è questa qui e non l’altra.

È proprio qui che quando verifichiamo che quello che ci dice il peer corrisponda alla realtà ci
avvaliamo della regola detta prima, ovvero che in un momento di indecisione si sceglie
sempre la catena più lunga.

Tutto questo viene gestito dal software in modo del tutto automatico senza che noi ce ne
accorgiamo ma è bene comprenderlo.

Per concludere il discorso, con Bitcoin abbiamo sempre una certezza diciamo
‘’probabilistica’’ che una transazione sia definitiva.

Al blocco 1 si ha una certezza del 90%, al blocco 2 del 97%, al blocco 3 del 99%, al 4 del
99,9%, al 5 del 99,9999% e così via, perché più si creano blocchi sulla catena, più il dato
diventa immutabile, difficile e costoso da modificare perché non solo bisognerebbe scrivere
la storia di quel blocco ma di tutti quelli successivi se l’informazione che si vuole modificare
non si trova nell’ultimo blocco pubblicato.

45
FONDAMENTI TECNICI DELLA
BLOCKCHAIN

1. Funzione di HASH

Spieghiamo finalmente questa funzione di


hash che vi ha fatti diventare sicuramente
matti. La funzione di hash è una funzione
matematica che sta alla base di tutti i
meccanismi della blockchain.

Avendo un input di qualsiasi lunghezza


facendo l’hash si ottiene un output di
lunghezza predefinita e fissa.

Inoltre, dando in pasto alla funzione di hash lo stesso input si otterrà come risultato sempre
lo stesso output (deterministica).

46
PROPRIETÀ DI SICUREZZA
Una funzione di hash crittograficamente sicura deve soddisfare queste condizioni:

- non invertibilità: concetto secondo il quale da un output è impossibile derivare


alcuna informazione riguardo l’input ( mentre viceversa sì).

I primi siti online del passato che nacquero per la roulette russa per esempio ti
facevano vedere l’hash prima che tu scommettessi sul colore perché tanto tu non
saresti riuscito a risalire all’informazione dentro l’hash in nessun modo. Così facendo
ti davano la garanzia che il risultato non era stato manomesso dopo la scelta del
colore perché in molti siti solo dopo aver scelto il colore ti appariva il risultato.

- collision free: è impossibile generare lo stesso output da due input differenti,


nonostante ci siano più input possibili che output.

- puzzle-friendly: per formare l’output x insieme all’input bisogna aggiungere un


pezzetto detto nonce (ovvero un numero randomico).

É il concetto di trovare l’hash matchando (combinando/mettendo insieme) la stringa


‘50 bitcoin ad Hal’ e il nonce volendo arrivare ad un output di un certo valore (hash
che inizi con un determinato numero di zeri)

Infatti abbiamo aggiunto questo valore randomico all’input iniziale ovvero la stringa
cambiando ogni volta il nonce per riuscire a trovare l’hash giusto. Diventa quindi
impossibile identificare a priori un output di una funzione di hash.

2. La struttura dati Merkle Tree (struttura ad albero)

Il Merkle Tree è un metodo per organizzare i dati, una struttura dati utilizzata per indicizzare
e verificare i dati nella blockchain.

Praticamente partendo con n transazioni si vuole arrivare ad avere un hash solo che le
contenga tutte. Si crea l’hash di tutte le transazioni, si sommano poi a due a due creando un
nuovo hash, ripetendo questo processo finché non si forma un top hash.

47
Questa struttura è utile perché permette di dimostrare, partendo direttamente dall’hash
finale del file, come una delle transazioni principali faccia parte del blocco.

Per dimostrare che una transazione faccia parte di un hash finale serve 1 hash per ogni
livello che compone l’albero (ovvero si ha bisogno dell’hash escluso per ogni livello che
compone il dato che ci interessa). Non vi biasimo se non vi è chiaro, ad ogni modo ci
torneremo più avanti, per il momento vi basta sapere questo.

2a. Merkle Tree (struttura a lista)

Procedura secondo la quale si organizzano le transazioni e i rispettivi hash dei documenti in


fila.

Di base presenta un problema: per risalire ad una transazione o ad un dato (L6) mi


servirebbero tutti gli altri hash che compongono quello finale.

3. Firme digitali

Le firme digitali sono uno schema matematico utile a verificare l’autenticità di messaggi o
documenti digitali.

48
Esse provano che:

- il messaggio è stato creato proprio dal mittente;


- il mittente non può negare di aver inviato il messaggio;
- il messaggio non è stato manipolato durante la trasmissione.

Le firme digitali funzionano con un sistema a coppie di chiavi:

- una chiave privata serve per generare una firma: tradotta come una stringa segreta
conosciuta solo dalla persona che l’ha generata in modo randomico;

- una chiave pubblica serve per verificare la firma: è una stringa derivata da una chiave
privata. Dalla chiave pubblica è impossibile trovare la chiave privata. La chiave
pubblica è usata per determinare, senza l’utilizzo della chiave privata, se la firma è
idonea al prodotto con la giusta chiave privata;

Alice firma il messaggio tramite l’utilizzo di un algoritmo che


ha come input il messaggio + la chiave privata e il numero
randomico, insieme danno come output il messaggio cifrato e
firmato.

Bob invece per verificare la firma ha bisogno del messaggio


stesso innanzitutto e della chiave pubblica della persona che
ha inviato il messaggio per verificarne l’integrità e per
decifrarlo.

4. La Proof-Of-Work

La PoW negli anni ‘90 era nata come protezione contro lo spam dell’email.

L’idea era che dietro hashcash, quando un soggetto inviava una mail, si doveva calcolare
partendo del testo della mail + un numero random, l’hash, cosicché l’output di questi due
elementi diciamo iniziasse con una certa quantità di zeri stando a dimostrare che si era fatta
una certa quantità di lavoro per timbrare il messaggio, lavoro che sicuramente uno spammer
non avrebbe mai fatto perché è un procedimento che gli costa.

Oggi la Proof-Of-Work in Bitcoin viene intesa come algoritmo di consenso in cui determinati
hardware (ASIC), come risultato a operazioni di calcolo matematici molto complesse che
richiedono molte risorse sia in termini di energia elettrica che potenza computazionale,
ottengono una prova di lavoro che gli concede il diritto di aggiornare la blockchain, creando
un nuovo blocco di transazioni.

I dati sul network Bitcoin vengono scambiati dagli utenti, dove per utenti intendiamo chi fa
girare il software Bitcoin sul proprio computer comunicano con una rete peer-to-peer.

49
Di fatto noi abbiamo sul nostro computer un programma che sta girando, connesso
generalmente ad otto peer in modo più o meno casuale, proprio per evitare che un peer
malevolo ci comunichi uno stato della blockchain alterato non corrispondente alla realtà, la
versione più diffusa si prenderà per vera.

Quando io vedo una transazione, la passo agli altri, quando invece gli altri ne vedono una la
passano a me con tutti i dati relativi ai blocchi di appartenenza e alle altre transazioni.

Tutti i dati che praticamente i peer si scambiano sono due:

- blocchi di transazioni che includono tutta una serie di informazioni, come timestamp,
hash trovato con la PoW, hash del blocco precedente, Merkle Tree delle transazioni e
così via;
- singole transazioni che non sono ancora state incluse in nessun blocco.

L’obiettivo dello scambio di queste transazioni tra i peer è quello farle arrivare più in fretta
possibile ad un potenziale miner.

Questo perché chi fa mining deve riuscire a vedere quali sono tutte le transazioni in attesa di
essere incluse in un blocco.

Tutti i nodi del network si trasmettono queste transazioni in attesa di essere incluse in un
blocco e quelle che hanno impostato la fee più alta saranno le prime che chi fa mining noterà
e includerà nel blocco.

Questo sistema può essere anche utile per vedere quando mi sta per arrivare una
transazione.

Nel momento che è stata broadcastata, ovvero che il mittente l’ha firmata digitalmente e l’ha
trasmessa al network, so che nel giro di qualche minuto o qualche ora al massimo in base
alla fee scelta verrà inclusa nel blocco, dandomi così un’informazione utile riguardo le
tempistiche di validazione.

Facciamo un esempio in cui io ho creato una transazione verso un amico e l’ho firmata
digitalmente.

Immaginiamo una catena di pallini, dove ogni pallino è un nodo del network, in un estremo ci
sono io utente, mentre nell’altro vi è il miner che è interessato a prendersi la mia fee e
includere la transazione nel blocco.

Come faccio per farla arrivare al miner?

Non essendo connesso a nessun miner, (tralasciando il fatto


che non so nella rete chi siano perché non riesco a distinguerli
guardando solo il network), mi collego nella rete ad altre 3
persone e invio la transazione che ho creato.

50
Si occuperanno loro a loro volta di inviarla agli altri a cui loro sono connessi in modo che si
propaghi nella rete e raggiunga le persone che stanno facendo attività di mining.

Nel giro di un paio di secondi si dovrebbe raggiungere l’80% del


network, anche perché l’interesse di base dei miner è quello di
essere collegati molto bene per ricevere prima le transazioni più
profittevoli.

Una volta che sono arrivate le transazioni, il miner in base a


quello che gli conviene fa giustamente le sue considerazioni,
prendendo ovviamente su 3.000 transazioni le 2.000 che pagano più fee e tenendo le altre
magari in coda per inserirle nel prossimo blocco in caso avanzi dei posti liberi.

In generale mette tutte quelle che conosce e che gli arrivano in ordine di fee mentre le altre
rimangono in coda.

Il miner ha creato un blocco di transazioni e al


contempo lui ha l’interesse che questo si propaghi il
più in fretta possibile in modo che tutti lo vedano,
perché c’è il rischio che un potenziale blocco
concorrente si propaghi prima costruendoci sopra il
suo di blocco.

Il miner a sua volta invia il blocco a tutti i peer collegati.

Ad un certo punto, il blocco arriverà anche a me che ho


inviato inizialmente la transazione e vedrò che la
transazione è stata confermata all’interno di un blocco. Tra i
passaggi di scambio da un peer all’altro può essere che
passi qualche secondo e che uno veda un'operazione
commerciale prima di un altro, però tendenzialmente tutti
prima o poi a distanza di secondi la vedranno.

Finché l’informazione non arriva a me, io non sono sicuro che la mia transazione sia stata
inclusa nel blocco.

Solo quando vedo nel blocco che ho ricevuto il pagamento sono sicuro e posso inviare ad
esempio il pacco al destinatario che me l’ha ordinato in caso stessi vendendo un prodotto.

Grazie ad una rete ormai fitta e ben collegata, il processo di divulgazione delle informazioni
dura al massimo un paio di secondi senza complicazioni.

Questo tempo si dovrebbe allargare solo in caso io mi trovassi in una zona con scarsa
connessione internet.

51
Analizziamo che tipo di attori ci sono nel Network Bitcoin.

- Da un lato abbiamo i nodi che fanno mining, ovvero tutti i nodi che fanno svolgono
l’attivitá di Proof-Of-Work creando nuovi blocchi e facendo business;

- Poi ci sono i full node, ovvero i nodi che controllano e verificano le transazioni nella
blockchain conservando l’intero stato della catena Bitcoin dagli inizi della sua storia.

Generalmente un soggetto che fa mining è anche un full node, ma non è


indispensabile, un miner potrebbe avere anche la storia degli ultimi 1000 blocchi per
esempio.

Per risparmiare tempo, banda e spazio il miner può minare anche senza sapere il
reale stato delle transazioni, ma col rischio che inserisca qualcosa di invalido nei
blocchi e che perda il suo guadagno.

All’inizio c’erano dei miner che lo facevano per risultare più efficienti e veloci, ma poi
cominciarono a creare blocchi invalidi e quindi smisero vedendo la perdita di denaro.

Quindi tendenzialmente tutti i miner hanno anche un full node anche se non è un
requisito necessario e indispensabile;

- SPV node, sta per Simple Payment Verification.

Sono dei nodi che non hanno voglia di conservare tutto lo storico delle transazioni
della rete sul proprio hardware, perché magari sono dei cellulari che non hanno
ancora abbastanza spazio per conservare quella quantità di dati, o magari l’utente
non vuole sprecare troppa batteria per fare queste operazioni di verifica.
Quello che fanno è rivolgersi ai full node per quando riguarda le transazioni a cui
sono interessati.

Ad esempio, posso avere sul mio telefono cellulare un wallet che usa questo sistema
SPV collegandomi a dei full node e richiedendo delle informazioni sulle transazioni
che pago verso determinate chiavi pubbliche.

Se il full node noterà qualcosa, me lo riferirà immediatamente dicendomi se la


transazione è stata confermata o meno. Questo è controllabile attraverso la struttura
del Merkle Tree che abbiamo vista prima.

In questo modo viene limitato lo scambio di dati che non mi interessa dato che sono
venuto a conoscenza che la transazione che mi interessava fa parte del blocco senza
dover avere tutto lo storico delle transazioni del blocco.

52
In generale non avere un full node è un ‘escamotage’ per quando si vogliono
utilizzare poche risorse, anche se in un certo senso consultandoli ci stiamo fidando di
qualcun altro e quindi potrebbero essere meno sicuri.

Sicuramente vanno bene se si utilizza il telefono per fare transazioni da piccoli


importi perché si rinuncia a un po’ di sicurezza ma si consuma meno batteria del
telefono.

Come si interagisce con la blockchain?

Per interagire con la blockchain, vengono tipicamente usati (spesso congiuntamente) due
tipi di software:

- Un nodo per scaricare i dati della blockchain, registrare transazioni, verificare che
tutti i blocchi siano validi ( nel rispetto delle regole) e che la catena a cui si è collegati
sia la più lunga;

- Un software di walleting per conservare le chiavi private e permette di creare e


firmare transazioni.

Sono due ruoli separati ma in realtà qualsiasi software wallet Bitcoin permette di fare
entrambe le cose.

Un caso d’uso di quando si potrebbero utilizzare separati è avere un computer che fa


da nodo effettuando operazioni che a livello di hardware hanno requisiti più alti, e
tenere invece un wallet sul telefono che si collega solo al nodo che si ha per esempio
nel computer fisso in casa per fare operazioni di verifica più complesse.

53
Tipologie di wallet
I wallet sono divisi in:

- completamente fiduciari (hot storage): ovvero un servizio terzo che fa da ‘’banca’’


delle tue crypto permettendoti di comprarle e venderle come l’exchange Coinbase
per esempio.

Utile per tutti quegli utenti che non hanno voglia di gestire in prima persona le loro
chiavi private.

Questa terza parte, proprio come una banca, in cambio di una esperienza d’uso
molto facile e immediata, può fare tutto quello che vuole con i nostri fondi in quanto
detiene le nostre chiavi private. Si è soliti infatti dire nel settore ‘’Not your keys, not
your money’’.

Se poi l’exchange viene chiuso oppure viene hackerato si ha il problema di aver perso
i fondi a nostra disposizione.

Nel momento in cui ci si affida a loro bisogna sapere che i soldi non sono più di
nostra proprietà;

- non fiduciari (cold storage): sono quelli standard in cui le chiavi private sono
completamente controllate dall’utente sul computer o sul mobile wallet.

Molto spesso protette da una password per aumentare il livello di sicurezza in caso
di furto del dispositivo in cui si tengono le chiavi private.

Questo é il wallet ideale per chi vuole sfruttare a pieno tutte le caratteristiche di
Bitcoin;

- wallet condivisi: non sono wallet fiduciari, ma per prendere i soldi è necessario avere
la firma di più persone.

Questo è il caso di un gruppo di amici, di una coppia o dei soci di un’azienda in cui si
ha un conto condiviso nel quale per fare una transazione serve la firma di più
persone (ovvero di più chiavi private).

Quindi magari io e il mio socio abbiamo il wallet della società e per muovere dei soldi
serve che ci siano entrambe le nostre firme affinché la transazione risulti valida per
riuscire a spostare i soldi.

Senza una delle due firme sia io che lui non possiamo attuare nessuna operazione
autonoma di spostamento dei fondi.

54
Molto utile da usare anche come 2FA (two-factor-authentication/autenticazione a
due fattori) in cui ho una chiave sul telefono però poi ne ho una anche in un servizio
esterno che deve firmare per validare e far partire la transazione.

Se mi dovessero rubare uno dei due dispositivi, senza l’altro in ogni caso non
potrebbero fare nulla.

55
Diversi modelli di sicurezza per
wallet non fiduciari
Tra i wallet non fiduciari ci sono quelli che sono più comodi e altri più sicuri.

Analizziamo tutti i compromessi in base alle nostre esigenze:

- full validating vs non validating: ovvero se semplicemente sullo stesso hardware


controllato dall’utente c’è un nodo che fa la validazione completa.

Questo è importante perché facendo validazione completa, sono io che valido tutta la
storia dello storico delle transazioni della blockchain di Bitcoin e il mio hardware può
essere controllato solo da me.

Siccome ne ho il pieno controllo, solo in questo modo sono sicuro che quando ricevo
una transazione sia stata veramente ricevuta, sapendo io stesso col mio computer
che la transazione in entrata è valida.

Se invece io mi appoggio ad un servizio esterno per controllare se le transazioni in


entrata sono valide o meno, il livello di sicurezza è chiaramente inferiore perché
potrebbe dirmi che ho ricevuto i soldi quando in realtà non li ho ricevuti, oppure
potrebbe semplicemente non dirmi nulla quando ricevo dei soldi.

Solo con il full validating di tutta la storia della blockchain sono sicuro di non dovermi
fidare di nessuno.

La soluzione ideale potrebbe essere avere il wallet che ho sul telefono e che non
riesce ovviamente a fare tutte queste operazioni di verifica, si colleghi ad un nodo
che gira sul mio hardware che può essere sul mio stesso telefono (se si hanno più di
300GB di spazio) oppure sul mio computer a casa.

- Online vs offline: qui vi è il compromesso in cui le mie chiavi private possono essere
conservate su device collegati a internet oppure su device che non sono collegati ad
internet, essendo questi ultimi molto meno esposto ad attacchi hacker.

Se ora sono collegato ad internet, un hacker bravo riuscirebbe ad entrare nel mio
computer, trovare il file delle mie chiavi private e magari anche rubare la password
del mio portafoglio mentre accedo al wallet.

Se invece stacco da internet, chiaramente riduco enormemente questo tipo di rischi

56
perché l’hacker in questione, prima di far qualcosa, deve riuscire ad avere accesso
fisico al mio hardware.

Quindi non deve essere solo un hacker bravo, ma anche uno che mi entra in casa
senza che me ne accorga.

Il vantaggio del wallet offline è che complica la vita non di poco all’hacker che vuole
derubare le chiavi private, ma rende anche il sistema meno pratico perché ogni volta
che devo fare una transazione devo andare sul computer online a costruire la
transazione per capire guardando la blockchain dove sono i soldi che posso
spendere. Una volta capito devo spostarmi dal computer online al computer offline
usando una chiavetta USB per fare l’operazione di firma solo sul dispositivo offline,
per poi infine riprendere la chiavetta e spostarmi sul computer online per poterla
broadcastare (firmare e inviare) al resto del network.

In questo modo si rende la transazione molto macchinosa e meno user-friendly,


quindi di solito per piccoli importi intorno al centinaio di euro si fa tutto online,
mentre solo per importi maggiori meglio seguire questo procedimento anche se
macchinoso, guadagnandoci in termini di sicurezza;

- specialised vs general purpose hardware: tradotto “hardware specializzato e


hardware generico”.

In questa categoria ancora ad oggi non si è capito bene cosa sia più semplice e cosa
invece più sicuro, perché i dispositivi in commercio che si trovano sono usciti da
troppo poco tempo e non ci sono ancora stati casi eclatanti di furti.

Per hardware specializzato s’intendono tutti quei dispositivi prodotti da aziende


appositamente per essere dei wallet di una criptomoneta.

Un noto produttore di hardware ormai, conosciuto da tutti è l’azienda francese


Ledger che grazie alla produzione di queste piccole chiavette USB offline permette
all’utente di costudire al loro interno in un chip di sicurezza militare le chiavi private di
vari wallet. Questi sono stati progettati talmente bene infatti che non è possibile
estrarre nessuna informazione nemmeno con l’accesso fisico cercando di scomporlo.

Di fatto anche rubando l’oggetto fisico gli hacker non riuscirebbero a rubare i soldi,
essendo queste chiavette protette da un PIN che se viene sbagliato 3 volte ti
chiederà poi di inserire le 24 parole di configurazione del wallet che spiegheremo più
avanti.

Questi dispositivi sono progettati in modo che sia quasi impossibile hackerarli
perché: hanno poca memoria quindi sopra non ci si potrebbe installare nessun
malware dal momento in cui non c’è spazio per installarlo, e inoltre fanno solo

57
operazioni di firma quindi se cerchi di fargli fare altre operazioni, la chiavetta non è
fisicamente in grado di farle.

Nel piccolo schermo disponibile è possibile vedere tutte le informazioni che


ricapitolano i dettagli della transazione in modo ancora più sicuro, perché se si
esegue questa operazione dal computer che potrebbe sempre essere compromesso
essendo collegato ad Internet, si potrebbe premere invio convinti banalmente che
l’indirizzo che si è inserito sia quello dell'amico quando invece non ci si potrebbe
accorgere che si sta inviando dei soldi all’indirizzo di un potenziale ladro.

Molto importante è infatti comprare questi dispositivi direttamente dal sito ufficiale
dell’azienda e non invece da Amazon per evitare brutte sorprese.

Se volessimo infatti ipotizzare una casistica estrema se tu sei un corriere e sai che la
gente sta spendendo dei soldi per questo dispositivo qua, fai 2+2 e capisci che su
questo dispositivo la gente ci inserirà un sacco di soldi.

Infatti se qualcuno è stato disposto a spendere 60 euro euro per un dispositivo del
genere vuol dire che tendenzialmente ha più di qualche bitcoin da inserirci, quindi se
riesci a manometterlo in qualche modo, come potrebbe essere il fatto di configurarlo
giá a priori prima che arrivi al destinatario, sei quasi sicuro, sempre se non se ne
accorge prima (cosa piuttosto semplice, diciamo che bisognerebbe essere proprio dei
neofiti e ingenui per non accorgersene), di riuscire a ricavarci un bel po’ conoscendo
le magiche parole che creano il wallet.

Mentre se si decide di tenere i soldi su un desktop wallet generico, coloro che


lavorano sulla catena distributiva che spedisce computer non hanno idea che io lo
userò per conservarci i miei bitcoin. Potrebbero pensare che io lo usi banalmente per
giocare ai videogiochi o per lavorarci.

Come abbiamo capito, questo mondo è pieno di compromessi, mentre da un lato


questi hardware sono attualmente tra i più sicuri, non vi è ancora una garanzia per il
futuro perché anche il principale produttore potrebbe aver inserito qualche chip
nascosto introvabile, sapendo che i suoi prodotti verranno usati per conservare
grosse quantità di denaro che in futuro potrebbe rubare.

Oggi se riesce ad entrare in un conto corrente di un’altra persona e ci intesta un


bonifico, si viene praticamente beccati subito, in questo caso se si rubano dei bitcoin
è possibile passarla liscia abbastanza facilmente.

Ovviamente non è che sia così facile farlo. I prodotti devono passare tutta una serie
di controlli prima di essere messi in vendita.

La vulnerabilità è dettata dal fatto che è un dispositivo in cui sicuramente ci saranno


contenuti dei soldi, quindi c’è tutto l’incentivo del mondo per fare un determinato tipo
di attacchi.

58
Ricordiamoci che dove c’è un incentivo economico il cervello umano si ingegna in
qualsiasi modo trovando strade anche losche per guadagnarci.

La soluzione invece, per avere dei vantaggi se fossimo particolarmente paranoici,


sarebbe un wallet condiviso con noi stessi, dove si tengono le chiavi private sia
sull’hardware specializzato del Ledger che su quello generico del computer in modo
da proteggerci per entrambe le tipologie di attacchi, in quanto per firmare ci
servirebbero entrambi i dispositivi che sono in nostro possesso.

Mentre il Ledger dà una grossa mano oggi ad avere un livello di sicurezza molto alto
in maniera tanto semplice e rapida (sempre stando attenti a non perderlo), con un
computer generico se si è un utente esperto si può benissimo arrivare ad avere livelli
di sicurezza addirittura superiori al Ledger, necessitando però competenze tecniche
che non tutti hanno.

59
IL MINING
In questo capitolo analizzeremo nei dettagli tutto quello che riguarda il mining, anche se
abbiamo già visto precedentemente come funziona la Proof-Of-Work.

Prima di tutto scomponiamo la struttura del blocco.

Tutte le transazioni del blocco sono organizzate con una struttura chiamata Merkle Tree (ad
albero).

In un esempio semplificato del Merkle Tree, la prima transazione è sempre quella che
assegna la ricompensa per aver minato il blocco al miner (se ricordate negli esempi
precedenti era: ‘’50 bitcoin verso Hal’’) detta anche transazione issuing transaction o
Coinbase (da cui ha preso il nome anche la famosa azienda che oggi fa da exchange
sfruttando così il gioco di parole), mentre tutte le altre sono allineate allo stesso livello di
questa.

Di tutte queste transazioni viene fatto un hash e a sua volta gli hash che escono vengono
accoppiati a due a due con un’altra operazione di hash formandone quindi un altro.

Questo procedimento si ripete finché non viene formato il Merkle Root che ci interessa in
particolar modo per la parte di PoW.

Gli incentivi per l’attività di mining come avete potuto capire se siete stati attenti, sono
quindi due:

- il block reward (che come abbiamo detto precedentemente ogni 4 anni viene
dimezzato), ovvero la quantità massima di bitcoin che si possono inserire come
ricompensa desiderata per il lavoro di mining.

Io potenzialmente potrei inserire anche 40 BTC ma se tutto il network sa che la


60
ricompensa attuale è di 12.5 BTC, automaticamente non accetterà un blocco
superiore alla ricompensa massima attuale, rendendo inutile il mio dispendio di
energia e lavoro;

- le transaction fee, ovvero le commissioni pagate dal chi vuol far sì che la sua
transazione venga inserita per prima rispetto ad altre in base all’urgenza che ha.

In una transazione c’è sempre il campo input e quello output:


nell’input viene inserita la chiave pubblica a cui sono associati per esempio questi 10
bitcoin che si vogliono spostare verso la chiave pubblica dell’amico a cui voglio
inviarli, ovvero l’output.

A questo mio amico però non invierò 10 bitcoin ma 9,99 bitcoin. Quel 0,01 BTC che
è la differenza tra l’input (10) e l’output (9,99) è quello che viene riconosciuto al
miner come commissione se include la transazione nel blocco.

Ovviamente decidiamo noi quanto lasciare perché l’offerta è libera. Possiamo dargli
un bitcoin intero come non lasciargli niente.

Maggiore è questa differenza rispetto alle altre transazioni, più velocemente la mia
transazione sarà validata e verrà inserita nel blocco.

Il miner nel momento di inserimento delle transazioni prende la discrepanza di tutte


le transazioni tra input e output (sempre se vuole ma non è obbligato) e la
aggiungerà al block reward nella issuing transaction iniziale verso sé stesso.

Quindi se si vuole andare a vedere la issuing transaction, essa non sarà mai da 12.5 BTC ma
attualmente possiamo notare come tende ad essere un valore sempre maggiore, perché
appunto ai 12.5 del block reward attuali sono state aggiunte le commissioni di tutte le
transazioni incluse.

Se si desidera fare un’analisi del blocco vi consiglio uno dei tanti siti che si occupa di questo.

61
LA DIMENSIONE DEL BLOCCO
Passiamo ora alla dimensione del blocco determinata dal numero e dal tipo di transazioni
che possono essere incluse all’interno del blocco.

Fino a qualche anno fa la regola del protocollo stabiliva che la dimensione del blocco fosse di
circa un 1MB avendo una transazione che generalmente occupava circa 100 byte.

Possono però esserci transazioni che occupano più spazio e altre meno in base al tipo di
indirizzo.

Più è complessa la transazione più occupa spazio come nel caso si tratti di un wallet
condiviso in cui per ogni sua transazione si ha bisogno di 2 firme, oppure se si tratta di una
transazione che manda soldi a più persone avendo quindi la necessità di inserire n firme in
base al numero di destinatari.

Non è possibile quindi definire una quantità fissa di transazioni disponibili in un blocco, ma a
quanto ammonta la dimensione massima di un blocco in MB.

Anni fa con 1 MB ogni 10 minuti si avevano circa 2k transazioni confermate.

Successivamente nel 2017 è stato introdotto un nuovo tipo di transazione più efficiente
chiamato SegWit (vedremo più avanti di cosa si tratta) che ha permesso di inserire un

62
quantitativo maggiore di transazioni nel blocco aumentando la dimensione del blocco
intorno ai 2-3 MB.

La dimensione come avete potuto capire, non è fissa, ma dipende da quanta percentuale nel
blocco occupa questo nuovo tipo di transazioni, infatti se le cose vengono fatte bene si
possono arrivare a toccare addirittura i 4MB come tetto massimo.

Ma tutti vi starete chiedendo il perché si è avuta la necessitá impostare un limite massimo.

Ipotizziamo che il limite sia a 1MB e che ogni 10 minuti abbiamo un blocco.

Facendo rapidamente 2 calcoli, equivalgono ogni giorno a 144MB e ogni settimana a 1GB.

Si può capisce quindi come la blockchain nel corso degli anni sia aumentata a livello di
memoria.

Ad oggi la blockchain cresce ad un ritmo tra i 50 e i 100GB circa l’anno, quindi per ora non si
è ancora incappati nel problema della molta memoria da gestire, ma già tra un paio di anni si
potrebbe avere bisogno di un hard disk esterno per conservarla.

Si potrebbe in futuro addirittura conservarla in piccoli pezzi piuttosto che tutta intera, ma è
un’ipotesi piuttosto opinabile anche perché il progresso tecnologico che si sta avendo con il
percorso degli anni ci permette di aumentare la memoria dei nostri smartphone o computer
più di quanto lo faccia la blockchain di Bitcoin.

L’altro motivo per cui è stato imposto un limite è perché se i blocchi sono troppo grandi, al di
là del problema di storage, ci sarebbe anche un problema di banda e latenza tra i miner.

63
Ovvero, ipotizziamo di avere dei blocchi da 1 GB e che il tempo per trasmetterlo sia di 3
minuti. Questo per il miner fa una grande differenza.

Considerando che per minare un blocco ci vogliono in media circa 10 minuti, se io ci mettessi
3 minuti solo per scaricare il blocco precedente è come aver perso 3 minuti che avrei potuto
utilizzare per minare il blocco successivo.

Dall’altro lato, colui che ha trovato l’ultimo blocco ha 3 minuti di vantaggio competitivo
rispetto a tutto il network che inizierà a lavorare al blocco successivo solo dopo aver
scaricato quest’ultimo in netto ritardo.

I blocchi troppo grandi oltre avere il problema di banda e di latenza, mettono anche in
difficoltà gli utilizzatori normali che non sono miner e che non hanno dei processori
sofisticati di ultima generazione per processare questa grande quantità di dati.

Ogni volta che ricevono un blocco infatti non è che lo accettano e basta, devono controllare
che sia conforme alle regole del protocollo, verificare le firme digitali, che nessuno spenda
più soldi del necessario e che il miner abbia effettuato correttamente la PoW.

Quindi se avessi troppi dati da verificare, il mio processore andrebbe in sovraccarico,


rallenterebbe nelle operazioni di verifica negandomi la possibilità di rimanere aggiornato e
allineato con quello che succede nel network.

Lo svantaggio però di avere dei blocchi più piccoli è quello che si possono fare meno
transazioni al secondo nel network, ad oggi però avendo Visa che ne processa circa 100k/s
nei momenti di picco è ancora impensabile che Bitcoin possa gestire l’economia globale e
competere con questi sistemi tradizionali ancora altamente efficienti.

Per questo problema di scalabilità sono state trovate varie soluzioni che vedremo più avanti,
per ora teniamo presente che c'è questo limite, ma ci sono dei metodi per mitigarlo.

Analizziamo nei dettagli ora la struttura del blocco.

Il blocco è diviso in due parti.

In una parte c'è il cosiddetto header del blocco, mentre nell’altra ci sono le transazioni
incluse.

L’header è l’oggetto della PoW, quindi l’input del processo di PoW rappresenta solo l’header
del blocco, non tutto il blocco.

Analizziamo tutti i campi all’interno dell’header, cercando di spiegarli:

- il primo campo di 4 byte contiene la versione che serve principalmente solo per
questioni di upgrade.

64
Quando si vuole fare un upgrade del protocollo, è facile che alcuni blocchi seguano
un set di regole leggermente diverso, questo numero di versione permette di capire
secondo quali regole è stato considerato valido.

- il secondo campo di 32 byte contiene l’hash del blocco precedente.

Riporta ovviamente al blocco prima in modo da capire la successione dei blocchi


senza neanche guardare il timestamp del blocco.

L’Hash viene calcolato usando l’algoritmo di hashing SHA 256[SHA 256()]


sviluppato dalla NSA (National Security Agency).

In questo caso, è buona norma che il calcolo venga effettuato praticamente due volte,
facendo prima l’hash del dato e poi l’hash dell’hash per ottenere una maggiore
sicurezza.

- il terzo campo sempre di 32 byte è il Merkle Root del Merkle Tree (ovvero la struttura
che ordina tutte le transazioni).

Con questo singolo campo è possibile verificare l’integrità di tutte le transazioni,


riuscendo a capire se sono state manomesse.

Per esempio se io volessi cancellare una transazione facendo finta che non sia mai
esistita o solo modificarne una, tutto il Merkle Root cambierebbe perché ogni
transazione ha sempre e solo un unico hash e se anche un piccolo dettaglio venisse
cambiato, cambierebbe completamente anche l’hash che lo compone.

In questo modo si scatenerebbe una reazione a catena che cambierebbe anche


l’hash finale dando un chiaro segnale di file modificato.

Così facendo si garantisce che non siano state fatte manipolazioni dopo la PoW, che
era stata fatta prendendo quel Merkle Root, infatti grazie al fatto che si scatenerebbe
una reazione a catena cambiando di conseguenza tutti gli hash, renderebbe il lavoro
svolto dei miner non valida e sicuramente questi ultimi non vorranno buttare tutte
l’energia usate per trovare l’hash corretto;

- il quarto campo da 4 byte è il timestamp.

Il timestamp è semplicemente la data che permette di capire quando è stato emesso


il blocco.

65
Bisogna sapere che il timestamp non è preciso al secondo o al minuto ma è stato
lasciato volutamente flessibile in base alla regola che non può essere più di due ore
nel futuro rispetto al blocco precedente e più di due ore nel passato rispetto alla
media di tempo dei 11 nodi a cui è collegato.

Questa misura di tempo non è precisissima perché non ci serve per dare l’ordine dei
blocchi ma l’ordine viene dato dalla catena di hash precedenti come detto sopra
presente in ogni blocco.

Potrebbe infatti capitare che il blocco 9 per esempio abbia timestamp alle ore 12,
mentre il blocco 10 presenti uno timestamp alle ore 11, l’importante è che rientri
nell’intervallo di tempo di tolleranza di un paio d’ore descritto dalla regola del
protocollo.

Tutto questo è stato architettato per porre rimedio alla latenza degli orologi nel
mondo, risolvendo il problema che un miner non accetti un blocco perché magari il
suo orologio è sballato di qualche minuto e non è preciso con tutto il resto del
network.

Non si voleva che il tempo fosse la causa di problemi sul network, quindi il timestamp
serve solo per calcolare in quanto tempo vengono prodotti i blocchi in larga scala.

Un’altra regola infatti è che ogni due settimane ovvero ogni 2016 blocchi (stimando
un blocco ogni 10 minuti in media) tutti i nodi del network controllino il tempo che
hanno impiegato a produrre questo numero di blocchi guardando il timestamp del
primo blocco e il timestamp del 2016esimo blocco.

La differenza di tempo tra questi due dovrebbe essere esattamente 14 giorni, se


invece è maggiore vorrà dire che ci hanno messo troppo tempo a produrre questi
blocchi e quindi tutto il processo di mining deve essere facilitato; mentre viceversa se
la differenza è minore di 14 giorni vuol dire che ci hanno messo troppo poco tempo
ad essere prodotti quindi tutto il processo deve essere aumentato di difficoltà.

Quindi, anche se ci fosse qualche imprecisione sull’ora come 1 ora al posto di 2,


oppure 3 ore al posto di 4, su 14 giorni non farebbe tutta questa differenza e di
conseguenza non sarebbe particolarmente rilevante.

Il timestamp serve solo a questo, a misurare quanto tempo ci si è messo a produrre


2016 blocchi e vedere se ci si è messo più o meno 14 giorni, in modo da capire e
regolare la difficoltà nel minare un blocco.

- nel quinto campo sempre di 4 byte chiamato nBits viene definito un valore che
convertito indica con quanti zero deve iniziare l’hash del blocco.

66
Questo valore viene calcolato ogni 2016 blocchi da tutti i nodi della rete.

Mettiamo caso che siano stati creati 2016 blocchi e tutti i nodi della rete fanno un
check periodico e informano il network del tempo trascorso nel minare questi blocchi.

Se viene fuori che ci si è messo 13 giorni, vuol dire che bisogna aumentare la
difficoltà di calcolo per arrivare a 14, mentre se si ottiene un valore superiore a 14,
bisogna abbassarla.

Quindi se prima il numero di zeri con cui doveva iniziare l’hash era di 15, adesso
verrà alzato a 16 zeri, in modo da complicare il processo per metterci più tempo a
trovare l’hash desiderato.

Se ci si mettesse poco tempo i bitcoin verranno generati troppo velocemente e


siccome tutto il modello di emissione è deterministico (visto che sappiamo da qui fino
alla fine dei giorni quanti bitcoin verranno emessi) il sistema crollerebbe, perché
magari in due giorni si minerebbero tutti i bitcoin che rimangono e non si
rispetterebbero più le regole che renderebbe Bitcoin deflazionistico.

Riassumendo, è importante che la quantità di bitcoin emessi sia definita perché la


quantità emessa è data da quanti blocchi vengono creati.

Siccome ogni nuovo blocco conferisce un determinato numero di bitcoin al miner,


non devono essere creati troppi blocchi altrimenti verrebbero minati di conseguenza
troppi bitcoin.

Questi campi (timestamp e nBits) servono per aggiustare la difficoltà in base al


tempo per produrre la quantitá costante di blocchi in un certo arco temporale.

- L’ultimo campo da 4 byte è il nonce. Purtroppo questo campo è stato pensato male
perché è troppo piccolo.

Generalmente si finiscono tutti i numeri possibili in questi 4 byte senza trovare il


blocco, quindi i miner devono andare a modificare altri elementi nell’header per
cercare di fare nuovi tentativi.

Siccome abbiamo detto che ogni singolo valore modificato cambia completamente
l’hash per riuscire a trovare l’hash giusto, una cosa che i miner possono modificare è
il tempo dato che è stato lasciato flessibile dandoci così più tentativi. Infatti i miner
per avere più tentativi possono non solo cambiare il timestamp di qualche secondo o
minuto ma possono cambiare anche l’ordine delle transazioni all’interno del Merkle
Tree.

67
Se poi tra tutte le varie combinazioni possibili i miner trovano un hash che inizia con
16 zeri piuttosto che con 15, quest’ultimo è sempre valido anche se si è fatto più
lavoro del necessario.

Nell’immagine possiamo vedere un riassunto delle caratteristiche appena descritte.

La PoW viene fatta su tutti questi dati che potenzialmente presentano un numero pressoché
infinito di combinazioni e variabili possibili.

É solo questione di tempo prima che i miner con i loro hardware riescano a trovarla.

Perché è importante aumentare la difficoltà in base a come si sta comportando il


network?

Perché inizialmente non c’era nessuno che usava e minava bitcoin, quindi bastavano 3
computer normali con un hashrate piuttosto basso per trovare l’hash giusto (per hashrate
s’intende il numero di hash totali calcolati al secondo mettendo la potenza computazionale
di tutti i miner insieme).

Torniamo con la mente agli albori di bitcoin e prendiamo ad esempio il fatto che il mio
computer riesca a fare mille tentativi al secondo per calcolare l’hash (1k/hash al secondo)

Complessivamente in tutto il network siamo solo in 3 a minare, quindi avendo tutti potenza
computazionale uguale l’hashrate arriva a 3k/hash per ogni secondo.

Quindi le regole del network inizialmente ci aveva messo nelle condizioni in cui la difficoltà
per creare i blocchi sia tale che con in media 1.800.000 (3.000*600 secondi ovvero 10
minuti) tentativi al secondo in 10 minuti si riesca a trovare l’hash concedendoci il diritto di
creare il blocco e aggiornare la blockchain.

68
Se poi entra un’altra persona con un altro computer che riesce anch’essa a fare 1k/hash al
secondo, tutto il procedimento, dopo 2016 blocchi, va aggiustato quindi non si dovranno più
fare 1.800.000 tentativi ma 2.400.000 per trovare un blocco.

In questo modo nel corso degli anni sono entrate sempre più persone con dispositivi sempre
più all’avanguardia che hanno aumentato man mano il numero di tentativi per trovare un
blocco valido.

Nell’aprile 2017 si aveva un hashrate totale di 1 exa hash al secondo, ovvero 1 miliardo di
miliardi di tentativi in media per trovare un blocco, mentre nel aprile 2019 dopo due anni
questa quantità è aumentata fino a 45 miliardi di miliardi di tentativi al secondo.

Questo fa capire perché c'è bisogno di aggiustare la difficoltà.

Se in questa finestra temporale di 2 anni in cui l’hashrate è aumentato così tanto non si
fosse aggiustata la difficoltà, sarebbe uscito un blocco ogni 30 secondi circa e questo
avrebbe rappresentato un grosso problema per l’intera supply.

Guardiamo un attimo il grafico qui sopra. Esso rappresenta l'aumento dell'hashrate nel corso
degli anni in particolar modo nel periodo che va da Aprile 2017 a Gennaio 2019.

Mentre il trend generale è rialzista, notiamo che intorno a fine anno 2018 c'è stato un crollo
in cui il prezzo di bitcoin è sceso molto.

É facile motivare questo crollo come molti miner che hanno spento i macchinari perché
mentre prima riuscivano a minare in profitto, ora a causa di un crollo del prezzo non
riuscivano più ad avere costi inferiori ai ricavi.

Dopo qualche mese, quando il prezzo ha cominciato a rialzarsi, hanno riacceso le macchine e
l’hashrate è continuato a salire.

69
La crescita dell’hashrate e quindi l’aumento di conseguenza della difficoltà di mining è dato
da due fattori:

- da quanto sia profittevole minare BTC. Quindi più sale il prezzo, più l’attività di
mining è profittevole;

- dal progresso tecnologico. Se esce una nuova generazione di hardware che riesce a
fare molti hash al secondo a parità di consumo elettrico rispetto a quelli precedenti e
magari anche a parità di prezzo di BTC, chiaramente l’hashrate sale.

Vediamo quindi che l’aggiornamento della difficoltà qui varia a scalini perché la difficoltà
varia e si aggiusta ogni 2016 blocchi (2 settimane se si conta ogni blocco come 10 minuti di
tempo per essere emesso) però segue con leggero ritardo quello che succede nell’hashrate.

Il fatto che la finestra temporale di aggiustamento sia di due settimane è una cosa utile
perché se la finestra fosse troppo corta, gli sbalzi momentanei di hashrate potrebbero
modificare la difficoltà in maniera esagerata.

Questi sbalzi possono anche essere registrati semplicemente quando più miner sono
fortunati e riescono a trovare un blocco in pochi secondi visto che si tratta di un’operazione
completamente random.

Ad ogni modo, è una scelta che in questo momento è molto difficile cambiare siccome non
sarebbe retrocompatibile modificarla e in più non porterebbe nessun vantaggio
particolarmente significativo e quindi molto probabilmente rimarrà così fino alla fine dei
tempi.

Abbiamo detto che un blocco esce in media ogni 10 minuti, ma il fatto che esca in media
ogni 10 minuti non vuol dire non escano necessariamente ogni 10 minuti.

70
I blocchi escono in maniera casuale, perché essendo un fenomeno randomico è tutto affidato
a quanta fortuna hanno i miner a trovare la combinazione giusta di variabili nel blocco che
dia l’hash con tot. zeri necessari avere il diritto di aggiungere un nuovo blocco.

La difficoltà è programmata in modo che in media esca un blocco ogni 10 minuti, ma se io


sono fortunato e trovo un hash valido subito in 30 secondi, comunque l’hash è valido e il
blocco viene propagato nella rete.

Potrebbe accadere infatti che tutti i miner siano sfortunati e nessuno riesce a trovare un
blocco valido, mettendoci anche 40 minuti come 1 ora.

Il fatto è che il procedimento non ha memoria dei tentativi passati, quindi anche se un miner
sta lavorando sul blocco da 10 minuti, sempre 10 minuti in media ci vorranno prima che esca
fuori un blocco.

Questo non vuol dire che se non trovi niente per 1 ora deve uscire a momenti anzi, potrebbe
accadere che per 2 ore si trovi sempre in 10 minuti e nelle successive 5 non si trovi nessun
blocco.

71
Tipologie di attacco alla rete
1. Selfish mining: è un attacco all’integrità del network in voga agli inizi di Bitcoin
che era molto difficile da rilevare.

Accade quando un miner trova un blocco e non lo comunica al resto del network, quindi il
(selfish) miner inizia subito a minare il blocco successivo mentre il resto del network sta
ancora lavorando sul blocco precedente che lui ha già trovato.

Se qualcun altro trova il blocco vecchio, il selfish miner lo comunica subito, assicurandosi che
il suo si propaghi più velocemente.

Questo è un vantaggio competitivo molto grande.

Se si è un grosso miner che possiede ipotizziamo il 30% dell’hashrate del network, vorrà
dire che 1 volta su 3 troverà il blocco, avendo l’⅓ delle volte un vantaggio rispetto a tutti gli
altri miner in termini di tempo.

Questo è un attacco che non funziona più tanto bene, perché per funzionare il miner
dovrebbe essere collegato alla rete meglio degli altri per riuscire a propagare il suo blocco
prima di tutti gli altri e ad oggi i miner, hanno tutti interesse ad essere collegati molto bene
per comunicare in maniera veloce con tutto il network.

2. Attacco del 51%

Questo attacco consiste quando un miner o delle mining pool hanno il 51% dell’hashrate
totale del network, controllando di fatto il network snaturalizzando il concetto di
decentralizzazione.

Avendo il controllo della rete questi miner possono divulgare nella rete blocchi falsi e invalidi
con lo scopo di attuare operazioni fraudolente come quelle di spendere la stessa somma due
volte (double spending). Questi blocchi se validati possono causare grandi perdite di fondi e
danni inimmaginabili.

Tutte le criptovalute sfruttano il concetto di ledger distribuito proprio per rendere il


sistema trustless così da evitare che un solo ente centrale possa controllare le transazioni
e il network.

L’algoritmo di PoW è stato studiato apposta per rendere questo tipo di attacco molto
difficile perché sarebbe come andare ad eliminare e distruggere il patrimonio che si ha o i
macchinari che si sono acquistati.

Nella maggior parte dei casi, tali tipi di attacchi vengono eseguiti sulle criptovalute più
recenti, in quanto non è necessario possedere potenze di mining estremamente elevate.
Ad oggi, infatti, eseguire un attacco del 51% sulla blockchain di Bitcoin ed Ethereum,

72
richiederebbe di buttare troppe risorse, risultando sconveniente e quindi praticamente
impossibile.

Introduciamo il concetto di mining pool che prima abbiamo nominato.

Ad oggi per un miner piccolo che detiene lo 0,1% dell’hashrate totale è statisticamente
molto difficile che ci metta in media 10 minuti per trovare un blocco rispetto ad un miner che
possiede il 20-30% del hashrate totale.

Un grosso problema per i miner è che si hanno costi fissi a causa delle spese di energia
elettrica. Mentre questa è costante i ricavi possono variare nel tempo.

Se in media un piccolo miner stima di trovare un blocco al mese, può essere che il primo
mese sia fortunato e questa stima si avveri e il guadagno permetta di coprire tutti i suoi
costi, ma nel caso si dovesse essere sfortunati e per 6 mesi non si dovesse trovare nulla, il
miner dovrebbe pagare per 6 mesi le bollette senza aver ottenuto nessun ricavo.

Per risolvere questo problema e favorire anche i pesci piccoli, alcuni miner si sono messi
insieme collaborando tra di loro creando una così detta mining pool.

In questo modo unendo le loro potenze di calcolo hanno più possibilità di trovare un blocco
anche se una volta riusciti a creare il blocco dovranno condividere il profitto in base alla
potenza di calcolo che ogni miner ha messo a disposizione.

In questo modo ogni volta che la mia pool trova il blocco, avendo il 20% dell’hashrate si
presume almeno 1 volta ogni ora di avere un po’ di ricavi in base a quanto si ha contribuito.

Facciamo un esempio.

Mettiamo caso che ci sia una mining pool composta da 20 miner, ognuno con 1% del
hashrate totale, che riesce ad avere un ricavo ogni 50 minuti. Il guadagno per ogni singolo
miner sarà paragonabile a 1/20 del reward del blocco indistintamente da chi l’ha trovato.

La mining pool porta però vari problemi:

- Se però colui che trova l’hash, crea il blocco tenendosi i soldi senza comunicarlo agli
altri cosa succede?
- Oppure, in una pool, come faccio a sapere la percentuale reale di quanto ogni miner
contribuisce in h/s dal momento in cui non posso andare a casa di tutti e controllare?
- Oppure ancora, come faccio ad assicurarmi che gli ASIC dei miner siano realmente
accesi non stiano svolgendo altre operazioni quando dichiarano di contribuire?

Le mining pool funzionano nel seguente modo:

- vi è un pool operator (di solito un altro miner) a cui tutti fanno riferimento e che
gestisce il tutto;
- tutti quelli che partecipano alla mining pool minando blocchi devono indirizzare la
issuing transaction o la Coinbase del reward alla chiave pubblica del pool operator

73
invece che inviarla a sé stessi. In questo modo tutti mandano i soldi al pool operator
e poi starà a lui spedirli agli altri;

Ovviamente questo sistema implica che venga concessa della fiducia al pool operator perché
potrebbe accadere che il malintenzionato di turno rubi i soldi di tutti. Va detto però che una
volta che il pool operator ha fatto il furbo prendendosi la ricompensa senza condividerla con
tutti gli altri, i partecipanti lo abbandoneranno non facendo più parte cosí di una mining pool
di sua proprietà. Infatti anche qui, si é creato un sistema in cui ci si guadagna di più nel lungo
periodo facendo gli onesti rispetto a fare il furbo una volta sola.

Definito ciò, rimane il problema in cui il pool operator non sa effettivamente quanto sta
contribuendo realmente ogni partecipante, infatti per alcuni miner facendo due calcoli si
potrebbe capire in base a quanto spesso riesce a validare un blocco la sua potenza di calcolo
ma se mettiamo caso che nell’arco temporale di 3 settimane il miner piccolo è stato
sfortunato, come fa il pool operator a capire quanto hashrate abbia?

Aspetta 6 mesi prima di riuscire a fare una media grazie agli intervalli di 3 settimane in cui è
riuscito a capire più o meno quanta percentuale totale effettivamente il piccolo miner ha
messo a disposizione?

Di sicuro è impensabile che si aspettino queste tempistiche per capire quanta


remunerazione concedere, per questo molto spesso si decide di assegnare come compito
quello di trovare delle soluzioni parziali.

Per soluzioni parziali s’intende quello di trovare degli hash che abbiano una difficoltà minore
per capire in base a quanto spesso vengono trovati quanta percentuale di calcolo
computazionale si ha a disposizione.

Ipotizziamo che un blocco valido oggi debba iniziare con 15 zeri.

Siccome lui è un miner piccolo e potrebbe impiegarci mesi per trovare un hash con 15 zeri,
gli chiedo di darmi tutti i blocchi che iniziano con 5 zeri in modo che possa vedere che quel
miner realmente stia facendo qualcosa.

Grazie a questa alternativa i miner più piccoli riescono a mandare soluzioni più
frequentemente ( per esempio ogni mezz’ora) e il pool operator raccoglie abbastanza dati e
riesce a stimare più o meno quanto un miner sta contribuendo, capendo quanto deve
prendere di reward il piccolo miner.

Se si va in siti come questo si può vedere benissimo non la distribuzione dell’hashrate, ma la


distribuzione dei miner o delle mining pool.

74
Se un individuo ha il 19% dell’hashrate questo non vuol dire che è da solo, ma sicuramente
sarà un insieme di individui che complessivamente ha il 19%.

Se il pool operator inizia a creare blocchi invalidi, facendo double spending con le transazioni
o cercare di manipolare il mining, i miner all’interno della pool per salvaguardare Bitcoin
possono andarsene in qualsiasi momento.

Per quanto non sia una cosa positiva che così pochi pool operator insieme abbiano più del
50% del hashrate (in quanto se si mettessero d’accordo potrebbero fare un attacco) i miner
possono tranquillamente staccarsi e decidere di spostarsi in pool che si comportano in
maniera più onesta.

75
ALTRE TIPOLOGIE DI NETWORK
ALTERNATIVE A BITCOIN
Esistono altri tipi di Network Bitcoin paralleli e alternativi:

- la Testnet, è un network parallelo più semplice che ha l’obiettivo di fare da test con
delle regole leggermente diverse ma molto simili a Bitcoin in cui però non girano
soldi veri.

È più una zona per sviluppatori dove si fanno dei test su cosa potrebbe essere
implementato per migliore la rete.

Qui se per 20 minuti non si trova un blocco la difficoltà si azzera rendendo


praticamente possibile a chiunque creare un blocco.

Questo perché essendo che sulla testnet non girano soldi veri, chi fa mining lo fa
casomai per testare hardware e non per ottenere del profitto.

Quindi se la gente spegne le macchine perché magari ha finito di fare i test necessari,
nessuno minerebbe più e non ci sarebbero più blocchi.

Grazie a questo sistema si garantisce, che senza incentivi economici ci sia quasi
sempre qualcuno che mini dei blocchi a scopo di test;

- Regtest invece è un’altra rete di test con soldi finti, definita per certi versi una
blockchain ‘’privata’’ di Bitcoin che gira in locale sul proprio computer.

Permette di creare blocchi, transazioni, indirizzi, notarizzare file e quant’altro sempre


a scopo di test.

Molto utile perché per scopi didattici non bisogna nemmeno aspettare che si mini il
blocco, basta lanciare un comando e il blocco viene creato all’istante.

76
TRANSAZIONI BITCOIN
Abbiamo visto che ogni transazione ha n input e n output.

Negli input si indica di fatto cosa stiamo spendendo e si forniscono le informazioni generali
per poter spendere, come la firma necessaria per movimentare il denaro anche se non ne
vediamo la quantità.

Nell’output invece ci viene detto chi è il destinatario e qual è l’ammontare della transazione
che stiamo inviando.

Ipotizziamo semplificando che ci siano tre transazioni tutte sequenziali in cui:

1. nella prima Alice invia una transazione K (K per dire transaction ID, ovvero l’hash che
identifica la transazione) con 5 input e 2 output in cui si inviano 3 BTC a Bob e 1 ad
Alice;

2. nella seconda abbiamo una transazione L con un input e un output in cui Bob invia a
Carol 3 BTC;

3. mentre nella terza transazione M abbiamo due input e due output in cui Carol invia 4
BTC a Eve e uno lo invia a se stessa.

La seconda transazione è un caso molto semplice perché ci sono 3 BTC che vanno
interamente da un input ad un output.

Ricordiamo che l’output della transazione K diventa l’input della transazione L e cosí via.

Noi stiamo spendendo i soldi che prima erano nella transazione K, precisamente nel primo
output che si indica con indice 0.

77
Ora nel primo output delle transazione K c’erano 3 BTC, quindi si stanno spendendo 3 BTC.

In questo caso, visto che i soldi sono stati mandati a Bob, per poterli spendere dobbiamo
avere la firma di Bob.

Tutte queste informazioni sulle condizioni che ci permettono di spendere sono contenute
nell’input, infatti possiamo intenderlo come il campo che ci dice cosa stiamo spendendo
dandoci inoltre tutte le informazioni necessarie per movimentare quei soldi.

Nel campo output invece abbiamo il destinatario della somma contenuta nell’input, quindi in
questo caso i 3 BTC di Bob che saranno mandati a Carol.

Negli input non c’è mai l’ammontare di BTC inviato, perché ogni input rimanda ad un output
in cui viene descritto l’amount che contiene.

Ora non lo possiamo vedere perché dovremmo avere le transazioni precedenti, ma ognuna
di queste avrà un ammontare di Bitcoin assegnato.

(Man mano che si andrá avanti con la spiegazione tranquilli che il concetto diventerà più
chiaro.)

Quello che sappiamo è che la somma di tutti questi totali (input) di BTC è 4.

Perché siccome il totale dell’output è 4 anche il totale degli input, ovvero di ció che si invia,
sarà sempre 4.

In realtà, a causa delle fee che vengono date al miner, gli output saranno leggermente minori
dell’input ma per semplicitá teniamo il fatto che gli input siano uguali agli output.

Dobbiamo pensare alle transazioni bitcoin come un sistema di banconote.

Bitcoin si discosta completamente dal sistema bancario anche se nel wallet viene mostrato il
totale per semplicità.

Con questo sistema non si ha un ammontare totale, ma si hanno vari pezzetti da 1 BTC, 0,8
BTC, 0,1 BTC, 10 BTC che sono come delle banconote indivisibili.

I pezzetti di BTC dipendono dalla quantità in cui si sono ricevuti o comprati. Per esempio se
si é comprato da un exchange 10 BTC si avrà un input da 10, alla stessa stregua una
caffetteria avrá sicuramente molti input piccolissimi da 0,001 BTC ad esempio perché sarà
l’equivalente di un caffè. Una volta che la caffetteria dovrà pagare qualcuno dovrà mettere
insieme tutti questi input da 0,001 per inviare la somma desiderata.

Tornando all’esempio fatto inizialmente e guardando gli input di tutte le transazioni, vediamo
che la somma tra tutti è uguale a 4, di cui 3 li vogliamo mandare a Bob e 1 ad Alice.

Si puó notare tra gli output che Alice si sta mandando un BTC a sé stessa. Ma perché?

78
Semplicemente ragionando per banconote inseparabili, lei voleva mandare 3 BTC a Bob, ma
avendo l’ammontare frammentato in più output diversi, questi ultimi sono stati sommati e
l’ammontare che ne è venuto fuori era maggiore di quello che lei voleva inviare. Quindi si è
spedita a sé stessa il resto della somma degli output.

Tutto ciò è successo perché aveva tutti gli output frammentati in pezzi piccoli da 2 BTC, 0,8
BTC e 1,2 BTC, riuscendo a comporre una transazione solamente da 4 BTC piuttosto che
una da 3.

Perciò quando si hanno gli input maggiori di quanto vuole spedire alla controparte, quello
che si fa è mandare il resto a sé stessi.

Un po’ come se io stessi pagando un panino di 6 euro con una banconota da 10, riceverò un
resto di 4 euro.

Alice qui, stava pagando Bob 3 BTC con delle banconote che insieme facevano 4 BTC,
quindi riceve 1 BTC di resto.

Più input e output avrà la transazione e più sarà costosa in termini di byte e spazio in primo
luogo al miner che la dovrà inserire, perché dovrà inserire più dati.

Infatti magari con quello spazio ci potrebbe far stare più transazioni, prendendo più fee di
quanto prenda da te con una occupando tutto quello spazio.

Completiamo ulteriormente il concetto di fee spiegando che dipende da quanto è pesante la


transazione in termini di byte e non dalla somma che si vuole inviare (completamente
l’opposto al concetto di fee delle banche per un bonifico).

Ovviamente non sono obbligato a inserire nell’input tutti gli output che ho speso se prima
riesco a ad arrivare alla cifra che voglio inviare con meno input.

È importante specificare dove vanno tutti i soldi che si stanno spendendo includendo anche
il resto, perché se non viene specificato, la somma lasciata senza destinatario la prende il
miner.

La composizione dei vari pezzi e le determinazione del resto è comunque qualcosa che
fanno in automatico i vari software, non è un’operazione che dobbiamo fare manualmente
quindi non dobbiamo preoccuparci.

Torniamo all’esempio.

Nell’ultima transazione dell’immagine Carol vuole mandare 4 BTC ad Eve, avendo ricevuto 3
BTC da Bob e altri 2 BTC precedentemente.

Ma come facciamo a sapere che ne aveva altri 2?

79
Perché in totale ci sono due output, uno che invia 4 BTC a Eve e uno in cui invia 1 BTC a sé
stessa.

Se avesse avuto un pezzetto da 1 BTC, non avrebbe avuto bisogno di inviarsi il resto di uno,
quindi per arrivare a 4 BTC ha dovuto usare obbligatoriamente un altro input da 2.

Scendiamo un po’ più nel dettaglio, perché fino ad ora abbiamo visto una semplificazione di
ció che accade realmente.

In realtà nella prima transazione il primo output non definisce a chi sto inviando i soldi, ma
quali sono le condizioni di spesa di questi 3 BTC da ora in poi.

Praticamente si sta dicendo che per spendere la transazione con quei 3 BTC bisogna fornire
una firma relativa a questa chiave pubblica che io considero la chiave di Bob. Ricordiamo
sempre che io dico Bob perché so che è sua, ma sulla blockchain non c'è nessun riferimento
che riconduce a lui, vi è solo la condizione di una precisa stringa alfanumerica che può
sbloccare il pagamento.

Esempio

Outputs = nel campo scriptPubKey: bisogna fornire la firma


(asf7690d09ca309aefm342m12b12nb1) associata a questa chiave pubblica
nszmenab324b2vn1mvn123.

(specificano le condizioni che ti danno la possibilitá di spendere la transazione “solo il


proprietario della chiave privata il cui hash combacia con la chiave pubblica k1 può
spendere”).

Inputs = nel campo scriptSig quindi ci sará: nszmenab324b2vn1mvn123 e


asf7690d09ca309aefm342m12b12nb1 (si devono inserire i dati richiesti nelle condizioni di
spesa espresse negli output: in questo caso solo la chiave pubblica k2 e la firma dell’hash
della transazione con la chiave privata k2).

Altri esempi:

Questo potrebbe essere il caso di una coppia, in cui per far partire la transazione si
necessitano due firme.

80
Questo invece è il caso in cui vi è una societá di 4 soci in cui basta che siano d’accordo 2 dei
4 soci per procedere al pagamento.

Oppure il caso di una transazione in cui due genitori vogliono comprare il regalo al figlio e
magari nell’indecisione di non saper cosa scegliere danno a lui la possibilità di comprare ciò
che vuole dopo che ha compiuto gli anni, rendendo la somma spendibile anche da lui dopo
un tot. tempo che si determina guardando il timestamp del blocco.

Una delle condizioni più comuni specificata nell’output sarà quella in cui invece di chiedere la
chiave pubblica xyz a cui appartiene la chiave privata che sblocca il pagamento, ci venga
chiesto l’hash della chiave pubblica a cui appartiene la chiave privata, complicando e
rendendo più sicuro il processo. Qui si inviano i soldi solo all’hash di una chiave pubblica.

Questo è di fatto il modo più comune in cui si fanno le transazioni Bitcoin.

Una best practice che migliora la sicurezza è quella di non esporre le chiavi pubbliche finché
non è necessario.

Nelle condizioni di spesa viene detto che solo chi possiede la chiave privata il cui hash della
chiave pubblica coincide con la stringa alfanumerica ( nell’immagine) puó firmare la
transazione.

81
In questo caso non basta la firma come nelle altre volte, perché dalla firma non si capisce la
chiave pubblica. Infatti con solamente l’hash della chiave pubblica e la firma non avrei
abbastanza informazioni per capire se le cose combaciano. Quello che devo fornire è sia la
chiave pubblica che la firma.

Per verificare che tutto corrisponda si prende la chiave pubblica calcolando l’integrità
dell’input grazie al campo scriptSig che vedremo tra poco.

Poi bisogna calcolare l’hash della chiave pubblica vedendo se combacia con la stringa
alfanumerica per capire se è quella corretta.

Successivamente si guarda se la firma digitale data dalla chiave privata corrisponde con la
chiave pubblica e se tutto combacia allora la transazione è valida.

Questo è il tipo di transazione più comune che c’è su Bitcoin, dovuto al fatto che se si
trovassero delle vulnerabilità sul meccanismo chiave pubblica/chiave privata con questo
sistema nessuno potrebbe rubare i soldi bloccati nel wallet, ma al massimo si potrebbero
rubare i soldi che sono in transito in quel momento con quella transazione, perché i soldi
vengono mandati all’hash della chiave pubblica.

N.B: le condizioni di spesa possono variare nel senso che non sempre devi fornire le stesse
ma ci possono essere limiti di tempo, oppure più chiavi private e hash da inserire.

Sono tutti fattori che influenzano il peso della transazione come abbiamo detto prima e
quindi il miner valuterà se inserirla o meno nel blocco a seconda dello spazio che ha a
disposizione. Con tutte queste condizioni iniziamo a introdurre il concetto di smart contract,
che vedremo più avanti, in cui con condizioni più o meno complesse si possono spendere dei
soldi anche avendo i fondi bloccati su blockchain.

82
STRUTTURA DELLE
TRANSAZIONI BITCOIN
Ora che abbiamo visto le transazioni Bitcoin, vediamo più nel dettaglio come appare una
transazione nella blockchain cercando di capire bene tutta la codifica che c'è dietro,
sperando che i piccoli tasselli che vi ho dato finora inizino a ricongiungersi.

Analizziamo pezzo per pezzo per capire cosa vogliono dire tutti questi numeri strani.

Prima di tutto abbiamo un campo iniziale version di 4 byte che indica il numero di versione
simile a quello che abbiamo visto quando abbiamo analizzato i blocchi.

La versione indica che set di regole sta seguendo la transazione.

Qui essendoci la versione 2, essa segue regole differenti dalla versione 1, quindi chi controlla
che nella transazione vada tutto bene sa su che regole basarsi per considerare il blocco
valido.

83
Successivamente troviamo il campo input che indica quanti input troveremo lì dentro (in
questo caso 2).

Il primo input con indice 0, ci dice cosa stiamo spendendo e quali dati soddisferanno le
condizioni di spesa.

Il cosa si sta spendendo è definito in due modi:

1. tramite txid (transaction id) ovvero l’id della transazione che stiamo spendendo, che
non è altro che l’hash della transazione che stiamo spendendo (se vi ricordate quello
che prima era transazione K, L o M);

2. questa transazione può avere n output. Ad esempio una persona che ha pagato più
fornitori può averne uno da 1 BTC, uno da 5 BTC, uno da 2 BTC e così via.

Di tutti gli output presenti il numero in questione ci indica quale vogliamo spendere e
lo vediamo nel campo output number, in questo caso è 0, il primo output.

Già con queste informazioni si può andare nella blockchain e capire quali erano le condizioni
di spesa legate a questo output e vedere quanti soldi c’erano sopra.

Ora dobbiamo fornire delle condizioni di spesa legate a questo output.

Le condizioni di spesa di questo output potrebbero essere che si possa spendere la somma
solo fornendo la chiave pubblica il cui hash è 234112419nvw98vds98b7sd88 per esempio.

Il campo in cui vengono descritte le condizioni di spesa di cui abbiamo bisogno per poter
spendere la somma della transazione è lo scriptSig.

Inoltre viene anche detto che lo scriptSig che fornisco al miner è lungo 106 byte.

84
Viene specificato perché così il miner sa fino a che punto dovrà leggere fino ai prossimi 106
byte per interpretare le condizioni di spesa nella stringa trovando quello che cerca.

Generalmente si ha una chiave pubblica ( perché nell’output è espresso l’hash della chiave
pubblica) per controllare che l’hash sia lo stesso dell’output e la firma digitale legata a quella
transazione.

L’ultimo campo che vediamo è quello sequence che per ora ignoriamo perché servirà in
alcune funzionalità di Smart Contract.

Prima abbiamo visto nel campo number che ci sono due input, quindi dopo aver visto il
primo, controlliamo il secondo.

Se ci fosse 01 sappiamo che una volta controllato il primo abbiamo finito, invece in questo
caso sappiamo che i codici dopo sono riferiti al secondo input.

Procediamo quindi come abbiamo fatto precedentemente.

Vediamo che stiamo spendendo l’input 1 della transazione con quel identificativo.

Come detto prima se si vuole scoprire quanti BTC movimenta l’input si inserisce
l’identificativo della transazione nei vari siti come questo riuscendo a vedere l’ammontare.

Vediamo che lo scriptSig ci dice quali sono le condizioni di spesa che ti fanno
movimentare/spende i soldi, inoltre in questo caso è lungo 107 byte rispetto ai 106 di prima,
questo nonostante usino lo stesso tipo di condizioni di spesa, dipende dal fatto che le firme
digitali possono variare leggermente in lunghezza ( parte rossa).

Ora passiamo a definire dove vogliamo mandare questi soldi, quindi al campo output.

85
Nel campo output come nel campo input, la prima cosa che vediamo è quanti output
aspettarci.

Anche qui come prima sono 2, quindi mentre prima stava a significare che sto usando i soldi
che mi sono stati inviati da due transazioni differenti ora stiamo mandando noi due
pagamenti a due persone differenti essendoci 2 output.

La prima sarà la persona a cui stiamo effettivamente mandando i soldi, mentre l’altra saremo
noi stessi a cui stiamo mandando il resto che ci avanza dagli input superando l’importo che
dobbiamo inviare.

Nel primo output nel campo amount viene indicato quanti BTC vogliamo inviare espresso in
satoshi (l’unità minima di BTC comparabile per significato a quello che intendiamo ora per
centesimo, solo che al posto di avere 1 centesimo di euro abbiamo un miliardesimo di
bitcoin) ovvero l’ottava cifra dopo la virgola di un bitcoin.

La lunghezza viene espressa nel campo script pubkey length, in questo caso diciamo al
miner di considerare i prossimi 25 byte come il campo in cui gli indico non tanto a chi
mandare i soldi, ma che cosa bisogna fare per spendere questi soldi.

Ovvero le condizioni necessarie per spendere.

Una volta definito quanti soldi vogliamo inviare, indichiamo a chi li vogliamo inviare espresso
nel campo script pubkey.

In questo campo con quella codifica e quei comandi che vedremo piú avanti, si sta dicendo
che per riuscire a spendere la transazione è necessaria la firma della chiave pubblica di cui
hash è la stringa nell’immagine.

Vediamo anche il secondo output.

86
Anche qui nel primo campo vediamo quanti soldi vogliamo inviare (6172000 satoshi).

Qui non sappiamo se sono i soldi che sta mandando alla controparte o se li sta inviando a sé
stesso sotto forma di resto perché non è detto che il primo output sia il pagamento e che il
secondo sia il resto, l’ordine è assolutamente casuale.

Abbiamo di nuovo la lunghezza in byte (25) dello script pubkey in cui verranno espresse le
condizioni di spesa per questi 6172000 satoshi.

Quindi i prossimi 25 byte saranno intesi come codifica per le condizioni di spesa in cui si
richiede la firma della chiave pubblica di cui l’hash è la stringa nell’immagine sopra.

Dopo i due output, abbiamo l’ultimo campo locktime utilizzato spesso con gli Smart
Contract.

Questo campo non sempre viene usato e serve solo per vincolare quando questa
transazione può entrare in un blocco.

Ricollegandoci all’esempio dei 3 mesi a pagina 61, è proprio qui che viene indicato dopo
quanto tempo può essere inclusa in un blocco la transazione.

87
Naturalmente anche il tempo ha una sua codifica, nella blockchain non si ragiona per
secondi ma per blocchi trascorsi (siccome viene calcolato che 1 blocco esce ogni 10 minuti
in media).

In base a questo si inserisce il numero del blocco dopo il quale si vuole rendere la somma
spendibile per capire dopo quanto potrà essere inclusa in un blocco.

Se viene inclusa in un blocco precedente al blocco prestabilito, tutto il blocco viene


annullato.

Tutta questa codifica serve per capire a livello logico come funziona Bitcoin ( non
preoccupatevi è il software del wallet che effettua tutti questi procedimenti).

Ovviamente dobbiamo riporre molta attenzione quando inviamo i soldi, perché dovremo
inserire l’indirizzo preciso della persona a cui vogliamo inviare i BTC.

Se sbagliamo una lettera potrebbe succedere che inviamo i soldi ad un indirizzo invalido
come succede quando inviamo soldi con la carta di credito a un indirizzo non esistente
oppure potrebbe essere che inviamo dei BTC a qualcun’altro se l’indirizzo invece è valido ed
esiste.

88
BITCOIN ADDRESS
Un indirizzo bitcoin è quello che usiamo per identificare un destinatario e possiamo
paragonarlo più comunemente all’IBAN che viene usato per ricevere i pagamenti.

Per creare questi indirizzi il software del wallet al momento della configurazione esegue
varie operazioni.

- Prima di tutto viene data una chiave privata dalla quale si deriva quella pubblica;
- La chiave pubblica poi si comprime passando da 65 byte a 33 (si ‘’accorcia’’ in modo
che occupi meno byte senza la perdita di informazioni) e da essa si calcola l’hash;
- All’hash della chiave pubblica aggiungiamo due pezzetti, davanti inseriamo x00 (la
versione delle regole che devono seguire) e alla fine si inseriscono 4 bytes di
checksum, ovvero un meccanismo che controlla che sia tutto giusto. Praticamente
dall’hash della chiave pubblica si prendono i primi 4 byte, così se si sbaglia a digitare
un pezzetto della prima parte dell’indirizzo non corrisponderebbe più con la parte
dopo che dovrebbe essere l’hash della parte prima e quindi comparirebbe un errore;
- tutto il ricavato viene criptato nel linguaggio Base58 (un linguaggio di
programmazione che usa lettere maiuscole, minuscole e numeri escludendo i
caratteri visivamente simili tra di loro che possono ingannare come, O e 0, I[i
maiuscola] e l[l minuscola] per cercare di mitigare possibili errori umani).

Gli indirizzi Bitcoin generalmente iniziano o con 1 o con 3.

89
Quelli che iniziano con 1, i piú comuni, sono indirizzi che mandano soldi all’hash di una
chiave pubblica.

Nel momento in cui nel wallet inseriamo l’indirizzo destinatario (chiave pubblica)
1BvBMSEYstWetqTFn5Au4m4GFg7xJaNVN2 viene creata una transazione in cui si
mandano i soldi all’hash di questa chiave pubblica tramite tutta una serie di comandi che
esegue il computer come nell’immagine sopra: x00|hash
160(1BvBMSEYstWetqTFn5Au4m4GFg7xJaNVN2)|checksum 4 bytes.

Una volta che gli viene dato l’hash, lo estrae e attorno ad esso costruisce i vari pezzi che
servono a esprimere la volontà di pagare verso l’hash di questa chiave pubblica.

Quelli che iniziano con 3 invece sono quelli usati per gli smart contract perché hanno
condizioni più complesse come inviarli a una persona dopo un periodo di tempo, inviarle a
più persone e così via.

Queste condizioni più complesse vengono espresse in uno script che può essere anche
abbastanza lungo (il modo in cui il computer identifica tutte le varie condizioni che
desideriamo).

Successivamente si fa l’hash dello script e si fa la stessa cosa che si è fatta con l’altro tipo di
indirizzo, solo che si mette un numero di versione diverso per far capire che va interpretato
in un modo differente.

Infine si aggiunge il checksum e otteniamo l’indirizzo.

Quando nel mio wallet inserisco questo tipo di indirizzo e il computer vede che inizia con 3,
capisce subito che lo deve interpretare come uno uno smart contract e potrebbe avere
all’interno condizioni molto complesse.

Infatti la transazione si costruirà in modo diverso.

90
In più vi è anche un nuovo sistema di indirizzi chiamato SegWit che vedremo più avanti.

Gli indirizzi sono l’unica cosa che gli utenti vedono, tutti i procedimenti di hash, codificazione
Base58 gli utenti non riescono a vederla.

91
Alcune considerazioni riguardo i
singoli usi degli indirizzi
Noi siamo abituati che tutti i pagamenti ci arrivino sullo stesso IBAN bancario anche perché
ne abbiamo uno per ogni carta intestata a noi.

Potenzialmente con Bitcoin possiamo intestarci qualsiasi pagamento, però non è


consigliabile farlo per due motivi:

1. Una volta che hai speso soldi da quell’indirizzo la chiave pubblica diventa visibile;
2. La differenza con i bonifici bancari è che la blockchain è pubblica e visibile a tutti, se
mi faccio pagare sempre allo stesso indirizzo, una volta che ricevo il pagamento, la
persona che invia i soldi viene a conoscenza del mio indirizzo e da quel momento
potrà sbirciare nella blockchain tutti i BTC in entrata e in uscita correlati all’indirizzo,
eliminando di fatto il concetto di privacy;

Una best practice sarebbe inviare a ogni persona un indirizzo diverso per ogni pagamento in
modo che tutti abbiano un indirizzo diverso dall’altro, così anche se qualcuno volesse
controllare tutte le transazioni associate a quell’indirizzo vedrebbe solo quella singola
transazione.

Ormai tutti i wallet ogni volta che si vuole ricevere un pagamento creano un nuovo indirizzo
per evitare appunto questa problematica.

Per esempio, Ledger Nano, Bitcoin Wallet ed Electrum lo fanno in automatico.

Questa feature è disponibile per poche criptovalute. Tutti i wallet di Bitcoin ormai lo fanno,
mentre altre criptovalute come Ethereum ad esempio no, poiché hanno un sistema diverso.

Cosa importantissima che ripeteró fino allo sfinimento è fare sempre i backup delle chiavi
private.

Queste chiavi private vengono generate dal software in maniera automatica in locale in una
cartella nominata wallet.dat, però se si rompe il computer chiaramente si rimane senza
chiavi private e non si può più spostare i soldi.

Il problema però é che ogni indirizzo viene generato da una chiave privata diversa.

Quindi in passato se si faceva il backup in un dato momento, nel momento in cui si creavano
dei nuovi indirizzi con delle nuove chiavi private, il backup fatto precedentemente non era
più valido per gli indirizzi creati successivamente.

Infatti agli inizi di Bitcoin se si creava un indirizzo nuovo e si voleva salvare la chiave privata
bisognava ogni volta fare un nuovo backup per paura di non perdere i dati.

92
Per risolvere questo problema avendo tutti gli indirizzi in un solo backup anche quando creo
nuovi indirizzi in un momento successivo si sono introdotti gli ‘’Hierarchical deterministic
wallets’’ ovvero i wallet gerarchici deterministici.

Questi tipi di wallet salvano solo una chiave privata chiamata Seed, essendo così in grado
attraverso degli algoritmi di rigenerare tutte le chiavi private.

Esempio

Oggi creo il mio wallet e genero due indirizzi che sono a loro volta creati dalle prime due
chiavi private.

Dopo aver svolto varie operazioni come aver comprato BTC da un exchange e aver inviato
dei soldi ad un amico decido di fare il backup perché ora che ho dei soldi, voglio che stiano al
sicuro.

Così faccio il backup delle chiavi in diversi modi, con il primo metodo scrivo il seed a mano su
un pezzo di carta mentre con il secondo decido di creare un file e copiarlo nella chiavetta.

Domani però ricevo altri soldi su altri nuovi indirizzi che ho creato.

Ora il fatto è che quando ho fatto il backup, non ho salvato solo le prime due chiavi ma mi
sono salvato il Seed che le ha generate.

Quindi essendo il Seed in grado di rigenerare attraverso degli algoritmi standard tutte le
chiavi private appartenenti al portafoglio, avrò salvate anche quelle che non avevo ancora
creato quando mi ero salvato il Seed.

93
Approfondiamo la Seed Phrase
detta anche Mnemonic Seed
Il Seed del wallet, ovvero la chiave privata master da cui vengono create tutte le altre chiavi
private (figlie), non è altro che una stringa proveniente da un insieme di numeri randomici
molto lunghi.

Avendo questo numero randomico molto lungo è facile distrarsi e commettere un errore nel
momento in cui si trascrive in un pezzo di carta.

Infatti se in fase di backup sbagliassi a invertire due lettere, confondendo lo 0 con la O


oppure se decidessi di impararlo a memoria ma lo dimenticassi perderei per sempre la
possibilità di accedere al mio portafoglio.

L’idea di trascrivere il backup su un foglio di carta è una best practice che molti eseguono e
che io in primis vi consiglio essendo quest’ultimo un punto disconnesso dal mondo online e
non hackerabile.

Per cercare di evitare gli errori umani durante la trascrizione di questo numero che potrebbe
far perdere il portafoglio si è pensato di codificarlo con una sequenza di parole.

Queste parole appartengono ad un dizionario di 2048 parole, dove ogni parola rappresenta
dei numeri.

L’unione di queste parole rappresenta il codice che rappresenta il seed da cui noi
recuperiamo l’intero nostro portafoglio con le nostre chiavi private.

Tutto questo è molto comodo perché sarà difficile trovare una o più parole che ci confondano
siccome non ne troveremo mai una molto simile sia al singolare che al plurale in inglese
(come per esempio feed-feeds).

Per facilitare tutto ciò è stato fatto in modo che già inserendo le lettere iniziali di una parola
appaia la lista delle parole esistenti per quelle lettere.

Anche se si facessero errori nella trascrizione sarebbe non dico facile, ma meno complesso
capire così dove si è sbagliato.

Anche qui vi è un meccanismo di checksum dato che l’ultima parola fa il check su tutte
quelle precedenti e se si sbaglia una delle parole un software ben fatto può farlo capire
immediatamente.

Il procedimento standard dei wallet funziona in questo modo.

94
Viene dato il Seed che bisogna appuntarsi da qualche parte e in qualche modo di 11 o 23
parole + 1 di checksum diventando 12 o 24.

Successivamente viene chiesto di compilare i campi con le parole mancanti oppure di


riscriverlo tutto guardando il pezzo di carta o il posto in cui è stato salvato in modo da
accorgersi immediatamente se non è stato salvato correttamente.

Potenzialmente la soluzione migliore per i più coraggiosi che hanno un’ottima memoria
sarebbe quella di memorizzare la frase cercando di collegare le parole componendo una
frase che abbia più o meno un senso logico, o magari creando una filastrocca in modo da
non dipendere veramente da niente e nessuno se non dalla propria memoria.

95
NOTARIZZAZIONE DI UN FILE SU
BLOCKCHAIN
Grazie alla blockchain possiamo creare addirittura una sorta di certificato digitale che
certifica la proprietà di una casa.

Scopriamo rispetto al catasto attuale che garanzia in più ci dà questo tipo di certificazione.

Che problema ho con il catasto attuale che non avrei su un certificato su blockchain che
attesta la proprietà della casa?

Il problema che posso avere con il catasto nel momento in cui è centralizzato da un’entità è
che quest’ultima può andare a modificare il record del catasto e togliermi la proprietà della
casa in qualsiasi momento.

Episodi di questo genere sono comuni in Africa quando ci sono dei colpi di Stato.

Molto spesso è accaduto agli oppositori politici di chi saliva al potere.

Il punto non è cancellare dal catasto il proprietario di un certo bene facendo dimenticare alle
persone chi possedeva cosa, il problema è che c’è un’entità politica che ha reso invalido il
vecchio catasto.

Quindi anche se rimanesse tutto tracciato nella blockchain immutabile, il problema non
verrebbe risolto.

Se arrivasse nel Paese africano il dittatore con un colpo di stato non è di sicuro la blockchain
che può assicurare ad ognuno di conservare i propri possedimenti come la casa.

La blockchain anche se garantisce l’immutabiliità del dato, non potrebbe rappresentare


necessariamente la soluzione al problema.

Un’altro caso d’uso che spesso viene segnalato quando si spiega la blockchain applicata a
questo campo è quello del tracciamento di beni alimentari su una filiera di distribuzione per
garantire che il prodotto sia per esempio al 100% Made in Italy.

Ci sono però dei problemi che possono presentarsi quando cerchiamo di tracciare dei beni
su blockchain.

1. Il primo riguarda l’inserimento di dati che non sempre corrispondono alla realtà. Per
esempio si potrebbe certificare un determinato vino come italiano prodotto in
96
maniera biologica senza problemi quando in realtà quel vino non è né italiano né
prodotto secondo determinati criteri;

2. Il secondo riguarda la manipolazione dei dati dopo che sono stati inseriti nella
blockchain. Questo potrebbe accadere, per esempio, quando si certifica in un primo
momento un vino come non biologico ma poi al momento della vendita si cerca di
venderlo come tale.

Chiaramente è molto più probabile che si verifichino problemi relativi al primo caso, ovvero
in cui modifico il dato a monte.

Questo infatti è un problema che non può essere risolto da nessuna tecnologia ad oggi,
perché è un problema che si pone prima della digitalizzazione del dato.

Se si inserisce un dato falso, qualsiasi sistema informatico che sia blockchain o altro,
cartaceo o digitale, sempre un dato falso rimane e non c'è nessun mezzo a livello informatico
capace di verificarlo.

Il valore aggiunto di usare nuove tecnologie per questo scopo è abbastanza ridotto, anche se
l’unica cosa da cui ci protegge è dal fatto che i dati digitali siano più difficili da manipolare.

Utilizzando la blockchain, un Consorzio che gestisce i dati ha più difficoltà a manipolarli,


perché necessiterebbe comunque che tutti gli attori del network siano d’accordo per riuscire
a modificare il registro distribuito su cui sono salvati.

Fermiamoci un momento, a noi cos'è che ci interessa davvero?

Abbiamo bisogno di una prova che il dato non sia modificato.

Per avere questa prova di fatto ci servono solo due cose:

1. Che il dato sia stato firmato digitalmente, in modo che una terza parte non possa
manipolarlo e chi l’ha prodotta non possa eliminarlo.
Esempio se un produttore di vino firma digitalmente il dato un distributore non può
attribuirgli delle proprietà diverse o alterare quel dato;

2. La seconda cosa che mi serve è una marca temporale del dato per vedere qual è
quello che è stato inserito prima e dopo nel caso il produttore volesse inserire in un
secondo momento un dato che non rispecchia quello originale.

Ad oggi ciò che si utilizza per fare ciò sono le marche temporali dei Certificate Authorities
(enti terzi certificati di cui tutti ci fidiamo a livello nazionale come Aruba).

97
Se non ci fidassimo di un ente istituzionale che svolge questo compito, si potrebbe
semplicemente creare una marca temporale sfruttando su Blockchain il fatto che tutti i
blocchi della blockchain hanno un timestamp nell’header.

Quindi se si riuscisse a inserire una traccia del dato che ci interessa all’interno di un blocco
della blockchain, automaticamente si riceverebbe una marcatura temporale utile a
dimostrare che quel dato esisteva in quel determinato giorno, in quel blocco della blockchain
e da quel momento in poi non è più stato manipolato.

Principalmente, se si reintroducesse la fiducia verso terze parti cadrebbe la principale value


proposition della blockchain.

Infatti l’unica cosa in cui le blockchain private sono meglio di quelle pubbliche o
permission-less (alias Bitcoin) è l’efficienza, avendo però come compromesso quello di dover
sacrificare tutte le altre proprietà come la sicurezza, la decentralizzazione e così via.

Tutte queste sono soluzioni come blockchain private centralizzate sono sviluppate da IBM,
che hanno aggredito un mercato B2B in cui il problema della fiducia non si presenta perché
essendo i vari attori abituati ad avere un rapporto di fiducia tramite il contratto, gli è
sembrato famigliare affidarsi a questa metodologia.

Bitcoin invece permette potenzialmente di spostare moneta dall’altra parte del mondo senza
sapere nulla della controparte e non avendo nessun intermediario di cui fidarsi.

Nel mondo aziendale questo problema non è presente, se non magari in scala
internazionale.

In alcuni contesti ovviamente le aziende sono abituate ad avere rapporti di fiducia tra di loro
o con gli enti regolatori come uno Stato, non avendo il problema del non potersi fidare di
nessuno come l’utente Bitcoin invece ha.

Le grandi aziende non sono disposte a sacrificare l’efficienza dei sistemi centralizzati
andando a scegliere un sistema che presenta un limite della quantità di dati che possono
essere processati per riuscire a mantenere questa decentralizzazione. Infatti, processando
molti dati con un normale computer, non si riuscirebbero più a gestire e il computer
andrebbe velocemente in tilt.

La maggior parte delle aziende infatti non può accettare questo tipo di compromesso perché
con la quantità di utenti che gestiscono, devono raccogliere i dati velocemente riuscendo a
processarli in modo talmente veloce da riuscire a mandare avanti il loro business model.

Se si cercano infatti soluzioni che in termini di efficienza e di storage dei dati riescano a
scalare meglio ci sono già molte tecnologie nel mercato che svolgono questi compiti molto
bene come per esempio Amazon Web Services.

98
Per questo, ad oggi, vengono preferite dalle aziende innovazioni tecnologiche come Fabric
Hyperledger di IBM oppure la blockchain Corda di R3, che rappresentano soluzioni molto
valide per un tipo di use case specifico.

Bisogna anche analizzare però le realtà in cui si implementano questo tipo di tecnologie,
perché non si può dire che esse portino lo stesso valore aggiunto in tutti i tipi di aziende.

Semplicemente se bisogna garantire la sicurezza del dato dove davvero potrebbe servire
eliminare la fiducia, basterebbero tecnologie che hanno funzionato per decenni come la
marcatura temporale e le firme digitali, dando maggiore garanzie che il dato non venga
manipolato.

Detto ciò, non voglio far passare il concetto che Bitcoin sia il bene assoluto mentre quello
che non è blockchain permission-less sia il male, anche perché oggettivamente le soluzioni
descritte sopra ora sono usate da grosse aziende e funzionano molto bene.

Le vere blockchain permission-less sono usate unicamente per eliminare la necessità di


fiducia verso le istituzioni, enti o aziende centralizzate.

Questo è l’unico motivo per cui sono nate e non a caso sono l’unica cosa che riescono a fare
molto bene.

99
Ritorniamo ora al focus
principale:
cosa s’intende per notarizzazione di file su blockchain?

Nella blockchain di Bitcoin sono presenti tutta una serie di caratteristiche che rendono
questa tecnologia perfetta per effettuare transazioni finanziarie ad alto livello di sicurezza.

Questa sicurezza è data dal fatto che dietro la Blockchain c’è un meccanismo di validazione
e comunicazione di blocchi al network fatto da parte dei miner, i quali sono sempre
incentivati a essere onesti grazie alle consistenti somme guadagnate ogni volta che
svolgono correttamente il proprio compito.

In più abbiamo il timestamp di cui tanto abbiamo parlato, che non serve a dare l’ordine ai
blocchi ( ne approfitto per ripetere che quest’ultimo è dato solo dall’hash precedente del
blocco), ma serve solo ed esclusivamente per capire ogni due settimane quanto tempo si è
impiegato per minare quei 2016 blocchi, in modo da aggiustare il tiro se è stato troppo o
troppo poco.

Inoltre, siccome gli orologi dei miner non possono essere tutti sincronizzati perfettamente, il
timestamp non deve essere estremamente preciso, ma basta avere un riferimento nell’ordine
delle ore, dato che nell’arco temporale di due settimane anche sbagliare di qualche minuto
non rappresenta un problema.

Chiusa parentesi, grazie a queste considerazioni sappiamo che tutti i dati inseriti nel blocco
esistono all’incirca dal momento in cui c’è quel preciso timestamp nel blocco.

Quindi se in un dato momento vi è una transazione inserita nel blocco il cui timestamp è 11
gennaio del 2010 alle 10:04, sappiamo che quel dato da quel momento, seppur con un
imprecisione di un’ora avanti o indietro, esisteva ed è possibile controllarlo in ogni momento.

Visto che questa operazione viene fatta già per le transazioni, sarebbe bello poterla fare per
dati generici, ovvero poterla fare per un contratto tra due persone, una fotografia, la
temperatura che vi è in un magazzino con la certezza però che dal momento in cui i dati
sono stati registrati non sono più stati manipolati.

Di fatto stiamo facendo leva sull’immutabilità di Bitcoin anche per altri casi d’uso, con
l’obiettivo di riuscire a certificare i dati che ci interessano senza interpellare un’autorità fidata
come possono fare le poste con il timbro sulle lettere per esempio.

100
Qual è il problema dei Certificate
Authority? (Esempi e casi d’uso)
Il problema di queste entità, non è tanto il fatto che possono manipolare la marca temporale
perché difficilmente ci sono incentivi così grossi in gioco che fanno accadere tutto ciò, il
problema è che le CA hanno valore all’interno di un contesto territoriale particolare.

È difficile individuare un’autorità che sia davvero affidabile e assolutamente neutrale perché
ad esempio in Italia hanno valenza solo gli enti italiani mentre nei paesi esteri giustamente
solamente quelli esteri.

Se voglio fare un contratto con un’azienda cinese e voglio avere la prova con la data certa di
quello che ci siamo detti e abbiamo concordato: potrei anche non fidarmi del CA cinese
perché magari potrebbe manipolare il dato essendo in accordo con la controparte e a sua
volta lui potrebbe non fidarsi di quella italiana per lo stesso motivo.

In questi casi la Blockchain essendo incorruttibile e neutrale si rivela perfetta.

Anche se riuscissi a corrompere un miner per fargli modificare un certo dato contenuto in un
blocco passato, da solo non riuscirebbe a fare nulla perché oltre a modificare il blocco che
contiene il dato dovrebbe ricomporre poi tutti i blocchi successivi.

Infatti è un procedimento praticamente impossibile, perché per modificare questa


informazione facendo in modo che sia ritenuta valida da tutto il network, questo miner
dovrebbe avere una potenza di calcolo maggiore al resto del network in modo da riuscire a
fare il tutto prima della creazione di un nuovo blocco, a cui però tutto il restante network che
ha un hashrate maggiore maggiore al suo sta lavorando.

Poiché ci troviamo in un registro distribuito tra tutti i partecipanti del network, bisognerebbe
modificare e corrompere il 51% dei partecipanti affinché l’informazione venga modificata e
ritenuta valida da tutti i partecipanti.

Quindi se ci ho messo un mese per creare 4032 blocchi con il 100% del network e dell’hash
power, ora col 51% ci metterò minimo il doppio. Si capisce quindi che la difficoltà è grande e
non converrebbe farlo nemmeno in termini di consumi.

Se si volessero manipolare dati verificati in un periodo minore all’ultima ora invece, tutto
questo sarebbe ancora possibile.

L’assunzione di base affinché Bitcoin funzioni è che nessun utente abbia il controllo della
maggior parte del network.

101
Se una singola persona avesse questo potere per un periodo lungo di tempo Bitcoin
potrebbe essere considerato insicuro a causa di tutta una serie di manipolazioni che
possono accadere.

C'è stato un caso nel 2014 dove una mining pool (insieme di vari miner) era riuscita ad
arrivare a superare il 50% del network, ma ciò non ha rappresentato una minaccia perché
miner aggregati si sono staccati in tempo dalla mining pool andando a collaborare con
un’altra, in modo da non concedergli il monopolio.

Ad oggi i miner sono ormai tendenzialmente società e bisognerebbe mettersi d’accordo tra
centinaia di società per costituire il 50% e fare un attacco alla rete.

Inoltre Bitcoin rappresenta l’intero business di queste aziende, quindi avendo un computer
che riesce a fare solo una cosa bene (ovvero calcolare più hash al secondo possibili),
attaccando Bitcoin si comprometterebbe la stessa fonte di guadagno dei miner.

Una volta distrutta, l’investimento di decine di migliaia di milioni in hardware è andato in


fumo.

Da un lato il difficile raggiungimento del controllo del network, dall’altro il fatto che non
avrebbe senso andare contro i propri interessi fa capire perché in dieci anni di vita di Bitcoin
non è ancora mai stato attaccato in maniera significativa.

Col tempo inoltre più cresce Bitcoin, più cresce il mercato del mining, quindi
tendenzialmente diventa difficile hackerarlo perché tutto il sistema diventa sempre più
grande.

Con questo sistema diventa molto più difficile attaccare e sabotare la rete perché tutti
seguono un obiettivo comune, non a caso Bitcoin risolve il problema dei generali bizantini
(dBFT), un simpatico problema secondo il quale bisognava riuscire a mettere d’accordo tutti
i generali per attaccare una cittá, sapendo che se solo uno tra di loro ritira l’attacco fallirà.

102
Questo è un sito utile in caso si volesse controllare quanto costi attaccare le diverse
blockchain.

L’idea di mettere il dato in blockchain lo rende quindi particolarmente sicuro, anche perché di
solito i dati valgono meno dei soldi che ci sono in una blockchain.

La notarizzazione su blockchain non è altro che la prova di esistenza di un dato.

Si può dimostrare quindi che un dato esisteva in un determinato momento e questo può
tornarci utile nel caso della stipulazione di un contratto tra privati ai fini dell’esecuzione
stessa, dimostrando come in una certa data il contratto è stato sottoscritto tra le parti.

C'è stato un caso in Cina dove la prova su Blockchain della stipulazione di un contratto è
stata portata in giudizio venendo considerata come prova rilevante e sufficiente per
dimostrare che quel dato era stato stipulato in quella determinata data.

La normativa è abbastanza flessibile per quanto riguarda la definizione di marca temporale,


quindi dipende dal giudice o meno se considerare valida una prova su blockchain non
manipolabile. Ad ogni modo oggi anche a livello legale per riconoscere questi strumenti
come validi ci si sta lavorando molto.

103
Per quanto il brevetto, oggi è più regolamentato rispetto ad un contratto tra privati perché la
questione può essere determinata da più fattori.

Con la blockchain se si riesce a dimostrare che si è avuta una certa idea qualche anno prima,
riuscendo a certificarla, chiunque voglia successivamente depositare la stessa idea avrà
difficoltà a farlo perché è dimostrabile che quell’idea esisteva già da parecchi anni.

Un altro potenziale caso d’uso è quello della messa in sicurezza di dati per fini assicurativi.

Immaginiamo che un soggetto possieda un capannone con dei macchinari industriali


particolarmente costosi che vengono assicurati.

Una delle condizioni dell’assicurazione è che la temperatura del capannone si mantenga


sempre sotto i 30 gradi per evitare che il capannone si surriscaldi rovinando le macchine. Il
proprietario del capannone si impegna quindi a mantenere l’ambiente ventilato.

Quello che posso fare è installare dei dispositivi IoT che monitorino la temperatura del
capannone grazie a dei sensori, in modo che ogni dato sia certificato su blockchain, cosicché
qualora sorgessero dei problemi in futuro, se il proprietario volesse andare a modificare i
valori dei sensori per risultare pulito e non rispondere di eventuali danni con l’assicurazione
non potrebbe più farlo.

Insomma in quasi tutti i settori, il valore del dato può essere significativo se si dimostra che
non è stato manipolato.

Tornando al caso di tracciabilità di beni in una supply chain, bisogna dire che è un tema
molto dibattuto nel mondo blockchain, perché se da una parte è utile grazie alla marcatura
temporale sapere che un dato non può essere manipolato, dall’altra bisogna che ci sia anche
la certezza che chi inserisce il dato lo inserisca correttamente.

Se si certifica un vino biologico quando non lo è effettuando tutti i procedimenti


correttamente, il procedimento di notarizzazione su blockchain può essere anche giusto ma
se il dato inserito è falso, il problema è un altro.

Il sistema ti protegge una volta che il dato è stato digitalizzato.

Prima della digitalizzazione la blockchain non serve assolutamente a nulla, potrebbero


essere d’aiuto sistemi IoT, ma parliamo sempre di tecnologia che riesce a interagire con il
mondo fisico.

La blockchain invece non è qualcosa che interagisce con il mondo fisico ad oggi, quindi
potrebbe essere d’aiuto solo una volta che il dato è stato digitalizzato.

Tendenzialmente non è una buona idea inserire qualsiasi dato grezzo nella blockchain,
perché avendo essa uno spazio limitato, se vogliamo notarizzare un documento da 20MB
quando un blocco ha 1MB di memoria si dovrebbe far fronte a dei costi non indifferenti.

104
Inoltre, ai miner e nodi di questi dati non finanziari che riempirebbero la blockchain non
interessa nulla perché l’unica cosa che vogliono è capire chi sta inviando o ricevendo soldi
per aggiornare il saldo nella blockchain.

Certificare qualsiasi dato su blockchain quindi potrebbe non essere una grande idea,
nonostante ciò, in passato è stato comunque fatto.

Questa è una foto di Nelson Mandela che qualcuno ha caricato interamente sulla blockchain
Bitcoin nel giorno della sua morte.

L’immagine di fatto è rappresentata in byte e codificata per stringhe di caratteri (cosa che si
può vedere se si prova ad aprire un’immagine jpg con il blocco note).

Colui che ha inserito l’immagine nella blockchain ha preso la rappresentazione in codice


binario dell’immagine, l’ha divisa in tanti pezzettini inserendoli in varie transazioni al posto
della chiave pubblica di destinazione verso cui di solito si paga. Il tutto pagando pochissime
fee all’epoca.

In questo modo tutti quei pezzetti di immagine sono stati scritti su blockchain e di
conseguenza chiunque abbia scaricato l’intera blockchain ha un’immagine di Nelson
Mandela nel computer.

Se si prendono e si mettono insieme tutti questi output, si riesce senza particolari problemi a
ricomporre l’immagine.

Analizzando il caso in sé che è ciò che ci interessa, com'è stato possibile tutto questo?

Nel 2013 un’azione di questo tipo è stata permessa grazie al fatto che i blocchi erano ancora
abbastanza vuoti non essendoci tanta gente che usava Bitcoin.

105
Oggi se volessimo fare una cosa del genere sarebbe pressoché impossibile principalmente
per il costo in fee dell’operazione ma anche perché si andrebbe a occupare lo spazio
destinato per le transazioni, utile per portare avanti lo scopo per cui è stata creata.

Questo purtroppo non è l’unico caso in cui si è contaminata la rete con dati non utili, perché
sempre in passato il gestore di una mining pool arrivò a inserire in ogni blocco addirittura
una preghiera per manifestare la devozione verso la sua fede.

Questi sono due esempi negativi di notarizzazione di file non solo perché stiamo
condividendo a tutti nella rete un tipo di dato che non potrebbe interessare alla maggior
parte delle persone, ma perché poi se ne terrà traccia per sempre.

Tutti i soldi poi non sono stati inviati a indirizzi pubblici ma a stringhe di caratteri che i nodi e
i miner non riconoscono e per questo non potranno mai essere spesi. Infatti dietro non vi è
nessuna chiave privata che può tirare fuori i soldi dagli output.

Ovviamente questo noi ora lo sappiamo, ma il software che utilizziamo non lo sa, vede quei
dati pensando in automatico che sia una chiave pubblica di cui bisogna tener traccia perché
all’interno vede dei soldi bloccati che per lui in qualsiasi momento potrebbero essere spesi e
gli potrebbero interessare per mantenere aggiornato il registro.

Come abbiamo visto all’inizio della guida infatti, un nodo Bitcoin funziona in modo che in
una parte di memoria è tenuta traccia di tutte le transazioni vecchie, mentre nell’altra parte
separata di memoria è tenuta traccia degli output che possono essere ancora spesi.

Potenzialmente tutte le transazioni che sono già state eseguite potrebbero essere buttate
via, perché non c’è più interesse a monitorare qualcosa che è già stato speso e utilizzato.

Le transazioni ancora non spese invece possono rivelarsi utili nel monitorare il saldo dei
conti.

Per questo il fatto di inserire dati grezzi nelle chiavi pubbliche crea un danno.

Per conservare i dati, tutti i nodi li tengono in memoria in attesa di essere spesi, non
sapendo invece che sono dati inutili.

Questo tipo di comportamento è impossibile da fermare dal momento in cui ci troviamo in


una rete aperta a tutti dove chiunque è libero di spendere i propri soldi come meglio crede.

Per mitigare questo fenomeno estremamente dispendioso per tutti gli utilizzatori di Bitcoin
si è creato un nuovo tipo di output chiamato OP_RETURN.

La particolarità di questo, è che se si inviano soldi verso questo output, non possono essere
spesi in nessun modo, perché non c'è nessun modo di tirarli fuori.

106
Questo è identico al caso precedente, ma con una differenza.

In questo caso se si mandano soldi, tutti i nodi sanno che da lì non possono uscire, mentre
nel caso precedente i nodi non sapevano che quei soldi non fossero su una chiave pubblica
continuando così ad essere conservate aspettando di essere spese.

Se si vogliono salvare dei dati è molto più efficiente farlo in questo modo, perché i nodi che
non vogliono tenere traccia di questo output sulle transazioni possono decidere anche di
non farlo, mentre per chi fosse interessato con soli 80 byte ( non si può aumentare perché
aumentando si intaserebbe la rete come successo in passato) per output avrebbe la
possibilità di certificare un dato che magari in futuro potrebbe tornargli utile.

In questo modo è stata trovata la soluzione per ridurre i costi sia di memoria che
computazionali per gestire i dati.

Quali casi d’uso sono stati riconosciuti come legittimi occupando quegli 80 byte?

Beh, oggi sarebbe pressoché assurdo se si volesse inserire ora un dato grezzo in blockchain
come l’immagine di Nelson Mandela, visto che bisognerebbe dividere tutta l’immagine di
1MB in 80 byte e fare diverse transazioni arrivando a pagare una cifra spropositata per un
semplice divertimento.

Una cosa che si potrebbe fare e che avrebbe abbastanza senso è inserire l’hash di un dato in
blockchain.

Inserendo l’hash di un dato, conferisco al network la prova che quel dato esisteva in un
blocco a partire da un determinato momento, perché chiaramente se esiste l’hash esiste
anche il dato che l’ha prodotto.

Così in un secondo momento posso benissimo prendere l’hash del documento nella
blockchain e dimostrare qual è il dato che l’ha prodotto.

Abbiamo capito che la blockchain di Bitcoin non può essere usata per fare storage dei dati
interi, ma è quindi possibile evitare il problema mettendo l’hash del file pdf che si vuole
inserire, in modo da poter dimostrare in futuro che un determinato contratto esisteva in
quella determinata data e ora.

L’output è stato pensato in modo che non ne venga abusato inserendo troppi dati, ma non è
stato creato per inserire un solo dato e basta perché ci possono stare benissimo 2 hash
pesando all’incirca 32 byte l’uno.

Inoltre l’hash gode di una caratteristica che è l’irreversibilità, ovvero dall’hash non si riesce a
vedere di che tipo di dato si tratta, ma solo se lo si compara con il dato originale si può
verificare se corrisponde o meno a quello salvato su blockchain.

107
Per dimostrare che un contratto esiste da una determinata data, bisogna prima:

- fornire l’hash del contratto che ci interessa;


- fornire l’id della transazione in cui è stato inserito;
- fornire il numero del blocco in cui è stata salvata la prova dell’hash del file visibile nel
campo output OP_RETURN

In un secondo momento poi si dovrà dimostrare che l’hash del dato corrisponde a quello
notarizzato, fornendo l’originale del contratto in modo che si possa calcolare l’hash e
verificare se corrisponde a quello salvato nella blockchain.

Logicamente, solo chi ha il documento originale può dimostrare se è vera la marcatura


temporale in blockchain.

Se si perde il file originale non vi è più la possibilità di dimostrare la veridicità del file.

Si è ottenuta così la garanzia che quel contratto esiste da un determinato momento, essendo
l’hash non reversibile.

108
Come facciamo a rendere il processo di notarizzazione
più scalabile?
O meglio: come facciamo a includere grosse quantità di dati, senza dover fare una
transazione nella blockchain Bitcoin per ogni singolo dato?

Ad esempio, se volessimo notarizzare tutti i certificati di laurea di tutti gli studenti del mondo
ci servirebbero blocchi 80 volte più grandi di quelli attuali.

Usando inoltre la blockchain solo per questo caso d’uso causerebbe un aumento delle fee di
transazione non indifferente.

L’idea quindi è quella di migliorare l’efficienza, in modo da riuscire a notarizzare più


documenti in una singola transazione e al contempo far sì che i documenti siano verificabili
indipendentemente l’uno dall’altro.

Potrebbe infatti esserci il caso in cui si devono fornire due documenti sanitari originali per
fare la verifica a due persone differenti, ma essendo l documenti certificati insieme non si
vuole far vedere a queste due persone i dati confidenziali dell’altro.

Fare tutto il processo di notarizzazione di più file che non appartengono alla stessa persona
preservando la privacy di due o più persone è possibile grazie allo stesso meccanismo con
cui vengono incatenate le transazioni nel blocco, il Merkle Tree.

L’idea è quindi di mettere un singolo hash nel output op_return per ogni transazione che
compone il blocco.

Si può invece creare un albero con i documenti di più persone diverse come nel caso della
certificazione dei diplomi di tutti i laureati.

Di fatto si prende il diploma di ogni persona, viene calcolato l’hash di tutti tramite vari tool in
internet come abbiamo visto con le transazioni e tramite un software esterno si concatenano
tutti gli hash a due a due finché non si forma un Top Hash che inseriremo in op_return della
transazione.

Agendo in questo modo, il Top Hash racchiude una minima parte di tutti gli hash di tutti i
diplomi e riesce a pagare una fee per una sola transazione invece pagare migliaia di
transazioni per ogni singolo diploma.

109
Ora se vogliamo dimostrare che il diploma è stato certificato bisogna avere come prova
innanzitutto il file originale del diploma ( pdf) e poi tutti i pezzi che servono per passare dal
file originale al Top Hash che è l’unica cosa salvata in blockchain.

Chiunque andasse a guardare nella blockchain vedrebbe solo il Top Hash e dovrebbe
riuscire in qualche modo a collegare questi due pezzi.

Per riuscire a ricollegare il tutto bisogna:

1. avere l’id della transazione per controllare nell’output op_return il Top Hash
(escludendo i primi 4 caratteri perché servono ad altro) contenuto;
2. avere il file originale L1, ovvero il diploma per farci l’hash 0.0.0;
3. fornire tutti i pezzi necessari (l’Hash 0.0.1, l’Hash 0.1 e l’Hash 1) per riuscire a
concatenare l’hash del file originale (Hash 0.0.0) con l’hash 0.0.1 trovando l’hash 0.0,

110
per poi concatenarlo con l’hash 0.1 e trovare l’hash 0 che a sua volta sarà
concatenato con l’hash 1;
4. una volta finito questo procedimento troveremo il Top Hash e se corrisponderà a
quello salvato in blockchain vorrà dire che il certificato è valido. Se invece ci sarà
qualcosa di diverso il certificato non sarà valido.

N.B: Ovviamente il reperimento dei pezzi necessari è gestito dal software apposito non
spaventatevi, noi dobbiamo preoccuparci di inserire solo il file originale al momento del
controllo per vedere se è valido o meno.

In questo modo una qualunque terza parte che ha la possibilità di accedere alla blockchain
(e lo ha perché la blockchain di Bitcoin è aperta a tutti/permission-less) e possiede gli altri
dati necessari per ricomporre il Top Hash, può verificare la veridicità del dato che si sta
esaminando e vedere quando è stato certificato tramite il timestamp.

In questo modo potenzialmente si possono estrarre milioni di dati all’interno di una


transazione Bitcoin, perché quest’albero (Merkle Tree) ogni volta può essere fatto crescere di
livello raddoppiando i dati contenuti al suo interno.

Tutti questi dati inoltre sono estremamente compatti considerando che un hash occupa 32
byte e ogni volta che si aggiunge un livello (1 hash = 1 livello) si raddoppia la quantità di
dati, nel giro di 10 livelli, si hanno già 1024 diversi dati certificati con 320 byte di prova e si
potrebbe benissimo andare oltre.

A scopo dimostrativo diversi anni fa uno sviluppatore Bitcoin ha preso tutti i dati di Internet
Archive (sito che archivia tutte le pagine Internet, mostrando anche la loro versione prima
che venissero cancellate) che corrispondevano circa a 100 Petabyte di dati(1 Petabyte = 1
MLN di GB di dati), li ha messi in un Merkle Tree di una 30ina di livelli e ha notarizzato tutto
l’internet esistente fino a quel momento con una singola transazione Bitcoin pagando
qualche centesimo di fee, dimostrando quanto è scalabile il sistema.

Volendo possiamo affidarci a dei service provider che creano questi Merkle Tree aggregando
più file di persone che non si conoscono tra di loro per certificare i dati.

111
Bisogna solo dare a questi service provider l’hash del file che ci interessa notarizzare che
verrà messo insieme a tutti gli altri e con una sola transazione Bitcoin certificherà per
centinaia, migliaia se non milioni di persone in tutto il mondo.

Potenzialmente ci potrebbe essere una certificazione di tutto il sapere del mondo in ogni
blocco avendo una possibilità di scalabilità che tende a non avere limiti.

I costi inoltre non sono proporzionali al numero di dati che si vogliono certificare, ma vanno
in base a ogni quanto spesso si vogliono certificare i dati.

Per esempio se si volessero certificare i dati per ogni blocco creato ogni giorno (144), anche
se le fee arrivassero ad essere 1 euro per transazione, il costo quotidiano sarebbe di 144
euro se lo facessi da solo.

Se volessi invece certificare questi dati 1 volta ogni 3 giorni, mi costerebbe 288 euro a
settimana a prescindere da quanti dati si vogliano notarizzare.

Affidandosi come detto prima però a servizi che aggregano gli hash dei documenti si
possono abbattere questi costi ulteriormente.

Per fare tutto questo c’è un sito standard open source chiamato Open Timestamps che
utilizza la blockchain di Bitcoin.

In alternativa al fatto di eseguire da solo queste operazioni pagando da solo le fee delle
transazioni, nel sito ci sono anche tutta una serie di società segnalate che offrono questo
servizio di aggregazione di dati a cui ci si può affidare in caso di necessità in cambio della
sottoscrizione ad un abbonamento mensile o un abbonamento in MB di documenti che si
vogliono certificare.

112
L’utilità di avere tante società che svolgono questo servizio è quella che se in caso una di
esse si rifiutasse a certificare il mio dato, perché per assurdo è in conflitto con per qualsiasi
motivo, è possibile appellarsi tranquillamente a un’altra società della lista che non ha niente
in contrario nel certificare dati per noi.

Per spiegare velocemente come funziona il servizio, all’interno del sito vi è la possibilità di
caricare un file di cui verrà calcolato l’hash.

Il file verrà mandato al server che starà già unendo il file inviato ai file delle altre persone
creando il Merkle Tree.

Una volta creato l’albero, manderà una transazione che notarizza tutti i file .

Nel frattempo restituirà una prova di verifica del file in formato .ots .

Se poi si inserisce il file di verifica, quello originale ci apparirà se è stato notarizzato nella
blockchain ( ricordiamoci che non è immediato perché bisogna aspettare le tempistiche di
mining) e sapremo in quale blocco è possibile controllare.

Questo software è utile perché indicizza tutte le transazioni contenenti dei dati nell’output
op_return in modo da facilitare la ricerca e dirti in che blocco è certificato il documento che
stai cercando in quel momento.

Chiaramente se si utilizza questo servizio per notarizzare un file ogni tanto è gratis, ma se si
inizia a voler certificare più file alla volta iniziando ad utilizzarlo molto spesso è possibile che
venga richiesto un pagamento perché è il servizio che paga le fee di inclusione della
transazione nel blocco.

113
Perché si utilizza la blockchain di Bitcoin come standard
invece delle altre?
1. La blockchain di Bitcoin è aperta a tutti senza necessità di avere nessuna
approvazione per attuare operazioni di verifica;
2. È quella che è in vita da più tempo, circa 10 anni e in tutto questo lasso di tempo non
ha subito nessun attacco rilevante che abbia causato problemi;
3. È la più difficile e costosa da manomettere fra le tutte;

L’unico limite forse è il fatto che non è immediata perché si deve aspettare la formazione del
nuovo blocco in circa 10 minuti per avere il file notarizzato.

Ma a patto che non si abbiano esigenze particolari questa caratteristica non rappresenta un
grande problema.

Questo non toglie il fatto che non sia possibile fare la stessa cosa con altre blockchain più
veloci, ma per questo caso d’uso in cui ci interessa in particolar modo la sicurezza, Bitcoin
rappresenta la soluzione migliore anche perché richiede semplicemente di allegare l’hash di
un file nella transazione.

Le altre blockchain non hanno nessun vantaggio competitivo per far in modo che non si
utilizzi Bitcoin, anche perché tutte le aziende indicate nella pagina la utilizzano, pur
essendoci la possibilità di farlo con altre blockchain.

Per sfruttare a pieno le potenzialità della tecnologia l’ideale sarebbe avere il file.ots restituito
da OpenTimestamps dopo aver caricato il documento che vogliamo notarizzare e scaricare
tutta la blockchain di Bitcoin, così da riuscire a fare la verifica e controllare tutti i dati che ci
interessano in autonomia.

114
LE ALTCOIN
ALTCOIN = ALTERNATIVE COIN

Si considera come Altcoin tutte le cryptocurrencies


diverse da Bitcoin che ambiscono ad essere
decentralizzate, basate alcune su Proof-Of-Work
mentre altre su altri algoritmi di consenso.

Inizialmente, le prime Altcoin erano praticamente uguali


al codice sorgente di Bitcoin, con la differenza di avere
alcuni parametri diversi come ad esempio la difficoltà
dei blocchi in modo che ne escano ogni 1-2 minuti
piuttosto che 10, oppure ancora invece di avere la
capitalizzazione di mercato massima a 21 MLN, veniva
fissata a 1 MLD, creando di fatto una nuova moneta
apparentemente diversa.

La primissima Altcoin fu nel 2011 Namecoin che aveva come obiettivo quello
di formare un sistema di domini decentralizzati.

Quindi invece che salvare su blockchain i movimenti finanziari, veniva tenuta


traccia della proprietà dei domini.

Ha avuto un po’ di successo all’inizio e ora per mancanza di adozione è in disuso.

Ci sono altre crypto invece che hanno cominciato a cambiare leggermente gli algoritmi di
mining come fece Tenebrix.

Cambiando il tempo di uscita dei blocchi a 2 minuti però si rivelò essere un’idea poco
azzeccata per vari motivi:

- avere blocchi più veloci non vuol dire avere lo stesso livello di sicurezza rispetto a
Bitcoin, perché in Bitcoin più blocchi si aspettano più si è sicuri che la transazione sia
scolpita nella pietra, dato che aumenterà man mano la difficoltà nel fare un attacco e
modificare la transazione;

- se passa meno tempo, quindi 2 minuti invece di 10, non si ha la stessa sicurezza,
anzi in questo modo il costo per fare un attacco alla rete costa in termini di tempo
solo 2 minuti perché questi rappresentano il tempo di modifica dell’ultimo blocco per
poter fare double spending;

115
- inoltre si possono creare problemi di centralizzazione perché i miner più sono grossi
più sono avvantaggiati.

Il blocco, come abbiamo visto, ha dei tempi di propagazione nella rete.

Ipotizziamo che in Bitcoin questo tempo sia di 10 secondi, anche se bisogna


aspettare molto meno di solito.

Con i 10 minuti, questi 10 secondi sono pari quindi a 1/60esimo del tempo medio di
uscita di un blocco.

Questo vuol dire che il miner che ha minato il blocco ha 1/60esimo di vantaggio
rispetto a tutti gli altri miner, guadagnando così quei 10 secondi di vantaggio, in cui
lui ha già iniziato a minare il blocco successivo, mentre gli altri che non hanno
ricevuto il blocco stanno ancora minando quello precedente.

In questo sito è possibile fare un confronto tra la sicurezza di Bitcoin rispetto alle altre
blockchain con i relativi costi di attacco.

In Bitcoin il tempo per ritenere una transazione sicura è di 6 conferme/blocchi, ovvero 1 ora.

Per avere, ad esempio, la stessa sicurezza di immutabilità del dato equiparata alle 6
conferme di Bitcoin, bisogna aspettare per esempio 4 volte tanto (1.183 conferme) con una
transazione su Ethereum che crea blocchi ogni 10/15 secondi.

116
Questo accade perché essendoci molti più miner che minano Bitcoin rispetto alle altre
criptovalute, ci sono anche molte più risorse e potenza di calcolo a disposizione per far sì che
tutto l’ecosistema si mantenga sicuro.

È normale quindi che con meno hashrate le altre monete ci impieghino più tempo prima di
essere considerate sicure.

Inoltre tutte le nuove criptovalute hanno necessità di avere una algoritmo diverso di mining
rispetto al SHA256 usato in Bitcoin.

Ad esempio, quando si crea una nuova criptovaluta che ha lo stesso algoritmo


di mining di Bitcoin vi è un grosso problema.

È fisiologico che all’inizio questa nuova moneta venga minata da pochi, quindi
paradossalmente se un miner in Bitcoin che ha solo l’1% di potenza di calcolo dell’hashrate
totale (su Bitcoin) si spostasse su questa nuova cripto assumerebbe molto presto il
monopolio avendo il triplo o il quadruplo se non il 100% della potenza di calcolo di tutti i
miner messi insieme presenti nella rete. Appunto perché la potenza di calcolo per minare
Bitcoin è di molto maggiore rispetto a tutte le altre.

Così facendo si centralizza di fatto il mining, rappresentando una grossa minaccia di attacco
per questa nuova moneta.

È successo infatti che un miner grosso nel passato, ha deciso di minare una nuova
criptomoneta che possedeva lo stesso algoritmo di mining procurando di fatto la sua disfatta
perché era riuscito a spendere due volte una transazione visto che nei blocchi inseriva quello
che voleva.

Col tempo ci furono diverse copie di Bitcoin come Litecoin che si differenzia principalmente
da Bitcoin perché crea blocchi più frequentemente (circa 2 minuti e mezzo) e per avere una
supply totale di 84 MLN, 4 volte tanto rispetto a Bitcoin.

Nonostante non porti nessun vantaggio rispetto a Bitcoin, ancora oggi è tra le principali top
10.

Altre invece si distinguono perché garantiscono fee di transazione molto basse, spesso
alcuni le considerano la versione economica di Bitcoin.

Ma in realtà la possibilità di poter avere queste fee così basse è legata al fatto che il traffico
di persone su queste blockchain è molto minore rispetto quello su Bitcoin che ha molti più
utenti.

Se tutte le blockchain avessero gli stessi utenti di Bitcoin, probabilmente ci sarebbe lo stesso
problema delle fee, aprendosi così una vera e propria asta per far includere le transazioni nei
blocchi come successo nel 2017 con il prezzo delle fee volato alle stelle.

117
ETHEREUM

La prima criptovaluta di successo che rapidamente è diventata la seconda più utilizzata


innovando il settore è stata Ethereum.

Rilasciata da Vitalik Buterin ufficialmente nel 2015 è conosciuta grazie ad un design


significamente diverso rispetto a Bitcoin.

Le sue caratteristiche principali sono:

- essere una blockchain decentralizzata, permissionless esattamente come Bitcoin;


- la moneta su cui ruota il tutto, è Ether(ETH);
- invece di avere le transazioni con n input e n output ha una struttura basata ad
account con solo input e solo output;
- ha un linguaggio di programmazione degli Smart Contract molto più flessibile che
permette di fare molte più cose sia nel bene che nel male.

Questa sua eccessiva flessibilità è anche però una debolezza, infatti rende molto difficile
l’accorgersi di bug negli Smart Contract, mentre se andiamo a vedere su Bitcoin, il
linguaggio di scripting è volutamente limitato in modo da essere sicuro e non presentare
vulnerabilità;

Un caso dei tanti che testimonia questa vulnerabilità è stato il caso di The Dao, in cui un
hacker sfruttando un bug del codice è riuscito a rubare circa 60 milioni di dollari.

Questo episodio successivamente ha scatenato una divisione della rete tra due fazioni:
mentre una voleva recuperare i fondi riscrivendo la storia di alcuni blocchi fino al momento
precedente all’attacco, l’altra invece non voleva macchiare la storia di Ethereum perché
voleva dire che non era censorship resistant caratteristica fondamentale delle blockchain
permissionless. Così facendo si è creato il precedente per dar motivo a molti di pensare che
la blockchain di Ethereum non è così immutabile come si sostiene.

Per risolvere la questiona, la blockchain venne modificata, tornando al momento precedente


all’attacco mentre chi non appoggiò il cambiamento fece un fork, un biforcamento dalla
blockchain ‘principale’ che approvò il cambiamento ma denominata Ethereum Classic, dove
non si attuarono nessuna operazione di modifica per recuperare i fondi.

118
Ritornando al linguaggio di script di Ethereum, questo viene considerato Turing complete
perché è possibile fare qualsiasi operazione grazie a una Virtual Machine decentralizzata
collegata ai nodi.

Infatti, questa blockchain rappresenta un’innovazione perché si possono creare molte DApp,
ovvero delle applicazioni decentralizzate governate da SC.

Un linguaggio non Turing complete invece viene definito tale quando la quantità e le diverse
operazioni che si possono eseguire sono molto limitate come accade oggi per esempio in
Bitcoin o nelle blockchain nate prima di Ethereum.

Il grosso problema della blockchain di Ethereum è che nonostante sia molto più giovane
essendo stata creata 6 anni fa dopo Bitcoin è già estremamente più grande.

Ad oggi infatti si avvia a contenere quasi 2 terabyte di dati rispetto ai 300GB di Bitcoin
nonostante ci sia più valore e transazioni in quest’ultima.

Questo infatti è causato dall’eseguire operazioni molto più complesse che usano molti dati,
rendendo sempre più difficile e costoso avere un nodo su un computer che controlli tutta la
blockchain.

Nel momento in cui devo fidarmi di una terza parte come un server per effettuare operazioni
di verifica delle transazioni, si capisce bene che la decentralizzazione, una delle
caratteristiche fondamentali della blockchain viene a mancare.

Ethereum è un esempio perfetto di blockchain che ha sacrificato la sicurezza e


decentralizzazione per avere più flessibilità nel linguaggio di script negli Smart Contract.

Questo comporta anche dei vantaggi, ma ci sono diversi


casi d’uso in cui se si vuole scaricare tutta la blockchain
controllando la rete autonomamente non è possibile
perché ad oggi bisogna per forza fidarsi di una terza parte,
a meno che non si compri un computer costoso per riuscire
a gestire 2 terabyte di dati.

Come è successo per Bitcoin, anche qui sono nate le


rispettive imitazioni come EOS, NEM, Lisk, Tezos, NEO,
Cardano e molte altre.

Queste nuove criptomonete cercano di essere il più


flessibili possibile, cambiando però il modello di sicurezza.

Invece di essere basate sulla Proof-of-Work, si basano sul modello di consenso


Proof-of-Stake (PoS) o Delegated-Proof-of-Stake (DPoS).

Al posto di avere una sicurezza mantenuta dai miner che spendono denaro in energia
elettrica e potenza computazionale per produrre nuovi blocchi secondo le regole del
network, questi nuovi sistemi di consenso concedono in maniera più o meno casuale il diritto
119
di produrre nuovi blocchi a chi mette più rischio del capitale espresso in unità monetaria
della rispettiva blockchain.

Il più grande incentivo a non manomettere i dati è dettato dal fatto che se si cerca di far
divergere la blockchain verso una catena non valida e quella finisce per non essere seguita si
perde tutto il capitale messo a rischio.

Come con qualsiasi modello di consenso ancora sperimentale, vi sono vari problemi.

Con il PoS, se si possiede una piccola quantità di quella moneta è molto difficile che si venga
estratti nel processo casuale di assegnazione del diritto nella creazione di un blocco, oltre al
fatto che bisognerebbe essere sempre collegati alla rete.

Con la DPoS invece i nodi votano su quale sia la versione giusta della blockchain in base alla
quantità della partecipazione di quella criptomoneta, quindi se il 50% della base monetaria
vota che una certa catena è da considerare come principale sarà quella che tutto il network
seguirà.

Questo concetto se vogliamo è simile vagamente a quello che spinge i miner a formare le
mining pool di Bitcoin mettendosi d’accordo per avere più potenza computazionale cercando
di minare un blocco.

Le persone con i loro voti delegano altri nodi che diventeranno dei nodi validatori, e come
accade nelle mining pool, se un utente si accorge che un delegato non è in linea con gli
obiettivi che ha dichiarato di voler perseguire o abusa del suo potere può semplicemente
spostarsi e delegare qualcun altro di più ‘onesto’.

Non scendiamo nei dettagli della PoS perché è un argomento abbastanza complesso da
analizzare essendo un modello di consenso ancora immaturo, insicuro e non perfettamente
decentralizzato, soprattutto a causa dell’assenza di un metodo trustless con il quale si
decida chi debba produrre il blocco.

Un tema dibattuto quando si crea una nuova blockchain basata su PoS è il concetto Nothing
at Stake a cui vi rimando con un articolo a fine guida.

Per quanto siano modelli abbastanza interessanti, tutti gli utenti di queste nuove monete
non rappresentano insieme nemmeno la metà di quelli che utilizzano attivamente Bitcoin.

Un punto cruciale della blockchain infatti è l’adozione da parte di una community, perché si
può avere anche il prodotto perfetto ma se non si ha un affluenza di persone che utilizza il
servizio tutto il lavoro è inutile.

E questo sta a sottolineare come c'è ancora molto da lavorare per creare modelli di business
veramente validi.

120
Altre categorie di Altcoin:
Monero, ZCash, Verge, Dash, Grin, Beam
Questa categoria è nata principalmente dal fatto che Bitcoin non è
anonimo al 100%, per questo sono state inventate le Privacy Coin.

Una delle limitazioni reali di Bitcoin è dettata dal fatto che se uno
guarda la blockchain vede tutti gli indirizzi pubblici delle persone che
stanno transando o che hanno transato.

Nonostante sulla blockchain non sia possibile vedere l’identità reale


dell’utente che si cela dietro all’indirizzo pubblico, una volta che questo
viene scoperto, si riesce a capire facilmente tutta la storia finanziaria di
quella persona.

Queste alternative puntano a migliorare il livello di privacy delle transazioni, cercando di


offuscare quello che si vede nella blockchain usando tecniche crittografiche più avanzate.

Un esempio è ZCash, conosciuta per usare crittografia molto moderna cercando di non
rendere facilmente visibile il valore delle transazioni scambiate offuscando destinatari e
mittenti.

Di conseguenza questo comporta:

- il problema di avere le transazioni molto pesanti perché usando molti più dati per
offuscare i campi della transazione, il peso incrementa;
- usando queste nuove tecniche si è esposti anche a maggiori rischi perché essendo
poco testate possono avere delle vulnerabilità (bug) anche molto grosse.

Il problema degli update ai protocolli, in particolare quelli su Bitcoin, è che devono essere
tutti retrocompatibili, in modo che se qualche miner nel mondo continua a seguire le vecchie
regole del protocollo può continuare a comunicare con la rete aggiornata.

Nel caso invece di un aggiornamento non retrocompatibile potrebbe succedere che un miner
non consideri valido un blocco formato secondo i nuovi parametri dell'aggiornamento, anche
quando in realtà non presenta nessun problema e lo rifiuti.

Se accadesse ciò, i miner si dividerebbero in due tipologie:

● una che accetta solo i blocchi o le transazioni secondo le nuove regole dell’update;
● una che accetta solo i blocchi formati secondo le vecchie regole.

In questo modo entrambi rifiuterebbero i blocchi creati secondo le regole che non
riconoscono, creando non pochi problemi nel network.

121
Molte cripto infatti fanno update non retrocompatibili detti Hard Fork, perché non se lo
possono permettere, come ad esempio Monero, un’altra privacy coin che si differenzia da
ZCash per il fatto di usare crittografia più testata ma meno efficace.

Perché alcune monete continuano a fare questa


tipologia di update se rappresenta un problema?
Il punto è che nessuna cripto finora ha sviluppato un ecosistema minimamente paragonabile
a quello di Bitcoin, quindi avendo un network abbastanza piccolo, i nodi riescono facilmente
a mettersi d’accordo per fare tutti l’update del software e soprattutto prima di una certa
data, cosa attualmente impensabile per Bitcoin visto che vanta milioni di utenti in tutto il
mondo.

Le ultime privacy coin più moderne come Grin e Beam invece usano nuovi protocolli più
avanzati che non sacrificano troppo la scalabilità, ma potrebbero risultare meno sicure in
quanto meno testate.

In generale il tradeoff è sempre caratterizzato o dal fatto di avere transazioni più pesanti con
la conseguenza di creare sistemi meno scalabili come ZCash e Monero, o dal fatto di
utilizzare protocolli di mining nuovi rispetto a quelle tradizionali e che potrebbero presentare
più vulnerabilità.

Altra tipologia di criptomoneta è quella nata grazie ai fork, termine che nel settore cripto
indica dei cambiamenti a livello di protocollo delle varie monete.

Questi fork si distinguono in hard fork, aggiornamenti non retrocompatibili ( non funzionano
più con le versioni precedenti) e soft fork, compatibili con le altre versioni, anche se non tutti
ne hanno una unica.

Quando ci sono degli hard fork, il network si divide tra chi concorda con il nuovo
aggiornamento formando una nuova moneta e quindi di conseguenza un’altra blockchain, e
chi invece rimane fedele a quella standard rifiutando l’aggiornamento.

Tutta la questione dei fork ad ogni modo verrà trattata alcune pagine più avanti in modo più
dettagliato.

Portando alcuni esempi di fork, il 1 agosto 2017 ci fu un Hard Fork ai danni di Bitcoin che
fece ‘nascere’ Bitcoin Cash, che aumentò il blocksize da 1MB a 8MB per farvi rientrare più
transazioni con l’intento di abbassare le fee.

Il problema che si presentò fu che cambiando questo parametro, l’update non risultava più
retrocompatibile con la blockchain di Bitcoin principale in cui i blocchi erano di 1MB, perché il
nodo che vede la nuova tipologia di blocchi li rifiutava in automatico perché la regola del
protocollo era quella di avere blocchi di circa 1MB.

122
A seguito del fork, a chi possedeva Bitcoin in quel periodo è successa una cosa
particolarmente interessante.

A causa della biforcazione della rete, tutti quelli che possedevano 1 bitcoin si sono trovati
con lo stesso ammontare (quantità, non valore) di Bitcoin Cash nel portafoglio.

Poco dopo Bitcoin Cash sono nate altre monete sulla falsariga di questa come Bitcoin Gold,
dove principalmente si cambiava l’algoritmo di mining o Bitcoin SV, nata a sua volta da un
fork di Bitcoin Cash.

Vi segnalo CoinMarketCap e CoinGecko per monitorare tutte le cripto.

Nota bene che non bisogna dare troppa importanza alla Market Capitalization perché molto
spesso, come accade con l’indicatore del volume che ci offre un’idea di quanto venga
scambiata una moneta, sono valori facilmente alterabili dagli exchange per cercare di scalare
la classifica del sito portando più traffico.

123
I Token
Andando avanti con l’elenco troviamo i token su blockchain: i token
sono delle monete che non hanno una blockchain propria, perché
vivono su una blockchain già esistente e avviata.

Questa scelta è dettata dal fatto che non si vuole fare tutto il lavoro
dall’inizio creando la blockchain, stabilendo la tipologia del mining,
creando incentivi e così via, ma ci si vuole appoggiare ad una
blockchain dove c’è già traffico e miner.

Un esempio di token è lo StorageCoin, che aveva come obiettivo


quello di creare uno storage cloud decentralizzato, dove l’utente paga
un’altra persona affinché salvi i suoi dati, utile quando una persona
non dispone più di storage disponibile per esempio.

Altri invece come Augur, puntano a diventare ‘’un sistema di scommesse decentralizzato’’,
Binance Coin (BNB), invece è il token del famoso exchange Binance con il quale si possono
ottenere sconti sulle fee, oppure BAT, un token usato dal browser Brave per pagare la
pubblicità.

Insomma ci sono vari casi d’uso in cui tutti questi token non hanno la loro blockchain, ma la
maggior parte usa quella di Ethereum grazie alla sua flessibilità nel creare token che
possono servire per varie funzioni.

Tutti questi token sono stati alla base del fenomeno delle ICO (Initial Coin Offering,
riprendendo un po’ la nomenclatura delle IPO).

In questo caso non è un processo che porta alla quotazione in borsa, ma che porta
all’emissione di un token, cercando di trovare i soldi per poter sviluppare il progetto che si
aveva in mente.

Così facendo questo token, veniva principalmente venduto nel mercato con lo scopo di
raccogliere più finanziamenti possibili per sviluppare il progetto.

Per rendere la cosa più comprensibile prendiamo come esempio StorageCoin.

Non disponendo di fondi ma avendo un progetto valido è stato creato dagli ideatori del
progetto un numero definito di questi token che sono stati messi in vendita ad un prezzo
fisso in una pre-sale.

Tutti i soldi raccolti di solito andavano nello sviluppo del progetto, così se tutto andava bene
gli investitori in futuro avrebbero potuto vedere salire o scendere il prezzo del token
acquistato in base alla domanda/offerta una volta che esso era stato inserito nel mercato

124
globale, con la possibilità di avere un ritorno dall’investimento nel caso il token fosse stato
venduto ad un prezzo maggiore di quello di acquisto.

Questa forma di finanziamento è stata estremamente popolare, specialmente tra il


2016-2017, perché permettevano di ottenere grossi capitali senza avere nessuna
regolamentazione o tutele all’investitore.

Ad oggi infatti se si vogliono ricevere investimenti per startup, bisogna mettere sul mercato
equity o debito, offrendo tutta una serie di garanzie agli investitori trattandosi chiaramente
di un processo molto più complesso e meno sbrigativo.

Con le ICO invece gli investitori ricevevano solo un oggetto digitale con la promessa che
sarebbe andato a finanziare il progetto che potevano acquistare via internet addirittura
anche in completo anonimato.

Questa forma di raccolta fondi nell’immediato portava grossi vantaggi se si sfruttava a


dovere con un po’ di buon senso, ma siccome ogni cosa che attira ingenti somme di denaro
attira anche problemi ci furono molti progetti che si rivelarono dei veri e propri scam.

Con le grandi somme di denaro raccolte era facile cadere nella tentazione di scappare con il
malloppo ed è ciò che diverse volte successe.

È importante sottolineare che questo fenomeno ebbe un boom talmente grande che i titolari
del progetto potevano potenzialmente raccogliere addirittura centinaia di milioni nel giro di
qualche ora visto l’hype del momento.

Grazie a questo fenomeno e all’ingresso di grandi capitali questa si arrivò addirittura per la
prima volta nella storia alla rottura del muro dei 10k per Bitcoin.

Dunque, tornando a noi, abbiamo capito che le ICO hanno vari problemi:

1. Si sta fondamentalmente aggirando la regolamentazione vigente che è molto


restrittiva per quanto riguarda gli investimenti;
2. Non sono progetti nati alla stessa stregua di Bitcoin di cui non si sa chi sia il creatore.
Spesso infatti è successo che l’ente regolatore sia andato da chi era a capo di questi
progetti imponendo multe piuttosto salate;
3. L’investitore non è minimamente tutelato e non ha nessun diritto. Oggi comprando
quote di startup si diventa shareholder avendo automaticamente dei diritti, con le
ICO non succede la stessa cosa.

Inoltre, anche se tutto va per il meglio, il successo del progetto non necessariamente si
tramutava in ritorno per gli investitori.

Riprendendo il caso StorageCoin anche se questo cloud decentralizzato diventasse un


successo, non stava a significare per forza che il prezzo del token dovesse lievitare in
automatico perché non vi era nessuna diretta correlazione.

125
Aggiungiamo a tutto questo che i token oltretutto sono abbastanza scomodi da usare.

Nel caso infatti si voglia pagare qualcuno per tenere i file sul computer piuttosto che tenerli
su Google Drive, bisognerebbe ogni volta prima comprare il token per poi poter comprare
dello storage decentralizzato.

La domanda che ci poniamo in questi casi è: perché quando bisogna pagare non si usano
valute già esistenti invece di creare una nuova ‘moneta’ o token per ogni servizio?

Sarebbe molto più comodo pagare infatti con valute, come Bitcoin, che la gente possiede
già.

Se per usufruire ad esempio dello storage decentralizzato devo comprare un token, per
pagare meno fee sull’Exchange Binance o per pagare la pubblicità su Brave invece devo
comprare BAT, è come essere tornati parzialmente al baratto dove ogni servizio ha la sua
moneta.

Il meccanismo diventa molto più scomodo perché di fatto, non è user-friendly dover
acquistare ogni singolo servizio con la sua tipologia di token.

Per questo motivo, mentre i progetti migliori sono rimasti con una frazione minima di utenti
molti sono falliti miserabilmente.

Un altro rischio di tutti questi progetti decentralizzati, è quello di venir copiati.

Essendo il codice sorgente open source per garantire la massima trasparenza possibile, ci
sono stati casi in cui progetti interessanti centralizzati sono stati copiati, eliminando la
moneta/token introdotta e implementati con Bitcoin come sistema di pagamento.

Questo è ciò che è successo a BAT (Basic Attention Token) con il suo browser Brave. È
stato copiato l’intero browser togliendo di fatto la nuova moneta BAT emessa, ma rendendo
possibile il pagamento delle pubblicità ai Content Creator tramite BTC.

Per tutta questa serie di motivi, le ICO nel giro di 1 anno e mezzo ormai sono passate di
moda.

Quello che sta prendendo piede adesso è l’idea di avere sempre più token che rappresentino
un asset reale come l’equity di una società o uno strumento della finanza tradizionale.

Un modo per fare ciò, è tramite le STO (Security Token Offering).

Con le STO si cerca di dare all’investitore maggiori garanzie e tutele senza avere la necessità
di comprare una coin alternativa che renderebbe il servizio meno utile come accadeva prima,
oltre a darti la possiblità di riuscire a investire in startup e anche avere un fondo di
investimento.

126
Il vantaggio invece dal lato della startup che si affida a questa modalità sta proprio nel
raccogliere capitali in modo più veloce rispetto ai metodi tradizionali.

Come al solito, la regolamentazione per le nuove tecnologie non riesce a stare al passo con il
loro sviluppo, tanto che siamo già passati alle STO ma non ci sono nemmeno normative che
regolamentano le ICO.

127
Le Stablecoin
Altre altcoin sono le stablecoin, ovvero criptomonete che cercano di
risolvere ancora una volta un problema di bitcoin, ovvero la volatilità,
provando così a creare qualcosa che sia il più stabile possibile nel tempo.

Di default queste alternative si affidano ad altre blockchain già esistenti.

Non ci sono molti casi d’uso oltre al fatto che sono principalmente utilizzate
dai trader per spostare rapidamente fondi da un exchange all’altro piuttosto
che usate per rifugiarsi in caso di estrema volatilità del mercato ( per
mantenere il valore del capitale investito).

Le stablecoin si dividono in 2 tipologie:

- le prime sono dette fiat pegged coins (centralizzate), ovvero token legati al valore
delle monete fiat ( principalmente al dollaro) tramite una riserva detenuta da una
società. È d’obbligo quindi nominare Tether, con circa 3 miliardi di capitalizzazione
che la rende al momento la stablecoin più usata.

Tether è stata creata per permettere di spostare dollari facilmente da un exchange ad


un altro senza dover fare bonifici con un focus sul mercato cinese, dove sono stati
vietati gli exchange tradizionali.

Con Tether si è data la possibilità ai cinesi di comprare nei mercati che non sono
riconosciuti come regolamentati, detti anche OTC (over the counter).

Di fatto quando si acquista questo token la società ha un credito nei confronti del
cliente per la somma dei token che quest’ultimo ha acquistato, essendo un vero e
proprio titolo di credito.

Nonostante vari scandali in cui si pensava che Tether non fosse realmente coperto
dalle riserve di denaro dichiarate, continua ad andare avanti da diversi anni,
riuscendo a mantenere il prezzo abbastanza stabile nel tempo.

- le seconde invece sono stablecoin algoritmiche (decentralizzate), ovvero basate su


regole matematiche che cercano di dare incentivi per spingere il prezzo ad essere
stabile come NuBit o Maker Dao (unica applicazione di finanza decentralizzata valida
al momento [DeFi] insieme a Compound che girano su Ethereum).

Questi sono sistemi in cui di solito si hanno due token, uno più stabile mentre l’altro
più speculativo, che dovrebbero assorbire gli sbalzi tra domanda e l’offerta.

128
Il tutto deve avere gli incentivi economici per riuscire a spingere gli utenti ad
acquistare il token stabile quando sta calando di valore e a venderlo quando sta
salendo troppo.

Se vogliamo è un po’ l’idea di quello che fanno le banche centrali, con la differenza
però di non avere le stesse risorse di una banca centrale.

Inoltre anche queste sono considerate decentralizzate fino ad un certo punto, perché
il problema sta nel fatto che tutti questi algoritmi che cercano di incentivare le
persone a vendere o a comprare in base al prezzo hanno bisogno del prezzo di
mercato in un dato momento per capire che incentivo mettere in moto.

Questo input viene dato da un oracolo, cioè un soggetto a cui ci si appella (che non
dovrebbe avere conflitti d’interessi) per dare un’informazione in modo da fare da
intermediario tra la blockchain e il mondo reale.

L’oracolo ovviamente potrebbe sempre dare informazioni false e mettere in moto gli
incentivi sbagliati.

Molte di queste stablecoin come BitUSD e NuBits fallirono miseramente.

NuBits per esempio è per un po’ riuscita a mantenere la parità con il dollaro, ma nel 2018 è
collassata definitivamente a 4 centesimi a causa delle forze di mercato troppo avverse agli
incentivi che non sono riusciti a mantenere stabile il prezzo.

Le uniche che sembrano funzionare, grazie al fatto che non sono condizionate dal mercato,
sono quelle centralizzate che hanno dietro una società di cui ci si deve fidare come Tether e
in parte, anche se è troppo presto per poterlo dire, DAI, unica alternativa decentralizzata.

129
Ma anche qui nonostante quelli di Tether affermino di avere una riserva contenente tanti
dollari quanti i token emessi sul mercato, vediamo che non sempre riescono a mantenere la
parità con il dollaro.

130
Ripple e le altcoin che non sono delle vere e proprie
blockchain
Successivamente ci sono tutta una serie di altcoin che in qualche modo rientrano nella
categoria criptovalute senza avere nemmeno una blockchain.

Una di queste è Ripple, la terza per capitalizzazione al


momento della stesura della guida.

Questa è una coin estremamente centralizzata, che ha cambiato più volte natura nel corso
degli anni.

È controllata ad oggi da una società privata chiamata Ripple Labs, che ha creato dal nulla
come fa la Banca Centrale, circa 70-100 MLD di XRP nel loro conto, cominciando a
distribuirli nel corso degli anni nel mercato.

Ripple non ha una blockchain, è più una sorta di libro mastro (ledger) o blockchain privata
dove una serie di validatori validano le transazioni.

Ogni nodo della rete si collega a 7 validatori principali (quasi tutti controllati dalla Ripple
Labs) con il problema che la rete potrebbe divergere se non per il fatto che tutti i nodi si
connettono agli stessi validatori.

La loro visione è quella di rivoluzionare il sistema di scambio interbancario, praticamente


un’alternativa a SWIFT che fa comunicare una banca all’altra tramite bonifici bancari.

Per ora nessuna o veramente poche banche la stanno utilizzando davvero.

La loro mission è molto difficile da realizzare, perché SWIFT è accettata da molte banche
che di sicuro hanno i loro interessi per continuare a usare un servizio in cui sono i primi ad
avere investito. Sarebbe ingenuo affidarsi a Ripple, una società di terzi di cui non hanno il
controllo.

Per descrivere l’ecosistema, nella blockchain fittizia di Ripple le banche dovrebbero


scambiarsi dei token che rappresentano crediti in dollari, mentre il token XRP verrebbe usato
principalmente per pagare le fee all’interno del network.

Un’altro progetto, Stellar, è nato principalmente da un founder di Ripple


che aveva un visione leggermente diversa e di fatto sono molto simili tra
di loro.

Nemmeno Stellar utilizza una vera e propria blockchain e bisogna


affidarsi a dei validatori fidati centralizzati.

131
Possiamo dire che entrambe per raggiungere il consenso utilizzano una sorta di
Proof-of-Authority in cui bisogna fidarsi di questi enti centralizzati.

Oltre a queste ci sono altre coin un po’ più particolari come IOTA, Nano e Byteball.

IOTA ad esempio non usa il sistema a curva ellittica ma un sistema definito Direct Acyclic
Graph.

La vision di Iota è quello di costruire un ecosistema di


dispositivi IoT che comunicano tra di loro, scambiandosi
del valore autonomamente.

L’idea in IOTA è che non ci sono blocchi dove sono


contenute le transazioni, ma per eseguire una transazione
bisogna fare la PoW su due transazioni precedenti.

Invece di avere una catena di blocchi come in una blockchain, ogni transazione deve essere
collegata a due transazioni in modo da avere un network che tende a divergere e a
riconvergere in automatico come nell’illustrazione in basso.

Più una transazione viene ‘’minata’’ da una certa quantità di altre transazioni più quella sarà
sicura contro il double-spending.

Tutto questo meccanismo è molto complesso non solo da spiegare ma anche da realizzare,
perché la difficoltà di tutti questi sistemi sta nel far convergere il network verso uno storico
unico e divergerlo immediatamente in due storici diversi.

Per questo motivo tutti questi sistemi hanno di fatto un coordinatore centrale che gestisce la
storia della blockchain dicendo quali transazioni sono valide e quali no per evitare che ci
siano divergenze.

Ora, tutti questi progetti ambiziosi, in particolare IOTA, affermano in un futuro di riuscire a
eliminare questo punto di centralizzazione diventando realmente decentralizzati.

132
Il punto è che anche se ci riuscissero non ci sarebbe nessun reale vantaggio che
riuscirebbero a portare, dal momento in cui i compromessi che si riescono a fare sono
sempre quelli.

Se le transazioni sono gratis, ci saranno talmente tanti dati che un computer non riuscirà mai
a verificarle da solo, ci sarà così bisogno di un supercomputer per fare la verifica dei dati e di
conseguenza un utente normale non riuscirà mai a muoversi autonomamente nelle
operazioni di verifica.

Mentre se si facesse in modo che le transazioni costino tanto così da averne meno, non si
risolverebbe nulla di nuovo rispetto a ciò che fa già Bitcoin perché non diventa un sistema
scalabile.

Qual è l’unico vantaggio rispetto ad un'architettura blockchain?

Qualora si riuscisse ad implementare quello che è stato promesso gestendo il tutto senza
un’autorità centrale, il vantaggio sarebbe quello di avere un po’ più di gradualità sulla
sicurezza.

Nel senso che oggi con Bitcoin tra 0 e 10 minuti, il tempo di mining di un blocco, si ha zero
sicurezza, mentre con questo sistema ogni tot. secondi la mia transazione diventerebbe
sempre più scolpita nella pietra, perché le transazioni che vengono dopo la confermano
aumentando man mano la sicurezza.

IOTA inoltre ha fatto scelte abbastanza discutibili come quella di prendersi il rischio di
implementare nuove funzioni crittografiche di base non ancora testate, a differenza di
Bitcoin in cui di nuovo non è stato inventato nulla e si sono messe insieme tutte invenzioni
collaudate, testate e funzionanti al 100%.

Anche a livello di utenti IOTA è scesa parecchio, visto che un tempo erano nella top 10 a
livello di capitalizzazione, nonostante un reparto marketing che si sta dando molto da fare
annunciando grandi partnership molto spesso, come per esempio Bosch, Jaguar e altri
grandi Brand.

La criptovaluta Nano invece è stata l’artefice del fallimento di un exchange italiano chiamato
BitGrail, perché a causa di gravi vulnerabilità di programmazione di Nano è stato reso
possibile un grosso furto direttamente dall’exchange che si era ritrovato a gestire diverse
centinaia di milioni di euro di controvalore.

133
Il trilemma della Blockchain
Un grande problema delle altcoin, ma possiamo dire in generale alle criptomonete, è il
trilemma della Blockchain che ha come punti cardine decentralizzazione, sicurezza e
scalabilità.

Trilemma è un termine coniato da Vitalik Buterin, e sta a significare che è praticamente


impossibile ottenere una blockchain che sia allo stesso modo scalabile, decentralizzata e
sicura.

Ogni volta che si dovesse concentrare su uno di questi aspetti, uno dei tre verrebbe
sicuramente meno.

Ad oggi nessuna blockchain ancora, riesce a garantire tutti e tre principi e per questo sono
nate numerose coin che cercano di soddisfare tutte un bisogno diverso.

È automatico che se si preferisce essere decentralizzati avendo un sistema sicuro come


Bitcoin bisogna rinunciare qualcosa in termini di scalabilità (anche se ci sono già soluzioni
che si stanno sviluppando), mentre se si vuole avere una massima efficienza in termini di
scalabilità, processando moltissime transazioni al secondo ed essere al contempo sicure un
sistema centralizzato, fino ad oggi non è possibile farlo come succede con Ripple e Stellar.

134
In quest’immagine ad un estremo vi è il meglio che si può avere quando si cerca un sistema
sicuro in cui non ci si deve fidare di nessuno (trustlessness) e resistente alla censura, mentre
dall’altro vediamo il servizio Amazon Web Services che con i loro database garantiscono il
massimo livello di performance, essendo sì più veloci ed efficienti, processando un sacco di
transazioni al secondo, ma con il compromesso di volersi affidare ad una terza parte come
Amazon che gestisce tutta l’infrastruttura.

Tutte le altre invece sono nella terra di mezzo e creando un problema di cannibalismo perché
offrono più o meno dei tradeoff molto simili rinunciando a determinate caratteristiche per
altre ancora, anche se alla fine dei giochi tutte hanno proposte piuttosto simili.

È importante capire di cosa si ha bisogno, se si vuole maggior efficienza Amazon potrebbe


essere la soluzione migliore accettando di aggregarsi ad un sistema centralizzato, mentre se
si vogliono creare molte più applicazioni concrete grazie ad un linguaggio flessibile la
soluzione potrebbe essere Ethereum, oppure Bitcoin potrebbe essere la soluzione se si
preferisce la sicurezza e la decentralizzazione.

Difficilmente una riesce ad affermarsi più delle altre, tutte si rubano gli utenti a vicenda.

Questo nel mondo crypto è un grande problema infatti, non si sta competendo solo per gli
utenti, ma anche per delle risorse scarse che potrebbe essere la potenza di calcolo e
l’energia elettrica necessaria per renderle sicure, risorse che potrebbero essere invece tutte
impiegate in progetti che realmente portano del valore all’utente.

Se tutte si cannibalizzano a vicenda per delle risorse scarse che garantiscono la sicurezza,
non solo tutte avranno pochi utenti risultando difficile per una affermarsi, ma tutte saranno
poco sicure e facilmente attaccabili.

È infatti questo uno dei motivi di quello che è accaduto recentemente ad Ethereum Classic
quando a gennaio ha subito forti attacchi, in cui il 51% dei miner faceva attività di
double-spending creando catene molto lunghe perché non era particolarmente costoso
minare in questa blockchain non essendoci tutti gli incentivi economici per mantenere sicura
la rete.

Ethereum invece, ha il vantaggio di avere tanti sviluppatori e utenti che lavorano sul
protocollo in poco tempo, il che la rende relativamente stabile rispetto a tutte le altre che
sono molto simili.

135
Un altro caso è quello delle privacy coin, Grin e Beam che si basavano su un nuovo algoritmo
molto efficace chiamato MimbleWimble.

Qui ci sono stati due team paralleli che si sono messi a sviluppare delle cryptocurrencies
nello stesso protocollo.

Il fatto è che entrambe utilizzavano un protocollo che per la prima volta ha portato nel
settore un po’ di innovazione, ma già dal giorno 0 di questi progetti, erano uscite due
versioni differenti che si cannibalizzavano per gli utenti.

Come ormai potete aver capito, molti pensano che è difficile immaginare uno scenario dove
tutte queste altcoin che sono nel mezzo continueranno a sopravvivere, perché le risorse
come l’energia elettrica necessaria per tenerle al sicuro sono limitate, tralasciando la
difficoltà dell’utente nel momento in cui dovrà sceglierne una per un determinato bisogno.

136
Altri esempi di cryptocurrencies
Se molto spesso Bitcoin viene equiparato all’oro digitale, c'è stato un periodo in cui degli
utenti promuovevano Litecoin come digital silver cercando di cavalcare l’onda dell’hype nel
tentativo di attirare utenti.

Tralasciando il fatto che è sbagliato fare questo paragone, l’oro e l’argento nel corso del
tempo sono riusciti a continuare a esistere perché entrambi venivano in qualche modo
utilizzati in base alla somma che si doveva pagare.

In antichità si usava l’oro per trasportare grosse quantità di valore perché è molto compatto
e si riusciva a concentrare tanto valore con poca massa, mentre l’argento veniva usato
quotidianamente perché era molto più facile usarlo quando bisognava fare piccoli
pagamenti.

Si può fare questo parallelismo nel mondo digitale?

No, perché è vero che Bitcoin ha alcune caratteristiche dell’oro, ma a differenza di


quest’ultimo non si hanno difficoltà a spostare piccole somme come 0.000001 btc.

Bitcoin è divisibile fino all'ottava cifra decimale, quindi non si ha bisogno di Litecoin descritto
come argento digitale.

Ripercorrendo la storia delle criptomonete, un esempio che va a sottolineare il fatto di non


usare mai lo stesso algoritmo di mining fu Cailedcoin, la prima generazione di altcoin che
usò lo stesso algoritmo di Bitcoin.

Questa avendo però molti meno miner e quindi meno hashrate, venne attaccata in particolar
modo dal gestore della prima storica mining pool di Bitcoin Eligius ( nome ripreso dal santo
protettore dei coniatori di moneta) che per qualche motivo era avverso alle altcoin e visto
che i fondatori di questa cripto erano stati particolarmente furbi ad usare lo stesso algoritmo
SHA-256, per punirli provocò un attacco al 51% con tutto l’hashrate in suo possesso
distruggendo la rete.

Piccola curiosità: Eligius tra l’altro è la stessa mining pool che notarizzò in ogni blocco una
preghiera, se ricordate l’esempio fatto qualche pagina fa.

137
Verge, un’altra privacy coin
Verge per esempio ha avuto un dipartimento di marketing molto efficace perché erano
riusciti a firmare una grossa collaborazione con Porn Hub per introdurli nel loro sistema.

Verge ha un sistema basato su vari algoritmi di mining per cercare di decentralizzare il


mining stesso.

Quindi in parallelo si possono usare diversi algoritmi di mining, ognuno con la sua difficoltà
per minare su Verge.

La loro idea, non particolarmente furba, era che se anche un algoritmo fosse stato
centralizzato da un miner, gli altri avrebbero potuto comunque usare uno tra quelli rimasti
senza essere esclusi per la poca potenza computazionale a disposizione.

Un miner però riuscí a trovare un bug in un algoritmo di mining che gli permise di ridurre il
timestamp del blocco abbassando la difficoltà, in modo da minare il 51% dei blocchi avendo
solo il 2% del hashrate totale.

In questo modo si riuscì a manipolare uno degli algoritmi che controllavano la rete
comportando una grande vulnerabilità perché era stato poco testato.

Inoltre, dopo la dichiarazione da parte loro di aver sistemato il problema ci fu un altro attacco
praticamente uguale che fece ulteriori danni.

Questo a rimarcare com’è pericoloso non avere un team ridotto di sviluppatori che fa review
sul codice periodicamente.

Le altcoin quindi hanno spesso dei rischi nascosti che sono poco visibili finché non si
verificano.

Senza un team preparato il sistema è molto vulnerabile.

138
GLI EXCHANGE
Gli exchange non sono altro che delle piattaforme appartenenti principalmente a delle
società che offrono la possibilità di fare trading, quindi di comprare, vendere o scambiare le
diverse criptovalute.

I più famosi a livello mondiale che muovono grandi volumi sono Binance e Coinbase, altri
minori come Bitfinex e Kraken, mentre il più antico è The Rock Trading fondato da italiani nel
2011.

Gli exchange si dividono in due tipi:

- Quelli che fanno trading da Bitcoin verso monete tradizionali fiat;


- Quelli che fanno trading da Bitcoin verso altre altcoin;

Spesso molti exchange svolgono entrambe le funzioni.

Ad oggi non ci sono molti exchange user-friendly e semplici da usare, il più semplice è
Coinbase che in cambio di questa semplicità d’interfaccia chiaramente ha dei prezzi più alti.

Per chi fa trading e ha una certa dimestichezza con grafici e piattaforme di questo tipo non
dovrebbe comunque rappresentare un problema muoversi al loro interno.

Per i più esperti vi è un orderbook dove possiamo piazzare i nostri ordini sia per quanto
riguarda l’acquisto che la vendita, avendo subito un’idea di che prezzi ci sono nel mercato.

139
Exchange centralizzati ed exchange decentralizzati
Coinbase è un esempio di exchange centralizzato dove è obbligatoria la procedura di
autenticazione dell’utente con documenti d’identità e prova di residenza secondo le norme
dell’antiriciclaggio per poter effettivamente acquistare.

Tutti i soldi che i clienti inviano in questo caso finiscono all’interno in un wallet unico
dell’exchange.

Il pro dei servizi centralizzati è come sempre determinato dall’efficienza che offrono,
eseguendo operazioni di compravendita e di scambio pressoché istantanee grazie al fatto di
disporre di molta liquidità.

Per questo motivo sono gli exchange più usati dai trader esperti che fanno centinaia di
operazioni al giorno.

Per decentralizzato invece s’intendono exchange come per esempio Bisq (exchange
Peer-to-Peer) dove per poter operare bisogna scaricare un software che ti permette di non
stare nel loro server, inoltre integra Tor che ti permette di comunicare con le altre persone in
completo anonimato.

In questo modo avviene uno scambio delle informazioni sulla domanda di vendita e offerta
d’acquisto e quando le due parti raggiungono un accordo ci si mette in contatto con un
soggetto detto arbitrator per la procedura di scambio crypto-euro o dollaro tramite un
bonifico.

Il tutto viene gestito da un escrow, una specie di arbitrator che in caso di contenzioso
verifica che le due parti abbiano svolto il loro compito in completa buona fede senza cercare
di fregare la controparte.

Viene usato principalmente per fare acquisiti meno frequentemente e in caso non si voglia
dare i propri dati personali all’exchange.

L’exchange decentralizzato (DEX) più atteso è stato quello di Binance, una compagnia che in
ambito crypto si sta muovendo molto bene. Ecco un articolo per approfondire.

140
Il mercato nero delle criptovalute
Vi sono inoltre siti dove è possibile comprare direttamente dal venditore dei bitcoin, senza
lasciare traccia dello scambio avvenuto grazie a siti come LocalBitcoins e Hodl Hodl.

Sono visti come un modo per recuperare un po’ di privacy, evitando tutte quelle violazioni
che possono nascere quando per esempio uno stato chiede delle informazioni agli exchange
riguardo i propri cittadini in merito al riciclaggio di denaro sporco.

La storia ci dimostra come nel tempo vari exchange possono fallire, come è successo con
Cryptopia più recentemente, o Mt.Gox che ha creato un buco di 800k di Bitcoin equivalenti a
quasi un miliardo di dollari all’epoca.

Il fatto è che gli exchange sono stati creati come servizi di compravendita di cripto e non
come banche che custodiscono soldi.

Un'alternativa molto consigliata per non perdere i propri soldi, oltre al fatto di consigliarvi di
acquistare un Ledger, è quello di tenere le proprie crypto all’interno di un software wallet.

Quando ci si affida agli exchange per comprare criptomonete, bisogna mettere in preventivo
qualsiasi calamità che potrebbe succedere, come un attacco hacker, la chiusura imminente
oppure anche una fuga dei proprietari con i fondi degli utenti.

Bisogna diffidare di questi servizi e spostare immediatamente tutti i fondi appena comprati
in un wallet sicuro al quale solo noi abbiamo accesso, perché stiamo parlando di un servizio
centralizzato creato ma applicato a un sistema completamente decentralizzato che non
siamo obbligati ad usare, dal momento in cui possiamo paragonarli ad una falsa copia delle
banche che hanno continuo accesso ai nostri fondi in qualsiasi momento.

Vi ricordo che Bitcoin è stato costruito in modo da non fidarsi di nessuna terza parte, ad
oggi con tutti i servizi nati ci si può appoggiare dove si vuole per acquistare le proprie
crypto.

141
SMART CONTRACT
Con il termine Smart Contract si intende il concetto di avere dei soldi bloccati in un contratto
su blockchain e sbloccarli quando si verificano determinate condizioni.

Cosa spinge due parti ad adempiere un contratto oggi?

- Etica: rispetto i termini perché penso sia giusto, è quello che ci spinge invece di
rubare la frutta dal fruttivendolo a pagarla prima di andarcene;
- Pressioni sociali, desiderio di preservare la propria reputazione. Non si vuole essere
considerati un cliente non affidabile non pagando la merce anche se si vorrebbe farlo;
- Violenza o ripercussioni legali che ci possono essere con le spese tra tribunali e
avvocati nel momento in cui non si paga un fornitore per esempio.

Lo smart contract si pone ad un livello superiore a tutto questo.

È un contratto digitale in cui l’adempimento viene garantito da un protocollo informatico.

Il rispetto del contratto si ha a prescindere perché è tutto automatizzato. Una volta impostati
i termini del contratto si può effettuare senza che si mettano in gioco etica/pressioni sociali o
ripercussioni legali.

Esempio

Macchinetta del caffé – Smart Contract (molto semplicemente ad un


quantitativo di moneta il software installato eroga il bene una volta
riconosciuta quella moneta).

In particolare, sono considerate molto sicure finché il valore della merce non è
particolarmente elevato. Se invece all’interno ci fossero lingotti d’oro quella
macchinetta non resisterebbe molto senza essere scassinata dato che il
valore del bene supera il costo degli attrezzi per scassinarla.

Lo Smart Contract nella blockchain si può immaginare come una cassaforte in cui inseriamo
dei soldi, dove per tirarli fuori bisogna rispettare certe condizioni di spesa come quella di
fornire una firma digitale.

Al tempo stesso la scatola altro non è che un output di una transazione (che può essere
aperta solo con le condizioni espresse nell’output, solitamente tramite la firma digitale della
chiave pubblica corrispondente).

Gli Smart Contract possono essere paragonati quindi a delle ‘’scatole’’ con condizioni di
spesa espresse in un linguaggio di programmazione detto Script.

142
Un linguaggio informatico esattamente come i vari Python, Java o Javascript.

Script è un linguaggio specifico per capire le condizioni di spesa all’interno di Bitcoin ed è


caratterizzato dal fatto di:

1. Non essere turing complete, quindi è limitato nelle operazioni da fare, questa
caratteristica lo rende più sicuro. Si può quindi verificare quale sarà l’output
dell’esecuzione del codice, mentre con linguaggi Turing complete come quelli citati
sopra, non si può verificare formalmente quale sarà l’output dell’esecuzione del
codice finché non si esegue.

2. essere Stack based (caratterizzato da sistema di stack, una lista in cui per verificare il
procedimento di una funzione ci si basa sempre sulla prima funzione introdotta nella
lista);

3. di avere lo Script è incluso sia negli input (inserendo le condizioni necessarie per
spendere) che negli output (definendo le condizioni necessarie per spendere) .

Come viene validato che l’esecuzione di uno smart


contract sia corretta?

Mettiamo caso che ci sia una transazione sulla rete e nel mio computer in cui gira un nodo
Bitcoin la veda, volendo assicurarsi che l’esecuzione sia stata corretta.

Il nodo deve verificare che la scatola sia stata aperta correttamente, riuscendo a capire chi
può spendere quei bitcoin in modo da considerare invalida una transazione.

Ciò per evitare che Alice ad esempio spenda i soldi di Bob quando invece non ne ha il diritto.

143
COME SI RISOLVONO I
PROBLEMI DI BITCOIN?

Abbiamo visto nel corso nella guida come Bitcoin abbia un problema riguardante la
scalabilità.

I blocchi blockchain infatti hanno un numero limitato di MB che possono contenere e di


conseguenza un limite massimo di transazioni.

Ad oggi questo limite è di circa 10 al secondo, un numero relativamente basso se pensiamo


che VISA ne processa 20k al secondo.

Tutto questo è necessario però ai fini della sicurezza.

Se Bitcoin riuscisse ad eseguire le transazioni al secondo che riesce a processare Visa, il


computer non solo non reggerebbe, ma non sarebbe più possibile scaricare l’intera
blockchain gestendo un nodo da un pc qualsiasi e creando vari problemi di centralizzazione.

Nelle blockchain per risolvere tutta una serie di problemi legati alla scalabilità bisogna
attuare degli aggiornamenti con degli upgrade che devono avere una caratteristica ben
specifica che abbiamo giá in parte spiegato, ovvero devono essere retrocompatibili.

Se non si facessero update retrocompatibili infatti tutti i nodi dovrebbero scaricare


tassativamente la nuova versione del software per evitare che i nodi vecchi non comunichino
con loro.

Per esempio, viene definito che con il nuovo update i blocchi non sono più da 1 MB ma da
10 per farci stare più transazioni.

Nel momento in cui ci sono diverse versioni della blockchain tra i nodi perché non tutti hanno
aggiornato le regole del network succederà che i nodi che hanno fatto l’upgrade
considereranno validi i nuovi blocchi che escono da 10 MB, mentre i vecchi nodi lo
rifiuteranno immediatamente perché seguono ancora le regole vecchie in cui i blocchi sono
da 1 MB.

Abbiamo quindi due tipologie di nodi che hanno due versioni differenti di un network
decentralizzato e con un sacco di utenti dove la difficoltà aggiuntiva, oltre al fatto di riuscire
a contattarli tutti non sapendo chi sono e dove si trovano, è quella di riuscire a metterli
d’accordo per fargli scaricare il nuovo aggiornamento.

144
Oggi infatti sarebbe praticamente impossibile mettere d’accordo tutti i nodi per fare un
aggiornamento non retrocompatibile, mentre agli albori siccome gli utenti che usavano
attivamente Bitcoin erano talmente pochi, bastava semplicemente un post nei forum più
seguiti del settore come Bitcoin.talk per aggiornare tutti della novità.

Proprio qui, Satoshi Nakamoto con un post il Luglio del 2010, quando si era accorto che era
presente un bug nel codice essendo ancora alla versione 0.3, fece un post consigliando a
tutti di fare upgrade alla versione 0.3.6 per risolverlo.

In ogni sistema basato sul consenso, i nodi devono seguire tassativamente lo stesso sistema
di regole, per ovviare a questo problema di compatibilitá si sono introdotti upgrade
retrocompatibili, senza i quali la rete inevitabilmente si dividerebbe.

Chiarito questo concetto andiamo ad analizzare facendo vari esempi di tutte le casistiche in
cui i nodi hanno due versioni differenti e cosa potrebbe succedere.

1° Scenario

Abbiamo due blockchain diverse formate da due tipologie di nodi gialli e blu che seguono
due gruppi di regole diverse. I blu le nuove e quelli gialli le vecchie.

145
Se le regole blu non sono retrocompatibili il network si dividerà in due perché ci saranno i
blocchi gialli che seguiranno le vecchie regole rifiutando quelle blu e viceversa, formando
due catene autonome diverse.

Questo é il caso di Bitcoin Cash dove gli sviluppatori hanno voluto aumentare la capacità dei
blocchi creando una nuova regola. Così facendo al momento della creazione della nuova
blockchain gli utenti che avevano già Bitcoin hanno ottenuto la nuova moneta BCH.

2° Scenario

In questo caso ci sono due set di regole (di ciò che è permesso fare) che si intersecano e
sono rappresentate dai blocchi verdi.

La linea tratteggiata rappresenta il momento in cui inizia l’upgrade con un nuovo set di
regole.

Finché viene creato un blocco verde la rete non si divide perché va bene ad entrambe le
tipologie di nodi, ma appena viene creato un blocco blu o giallo la rete si divide perché una
non va bene all’altro gruppo.

Il blocco viene ignorato aspettando che esca un blocco di cui si riconoscono le regole.

Come si può notare nell’immagine, dopo il primo blocco blu è stato creato un blocco verde
che dovrebbe essere accettato a questo punto da entrambi.

Invece viene considerato invalido perché se un blocco è costruito sopra uno considerato
precedentemente invalido da una delle due tipologie di regole non viene preso in
considerazione, anche se ora segue le regole giuste.

146
3° Scenario

Nel terzo caso chiamato SOFT FORK, troviamo le nuove regole che sono un sottoinsieme di
quelle vecchie.

Qui i blocchi blu sono diventati tutti verdi perché si sono intersecati con quelli gialli.

Normalmente, se ci sono due catene valide, quella che viene seguita è sempre quella più
lunga.

Nell’immagine qui sotto, ai nodi gialli vanno bene sia i blocchi gialli che i verdi quindi
semplicemente seguiranno come abbiamo detto in più riprese la catena più lunga.

In questa casistica infatti non è detto che la rete si divida in due, per questo possono esserci
a loro volta due casi:

1. Nel caso in cui i blocchi blu, diventati verdi grazie all’intersezione con quelli gialli
seguano la maggioranza riuscendo a produrre più blocchi rispetto a quelli che
devono ancora fare upgrade, allora non ci sarà split nella rete perché tutti
convergeranno verso la nuova catena.
2. Se invece accade il contrario, per esempio quelli che hanno fatto upgrade ( nodi verdi
che con l’upgrade hanno stabilito che possono creare blocchi massimo di 500 kb)
producono meno blocchi di quelli che devono ancora farlo ( nodi gialli, che producono
blocchi al massimo di 2 MB) ci sarà uno split del network, perché se il prossimo
blocco sarà da 1 MB a quelli nuovi non andrà bene, mentre ai nodi vecchi sì.

Questo è un caso in cui restringendo quello che si può fare può esserci come non
esserci uno split della rete, a seconda di chi riesce ad avere la maggioranza.

147
L’idea per evitare lo split è fare in modo che i nodi con le nuove regole siano sempre
maggiori di quelli che seguono le vecchie regole.

Non per forza devono essere il 100%, basta che sia una piccola minoranza, in modo così da
non avere abbastanza hashrate per creare un blocco prima degli altri.

Se invece viene deciso di fare un update retrocompatibile e vi è solo un nodo che segue le
nuove regole, va a finire che sarà tagliato fuori dal sistema, perché tutto il network seguirà
regole differenti rispetto alle sue.

Questo sistema di upgrade retrocompatibile evita lo split del network a patto che ci sia
almeno una maggioranza che segue le nuove regole.

4° Scenario

Nel caso in cui invece le nuove regole ( nodi blu) comprendano un perimetro più ampio
rispetto a quelle vecchie ( nodi verdi) è inevitabile che ci sia uno split.

Viene infatti chiamato HARD FORK.

Qui anche se quelli che seguono le nuove regole sono il 99%, quella minoranza dell’1% che
ignorerà i blocchi nuovi dopo l’aggiornamento continuerà con la sua catena che risponderà
solo alle vecchie regole perché accetterà solo quelle.

148
Cerchiamo di comprendere meglio.

Per lunghi anni il tema della grandezza dei blocchi ha diviso la comunità Bitcoin nel decidere
se aumentare o meno la dimensione massima consentita nel blocco.

Nei momenti di grande traffico infatti le fee arrivarono addirittura intorno ai 40 dollari come
accade nel 2017, quando Bitcoin arrivo quasi a 20k di prezzo perché tutti volevano
comprare BTC facendosi includere la transazione nel blocco e quindi di conseguenza le fee si
alzarono grazie a questo clima di competizione.

Aumentando la dimensione massima consentita però si creavano vari problemi.

Tralasciando il fatto che la trasmissione del blocco nella rete sarebbe stata più lenta perché
un blocco da 1 MB si propaga molto prima rispetto ad uno di 10, il problema in sé non stava
nel fatto di aspettare 10-20 secondi in più per ricevere il blocco, ma in quei 10-20 secondi
che si davano di vantaggio al miner precedente, il quale otteneva così un vantaggio
competitivo non da poco disponendo di una buona percentuale di hashrate totale come il
30-40%.

Anche se si introducesse questa modifica, non si renderebbe il sistema più scalabile perché
si passerebbe da un blocco da 1 MB con 7 transazioni al secondo ad uno con 10 MB e 70
transazioni al secondo, non riuscendo a colmare ancora il grande gap con Visa.

Ad aggiungersi, è il fatto che non sarà più possibile per chiunque scaricare un blocco da
grandi dimensioni come 1 GB in tempi relativamente brevi perché solo chi disporrà di una
buona banda e di un buon computer rimarrà competitivo aumentando di fatto la
centralizzazione.

Per finire il terzo punto critico a cui volevo arrivare è che non sarebbe un update
retrocompatibile, perché quelli che non aggiornano continuano a creare blocchi con massimo
1 MB e se fanno parte di una catena minoritaria che creerà questi nuovi blocchi più grandi,
non verranno mai seguiti dalla rete generando un Hard Fork.

Vediamo un esempio di SOFT FORK nel passato.

149
Il problema iniziale di Bitcoin era il metodo di firma delle transazioni.

Nei capitoli precedenti abbiamo visto che le transazione Bitcoin vengono identificate tramite
un hash.

La problematica era che le firme digitali della transazione potevano essere modificate in
modo che la firma rimanesse valida anche se in realtà era leggermente diversa.

Così facendo, come abbiamo visto, se si modifica il campo firma anche con un solo numero
nella codifica della transazione ( magari un 0 che diventa 1) tutto l’hash cambiava
completamente non rendendo più valido l’identificativo della transazione.

Questo ha rappresentato un problema più o meno serio a seconda dei vari casi,
analizziamoli.

Transaction malleability

Agli inizi di Bitcoin gli exchange identificavano le transazioni tramite un transaction id


(l’hash) com’era giusto che fosse, così quando l’utente doveva riscuotere una certa somma
di denaro, l’exchange inviava la transazione di ritiro dei bitcoin, che successivamente
sarebbero stati accreditati nell’indirizzo del portafoglio del cliente, fornendogli il transaction
id per verificare che la transazione fosse stata inviata al suo portafoglio.

A causa di una vulnerabilità un cliente o hacker poteva andare a modificare il campo firma
della transazione poco prima che venisse inclusa in un blocco facendola risultare ancora
valida nonostante l’identificativo della transazione fosse stato cambiato.

Nel momento in cui l’exchange invia la transazione con il transaction id, l’utente hacker poco
prima che la transazione venisse inclusa in un blocco la modificava, così quest’ultimo
andando a verificare nella blockchain poteva fornire la prova di non aver trovato nessuna
transazione con quel transaction id, reclamando al servizio clienti dell’exchange di non aver
ricevuto niente in modo da farsi inviare un’altra transazione al suo wallet.

In questo modo l’utente in grado di manomettere queste transazioni riusciva a farsi inviare
più transazioni al suo indirizzo, cambiando ogni volta transaction id e mascherando il fatto
come un errore del sistema all’exchange.

La soluzione di fatto sarebbe stata quella di identificare le transazioni in altro modo.

Vediamo ora qual era la natura del problema e come è stato mitigato.

150
Non l’abbiamo trattato nei dettagli però il sistema di firme digitali su Bitcoin funziona su un
modello matematico che segue una curva ellittica (ECDSA) simmetrica rispetto all’asse
orizzontale.

Di fatto l’unica cosa che ci interessa sapere è che una firma è un punto sulla curva valido,
essendo simmetrica sia nel lato negativo che quello positivo.

Il problema era che per lo stesso messaggio prodotto da una chiave privata si poteva firmare
il messaggio in due modi: sia dal lato positivo della curva che da quello negativo.

Prendendo quindi la transazione e cambiando semplicemente il punto sulla curva da positivo


a negativo (+ → - tradotto di fatto in uno 0 che diventa 1) è possibile creare una firma
ugualmente valida che abbia un bit leggermente diverso, cambiando così l’identificativo della
transazione.

Tutti i nodi che vedranno sia la firma A che la B le accetteranno perché sono entrambe
valide, ma avranno due identificativi/hash completamente diversi (siccome abbiamo detto
che cambiando solo una virgola tutto l’hash cambia).

Il problema è stato risolto impostando che le firme si potevano accettare solo se firmate dal
lato negativo, restringendo così il perimetro di ciò che era permesso fare grazie ad uno Soft
Fork.
151
Questo upgrade è stato di fatto implementare quando si era sicuri che una buona parte del
network fosse già d’accordo ad adottare queste nuove regole, lasciando una finestra
temporale agli altri per adattarsi ed evitando quindi che la catena vecchia fosse la più lunga
e si dividesse il network.

Il processo per ottenere il coordinamento tra tutti i miner senza la necessità di comunicare
tra di loro è quello di segnalarlo nel blocco modificando uno degli ultimi 0 con un 1 alla fine
del version number 0x20000000 per far capire che si è pronti per attivare effettivamente le
nuove regole ed eseguirle per davvero.

In questo modo solo quando si raggiungerà un consenso del 95% da parte dei miner negli
ultimi 1000 blocchi prodotti si introdurrà di fatto l’upgrade con la regola di eseguire firme dal
lato inferiore della curva.

Il problema della transaction malleability, ovvero del fatto di riuscire a modificare l’id della
transazione senza modificarne la validità, non è stato perfettamente risolto da questo tipo di
soluzione.

Con questo cambiamento si era risolta la falla che chiunque potesse modificare la
transazione di chiunque nel network, creando danni alla gente, però non si era risolto il fatto
che chi avesse in mano la chiave privata, per come era stato fatto l’algoritmo di firma
digitale, era sempre in grado di produrre firme diverse (tradotti con punti diversi della curva)
ma ugualmente valide.

Questo infatti era possibile perché le firme digitali non erano deterministiche.

Ogni volta che si firmava un messaggio la firma doveva essere leggermente diversa per
ragioni di sicurezza, legate al fatto che una firma sempre uguale poteva creare delle
vulnerabiltà con il rischio (senza entrare nel tecnico) che la chiave privata fosse parzialmente
esposta.

Significava quindi che ora con l’aggiornamento, solo il proprietario della chiave privata
poteva prendere la transazione che aveva già inviato a qualcuno e modificarne la firma in
modo che fosse sempre valida (cambiando dei valori nell’id della transazione).

Ciò presentava quindi una serie di situazioni dove anche questo diventava un problema.

Quindi qual era l’unico modo per risolverlo alla radice?

La soluzione era quella di fare in modo che la parte dove vi era la firma digitale (ovvero per
essere tecnici lo ScriptSig nel campo input) non venisse usata per calcolare l’id della
transazione.

Anche se si modificava la firma digitale l’ID della transazione rimaneva lo stesso.

152
Non si poteva però imporre una nuova regola nell’immediato dove non bisognava più
guardare il campo della firma digitale per validare la transazione, perché si sarebbe
provocata una divisione tra i nodi nelle regole da seguire.

Per attuare il cambiamento si è proposto di creare un nuovo campo nella transazione


chiamato SegWit, ovvero Segregated witness, termine più corretto e specifico per indicare
lo spazio delle firme.

Il vecchio campo ScriptSig era più generico in quanto delineava tutto ciò che avrebbe
soddisfatto le condizioni di spesa come la firma o qualcos altro.

Confrontiamo lo scripting delle due transazioni per capire cosa è cambiato nello specifico.

- P2PKH (Pay-to-public-key-hash, vecchia versione legacy) output script

Tradotto di prendeva l’hash della chiave pubblica (HASH160 ab..e7) e si davano tutta una
serie di istruzioni affinché i nodi sapessero che operazioni fare.

- P2WPKH (Pay-to-witness-pub-key-hash, nuova versione SegWit) output script

Qui come notiamo è molto più semplice: sono state eliminate le istruzioni prima e dopo,
essendoci soltanto l’hash della chiave pubblica che è preceduto da uno 0 che fa da version
number.

L’idea è che un nodo quando vede questa struttura capisce in automatico che tipo di
operazioni deve effettuare, senza che venga definita come nel caso precedente,
risparmiando in questo modo qualche byte e rendendo le transazioni meno pesanti in modo
da inserirne anche di più nei blocchi.

Normalmente nelle transazioni vecchie nel campo input si ha il transaction id (txid), l’indice
di output (0) e lo scriptSig dove si trova la firma di Alice o più in generale la firma delle
condizioni di spesa che bisogna fornire.

153
In una transazione di tipo SegWit invece, nello scriptSig non vi è nulla, mentre il
soddisfacimento per le condizioni di spesa è racchiuso in un nuovo campo detto Witness.

I nodi vecchi non considerano il campo witness dove ora sono le condizioni di spesa che loro
si aspettavano in scriptSig rendendo di fatto la transazione spendibile da chiunque.

I nodi nuovi però, vedendo il campo witness si assicurano che certe condizioni di spesa
vengano rispettate.

Con questa nuova tipologia di transazione si è ottenuto:

- che entrambi i nodi abbiano lo stesso modo di calcolare l’id della transazione pur
cambiando lo scripting;

- che non si tenga più conto della firma nell’output perché lo scriptSig, essendo vuoto
non può più essere modificato perché non c’è nulla da modificare;

- l’unica differenza è che i nodi vecchi che non si sono aggiornati perché non possono
o non vogliono, non controllano davvero che vengano rispettate le condizioni di
spesa mentre quelli nuovi lo fanno.

Perché tutto questo sistema funzioni quindi è necessario che la maggior parte (anche l’80%)
dei nodi abbia fatto l’update, in modo che si assicurino il rispetto delle condizioni di spesa.

Infatti, se fosse stato implementato quando solo una minoranza era in grado di controllare le
condizioni, sarebbe stato possibile spendere soldi di altri senza che i vecchi se ne
accorgessero creando delle potenziali truffe.

154
Questo è il modo in cui è stato risolto il problema della malleability delle transazioni.

Una conseguenza del fatto che i vecchi nodi ignorano il campo witness è quello di sbagliare
quando devono calcolare il limite di un blocco.

Nel limite di 1 MB per blocco non viene incluso però il campo witness riguardante le firme,
che rappresenta la parte più corposa, quindi il blocco comprende 1 MB di transazioni senza
le firme + tutte le firme delle transazioni, arrivando di fatto a circa 2 MB.

Non vi è ancora una misura precisa, anche se il limite teorico massimo sarebbe di 4 MB,
perché dipende da come sono le transazioni.

Più transazioni SegWit (P2WPKH) sono presenti e più transazioni ci staranno nel blocco,
perché risultano meno pesanti avendo la firma divisa che non rientra nel conteggio del
limite.

Mentre se si hanno più transazioni Legacy (vecchie transazioni, ovvero P2PKH), ci saranno
meno transazioni perché questo giochino che vuole farcene stare di più non è fattibile.

Ora vediamo l’equivalente codifica per il P2SH, ovvero la codifica (script) che si usava per gli
Smart Contract.

- PRIMA si usava P2SH (pay-to-script-hash) output script

In questo caso si usa l’hash dello script perché quando bisogna pagare qualcuno che usa
uno Smart Contract complesso con ad esempio più destinatari, tempo di sblocco dei fondi
ecc… Diventa difficile con tutte queste funzioni complesse capire verso chi bisogna pagare
inserendo semplicemente l’indirizzo del destinatario.

Quindi non si inviano i fondi verso una chiave pubblica, ma si inviano verso l’hash di tutto lo
script, che definisce chi può utilizzare l’output della transazione, richiedendo di fatto anche
più di una firma digitale per provare la proprietà dei bitcoin.

Infatti poi sta a chi si è fatto pagare sullo Smart Contract mostrare tutta la codifica dello
script che ha generato l’hash per poterla spendere.

Quindi per provare bisogna fare l’hash dello script dello Smart Contract e compararlo con
l’hash dell’output della transazione.

155
- DOPO P2WSH (pay-to-witness-script-hash) output script

Nell’equivalente SegWit di questo nuovo tipo di transazioni semplicemente si mette uno 0


che indica il numero di versione prima dell’hash dello script.

Si distingue dalle transazioni P2PKH guardando la lunghezza perché vengono usati due
algoritmi di hash diversi: nel primo ne viene usato uno che produce un output di 20 bytes,
mentre nel secondo viene prodotto un output da 32.

Semplicemente dalla lunghezza si capisce se si sta eseguendo una transazione normale


( pay-to-public-key-hash) o uno SC ( pay-to-script-hash).

Esempio di transazione normale P2SH:

Qui abbiamo una transazione in cui si hanno 5 chiavi pubbliche, in cui per processare il
pagamento ne servono almeno due.

Nel caso di una transazione witness PW2SH:

Qui invece lo scriptSig rimane vuoto e tutte le firme vengono inserite nel campo witness,
campo che i vecchi nodi ignorano senza che venga usato per calcolare l’id della transazione.

156
Gli sviluppatori che hanno fatto questo upgrade witness nell’agosto 2017 hanno introdotto
anche un nuovo tipo di indirizzi.

Tutti gli indirizzi che abbiamo visto finora normalmente iniziavano o con 1 o con 3.

Questo nuovo tipo di indirizzo inizia con BC che sta per Bitcoin (se qualche programmatore
vuole testare nella testnet sta per TB, Testnet Bitcoin), 1 che fa da separatore, poi c’è tutto il
witness program, ovvero tutto quello all’interno dell’output con un Checksum alla fine che
verifica che non si siano fatti errori di trascrizione.

Si prende tutta questa parte e invece di codificarla in Base58 (che utilizza lettere maiuscole,
minuscole e numeri senza caratteri simili tra di loro come lo zero e la o maiuscola, oppure
ancora i maiuscola con l minuscola), si codifica in Base32 (che utilizza solo lettere, senza
distinguerle tra minuscole e maiuscole senza rischiare di confondersi e numeri, togliendo
caratteri che vengono considerati visivamente simili tra di loro come I, L, O, o U ecc.. diversi
da quelli che vengono tolti col Base58).

Principalmente la cosa importante che si voleva togliere era la distinzione tra minuscole e
maiuscole, particolarmente pericolosa quando un utente trascriveva a mano l’indirizzo
rischiando di perdere i fondi o inviandoli a qualcun’altro.

Il problema però è che se si ha un vecchio wallet datato esso non riconosce la nuova
tipologia di indirizzo anche se ormai sono più di due anni che questo aggiornamento è stato
fatto. In realtà c’è un modo in cui si riesce ad usare i nuovi indirizzi con i wallet vecchi che sta
nel nascondere SegWit nel P2PSH.

Si mette praticamente l’output SegWit dietro un hash che segue le regole di un vecchio
pay-to-public-script-hash, così in questo modo si riesce ad avere un indirizzo SegWit che
un vecchio wallet può comprendere.

Quando però si vuole spendere la transazione, si ha la firma separata che comporta un peso
della transazione minore e quindi meno fee (visto che le fee si pagano in base ai byte della
transazione).

157
Piano piano si sta migrando verso questa nuova serie di indirizzi chiamati Bech32.

Attualmente siamo in una fase in cui se ne vedono molti sia di quelli vecchi che di quelli
nuovi, ma tra qualche anno ci saranno solo questi ultimi aggiornati e meno pesanti perché
portano significativi vantaggi.

Col tempo ci sono stati altri aggiornamenti importanti come la creazione di Lightning
Network (LN) e la nascita di nuovi concept di sidechain come RGB e molti altri.

Non li approfondiamo in questa guida perché sono ancora in una fase di sviluppo e test
(beta), quindi potrebbero cambiare veramente molto da qui a poco nel funzionamento.

158
I Modelli di Fundraising nati
grazie alla Blockchain
Finita per questa guida la parte tecnica, andiamo ad analizzare come la comunicazione si è
evoluta nel corso degli anni e quali sono i modelli di fundraising moderni che sono nati
grazie alla blockchain.

Con la blockchain le persone tornano ad essere l’elemento principale.

Oggi chi sta facendo marketing su Blockchain non deve avere come obiettivo quello di
vendere perché siamo ancora in una fase primordiale, in cui il potenziale cliente non è ancora
in grado di comprendere il prodotto.

La necessità che si ha oggi è quella di lanciare dei messaggi più orientati a educare il
pubblico su queste tematiche, senza usare tecnicismi che altrimenti non comprenderebbero.

Ricapitolando velocemente le caratteristiche della blockchain ricordiamo che è:

- immutabile (abbiamo visto però che teoricamente potrebbe esserci un attacco al


51% anche se praticamente è ormai impossibile data la sua grandezza e il grande
numero di nodi ormai presenti);
- pubblica;
- decentralizzata;
- sicura;

Pensandoci bene, i modelli di fundraising tradizionali (Seed & Angel Investing/Venture


Capitalist/Private Equity/Reward Crowdfunding/Equity Crowdfunding) offrono tutti questi
vantaggi contemporaneamente?

Sicuramente no, alcuni però si avvicinano.

Questo non vuol dire che non vanno più bene i metodi tradizionali o che vadano sostituiti ma
che potrebbero essere migliorati anche grazie alla blockchain.

Riprendo la spiegazione del FINMA, l’ente regolatore svizzero, che rappresenta attualmente
lo stato con la regolamentazione più chiara riguardo a questa tematica per spiegare questi 3
tipologie di asset:

1. COIN: nascono come ideali strumenti di pagamento decentralizzati (es. Bitcoin);


2. UTILITY TOKEN: gettoni emessi per poter funzionare su una particolare piattaforma
specifica (es. BNB dell’exchange Binance);
3. SECURITY TOKEN: prodotti finanziari tokenizzati legati a possibili equities, quote di
fondi, immobili, ecc…
159
Questi asset inoltre possono essere:
- FINITI: avendo una total supply fissa e definita. Infatti per come vengono scambiati
oggi sul mercato possono essere altamente volatili e soggetti a speculazioni;
- NON FINITI: hanno una total supply variabile e tendono ad avere un valore di
mercato fisso. Chiamati anche Stablecoin, generalmente garantiti da un sottostante
coperto al 100%.

I modelli di fundraising su blockchain che si possono creare sono diversi.

160
CAPITALI DI RISCHIO
Tra i capitali di rischio troviamo modalità come le Initial Coin Offering
(ICO), raccolta fondi generalmente legate all’emissione di un Utility
Token, in cui si compra un servizio in prevendita avendo la speranza
che in un futuro questo venga lanciato e funzioni.

È la forma di finanziamento con la quale è stato finanziato Ethereum per esempio.

L’elemento interessante delle ICO è il fatto che permettono di raccogliere ingenti somme di
capitale senza cedere nessuna percentuale della governance della società.

Non vi è quindi una proprietà patrimoniale distribuita a terzi.

Viene offerto solo un gettone utilizzabile sulla piattaforma della startup.

Di norma il token viene anche listato (ovvero inserito tra le monete acquistabili nei vari
exchange grossi come Coinbase o Binance) pubblicamente.

Dal lato marketing diventa molto importante comunicare efficacemente, perché si possono
creare delle situazioni poco chiare per gli utenti.

Una volta che il token viene listato da un exchange, è in balia del mercato che crea incentivi
economici per essere acquistato.

Quindi chi deve fare marketing si trova da un lato una persona che ha comprato un utility
token e che non partecipa alla ownership della società, mentre dall’altro si trova delle
persone che hanno comprato un utility token, pensando di aver comprato un equity.

161
Diventa complesso capire come gestire la comunicazione, perché si possono trovare persone
che hanno investito in ICO che si atteggiano da Angel non essendo seduti nel CdA
(Consiglio di Amministrazione) quindi non avendo diritti patrimoniali, perché di fatto non
detengono equity.

L’azienda deve essere consapevole che non deve trattare quella persona come se fosse una
persona seduta nel CdA.

Bisogna essere bravi quindi, a moderare la community che ci si trova davanti.

Le ICO sono una forma di Reward Crowdfunding con la differenza che il token viene listato
pubblicamente da un exchange, diventando così soggetto alle oscillazioni di mercato.

Questa modalità è diventata rapidamente uno strumento di vendita di un utility token molto
diffuso, esplodendo di fatto nel 2017 e calando nel 2018 come dimostra il grafico qui sotto
perché era l’unica modalità ‘’facile’’ e rapida da introdurre nel mercato per raccogliere grandi
somme di denaro da privati.

Non vi erano inoltre regolamentazioni come il KYC (Know Your Customer) e l’AML (Anti
Money Laundering), che oggi per tutti discorsi di compliance si hanno.

Infatti per le banche le ICO hanno rappresentato un grande problema, qualsiasi investitore
poteva acquistare non essendo identificato e controllato rimanendo così anonimo.

Le aziende che hanno sfruttato questo trend per fare marketing e sono riuscite a cavalcare
quest’onda sono riuscite a raccogliere grandi capitali principalmente per vari motivi.

162
Dati espressi in milioni

La regolamentazione permette di listare ancora gli utility token negli exchange, quando nella
realtà dei fatti non è ancora stata in grado di identificare cosa sia utility e cosa sia security.

Grazie a questo buco di regolamentazione, gli utility sono riusciti a essere listati ma hanno
creando una problematica a livello di marketing e comunicazione.

Quando qualcuno si trova a promuovere un progetto sia sul mercato, perché si potrebbe
essere osservati dall’ente regolatore, sia nell’exchange, che è regolamentato effettivamente
dagli enti regolatori, tutta la comunicazione marketing deve essere fatta come se si parlasse
di un utility token.

Ci sono casi di progetti che hanno emesso un utility token con un piano di comunicazione
molto spinto a livello speculativo e quindi sono stati tutti fermati dalla CONSOB.

Bisogna fare molta attenzione quando si sta redigendo il piano di marketing di un’azienda
che lavora in questo settore, perché deve essere completamente e chiaramente relativo ad
un utility token, non quindi ad un asset finanziario che ha fine speculativo e che diventa un
security.

Se poi viene listato effettivamente in un exchange non è problema dell’azienda, dato che la
regolamentazione permette oggi di farlo perché vi è un problema di fondo.

Il boom di Bitcoin a 19.000 dollari infatti si è verificato proprio in coincidenza con il crescente
fenomeno delle ICO che ha attratto un sacco di investitori golosi di profitto, che facilmente si
sono bruciati non conoscendo il mercato.

Ad oggi peró si sente parlare molto di più di IEO rispetto alle ICO.

163
COS’È UNA IEO (Initial Exchange Offering)?

Sempre una raccolta fondi (ICO), ma amministrata da un exchange che serve come brand
per fare pubblicità attirando investitori, proprio come sta facendo Binance.

L’azienda con il suo team di sviluppo presenta il progetto che vuole lanciare all’exchange,
che lo valuta e lo verifica.

Se passa questa verifica, Binance si assume il rischio d’immagine (senza dare garanzie
economiche che poi tutto vada per il meglio, perché sempre un investimento ad alto rischio
rimane) di presentare il progetto all’interno della loro piattaforma sponsorizzandolo. Una
volta che poi il progetto sarà effettivamente lanciato si sarà listati (ovvero, inserito tra le
crypto disponibili da acquistare) in anteprima da loro.

Questa metodologia porta vari vantaggi tra cui quello da parte dell’’exchange di farsi carico
di tutti i costi Marketing relativi al progetto, che sono anche il più grande costo per un ICO.

In questo modo c’è un doppio guadagno, da un lato il progetto e il team ha una grossa
visibilità essendo Binance uno degli exchange più grande al mondo con un grande bacino di
utenza, mentre dall’altro lato l’exchange sí, si farà carico di questi costi, ma ci guadagnerà
nuovi utenti che si registreranno proprio perché sarà l’unica piattaforma con la quale si potrà
acquistare quella criptomoneta.

Come pro quindi abbiamo:

- Maggiore sicurezza;
- Trasparenza del progetto;
- Semplicità dovuta all’unico KYC;
- Risparmio costi Marketing grazie al supporto dell’Exchange;
- Maggiore affidabilità, perché più vicino a un sistema bancario che a un’iniziativa di
privati;
- Ingresso nel mercato di investitori istituzionali;
- Liquidità immediata.

I contro invece:

- Mercato centralizzato;
- Manipolazione del mercato e concentrazione delle monete: la maggior parte dei
token IEO viene minato in anticipo, quindi bisogna sempre controllare le dinamiche di
allocazione e distribuzione dei token prima di investire;
- Vi è un numero limitato di investitori: c’è preoccupazione per il fatto che un bot possa
essere programmato per partecipare alla IEO per battere così sul tempo gli investitori
umani;
- FOMO (fear-of-missing-out, si genera una paura di essere tagliati fuori dall’affare
della vita): bisogna quindi fare ricerca personale ed esaminare i progetti e i loro

164
obiettivi autonomamente controllando il White Paper di ogni progetto prima di
investirci.

Per partecipare alla IEO di solito si seguono questi passaggi:

1. REGISTRAZIONE: bisogna registrarsi presso l’exchange e verificare il proprio account


passando la procedura KYC/AML (Anti-Money-Laundering).
2. ACQUISTO TOKEN PIATTAFORMA: Verifica le criptovalute che puoi utilizzare per
partecipare alla IEO e depositare sul tuo account.
3. ACQUISTO TOKEN IEO tramite la procedura del portale.

Due esempi di progetti che hanno ricevuto grossi finanziamenti tramite questa modalità
sono BitTorrent e GIFTO .

BitTorrent (BTT) fu la prima IEO eseguita in questo caso su Binance e raccolse circa 7.2M in
13 minuti. Questo token offriva ricompense ai peer di BitTorrent e una maggiore velocità di
download.

GIFTO (GTO) invece fu la seconda IEO su Binance e raccolse 30MLN totali, offrendo a chi
possedeva il token ricompense ai creatori di contenuti sulle varie piattaforme social

Vi lascio qui il sito ICObench in caso voleste controllare tutte le ICO o IEO presenti.

Un’altra forma di fundraising su blockchain più evoluta sono le DAICO


(Decentralized Autonomous Initial Coin Offering), generalmente legate
all’emissione di un Utility Token ( per via delle tematiche di compliance che
abbiamo analizzato sopra).

Nella realtà dei fatti una DAICO ha le stesse caratteristiche di una ICO, solo che i fondi
raccolti vengono gestiti da degli Smart Contract e vengono rilasciati solo al raggiungimento
di alcuni obiettivi chiave, mentre in caso contrario vengono restituiti.

Possiamo dire che sono una sorta di ICO meritocratica.

Vengono creati degli Smart Contract in fase di emissione del token che vanno a regolare
tutti i processi della DAO (Decentralized Autonomous Organization – organizzazione che
gestisce le DAICO) relativi a quella particolare emissione del token nella raccolta di capitali.

Ad esempio in una ICO, lo Smart Contract che di solito viene creato è relativo
semplicemente alla redistribuzione di una certa quantità di token a fronte di una certa
quantità per esempio di Ethereum investiti.

Rappresenta di fatto una conversione automatica di n Ethereum per ogni token, che
vengono gestiti tra diversi wallet e altri SC.

165
Questi SC delle DAICO vengono integrati in parallelo agli SC della ICO e vanno a controllare
non solo la quantità di token che devono essere ricevuti da colui che ha investito nel
progetto, ma anche i token che vengono mandati all’azienda.

Con questo sistema gli SC rilasciano una certa quantità di fondi raccolti solamente in un
determinato certo arco temporale.

Non solo si possono bloccare per un determinato periodo di tempo, ma si possono sbloccare
solo al raggiungimento di un determinato obiettivo.

Per esempio, un’azienda che fa una DAICO può decidere che il 50% dei fondi raccolti sono
disponibili fin da subito, mentre il restante 50% viene suddiviso in un 20% che viene reso
disponibile dopo 6 mesi, un 10% che viene reso disponibile dopo 1 anno e un restante 30%
che viene reso disponibile solo se l’azienda entro una tal data rilascia un determinato
prodotto che era presente nella road map.

Questi obiettivi vengono stabiliti con dei voti perché all’interno di questa organizzazione
(DAO), coloro che possiedono il token, lo possono utilizzare per fare delle votazioni in
maniera completamente decentralizzata con dei nodi.

Così facendo chi ha il token lo utilizza per votare se si ritiene soddisfatto o meno
dell’obiettivo raggiunto.

Per esempio, potrebbe essere che il 5% dei fondi raccolti può essere sbloccato solo se la
community che ha comprato quel token vota che quella DAO ha effettivamente raggiunto
quell’obiettivo o messo sul mercato quel particolare bene/servizio entro 12 mesi dalla fine
della DAICO.

A 12 mesi dalla fine verrà fatta una votazione da parte di tutti gli owner dei token tramite i
nodi.

Se il 51% dei detentori del token effettivamente concorda che quell'obiettivo è stato
raggiunto grazie alle votazioni su blockchain, quello SC che bloccava per esempio un 5% di
Ethereum procederà a sbloccarli.

Se invece il 51% non si raggiunge succede il contrario, quel 5% bloccato viene rimandato
indietro agli investitori.

Questa è una casistica estremamente interessante per capire come la blockchain può
portare effettivamente un valore aggiunto nei processi tradizionali.

Oggi se si partecipa nelle campagne di crowdfunding o nella raccolta tramite Venture


Capital, tutti questi processi sono dati in mano ad un ente centrale come il fondo di VC o la
piattaforma di Crowdfunding e di conseguenza l’investitore non ha la minima voce in

166
capitolo se vuole avere un approccio meritocratico nei confronti della startup che ha
finanziato.

Nel caso di uno strumento tradizionale come l’investimento da parte di un fondo di VC è


tutto in mano all’ente centrale privato.

Una volta che si investe nelle piattaforma di crowdfunding i fondi sono nelle mani di quella
piattaforma. Come quando si depositano dei soldi in banca.

Il punto è che non c’è qualcosa che in automatico ti permette di gestire i fondi in piena
autonomia.

Con le DAICO, grazie agli SC questa cosa è possibile perché non c’è un controllo da parte di
un ente centrale e nemmeno un intermediario di mezzo che fa da ‘garante’ preoccupandosi
di controllare determinati processi.

C’è semplicemente uno SC che se si verifica l’opzione X esegue una determinata azione,
mentre se si verifica l’opzione Y esegue un’altra determinata azione.

Ovviamente vi è completamente libera scelta della DAO che emette la DAICO per definire
come programmare gli SC.

In linea teorica questi SC vengono programmati per difendere gli interessi dell’investitore ed
è quindi probabile che determinati investitori vadano ad investire in quella determinata
DAICO sapendo di essere in qualche modo tutelati.

Il punto è che ben poche aziende potrebbero essere disposte a raccogliere capitale con un
meccanismo di questo genere perché è molto più facile raccogliere capitale di rischio con le
forme tradizionali, dove colui che investe in un utility token come nelle ICO non ha
minimamente voce in capitolo.

Chiariamo meglio, nemmeno in questo caso l’investitore ha chissà quale potere decisionale,
ma può partecipare a delle votazioni per determinati aspetti che vengono comunque decisi
all’interno della DAO.

Andando poi nella pratica si ritorna sempre nel concetto espresso prima: le DAICO ancora
per un discorso di regolamentazione fanno riferimento al concetto di Utility Token.

Questo è un sistema molto bello e interessante ma assai difficile da creare e far funzionare.

Infatti The Abyss, una delle poche aziende che ci ha provato non ha fatto una bella fine.

Proseguendo con i modelli di fundraising abbiamo le STO.

Un’altra cosa di cui si sente parlare oggi è la Security Token Offering.

167
Molti lanciano questa tipologia di raccolta fondi perché non
riescono a trovare capitale con le metodologie tradizionali e
quindi cercano di cavalcare questa nuova onda come successo
con le ICO.

Tramite le STO viene emesso un prodotto finanziario


patrimoniale, sottostando a tutte le normative compliance KYC, AML e potenzialmente può
anche essere listato da un exchange pubblicamente sul mercato.

Questa è una definizione, peró, che potrebbe rappresentare una similitudine tra i modelli
tradizionali e quelli su blockchain.

Se noi non leggessimo le prime righe riguardanti la parte di STO e leggessimo soltanto la
seconda parte, quest’ultima potrebbe benissimo valere anche per l’emissione di equity,
share, stock, quote di un fondo d'investimento, quote di un fondo di obbligazioni.

Il punto è che questi asset per come vengono intesi oggi, sono degli asset tokenizzati che si
basano sulla blockchain.

Oggi giorno le quote societarie dell’impresa italiana invece si basano su un registro pubblico
delle imprese.

Le Security Token Offering emettono un asset tokenizzato che fa riferimento a società


private, quindi si potrebbe escludere che in futuro le STO vengano effettivamente
appoggiate ad una blockchain decentralizzata in quanto fanno riferimento a informazioni
private.

È molto più probabile invece, che gli enti regolatori creeranno delle blockchain private o dei
DLT Hyperledger ( registri distribuiti) dove verranno registrate le informazioni su come
vengono divise determinate quote di una società.

Il listaggio in un mercato di una security però dipende dalla regolamentazione.

Oggi in Europa gli exchange che rispettano i parametri degli enti regolatori permettendogli
di listare un Security Token sono veramente pochi.

A livello teorico il tutto funziona, ma la problematica è che è conveniente listare un Security


Token solo se questo facilita la liquidità nel mercato.

Per esempio: se si detiene una S.p.A che interesse si ha a listare pubblicamente le proprie
quote?

168
Potrebbe al momento esserci solamente l’interesse di accedere a più liquidità da parte del
mercato. Infatti se si lista un token che non permette di accedere a una determinata liquidità
tutto ciò ha poco senso.

Il fatto di farsi listare nella borsa di Milano (che dispone di una liquidità bassissima se non
per determinate società) se si compara ad altre borse*, spesso e volentieri è legato al fatto
che si vuole accedere alla liquidità del mercato italiano pubblico, oppure perché c’è dietro
un’operazione di marketing.

*pensando al NASDAQ, London Stock Exchange, lì si che c’è veramente tanta liquidità.

Quindi un Security Token permette potenzialmente alla società che lo emette di listarlo
pubblicamente, ma sempre a patto che si trovi un exchange che è regolamentato per farlo e
che possa offrire liquidità. In caso non convenisse tanto vale fare comunque una STO, ma
gestirla a livello privato, senza listare il token.

Facciamo un esempio: Io ho un’azienda con delle quote societarie private. Per trasferire
queste quote da un precedente owner ad un nuovo owner, quindi per favorire la liquidità
degli scambi delle mie quote societarie, posso: partecipare ad un fondo di VC, partecipare ad
una campagna di crowdfunding o ad un Seed, sottostando però alle regolamentazioni delle
equity, share e così via, dove per poter trasferire la proprietà devo eseguire determinati
processi prendendo in causa notai, camere di commercio che avrebbero dei costi non
indifferenti.

La soluzione più comoda sarebbe quella di tokenizzare quell’asset (azione) dandola in mano
ad una parte fiduciaria, facendo in modo cosí che dalla parte fiduciaria al mercato reale ci sia
uno scambio di un titolo derivato che è il token. Un po’ come se si andasse a creare un
mercato secondario.

Mentre il mercato primario è quello che ha interazione con l’asset reale (come equity, share,
stock) che viene gestito internamente, per poterlo distribuire su un mercato secondario dove
sono presenti una moltitudine di investitori, il mio asset (che in questo caso è un asset
security) si tramuta in un token security bypassando così la regolamentazione tradizionale.

169
CAPITALI DI DEBITO
Lending P2P: sono piattaforme dove vengono emessi/richiesti
prestiti tra utenti, senza la presenza di un garante terzo o
intermediario.

Esistono innanzitutto piattaforme di lending che non sono P2P come tutte quelle
piattaforme con un intermediario di mezzo, per esempio istituti di credito come Agos da cui
non sai effettivamente da dove arrivano i soldi che ti vengono prestati.

Le piattaforme di lending P2P mettono invece in diretta comunicazione colui che emette
liquidità con colui che la riceve. Questo non vuol dire che si può andare a cedere e ricevere
liquidità come se nulla fosse.

Tutto questo è possibile grazie alle gestione di uno Smart Contract.

Quello che fa un ente centrale, essendo di fatto un garante intermediario e gestendo i


processi in maniera automatizzata, è sostituibile benissimo da uno SC.

Nexo è stato uno dei primi progetti a prendere piede come lending P2P nel mondo
blockchain, anche se bisogna dire che è centralizzato perché offre garanzie di 100mila
dollari per utente.

C’è ancora molto da sviluppare ma vediamo come sempre più progetti prendono piede
nonostante abbia fatto una ICO solo nel 2018.

Bisogna capire che affidarsi ad un ente privato quando ci si potrebbe affidare ad uno Smart
Contract programmato, open source e controllabile in qualsiasi momento, chiaramente è
tutt'altra cosa.

Al giorno d’oggi è difficile che delle soluzioni Lending P2P decentralizzate ( per esempio
come Compound, progetto che invito a studiare) prendano piede velocemente, perché ci
sono dei tassi d’interesse che sono abbastanza elevati e spesso si appoggiano a dei
sottostanti che sono molto volatili.

Il sistema quindi non è ancora perfetto. Ci sono problematiche che sono da risolvere ma è un
meccanismo sicuramente molto interessante che snellisce diversi processi burocratici.

170
Modelli Tradizionali VS
Blockchain
Facciamo una rapida comparazione tra i modelli tradizionali e quelli su blockchain per capire
i pro e i contro.

Quelli tradizionali come fondi di VC, Angel Investing, Seed, Private Equity, crowdfunding,
reward crowdfunding hanno tra i pro che hanno delle regole chiare con delle garanzie da
parte di istituzioni.

Infatti in Italia si è tutelati dalla CONSOB, quindi se la piattaforma fa dei giochi sporchi può
chiudere, rischiando che gli venga revocata la licenza.

Oltre a questo, ci sono anche delle indicazioni ben precise che si devono seguire, come il
raggiungimento di una certa Soft Capitalization o, nel caso di un equity, il 5% degli
investimenti deve arrivare da investitori professionali, regole che se non vengono rispettate
permettono ai fondi di ritornare agli investitori.

Questo rappresenta una sorta di garanzia non da poco, perché se un investitore


professionale ha investito in un progetto vuol dire che questo molto probabilmente non sarà
un progetto fuffa (scam).

Questo concetto non vale però con le ICO, perché alcune hanno raccolto anche centinaia di
milioni di euro rivelandosi molto spesso delle vere e proprie truffe.

Un altro punto debole è che principalmente sono gestiti da sistemi centralizzati da una
società privata che decide in autonomia le regole del gioco, difendendo i propri interessi
economici.

Tralasciando inoltre che vi è una burocrazia molto complessa, fatta eccezione per alcune S.r.l
e alcune startup innovative. In linea di massima trasferire gli asset diventa abbastanza
complesso e proprio per questo vi è anche un mercato poco liquido nel momento della exit.

Anche con forme di finanziamento gestite con capitale di debito ci sono delle regole chiare, e
se non vengono seguite la banca che ha concesso il mutuo può riprendersi i soldi.

Pure con questo metodo il mercato è poco liquido perché se è difficile trasferire la proprietà
di un asset è anche difficile trovare un acquirente a cui venderlo, perché o deve essere fatta
una exit o un’azienda deve comprare le quote.

Passando ai modelli su blockchain invece tra i pro riconosciamo che il tutto è gestito da un
sistema decentralizzato, fatta eccezione ancora degli exchange centralizzati che devono
effettivamente controllare i fondi, ma stanno già nascendo quelli ibridi o completamente
171
decentralizzati che lasciano l’ownership delle chiavi private al cliente ma che presentano
altre complicazioni.

Il tutto è molto semplificato grazie a dei processi snelli soprattutto grazie al fatto che l’asset
che viene trasferito è visibile a tutti ( pubblico), verificabile da chiunque grazie alla blockchain
(quindi distribuito tra i nodi) e decentralizzato ( perché non appartiene a nessuna società),
motivo per cui è facile entrare in questi mercati, trasferire la proprietà e liquidare
l’investimento in uscita, cosa altamente complessa con i metodi tradizionali.

Questo non vuol dire sempre che ci sia molta più liquidità rispetto ai mercati tradizionali,
anche se vi è senza dubbio un sistema più snello e rapido che incentiva gli investitori.

La SEC (l’ente regolamentatore degli Stati Uniti) infatti sta investendo tantissimo in STO
perché ha capito che favorirà il mercato statunitense, essendo un incentivo di snellimento
dei processi che in ottica di un mercato globale rappresenta un enorme valore aggiunto.

Per i contro invece, come abbiamo detto più volte, nell’ambito cripto vi è una mancanza di
regolamentazione chiara e univoca riconosciuta in tutti gli stati

Essendo ormai in un mercato sempre più globalizzato non conviene avere piccoli stralci di
regolamentazioni sparpagliate in diversi stati perché si creerebbe soltanto confusione.

Ad oggi, questo mondo è ancora poco istituzionale perché gli unici utenti presenti o sono
quelli che tantissimi anni fa minavano Bitcoin avendone oggi tantissimi in pancia, oppure è
gente che è entrata nel mercato cercando di riciclare denaro perché all’inizio vi era
un’assenza completa di regolamentazioni.

Oltre a non esserci degli organi garanti come lo Stato, vi è un elevatissimo numero di
stakeholders ( punto estremamente fondamentale nel lato marketing).

In blockchain l’elevato numero di stakeholder rappresenta un problema perché nel caso ci


fosse una start-up che con un ICO si ritrova a raccogliere molti fondi rapidamente, potrebbe
ritrovarsi tantissimi utenti insoddisfatti nel caso in cui le cose non andassero come previsto.

Detto ciò, ci ricolleghiamo al discorso iniziale in cui avevamo detto che con la blockchain
l’utente finale ritorna al centro di tutto. Abbiamo capito che questo è possibile grazie a:

- disintermediazione: con dei processi molto più snelli che ti permettono di non avere
un ente intermediario;
- decentralizzazione: assenza di elementi centrali che hanno una ownership privata
dando in mano a più nodi il controllo della rete con una ownership distribuita;
- distribuzione: determinati prodotti e servizi vengono distribuiti a livello pari all’interno
dell’economia del mercato.

172
Si passa da un modello customer-oriented, quello tradizionale dell’azienda, ad un modello
people-oriented, in cui c’è non un’inversione ma un livellamento.

Con questo s’intende dire che il rapporto tra azienda e cliente viene cambiato
completamente.

L’azienda non vede più la persona come un cliente a livello di marketing.

Non è più in cima che prende decisioni mentre il cliente non ha voce in capitolo.

Ora sono tutti allo stesso livello.

Oggi l’ente centrale ha effettivamente il controllo del processo economico dei servizi.

Con la blockchain questa cosa qui non viene più decisa dall’azienda ma viene esternalizzata
da un processo che spesso e volentieri può essere automatizzato con degli Smart Contract,
avendo come risultato una comunicazione lineare e diretta con il cliente.

Si ha quindi una parità, un avvicinamento di livello in cui il concetto di people-oriented


elimina il concetto che tradizionalmente divide cliente e azienda ma mette tutto allo stesso
piano come persone che devono collaborare per lo stesso obiettivo.

Se si sta lavorando ad un progetto blockchain e si pensa ad un piano di marketing che va a


focalizzarsi solo su dei topic legati al prezzo del token e del guadagno si sta completamente
sbagliando strada.

Tesla ad esempio non farà mai una comunicazione marketing legata al fatto che le loro quote
societarie crescano o meno di valore, ma sarà focalizzata sul prodotto.

Tutti questi concetti infatti non c’entrano assolutamente nulla con la speculazione sul valore
di Bitcoin o la capitalizzazione di mercato che molto spesso si tirano fuori per attirare le
persone.

Oltre a questo vi è anche una manipolazione di vari personaggi che nel mondo crypto sono
ritenuti influenti come John McAfee che conoscerete sicuramente per aver fondato l’azienda
di informatica McAfee che in passato hanno sfruttato la loro immagine per consigliare
investimenti di determinati token su Twitter con eventi come Coin Of The Day o la Coin Of
per poi vendere quando tutti compravano riuscendo a ricavarci una bel guadagno.

Oppure ancora un caso più eclatante è quello di Roger Ver, ex-grande sostenitore di Bitcoin
convertito poi a Bitcoin Cash e proprietario del sito Bitcoin.com che invece di parlare di
Bitcoin, sponsorizza ed esalta le caratteristiche di Bitcoin Cash, uno dei fork di Bitcoin,
cercando cosí di ingannare chi googla Bitcoin.com, essendo uno dei domini più ricercati.

173
Altri personaggi che meritano di essere nominati sono sicuramente Craig Wright, famoso
per dire di essere Satoshi Nakamoto o affermare che Satoshi in realtà ha rubato la sua
invenzione e Vitalik Buterin, che come abbiamo detto è fondatore di Ethereum.

La fortuna di Vitalik è stata quella di aver avuto delle idee innovative che hanno permesso di
creare dei token standard chiamati ERC-20 sulla blockchain di Ethereum, ovvero quelli usati
come modello per creare tutte le ICO del passato.

Possiamo dire che questo nuovo metodo di finanziamento inventato da lui (ICO) gli si è
ritorto contro. Infatti tanta gente che possedeva Bitcoin ha iniziato a comprare in massa
Ether visto che era l’unico metodo per investire in ICO sperando di guadagnarci, tanto che
quest’ultimo aveva avuto una crescita di mercato arrivando fino a 1.400 dollari, con un
rapporto di crescita paragonato a Bitcoin sensibilmente maggiore.

Infatti quando tutta questa gente una volta che la ICO ha emesso il prodotto effettivamente
sul mercato, ha iniziato a fare cash out in massa per ritornare dall’investimento e incassare il
profitto, il prezzo di Ether è crollato in maniera considerevole perché non vi era più la
domanda di acquisto che c’era prima.

Ritornando ai concetti precedenti di questa digressione, il marketing in questo settore è


fondamentale.

La modalità in cui si fa marketing su blockchain si basa completamente sul concetto che


azienda e cliente scendono allo stesso livello abbattendo ogni barriera e ritornando al P2P.

Al di là del capitale raccolto, della speculazione, dei profitti in percentuale che vengono fatti,
da parte della comunicazione il vero valore è capire che il cliente sta acquisendo sempre più
importanza.

Se si comunica in maniera poco efficace e non si è preparati a questa audience di mercato


tutto potrebbe ritorcersi contro, portando l’azienda al fallimento.

174
Marketing e Blockchain:
2 elementi che vanno di pari passo

Creare un modello di business su blockchain e occuparsi di marketing, ovvero di


comunicazione, sono due cose che devono andare di pari passo.

L’audience è ancora molto specifica e di nicchia, in quanto ad oggi questa tecnologia non è
ancora molto diffusa.

In tutto questo il digital marketing gioca un ruolo fondamentale perché è lo strumento più
semplice per cercare di raggiungerla.

Gli strumenti tradizionali come testate giornalistiche, public relations (PR) difficilmente ci
potranno aiutare a raggiungere queste persone.

Se si ha un’audience potenziale di 5 milioni di utenti e all’interno della nicchia solo 15-20k


persone possono essere interessate al mio prodotto.

Utilizzare un mass media generale è qualcosa che può portare a interagire con quella nicchia
potenziale di 5 milioni solo se si ha un budget enorme da spendere.

È molto più semplice e rapido cercare di attirare gli utenti utilizzando gli strumenti di Digital
Marketing tradizionali, mentre se si vuole fare branding, affidarsi ai Mass Media come le
testate giornalistiche non è sempre una cattiva idea.

Molto spesso infatti si parla della blockchain e di come essa possa rivoluzionare il mondo,
cosa giusta ma ci rendiamo conto che si sta comunicando con un’audience ancora
veramente bassa.

Da queste due immagini notiamo come gli utenti su internet in generale in un solo anno
siano aumentati del 9% mentre gli utenti che usano i social addirittura del 10%.

175
Questo è principalmente dovuto al fatto che in molti paesi in via di sviluppo come in Africa
hanno iniziato ad avere accesso ad internet essendo attivi sui social esclusivamente da
dispositivi mobile.

Non a caso infatti Facebook ha incentrato metà video di sponsorizzazione di Libra (la loro
‘criptomoneta’) nei paesi africani in via di sviluppo.

Questa nuova ondata di utenti che accede a internet lo fa in maniera talmente tanto
frequente, riuscendo ad accedervi in maniera talmente veloce che sicuramente porta ad un
abbassamento del livello di attenzione.

In generale quando una persona si trova a fare qualcosa di nuovo in una maniera così veloce
ed aggressiva, ad un certo punto a causa della frequenza e della modalità con cui questo
avviene si trova assuefatta di quello che è il contenuto che sta guardando.

Per i marketer tutto ciò diventa un problema perché questa tipologia di persone inizialmente
dedicherà un’attenzione altissima, ma nel breve termine quel tempo di attenzione crollerà.

La bravura quindi, sta nel riuscire a catturare quell’attenzione in un mercato di competizione


continua con tantissime società che stanno facendo tutte la stessa cosa.

Il marketing non ha più l’obiettivo primario di vendere, ma quello di riuscire a distogliere


l’attenzione dell’utente da un altro contenuto per portarlo verso il suo.

Tempo speso mediamente delle persone che utilizzano Internet con qualsiasi device.
In questo grafico, si puó notare come la media mondiale di tempo speso utilizzando Internet
con qualsiasi dispositivo sia di 6 ore e 42 minuti, più di ¼ del tempo di una giornata.

Internet ormai, non viene più usato solo nei tempi morti come alcuni possono credere.

176
Gli Stati che sono più abituati a essere collegati ad internet a livello giornaliero se si guarda
più attentamente il grafico, sono quasi tutti quelli che hanno mercati in via di sviluppo.

È inutile dire quindi, che il numero degli utenti che riesce ad accedere ad internet e il tempo
speso sui social tramite device mobile è in continuo e costante incremento, mentre quello
legato all’utilizzo dei computer e tablet è in decremento.

Pensate quindi quanto è difficile dentro tutta questa massa trovare qualcuno che sia
interessato ad informazioni come le criptovalute e la blockchain.

Analizzando quest’altro grafico notiamo invece, che la penetrazione delle carte di


pagamento è ancora molto bassa e questo è dovuto non solo al ritardo dello sviluppo
tecnologico di alcuni paesi, ma anche dal fatto che la maggior parte degli esercenti sono
poco formati riguardo le alternative al pos che possono usare per farsi pagare, come ad
esempio Sumup, costringendo gli utenti a pagare con il contante.

Si puó spiegare come la media mondiale sia così bassa principalmente perché la maggior
parte della popolazione non sta nei paesi industrializzati, quindi di conseguenza questo dato
in ambito marketing ci fa capire dove ci si deve focalizzare.

È facilmente intuibile che una parte dell’economia è sottosviluppata e che ancora oggi, non
tutti hanno un accesso diretto al credito, nonostante questi paesi abbiano una quantità di
potenziali clienti estremamente elevata.

Le cripto e la blockchain e poi Libra, il cui intento è proprio quello, cercano di offrire soluzioni
con dei prodotti che vanno a risolvere questi problemi.

Concentrarsi su quella fetta di mercato è estremamente interessante per tutta una serie di
opportunità di business.

177
Il principale fine del marketing deve essere quello di attirare l’attenzione di determinati
utenti, in modo che poi il reparto sales li cerchi di convertire con la vendita.

Se analizziamo invece la penetrazione del mobile banking abbiamo una visione


completamente diversa.

Per chi lavora in ambito cripto e deve fare un pagamento oggi, difficilmente lo farà da un
mobile desktop. Le persone del settore sono abituate a mandare le cripto dal computer
perché principalmente devono collegarsi all’exchange per fare operazioni di compravendita o
trading, ma la maggior parte dei pagamenti come quelli per le metro, supermercati o
banalmente un bonifico oggi si fa tramite smartphone, lì bisogna riporre la nostra attenzione.

178
La percentuale a livello mondiale di utenti che dispone di un mobile wallet è del 37%.

Questo è dato dal semplice fatto che vi è ancora una mancanza di regolamentazione e
conoscenza di determinati strumenti, a differenza dei pochi Paesi a sinistra del grafico dove
vi è un alto utilizzo sí, ma anche un grande margine di miglioramento.

Analizzando ora i dati sul possesso di crypto, ci rendiamo conto che anch’esso è veramente
basso, stando a significare che ci troviamo davvero in una fase ancora primordiale, a
differenza di chi afferma che tutto questo ormai sta già passando di moda, ci sono molti
mercati appetibili che hanno percentuali veramente ridicole.

Solamente il 5.5% delle persone al mondo detiene delle criptovalute, tradotto: vi è un


potenziale enorme grazie al fatto che vi è un mercato ancora molto giovane e poco
sviluppato.

In ambito marketing e comunicazione questo sta a significare che si ha una grossa massa di
utenti che sta su Instagram, Facebook, YouTube, WeChat, ma di questa massa di utenti
pochissime persone detengono delle criptovalute.

Molto spesso in queste fasi iniziali l’attività di marketing non è quella di fare tanto dei post
sponsorizzati dove si sollecita il pubblico all’investimento cercando di vendere il più
possibile, ma consiste nel fare cultura, informando il pubblico su queste tematiche che nel
futuro ci riguarderanno sempre più da vicino.

Se si cerca di lanciare un messaggio in maniera molto chiara e diretta quando dall’altra parte
non si comprende nemmeno cosa siano le cripto, si sta banalmente sparando a vuoto.

179
È già difficile intercettare l’attenzione delle persone che stanno sui media e che non
conoscono il tema, figuriamoci se si cerca di fare post sponsorizzati su una determinata
nicchia.

Visto che la maggior parte delle persone non conosce le cripto, per ‘logica’ si cerca di andare
in canali Telegram, forum o gruppi FB di vario genere per cercare di contattarli perché è
proprio lí che gli utenti di questa nicchia si trovano cercando di reperire informazioni
rimanendo aggiornati sul settore.

Il problema è che questa nicchia è talmente piccola che ad un certo punto diventa assuefatta
da questi temi e bisogna spostarsi da un’altra parte per andare a prendere il reale mercato
che può portare profitti.

Prima si comprende questa problematica relativa alla poca diffusione di questi temi, prima si
riuscirà ad andare a prendere quei clienti che non conoscono ancora l’argomento, ma che a
lungo andare lo dovranno conosceranno per forza.

Per chi volesse approfondire, vi lascio lo studio completo.

Rendiamoci conto di come l’economia si sta evolvendo e di come la comunicazione sta di


conseguenza cambiando.

Abbiamo visto da questi dati che in realtà la blockchain non è ancora un main topic ma non
vuol dire che non potrà esserlo se pensiamo a cosa il web ed il digital hanno creato in ormai
più di 30 anni a tal proposito consiglio la visione di questo breve video.

180
BLOCKCHAIN E LAVORO:
Bill Gates disse: ‘’Skills, not degrees’’
Nell’Ottobre 2018, la CNBC affermò che ’il 93% dei freelance ha pochi titoli di studio,
stimando circa 57 milioni di freelancer solamente in America, di cui il 70% dei freelance ha
deciso di impiegare il proprio tempo ad imparare un mestiere piuttosto che andare
all’Università. A sostegno di ciò il CEO IBM disse: ‘‘We need to hire people for skills, not just
degrees’’.

Diamo qualche numero riguardo lo stipendio medio di figure che lavorano in questo ambito
principalmente all’estero sperando che nessuno svenga.

La cosa importante è specializzarsi in qualcosa, non si può fare tutto al meglio.

Se si vanno ad analizzare le offerte di lavoro tra Upwork e LinkedIn si può notare come ci
siano più di 7.000 posizioni come:

- Addetto marketing (in ambito blockchain si guadagna tra i 67.459 dollari e i 102.051
dollari all’anno);
- Community Manager (30.000 - 45.000 dollari all’anno);
- Marketing Manager (40.000 - 45.000 dollari all’anno);
- Chief Marketing Officer (70.000 - 75.000 dollari all’anno);
- Back End Developer (70.000 dollari all’anno);
- Front End Developer (70.000 dollari all’anno).

181
BLOCKCHAIN E CRIPTOVALUTE:
Il ruolo dei media
I principali canali che trattano questi argomenti permettendoci di rimanere aggiornati sono:

- Social come Twitter (qui ci sono spesso dibattiti molto accesi, grazie all’ hashtag
#bitcoin si possono seguire tutti), LinkedIn (utile sarebbe seguire i più grandi
manager), Facebook ( partecipando ai vari gruppi), YouTube (seguendo canali come
Tiziano Tridico, Marco Cavicchioli e Filippo Angeloni).

- Blog come Medium ( piattaforma poco usata in Italia, nata principalmente per
persone a cui piace scrivere ma non vogliono passare per la trafila della
pubblicazione tradizionale. È basato sui Clap [applausi=like]. Le grandi aziende es.
l’exchange Coinbase utilizza questo canale per fare annunci); Steemit (è un social
network solamente cripto dove chiunque può pubblicare contenuti. Vanta 13 MLN di
utenti ed è su una criptovaluta chiamata steem che si può donare ricompensando il
Content Creator se si è apprezzato il suo contenuto).

- Reddit (il più grande forum al mondo, è pubblico, ci sono vari grandi gruppi di
criptovalute Bitcoin ed Ethereum).

- Chat come Telegram ( rivale di WhatsApp, non so se avete fatto attenzione nei
grafici proposti ma la loro ICO privata ha raccolto 1.700 MLN, solamente nel primo
giorno), Discord e Slack (grazie a Slack diverse aziende possono condividere le loro
chat con altri sviluppatori).

- I siti del settore invece che vale la pena seguire sono Cointelegraph, Cryptonomist,
Coindesk, Bitcointalk.org (forum più vecchio in cui si trovano i messaggi di Satoshi
Nakamoto, qui un tipo di nome Laszlo fece la sua famosa offerta di 10mila bitcoin
per due pizze entrando nella storia) e infine abbiamo i siti CoinMarketCap,
Coinpaprika, Coingecko per analizzare il mercato di tutte le criptovalute e il sito
defipulse.com per controllare lo sviluppo di applicazioni decentralizzate.

Grazie a tutti questi strumenti nonostante i canali come la televisione e le testate


giornalistiche non dedichino nessuno spazio per la divulgazione di questo settore,
l’educazione relativa a blockchain e criptovalute è in costante aumento.

Qui vi è una rapida comparazione di alcuni siti per farvi rendere conto di quanto siamo
ancora in una fase primordiale.

I numeri dei siti più autorevoli del settore sono ancora insignificanti, stando a significare che
vi è ancora un forte potenziale di traffico che si potrà ottenere man mano che la blockchain
si diffonderà.

182
Cointelegraph ( news): 6.000.000 di lettori al mese → Coinbase (exchange): 40.000.000
visite al mese → Binance (exchange): 40.000.000 visite al mese→ CoinMarketCap (sito più
visitato ad oggi in ambito cripto): 79.000.000 visite al mese → La Repubblica: 120.000.000
visite al mese → New York Times: 300.000.000 lettori al mese → Facebook:
20.900.000.000 accessi al mese

Ricordate un settore ristretto è più facile da manipolare per questo la corretta informazione
gioca un ruolo fondamentale.

183
Le fake news e informazione scorretta possono causare:
- FOMO: ‘Fear of missing out’ = paura di rimanere fuori da qualcosa o un affare, ansia
sociale.
- FOLE: ‘Fear of losing everything’ = paura di perdere tutto l’investimento, panico.’
- Pump and dump: una ristretta cerchia di persone può mettersi d’accordo per
comprare un sacco di moneta di quel tipo per farlo salire e quando sale poi vendono
tutto. Questo viene considerato come reato nel mercato REALE.

Distinguere una fonte di informazione affidabile da una ingannevole, faziosa, superficiale o


sensazionalistica diventa fondamentale.

Qui ci sono altri portali di informazione, questa volta tradizionali che vale la pena seguire:

● TechCrunch (hanno sempre la prima esclusiva su notizie di grandi aziende come


Telegram);
● Bloomberg;
● Forbes;
● The Wall Street Journal (articoli rari ma molto articolati e complessi);
● CNBC;
● Yahoo Finance;
● Il Sole 24 Ore (in particolar modo gli articoli di Stefano Capaccioli e Massimo
Chiriatti)

Vi segnalo anche queste conferenze, tra tutte le più importanti a livello mondiale sono:

- BlockShow Asia Event


- Malta AI
- Delta Summit
- Blockchain Live
- Blockchain Summit: Londra, Singapore, San Francisco

Mentre a livello italiano per ora abbiamo questi due eventi:

- Blockchain Week Rome (Italia)


- Crypto Coinference (Italia)

Consiglio inoltre tra tutti, di seguire su Twitter Changpeng Zhao (CEO di Binance), spesso
offre spunti di riflessioni molto interessanti e su Youtube IvanOnTech, un ragazzo che fa live
ogni mattina aggiornando come una sorta di TG le persone che lo seguono con le news della
giornata.

Ricordatevi che questo settore è in continuo e rapido sviluppo, bisogna rimanere


costantemente aggiornati perché non è detto che tra 1,2,5 anni esista tutto quello a cui
siamo abituati oggi. Potremmo scoprire in realtà che ne sappiamo poco o nulla.

184
EXTRA: GUIDA ELECTRUM
(WALLET DESKTOP PER
BITCOIN)
ELECTRUM (electrum.org) sito ufficiale da dove scaricare

Vi segnalo questa alternativa user-friendly per avere un Wallet Bitcoin, bene o male sulla
falsariga di questo si configurano più o meno tutti gli altri, quindi potrebbe servirvi da
modello. In alternativa se non vi trovate potete usare GreenAddress che ha un interfaccia più
semplice e meno grezza.

Innanzitutto questo è un software che non scarica la blockchain ma si collega in remoto a dei
server che hanno tutta la blockchain e che gli possono fornire i dati che gli servono per
operare.

Se ci si vuole fidare degli altri server non vi è la necessità di scaricare essendo ready-to-go
per iniziare, mentre se non ci si vuole affidare ad un server vi è la possibilità di creare anche
il proprio server electrum per avere il massimo della sicurezza e collegarsi al proprio server
senza dipendere da terzi anche se effettivamente questa funzionalità la devo ancora
provare.

Questo software lascia la scelta all’utente per decidere se effettuare la validazione autonoma
o chiedere aiuto a qualcun altro per la verifica.

Con Electrum ci si può attaccare ai blocchi già esistenti oppure per configurare il tutto
manualmente, si può fare in modo di diventare un nodo collegandoci direttamente alla rete.

185
PARTIAMO CON IL TUTORIAL PASSO PER PASSO PER CREARE UN WALLET

1. Diamo il nome al wallet;

2. Ora ci chiederà che tipo di wallet vogliamo creare:

- Standard, in cui noi abbiamo la nostra chiave privata;


- Autenticazione a due fattori, ovvero creiamo un wallet in cui per fare una
transazione servono due firme. Una ce l’abbiamo noi e una il server di
electrum. Per usufruire di questo servizio vi avviso che ogni 20 o 100
transazioni bisogna pagare una fee per il servizio del server.

Scegliendo questa soluzione, per fare una transazione in pratica da un lato si


firma sul nostro computer e dal altro bisogna autenticarci con un altro device
su un servizio di electrum che mi fornisce la seconda firma. Il vantaggio è che
se anche qualcuno riesca a rubarmi il computer, non possedendo il secondo
device, il ladro non riesce a muovere i soldi. Infatti è un sistema di sicurezza in
cui ci si affida ad una terza parte anche se quest’ultima non può prelevare i
fondi dal wallet perché per confermare l’operazione avrà bisogno anche lei
della mia firma. Può solamente decidere di autorizzare o meno le mie
transazioni in base a se mi sono autenticato o meno tramite le istruzioni date;

- Multi-signature wallet, opzione con la quale si crea un wallet condiviso con


altre persone, ad esempio un wallet familiare ( marito e moglie), aziendale (io
e un socio) e così via;
- Importazione di un indirizzo e delle chiavi private già esistenti, serve in caso si
possedesse già delle chiavi private che ho salvato precedentemente da
bitcoin core (software gratuito open source che funge da nodo e fornisce un
portafoglio bitcoin) e voglio portarle qui in questo wallet.

186
3. Nel caso scegliessimo il multi-signature ci fa configurare il wallet e dobbiamo settare due
parametri:

- Quanti sono i signer in totale, fino ad un massimo di 15;


- Quante sono le firme necessarie per approvare una transazione, sono
disponibili tutte le combinazioni possibili a partire da 1 firma fino a 15.

Il caso più comune è quello di un wallet a 3 signer, e un sistema di approvazione


basato su 2 di 3 firme, perché in questo modo nessuno può fare transazioni da
solo o si può opporre a fare una transazione.

Es. 1 signer di 3 perde la sua chiave privata, in questo caso non è un danno
irreparabile perché si posseggono le altre 2 firme che permettono di far partire
una transazione.

Procediamo scegliendo standard giusto per fare dei test finché non si comprende al
100% quello che si fa.

4. Il prossimo passaggio riguarda il seed e ci chiede:

- Se vogliamo creare un nuovo seed in caso non ce l’avessimo;


- Se ne possediamo già uno, è il caso in cui noi avessimo già fatto un backup di
un wallet e volessimo importarlo per recuperare i soldi;
- Se vogliamo usare una chiave principale;
- Se vogliamo usare un dispositivo hardware, caso in cui io abbia un ledger e si
vogliano usare le chiavi private che sono in questo dispositivo separato per
creare il wallet.

187
In questo caso non abbiamo nulla di tutto ciò quindi scegliamo di creare un nuovo
seed.

5. Ora ci chiede di che tipo vogliamo il nostro wallet:

- Segwit 2FA ( nuovo modo più efficiente per fare le transazioni);


- Legacy 2FA ( modo standard).

Noi selezioniamo Segwit perché come abbiamo visto, è il metodo nuovo e più efficiente che
ci permette di pagare anche meno fee perché la transazione pesa meno.

188
6. Scelta la tipologia di wallet il software ci da una lista di 12 parole (11+1 di checksum).
Ogni parola rappresenta un tot di bit e provengono da un dizionario di 2048 parole, tutte
e 12 possono essere ricodificate in una stringa che è di fatto una chiave privata.

Questo seed (elenco di parole), ripeto che non è altro che la chiave privata madre da cui poi
possono essere rigenerare tutte le altre chiavi private ‘figlie’.

PASSAGGIO CRUCIALE: DOBBIAMO SEGNARCI TUTTE LE PAROLE DI BACKUP DEL


WALLET nel modo più sicuro che riteniamo, personalmente eviterei lo screenshot o la foto
salvata da qualche parte ma consigliere la trascrizione su un pezzo di carta da tenere al
sicuro perché queste parole ci permetteranno di fare il backup di tutto il wallet.

189
7. Nel passaggio successivo il wallet ci chiederà di inserire le parole per assicurarci che ce
le siamo salvate da qualche parte.

Come si può notare, queste parole sono fatte in modo che già con 3 lettere il sistema
suggerisca la parola predefinita esistente per quelle iniziali, quindi non vi è quasi margine di
errore.

8. Una volta inserita ci chiederà di cifrare il portafoglio per renderlo più sicuro e avremo
finito.

190
Ora il software crea una chiave pubblica principale in background e come si poteva dalla
chiave privata principale, rigenerare tutte le chiavi private in un secondo momento, anche
con la chiave pubblica principale si può fare la stessa cosa, generando così tutte le chiavi
pubbliche.

Questo ha due utilità:

- Primo caso in cui mi interessa avere un wallet che può generare solo indirizzi
di ricezione ma non può firmare non avendo le chiavi private.

Esempio posso scaricare l’applicazione sul telefono, che mi permette solo di


monitorare pagamenti in arrivo in quanto non dispone delle chiavi private per
firmare le transazioni.

Quindi inserendo nel momento di configurazione sul telefono la MasterPubKey


quel wallet sarà in grado di creare tutti gli indirizzi di ricezione senza sapere le
chiavi private, potendo così monitorare i pagamenti in entrata anche sugli
indirizzi generati in futuro.

Questo è particolarmente utile se voglio avere un secondo device dove monitoro


solo i pagamenti.

- potrebbe servirmi invece anche quando si ha un wallet Multi-Sig, ovvero in


cui sono possibili due o più firme per movimentare i fondi. Questo vuol dire
che gli indirizzi di ricezione avranno inserite dentro due chiavi pubbliche e
per creare un indirizzo di ricezione per farmi pagare su questo wallet
Multi-Sig devo sapere qual è la chiave pubblica del/dei mio/miei Co-Signer.

191
Infatti bisogna, per forza di cose, dare questa chiave pubblica del wallet al
Co-Signer in modo che lui la possa importare e in questo modo possa generare
indirizzi che abbiano entrambe le chiavi pubbliche.

Questo è utile in caso con un wallet Multi-Sig tra due persone, uno dei due voglia
firmare e inviare automaticamente la transazione avendola già firmata dall’altro
Co-signer.

Detto questo la configurazione è finita e si possono iniziare a fare le prime operazioni per
acquisire sempre più dimestichezza con questi nuovi strumenti.

Questo wallet, seppur molto scarno, può essere molto utile all’inizio per capire tutti i
meccanismi che caratterizza un wallet, in quanto è tutto già pronto e configurato senza
bisogno di fare KYC. Inoltre permette di effettuare o ricevere subito transazioni in completa
sicurezza senza dover scaricare tutta la blockchain.

Questo wallet inoltre possiede anche la funzionalità sia online che offline, dando la
possibilità di creare le versioni watching only del wallet sullo smartphone, come abbiamo
detto sopra, inserendo la MasterPublicKey per poi spostarmi volendo le transazioni
parzialmente firmate dal computer online al dispositivo offline.

192
WASABI WALLET: portafoglio utile per aumentare il
livello di anonimato.
Wasabi Wallet, è un portafoglio con maggior privacy perché esso riesce a mischiare tutti i
destinatari della transazione in modo da non far capire chi effettivamente è il mittente o il
destinatario di ciascuna transazione.

Questo è reso possibile perché si sistemano tutte le transazioni in modo che non si sappia
chi ha inviato una determinata somma e a chi è stata inviata perché tutti gli output
(destinatari) devono avere tassativamente gli stessi importi.

Così facendo si sfrutta la caratteristica delle transazioni che mischiano più input e output di
ugual valore facendo CoinJoin, con la limitazione però di poterlo fare solo se si invia una
certa somma, perché appunto affinché il sistema funzioni devono esserci degli output dello
stesso importo.

Per una guida dettagliata vi segnalo questo video.

Altri piccoli consigli:

Tra gli Hot Wallet più conosciuti e sicuri per le crypto vi segnalo:

1. Eidoo Wallet
1. Electrum
2. Mycelium
3. GreenAddress
4. Copay

Mentre tra gli Hardware storage:

1. Steel Wallet ( praticamente la stessa cosa di Ellipal)


2. Ledger Nano S o X (direttamente dal loro sito però e non da Amazon)
3. Trezor
4. Ellipal (card in metallo indistruttibile che permette di salvare il seed)

Tra i servizi più facili da usare per acquistare/vendere criptovalute vi consiglio:

- Coinbase (exchange più user-friendly in assoluto, ma ricordate la comoditá si paga);


- Binance Exchange dove scambiare cripto per cripto ( più acerbo e macchinoso);
- Binance Jersey per comprare monete fiat con cui comprare dopo cripto trasferendole
nell’altro account;
- Conio invece se cercate qualcosa di italiano però dovete sapere che non è un
exchange, ma offre comunque un servizio molto competitivo grazie al fatto di offrire
le fee più basse tramite acquisto con carta.

193
- Wirex invece è una carta che contiene crypto e nel momento in cui devi pagare ti fa
la conversione in fiat, potendo girare così con una carta contenente cryptomonete.

Vi lascio dei link nel caso voleste iscrivervi in alcuni exchange come Coinbase e Binance o
servizi come Wirex.

Siccome voglio essere trasparente al massimo vi anticipo che se vi registrate con i link che vi
ho lasciato, ogni tot. che spenderete genererà un bonus sia a me che a voi.

Ed ecco qui alcuni link che potrebbero servire nella comprensione di alcuni argomenti:

Approfondimento PoW

Approfondimento Nothing at Stake

Approfondimento caso The Dao

Approfondimento Fork

Approfondimento Exchange

Approfondimento tipologie Blockchain

Approfondimento Blocco Blockchain

Approfondimento transazioni

Vi lascio anche questo approfondimento in caso moriate dalla voglia di conoscere LN

Vi consiglio la lettura di quest’ultimi non solo perché potrebbe aiutarvi a comprendere


meglio questi argomenti ma anche perché potrebbero esserci delle domande nel test.

Finisce qui questa Super Guida e vi ricordo la cosa più importante nel mondo
Blockchain: continuare ad aggiornarsi costantemente, perché domani potrebbe uscire
qualcosa che metterà in discussione tutto ciò che oggi consideriamo certezze
indiscusse.

Detto questo, direi che possiamo passare finalmente al progetto!

194

Potrebbero piacerti anche