Prysm a révélé qu'un bogue introduit dans un testnet un mois avant la mise à niveau Fusaka d'Ethereum était à l'origine d'un problème de validation des nœuds Ethereum qui a affecté son client plus tôt ce mois-ci.
Le développeur Ethereum Terence Tsao a publié un post-mortem dimanche détaillant l'incident Prysm sur le mainnet de Fusaka qui a impacté le réseau le 4 décembre.
Les nœuds Prysm ont subi une « épuisement des ressources » lors du traitement des attestations provenant de nœuds désynchronisés, a-t-il été indiqué. Cela a forcé Prysm à rejouer les blocs d'époques passées et à recalculer des transitions d'état coûteuses, entraînant un impact significatif sur les performances en raison de la charge de travail excessive.
Le post-mortem a révélé que le bogue était présent sur les testnets depuis un mois avant l'incident, mais n'avait pas été déclenché.
« Le bogue a été introduit dans Prysm PR 15965 et déployé sur les testnets un mois avant l'incident sans que le déclencheur ne se produise. »
Les testnets sont conçus pour identifier les bogues, mais ils ne constituent pas une méthode infaillible.
En mai 2023 — un mois après le hard fork de Shanghai — les développeurs d'Ethereum ont été pris de panique lorsque le réseau a temporairement perdu la finalité des transactions pendant environ 25 minutes, puis à nouveau pendant plus d'une heure le lendemain, avant que la blockchain ne se rétablisse d'elle-même.
Prysm a été corrigé
Au lieu d'utiliser l'état de tête actuel, Prysm a régénéré les états antérieurs à partir de zéro, créant une charge de calcul massive.
Pendant plus de 42 époques, le réseau a enregistré un taux d'échec de créneaux de 18,5 % avec une participation tombant à 75 % tandis que les validateurs ont perdu environ 382 Ether (ETH) en récompenses d'attestation, a-t-il été indiqué.
Lire aussi : Vitalik Buterin affirme qu'Ethereum peut gérer une perte temporaire de finalité
Les opérateurs de nœuds ont reçu pour instruction de déployer une solution temporaire pendant que les développeurs travaillaient sur un correctif de mise à jour pour les clients Prysm.
La diversité des clients a sauvé la situation
L'incident aurait pu être bien pire s'il avait touché Lighthouse, le client de consensus dominant d'Ethereum, ont déclaré les développeurs.
Prysm d'Offchain Labs est le deuxième plus grand client Ethereum avec une part de 17,6 %, selon ClientDiversity.
« La diversité des clients a empêché un impact notable sur les utilisateurs d'Ethereum. Un client avec plus d'un tiers du réseau aurait provoqué une perte temporaire de finalité et plus de blocs manqués. »
Cependant, l'incident a mis en évidence que Lighthouse est dangereusement proche du seuil des deux tiers où un seul bogue client pourrait finaliser une chaîne invalide.
Lighthouse détient actuellement une part de client de 52,6 %, contre environ 56 % au moment de l'incident.
Magazine : Grandes questions : Bitcoin survivrait-il à une panne de courant de 10 ans ?








