indice
I capi saldi della blockchain
Il ruolo dei minatori nella blockchain
Perchè la blockchain è immodificabile?
I capi saldi della blockchain
Se hai letto l’articolo sui Bitcoin, avrai capito che tutto questo scambio di denaro non può avvenire senza una tecnologia che, sostituendosi alla banca, effettua tutti i controlli assicurando la buona riuscita e validità delle transazioni.
Questa tecnologia è stata battezzata blockchain: catena di blocchi.
Si chiama così perchè tutte le transazioni vengono immagazzinate in blocchi collegati tra loro in maniera sequenziale, a formare dunque una catena di blocchi fatta più o meno così.
La blockchain è distribuita
La blockchain è il “libro mastro”: qualsiasi transazione mai effettuata si trova lí dentro. Il libro mastro è pubblico, vale a dire che chiunque può accedervi e consultarlo ed una sua copia aggiornata è consegnata costantemente a tutti gli utenti della rete.
Mumble
“Davide scusa, ma se il libro mastro, la blockchain, è visionabile da chiunque, la privacy che fine fa? Io non voglio che la gente ficchi il naso nelle mie spese!”
Vero, tutti possono accedere e guardare, ma nessuno potrà mai risalire a te. Nessuno può risalire, da una transazione, a chi ci sia dietro. Ecco perchè i malfattori spesso scelgono di farsi pagare in Bitcoin. Una volta ricevuti i soldi non c’è verso di risalire al criminale.
La blockchain è firmata digitalmente
Mumble
“Davide scusa, ma se il libro mastro, la blockchain, è pubblica, cosa impedisce al primo che passa di inserire una transazione fasulla a mio nome? Mi ritroverei imputate spese di cui non so nulla?”
Questo è uno dei primi problemi che si incontra quando si mette in piedi un meccanismo di pagamento: verificare l’autenticità e la veridicità delle transazioni. Ecco perchè ogni transazione sulla blockchain è firmata digitalmente.
Ogni detentore di un portafogli di criptovalute ha una coppia di chiavi che servono per firmare ogni transazione, proprio come la PEC. Quelle chiavi sono uniche e solo in tuo possesso. Di conseguenza, ogni transazione firmata con quelle chiavi può essere stata fatta solo da te. O, rigirandola, nessuno può fare transazioni per tuo conto (a meno che non abbia le tue chiavi).
Per fare un parallelo con il sistema bancario, le chiavi sono come la username e password della tua banca on-line.
Il ruolo dei minatori nella blockchain
Le transazioni non finiscono subito in un blocco della blockchain, ma parcheggiano in un pentolone dove attendono di essere prese e messe nel loro blocco.
Gli utenti incaricati di creare un nuovo blocco e metterci dentro le transazioni parcheggiate nel pentolone si chiamano i MINATORI. Quale dei tanti crea il blocco e ci mette dentro le transazioni? Il più rapido a risolvere un puzzle matematico.
Ma prima di parlare di come i minatori aggiungono nuovi blocchi nella blockchain, bisogna introdurre gli hash.
Sfida a colpi di “hash”
b53a8b0c1908f21ec389fc129b129413f46a7d6755a61cc8ae9bd0b8a7e1e0b7
Questo qui sopra è un hash: una stringa di lettere e numeri generata da un algoritmo chiamato SHA-256 (se ti ci vuoi divertire un po’ accomodati), di importanza cruciale per la blockchain, come vedrai più avanti.
Puoi immaginare SHA-256 come una scatola magica, non ti importa sapere cosa avviene all’interno, solo che se ci metti dentro qualcosa, la scatola te la trasforma in una stringa di testo sempre della stessa lunghezza.
Dentro la scatola ci puoi mettere qualsiasi cosa: un cd musicale, una tesi di laurea, delle foto… qualsiasi cosa. La scatola ti trasformerà sempre tutto in una stringa di lettere e numeri.
L’hash sopra in grassetto, è quello che SHA-256 ha tirato fuori quando gli ho fornito questo testo: “quanto è bello il carosello”.
Guarda cosa succede alla stringa se cambio l’input in: “quanto è bello il Carosello”
36f4f5919f51cf22f4bdf79e059a2f80001dca059cfa1a62b908925e3df68364
Completamente diverso. Basta cambiare una virgola, qualsiasi cosa e la stringa cambia completamente.
Hash + blockchain = Rivoluzione
Mumble
“Allora Davide, qual è questo puzzle matematico dei minatori? Che c’entrano gli hash con la blockchain?”
Ogni blocco della blockchain è identificato da un suo hash, come se fosse la sua targa, il suo codice fiscale, che è proprio il puzzle da risolvere. Ogni minatore, per poter creare un blocco e metterci dentro le transazioni, deve calcolarne l’hash.
Prende quindi la scatola magica e ci mette dentro le transazioni e l’hash dell’ultimo blocco creato. La scatola a quel punto potrebbe tirare fuori una cosa del genere:
58dc1d9d87f4f98ae6b4b3895d05a62bdb45453771cb583cc30ed44574dab418
Mumble
“Davide scusa, ma dove sta la difficoltà in questo? Se so cosa mettere nella scatola magica poi fa tutto lei e mi trova l’hash. Non mi sembra un puzzle così difficile!”
La sfida infatti è ben più ardua: l’hash che la scatola genera di primo acchitto non va bene. Per creare un nuovo blocco e inserirlo nella blockchain, il minatore deve trovare il modo per tirare fuori dalla scatola un hash che inizi con un certo numero di 0, diciamo 5.
Per variare l’hash prodotto dalla scatola, l’unica via è variare quello che ci si mette dentro. Ma il minatore deve per forza metterci ALMENO le transazioni da validare e l’hash del blocco precedente. Nulla gli vieta di metterci qualcosa in più.
Ed ecco il puzzle: per inserire un nuovo blocco nella blockchain, il minatore deve trovare quel “qualcosa in più” da inserire nella scatola, insieme alle transazioni e all’hash del blocco precedente, per fare in modo che l’hash inizi con un certo numero di zeri.
E l’unico modo che ha è per tentativi, non ne esistono di altri. Si arma di santa pazienza e comincia a mettere nella scatola, oltre a transazioni e hash del blocco precedente, anche numeri nella speranza di trovare quello che, insieme a tutto il resto del contenuto della scatola, genera un hash che inizi con 5 zeri.
Se riuscirà prima degli altri a trovare il “qualcosa in più”, oltre ad avere il diritto di creare un nuovo blocco nella blockchain, verrà ricompensato dal sistema per tempo ed energia spesi per rendere questo servizio.
Perchè la blockchain è immodificabile?
Questo è uno dei miei punti preferiti. Nella blockchain, quello che è fatto è fatto. Non si potrà mai più modificare. Una volta che una transazione entra in un blocco, non può più essere cancellata o modificata nemmeno minimamente.
Se qualcuno lo facesse per ottenere un proprio beneficio personale, non otterrebbe nulla perchè l’intera blockchain crollerebbe con tutta la rete Bitcoin
Mumble
“Davide, ma come fa la blockchain ad impedire modifiche?”
Basta guardare come è fatta. Il segreto è che per calcolare l’hash di ogni blocco, nella scatola magica si va a mettere anche l’hash del blocco precedente.
Diciamo che io sia un malintenzionato e voglia entrare nel blocco 1 per modificare la transazione 1.
Ogni minima modifica al contenuto del blocco però, ne cambia l’hash che quindi non avrà più 5 zeri iniziali, invalidando il blocco.
Questo genera ora un effetto a valanga che invalida tutta la blockchain da quel blocco in avanti ed ecco il perchè: l’hash del blocco 1 era parte integrante per il calcolo dell’hash del blocco 2. Essendo cambiato, ha sminchiato l’hash anche del blocco 2 ora.
E l’hash del blocco 2 stava nel blocco 3 che quindi è sminchiato anche lui.
Una modifica in un blocco della blockchain, porta la catena a spezzarsi sminchiando tutti gli hash dei blocchi a valle.
La blockchain è una macchina della verità
Cosa abbiamo dunque? Una macchina in grado di gestire transazioni senza bisogno di un organismo centrale che controlli. Un libro mastro pubblico condiviso da tutta la rete, ma al tempo stesso con privacy garantita. Firme digitali per certificare che solo tu stia effettuando quella transazione. Una tecnologia assolutamente immodificabile.
La blockchain ti consente di diventare la banca di te stesso, con tutti i pregi ed i difetti che questo comporta. Perdere le chiavi di firma digitale implica non poter più fare transazioni e quindi, di fatto, aver perso l’accesso al proprio portafogli. Nessuno potrà aiutarti.
Se ti venissero rubate ed il ladro svuotasse tutto il tuo conto, non potresti fare nulla per evitarlo ne annullarlo, la blockchain non si modifica.
Ma la sua sicurezza ed immutabilità fanno pensare ad applicazioni utili come la gestione dei voti o l’implementazione di contratti. Per non parlare del numero enorme di persone nel mondo che non hanno accesso a servizi bancari e che con pochi clic entrerebbero a far parte di una rete in grado di scambiare e mantenere soldi.
In un libro ho letto un parallelismo molto interessante: le transazioni stanno alla blockchain, come le email stanno a internet. Solo una delle possibili applicazioni.
Davide
BIBLIO
- The Truth Machine: The Blockchain and the Future of Everything [EN – Paul Vigna, M. J. Casey]
- The Age of Cryptocurrency [EN – Paul Vigna, M. J. Casey]
- Bitcoin: Un sistema di pagamento elettronico peer-to-peer [EN/IT – Satoshi Nakamoto]
- La Blockchain spiegata semplice [IT – Osservatori.net]
- Cos’è la tecnologia blockchain? [IT – IBM]
- Cos’è la tecnologia blockchain? [IT – Amazon Web Services]
- Risorse varie [IT – Bitcoin.org]
- 10 Years Ago Today, Bitcoin Creator Satoshi Nakamoto Sent His Final Message [EN – Forbes]
- Blockchain Exporer
- New Satoshi Nakamoto E-mails Revealed [EN – trustnodes]
- THE LAST DAYS OF SATOSHI [EN – Bitcoin Magazine]
- Satoshi Nakamoto Is Not Relevant [EN – Hackernoon]
Salve ragazzi, una domanda:
ma se uno (Ahcker?) riuscisse più o meno involontariamente a modificare una blokchain
non crollerebbe tutto il sistema e tutto il libro mastro a valle? come si potrebbe
ricostituire il tutto?
Grazie come sempre.
Domanda giustissima Gino e sono sicuro se la sia posta anche Satoshi. La risposta è in 2 concetti chiave: il consenso tra tutti gli utenti della blockchain su quale sia la copia del libro mastro autentica e il fatto che OGNI utente ha una copia del libro mastro aggiornata. Diciamo ora che un hacker manometta la tua copia del libro mastro. Ravviseresti subito l’anomalia perchè si sminchierebbero tutti gli hash della tua copia, ma non di quelle di tutti gli altri milioni di utenti. Non appena un nuovo minatore produce un nuovo blocco e lo mette nella blockchain, comunica la nuova versione con il blocco aggiunto a tutti quanti, rendendo obsoleta quella in tuo possesso alterata dal malfattore.
Spero di averti risposto, diversamente chiedi pure.
Davide.