Erreur de calcul de la racine Prysm entraînant une panne de la chaîne principale Ethereum

robot
Création du résumé en cours

Selon un rapport de PANews, l’équipe Prysm a publié une analyse détaillée de la panne technique survenue lors de l’exploitation du réseau principal le 14 décembre. Le problème central réside dans le fait qu’un nœud non synchronisé avec le réseau a été authentifié par un nœud de beacon, ce qui a entraîné une erreur inattendue lors du calcul de la racine. Cela a dépassé une simple erreur client et a eu des impacts étendus sur l’ensemble du réseau.

Réception de l’authentification par un nœud non synchronisé, déclenchement de la réaction en chaîne du calcul de la racine

Le problème a été déclenché lorsque le nœud Prysm beacon a reçu une authentification faisant référence à la racine du bloc de l’époque précédente d’un nœud non synchronisé. Pour vérifier cela, Prysm a tenté de reconstruire l’état du beacon afin qu’il soit compatible avec l’état de la chaîne perçu par le nœud non synchronisé, mais cette reconstruction du calcul de la racine a consommé plus de ressources de calcul que prévu.

Cela a conduit à un traitement en double des blocs de l’époque précédente, et à une surcharge excessive lors des opérations de transition d’époque, y compris le calcul de la racine. En réalité, cette vulnérabilité était déjà incluse dans la PR Prysm 15965, et bien qu’elle ait été déployée sur le testnet un mois avant l’incident, le problème n’avait pas été détecté à l’époque.

Surcharge du calcul de la racine entraînant une épuisement rapide des ressources, état d’impossibilité de répondre des validateurs

Le 4 décembre, lors de la session post-Haraka du réseau principal Ethereum, presque tous les nœuds Prysm ont rencontré des retards de traitement lors du calcul de la racine. Lors du traitement de certaines données de preuve, les ressources de calcul se sont rapidement épuisées, empêchant les nœuds de répondre en temps voulu aux requêtes des validateurs.

Ce manque de ressources a commencé à entraîner une perte en chaîne de blocs et de preuves. La panne a duré sur 42 époques, de l’époque 411439 à 411480, avec 248 blocs manquants sur un total de 1 344 slots, enregistrant un taux d’omission grave d’environ 18,5 %.

La participation au réseau chute à 75 %, les validateurs perdent 382 ETH

Les répercussions de cette situation ont dépassé la simple perte de blocs, menaçant la stabilité globale du réseau. Le taux de participation au réseau est tombé à 75 %, ce qui indique que le mécanisme de consensus d’Ethereum ne fonctionnait pas correctement.

Les validateurs ont perdu environ 382 ETH en récompenses en raison de la perte de blocs et de preuves. Cela représente non seulement un préjudice économique pour chaque validateur individuel, mais aussi une dégradation de la fiabilité globale du réseau.

Leçon du bug de calcul de la racine, une occasion de réexaminer la résilience du réseau

Fait intéressant, Vitalik Buterin a déjà mentionné que le phénomène de “perte de déterminisme de la décision”, qui survient parfois dans Ethereum, ne pose pas de risque grave. Cependant, cet incident de calcul de la racine Prysm a une fois de plus montré clairement que la défaillance d’un seul client peut avoir des impacts sur l’ensemble du réseau. À l’avenir, la diversité des clients et la robustesse des opérations clés comme le calcul de la racine deviendront encore plus cruciales.

ETH1,29%
Voir l'original
Cette page peut inclure du contenu de tiers fourni à des fins d'information uniquement. Gate ne garantit ni l'exactitude ni la validité de ces contenus, n’endosse pas les opinions exprimées, et ne fournit aucun conseil financier ou professionnel à travers ces informations. Voir la section Avertissement pour plus de détails.
  • Récompense
  • Commentaire
  • Reposter
  • Partager
Commentaire
0/400
Aucun commentaire
  • Épingler

Trader les cryptos partout et à tout moment
qrCode
Scan pour télécharger Gate app
Communauté
Français (Afrique)
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)