La couche de consensus d'Ethereum a récemment connu une perturbation notable après qu'un bogue logiciel dans le client Prysm ait causé aux validateurs de manquer des récompenses significatives. Selon l'équipe de développement de Prysm chez Offchain Labs, les validateurs ont collectivement perdu environ 382 ETH, d'une valeur de plus de 1 million de dollars, après que le problème soit survenu peu après la mise à niveau du réseau Fusaka.

L'incident a été détaillé dans un rapport post-mortem officiel intitulé “Incident Prysm de Fusaka Mainnet”, qui a expliqué comment un événement d'épuisement des ressources a affecté presque tous les nœuds de balise Prysm. En conséquence, un grand nombre de blocs et d'attestations ont été manqués pendant une période critique d'activité réseau.

Qu'est-ce qui a déclenché la panne de Prysm ?

Offchain Labs a expliqué que le problème est apparu le 4 décembre, lorsque un bogue logiciel précédemment introduit a commencé à affecter les performances des validateurs. Le bogue a causé des retards dans les demandes des validateurs, ce qui a empêché les nœuds Prysm de traiter les attestations et de proposer des blocs à temps.

Plus précisément, les nœuds de balise Prysm ont commencé à recevoir des attestations de pairs qui étaient probablement désynchronisés avec le reste du réseau. Ces attestations faisaient référence à une racine de bloc d'une époque précédente, les rendant invalides selon les règles de consensus normales.

Comme l'a décrit Prysm :

> “Les nœuds de balise Prysm ont reçu des attestations de nœuds qui étaient peut-être désynchronisés avec le réseau. Ces attestations faisaient référence à une racine de bloc de l'époque précédente.”

Cette désynchronisation a créé un effet en cascade, réduisant la participation effective et empêchant les validateurs de remplir leurs fonctions dans les fenêtres de temps requises.

Échelle de la perturbation

L'impact du bogue a été substantiel mais contenu. L'incident a entraîné 41 époques manquées, durant lesquelles 248 blocs ont été manqués sur 1 344 créneaux disponibles. Cela a entraîné un taux de créneaux manqués de 18,5 % pendant la perturbation.

La participation à l'échelle du réseau a chuté brusquement, tombant à environ 75 %, bien en dessous des niveaux de fonctionnement normaux. Bien qu'Ethereum ait continué à fonctionner et à finaliser des blocs, l'efficacité des validateurs a été considérablement dégradée pendant cette période.

Offchain Labs a noté que le code problématique avait été introduit environ un mois plus tôt et déployé sur des testnets avant d'être déclenché sur le mainnet après la mise à niveau de Fusaka. La mise à niveau elle-même a modifié les conditions d'exécution d'une manière qui a exposé le bogue sous-jacent.

Corrections et mesures préventives

Bien qu'une atténuation temporaire ait été déployée pour réduire l'impact immédiat, Prysm a depuis mis en œuvre des corrections permanentes. Ces changements se sont concentrés sur l'amélioration de la logique de validation des attestations du client, garantissant que les attestations désynchronisées sont gérées plus en toute sécurité et ne conduisent pas à des perturbations généralisées des validateurs.

Offchain Labs a déclaré que ces changements sont conçus pour prévenir des échecs similaires à l'avenir, même dans des conditions de charge élevée ou de cas extrêmes.

La diversité des clients à nouveau sous les projecteurs

Au-delà des pertes financières directes, l'incident a ravivé des inquiétudes de longue date concernant la concentration des clients d'Ethereum et les dangers des monocultures logicielles.

Offchain Labs a souligné que le résultat aurait pu être bien pire si Prysm avait représenté une part plus importante de l'ensemble des validateurs d'Ethereum. Ils ont averti que la domination des clients au-dessus de certains seuils peut introduire des risques systémiques :

Un client contrôlant plus d'un tiers du réseau pourrait causer une perte temporaire de finalité s'il échoue.

Un client contrôlant plus des deux tiers pourrait potentiellement finaliser une chaîne invalide en cas de bogue critique.

Heureusement, le niveau actuel de diversité des clients d'Ethereum a aidé à contenir les dégâts.

Distribution actuelle des clients de consensus Ethereum

Selon les données de Miga Labs, les clients de consensus d'Ethereum sont actuellement répartis comme suit :

Lighthouse : 51,39%

Prysm : 19,06%

Teku : 13,71%

Nimbus : 9,25%

Bien que la part de Prysm soit relativement modérée, la domination de Lighthouse la place à environ 15 points de pourcentage d'un seuil que de nombreux chercheurs considèrent comme un risque systémique potentiel.

En conséquence, les développeurs et les participants de l'écosystème ont de nouveau exhorté les validateurs à envisager de passer à des clients alternatifs. Une plus grande diversité réduit la probabilité qu'un seul bogue puisse perturber la couche de consensus d'Ethereum et renforce la résilience à long terme du réseau.

Réflexions finales

L'incident Prysm rappelle que même les systèmes blockchain matures ne sont pas à l'abri des risques logiciels. Bien que la diversité des clients d'Ethereum ait aidé à prévenir un échec plus important, l'événement souligne l'importance d'une vigilance continue, des tests et de la décentralisation au niveau du protocole.

Si vous souhaitez plus de mises à jour et d'analyses approfondies sur Ethereum, l'infrastructure crypto et les développements on-chain, suivez pour plus d'informations et d'analyses en temps réel 🚀

#ETH #Prysm