LE NEWS SU ETHEREUM IN ITALIA

Menu
Home » Codice e sviluppo » Sharding di Ethereum spiegato in modo semplice (a mia nonna)

Sharding di Ethereum spiegato in modo semplice (a mia nonna)

14 marzo 2018 12:38
Tempo di lettura: 3 min.
14 marzo 2018 12:38
Giuseppe Brogna

Sharding di Ethereum: la richiesta di scalabilità sta diventando sempre più impellente. L’episodio di Cryptokitties ha dimostrato quanto velocemente la rete di Ethereum possa intasarsi. Mentre molti nella community sono entusiasti per la tecnologia Sharding, ce ne sono altrettanti che hanno difficoltà a capire come Sharding aiuterà la scalabilità di Ethereum.

In questo articolo tenterò di spiegare la tecnologia Sharding di Ethereum sulla base di un semplice parallelismo.

Capire il problema

Uno dei principali problemi di una blockchain è che un aumento del numero di nodi riduce la sua scalabilità. Questo può sembrare controintuitivo ad alcune persone. “Più nodi = più potenza. Quindi più velocità, giusto?” Non esattamente.

Uno dei motivi per cui una blockchain ha il suo livello di sicurezza, è che ogni singolo nodo deve elaborare ogni singola transazione. È come il caso di un compito assegnato per casa che viene controllato da ogni professore dell’università. Anche se questo potrebbe garantire che il tuo compito sia valutato in modo più corretto, ci vorrà anche molto tempo prima di ottenere il risultato.

Ethereum soffre di un problema simile. I nodi sono i tuoi professori. Ogni transazione è il tuo compito.

Certo, possiamo ridurre il numero di professori (nodi) finché non siamo soddisfatti della velocità. Ma, man mano che si accumulano i compiti (transazioni), sarà necessario ridurre ulteriormente il numero di professori. Questo alla fine ci porterà a contare su un gruppo di professorifidati” (trusted). Un gruppo centralizzato.

Ciò intacca l’ideologia della decentralizzazione della blockchain. È molto più facile compromettere/corrompere un piccolo gruppo di professori (nodi), rispetto all’intera università (l’intera rete). Di conseguenza, sacrifichiamo la sicurezza nel tentativo di scalare.

Per riassumere, le blockchain devono scegliere tra due dei seguenti tre attributi:

  • Sicurezza
  • Scalabilità
  • Decentralizzazione

Cosa è Sharding?

Con il problema e le limitazioni comprese, poniamo ora una domanda:

Possiamo avere un sistema che abbia un numero sufficiente di “professori” (nodi) per mantenere la sicurezza, pur essendo abbastanza ridotto da aumentare la velocità con cui vengono riconsegnati i “compiti” (capacità di trasmissione della rete)?

In sostanza, stiamo ammettendo che non possiamo “massimizzare” tutti e tre gli attributi: scalabilità, sicurezza, decentralizzazione. Ma possiamo avere “abbastanza” decentralizzazione e sicurezza, in modo da ottenere una maggiore scalabilità?

Sharding è la risposta di Ethereum a questa domanda.

Sharding di Ethereum: Semplicemente, pensa a Sharding come a un elegante modo di dire “scomponiamo la rete in gruppi/pezzi più piccoli”.

  • Ogni gruppo è uno shard. Un gruppo/shard è costituito da nodi e transazioni.

Quindi, nella nostra analogia con il professore, uno shard consisterebbe in un gruppo di professori e compiti. Ora un professore, invece di dover correggere i compiti su tutta la rete, sarebbe solo responsabile per i compiti all’interno del suo shard (gruppo).

Ciò riduce notevolmente il numero di transazioni (compiti) che ciascun nodo (professore) deve convalidare.

Sharding di Ethereum – Struttura

Ok, quindi potrei aver semplificato un pò troppo. Ma ora che hai afferrato il concetto, capirai questa parte molto più facilmente.

In ogni shard/gruppo, abbiamo nodi incaricati come “Raccoglitori” (Collators). I “Raccoglitori” hanno il compito di acquisire mini-descrizioni delle transazioni e lo stato attuale dello shard.

Nel nostro parallelismo, puoi considerare i “Raccoglitori” come gli assistenti del professore. Tutti gli assistenti nello shard/gruppo, effettuano la prima revisione di tutti i compiti dello shard.

Infine, abbiamo i “Supernodi“. Ogni “Supernodo” riceve le collazioni create dai “Raccoglitori” di ciascuno shard. Quindi elabora le transazioni inglobate in dette collazioni. Inoltre, mantengono i dati completi di descrizione/stato di tutti gli shard, che ricevono ugualmente dai “Raccoglitori”.

È agevole intuire i benefici di questa struttura. Il numero di nodi che elaborano ogni singola transazione verrebbe notevolmente ridotto, e quindi aumenterebbe la capacità di trasmissione complessiva.

Conclusioni

Sharding rappresenta un approccio intelligente per affrontare il problema della scalabilità della blockchain. Tuttavia, non è privo di inconvenienti. A causa della sua struttura, è più facile compromettere uno shard all’interno del sistema.

Questa è una delle ragioni che spingono il trapasso di Ethereum alla Proof Of Stake. La Proof Of Stake aiuta a mitigare la vulnerabilità di sicurezza che Sharding si porta dietro. Ma per esigenze di brevità, ne parleremo in un prossimo articolo.

Di Shawn Dexter.

Clicca qui per accedere alla guida gratuita su come comprare, vendere, trasferire e conservare in sicurezza gli Ether.

Condividi
  • 29
    Shares

CATEGORIE:

Codice e sviluppo


Giuseppe Brogna

Giuseppe è laureato in giurisprudenza, da sempre appassionato di tecnologia e studioso di tematiche economiche. Stimolato dal potenziale impatto economico e sociale, si approccia al mondo delle DLT; matura particolari interessi nella nuova finanza hitech legata alle tecnologie del ledger distribuito.


Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Condividi questo articolo

Invia questo articolo ad un amico