In breve… la Blockchain è

La blockchain è un registro digitale aperto e distribuito. Prende il nome dalla struttura in formato di catena (chain) di blocchi d’informazioni (Block) collegati fra loro da Nodi e distribuiti in una rete.

Nei blocchi sono conservate informazioni sicure, verificabili e permanenti.

Gli utenti nel registro sono identificati dalla loro Chiave pubblica (nota anche come indirizzo), mentre le informazioni sono firmate dalla Chiave privata. La coppia di chiavi pubblica-privata è nota come Wallet (portafoglio).

La Blockchain è distribuita e condivisa, fra Nodi. I Nodi, sono Account informativi, che tengono traccia delle transazioni, conservate in un registro chiamato Libro Mastro. Ogni Nodo ne ha una coppia identica e ne verifica la correttezza della transazioni.

Non esiste un nodo centrale nella rete e tutti i nodi sono uguali. Ogni Nodo ha una coppia sincronizzata del Libro Mastro ed è nella condizione di verificarlo continuamente.

La sincronizzazione, obiettivo della rete, è raggiungiunta con un collettivo accordo sull'ultima versione valida del Libro Mastro. Il processo per raggiungere il consenso è noto come "Algoritmo di consenso”.

Ai Nodi vengono dati incentivi  e punizioni economiche per promuove l’uso corretto della rete e proteggerla. La movimentazione di incentivi e punizioni è nota come criptoeconomia.

Gli Account - Nodi

L’Account e il Nodo sono coincidenti. Se lo osserviamo per la sua funzione, il termine più pertinente è Account. Se lo osserviamo all’interno nell’architettura di rete, per la sua posizione di congiunzione è più pertinente chiamarlo Nodo.

In concreto siamo in presenza di un computer speciale, con funzioni speciali.

Il suo compito principale è tenere un record, un registro digitale detto Ledger (Libro Mastro), che è condiviso e immutabile, e dove viene registrata la cronologia di invio e ricezione di dati da parte degli utenti.

Le operazioni di invio o ricezione di dati sono chiamate Transazioni. Le Transazioni non possono essere rimosse dal Libro mastro. Possono essere solo aggiunte in fondo.

Nel Libro mastro sono conservate tutte le Transazioni, permettendo quindi la consultazione e la verifica della loro correttezza.

Un’altra funzione dell’Acocunt-Nodo è la trasmissione. Ogni qualvolta riceve una transizione esso la valida, la sigilla e la condivide.

I Blocchi

Quando un Account riceve una transazione, la registra e la trasmette ad altri nodi della rete. Ogni “contabile digitale” è il contabile di tutti, riceve le transazioni di tutti e mantiene il Libro Mastro con le transazioni di tutti. Il volume di dati è significativamente alto, nell’ordine delle centinai di transazioni al secondo.

La soluzione per snellire la mole di lavoro è accorpare le informazioni in lotti o blocchi temporizzati. Ad intervalli di tempo predefiniti, le transazioni vengono elaborate contemporaneamente.

Il processo di elaborazione comporta anche una validazione delle informazioni, per individuare eventuali transazioni dannose.

Una volta che un blocco viene elaborato e validato, esso viene sigillato e non può più essere modificato, rendendoli non retroattivamente alterabili.

La Rete

La Rete

Le reti blockchain sono costituite da decine di migliaia di nodi.

Ogni nodo, come detto, tra le sue funzioni ha la ri-trasmissione della transazione. Se ogni transazione fosse inviata ad ogni altro nodo,  avremmo un inutile e incredibile sovraccarico della rete.

I Nodi scelgono un sottoinsieme di nodi a cui inviare e inoltrano la transazione solo una volta. Se ipoteticamente dovessero ricevere due volte la stessa transazione, non procederebbero ad un ulteriore re -inoltro.

L'attività di inoltrare transazioni e altre informazioni importanti tra i nodi ha il nome scherzoso di “Gossiping” (spettegolare).

Crittografia

La crittografia è scienza conosciuta e praticata fin dall’antichità e fondamentalmente ha lo scopo di trasmettere una comunicazione a dei soggetti predeterminati, garantendo la segretezza del messaggio, qualora finisca nella disponibilità di soggetti terzi.

La Crittografia è definita Crittografia Simmetrica, quando un segreto comune o un unica chiave di crittografia, è usato sia per criptare che per decriptare il messaggio. La controindicazione maggiore è che tale chiave deve essere condivisa fra mittente e ricevente per poter essere utilizzata, sottoponendola quindi al pericolo di essere intercettata.

La Crittografia simmetrica non è applicabile alla blockchain, poichè se ogni nodo si scambiasse reciprocamente la chiave, verrebbe meno lo scopo stesso del processo di crittografia.

La Crittografia Asimmetrica, è caratterizzata da due diverse chiavi una pubblica e una privata.

