Blockchain Ethereum, rialzo dopo le notizie di sharding

La tecnologia delle criptomonete, Blockchain, ha bisogno di evolversi per diventare lo strumento potente e flessibile che vuole essere. Ethereum si avvia lungo questo cammino abbracciando l'approccio noto come sharding, che ha grandi potenziali ma anche domande senza risposta.

Avatar di Valerio Porcu

a cura di Valerio Porcu

Senior Editor

Anche Ethereum va verso un cambiamento mirato ad alleggerire la blockchain. Lo ha fatto sapere Vitalik Buterin, imprenditore russo-canadese tra i fondatori di Ethereum ha infatti annunciato di recente che proprio questa moneta presto introdurrà lo sharding.

Con questo termine si intende una modifica al funzionamento di Ethereum, e della blockchain in generale. Grazie ad esso ogni utente può approvare solo specifici set di istruzioni e trasferimenti di Ether (il nome della valuta) fra determinati nodi. In tal modo il singolo utente non deve approvare tutte le transazioni ogni volta, il sistema diventa più efficiente e le prestazioni migliorano.

"Prestazioni" in questo contesto indica in particolare la velocità delle transazioni. È un "problema" comune a tutte le criptomonete più famose, e di recente è stato al centro di un grande cambiamento anche in Bitcoin. Il punto è questo: ogni computer nella blockchain è un nodo, vale a dire una macchina che scarica tutta la blockchain (circa 120 GB nel caso di BTC) e si fa carico di confermare le transazioni.

DGJaWLsUwAE1Jto[1]

Si può intuire che il sistema diventa via via più lento, tant'è che nel caso di Bitcoin ci possono volere anche interi giorni - una lentezza che tra le altre cose impedisce alcune operazioni finanziarie che hanno bisogno di velocità. Inoltre in questo modo le commissioni pagate ai miner (per confermare le transazioni) diventano troppo alte, quasi insostenibili.

Per introdurre un termine di paragone più semplice, si può pensare che il circuito Visa elabora circa 40.000 transazioni al secondo, mentre le blockchain di BTC ed ETH, rispettivamente, 3-7 e 7-15 transazioni al secondo (unità, non migliaia). Al momento non è nemmeno lontanamente pensabile la realizzazione di un Facebook o un YouTube decentralizzato che abbiano lo stesso numero di funzionalità, utenti attivi, e storage impiegato delle "controparti centralizzate". L'obiettivo però è anche quello di realizzare applicativi del genere.

Affinché la tecnologia della blockchain continui a evolversi è necessario dunque garantire scalabilità. Nel caso di BTC una parte dei miner ha dato vita a Bitcoin Cash e c'è (soprattutto) attesa per i risultati dell'aggiornamento noto come SegWit. Ethereum ha invece scelto appunto lo strumento noto come sharding.

Esistono soluzioni per creare un nuovo meccanismo, secondo il quale solo una piccola parte dei nodi verifica ogni transazione? Finché un numero sufficiente di nodi verifica ogni transazione il sistema è ancora molto sicuro, ma il numero è abbastanza piccolo da permettere al sistema di elaborare più transazioni in parallelo. Non potremmo usare una tecnica simile per aumentare notevolmente la velocità della blockchain?

Dal GitHub ufficiale di Ethereum

Cos'è lo sharding

Come dicevamo, qualche giorno fa (il primo agosto), Buterin ha fatto sapere che sono iniziati i lavori per introdurre lo sharding tramite un'implementazione Python. I problemi da risolvere sono molteplici: da una parte garantire la scalabilità, come detto sopra, e dall'altra mantenere tanto la sicurezza quanto la decentralizzazione; cioè impedire che uno o pochi soggetti accentrino troppo controllo sulla blockchain stessa e vadano a prendere il ruolo di banche e stati.

image02[1]

Una prima soluzione possibile è quella di usare blocchi più grandi. Bitcoin Cash per esempio supporta blocchi di dimensioni fino ad 8 MB. Così facendo però crescono la dimensione della catena stessa e la complessità a livello computazionale per le operazioni di mining; uno scenario  che rischia di spingere gli utenti più "deboli" ad abbandonare lo status di full node. Chi è disponibile a tenere sul proprio hard disk una Blockchain di dimensioni dell'ordine dei Terabyte?

I nodi diventerebbero meno e così si andrebbe incontro ad una centralizzazione sempre crescente. Lo sharding opera in maniera differente: permettendo l'approvazione solo di una quota parte delle transazioni che si verificano sulla Blockchain.

L'idea è di dividere le operazioni in shard (scheggia, coccio). Ogni frammento ha uno suo storico delle transazioni. Ci sono nodi specifici per ogni frammento, e poi i vari frammenti vanno a formare la blockchain vera e propria. Così facendo ogni computer deve elaborare una minore quantità di dati, ma si rispetterebbero i principi di base garantendo sicurezza e decentralizzazione. Per un ulteriore approfondimento rimandiamo alla lettura in inglese delle FAQ pubblicate su GitHub.

image01[1]

Restano diversi problemi da affrontare: i vari shard - le "partizioni" - dovranno poter comunicare fra loro, ma allora il sistema smette di essere trustless e sicuro come lo è oggi: e se uno shard approvasse transazioni false? I problemi di scaling della blockchain di Ethereum sono quindi ben lungi dall'essere risolti, ma le soluzioni stanno iniziando ad essere proposte. Lo scaling della Blockchain a milioni di utenti è sempre meno una questione di "se", e sempre più una questione di "quando?".

C'è molta fiducia, in ogni caso, verso questa novità. Ed ecco perché nelle ultime ore il valore di ETH è cresciuto moltissimo, con piena soddisfazione di chi ci ha investito.