Skip to content

protocol

Ethereum : le correctif ePBS sur les dépôts de staking fusionné (PR #5736)

Le correctif Glamsterdam qui empêche un builder ePBS de détourner un dépôt de staking est fusionné dans consensus-specs. Rejeté le 19 octobre, mergé le 26.

par 4 min de lecture

Le correctif de spécifications qui empêche un builder ePBS de capter un dépôt destiné à un validateur de staking pendant la transition du fork Glamsterdam a été fusionné le 26 octobre 2026 dans le dépôt ethereum/consensus-specs — PR #5736. La proposition avait été rejetée le 19 octobre faute de support client, rouverte à la demande de Lido, puis mergée après validation par ChainSafe sur Lodestar. Signalement initial par Georges Avsetsin de Lido le 12 octobre. Analyse : Journal du Coin.

Le bug

ePBS (EIP-7732, un des EIP phares de Glamsterdam) sépare les proposeurs de blocs des constructeurs de blocs (builders). Chaque builder est financé par un dépôt d'ETH et est enregistré sous une clé publique.

Scénario d'attaque identifié :

  1. Un opérateur enregistre un builder sous une nouvelle clé publique.
  2. Un protocole de staking — par exemple Lido ou Rocket Pool — effectue un dépôt d'ETH pour lancer un validateur sous cette même clé publique.
  3. Les deux dépôts sont encore en attente au moment de l'activation du fork.
  4. Les deux montants sont routés vers le builder ; aucun validateur n'est créé.
  5. Le protocole de staking ne peut pas produire la preuve nécessaire à la récupération de ses fonds — ils sont bloqués côté builder.

Georges Avsetsin (Lido) a signalé le problème sur GitHub le 12 octobre. Les résultats de ses contrats de test étaient conditionnels : il existait des vérifications amont qui pouvaient bloquer l'attaque en pratique, mais la surface restait exploitable selon le chemin d'activation.

Chronologie du correctif

DateÉvénement
12 oct. 2026Avsetsin (Lido) ouvre le ticket GitHub.
19 oct. 2026Justin Traglia ferme la proposition : support client insuffisant.
22 oct. 2026Les développeurs annulent l'activation Hoodi prévue, après l'analyse de la tarification du gaz par ChainSecurity.
23 oct. 2026Le ticket est rouvert à la demande de Dmitry Gusakov (Lido) ; Potuz (Prysm) soutient le fix avec réserves.
26 oct. 2026Nico Flaig (ChainSafe) approuve après tests sur Lodestar ; Traglia merge la PR.

Le correctif

PR #5736 modifie le traitement des dépôts en attente au moment du fork : les dépôts sont triés par credentials de retrait avant d'être affectés, de sorte qu'un dépôt destiné à un validateur reste associé au validateur même si un builder utilise la même clé publique. L'héritage ePBS/BAL est préservé, la surface d'ambiguïté est fermée.

Impact

  • Aucune perte à ce jour : les spécifications vulnérables n'étaient pas en production sur mainnet.
  • Hoodi retardé. L'activation prévue sur le testnet Hoodi a été annulée le 22 octobre pour cause d'analyse gas distincte (EIP-8037/8038). Pas de nouvelle date communiquée.
  • Risque calendaire pour Glamsterdam. Les dates mainnet candidates discutées le 22 octobre — 1er, 8 ou 9 décembre 2026 — étaient conditionnées à un passage propre sur Hoodi. Le correctif étant à peine fusionné, la fenêtre décembre devient tendue.
  • Lido reste la vigie. Deuxième ou troisième fois en six mois que les équipes Lido poussent la détection d'un edge case protocole-niveau avant l'activation d'un fork. Le modèle « staking protocol = test de résistance de dernière ligne » se renforce.

À surveiller

  1. Nouvelle date Hoodi et compte-rendu des tests multi-clients une fois le correctif intégré dans toutes les releases.
  2. Position des équipes clientes (Prysm, Lighthouse, Nimbus, Teku, Lodestar, Grandine) sur un re-planning de Glamsterdam en janvier plutôt que décembre.
  3. Autres chemins d'ambiguïté clé-publique entre validateurs et builders dans ePBS, à mesure que l'audit des spécifications se poursuit.
  4. L'EIP de tarification du gaz 8037/8038 et l'avis de ChainSecurity — c'est l'autre dossier qui a fait sauter l'ancien calendrier Hoodi.

Contexte

Glamsterdam cumule ePBS (EIP-7732), block-level access lists (EIP-7928) et une refonte de la tarification du gaz (EIP-8037, EIP-8038). Chacun redéfinit une couche critique : qui construit le bloc, comment on parallélise l'accès à l'état, comment on tarife l'exécution. Le bug corrigé par la PR #5736 est caractéristique de ce que les séparations proposeur/builder peuvent produire : un objet (le dépôt) qui référence une clé peut, lors d'une transition, pointer sur la mauvaise entité système. C'est précisément le type de défaut que les clients ne peuvent pas voir seuls — ils simulent la nouvelle logique, pas tous les scénarios d'intégration opérateur. C'est pour ça que Lido, en tant que plus gros déposeur de l'Ethereum, continue de jouer un rôle d'audit de facto sur chaque hard fork majeur.

Articles liés