Capitolo 3 - Blockchain, Transazioni e Sicurezza
Cosa Sono le Transazioni
Un tema particolare sul quale ho spesso avuto modo di discutere riguarda il funzionamento pratico delle transazioni in una Blockchain.
Ad essere onesti, comprendere appieno l’intero funzionamento delle transazioni in un Sistema di Blockchain è stato un compito difficile in prima battuta, in particolare nel 2014 quando circolavano gran poche informazioni a riguardo (e di dubbia veridicità).
Quando si affrontano tematiche abbastanza “tecniche” o che possono risultare complesse, ciò che più mi aiuta a comprendere bene l’argomento è partire da una spiegazione molto elementare. Perciò ho utilizzato lo stesso approccio che adotto nella mia vita quotidiana anche in questo articolo.
Ogni transazione viene inviata da e verso un registro detto “wallet”
Ogni partecipante al network può vedere le transazioni
e la storia di ogni singola transazione può essere tracciata
fino al punto in cui la valuta è stata effettivamente “creata”.
Potrebbe sorprenderti sapere che i Bitcoin – ad esempio – non esistono in alcun luogo (neanche sotto forma di “codice”).
Ciò che esiste, invece, è la storia di ogni transazione avvenuta fra indirizzi diversi, con i rispettivi cambiamenti dei saldi. Ogni transazione che è mai avvenuta è sistematicamente salvata all’interno di un’enorme database pubblico ed iper-sicuro chiamato Blockchain.
Se vuoi conoscere il saldo di un qualsiasi indirizzo Bitcoin le informazioni non sono visibili presso quell’indirizzo ma sulla Bklockchain stessa.
Se A invia dei Bitcoin a B, questa transazione conterrà necessariamente tre informazioni distinte:
• Un input: Quale indirizzo (wallet) è stato usato per far sì che A possegga i fondi da mandare a B (ad esempio li ha ricevuti da C).
• Una quantità: L’ammontare di Bitcoin che A manda a B.
• Un output: L’indirizzo digitale (il wallet) di B.
Quindi, in sostanza, una transazione non è altro che una stringa composta da numeri e lettere che contiene queste tre informazioni (input, quantità e output) assieme ad altri caratteri che vengono – per semplificare – generati in modo casuale.
Come Funziona
Per inviare – o ricevere – Bitcoin, avrai bisogno di due sole cose:
una chiave pubblica (anche detta wallet) ed
una chiave privata.
La chiave pubblica, come accennato, viene generato in modo casuale ed altro non è che una serie di numeri e lettere. La chiave privata è una sequenza di numeri e lettere che, al contrario del wallet, non può (e non deve) essere vista da chi non ne è il proprietario.
Pensa all’indirizzo Bitcoin come ad un cavò con una parete in vetro. Chiunque può vedere cosa contiene, ma soltanto la chiave privata può aprirlo per depositare o prelevare qualcosa.
Quando A vuole mandare dei Bitcoin a B, utilizza la sua chiave privata per firmare una sorta di messaggio contenente – come già visto – un input (la sua chiave pubblica e la sua chiave privata), una quantità ed un output (la chiave pubblica di B).
A questo punto la richiesta viene inviata a tutto il network che verifica e approva (o blocca) la transazione; tutto questo processo avviene grazie al lavoro dei cosiddetti “miner” (in italiano “minatori”).
Poiché la transazione deve per forza essere verificata dai miner, sono richiesti dei minimi tempi di attesa prima che la transazione sia completa, il ché avviene una volta che l’intero blocco di transazioni in cui si trova è validato.
Ogni blocco richiede un tempo medio di 10 minuti per essere “risolto”.
Versione Breve
Se voglio inviarti qualche Bitcoin, in sostanza, dovrò pubblicare questa mia “intenzione” in modo che i vari “nodi” del sistema possano verificare nel network che
1- possiedo realmente i Bitcoin che voglio inviare, e
2- non li abbia già inviati a qualcun’altro.
Una volta confermate queste informazioni, la mia transazione viene aggiunta in un “blocco” che viene collegato a quello precedente. Nessuna transazione può venire modificata o eliminata una volta che è in un blocco, perché per farlo sarebbe necessario ricostruire da zero ogni blocco successivo a quello che la contiene.
Versione Lunga
Come abbiamo visto, il mio wallet non contiene realmente i miei Bitcoin.
Ciò che fa, è salvare lo storico di tutte le mie transazioni e, di conseguenza, del mio saldo.
Questo wallet – anche detto chiave pubblica – è una stringa di 34 caratteri alfanumerici visibile da chiunque in ogni momento.
Ad ogni chiave pubblica corrisponde una – immutabile – chiave privata che consiste di 64 caratteri alfanumerici. Questa chiave è assolutamente privata, ed è indispensabile che sia custodita al sicuro. Le due chiavi sono, quindi, collegate ma è virtualmente impossibile arrivare ad individuare una chiave privata partendo dalla sua corrispondente chiave pubblica.
Questo meccanismo è di estrema importanza, in quanto implica che per ogni transazione effettuata da un indirizzo Bitcoin deve necessariamente essere verificata la corrispondenza fra chiave pubblica e chiave privata. Perché ciò avvenga, entrambe le chiavi ed i dettagli della transazione (quanti Bitocin voglio inviare e a chi) devono essere registrati da uno specifico software presente sul computer del mittente.
Con questa informazione il programma è in grado di generare una “firma digitale” che viene poi inoltrata al network per essere validata.
Questa transazione potrà essere validata – con ciò intendo che vengono verificati indirizzo del mittente, quantità ed indirizzo del destinatario – solo se sono presenti al suo interno entrambe le mie chiavi (pubblica e privata).
In questo meccanismo risiede, a mio parere, uno degli aspetti più importanti del protocollo Bitcoin: se la firma digitale è costituita da una chiave privata che corrisponde a quella pubblica, il programma validerà la transazione senza sapere qual è la chiave privata.
A questo punto, il network conferma che non ho già “speso” i Bitcoin che desidero inviare “leggendo” lo storico delle mie transazioni il quale è liberamente accessibile da chiunque.
Qualche Tecnicismo
Come visto in precedenza, una volta che una transazione è validata viene incorporata in un "blocco" insieme ad altre transazioni.
Un importante dettaglio da conoscere per comprendere appieno come avvengono le transazioni in una Blockchain riguarda il concetto di “hash”.
Un hash è, in sostanza, una stringa composta da 64 caratteri che è generate attraverso una “funzione di hash”, cioè attraverso una complicate formula in grado di ridurre qualsiasi testo o insieme di dati in una stringa di 64 caratteri. Questo processo non è casuale, ogni volta che lo stesso testo (o gli stessi dati) vengono sottoposti alla funzione di hash genereranno la stessa identica stringa di 64 caratteri.
Tuttavia, se anche solo una lettera viene modificata, si otterrà una stringa di 64 caratteri completamente diversi da quelli di partenza. Un intero blocco può essere ridotto ad un hash e, a patto che non venga modificato, genererà sempre lo stesso identico hash. Questo è un modo particolarmente efficace per verificare se qualcosa è cambiato in un blocco, ed è il concetto fondamentale alla base del funzionamento della Blockchain.
Per quanto riguarda i blocchi, ognuno di loro contiene, tra i suoi dati, un riferimento all’ultimo blocco che lo ha preceduto. Quindi, se anche solo un minuscolo dettaglio del blocco precedente dovesse essere alterato, l’intero hash del blocco corrente dovrebbe essere a sua volta cambiato, e così via.
Questo è, fondamentalmente, ciò che rende le Criptovalute come i Bitcoin virtualmente incorruttibili.
Pensieri Conclusivi
In questo nuovo mondo iperconnesso in cui viviamo, la sicurezza dei dati digitali è diventata un tema estremamente importante. Essere in grado di controllare informazioni personali sensibili è un aspetto che nessuno dovrebbe sottovalutare, in particolare quando queste informazioni riguardano denaro e/o contratti.
Come abbiamo sottolineato in precedenza, la Blockchain non solo risolve questo problema, ma rende anche possibile l’annullamento del divario informativo tra gli attori che utilizzano transazioni digitali.
Allo stesso modo in cui i Bitcoin non esisterebbero senza la Blockchain, la Blockchain non esisterebbe se non potesse risolvere entrambe queste problematiche.
E le risolve.
Sapere che puoi compiere transazioni con - virtualmente - chiunque sia online senza rischiare di essere frodato è un concetto estremamente importante da solo.
Se ci aggiungi che i tuoi dati sensibili rimangono eccezionalmente sicuri durante il processo ottieni un mix esplosivo, il tutto ad un costo MOLTO baso.
Grazie, spiegazione molto chiara, gradirei se possibile, vista la tua competenza in materia, un articolo su criptovalute non minabili come iota che utilizza tecnologie parallele alla blockchain
https://steemit.com/steemcontestitalia/@piergiuseppe/le-cripovalute-gli-speculatori-prospettive-per-il-futuro
Ciao @piergiuseppe e grazie per il feedback.
Innanzitutto ricambio i complimenti, anche il tuo articolo è decisamente interessante.
Per quanto riguarda le Criptovalute non minabili ho già un articolo in programma, ci vorrà un po' di tempo ma arriverà.
Considerando, invece, Criptovalute basate su tecnologie alternative alla Blockchain mi trovo un po' in difficoltà e ti spiego il perchè.
Come avrai notato da questo o da precedenti articoli, sono un sostenitore accanito della Blockchain come idea/tecnologia più che di qualche Crypto specifica (anche se ho le mie preferenze). La Blockchain, a mio parere, è così interessante non tanto per la sua tecnologia (banalmente, i vari protocolli) ma per l'idea che c'è alla base.
IOTA o altre, a mio parere, stanno facendo una cosa importantissima per qualsiasi innovazione tecnologica: sperimentando.
Se pensi alle rivoluzioni industriali o a qualsiasi nuova tecnologia "disruptive" quello che salta all'occhio è come dall'idea originale (nel nostro caso la Blockchain) possano nascere una miriade di idee/tecnologie più o meno utili, ma l'idea di base non cambia.
Motore a scoppio?
Idea grandiosa, declinazioni pratiche centinaia.
Energia Elettrica? Stessa storia.
Microchip?
Internet?
Ruota?
Quello che voglio dire è che per me la Blockchain è fondamentalmente una rampa di lancio per una nuova generazione di tecnologie ma che tutte queste tecnologie sono, inevitabilmente, connesse ad essa.
In ogni caso, da marzo comincierò a pubblicare una serie di articoli che mettono a confronto Criptovalute con caratteristiche simili ma tecnologia di base differenti, quindi se ti interessa una spiegazione più "tecnica" ti consiglio di darci un occhio!
Grazie ancora per l'interesse ed in bocca al lupo!
Congratulations @flash.review! You received a personal award!
Happy Birthday! - You are on the Steem blockchain for 1 year!
Click here to view your Board
Congratulations @flash.review! You received a personal award!
You can view your badges on your Steem Board and compare to others on the Steem Ranking
Vote for @Steemitboard as a witness to get one more award and increased upvotes!