Blockchain Fundamentals
Conoscere e comprendere le caratteristiche della tecnologia Blockchain dalle basi
La Blockchain negli ultimi tempi si è guadagnata l’attenzione dei media, oltre che degli addetti ai lavori, in relazione alle possibilità che tale tecnologia sembrerebbe promettere, al punto che molti già parlano di una prossima “rivoluzione” digitale, sulla stessa falsariga (se non addirittura superiore) alla rivoluzione rappresentata dalla diffusione di internet.
Nata a supporto dei bitcoin, e con essa assurta alla ribalta delle cronache, la Blockchain costituirebbe a detta di molti la soluzione a diversi annosi problemi che hanno a che fare con il concetto di “fiducia”, intesa come elemento necessario a garantire non soltanto l’affidabilità delle transazioni finanziarie, ma in generale la garanzia della fede pubblica in ogni relazione tra parti contrapposte.
Innumerevoli sono quindi gli scenari e i possibili impieghi della Blockchain, a detta dei suoi entusiasti sostenitori, dalla tracciatura della filiera agro-alimentare, fino a ricomprendere il contrasto delle Fake News.
Quante di queste altisonanti promesse costituiscono scenari e casi d’uso reali per i quali la Blockchain può effettivamente costituire un punto di svolta, e quanto invece influisce il marketing nella scelta di adottare tale tecnologia?
Per avere un quadro complessivo, che consenta di valutare in maniera consapevole gli effettivi vantaggi ritraibili dalla Blockchain, è necessario comprenderne i meccanismi e il funzionamento di tale tecnologia.
Malgrado molti dei dettagli implementativi della Blockchain assumano un aspetto esoterico, comprensibile solo dagli “iniziati”, al punto da intimidire i “profani”, in realtà le logiche di fondo su cui essa si basa possono essere comprese anche da chi non abbia conoscenze tecniche di programmazione.
Corso “Blockchain Fundamentals”
Il Corso “Blockchain Fundamentals” si rivolge a tutti coloro (Aziende, Enti, liberi Professionisti, Studenti) i quali siano interessati a conoscere e comprendere dalle basi le caratteristiche della tecnologia blockchain.
I contenuti proposti sono fruibili anche da un pubblico che non dispone di specifiche competenze tecniche, nè è richiesta una precedente esperienza in ambito blockchain.
Introduzione – Che cosa è la Blockchain
Essenzialmente, la Blockchain è un
-
archivio distribuito
-
basato su reti peer-to-peer
-
implementato mediante crittografia
In qualità di archivio distribuito e decentralizzato, finalizzato alla gestione dei trasferimenti di assets digitali, la Blockchain consente agli utenti di scambiarsi reciprocamente valori digitali sotto forma di transazioni.
Obiettivi della Blockchain
La tecnologia Blockchain è stata originariamente introdotta a supporto di Bitcoin.
Il fine principale era quello di prevenire il fenomeno del double spending delle criptovalute, vale a dire la possibilità di spendere più volte la stessa moneta.
Tuttavia, il ruolo della Blockchain non è limitato al settore delle transazioni finanziarie.
La Blockchain come tecnologia
La tecnologia Blockchain può assumere forme e implementazioni differenti.
Pertanto, essa rappresenta più un concetto di natura architetturale, che una tecnologia specifica e ben definita.
Elementi essenziali della Blockchain sono:
-
le transazioni;
-
i blocchi;
-
il ledger;
Vediamone adesso nel dettaglio le caratteristiche.
Le Transazioni
Lo scambio di valori tra le controparti all’interno della Blockchain avviene mediante la realizzazione di transazioni.
Le transazioni vengono validate dalla rete dei nodi della blockchain, prima di essere inserite all’interno del ledger.
I blocchi della Blockchain
Per sua natura, la Blockchain non è altro che una catena di blocchi.
Ogni blocco al suo interno contiene una o più transazioni.
L’aggiunta di nuovi blocchi alla Blockchain avviene sulla base di prefissate frequenze temporali.
Il ledger distribuito
Contabilmente, la blockchain può essere considerata un libro mastro distribuito e decentralizzato, noto appunto come ledger distribuito.
La gestione del ledger avviene mediante l’impiego di consensus protocols, che sono progettati per conseguire il consenso della rete sulle transazioni registrate all’interno del ledger.
I consensus protocols sono molteplici, e caratterizzano le differenti implementazioni della blockchain.
Blockchain – I principi basilari
Introduciamo adesso i principi basilari su cui si fonda la tecnologia blockchain.
Archiviazione Distribuita
La possibilità di archiviare i dati all’interno di un database distribuito permette ad ogni partecipante di accedere alla cronologia completa delle transazioni.
Inoltre l’archiviazione distribuita impedisce che una singola entità possa assumere pieno controllo sulle informazioni archiviate.
L’archiviazione distribuita consente ai singoli nodi la possibilità di verificare direttamente e in autonomia l’integrità delle informazioni archiviate.
Non è quindi necessario ricorrere ad intermediari per effettuare la verifica.
Reti di comunicazione Peer-to-Peer
Per implementare l’archiviazione distribuita la blockchain fa ricorso alle reti peer to peer.
In questa tipologia di reti nessun nodo assume il ruolo di server centrale.
L’archiviazione distribuita consente di conseguire la trasparenza nonchè la irreversibilità delle transazioni.
Trasparenza delle transazioni
Ogni transazione e il valore ad essa associata sono visibili pubblicamente a tutti i partecipanti alla rete.
Le controparti di una transazione sono individuati dai loro rispettivi indirizzi, costituiti da sequenze alfanumeriche.
Irreversibilità delle transazioni
Ecco alcune delle caratteristiche che determinano l’irreversibilità delle transazioni nella Blockchain:
-
dopo essere state inserite all’interno di un blocco e aggiunte nella blockchain, le transazioni non sono più modificabili;
-
tale risultato è ottenuto proprio concatenando tra di loro i diversi blocchi che compongono la blockchain;
-
una eventuale modifica alle transazioni già archiviate comporterebbe infatti l’alterazione degli hash calcolati in precedenza.
Reti centralizzate e decentralizzate
Come abbiamo visto, uno dei principi basilari della Blockchain prevede l’utilizzo di un protocollo di comunicazione di rete Peer-to-peer, al fine di conseguire l’archiviazione decentralizzata delle informazioni.
Per comprendere i vantaggi associati alle reti decentralizzate, introdurremo prima le tradizionali reti centralizzate, analizzandone le caratteristiche principali, per poi confrontarle con le reti decentralizzate peer-to-peer.
Reti centralizzate (Client-Server)
Nell’immagine che segue, mostriamo un tipico esempio di rete centralizzata:
La caratteristica principale di tali tipologie di rete è costituita dalla presenza di un nodo centrale, che ricopre il ruolo di server.
Vediamo adesso alcuni esempi di reti centralizzate, analizzandone i rispettivi limiti che rendono indispensabile l’adozione del modello di rete decentralizzato (Peer-to-peer) nell’implementazione delle funzionalità della Blockchain.
Reti centralizzate: esempi
Un tipico esempio di rete centralizzata è reppresentato dalle tradizionali connessioni client-server del web.
Il vantaggio principale di una rete centralizzata è rappresentato dalla semplicità di implementazione, mantenimento e aggiornamento di tale modello architetturale.
Le informazioni necessarie vengono archiviate e aggiornate in un unico nodo centrale (il server) che le mette a disposizione dei client.
Reti centralizzate: limiti
Il limite fondamentale delle reti centralizzate è rappresentato dal fatto che in caso di malfunzionamento o di compromissione del nodo centrale (a seguito ad esempio di attacchi informatici), le informazioni in esso contenute non sono più disponbili e accessibili da parte della intera rete.
Inoltre, nelle reti centralizzate il nodo server assume il ruolo di autorità di controllo esclusivo sulle informazioni.
Reti decentralizzate (Peer-to-peer)
In una rete decentralizzata per definizione non esiste un nodo centrale che assume il ruolo di autorità di controllo e di condivisione autoritativa delle informazioni.
Al contrario, in un protocollo di rete peer to peer ogni singolo nodo è in grado di svolgere tale ruolo.
Il modello decentralizzato consente quindi ad ogni nodo della rete di contribuire alla condivisione e alla verifica delle informazioni.
Reti decentralizzate e Blockchain
Le caratteristiche delle reti decentralizzate sono essenziali per realizzare le funzionalità della blockchain.
Uno dei vantaggi chiave della blockchain è costituito infatti dal decentramento decisionale sulla verifica, la validazione e l’inserimento delle transazioni all’interno della blockchain.
Tali decisioni vengono poi condensate all’interno dei blocchi, che costituiscono gli elementi costitutivi della blockchain.
I blocchi – Gli elementi costitutivi della Blockchain
La Blockchain non è altro che una catena di blocchi.
L’unità più semplice di una blockchain è infatti costituita dal blocco.
Ogni blocco contiene al suo interno un certo numero di transazioni che rappresentano i trasferimenti di valori tra le controparti, realizzate all’interno della blockchain.
I blocchi e le transazioni
Ogni blocco contiene lotti di transazioni con i relativi hash.
Il numero di transazioni contenute in un blocco dipende dalla dimensione del blocco.
La dimensione media di un blocco è di circa 1 MB, ma può raggiungere anche dimensioni superiori, come nel caso di Ethereum.
Blockchain block time
Ogni blockchain ha un suo tempo di blocco caratteristico, vale a dire la quantità approssimativa di tempo richiesta per aggiungere un nuovo blocco alla Blockchain.
Se ad esempio la blockchain avesse un tempo di blocco di cinque minuti, e ci fossero solo quattro transazioni portate a termine durante quei cinque minuti, il blocco conterrà di conseguenza soltanto quelle quattro transazioni.
Vediamo adesso come vengono gestite le transazioni sulla base del block time e della struttura dei blocchi.
Block time e numero di transazioni
Nel caso in cui ci fossero troppe transazioni rispetto a quante il blocco ne possa ospitare, sulla base della sua dimensione, in questo caso le transazioni dovrebbero attendere di essere inserite all’interno di un blocco ancora aperto, che abbia spazio rimanente a sufficienza per ospitarle.
Sempre nel caso di Bitcoin, il tempo di blocco è pari a 10 minuti, e deriva dai limiti prefissati nel codice sorgente di Bitcoin.
Tali limiti a loro volta derivano dall’obiettivo di emettere non più di 21 milioni di bitcoins nel periodo tra il 2009 e il 2024, con remunerazioni per i miners che si riducono della metà ogni quattro anni.
La struttura dei blocchi
Ogni blocco è costituito da una intestazione, detta header, e da una lista di transazioni.
Ogni blocco include l’hash del blocco precedente, e in questo modo i blocchi nel loro insieme vanno a costituire una catena (blockchain appunto) che collega tutti i blocchi tra loro.
Block header
La struttura dei blocchi è rappresentata dal block header, ovvero intestazione del blocco.
Tale struttura dati contiene una serie di informazioni relative ai blocchi, informazioni anche dette metadata.
-
Hash del blocco precedente: tale valore è richiesto per computare il corrispondente hash del nuovo blocco da aggiungere alla blockchain;
-
Merkle root: è il valore hash associato al nodo radice dell’albero delle transazioni, che funge da controllo della validità del blocco;
-
Timestamp: marcatura temporale assegnata al blocco;
-
Nonce: valore arbitrario che viene utilizzato in fase di mining del blocco.
© Innovation-Exploited.com - All rights reserved - Riproduzione Riservata