Ebbene sì, l’attesa sembra essere finalmente finita. Il 4 ottobre è stato finalmente rilasciato il “deposit contract” di ETH 2.0, al cui interno troviamo tutte le specifiche della versione 2 del progetto. Questa versione attiverà la genesi del protocollo soltanto il prossimo 1° dicembre, indicativamente alle ore 12:00 UTC se verranno depositati almeno 16.382 ETH all’interno dello stesso.
Ovviamente questo non vuol dire che la versione vera e propria di Ethereum verrà lanciata in questa data, ma che lo smart contract necessario al lancio entrerà a tutti gli effetti in funzione. Ma come funziona davvero Ethereum 2.0? Che novità porta al suo interno? E quali sono le fasi fondamentali del tanto attesa “lancio” in mainnet?
Ethereum 2.0: introduzione
Ethereum 2.0, o Eth2, è un aggiornamento pianificato da tempo alla rete Ethereum che gli conferirà, se tutte le promesse verranno mantenute, scalabilità e sicurezza necessaria per ambire ad un bacino utenti molto più grande di quello attuale. L’idea alla base di questo aggiornamento è quello di ridurre notevolmente il consumo energetico passando da un algoritmo di consenso basato su Proof of Work ad uno Proof of Stake, e di consentire alla rete un maggior numero di transazioni rispetto a quelle attuali.
Oltre al cambio epocale da PoW a PoS ci sarà l’introduzione delle catene di Shard, un concetto già esistente da diverso tempo all’interno del mondo Blockchain e che verrà testato sulla nuova versione del protocollo. Infine, come anticipato in precedenza, il deploy effettivo di Ethereum 2.0 sarà di diviso in tre fasi distinte, che verranno analizzate successivamente.
Ethereum 2.0: perché?
Dal lancio nel 2015 Ethereum è diventata la blockchain programmabile numero uno per quantità di DApp (Decentralized Application) e numero di Smart Contract sviluppati. Rispetto a Bitcoin, che ha un linguaggio di scripting molto più rigido, Ethereum permette di creare contratti molto più liberi attraverso il linguaggio di programmazione Turing complete, Solidity.
La possibilità di creare Smart Contract di qualsiasi tipo ha creato bug ed errori costati milioni di dollari ai suoi utenti. Il problema fondamentale di Ethereum in questo momento storico è la forte necessità di scalare per realizzare il suo vero potenziale, in quanto la possibilità di fare soltanto 15 tps (transazioni per secondo) crea un collo di bottiglia difficilmente superabile.
Per fare un paragone con sistemi già conosciuti, Visa elabora all’incirca 1500 tps che gli permette di scalare a livello mondiale come servizio di pagamento. L’attuale algoritmo di consenso, PoW, richiede che il processo di mining sia ad alto costo energetico per motivi di sicurezza, ma allo stesso tempo non permette di scalare come necessario. Il raggiungimento dello standard “scalabile, sicuro e decentralizzato”, non è affatto così banale ed è per questo che Ethereum 2.0 si è fatto attendere così tanto.
Proof-of-Work vs Proof-of-Stake
L’algoritmo di consenso Proof-of-Work si basa sul concetto di minatore per mantenere la rete sicura e sincronizzata. Dedicando una grandissima quantità di potenza computazionale vengono creati dei blocchi attraverso i quali vengono incluse le transazioni ancora non confermate.
Anche se dal punto di vista teorico questo è l’approccio più sicuro per una criptovaluta, il dispendio di energetico è molto elevato e la velocità nella convalida delle transazioni è decisamente bassa per una applicazione che vuole scalare a livello mondiale. La Proof-of-Stake sostituisce il consumo di energia con un impegno finanziario: non esisteranno più minatori ma soltanto validatori che, mettendo in “staking” i loro ETH potranno convalidare e creare nuovi blocchi in modo da poter guadagnare Ether appena coniati.
Un validatore esegue un software che conferma le transazioni e crea nuovi blocchi della catena. L’impegno finanziario richiesto è di 32 ETH per diventare un validatore singolo, ma in futuro molto probabilmente ci sarà la possibilità di partecipare con un ammontare minore unendosi alle pool di staking. Per far partire le varie fasi di Eth2 dovranno essere messi in staking complessivamente 16.382, pari a circa 511 validatori, 7 giorni prima del 1° dicembre 2020.
Catene di Shard: cosa sono?
Altro aggiornamento importante per quanto riguarda la versione 2 del protocollo sono le catene di Shard: una sorta di Blockchain parallele a quella principale, sempre all’interno dell’ecosistema Ethereum, che assumono una parte considerevole del lavoro di elaborazione dei dati.
Attualmente un nodo nella rete per elaborare una transazione deve scaricare, calcolare, archiviare e leggere ogni transazione nella storia della criptovaluta. Questo è uno dei motivi che porta il protocollo a svolgere soltanto 15tps. Con lo Shard, i nodi saranno dispersi in un sottoinsieme di frammenti e dovranno semplicemente scaricare, calcolare e archiviare ogni transazioni in quell'ambiente, non nell’intera rete.
Sarà compito poi della Beacon Chain assicurarsi che tutti i nodi siano sincronizzati. Questa catena sarà la blockchain centrale in Ethereum che fornirà il consenso a tutte le catene Shard. Su ogni catena di “frammenti”, i validatori creeranno blocchi di transazioni e le segnaleranno alla beacon che successivamente metterà queste informazioni a disposizioni di tutti.
Ethereum 2.0: le varie fasi
Come detto in precedenza, un aggiornamento di queste dimensioni richiede uno sviluppo, in termini di coordinamento e sicurezza, che non è assolutamente banale. Per questo l’intero switch dalla versione 1 alla 2 sarà fatto in 3 fasi principali.
Fase 0: Beacon Chain
La prima fase da completare sarà la creazione della catena di Beacon, o anche detta del faro. Non sarà del tutto funzionante in quanto mancano le catene di Shard a supporto e quindi non ci sarà una vera e propria sincronizzazione. All’inizio la catena dovrà semplicemente registrare i validatori e coordinare gli ETH messi in staking da tutti. In questo momento ci troviamo con il contratto di deposito che è appena stato pubblicato. ATTENZIONE: quando vengono messi in staking in questo contratto i 32 ETH, questi non potranno più essere ritirati momentaneamente. La transazione è unilaterale e sarà ritirabili dalla fase 1,5.
Fase 1 e 1,5: Shard Chain
Nella fase 1 verranno introdotte le catene di Shard. Come detto in precedenza, a queste verrà delegata la certificazione delle transazioni e degli account ETH. Saranno PoS, dovrebbe essere 64 Shard e momentaneamente non supporteranno account o contratti intelligenti. Vi è poi la fase 1,5 in cui l’Ethereum che conosciamo sulla mainnet odierna diventerà uno Shard e passerà ufficialmente alla Proof-of-Stake.
Fase 2: Shard completi
Nella fase 2 i frammenti saranno completamente funzionali, compatibili con gli Smart Contract e potranno comunicare liberamente. Questa parte del procedimento dovrebbe completare il passaggio e dovrebbe rendere finalmente Ethereum un progetto scalabile e funzionale per progetti con milioni di utenti.
Ethereum 2.0: le conclusioni
Quello che siamo in procinto di vedere nella rete Ethereum è un cambio epocale sotto molti punti vista: in primis perché verrà finalmente testate una PoS in un progetto di dimensioni enormi anche per la comunità che c’è alle spalle, e in secondo luogo per vedere se il funzionamento in parallelo delle catene Shard con la Beacon avranno un buon fine.
Siamo solo al primo step del cambiamento: le condizioni sembrano favorevoli, non ci resta che aspettare e vedere se il protocollo riuscirà a mantenere le promesse fatte in tempi relativamente brevi.