L’aggiornamento Pectra di Ethereum su Sepolia subisce interruzioni, un aggressore sconosciuto estrae blocchi vuoti

L'attesissimo aggiornamento Pectra di Ethereum ha riscontrato interruzioni sul testnet Sepolia a seguito di un exploit che ha portato al mining di blocchi vuoti. L'aggiornamento, distribuito il 5 marzo, ha riscontrato problemi poche ore dopo, quando gli sviluppatori hanno notato messaggi di errore sul loro nodo geth.

Secondo un rapporto dettagliato dello sviluppatore di Ethereum Marius van der Wijden, il team ha scoperto un comportamento inaspettato nel contratto di deposito che si è verificato sul testnet intorno alle 7:30 UTC di mercoledì scorso. Invece di attivare l’evento di deposito previsto, il contratto ha emesso un evento di trasferimento errato.

" Poco dopo l'attivazione dell'hard fork, abbiamo detto a Jim McDonald di inviare un deposito per testare la funzionalità di prelievo attivata dall'esecuzione aggiunta in Pectra. Abbiamo quindi visto messaggi di errore sul nostro nodo geth e abbiamo iniziato a vedere molti blocchi vuoti che venivano estratti ", ha spiegato van der Wijden.

Secondo quanto riferito, il messaggio di errore diceva: "impossibile analizzare i dati del deposito: lunghezza del deposito errata: voglio 576, ho 32". Ciò significava che è stato eseguito un trasferimento ERC-20 inaspettato con token del contratto di deposito, interrompendo il comportamento previsto della catena.

Un utente malintenzionato sconosciuto sfrutta un caso limite mancato

Wijden ha affermato che gli sviluppatori si sono mossi rapidamente per implementare una soluzione, ma un caso limite trascurato ha consentito a un utente malintenzionato sconosciuto di sfruttare il sistema. Lo sfruttatore ha inviato un trasferimento di zero token all'indirizzo di deposito ed è riuscito a attivare nuovamente lo stesso errore, portando al proseguimento del mining di blocchi vuoti.

Abbiamo controllato il contratto di deposito e verificato che nessuno potesse attivare la funzionalità di deposito (perché è token gate e abbiamo distribuito token solo a parti fidate per Sepolia). Tuttavia, ci è mancato un caso limite nelle specifiche ERC20 ", ha osservato lo sviluppatore.

Inizialmente, gli sviluppatori sospettavano che l'errore provenisse da un validatore fidato , ma in seguito si resero conto che la transazione proveniva da un nuovo conto finanziato tramite un faucet. Il team di Ethereum si è quindi mosso per coordinare l'implementazione della correzione senza dividere la catena.

Wijden ha detto che un rilascio affrettato avrebbe potuto causare la frammentazione della rete perché i nodi che non fossero stati aggiornati non sarebbero stati in grado di connettersi alla catena fissa. Dopo aver scongiurato la crisi, hanno pianificato un lancio congiunto per le 14:00 UTC, che ha dato ai team il tempo di prepararsi.

Gli sviluppatori hanno riscontrato il difetto dopo ulteriori indagini: lo standard ERC-20 non vieta il trasferimento di zero token. Significa che chiunque, non importa quanti token avesse, potrebbe inviare una mossa di zero token. Questo è ciò che ha causato l'evento di deposito.

Tre ore e mezza prima della correzione coordinata, come descritto dallo sviluppatore, Sepolia avrebbe prodotto “molti” blocchi vuoti. Per ripristinare nel frattempo le normali operazioni, gli sviluppatori hanno rimosso le transazioni che innescavano l'exploit sostituendole con altre più remunerative.

Gli sviluppatori hanno implementato una soluzione privata per contenere l'attacco

Il team di Ethereum ha implementato una soluzione privata che filtrava le transazioni che interagivano con il contratto di deposito. Considerando il sospetto che l'aggressore stesse monitorando le chat degli sviluppatori, hanno deciso di non pubblicizzare immediatamente la correzione.

La soluzione consiste nel filtrare solo le transazioni che richiamano direttamente il contratto di deposito. Se avessimo pubblicizzato la correzione, l'aggressore sarebbe stato in grado di aggirare la nostra mitigazione richiamando il contratto da un altro contratto. Queste chiamate interne attiverebbero comunque l'evento, ma non sarebbero facili da filtrare durante la creazione del blocco ", ha riferito Wijden .

Una volta aggiornato circa il 10% dei nodi della rete, i blocchi interi hanno cominciato ad apparire di nuovo. Ciò ha consentito alla catena di funzionare mentre l'intera patch veniva preparata per la distribuzione.

Alle 14:00 UTC, tutti i nodi aggiornati alla nuova versione contenente la correzione finale. Pochi isolati dopo, la transazione dell'aggressore è stata minata con successo, confermando che tutti gli operatori dei nodi avevano implementato la patch. L'incidente non ha influenzato la rete principale di Ethereum, poiché il problema era specifico del contratto di deposito token-gate di Sepolia.

Quando un utente del social media X gli ha chiesto se "l'aggressore avesse qualcosa da guadagnare" sfruttando il problema della testnet, Wijden ha risposto: " No, non avevano nulla da guadagnarci ".

Continuano le lotte sui prezzi di Ethereum: l’attività del mercato è più debole

Ethereum mostra ancora segni di debolezza, perdendo oltre il 10% del suo valore nell'ultima settimana. La seconda moneta più grande per capitalizzazione di mercato si aggira intorno alla soglia dei 2.000 dollari, un livello di supporto basso da tre mesi che gli osservatori del mercato prevedono scenderà ancora più in basso.

Secondo gli indicatori tecnici di mercato, ETH è in una continua tendenza al ribasso, con massimi e minimi inferiori che si formano insieme a medie mobili ribassiste. Se Ethereum non riuscisse a mantenere i 2.000 dollari, gli analisti avvertono che i prossimi importanti livelli di supporto si collocheranno tra 1.800 e 1.700 dollari.

Sebbene il Relative Strength Index (RSI) a 30,45 suggerisca un potenziale rimbalzo a breve termine, la resistenza a 2.200 dollari è un livello che la moneta non è riuscita a superare per oltre 24 ore.

Cryptopolitan Academy: in arrivo: un nuovo modo per guadagnare reddito passivo con la DeFi nel 2025. Scopri di più

Inizia a scrivere il termine ricerca qua sopra e premi invio per iniziare la ricerca. Premi ESC per annullare.

Torna in alto