Ethereum News

Ethereum 2.0 Serenity: disponibile la pre-release, cerchiamo di capirne di più

La crecita di Ethereum negli ultimi 3 anni è stata straordinaria. Una miriade di sviluppatori sono al lavoro su Ethereum o su progetti che si basano su di esso. Nonostante il successo, Ethereum è ancora una tecnologia acerba che deve risolvere diversi problemi, su tutti la scalabilità di cui tanto abbiamo parlato. Vi basti sapere che la blockchain di Ethereum attualmente può gestire (circa) 15 tx/s mentre per essere adottata a livello mondiale dovrebbe poter gestire migliaia di transazioni al secondo. Problema che verrà affrontato in modo strutturale sia on-chain (Sharding) e off-chain (Plasma).

Ho già dedicato un lungo articolo a Settembre alla roadmap di Ethereum 2.0 e, dopo diversi mesi, finalmente è pronta una pre-release: ecco tutti i dettagli.

Ethereum 2.0: ecco Serenity

La versione pre-release dell’aggiornamento Ethereum 2.0 prende il nome di Serenity. Lo sviluppo sarà certamente lungo. Come ricorda Buterin, durante lo sviluppo di Ethereum 1.0 le testnets sono partite a Marzo 2014 e le testnets cross-client a Luglio 2014 ma il rilascio è avvenuto solo un anno dopo (a Luglio 2015).

Si tratta del primo rilascio di una serie di aggiornamenti settimanali, che avverranno nel corso del mese di febbraio. La versione 0.1 della Phase 0 è relativamente completa dal punto di vista delle funzioni, e quasi stabile“, questo è quanto si legge nella pagina ufficiale su GitHub.

Grazie ad Ethereum 2.0, verrà finalmente portata a termine la transizione del network da un algoritmo di consenso Proof-of-Work ad uno Proof-of-Stake.

Quali gli obiettivi? Nelle specifiche si legge che gli obiettivi di Ethereum 2.0 sono “ridurre al minimo la complessità, anche a costo di perdere un po’ di efficienza […] per permettere anche ad un portatile consumer con risorse O(C) di processare/valudare uno shard O(1)

Piccolo ripasso per i meno attenti. Cos’è lo sharding? Facciamo un riepilogo.

Sharding

L’obiettivo della scalabilità viene perseguito attraverso un mix di soluzioni eterogenee: on-chain (Sharding) e off-chain (Plasma).

Plasma è simile a Lightning Network di Bitcoin. Aggiunge un secondo livello di “rami” esterni alla mainnet di Ethereum, allo scopo di elaborare più rapidamente protocolli di smart contract intensivi.

Lo sharding è una delle possibili implementazioni per migliorare la scalabilità di Ethereum (ulteriore approfondimento QUI). Più nel dettaglio, mira ad aumentare il throughput delle transazioni. Attualmente infatti, Ethereum può elaborare fino a 24 transazioni al secondo, insufficienti per un uso globale dell’intero sistema, visti i limiti emersi in più occasioni. Negli ultimi mesi infatti, alcune applicazioni distribuite o alcune ICO hanno avuto così tanto successo da intasare la rete, comportando un aumento del prezzo del GAS.

Sharding è una soluzione di scaling che utilizza gli shards (o micro-chains) per processare gruppi separati di transazioni sulla blockchain.

La limitazione principale dell’implementazione attuale di Ethereum consiste nel fatto che la blockchain richiede che ogni transazione sia processata da ogni singolo nodo della rete. Dunque, ogni operazione che si svolge sulla blockchain, che sia un pagamento o la distribuzione di un nuovo Smart Contract, deve essere confermata da ogni nodo della rete in parallelo. E’ una caratteristica fondamentale per il funzionamento della blockchain, necessaria per garantire il concetto di rete distribuita e trustless. Di conseguenza, il throughput della rete non può essere superiore a quello che è in grado di sostenere ogni singolo nodo.

Il concetto di sharding consiste nella suddivisione della rete in più sezioni, in grado di operare in maniera parzialmente indipendenteLa sezione A tratta una serie di operazioni, mentre la sezione B un altro set di transizioni. Tale meccanismo raddoppia il volume delle transazioni eseguibili, poiché ora il limite è dovuto alla capacità elaborativa dei due nodi in contemporanea. Suddividendo dunque la blockchain in diverse sezioni, è possibile aumentare linearmente il numero di operazioni supportate. L’implementazione dello sharding opera sul primo layer del network. Sarà quindi necessario eseguire un fork per aggiornare il protocollo della rete ed inserire le funzionalità di frammentazione.

Bigbit

In sostanza: l’elaborazione delle transazioni, e lo storage associato, viene suddiviso in shards separati e indipendenti. Ciascun nodo deve gestire solo una frazione del carico totale del sistema.

Ethereum 2.0 Serenity: Beacon chain al centro del progetto

