
Eccoci qua pronti per una nuova lezione….oggi andiamo a terminare la dimostrazione pratica di una blockchain inserendo all interno dei campi le transazioni di una moneta.
Eh si, perché fino ad ora non è stata chiara l’utilità e il perché dovremmo fare uso di una Blockchain….Nei campi dati ho inserito parole semplici come il mio nome, nomi di animali e quant altro dimostrando la decentralizzazione dei dati ai singoli nodi e come i blocchi resistino alla manomissione e alterazione dei loro contenuti in un sistema completamente distribuito….Bene quello che a noi serve adesso e’ capire come costruire una “moneta” sulla nostra Blockchain…
Allora pronti e partiamo da questa immagine qui sotto !!! 👇👇👇👇

Prendiamo in riferimento il blocco n°1 del nodo A. Il token in modo del tutto arbitrario lo chiameremo dollari ($), ma avremo potuto scrivere qualsiasi altra moneta tipo euro, sterlina o ancor meglio bitcoin.
Facendo bene zoom nella foto nel campo TX (transazioni) notiamo che :

25 dollari che vanno da Darcy a Bingley
4.27 dollari che vanno da Elizabeth a Jane
19.22 dollari che vanno da Wickham a Lydia
106.44 dollari che vanno da Lady Catherine a Collins
6.42 dollari che vanno da Charlotte a Elizabeth
Esattamente come abbiamo visto nella scorsa lezione, ci sono diversi blocchi e ogni blocco contiene più transazioni.
Riferendoci sempre a questa demo non importa quante transazioni ci siano….possono essere molte, poche o anche nessuna…
Quel che invece balza agli occhi é che al di sotto del nodo A scendendo in basso notiamo le copie identiche della stessa blockchain per il nodo B e C…

Questo è il punto dove l’immutabilità diventa importante.
Facciamo ora un esempio di cosa succederebbe se andassi a modificare un singolo valore in una transazione di un blocco…..
Supponiamo che il Peer A precisamente nel blocco 2 modificasse il valore di input di una transazione…
Originariamente avevamo 45 dollari che da “Hudson” erano passati in mano a “Gorman”.
Invece ora ci troviamo che i 45 dollari sono diventati 90…..

Ciò va a generare un hash del blocco 2 per il peer B che è ben diverso dagli altri hash nella stessa altezza di blocco per gli altri nodi della blockchain …..

Inoltre il peer B nei successivi blocchi della sua catena (terzo, quarto, quinto e in avanti) avrà sempre hash non uguali con gli altri nodi in quanto regola fondamentale è che “l hash di un blocco è sempre collegato all hash del blocco precedente” … Di conseguenza avendone invalidato uno ha di fatto invalidato tutta la catena dal blocco 2 in avanti….
E’ molto importante capire che se qualcuno andasse indietro nel tempo a cambiare qualche valore in un blocco la cosa potrebbe essere rilevata. Il malintenzionato dovrebbe minare nuovamente i blocchi di quella catena uno ad uno dal punto di modifica fino al blocco attuale in modo da generare blocchi con hash validi.
Questa è un operazione che necessita di un dispendio di potenza computazionale inimmaginabile in termini di energia e quindi costosissima.
Inoltre in aggiunta a questo la nuova catena non verrebbe comunque presa in considerazione dal resto della rete in quanto è l unica a essere diversa da quella in possesso da tutti gli altri nodi della rete….
Per essere ritenuta valida dovrebbe essere presente nel 50 % + 1 di tutti i nodi della rete…..
Questo come detto più volte, ma vero punto di forza, è il motivo per cui la blockchain resiste alla modifica dei dati in ogni suo singolo blocco .
=======================================
Una cosa importante da menzionare è che in questa Blockchain demo non stiamo registrando eventi del tipo :
“Darcy ha 100$ in suo possesso e ne sta dando 25 a Bingley”
L’unica cosa che si registra è che Darcy da 25$ a Bingley…..

Non possiamo quindi sapere l’ammontare sul suo “conto” prima di ciò ma tracciamo solo i movimenti di denaro…..
Questo fa sorgere la domanda….
“Darcy ha 25$ sul suo conto?”
In questa versione di Blockchain abbiamo un problema perchè non sappiamo se effettivamente Darcy abbia 25$…..
Dobbiamo fare quindi un ulteriore step in avanti nella nostra lezione e aggiungere un concetto nuovo e cioè la Coinbase , ossia la transazione dove tutto ha avuto inizio.
=======================================

