Quelques turbulences pour Ethereum : le hard fork Berlin débarque, Etherscan momentanément paralysé
Tout un monde s’écroule… momentanément – Hier 15 avril 2021 marquait la date du déploiement du hard fork Berlin sur la blockchain Ethereum, au bloc 12 244 000. Malheureusement, cette mise à jour ne s’est pas déroulée comme prévu pour les nœuds Open Ethereum, rendant certains services inaccessibles pendant quelques heures.
Déploiement du hard fork Berlin
Le 15 avril, plus précisément au bloc 12 244 000 de la blockchain Ethereum, le hard fork Berlin a été déployé. Celui-ci faisait l’objet de tests intensifs depuis le 10 mars sur plusieurs testnets.
En pratique, cette mise à jour introduit 4 nouveaux EIP (Ethereum improvment proposals), à savoir les EIP 2565, 2929, 2718 et 2930.
En quelques mots, ces EIP apportent les modifications suivantes :
- L’EIP 2565 vise à réduire le coût en gas de certaines transactions spécifiques ;
- L’EIP 2929 augmente les frais de transactions de certains « opcode » ;
- L’EIP 2718 introduit les « transactions enveloppes », améliorant leur rétrocompatibilité ;
- L’EIP 2930 introduit un nouveau type de transaction, qui permettra la création de transactions plus complexes dans le futur.
Quelques problèmes du côté d’Open Ethereum
Bien que la mise à jour se soit déroulée sans accro pour le client le plus répandu sur Ethereum actuellement, Go Ethereum (Geth), ce n’est pas le cas pour tous les clients.
Ainsi, le client Open Ethereum a rencontré des problèmes de synchronisation au bloc 12 244 294, soit 294 blocs après l’activation.
Malheureusement, ce bug de consensus a eu diverses répercussions. Plusieurs services, tels que Coinbase, Ledger ou encore Etherscan, ont déploré des perturbations. D’après les informations relayées par les utilisateurs du client, il semblerait que celui-ci avait rejeté les nouveaux blocs entrants, pensant que l’état racine de l’arbre de Merkle n’était pas valide.
Du côté de Ledger, les soldes affichés aux utilisateurs sur Ledger Live pouvaient présenter des incohérences, le service utilisant probablement le client Open Ethereum pour son API connectée à Ledger Live.
Quant à Coinbase, ils ont dû tout bonnement stopper les retraits en ETH et en ERC-20 pendant plus de 8 h, le temps qu’une solution soit trouvée… avant de remettre en pause les dépôts et retraits ce matin, entre 6 et 9 h.
Finalement, un patch a été déployé hier aux alentours de 1 6h qui, semblerait-il, ait permis de corriger le bug.
En dernier lieu, cet incident fit plus de peur que de mal. En effet, Open Ethereum ne représente que 13 % des nœuds Ethereum, ce qui a permis de limiter les dégâts et a empêché que le réseau soit totalement paralysé. Quoi qu’il en soit, espérons que de tels bugs ne se reproduisent pas lors du prochain hard fork London ou, pire, lors du merge.