Insight

L’innovazione in Blockchain – Parte 1

 Nell’articolo precedente abbiamo visto come la tecnologia blockchain impatti sulla sfera economica e sociale. Implicitamente abbiamo equiparato la blockchain con il Consenso di Nakamoto, ma non tutte le blockchain seguono questo modello. In questi ultimi due articoli, vedremo quali sono i problemi del Consenso di Nakamoto e quali sono le principali soluzioni proposte, includendo quelle in cui sono riviste le regole stesse di questo consenso. Le prime soluzioni che revisioniamo sono quelle adottate o proposte nel contesto del Consenso di Nakamoto. Non approfondiremo i dettagli tecnici delle varie soluzioni, ma lasceremo al lettore la possibilità di approfondire.

 

I problemi del Consenso di Nakamoto

 

Nella comunità blockchain, a seconda dell’interlocutore vi farete un’idea diversa di quali siano i problemi del Consenso di Nakamoto. Nonostante ciò, possiamo individuare quelli più dibattuti e su cui il consenso è più forte. Questi sono: la scalabilità, la centralizzazione, la sostenibilità ambientale e la fungibilità.

 

Scalabilità

 

problema della scalabilità nella comunità blockchain, a partire da Bitcoin.

 

La scalabilità è la capacità di un sistema di crescere senza intoppi qualora ce ne fosse il bisogno. Non è capitato poche volte che servizi web praticamente sconosciuti diventassero molto noti in una notte o pochi giorni, attirando nuova utenza che non sempre sono stati capaci di assorbire. Lo stesso vale per i sistemi blockchain, i quali possono essere congestionati se il numero di transazioni in arrivo supera quello che possono gestire. In questo caso una blockchain raggiunge il suo limite e diventa meno utile, finendo col perdere utenti e di conseguenza il proprio valore economico.

Il problema della scalabilità si è imposto presto nella comunità blockchain, a partire da Bitcoin. Nell’ottobre del 2010, a due anni dall’inizio di Bitcoin, Satoshi Nakamoto stanziò un limite sulle dimensioni di un blocco Bitcoin a 1 mb. Ricordiamo che un blocco è un insieme di transazioni confermate. Nata come una misura contro la congestione della rete attraverso l’invio di un grande numero di blocchi (un attacco DoS o DDoS), questo limite aggiunto a quello sempre esistito in Bitcoin di un solo blocco confermato ogni 6 minuti, ha avuto l’effetto di limitare il numero di transazioni che Bitcoin poteva processare al secondo. Quel limite impone tuttora a Bitcoin un massimo teorico di 7 transazioni al secondo, che in pratica ora si aggira sulle 3 transazioni al secondo, che sono in diminuzione. Per fare un confronto, VisaNet, il sistema informatico di Visa che processa le sue transazioni, è capace di processare fino a 56000 transazioni al secondo. Questo problema tocca tutte le blockchain basate sul Consenso di Nakamoto, ma alcune di queste hanno introdotto delle misure per ridurlo.

Il problema è stato affrontato sia off-chain, ossia con soluzioni al di fuori della blockchain, sia on-chain, direttamente cambiando le regole della blockchain. La soluzione off-chain consiste nell’avere dei server o nodi che in un primo tempo confermano le transazioni senza registrarle nella blockchain, e in un secondo tempo registrano quelle transazioni o delle transazioni aggregate. In questo modo la rete blockchain non rischia la congestione, e le transazioni vengono confermate in tempi sostenibili. Le soluzioni on-chain sono la riduzione dei tempi di conferma di un blocco e l’aumento delle dimensioni del blocco. Mentre le soluzioni off-chain richiedono quella che viene chiamata una soluzione di secondo livello, quelle on-chain sono di primo livello, perché toccano direttamente il protocollo. A queste ultime possono poi aggiungersi soluzioni di secondo livello per aumentare ulteriormente la scalabilità. Una via intermedia è data dall’uso di nodi speciali interni alla rete blockchain reputati più “affidabili”.

Lighting Network di BlockStream è un esempio di soluzione off-chain alla ridotta scalabilità. In questo sistema dei nodi speciali validano e registrano transazioni off-chain per poi registrare sulla blockchain le transazioni aggregate. Degli esempi di soluzioni on-chain basati sulla riduzione dei tempi di conferma dei blocchi sono Litecoin ed Ethereum, che riducono i tempi di conferma dei blocchi, Litecoin portandola a 2.5 minuti, Ethereum a 12 secondi. Blockchains con un limite dinamico della dimensione del blocco sono Bitcoin Unlimited, Ethereum stessa e Monero.

 

Centralizzazione

 

Blockchain è un sistema disegnato per essere decentralizzato, ma diversi fattori tendono ad incrementarne la centralizzazione nel tempo

 