Ci troviamo ora nella sezione Coinbase all interno della nostra demo che riproduce visivamente come e’ strutturata la Blockchain, nel nostro caso di una moneta che abbiamo denominato “dollaro” ($).

Nel blocco n°1 del Peer A abbiamo aggiunto una transazione denominata “Coinbase” dove vengono creati dal nulla 100 $ dal nulla e assegnati ad Anders….

Dunque dalla foto qui sopra 👆 possiamo fare un paio di considerazioni :
1 – nel blocco n°1 in questione non compaiono transazioni eccetto la “Coinbase transaction” che assegna 100 $ ad Anders
2 – nel campo “prev hash” (hash del blocco precedente) il valore è uguale a 0000000000000000000000000000000000000000000000000000000000000000 in quanto di fatto non esistono blocchi precedenti a questo essendo il n°1 , il blocco “Genesi”.
Andando ora avanti nel blocco n 2 , che ovviamente è distribuito a tutti i nodi della rete, notiamo che anche qui abbiamo una “Coinbase transaction” sempre di 100 $ creata dal nulla e che viene di nuovo assegnata ad Anders…

Ma perché proprio a lui ?
Beh……come avviene in questa blockchain demo ma è poi quello che nella realtà avviene della Blockchain di Bitcoin , il miner che trova un hash tale da validare il blocco per le regole del protocollo riceve una ricompensa che viene riportata nella “Coinbase transaction”.
Nel blocco 2, rispetto al blocco 1, troviamo questa volta anche delle transazioni…..
Possiamo essere più che sicuri che le transazioni in questo blocco abbiano tutte come input lo stesso Anders perché al momento solo lui è in possesso di fondi avendoli ricevuti nelle “Coinbase transaction” del blocco 1 e 2 ……

Guardando le transazioni del blocco 2 segnate in rosso qua sopra nella foto possiamo iniziare ad avere le idee più chiare sulla veridicità delle informazioni che leggiamo…..
1 – Anders invia 10$ a Sophia
2 – Anders invia 20$ a Lucas
3 – Anders invia 15$ a Emily
4 – Anders invia 15$ a Madison
Possiamo considerare vere queste 4 informazioni perché Anders possiede abbastanza fondi ricevuti precedentemente come trascritto nel blocco.
Si segue quindi una sorta di regola di base della moneta secondo la quale non puoi “inventare” il denaro alterando i saldi
e la sua distribuzione è controllata.
Ora, guardando questa Blockchain che abbiamo creato ci spostiamo in avanti nel tempo fino al blocco 5 e nelle transazioni
troviamo che Jackson invia ad Alexander 2$

Ma Jackson ha effettivamente i 2$ da dare ad Alexander?
Se andiamo al blocco precedente (il numero 4) vediamo che Sophia, che aveva ricevuto 10$ da Anders nel blocco valido e firmato n°2
aveva dato 10$ a Jackson
Quindi siamo certi che Jackson ha il denaro da dare ad Alexander…..

Possiamo sempre andare indietro nel tempo e verificare la correttezza della blockchain……
=======================================
Questa è una Blockchain di base, e su questa
stiamo gestendo una valuta.
Ci sono diverse copie della blockchain e ciascun nodo ne ha una copia in modo che se io volessi modificare una transazione scrivendo per esempio “100 dollari” al posto di “5 dollari”, la catena diventerebbe invalida perché differente da tutte le altre….



Il malintenzionato dovrebbe minare nuovamente quel blocco in modo che abbia un hash valido e tutti i successivi blocchi ma sarebbe sempre il solo ad avere quella copia ….Di conseguenza verrebbe scartata e non considerata dal resto della rete….
Il bello della Blockchain é che ogni blocco aggiuntivo rafforza la verifica del blocco precedente e quindi dell’intera blockchain. Questo fa sì che la blockchain sia a prova di manomissione, offrendoci l’elemento chiave:
L’ IMMUTABILITÀ
=======================================
Bene…..siamo arrivati al termine di questa lezione ! Spero di essere riuscito a chiarire i concetti base di come funziona una Blockchain, perno saldo di Bitcoin e della sua decentralizzazione….