Le chiavi sono numeri speciali enormi e il processo di crittografia comporta un processo matematico significativamente complesso, la cui violazione comporterebbe una capacità di calcolo computazionale abnorme, raggiungibile probabilmente con i futuri computer quantistici.

Firma Digitale

Nell’ambito della Block Chain le chiavi, oltre a criptare e decriptare, hanno una seconda funzionalità.

La Chiave privata, può eseguire un processo matematico chiamato “signing”, che produce un testo chiamato “Signature” (firma).

In egual modo ma a ritroso, chiunque attraverso l'utilizzo di un processo matematico chiamato “recovery”, può calcolare la corrispondente chiave pubblica.

La firma digitale garantisce l’autenticazione, permettendoti di avere la certezza dell’identità; la “non repudiation” (non ripudio), il che significa che la parte firmataria non può negare la paternità della stessa; l'integrità, assicurandosi che non sia stata modificata.

La firma digitale è elemento chiave di tutte le comunicazioni digitali sicure.

Wallet

Il termine Wallet (potrtafoglio) deriva ovviamente dalla vocazione primaria della blockchain e dal contesto delle cryptovalute.

Con il  termine wallet si fa riferimento al binomio chiave pubblica e chiave privata.

I nodi di una blochchain non registrano, come avviene su una qualsiasi altra piattaforma un profilo, fatto di informazioni anagrafiche, bensì un saldo che, come visto parlando di Transazioni e Libro mastro, è lo stato finale delle transazioni legate ad uno specifico wallet.

La chiave pubblica è quindi l’indirizzo identificativo del tuo saldo, mentre la chiave privata è la firma per autorizzare la modifica di tale saldo e la conseguente transazione.

Attraverso le verifiche crittografiche e le chiavi, i nodi possono sempre essere sicuri (ed essere in grado di dimostrare) che un determinato utente ha/non ha eseguito una determinata azione.

Cryptovalute

Cryptovalute

Le criptovalute sono una rappresentazione digitale del denaro.

Ne esistono due tipi: Coins (monete) e Token (gettoni). Sebbene facciano parte della stessa famiglia, monete e gettoni variano enormemente, sia nel modo in cui vengono utilizzati sia nel modo in cui vengono prodotti.

Le monete condividono molte somiglianze con il denaro fisico. Allo stesso modo, il denaro fisico è una rappresentazione di un valore economico, atto per trasferire valore, sia un corrispettivo per una prestazione o uno scambio di beni e servizi.

Le monete, come detto, vengono utilizzate anche per retribuire il comportamento virtuoso dei Nodi nella rete e sono alla base degli algoritmi di consenso, fungendo da commissione di servizio.

Un pizzico di storia

La prima forma di Block Chain fu la criptovaluta Bitcoin, introdotta nel 2008 ad opera di un autore sconosciuto, che volle chiamarsi Satoshi Nakamoto.

Le teorie sulla vera identità di Satoshi Nakamoto sono numerose.

In giapponese "Satoshi" significa "un pensiero chiaro, veloce e saggio".

"Naka"significa "medium", "dentro" o "relazione".

"Moto" può significare "origine" o “fondamento".

Il Problema della Doppia Spesa

Nella terminologia della Blockchain c’è ovviamente una forte influenza dettata dalla sua primaria vocazione come cryptovaluta.

Una delle criticità legata alla blockchain, essendo un sistema decentralizzato e quindi senza alcun organo centrale di garanzia, è proprio quello della verifica del sistema.

Il sistema è garantito dall’immodificabilità delle informazioni da parte dei nodi, e dalla verificabilità degli stessi, che avviene “a saldo” di tutte le transazioni effettuate. Affinché il nodo possa convalidare con successo i saldi, è necessario mantenere l'ordine cronologico delle transazioni e dei blocchi. Se qualcuno infatti riuscisse a cambiare l'ordine cronologico dei blocchi, potrebbe, rimanendo nell’ambito della cryptovaluta, modificare i valori, inviare denaro senza averne o spenderlo più volte, da qui il nome ”Il problema della doppia spesa”.

La soluzione individuata è mantenere un rigido ordine cronologico mediante una marca temporale o Timestamp.

Identificare in maniera univoca ogni blocco, con un identificatore univoco (c.d. Block Hash) o Merkle root (puntatore hash o identificatore univoco)

Concatenare il blocco al blocco precedente, attraverso un puntatore detto Prev-Hash (hash di 256 bit che è il puntatore al precedente blocco).

Sistema centralizzato e decentalizzato

La soluzione più semplice per garantire l’integrità del sistema sarebbe avere un solo grande nodo, che funga da punto centrale. In caso di errore o tentativo di frode, il nodo centrale rileverebbe facilmente l’anomalia rifiutandola.

I nodi centrali hanno vantaggi ma anche controindicazioni.

Un sistema centralizzato eredita un maggior rischio sistemico, poichè un errore o un incidente a livello centrale si ripercuoterebbe su tutto il sistema arrestandolo o compromettendolo (c.d. single point of failure).

