Giovedì in tarda serata, la blockchain di Ethereum ha riscontrato un problema che ha temporaneamente impedito la corretta convalida dei blocchi. Anche se nel frattempo tutto è tornato alla normalità, ecco cosa sappiamo per ora di questo episodio.
I blocchi hanno temporaneamente smesso di essere finalizzati su Ethereum
Al momento in cui scriviamo, la causa esatta non è ancora stata comunicata, ma per circa trenta minuti la blockchain di Ethereum (ETH) ha riscontrato un problema che ha impedito la finalizzazione dei blocchi.
La catena dei beacon ha smesso di finalizzarsi circa trenta minuti fa. Non so ancora perché, ma in generale la catena è progettata per resistere a questo problema: le transazioni continueranno come al solito e la finalizzazione sarà avviata quando il problema sarà risolto. pic.twitter.com/utAS0uAWpG
– superphiz.eth ️ (@superphiz) 11 maggio 2023
È importante sottolineare che la blockchain non si è fermata. Tuttavia, durante 3 epoche, il livello di consenso ha subito un bug simile a quello noto come “inactivity leak”.
In parole povere, la blockchain si è comportata come se molti validatori fossero offline.
Tuttavia, non era questo il caso, ma il fatto è che durante questo periodo, un numero limitato di certificati è stato emesso dai validatori:
Un problema con un software utilizzato
Per funzionare, la blockchain di Ethereum è divisa in due pilastri: il livello di esecuzione, che consente di effettuare le transazioni, e il livello di consenso, che garantisce la coerenza dei blocchi. Per questi due pilastri, i validatori possono utilizzare diversi software chiamati client.
La Fondazione Ethereum incoraggia i validatori a diversificare i client utilizzati, in modo che, in caso di bug, la blockchain continui a funzionare normalmente.
Nell’illustrazione sottostante, possiamo vedere che il software utilizzato per il livello di consenso è correttamente diversificato, mentre per il livello di esecuzione, il client Geth è fin troppo rappresentato:
Poiché nessun client del livello di consenso è utilizzato da più del 50% dei validatori, il bug della scorsa notte non può aver causato un arresto o un fork della blockchain. Questo supponendo che il problema abbia effettivamente avuto origine in uno dei pacchetti software utilizzati.
In questa eventualità, lo sviluppatore del nucleo Superphiz sottolinea che questo problema di perdita di inattività avrebbe potuto essere evitato se nessun software avesse rappresentato più del 33% dei validatori:
Se un client del livello di consenso avesse causato la perdita della finalità:
* Abbiamo evitato un fork non avendo un client a supermaggioranza
* Avremmo potuto evitare del tutto la perdita del carattere definitivo se nessun cliente avesse avuto più del 33%.
Sono orgoglioso del nostro lavoro sulla diversità, ma non abbiamo finito. https://t.co/TUtXnQu5hD
– superphiz.eth ️ (@superphiz) 11 maggio 2023
Da parte sua, Terence Tsao ha indicato che è stato identificato un problema con il client Prysm, anche se al momento non possiamo dire se sia questa la causa dell’interruzione della convalida dei blocchi :
Aggiornamento da Prysm. Abbiamo identificato le aree in cui la cache di stato potrebbe essere migliorata. Con la cache migliorata, il nodo dovrebbe funzionare meglio durante un periodo di degrado come in passato.
Dato che la catena si è stabilizzata, come staker/operatore del nodo, non è necessaria alcuna azione al momento.
– terence.eth (@terencechain) 11 maggio 2023
La cosa più importante è che tutto è tornato rapidamente alla normalità e che nessun validatore è stato tagliato durante questo episodio. In effetti, il taglio viene utilizzato per sottrarre parte dell’ETH immagazzinato quando i validatori non svolgono correttamente il loro lavoro.
Il team di sviluppo dovrebbe fornire a breve un rapporto dettagliato sull’accaduto e in quell’occasione potremo tornare su queste informazioni.