Il cuore di Ethereum 2.0 sarà una system chain chiamata “Beacon chain” che salva e gestisce i registri dei [validators](#dfn-validator). La beacon chain sarà il coordinatore dell’intero sistema. Ha la funzione di fornire una fonte di “casualità” al resto del sistema, in particolare nella gestione del PoS, sia per se stessa che per le shard chains. Ha un ruolo di randomizzazione.

Un requisito chiave del protocollo PoS, dove non si ha il mining, è una fonte di casualità distribuita, verificabile, imprevedibile che viene fornito proprio dalla Beacon Chain. Il block proposer deve essere selezionato randomicamente, in base a un particolare protocollo di casualità (e.g. RANDAO).

Per diventare validatori, i nodi devono innanzitutto eseguire una transazione sull’attuale mainnet PoW. I nodi devono inviare il loro “stake” ad uno smart contract. Gli ethereans devono avere almeno 32 ETH per diventare validators.

Una volta attivi, i validatori partecipano al protocollo proponendo i blocchi, quando vengono scelti per farlo, sia sulla Beacon Chain che sulle shard chains. Inoltre si uniscono a “comitati” che votano per i blocchi

La Beacon Chain si identifica in due ruoli principali:

  1. La catena PoS principale;
  2. Il layer base della soluzione di scaling basata su Sharding.

La Beacon Chain si collegherà alle shard chains e indicherà quali blocchi degli shards dovranno essere aggiunti alla catena principale che sarà convalidata grazie al PoS.

Le shard chains sono come un gruppo di catene multiple. Tutte le transazioni avranno luogo sulle shard chains. Saranno divise tra ogni shard. Anche i dati dell’account saranno memorizzati sulle shard chains.

Struttura

La struttura di Ethereum 2.0 sarà la seguente:

Ethereum 2.0 serenity sharding

Proviamo a spiegare le componenti della struttura:

  • PoW Main Chain: è l’attuale mainnet di Ethereum. Nel sistema di Ethereum 2.0 non verrà modificata.
  • Beacon Chain: sarà il layer full PoS di coordinamento dell’intera struttura sottostante.
  • Shard Chains: le shard chains costituiranno il layer in cui vengono aggregate le transazioni per pervenire a un consenso sul loro ordine.
  • VM(s): il layer VM servirà per l’esecuzione dei contratti e delle transazioni.

L’implementazione di tutte queste modifiche richiede tempo e molto testing ma si vuole pervenire a un network migliore.

In breve: come funzionerà il tutto?

Ad alto livello dovete pensarla così: Ethereum 2.0 prende l’attuale network di Ethereum e vi applica alcune modifiche (ad esempio il passaggio PoW – PoS). Inoltre clona il network in 1024 parti (gli shards) tutti più o meno identici e interconnessi. La beacon chain sarà il coordinatore di questa strutura. Questa mossa dovrebbe incrementare la capacità di 1000 volte, almeno in teoria. In pratica questa struttura è in sviluppo quindi ulteriori dettagli emergeranno in futuro.

I blocchi verrano prodotti regolarmente ogni x secondi (probabilmente 16) e ogni periodo è detto slot. Ogni shard avrà il suo block proposer scelto per ogni slot. Il block proposer raccoglierà le transazioni per quello shard e le formerà in un blocco. Il blocco sarà votato dal “comitato” dello shard.

Infine la Beacon Chain esegue l’elaborazione dei “crosslinks”. I crosslinks legano l’intero sistema, ancorando ogni shard alla spina dorsale, che è appunto la Beacon chain.

Periodicamente, lo “stato” corrente di ciascuno shard viene registrato in un blocco della Beacon Chain, come un crosslink.

Facile? No, ma spero di aver reso l’idea.

Ethereum 2.0 Serenity: la roadmap

La tabella di marcia è suddivisa in quattro tappe. Attualmente la rete si trova alla terza (Metropolis), durante la quale avverranno due network upgrade: Byzantium e Constantinople. Quest’ultimo arriverà il prossimo 27 Febbraio dopo essere stato posticipato a causa di un bug.

Quando sarà pronto Ethereum 2.0? Difficilmente prima del 2020…

cripto

Vi invitiamo a seguirci sul nostro canale Telegram ed anche sul gruppo ufficiale Telegram, dove sarà possibile discutere insieme delle notizie e dell’andamento del mercato, sulla nostra pagina Facebook e sul nostro account Twitter.


La più grande community italiana dedicata alle criptovalute: Italian Crypto Club (ICC)

Matteo Gatti

Ingegnere informatico appassionato di tecnologia e di tutto ciò che vi ruota attorno. Seguo con interesse il mondo delle criptovalute e lo sviluppo della tecnologia Blockchain. Scrivo anche di Linux su LFFL.
Follow Me:

Related Posts

Rispondi