Blockchain è un sistema disegnato per essere decentralizzato, ma diversi fattori tendono ad incrementarne la centralizzazione nel tempo. Il mining con proof-of-work, il processo di creazione di moneta in Bitcoin e simili, diventa più arduo al crescere dell’uso della moneta. La conseguenza è che sempre meno nodi sono capaci di portare avanti l’operazione. Il pericolo principale è che la sicurezza della rete venga messa a repentaglio. In una blockchain con proof-of-work, il miner o gruppo di miners con più del 50% della potenza di calcolo può attaccare con successo il sistema creando blocchi sbagliati con successo. Questo è già successo in Bitcoin, quando nel 2014 GHash.io, un pool (gruppo) di miners inglese, giunse al 50% della potenza totale di calcolo, dovendo poi ridurla per poter mantenere la fiducia nel sistema. Da allora in poi la potenza di calcolo si è sempre più spostata in Cina, dove i costi dell’elettricità sono più bassi che altrove, creando una nuova minaccia di centralizzazione peggiorata dalle ambigue politiche cinesi rispetto alle criptovalute.

La tendenza alla centralizzazione tocca tutte le blockchain basate sul Consenso di Nakamoto, e quindi il proof-of-work. Nonostante questo, è possibile mitigarne gli effetti. La misura più tentata è quella di usare algoritmi di mining che non siano basati sull’uso di CPU (cpu-hard), ma di memoria (memory-hard). Mentre l’aumento di CPU richiede grandi investimenti economici, la stessa cosa non vale per la memoria, inoltre gli ASIC, i processori ora usati per il mining con CPU, non possono operare al di sopra dei 3 mb di memoria. Questo renderebbe non competitiva molta strumentazione attualmente usata per il mining e consentirebbe anche a miners in paesi dove l’elettricità ha un costo più importante di competere.

Esempi di blockchain che usano algoritmi memory-hard per il mining sono Ethereum con Etash, Litecoin con Scrypt, e ZCash con Equihash.

 

Sostenibilità ambientale

Il problema della sostenibilità ambientale è direttamente connesso con quello della centralizzazione. Gli algoritmi di mining cpu-hard richiedono un grande dispendio di energia elettrica, energia che viene utilizzata per qualcosa che per alcuni è di bassa utilità. Solo nel 2015 in un giorno la rete consumava per transazione quanto un’abitazione americana media, mentre si prospetta che la rete complessivamente consumi quanto la Danimarca per il 2020. Quindi, anche qualora non venga percepito come un problema tecnico, resta un problema di immagine. La soluzione a questo problema resta la stessa proposta per ridurre la tendenza alla centralizzazione, ossia l’uso di algoritmi di mining non basati sulla cpu-hardness.

 

Fungibilità

 

La trasparenza della blockchain può mettere a repentaglio la sicurezza degli utenti.

 

La trasparenza della blockchain è uno dei suoi punti di forza. Questa permette di verificare lo storico delle transazioni e ogni altro dato che vi viene registrato. Nonostante ciò, è un’arma a doppio taglio quando quelle informazioni vengono usate per mettere a repentaglio la sicurezza degli utenti. Nonostante le identità in blockchain siano pseudonime, un attaccante può spesso rinvenire l’identità reale dell’utente che ha fatto delle transazioni, magari cercando online a quale identità si associ un certo indirizzo o attraverso altri tipi di analisi forense, online e off-line. Idealmente tutte le coin nella blockchain dovrebbero avere un valore di scambio uguale. Questa proprietà è detta fungibilità (video su questa problematica), ed è sempre stata assicurata dal contante, ma è minata dall’attuale struttura della blockchain. Che questo sia effettivamente un problema è dibattuto, ma di sicuro una maggiore fungibilità aumenterebbe l’uso di una blockchain laddove ci sono fasce della popolazione soggette a violazioni di diritti e limitazioni delle libertà individuali da parte di governi o altri enti non democratici.

Questo problema non è di facile risoluzione, ma da anni ci sono più modi per mitigarlo o, da poco, eliminarlo. La fungibilità può essere garantita via soluzioni off-chain, come i mixers (tools che “mixano” i coins per renderne irritracciabile il possessore) come Tumblebit o ZeroCoin, o soluzioni on-chain che, grazie all’uso di nuova crittografia garantiscono l’anonimato delle transazioni ma anche la loro verificabilità, come in Monero, ZCash e Mimblewimble.

 

Conclusioni

 

In questo primo articolo sulle innovazioni in blockchain abbiamo visto quali sono i principali problemi che colpiscono tuttora questa tecnologia e quali sono le principali soluzioni adottate da blockchain che implementano il Consenso di Nakamoto. Nel prossimo approfondiremo invece quelle soluzioni innovative che sono state proposte da chi vede nel Consenso di Nakamoto stesso la vera causa di quei problemi.

 

Di seguito il link agli altri articoli di questa serie:

I perchè della blockchain

Il consenso di Nakamoto

Gli effetti socio-economici della blockchain

L’innovazione in blockchain – Parte 2