La “Beacon Chain” costituisce le fondamenta dell’Ethereum 2.0 (Serenity) che verrà. Si sente sempre più spesso parlare di Beacon Chain, ma di frequente con confusione sul significato e sulla sua funzione.
Beacon, in questo contesto, va tradotto come “faro” oppure “guida”. Sembra una parola bizzarra se associata a Ethereum. Ma presenta un significato ben chiaro.
Il 2018 è stato l’anno in cui le discussioni e la ricerca sulla scalabilità hanno raggiunto un picco massimo.
L’esigenza di dover processare un numero maggiore di TPS (transazioni al secondo) è sempre stata avvertita, già dal concepimento di Ethereum.
Ma per quasi tutto il 2018, l’utilizzo medio dei blocchi si è portato al di sopra dell’80%, con alcuni picchi in prossimità del 100% (fonte: Etherchain).
Il congestionamento della rete dovuto a CryptoKitties (dicembre 2017), ha segnato l’esempio lampante: una dApp divenuta virale in poche ore, ha letteralmente messo sotto scacco la rete per un po’ di tempo.
Verso Ethereum 2.0 (Serenity)
L’obiettivo della scalabilità viene perseguito attraverso un mix di soluzioni eterogenee: on chain (Sharding) e off chain (Plasma).
Sharding è una soluzione di scaling che utilizza gli shards (o micro-chains) per processare gruppi separati di transazioni sulla blockchain di Ethereum.
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.
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.
Casper è l’algoritmo di consenso Proof of Stake (PoS). A differenza del modello Proof of Work (POW), i validatori non devono risolvere complessi puzzle crittografici. Piuttosto, i validatori vincolano degli Ether (“staking”) per essere sorteggiati come block proposer.
La mainnet di Ethereum 2.0 farà perno sulla soluzione di scaling Sharding. A questa si uniranno soluzioni di secondo livello (layer 2), come Plasma, e la combinazione di progetti chiave per ottenere un meccanismo di consenso PoS.
Come è stato messo tutto nello stesso calderone?
Lo sviluppo di Sharding e Casper, in origine, procedeva più o meno su strade parallele.
Lo scorso giugno, in occasione del workshop su Sharding di Berlino, è stata annunciata l’implementazione congiunta di Sharding e Casper su una infrastruttura comune.
Nel corso delle ultime ricerche su Sharding, era parso evidente che alcune scelte progettuali presentavano delle comunanze con Casper FFG (Friendly Finality Gadget): casualità, meccanismi di slashing, fault proof ecc.
L’infrastruttura sulla quale verrano sviluppati Sharding e Casper è la Beacon Chain.
Questa scelta porta con sé l’ulteriore vantaggio di implementare Sharding e Casper al di fuori dell’attuale mainnet, che potrebbe risentirne nel sostenere il carico extra.
Beacon Chain
L’Ethereum che conosciamo oggi è una “semplice” blockchain PoW. Ogni blocco è aggiunto dal primo miner che esegue la PoW secondo i parametri richiesti dal protocollo.
Nell’attuale network di Ethereum, la blockchain è una catena unica. Ogni nodo si occupa di 3 distinte funzioni:
- Partecipazione al consenso sull’ordine delle transazioni;
- Esecuzione delle transazioni per aggiornare lo stato;
- Rendere le transazioni e lo stato aggiornato disponibili al resto della rete.
La struttura di Ethereum 2.0 sarà la seguente:
È il diagramma disegnato da Hsiao-Wei Wang. Vediamo nel dettaglio le componenti della struttura:
- PoW Main Chain: è la blockchain che conosciamo oggi, l’attuale mainnet di Ethereum. Nel sistema di Ethereum 2.0 questo layer continuerà a operare principalmente come oggi.
- 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.
Lo schema appena esposto, può essere consultato anche come una sorta di roadmap per lo sviluppo e la consegna di Ethereum 2.0:
- Primavera 2019: implementazione della Beacon Chain;
- 2020: implementazione delle shard chains;
- 2021: implementazione del layer di esecuzione.
(I periodi sono puramente indicativi)
La funzione di randomizzazione
Il nome Beacon Chain deriva dall’idea di “faro casuale”.
La Beacon Chain è un layer di coordinamento. Ha la funzione di fornire una fonte di “casualità” al resto del sistema, in particolare nella gestione della PoS, sia per se stessa che per le shard chains.
Il ruolo di randomizzazione della Beacon Chain rileva in relazione alla gestione dei validatori e dei loro “stake”, nella nomina dei block proposer, nell’organizzazione dei validatori in “comitati” per votare sui blocchi proposti, ecc.
Un requisito chiave del protocollo PoS è una fonte di casualità distribuita, verificabile, imprevedibile e “unbiasable”. La Beacon Chain ha lo scopo di fornire questa casualità al resto del sistema.
In un sistema PoW, il blocco è creato dal miner che per primo soddisfa il target dell’attività di mining.
In un algoritmo di consenso PoS non c’è l’attività di mining. 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” (32 Ether) ad uno smart contract.
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.
Beacon Chain e shard chains
La Beacon Chain si identifica in due ruoli principali:
- La catena PoS principale;
- 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. La catena principale sarà convalidata e “finalizzata” attraverso la 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.
I “crosslinks”
In Ethereum 2.0 i blocchi verrano prodotti regolarmente ogni 16 secondi (oppure ogni 8 secondi, se i test dimostreranno la fattibilità di questa tempistica più breve).
I periodi di 16 (o 8) secondi sono chiamati “slots”.
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.
Una volta “finalizzato” il blocco della Beacon Chain, si considererà “finalizzato” anche il corrispondente blocco dello shard. In questo caso gli altri shards sapranno di poter fare affidamento su di esso per le “transazioni cross-shard”.
Ricapitolando
La Beacon Chain era originariamente solo una parte delle specifiche di Sharding. Il suo ruolo consisteva (lo è tuttora) nel collegarsi alle shard chains e segnalare i blocchi da aggiungere alla catena principale.
Nella nuova implementazione di Ethereum 2.0, la Beacon Chain costituirà la base per la PoS e faciliterà la comunicazione tra le shard chains (attraverso i crosslinks).
La convalida e la “finalità” si svolgeranno sulla Beacon Chain. Le transazioni e i dati degli account saranno sulle shard chains.
***
Investi in criptovalute? È il momento di rimediare ai costosi errori di avidità commessi fino ad ora. Stai per ricevere i primi 3 VIDEO GRATUITI dalla DM Cripto. COMPILA IL FORM qui sotto. È gratis!
Commenti
Una risposta
Credo che la community, la fondazione, i media e Vitalik nei suoi talk mostrino poco rispetto per il progetto Raiden Network UNICA soluzione Layer 2 vicina al rilascio in Mainet (vicina al rilascio significa 1-2 mesi).
Perché si parla tanto di Plasma (e degli amichetti OMG di Vitalik) , una soluzione che forse vedrà luce nel 2020 e si fanno tanti paragoni con Lighting Network quando c’è un bomber pronto ad entrare in gioco in casa ethereum?