In egual misura se un malintenzionato riuscisse a violare il punto centrale, a causa di un insider, di un cyber criminale o per una vulnerabilità, l’attaccante avrebbe pieno e totale controllo sull’intero sistema.

Un sistema centralizzato infine è soggetto alla censura o all’ingerenza di un potere politico, come già avvenuto per motivi diversi con il controllo e/o limitazioni da parte delle autorità all’uso della rete internet nei paesi nel mondo arabo, negli U.S.A., in Russia o Cina.

Un sistema decentrato è resistente agli errori, alle violazioni e alle ingerenze, poichè per ottenere il controllo o l’arresto dell’intero sistema non è sufficiente violare un singolo nodo ma si dovrebbe violare ogni nodo del sistema.

Se un nodo viene compromesso, gli altri infatti ne riconoscono la mancata integralità e lo escludono.

Algoritmo di Consenso

L’elemento su cui si sorregge, questa collaborativa e distribuita rete, è l’Algoritmo di Consenso, attraverso il quale i nodi “concordano”, sincronizzano lo stato complessivo del sistema in ogni istante di tempo, ed ogni nodo restituisce la medesima versione del Libro mastro.

Il primo algoritmo di consenso è stato presentato nel paper “Bitcoin: A Peer-to-Peer Electronic Cash System” a firma di Satoshi Nakamoto.

E' un algoritmo che si basa su un meccanismo di voto, attraverso il quale i nodi della rete votano il Libro Mastro “ritenuto più corretto”, affermando il proprio consenso su una specifica sequenza. La sequenza, che riceve più voti diviene la versione ufficiale.

Altri Algoritmi di Consenso

L’obiettivo di concordare - sincronizzare lo stato del Libro mastro è minacciato da tre diverse minacce a cui i diversi algoritmi di consenso hanno dato soluzioni diverse.

Il primo pericolo è dovuto alla perdita o compromissione di una o più trasmissioni all’interno della rete. Il secondo pericolo è legato alla manipolazione della trasmissione da parte di un soggetto malintenzionato.

La soluzione ad entrambi è stata trovata nella ridondanza della trasmissione e nella presenza della crittografia asimmetrica a doppia chiave.

Il terzo problema è legato alla compromissione del nodo stesso, che potrebbe trovare più vantaggioso, violare il sistema piuttosto che proteggerlo. La soluzione è stata individuata nel meccanismo degli incentivi e delle punizioni economiche, per promuove comportamenti virtuosi della rete e disincentivare comportamenti lesivi della stessa.

  • Byzantium Fault Tolerance o BFT, è il modello di algoritmo di consenso più semplice e sicuro disponibile sul mercato. L’algoritmo richiede che tutti gli attori della rete firmino ogni messaggio e lo distribuiscano sempre a tutta rete. Inoltre la cripto-economia alla sua base è attentamente progettata. Il principale vantaggio di questo modello è allo stesso tempo il suo più significativo problema in termini di prestazioni, poichè al crescere della dimensione della rete, il meccanismo di firma e invio ad ogni nodo, lo rende insostenibile. BFT è applicabile per piccole reti, è semplice e sicuro ma fallisce su larga scala.
  • Proof of Authority o PoA, è un modello che si basa su una parziale centralizzazione della rete. Vengono eletti nodi autorevoli, riconoscibili pubblicamente per reputazione o importanza, che smistino e garantiscano la piena funzionalità del sistema. Questi algoritmi guadagnano in velocità ma ereditano i problemi dei sistemi centralizzati.
  • Proof of Stake o PoS è un modello che riduce la quantità di lavoro computazionale necessario per le attività di verifica dei blocchi e delle transazioni, attività delegata a più validatori in competizione fra loro e scelti casualmente. Quando un numero specifico di validatori verifica che il blocco sia accurato, viene finalizzato e chiuso. Per divenire validatori è necessario depositare una garanzia, di solito monetaria, e si ottiene un compenso per l’attività svolta.
  • Proof of Work o PoW, innesca una competizione fra i nodi che applica una funzione matematica, nota come hashing, e producono un numero. Nel caso in cui, dopo l'hashing, il numero sia al di sopra di una certa soglia, il nodo riprova modificando i parametri per ridurlo. Il processo è noto come "mining" e i nodi che utilizzano l'algoritmo PoW per la sincronizzazione sono noti come “miner". In termini di cripto-economia, da un lato i minatori sono incentivati ​​tramite una cospicua ricompensa per la produzione di un blocco valido, dall'altro tutta l'energia utilizzata per eseguire l'hashing funge da punizione se il blocco risulta non valido. Il metodo è criticato in termini ambientali, poichè la competizione fra milioni di nodi in tutto il mondo, comporta un significativo dispendio energetico, solo per decretare un vincitore.
Il nostro gruppo
Cosa facciamo
Il metodo GRC