Ethereum a été amélioré plus en 2024 que lors des trois dernières années combinées.
Mais une proposition change tranquillement tout : l’exécution parallèle.
EIP-7928 pourrait être le moment où Ethereum cesse enfin d'être à thread unique.👇🧵
Nous avons vu la mise à niveau Fusaka, la mise à niveau kohaku, tant d'EIPs et d'ERCs, mais l'EIP-7928 touche au cœur de l'EVM. ----------------------------------------
Qu’est-ce que l’EIP-7928 ?
𝘌𝘐𝘗-7928 est une mise à niveau proposée qui introduit des Listes Atomiques Bornées (𝘉𝘈𝘓𝘴), une manière formelle pour les transactions de déclarer quel état elles liront ou écriront avant l'exécution.
En incluant un « manifeste d'accès à l'état » structuré, les clients Ethereum peuvent déterminer si deux transactions touchent les mêmes parties de l'état, et si ce n'est pas le cas, elles peuvent être exécutées en parallèle.
Cela résout l'un des plus grands problèmes d'Ethereum, c'est un système qui permet aux exécutions de se produire de manière séquentielle, où chaque transaction doit s'exécuter dans l'ordre.
Avec l'EIP-7928, Ethereum fait un grand pas vers un environnement d'exécution multi-threadé, permettant un plus grand débit sans redéfinir l'EVM. ----------------------------------------
Qu’est-ce que BAL (Bounded Atomic List) ?
Une liste atomique bornée (BAL) est des métadonnées qui indiquent au réseau exactement quels comptes et emplacements de stockage une transaction a l'intention de lire ou de modifier avant même qu'elle ne s'exécute.
Cela transforme l'EVM d'un exécuteur de transactions en boîte noire en un système prévisible où l'utilisation des ressources est connue à l'avance. Un BAL fonctionne comme un aperçu compact et déterministe de l'empreinte d'exécution.
Cela donne confiance aux validateurs que :
➢ la transaction ne touchera rien en dehors de ses limites déclarées
➢ aucun conflit d'état caché n'apparaîtra pendant l'exécution
➢ Les décisions de planification prises avant l'exécution resteront valides par la suite.
Les BAL sont essentiels pour permettre un parallélisme sûr car les nœuds peuvent désormais raisonner sur les conflits de transaction sans d'abord exécuter l'EVM.
----------------------------------------
Il existe différents types de BAL
1. Le Read BAL qui apparaît dans les transactions qui accèdent à l'état mais ne modifient aucune de ses parties. Ceux-ci peuvent être rares dans les flux Ethereum normaux mais ils deviennent extrêmement précieux pour les systèmes par lots.
2. Le Write BAL qui définit le sous-ensemble de l'état que la transaction mettra à jour. Ces transactions nécessitent une résolution de conflit mais peuvent toujours s'exécuter côte à côte avec d'autres qui touchent à d'autres zones de l'état.
3. Le BAL de lecture-écriture inclut les deux ensembles, permettant aux clients de comparer les chevauchements de lecture/écriture à travers des milliers de transactions en attente.
Cela permet au planificateur de créer des groupes d'exécution optimaux sans risquer des résultats incohérents ou des cascades de réversion. ----------------------------------------
Mécanisme de EIP-7928
Le mécanisme derrière l'EIP-7928 a 3 composants principaux : déclaration, validation et planification.
1. Déclaration de pré-exécution
Chaque transaction inclut un BAL, un manifeste compact de tous les comptes et emplacements de stockage qui seront accessibles. Cette déclaration fait partie de la charge utile de la transaction et est vérifiée avant que l'exécution ne commence. Cela seule rend possible la détection de conflits sans exécuter l'EVM.
2. Validation Statique de BAL
Avant d'exécuter une transaction, les clients Ethereum vérifient :
➢ si le BAL est bien formé
➢ si la transaction tente d'accéder à quoi que ce soit en dehors de ses ensembles déclarés
➢ si les ensembles déclarés respectent les limites définies dans la norme
Si la transaction touche quelque chose qui n'est pas inclus dans le BAL, elle est invalide. Cela protège le réseau et assure la confiance dans la planification parallèle.
3. Construction du graphique de conflit
En utilisant les BAL, le nœud construit un graphique de conflit où chaque transaction est un nœud, une arête signifie des ensembles de lecture/écriture qui se chevauchent, pas d'arête signifie que les transactions sont indépendantes.
Ce graphique indique au planificateur exactement quelles transactions peuvent s'exécuter simultanément.
4. Planification parallèle
Le client divise l'ensemble des transactions en lots pouvant s'exécuter en parallèle. Des lots indépendants sont envoyés à différents cœurs ou threads de CPU.
Exemples : échanges multiples dans différentes pools, plusieurs mints affectant des états de contrat indépendants, transferts non liés touchant différents comptes
Ceci s'exécute en même temps, maximisant l'utilisation du CPU.
5. Engagement déterministe
Bien que l'exécution se fasse en parallèle, l'engagement à l'état est toujours appliqué dans l'ordre des blocs canoniques. Cela préserve le déterminisme entre tous les nœuds. Le parallélisme accélère l'exécution, mais l'ordre évite la divergence de consensus. ----------------------------------------
Cycle de vie d'un Bloc 7928-Activé
Les transactions avec des BALs entrent dans le mempool, les nœuds les classifient et les regroupent, l'exécution parallèle commence, les résultats sont fusionnés de manière déterministe, et le bloc est finalisé plus rapidement. Les constructeurs et les validateurs bénéficient d'un temps d'exécution réduit et de schémas de conflit prévisibles.
Avantages de l'EIP-7928
➢ EIP-7928 déverrouille une véritable exécution parallèle, permettant à Ethereum d'utiliser enfin du matériel multi-cœur moderne pour augmenter considérablement le débit.
➢ En éliminant la congestion plus rapidement, l'EIP-7928 atténue les pics de gaz et stabilise les marchés des frais pendant les périodes de forte affluence.
➢ L'exécution parallèle réduit le temps de vérification des blocs, renforçant la décentralisation en abaissant les exigences matérielles pour tous les validateurs.
➢ Avec des limites d'accès à l'état clairement définies, les constructeurs de blocs peuvent structurer les stratégies MEV et les flux par lots de manière plus sûre et efficace.
➢ EIP-7928 améliore la couche d'exécution d'Ethereum sans nécessiter de nouvelles machines virtuelles, de réécritures de contrats ou de rupture des outils existants. ---------------------------------------- En conclusion, l'EIP-7928 semble être l'une de ces mises à niveau qui change discrètement tout.
De mon point de vue, c'est la première fois qu'Éthereum pose de véritables bases pour le parallélisme, une exécution à haut débit sans réécriture de l'ensemble de la pile.
Si nous réussissons cela, les développeurs gagnent, les utilisateurs gagnent, et Ethereum commence enfin à utiliser toute la puissance du matériel moderne et c'est un avenir qui m'excite vraiment.
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.
Ethereum a été amélioré plus en 2024 que lors des trois dernières années combinées.
Mais une proposition change tranquillement tout : l’exécution parallèle.
EIP-7928 pourrait être le moment où Ethereum cesse enfin d'être à thread unique.👇🧵
Nous avons vu la mise à niveau Fusaka, la mise à niveau kohaku, tant d'EIPs et d'ERCs, mais l'EIP-7928 touche au cœur de l'EVM.
----------------------------------------
Qu’est-ce que l’EIP-7928 ?
𝘌𝘐𝘗-7928 est une mise à niveau proposée qui introduit des Listes Atomiques Bornées (𝘉𝘈𝘓𝘴), une manière formelle pour les transactions de déclarer quel état elles liront ou écriront avant l'exécution.
En incluant un « manifeste d'accès à l'état » structuré, les clients Ethereum peuvent déterminer si deux transactions touchent les mêmes parties de l'état, et si ce n'est pas le cas, elles peuvent être exécutées en parallèle.
Cela résout l'un des plus grands problèmes d'Ethereum, c'est un système qui permet aux exécutions de se produire de manière séquentielle, où chaque transaction doit s'exécuter dans l'ordre.
Avec l'EIP-7928, Ethereum fait un grand pas vers un environnement d'exécution multi-threadé, permettant un plus grand débit sans redéfinir l'EVM.
----------------------------------------
Qu’est-ce que BAL (Bounded Atomic List) ?
Une liste atomique bornée (BAL) est des métadonnées qui indiquent au réseau exactement quels comptes et emplacements de stockage une transaction a l'intention de lire ou de modifier avant même qu'elle ne s'exécute.
Cela transforme l'EVM d'un exécuteur de transactions en boîte noire en un système prévisible où l'utilisation des ressources est connue à l'avance.
Un BAL fonctionne comme un aperçu compact et déterministe de l'empreinte d'exécution.
Cela donne confiance aux validateurs que :
➢ la transaction ne touchera rien en dehors de ses limites déclarées
➢ aucun conflit d'état caché n'apparaîtra pendant l'exécution
➢ Les décisions de planification prises avant l'exécution resteront valides par la suite.
Les BAL sont essentiels pour permettre un parallélisme sûr car les nœuds peuvent désormais raisonner sur les conflits de transaction sans d'abord exécuter l'EVM.
----------------------------------------
Il existe différents types de BAL
1. Le Read BAL qui apparaît dans les transactions qui accèdent à l'état mais ne modifient aucune de ses parties. Ceux-ci peuvent être rares dans les flux Ethereum normaux mais ils deviennent extrêmement précieux pour les systèmes par lots.
2. Le Write BAL qui définit le sous-ensemble de l'état que la transaction mettra à jour. Ces transactions nécessitent une résolution de conflit mais peuvent toujours s'exécuter côte à côte avec d'autres qui touchent à d'autres zones de l'état.
3. Le BAL de lecture-écriture inclut les deux ensembles, permettant aux clients de comparer les chevauchements de lecture/écriture à travers des milliers de transactions en attente.
Cela permet au planificateur de créer des groupes d'exécution optimaux sans risquer des résultats incohérents ou des cascades de réversion.
----------------------------------------
Mécanisme de EIP-7928
Le mécanisme derrière l'EIP-7928 a 3 composants principaux : déclaration, validation et planification.
1. Déclaration de pré-exécution
Chaque transaction inclut un BAL, un manifeste compact de tous les comptes et emplacements de stockage qui seront accessibles.
Cette déclaration fait partie de la charge utile de la transaction et est vérifiée avant que l'exécution ne commence.
Cela seule rend possible la détection de conflits sans exécuter l'EVM.
2. Validation Statique de BAL
Avant d'exécuter une transaction, les clients Ethereum vérifient :
➢ si le BAL est bien formé
➢ si la transaction tente d'accéder à quoi que ce soit en dehors de ses ensembles déclarés
➢ si les ensembles déclarés respectent les limites définies dans la norme
Si la transaction touche quelque chose qui n'est pas inclus dans le BAL, elle est invalide. Cela protège le réseau et assure la confiance dans la planification parallèle.
3. Construction du graphique de conflit
En utilisant les BAL, le nœud construit un graphique de conflit où chaque transaction est un nœud, une arête signifie des ensembles de lecture/écriture qui se chevauchent, pas d'arête signifie que les transactions sont indépendantes.
Ce graphique indique au planificateur exactement quelles transactions peuvent s'exécuter simultanément.
4. Planification parallèle
Le client divise l'ensemble des transactions en lots pouvant s'exécuter en parallèle.
Des lots indépendants sont envoyés à différents cœurs ou threads de CPU.
Exemples : échanges multiples dans différentes pools, plusieurs mints affectant des états de contrat indépendants, transferts non liés touchant différents comptes
Ceci s'exécute en même temps, maximisant l'utilisation du CPU.
5. Engagement déterministe
Bien que l'exécution se fasse en parallèle, l'engagement à l'état est toujours appliqué dans l'ordre des blocs canoniques. Cela préserve le déterminisme entre tous les nœuds. Le parallélisme accélère l'exécution, mais l'ordre évite la divergence de consensus.
----------------------------------------
Cycle de vie d'un Bloc 7928-Activé
Les transactions avec des BALs entrent dans le mempool, les nœuds les classifient et les regroupent, l'exécution parallèle commence, les résultats sont fusionnés de manière déterministe, et le bloc est finalisé plus rapidement.
Les constructeurs et les validateurs bénéficient d'un temps d'exécution réduit et de schémas de conflit prévisibles.
Avantages de l'EIP-7928
➢ EIP-7928 déverrouille une véritable exécution parallèle, permettant à Ethereum d'utiliser enfin du matériel multi-cœur moderne pour augmenter considérablement le débit.
➢ En éliminant la congestion plus rapidement, l'EIP-7928 atténue les pics de gaz et stabilise les marchés des frais pendant les périodes de forte affluence.
➢ L'exécution parallèle réduit le temps de vérification des blocs, renforçant la décentralisation en abaissant les exigences matérielles pour tous les validateurs.
➢ Avec des limites d'accès à l'état clairement définies, les constructeurs de blocs peuvent structurer les stratégies MEV et les flux par lots de manière plus sûre et efficace.
➢ EIP-7928 améliore la couche d'exécution d'Ethereum sans nécessiter de nouvelles machines virtuelles, de réécritures de contrats ou de rupture des outils existants.
----------------------------------------
En conclusion, l'EIP-7928 semble être l'une de ces mises à niveau qui change discrètement tout.
De mon point de vue, c'est la première fois qu'Éthereum pose de véritables bases pour le parallélisme, une exécution à haut débit sans réécriture de l'ensemble de la pile.
Si nous réussissons cela, les développeurs gagnent, les utilisateurs gagnent, et Ethereum commence enfin à utiliser toute la puissance du matériel moderne et c'est un avenir qui m'excite vraiment.
Vos pensées sur EIP-7928 ?