Uno sviluppatore di Ethereum ha segnalato che l’aggiornamento Pectra sulla testnet Sepolia ha riscontrato dei problemi, aggravati dopo che un assalitore ha sfruttato un "caso limite" per far sì che venissero minati blocchi vuoti.
Pectra è stato implementato sulla testnet Sepolia il 5 marzo alle 7:29. Ma in data 8 marzo, lo sviluppatore Marius van der Wijden ha riferito che il team aveva iniziato a ricevere messaggi di errore sul proprio geth node, e che la blockchain stava creando blocchi vuoti.
Pare che il problema fosse stato causato dal contratto di deposito, che ha attivato il tipo sbagliato di evento: un evento di trasferimento anziché un deposito. Nonostante una prima correzione fosse già stata implementata, il team aveva trascurato un caso limite. Un utente sconosciuto ne ha approfittato inviando un trasferimento di 0 token all'indirizzo di deposito, innescando nuovamente l'errore.
Marius van der Wijden ha scritto:
"Dopo pochi minuti abbiamo visto nuovamente numerosi blocchi vuoti, quindi abbiamo esaminato i pool di transazioni e trovato un'altra transazione che attivava lo stesso caso limite. Inizialmente abbiamo pensato che uno dei validatori fidati avesse commesso un errore, ma ci siamo rapidamente resi conto che la transazione proveniva da un nuovo account, finanziato di recente dal faucet."
Fonte: Marius van der Wijden
Lo standard ERC-20 non vieta il trasferimento di zero token, il che significa che chiunque, anche senza possedere alcun asset, può effettuare una transazione verso un altro indirizzo. Ed è esattamente ciò che ha fatto l’utente sconosciuto:
"L'unico modo per fermare l'attacco sarebbe stato filtrare tutte le transazioni che interagivano con il contratto di deposito. Così abbiamo implementato una correzione privata, distribuita ad alcuni dei nodi DevOps. Sospettavamo che l'assalitore stesse monitorando alcune delle nostre chat, quindi abbiamo deciso di non rendere pubblica la correzione, ma di aggiornare solo alcuni nodi sotto il nostro controllo per aumentare il numero di blocchi pieni sulla rete."
Fonte: Marius van der Wijden
Entro le 14:00, tutti i nodi erano stati aggiornati con la correzione e l'attacco è stato sventato con successo.
Van der Wijden ha sottolineato che, durante l'incidente, la rete non ha mai perso la finalizzazione e il problema è rimasto confinato a Sepolia: questa testnet utilizza infatti un contratto di deposito token-gated, invece del normale contratto di deposito della mainnet.
L’aggiornamento Pectra era stato precedentemente testato sulla testnet Holesky il 26 febbraio, riscontrando anch’esso alcuni problemi. Per questo motivo gli sviluppatori hanno deciso di posticipare l’aggiornamento Pectra fino a quando non avrebbero potuto condurre ulteriori test.
Il fork Pectra segue l’upgrade Dencun, che ha ridotto le commissioni di transazione per le reti Layer-2 e migliorato l’economia dei rollup di Ethereum. L’aggiornamento Dencun è stato implementato il 13 marzo 2024.