Couche d'exécution

La couche d'exécution (anciennement appelée « Eth1 ») est l'un des deux composants principaux de l'architecture d'Ethereum après la fusion. Elle est responsable du traitement des transactions, de l'exécution des contrats intelligents et du maintien de l'état actuel du réseau Ethereum. Suite à la fusion de septembre 2022, l'architecture d'Ethereum a été formalisée en deux couches distinctes mais coordonnées : la couche d'exécution (qui gère les calculs et les transitions d'état) et la couche de consensus (qui gère la coordination des validateurs, la proposition de blocs et la finalité via la preuve d'enjeu). La couche d'exécution exécute la machine virtuelle Ethereum (EVM) , traite toutes les données de transaction, y compris les interactions avec les contrats intelligents, gère la base de données des comptes et des soldes, et génère les charges utiles d'exécution que la couche de consensus inclut dans les blocs. Parmi les logiciels clients implémentant la couche d'exécution, on trouve Geth (go-ethereum), Nethermind, Besu et Erigon . La séparation de l'exécution et du consensus en couches distinctes a constitué une étape architecturale clé, permettant à Ethereum de passer de la preuve de travail à la preuve d'enjeu sans réécrire la logique d'exécution des contrats intelligents.

Origine & Histoire

DateEspaces
2015Ethereum original combine l'exécution et le consensus dans les clients « Eth1 ».
2020La recherche sur Ethereum officialise la terminologie « Eth1/Eth2 » ; renommée plus tard exécution/consensus
2020Beacon Chain est lancée en tant que couche de consensus distincte ; elle entame la coordination des validateurs PoS.
2021Spécification de l'API du moteur développée pour connecter les couches d'exécution et de consensus
2022 (juin)La terminologie « Eth1 »/« Eth2 » est obsolète ; les termes « couche d’exécution » et « couche de consensus » ont été renommés.
2022 (septembre 15)Fusion : couche d'exécution couplée à la chaîne Beacon ; minage PoW désactivé
2023Mise à niveau Shanghai/Capella (Shapella) : la couche d’exécution permet le traitement des retraits d’ETH
2024EIP-4844 (Dencun) : la couche d’exécution ajoute des transactions blob pour la disponibilité des données L2
« La séparation entre l'exécution et le consensus n'est pas qu'une simple architecture technique ; c'est une prise de position philosophique concernant la spécialisation, la capacité de mise à niveau et l'avenir de la mise à l'échelle d'Ethereum. »
– Chercheur de la Fondation Ethereum

Fonctionnement

ARCHITECTURE ETHEREUM POST-FUSION :

COUCHE DE CONSENSUS (Beacon Chain) ┌───────────────────────────────────┐ │ Les validateurs proposent/attestent les blocs │ │ Règle de choix du fork PoS │ │ Finalité (2 époques ~12 min) │ │ Sanction des validateurs malhonnêtes │ └──────────┬──────────────────────┘ │ API du moteur │ (newPayload, forkchoiceUpdated) ▼ COUCHE D'EXÉCUTION (EVM) ┌───────────────────────────────────┐ │ Traite les transactions │ │ Exécute les contrats intelligents │ │ Gère l'état (comptes, code) │ │ Génère la charge utile d'exécution │ │ Gère la mémoire allouée (mempool) │ └──────────────────────────────────┘

ResponsabilitéCouche d'exécutionCouche de consensus
Transaction en cours
Exécution intelligente des contrats
Gestion de l'état (soldes ETH)
Proposition de blocage✓ (validateurs)
Finalité
Résistance Sybil✓ (Staking ETH)
Réseau P2PLes deux (protocoles différents)Le
Mempool

En termes simples

  1. L'ordinateur d'EthereumLa couche d'exécution est l'endroit où tous les calculs proprement dits ont lieu : chaque interaction avec un contrat intelligent, chaque transfert de jeton et chaque transaction DeFi y est traitée.
  2. Séparation des préoccupationsAvant la fusion, un seul système gérait à la fois les transactions et la coordination des validateurs. Après la fusion, ces fonctions sont séparées : la couche d’exécution se concentre exclusivement sur les calculs.
  3. EVM est iciLa machine virtuelle Ethereum, qui traite tous les contrats intelligents, est au cœur de la couche d'exécution.
  4. Propulsé par la diversité de la clientèlePlusieurs équipes logicielles indépendantes (Geth, Nethermind, Besu, Erigon) implémentent la couche d'exécution, empêchant ainsi un seul bug logiciel de paralyser tout Ethereum.
  5. Pont API du moteurLes couches d'exécution et de consensus communiquent via l'API Engine – la couche de consensus indique à la couche d'exécution quelles transactions traiter et quand.

Exemples du monde réel

ScénarioMise en œuvreRésultat
Transfert ETHLa couche d'exécution valide et traite la transactionMise à jour des soldes ; modifications de l'état racine
Échange UniswapLa machine virtuelle EVM, dans sa couche d'exécution, exécute le bytecode du contrat Uniswap.Les soldes de jetons sont échangés atomiquement.
Le validateur propose un blocLa couche de consensus demande l'exécution de la charge utile via l'API EngineLa couche d'exécution fournit les transactions et la racine d'état
Retrait de ShapellaLa mise à niveau de Shanghai ajoute le traitement des retraits à la couche d'exécution.Retraits d'ETH par validateur activés
Données blob L2Dencun ajoute le type de transaction blob à la couche d'exécutionDisponibilité de données moins coûteuse pour les regroupements

Avantages

AvantageDescription
SpécialisationLa couche d'exécution se concentre exclusivement sur le calcul, améliorant ainsi l'optimisation.
Mises à niveau modulairesMises à niveau d'exécution (EIP) indépendantes des mises à niveau de consensus
Diversité des clientsPlusieurs clients d'exécution empêchent un point de défaillance unique.
stabilité de l'EVMLa logique d'exécution principale reste inchangée par les modifications de la couche de consensus.
Support de données L2Couche d'exécution étendue avec des transactions blob pour la mise à l'échelle L2
Spécification formelleCouche d'exécution formellement spécifiée pour la compatibilité entre clients

Inconvénients et risques

DésavantageDescription
Risque de domination du clientGeth représente environ 65 à 70 % des parts de marché ; des bugs sur un seul client pourraient affecter la majorité.
Complexité de l'API du moteurLa coordination entre les couches ajoute de la complexité
concentration de MEVLe mempool de la couche d'exécution permet l'extraction MEV
contraintes de limite de gazLe débit de la couche d'exécution reste limité par la limite de gaz des blocs.
Synchronisation intercouchesLes deux couches doivent être mises à niveau de manière coordonnée pour les forks durs.

Conseils de gestion des risques :

  • Les opérateurs de nœuds devraient envisager d'exécuter des clients minoritaires (Nethermind, Besu, Erigon) afin d'améliorer la diversité des clients.
  • Surveillez la consommation de gaz de la couche d'exécution pour anticiper les pics de frais liés aux transactions planifiées.
  • Suivre les propositions de mise à niveau de la couche d'exécution (EIP) susceptibles d'affecter le comportement des DApps.
  • Pour les développeurs d'applications décentralisées (DApps), effectuez vos tests sur des réseaux de test utilisant la même diversité de clients au niveau de la couche d'exécution que le réseau principal.

QFP

Q : Quelle est la différence entre la couche d'exécution et la couche de consensus ?

A : La couche d'exécution traite les transactions et les contrats intelligents (la couche « que s'est-il passé »). La couche de consensus coordonne les validateurs afin qu'ils s'accordent sur les blocs à inclure et garantissent la finalité (la couche « qui décide de ce qui s'est passé »). La communication s'effectue via l'API Engine.

Q : Qu’est-il arrivé à « Eth1 » et « Eth2 » ?

R : La Fondation Ethereum a abandonné ces termes en 2022 car ils laissaient entendre qu'Eth2 remplacerait Eth1 en tant que nouvelle chaîne. En réalité, la chaîne d'origine continue de servir de couche d'exécution, tandis que la Beacon Chain constitue la couche de consensus. Ces deux éléments sont indispensables au fonctionnement du réseau Ethereum.

Q : Quel client de couche d'exécution dois-je exécuter en tant qu'opérateur de nœud ?

A : Tout client d'exécution convient, mais pour la stabilité du réseau, privilégiez un client minoritaire. Geth domine (environ 65 à 70 % de parts de marché), ce qui représente un risque de centralisation. Nethermind, Besu et Erigon constituent d'excellentes alternatives qui réduisent ce risque et sont entièrement compatibles.

Q : Comment la couche d'exécution affecte-t-elle la mise à l'échelle de la couche 2 ?

A : Les solutions L2 (Optimism, Arbitrum, zkSync) transmettent les données de transaction ou les preuves à la couche d'exécution. La mise à jour Dencun (mars 2024) a ajouté les transactions « blob » à la couche d'exécution afin de réduire les coûts liés aux données L2, diminuant ainsi les frais L2 d'un facteur 10 à 100.

Q : La couche d'exécution peut-elle être mise à niveau indépendamment de la couche de consensus ?

A : Les hard forks coordonnent simultanément les deux couches (par exemple, Shanghai pour l'exécution et Capella pour le consensus = « Shapella »). Cependant, grâce à l'architecture modulaire, les EIP de la couche d'exécution peuvent être limitées aux modifications de la couche d'exécution uniquement, sans nécessiter de modifications de la couche de consensus.

Termes connexes

  • Couche de consensus– Gestion de la couche partenaire et coordination des validateurs de points de vente
  • EVM (machine virtuelle Ethereum) – Noyau de la couche d'exécution
  • La fusion – Événement qui a formellement séparé les couches d'exécution et de consensus
  • API du moteur - Pont de communication entre les couches d'exécution et de consensus
  • Geth (go-ethereum) – Client de couche d'exécution le plus populaire
  • Layer 2 – Utilise la couche d'exécution pour la disponibilité et le règlement des données
  • EIP (Ethereum Improvement Proposal) – Processus de mise à niveau de la couche d'exécution

Actualités et Événements