Ethereum : Les EIP les plus importantes de Pectra
3 janvier 2025

Alors que les impacts économiques de la mise à jour Dencun continuent d'évoluer, la communauté Ethereum se tourne déjà vers la prochaine grande étape : le fork Pectra. Cette mise à jour prévoit d'introduire des changements majeurs sur la couche de consensus et d'exécution d'Ethereum. Découvrons ensemble les EIP de Pectra.
Avant propos : Cet article est en partie issu de notre rapport de fin d’année 2024 sur le marché des cryptomonnaies. Nous vous invitons à le consulter gratuitement ou à l’obtenir en version physique pour soutenir notre travail.
Qu’est-ce que la mise à jour Pectra sur Ethereum ?
La mise à jour Pectra est la prochaine étape majeure dans l’évolution du réseau Ethereum. Prévue pour le premier trimestre de l’année 2025, elle s’annonce comme la plus importante et ambitieuse de l’histoire d’Ethereum à ce jour, au-delà même de The Merge.
Pour entrer un peu plus dans le détail, Pectra se divise en deux composantes principales. Celles-ci étaient initialement prévues séparément, avant d’être finalement regroupées en un bloc unique par les développeurs :
- Prague, concernant les modifications de la couche d'exécution.
- Electra, intégrant les changements de la couche de consensus.
Après avoir été expérimentée par les développeurs sur plusieurs devnets au cours des derniers mois, Pectra a correctement été déployée sur un testnet public (Mekong) en novembre 2024. Cela permet notamment aux validateurs de se familiariser avec les nouveautés à venir et aux développeurs de wallets de préparer le lancement sur le mainnet.
La mise à jour Pectra concerne l’ensemble des aspects d’Ethereum, depuis la couche de consensus jusqu’à la couche d’exécution. Elle prévoit des améliorations pour les utilisateurs, à travers les diverses fonctionnalités apportées, pour les développeurs, avec l’ampleur des changements technologiques prévus et en conséquence, pour les validateurs et les stakers.
À date de la rédaction de ces lignes, Pectra est constituée d’un lot de 8 Ethereum Improvement Proposals (EIPs) majeurs et de quelques autres EIPs mineures. Dans cet article, nous allons explorer les différentes propositions afin de mieux comprendre leur implication pour l’avenir de l’écosystème.
EIP-2537
Avant de parler de l’EIP 2537, rappelons quelques principes de base. La cryptographie est au coeur du fonctionnement des blockchains. Cette discipline des mathématiques s’applique à protéger des informations par l'utilisation d'algorithmes codés, de hachages et de signatures. Pour ce faire, on utilise des fonctions complexes et notamment des courbes elliptiques, permettant d’avoir un chiffrage des données important, tout en réduisant la taille des clés et la complexité des calculs, ce qui est crucial pour les performances du réseau.
Il existe énormément de variétés de courbes elliptiques, mais les BLS12-381 sont un petit peu les stars dans ce domaine. Le problème est qu’elles ont été conçues en 2017 et ne sont donc pas nativement intégrées dans Ethereum. Néanmoins, certains développeurs choisissent de les ajouter manuellement dans leurs smart contracts tant elles sont intéressantes mais cela coûte particulièrement cher en frais de gas pour être exécuté.
Ainsi, l’EIP 2537 propose d’ajouter un “precompile” à Ethereum pour supporter nativement les courbes elliptiques BLS12-381. Le principal intérêt va concerner les signatures BLS (pour Boneh-Lynn-Shacham), à savoir le système de signature cryptographique utilisé pour vérifier l’authenticité d’un signataire, qui est crucial notamment dans le cadre du staking. Actuellement, les signatures BLS reposent sur une courbe de type BN254, beaucoup moins efficace.
Bien que les courbes de type BN254 aient été très utiles jusqu’ici sur Ethereum, elles ne fournissent pas le même niveau de sécurité (80 bits) que les BLS12-381, qui offrent une sécurité de 120 bits. De manière générale, cette implémentation intéressera principalement les développeurs de protocoles et d’applications, car elle leur permet de réaliser diverses opérations, notamment :
- Opérations arithmétiques standard sur des courbes analytiques de points, comme des fonctions additives et multiplicatives. Ces applications, ne nécessitant pas de couplages variables, sont relativement plus simples et plus générales, tout en restant adaptées aux protocoles et DApps courants.
- Opérations de couplage, qui utilisent des courbes possédant des propriétés spécifiques. Ces opérations sont essentielles pour les protocoles exploitant des schémas de signature complexes ou des vérifications de preuves à divulgation nulle (Zero Knowledge Proof).
- Opérations de mappage sur courbes, permettant de mapper des messages ou leurs hachages, au format standard de 32 octets, vers des points sur une courbe elliptique.
En résumé, voyons les bénéficiaires potentiels des opérations listées ci-dessus :
- Utilisateurs de zkSNARKs, dans des contextes variés comme les Validity Rollups ou les solutions de confidentialité. L’ajout de BLS precompile (par l’EIP-2537) permet de générer des preuves plus sécurisées sur le plan computationnel.
- Utilisateurs de signatures BLS, dans des cas tels que les Optimistic Rollups, les Plasma Rollups, les DAO, ou encore les protocoles de communication inter-chaînes. Ces acteurs peuvent tirer parti de cet EIP pour agréger et vérifier efficacement des signatures en lots.
EIP-2935
L’EIP 2935 est une proposition visant à inclure les hachages des 8 192 derniers blocs dans le stockage d’un contrat système sur Ethereum. Cette mise à jour permettrait de résoudre une problématique essentielle pour le futur d’Ethereum : la transition vers des clients sans état (stateless clients).
Actuellement, l’EVM (Ethereum Virtual Machine) suppose que les hachages des blocs récents sont toujours accessibles aux clients pendant les cycles d’exécution. Cette hypothèse est valide pour l’instant, mais elle ne le sera plus avec l’introduction des stateless clients, qui par définition n’ont pas accès aux données historiques de l’état.
Avec la proposition EIP 2935, les hachages des blocs seraient inclus directement dans le stockage d’état, permettant ainsi leur regroupement en témoins compressés (compressed witnesses). Ces témoins seraient transmis aux stateless clients à chaque époque, facilitant la vérification des blocs et l’accès aux données historiques.
Cette EIP est surtout utile aux opérateurs de nœuds, car elle introduit des changements considérables dans la logique de validation des blocs. Voyons ensemble :
- Amélioration de la synchronisation des clients légers : En intégrant les hachages des blocs dans l’état, les clients légers pourront accéder plus facilement aux données essentielles sans nécessiter une synchronisation complète avec l’historique du réseau.
- Transition vers le modèle stateless : Cette proposition pose les bases pour la mise en œuvre des Verkle Tries, une avancée essentielle pour atteindre l’objectif d’un réseau Ethereum totalement stateless.
- Extension de l’opcode BLOCKHASH : Actuellement, l’opcode BLOCKHASH permet de récupérer les hachages des 256 derniers blocs. L’EIP-2935 étend cette capacité à 8 192 blocs, offrant une plage beaucoup plus large pour la validation des blocs historiques.
- Rétention des hachages dans l’état : Les hachages seront enregistrés via une instruction SSTORE dédiée, qui mettra à jour le stockage à chaque nouveau bloc, garantissant un accès fiable et structuré aux données historiques.
Lors des débats techniques, des équipes de clients comme Reth et Erigon ont exprimé un soutien mesuré à cette proposition. Bien que simple dans sa mise en œuvre, elle nécessite des ajustements dans la logique de validation des blocs. L’inclusion de l’EIP-2935 dans la mise à jour Prague (l’une des étapes de Pectra) dépendra également de la complexité des autres EIPs prévues.
EIP-6110
L’EIP 6110 propose une modification significative dans la gestion des dépôts des validateurs sur Ethereum. En déplaçant cette fonction de la couche de consensus vers la couche d’exécution, cette proposition vise à simplifier le protocole tout en améliorant sa sécurité et son efficacité.
Les validateurs jouent un rôle fondamental dans l’écosystème Ethereum. Ils sont chargés de valider les transactions, de maintenir l’état du réseau et de garantir la fiabilité de la chaîne en participant à la propagation des blocs et des messages P2P. Une fonction moins connue mais essentielle est leur responsabilité dans la vérification des transactions de dépôt des nouveaux validateurs, permettant à ces derniers d’intégrer le réseau.
Cependant, ce processus n’est pas sans difficultés. Deux limitations majeures freinent la décentralisation continue d’Ethereum :
- Complexité des messages P2P : Avec un grand nombre de validateurs, le trafic P2P augmente, ce qui complique la communication et crée des goulots d’étranglement.
- Croissance de l’état et de l’historique : La vérification des dépôts contribue à une utilisation accrue de l’espace de blocs, ce qui augmente les besoins en termes de matériel et de logiciel pour opérer un nœud validateur.
L’EIP-6110 introduit un mécanisme intégré au protocole pour gérer les dépôts des validateurs, éliminant ainsi le besoin du processus de polling P2P. En intégrant directement cette fonctionnalité dans la couche d’exécution, cette proposition simplifie considérablement le fonctionnement du réseau. Voici les principaux avantages :
- Réduction des délais de traitement : Actuellement, une transaction de dépôt peut prendre jusqu’à 12 heures pour être validée, en raison des latences géographiques et du consensus distribué. Avec l’EIP-6110, une transaction devient utilisable dès qu’elle est finalisée, soit à la fin d’une époque.
- Allègement de la charge P2P : En supprimant l’obligation pour les validateurs de distribuer des snapshots de dépôts, cette proposition réduit le trafic réseau et diminue les spécifications matérielles minimales pour opérer un nœud.
- Amélioration de la sécurité : Le nouveau mécanisme intégré élimine les risques associés à une majorité malveillante validant des dépôts incorrects. La garantie est codifiée dans le protocole lui-même, renforçant la résilience du réseau.
Cette mise à jour simplifie considérablement l’expérience des validateurs, en réduisant les exigences techniques et opérationnelles. En optimisant la gestion des dépôts, l’EIP-6110 représente une avancée importante pour le réseau. Cette proposition s’inscrit dans la vision d’un Ethereum plus robuste, capable de répondre aux besoins croissants de son écosystème tout en maintenant un haut niveau de décentralisation et d’efficacité.
EIP-7002
L’EIP-7002 propose un mécanisme permettant aux validateurs d’Ethereum de déclencher des sorties totales ou des retraits partiels de leurs soldes ou de leurs récompenses via leurs credentials de retrait liés à la couche d’exécution. Ce changement vise à résoudre les limitations actuelles du système, en offrant plus de flexibilité et de contrôle aux validateurs.
Dans Ethereum, chaque validateur doit posséder deux clés distinctes :
- Clé active : Une clé de type BLS (on y revient, si vous avez oublié ce que c’est, remontez un peu plus haut dans le dossier), utilisée pour signer les messages et effectuer les tâches principales du validateur.
- Clé passive : Une clé qui peut être de type BLS ou ECDSA, également appelée "credentials de retrait". Sa fonction principale est la gestion de la propriété et des retraits des ETH stakés du validateur.
Le protocole attribue les récompenses à la clé passive, mais dans le modèle actuel, seule la clé active peut initier des retraits ou des sorties. Cette conception repose sur l’hypothèse que le validateur est toujours géré par une entité unique, une hypothèse de plus en plus éloignée de la réalité.
Avec l’essor des protocoles de staking liquide, de restaking et des services opérant des nœuds, le lien entre les clés actives et passives devient complexe. Dans ces configurations, la clé active est souvent gérée par un smart contract ou un tiers, laissant le propriétaire de la clé passive incapable de retirer ses récompenses ou de gérer ses soldes de manière autonome.
Ce déséquilibre crée un problème dit de principal-agent, où le détenteur des credentials de retrait (le principal) dépend d’un opérateur tiers (l’agent) pour effectuer des actions essentielles.
Ainsi, l’EIP-7002 propose d’introduire un mécanisme permettant aux credentials de retrait (clé passive) de modifier, de manière autonome et sécurisée, les soldes d’ETH stakés via des messages de sortie (exit messages). Ces messages sont ajoutés aux blocs de la couche d’exécution, garantissant une interaction fluide et directe entre le validateur et ses fonds.
EIP-7251
L’EIP-7251 propose d’augmenter le solde effectif maximal (maxEB) des validateurs Ethereum de 32 ETH à 2 048 ETH, tout en maintenant le seuil minimal d’activation à 32 ETH. Cette modification vise à réduire la complexité du réseau, en permettant aux opérateurs de nœuds de consolider plusieurs validateurs en une seule entité, souvent appelée super-validateur. Cette mise à jour pourrait représenter une avancée stratégique pour la scalabilité et l'efficacité du réseau.
Avec plus de 830 000 validateurs actifs (au 3 octobre 2023), Ethereum est l’un des réseaux Proof of Stake (PoS) les plus décentralisés au monde. Cependant, cette décentralisation a un coût. Un nombre aussi élevé de validateurs génère une complexité accrue dans les communications P2P et une latence supplémentaire, ce qui peut limiter les performances globales du réseau.
Le solde effectif maximal actuel de 32 ETH est un héritage des premières conceptions du sharding, qui nécessitaient un partage égal entre les validateurs pour garantir la sécurité. Toutefois, avec le passage à des modèles tels que le proto-danksharding, cette contrainte n'est plus pertinente. Désormais, seules les contributions d’une minorité honnête sont nécessaires, ce qui permet de repenser la manière dont les validateurs sont organisés.
L’idée principale de la proposition de l’EIP-7251 est d’introduire un équilibre entre efficacité et décentralisation, tout en maintenant une infrastructure adaptée aux besoins d’un réseau de plus en plus complexe. En augmentant le solde effectif maximal à 2 048 ETH, l’idée est de permettre aux opérateurs de nœuds ayant des fonds importants de consolider leurs validateurs en une seule entité. Cela réduit le nombre total de validateurs nécessaires, ce qui diminue à son tour les charges liées aux communications P2P et les besoins en stockage historique.
Ce changement est conçu pour ne pas affecter la décentralisation perçue au niveau des entités. Les petits stakers pourront continuer à participer au réseau avec le solde minimal de 32 ETH, tandis que les grands opérateurs auront l'opportunité de réduire leur gestion opérationnelle.
Bien que l’EIP-7251 soit présenté comme un changement mineur, certaines voix dans la communauté soulignent des préoccupations potentielles liées à une concentration du pouvoir de validation. La crainte est que de grands opérateurs, tels que Lido ou Coinbase, profitent de cette mise à jour pour accroître leur influence.
Cependant, les analyses montrent que ce changement n'affectera pas significativement la probabilité de sélection des proposeurs de blocs. Le protocole reste structuré pour maintenir un haut niveau de décentralisation, mesuré en termes d'entités indépendantes plutôt que de nœuds individuels.
EIP-7549
L'EIP-7549 vise à optimiser l'efficacité des clients Ethereum en simplifiant le processus de vérification des règles de consensus, notamment en réduisant le nombre de pairings nécessaires pour valider les attestations de la part des clients Casper-FFG.
Dans le cadre du protocole Ethereum, après qu'un bloc est proposé par le leader d'un slot, les autres validateurs, appelés "attesteurs", doivent émettre des votes toutes les six minutes. Ces votes reflètent leur perception de la chaîne via les règles LMD-GHOST (règle de choix de la branche) et Casper-FFG (règle de finalité), et sont encapsulés dans une structure de données appelée "attestation". Cette attestation comprend le créneau pour lequel les votes sont émis et un index de comité auquel un attesteur est assigné.
L'inclusion de l’index rend chaque attestation unique, ce qui était essentiel dans les conceptions initiales du sharding. Cependant, avec l'évolution vers le proto-danksharding, cette spécificité n'est plus nécessaire, car tous les attesteurs appartiennent désormais au même ensemble, éliminant ainsi le besoin de comités distincts.
L'EIP-7549 propose de déplacer l'index en dehors du message d'attestation. Cette modification permet de réduire le nombre minimal d'attestations à vérifier pour atteindre un seuil de 2/3, passant de 1 366 à seulement 22, soit une réduction par un facteur de 62. Voici les avantages attendus :
- Agrégation des votes : En déplaçant l'index en dehors de l'attestation, il devient possible d'agréger les votes de manière plus efficace, ce qui améliore les performances des clients légers et réduit la complexité des communications P2P.
- Efficacité On-Chain : Cette modification permet d'inclure jusqu'à 8 créneaux de votes dans un seul bloc, contre 2 actuellement, augmentant ainsi la résilience du protocole face aux défaillances de vivacité et de finalité.
En simplifiant la structure des attestations et en optimisant leur agrégation, l'EIP-7549 contribue à une meilleure efficacité du réseau Ethereum, tout en renforçant sa résilience et sa capacité à traiter un volume croissant de transactions.
EIP-7685
L’EIP-7685 propose un cadre général permettant de stocker des demandes déclenchées par des contrats à partir de la couche d’exécution et de les partager avec la couche de consensus pour traitement. Cette fonctionnalité vise à améliorer l’interopérabilité entre les deux couches et à offrir une meilleure coordination pour les entités dont les responsabilités couvrent ces deux domaines, comme les producteurs de blocs.
Pour mettre en œuvre cette proposition, l’EIP-7685 étend l’en-tête de la couche d’exécution en y ajoutant un champ dédié. Ce champ est conçu pour stocker les informations relatives aux requêtes générées par des smart contracts avant qu’elles ne soient transmises à la couche de consensus pour validation et traitement.
Au fil du temps, les validateurs ont de plus en plus recours à des smart contracts pour déléguer certaines de leurs fonctions. Cette pratique permet de limiter les échecs dus à des erreurs humaines tout en conservant une certaine supervision administrative. Ces contrats sont souvent gérés par des tiers spécialisés, introduisant une couche de complexité supplémentaire.
Cependant, cette configuration peut entraîner des problèmes de délégation, notamment des conflits d’intérêts entre les parties impliquées (par exemple, problème dit de "principal-agent" évoqué plus haut dans cet article). L’EIP-7685 résout ces problèmes en permettant aux validateurs de déléguer des fonctions à des smart contracts tout en garantissant une interaction fluide et fiable entre les couches d’exécution et de consensus.
L’EIP-7685 s’inscrit dans une vision visant à rendre Ethereum plus modulaire et résilient. En permettant une meilleure coordination entre les couches d’exécution et de consensus, cette proposition facilite non seulement le travail des validateurs, mais ouvre également la voie à des architectures plus sophistiquées, où les contrats intelligents jouent un rôle central dans la gestion des opérations. En bref, une avancée technique clé pour l’écosystème Ethereum.
EIP-7702
L’EIP-7702 introduit un mécanisme novateur permettant aux Externally Owned Accounts (EOA) d’exploiter de manière plus complète les capacités d’Ethereum. L’idée est de permettre aux EOAs de signer une transaction dite “enveloppe” qui permet d’établir un lien permanent prédéfini avec un smart contract. Ainsi, ce dernier pourra prendre le contrôle de certaines fonctions, comme la gestion des autorisations.
Rappel : Les EOA sont un type de comptes sur Ethereum contrôlé par les utilisateurs plutôt que par le code, comme c'est le cas pour les comptes de smart contracts. Les EOA peuvent initier des transactions, envoyer et recevoir des ETH ou des tokens basés sur Ethereum, et interagir avec les smart contracts. Ces comptes sont généralement détenus par des utilisateurs normaux d'Ethereum et interagissent avec la blockchain par le biais de wallets.
L’un des principaux avantages apportés par l’EIP-7702 réside dans l’amélioration significative de l’expérience utilisateur. Par exemple, grâce à la prise en charge du transaction batching, les utilisateurs peuvent désormais regrouper plusieurs transactions en une seule. Cela réduit le nombre de signatures nécessaires, comme lors des échanges de tokens ERC-20, où il fallait traditionnellement approuver et échanger dans deux transactions distinctes. Désormais, une seule signature suffit pour exécuter ces actions de manière atomique.
Une autre fonctionnalité clé est le parrainage de gas. Actuellement, les EOAs doivent payer leurs frais de gas en tokens natifs pour chaque transaction, une exigence qui peut compliquer l’utilisation des applications décentralisées (dApps) pour les utilisateurs qui ne disposent pas de ces tokens. L’EIP-7702 permet à un autre compte de prendre en charge ces frais, ouvrant ainsi la possibilité pour les dApps elles-mêmes de sponsoriser les transactions de leurs utilisateurs, notamment pour les débutants.
En consolidant ces améliorations, l’EIP-7702 représente une étape cruciale vers une meilleure intégration des EOAs dans l’écosystème Ethereum. En élargissant leurs capacités tout en préservant leur simplicité d’utilisation, cette proposition renforce l’accessibilité et l’adoption du réseau, tout en le rendant plus attractif pour les utilisateurs et développeurs.
Les autres ERC importantes
Au-delà de Pectra, l’année 2024 a été marquée par l’adoption de l’ERC-4337 pour les smart contracts sur Ethereum. Désormais déployée sur des solutions de Layer 2 comme Base et Polygon, ainsi que sur le mainnet, cette évolution a permis d’introduire le fameux account abstraction, sans nécessiter de modification des mécanismes fondamentaux du protocole Ethereum.
Revenons rapidement sur ce concept d’account abstraction. L’idée est de simplifier l’expérience utilisateur en remplaçant les wallets par des smart contracts. Initialement présentée en 2021 sous la forme de l’EIP-4337, cette proposition est désormais appelée ERC-4337, puisqu’elle est devenue la nouvelle norme qui permettra de gérer l’abstraction de compte sur Ethereum et de créer les smart contracts accounts. Cela ouvre la voie à des fonctionnalités avancées pour les utilisateurs :
- Programmabilité accrue : Les EOAs peuvent désormais déléguer certaines tâches à des contrats intelligents, leur permettant de se comporter comme des smart accounts.
- Simplification des interactions : Les utilisateurs peuvent regrouper plusieurs transactions en une seule, éliminant ainsi la nécessité de signer chaque étape (comme l’approbation suivie d’un échange pour les tokens ERC-20).
- Sponsorisation des frais de gas : Les applications décentralisées (dApps) peuvent couvrir les frais de transaction de leurs utilisateurs, simplifiant l’expérience pour les nouveaux entrants.
L’introduction de l’ERC-4337 a considérablement amélioré l’expérience utilisateur sur Ethereum. Les portefeuilles compatibles avec cette norme permettent désormais des fonctionnalités telles que le social recovery, où un utilisateur peut récupérer l’accès à son portefeuille en s’appuyant sur un smart contract dédié. Cela réduit les risques liés à la perte des clés privées, un problème majeur pour l’adoption grand public. À noter que cette fonctionnalité a nativement été implémentée depuis plusieurs années dans le wallet Argent, notamment utilisé sur Starknet.
De plus, en facilitant des interactions plus complexes avec un coût et une friction moindres, l’ERC-4337 ouvre la porte à des cas d’utilisation nouveaux ou améliorés, notamment :
- Applications de finance décentralisée (DeFi) : Automatisation des stratégies complexes pour les utilisateurs.
- Jeux blockchain : Paiements intégrés sans que les joueurs n’aient à gérer directement les tokens natifs.
- Commerce et NFT : Expérience simplifiée pour les utilisateurs finaux, où les frais de gas peuvent être absorbés par les marketplaces.
Malgré ses avantages, l’ERC-4337 n’est pas exempt de limitations. Sa nature hors protocole entraîne une complexité accrue, notamment en ce qui concerne la fragmentation du mempool. Chaque transaction doit être vérifiée par des infrastructures séparées, ce qui peut ralentir le traitement et augmenter les risques de congestion.
Pour remédier à ces problèmes, la communauté Ethereum envisage une solution via la norme RIP-7560, qui intègrerait les fonctionnalités de l’ERC-4337 directement dans le protocole. Cela permettrait une exécution plus rapide et plus fluide des userOperations, tout en éliminant les goulots d’étranglement actuels.
L’ERC-4337 représente une étape clé vers l’objectif ultime d’Ethereum : rendre l’abstraction de compte accessible à tous, dans ce que certains appellent "l’endgame" de l’écosystème. En facilitant des interactions plus intuitives, en réduisant les frictions pour les utilisateurs et en améliorant la programmabilité, cette norme prépare Ethereum à une adoption plus large.
Cependant, pour maximiser son potentiel, l’intégration des fonctionnalités de l’ERC-4337 directement dans Ethereum via RIP-7560 reste une priorité. Cela garantirait que cette avancée technologique soit à la fois durable et évolutive, renforçant la position d’Ethereum comme leader dans l’innovation blockchain.