- Blog
- Informatica
- Blockchain e cryptovalute, scopriamole ...
Blockchain: cosa vuol dire, come funziona e su che sitemi si basa
La Blockchain è un sistema informatico distribuito di tipo DLT (Distributed Ledger Technologies) che consente la condivisione e la gestione di un registro distribuito particolare, detto “blockchain” (catena di blocchi), dove si trascrivono le transazioni scambiate tra i vari soggetti che utilizzano la stessa tecnologia.
Il registro “blockchain” ha una struttura a blocchi in cui ogni blocco è concatenato al precedente: la struttura del registro ha dato il nome alla tecnologia che viene sempre citata con l’iniziale in maiuscolo.
La Blockchain garantisce la sicurezza delle transazioni e del registro, con tecniche di crittografia, di consenso e condivisione avanzate.
La Blockchain è stata definita come una tecnologia disruptive (dirompente) le cui potenzialità sono emerse grazie alla diffusione delle cryptovalute, soprattutto tramite Bitcoin ridefinendo i concetti di transazione, in particolare per le transazioni di asset a cui è associato un valore, sia esso:
- Monetario (cryptovalute);
- Proprietà (contratti);
- Intellettuale (copyright);
- Espressione di un diritto (voto);
Garantendo e certificando il trasferimento di proprietà del “bene digitale” o asset oggetto della transazione.
Questa introduzione potrebbe risultare ostica per molti lettori, motivo per cui cerchiamo di dividere il tutto in una serie di articoli che abbiano lo scopo di dare le basi essenziali e di spiegarne il funzionamento in modo sufficientemente dettagliato.
Blockchain, concetti e fondamenti di base
Questo percorso è adatto a esperti e meno esperti ed è volto a fornire in modo semplice alcune nozioni fondamentali di informatica, che consentiranno al lettore di avere una visione più chiara di che cosa vuol dire Blockchain, su quali componenti tecnologiche si basi e come funzioni. Non ce ne vogliano i più esperti se a volte utilizziamo delle semplificazioni, ma spesso sono essenziali per rendere immediatamente chiari anche ai novizi, determinati argomenti.
Iniziamo con il descrivere cos’è un sistema informatico, quali sono le sue componenti fondamentali e le diverse tipologie esistenti. In questo modo il lettore avrà un quadro completo delle componenti e delle tecnologie necessarie per la realizzazione di una DLT (Distributed Ledger Technology) e di una Blockchain.
Sistemi informatici
In informatica, è possibile definire un sistema informatico come un sistema in grado di effettuare delle elaborazioni su dei dati per fornire dei risultati in modo automatico. Un personal computer è un sistema informatico, ma anche un insieme di personal computer interconnessi tra loro realizzano un sistema informatico (es. una rete LAN domestica o la rete internet); nel secondo caso è di fondamentale importanza distinguere il metodo e la struttura architetturale con cui si realizzano le interconnessioni tra i diversi computer del sistema, la più diffusa è detta client-server.
Esempio tipico di un’architettura client server è rappresentata da:
- Client: il vostro computer o device (dispositivo, tablet, smartphone, etc.) magari lo stesso con cui state leggendo questo articolo.
- Server: il computer sul quale risiedono le pagine web che contengono questo articolo.
- La rete Internet: l’infrastruttura con cui è possibile interconnettere i due dispositivi.
Il client, il server e l’infrastruttura di rete con cui si realizza un tale sistema rappresentano la sua parte hardware. La distinzione fondamentale tra i due attori principali di questo sistema è evidente:
- il client può solo effettuare richieste al server.
- il server è predisposto ad assolvere ad ogni richiesta pervenuta dal client.
Altri attori che giocano un ruolo fondamentale in questa architettura sono i “software”, che rappresentano la parte logica del sistema.
Con i software (ultimamente si utilizza il termine più generico App) presenti sul nostro client siamo in grado di inviare delle richieste al server. I browser internet (Google Chrome, Mozilla Firefox, Brave, Safari, Opera, Microsoft Edge) sono software con una interfaccia grafica (GUI — Graphical User Interface) che consentono l’invio di richieste ai server per la visualizzazione di pagine web.
Il software lato server rappresenta la parte logica del sistema che in qualsiasi istante è pronto a ricevere le richieste dai client, interpretarle, elaborarle e restituirne i risultati. Nel nostro esempio, quando il software lato server riceve dal client la richiesta di visualizzazione di una particolare pagina web, la elabora e costruisce i contenuti della pagina; restituisce poi il risultato al client in una forma non ambigua. A questo punto il browser sul client che ha eseguito la richiesta, interpreta il contenuto della risposta e visualizza il risultato.
Nell’immaginario collettivo permane l’immagine dei server come enormi computer del secolo scorso, che riempivano intere stanze e che sembravano poter fare di tutto, come ad esempio l’IBM 704. Il primo computer commerciale IBM 704, infatti occupava lo spazio di un’intera stanza.
Da quanto detto finora dovrebbe essere chiaro che il concetto di server ha un significato molto più ampio e che non si limita al solo hardware, ma a qualsiasi cosa che si occupi di “servire” informazioni all’interno di un sistema informatico.
A dimostrazione di ciò, affermiamo che può essere un server anche un semplice computer come il vostro notebook o un mini computer come i Raspberry Pi e similari, computer a tutti gli effetti, nel palmo di una mano.
Classificazione dei sistemi informatici
I sistemi informatici con architettura client-server possono essere classificati come segue:
- Sistema Informatico Centralizzato
Un sistema avente un solo server centrale (o nodo di rete), che assolve a tutte le richieste dei client connessi alla stessa rete. Tale sistema accentra su di un solo computer (o nodo) sia servizi che dati da fornire ai client.
Sistema informatico centralizzato. Tutte le richieste convergono in un unico punto.
Un esempio tipico di un sistema centralizzato può essere quello di una piccola realtà aziendale, i cui client siano rappresentati dai computer in dotazione ai dipendenti ed un unico server sul quale sia installato un software ERP (Enterprise Resource Planning) per la gestione delle attività commerciali quotidiane, come ad esempio contabilità, gestione della supply chain ecc.
- Sistema Informatico Decentralizzato
Un sistema avente molti server (o nodi di rete) collegati tra di loro, ognuno dei quali è dedito a fornire particolari servizi e/o dati. Questo tipo di architettura si differenzia dalla precedente poiché separa sia dal punto di vista fisico che logico, i vari componenti del sistema. Per l’elaborazione delle richieste è necessario che più nodi collaborino scambiandosi dati, poiché presi singolarmente, non sono in grado di fornire una risposta completa al client.
Sistema informatico decentralizzato. Le richieste vengono servite da più server, ognuno per la propria area di competenza.
Possiamo quindi notare che in un sistema decentralizzato, un server può comportarsi anche da client, chiedendo ad altre entità della rete di collaborare alla risoluzione di una particolare operazione. Esempi di sistemi decentralizzati possono essere la posta elettronica, i social network, oppure i servizi offerti dalle piattaforme Google, Microsoft e Amazon. Questo modello è perfetto per organizzazioni che possono creare e manutenere le proprie infrastrutture di comunicazione e preferiscono avere un controllo completo su di esse.
- Sistema Informatico Distribuito
Fanno parte della categoria dei sistemi decentralizzati ma hanno alcune particolarità. In questo tipo di sistemi ogni server (o nodo) è autonomo ed autosufficiente e non esiste un server dedicato a particolari servizi. Ogni singolo nodo della rete fornisce i medesimi servizi e contiene le medesime informazioni o dati. Si distingue dal sistema decentralizzato anche perché i nodi sono connessi fra loro attraverso dei componenti software che permettono il coordinamento delle attività e la condivisione dei servizi e dei dati in modo che gli utenti percepiscano il sistema come un unico servizio integrato (tale modello è anche detto rete peer to peer — P2P).
Sistema informatico distribuito. Le richieste possono essere soddisfatte da qualsiasi nodo della rete in modo indipendente e completo.
Esempi di sistemi informatici distribuiti tipici sono rappresentati dalle architetture di rete e dai protocolli BitTorrent.