

L'Account Abstraction (AA) constitue une avancée déterminante pour l'écosystème Ethereum, transformant en profondeur la gestion des comptes individuels sur la blockchain. Cette innovation lève de nombreux obstacles qui freinaient jusque-là les non-initiés, en proposant des solutions qui facilitent l'accès à l'univers crypto. Les évolutions principales portent sur la dissociation de la source des transactions et des signatures, et offrent aux utilisateurs une flexibilité accrue dans la sécurisation de leurs comptes, notamment via l'EIP-4337.
Pour appréhender l'Account Abstraction, il convient d'abord de distinguer les deux types de comptes présents sur Ethereum. Les Externally Owned Accounts (EOA) sont des comptes classiques contrôlés par des clés privées et des phrases de récupération, représentant le format standard pour les utilisateurs. Les Contract Accounts (CA), quant à eux, sont régis par des smart contracts et offrent des fonctionnalités programmables.
L'Account Abstraction désigne la transformation architecturale qui dissocie la source de la transaction et la signature, tout en étendant les capacités des EOA pour leur permettre de fonctionner comme des CA. Cette évolution autorise les smart contracts à contrôler les EOA, rendant possible la création de wallets sous forme de smart contracts. Les utilisateurs bénéficient ainsi d'une expérience nettement améliorée, avec une gestion plus flexible de leurs comptes et de nouvelles opportunités d'interaction avec la blockchain.
La communauté Ethereum a largement adopté l'Account Abstraction pour sa capacité à simplifier la gestion des comptes. Cette technologie apporte une flexibilité remarquable à des opérations on-chain souvent rigides, permettant des transactions plus dynamiques et personnalisables. Les options de sécurité sont enrichies, offrant aux utilisateurs des dispositifs de protection adaptés, bien au-delà du contrôle traditionnel par clé privée.
En rationalisant les processus complexes et en introduisant des outils de gestion intuitifs, l'AA améliore sensiblement l'expérience utilisateur au sein de l'écosystème Ethereum, rendant la blockchain plus accessible et plus facile à utiliser.
Le développement de l'Account Abstraction s'appuie sur plusieurs Ethereum Improvement Proposals (EIP) majeurs. L'EIP-2938 proposait de faire des Contract Accounts des comptes principaux capables de payer les frais et de réaliser des transactions de façon autonome. L'EIP-3074 introduisait deux nouveaux OpCodes, AUTH et AUTHCALL, permettant aux EOA de déléguer leurs opérations à des contrats et offrant aux développeurs des outils pour concevoir des objets de transaction et des mécanismes de vérification plus souples.
L'EIP-4337 constitue la version la plus récente de l'Account Abstraction, avec l'apparition du memory pool des « user operations ». Cette nouvelle logique remplace le pool traditionnel des transactions et permet l'AA sans modifier le protocole central d'Ethereum. Les propositions initiales de 2020, dont l'EIP-2938 et l'EIP-3074, ont été suspendues en raison des modifications profondes qu'elles imposaient au protocole, ce qui rend le caractère agnostique de l'EIP-4337 particulièrement avantageux pour l'évolution de l'écosystème.
L'EIP-4337, bien qu'il puisse sembler complexe pour les débutants, apporte une amélioration significative par rapport aux solutions précédentes. L'EIP-3074 exigeait l'ajout de deux nouveaux OpCodes et des changements majeurs au niveau du consensus du protocole Ethereum, impliquant des risques et des défis importants qui ont conduit à la suspension de la proposition. L'EIP-4337 contourne ces difficultés en proposant une abstraction des comptes sans modification du protocole, ce qui en fait une solution réaliste et facilement déployable.
L'EIP-4337 repose sur plusieurs composants essentiels qui fonctionnent en synergie. UserOperation est un objet associé à une personne pour envoyer une transaction, regroupant toutes les données nécessaires. L'entry point est un contrat qui orchestre l'exécution des transactions groupées provenant des user operations.
Les bundlers sont des nœuds dédiés au traitement des user operations sous forme de transactions groupées, ajoutant les transactions d'entry point aux blocs et garantissant leur validité. Les wallet contracts sont des comptes smart contract détenus par les utilisateurs, exécutant les opérations réelles. La wallet factory est un smart contract permettant la création à la demande de nouveaux smart contract wallets.
Les aggregators sont des contrats spécialisés, auxquels les comptes délèguent la validation des signatures agrégées, les bundlers maintenant des listes blanches des aggregators compatibles. Les paymasters sont des contrats qui apportent une logique personnalisée à la blockchain, notamment la possibilité de payer les frais de gas dans n'importe quelle devise sur n'importe quel réseau. Cette architecture simplifie la gestion de l'AA tout en préservant la sécurité et la décentralisation, faisant de l'EIP-4337 une solution adaptée aux usages blockchain actuels.
Le circuit des transactions sous EIP-4337 se compose de plusieurs étapes, qui coopèrent pour activer les fonctionnalités de l'Account Abstraction. Maîtriser ce flux est essentiel pour comprendre le fonctionnement concret du système.
Lorsqu'un compte lance une transaction, il crée un objet user operation rassemblant toutes les données nécessaires à l'adresse de l'expéditeur, dont les paramètres « maxFeePerGas » et « maxPriorityFee ». L'utilisation du champ « signature » dépend du type de compte et n'est pas imposée par le protocole, ce qui ouvre la voie à des mécanismes d'authentification variés. Chaque user operation générée est envoyée dans un memory pool dédié, distinct du pool de transactions classique.
Les validateurs traitent les user operations en les groupant depuis le memory pool spécifique. Le bundler agit comme constructeur de blocs, ajoutant les user operations aux blocs tant que les transactions d'entry point restent valides. Même si le bundler ne construit pas lui-même les blocs, il peut s'appuyer sur les infrastructures existantes telles que mev-boost, la séparation proposer-builder, ou des API RPC expérimentales comme eth_sendRawTransactionConditional, facilitant l'intégration efficace des transactions groupées.
Après la transmission, les user operations sont envoyées au contrat entry point, qui exécute les opérations groupées. Le bundler fait appel à la fonction validateUserOp afin de vérifier la signature de chaque user operation avant acceptation. Une fois la validation effectuée, les bundlers inscrivent sur liste blanche le contrat entry point compatible, établissant la relation de confiance nécessaire au traitement des transactions suivantes.
La finalisation des transactions intervient via la fonction ExecuteUserOp du smart contract wallet. Les bundlers regroupent les user operations en transactions et déclenchent des appels de fonction sur le smart contract EntryPoint handleOps. Ces transactions sont alors intégrées dans les blocs, bouclant ainsi le cycle d'exécution et concrétisant les opérations souhaitées par l'utilisateur sur la blockchain.
Chaque type de wallet présente des caractéristiques et des avantages spécifiques. Les wallets EOA reposent sur des comptes Externally Owned Accounts, avec un coût de création et des frais de gas faibles, le paiement du gas en une seule devise et la signature ECDSA. Ils requièrent une gestion des clés privées, n'offrent pas de récupération native et proposent une sécurité basique tout en conservant une forte compatibilité avec l'écosystème.
Les wallets MPC s'appuient également sur des comptes EOA, avec des coûts similaires, mais adoptent la signature par calcul multipartite. Ils nécessitent la gestion des clés privées et autorisent une récupération éventuelle hors ligne sur des appareils de confiance. Les politiques de sécurité incluent l'autorisation de signature hors chaîne et des exigences de transparence, mais leur compatibilité avec l'écosystème est plus limitée.
Les wallets AA, fondés sur l'EIP-4337, utilisent des Contract Accounts avec des coûts plus élevés, mais offrent la flexibilité de paiement du gas en plusieurs devises et le support de tokens tiers. Ils permettent les transactions par lot, prennent en charge plusieurs méthodes de signature et éliminent la gestion des clés privées. La récupération du wallet est assurée et, après EIP-4337, la sécurité est renforcée à l'échelle de la chaîne. Ces wallets nécessitent des audits approfondis des contrats et pools on-chain, présentent une compatibilité modérée et éliminent le point de défaillance unique.
L'EIP-3074 a été suspendu en raison de son statut d'EIP de cœur exigeant des modifications du layer de consensus. Cette proposition impliquait l'ajout de deux nouveaux OpCodes pour permettre aux comptes EOA d'utiliser des contrats, ce qui présentait des opportunités mais aussi des défis techniques importants.
L'avantage principal de l'EIP-3074 est d'offrir aux utilisateurs la délégation du contrôle des EOA à des contrats, offrant aux développeurs une grande latitude pour imaginer des schémas de transaction innovants : trading groupé, transactions par lot, paiement flexible des frais. La solution mobilise des contrats invoker acceptant des paiements en tokens autres que l'ETH, agissant comme intermédiaires sans confiance entre sponsors et bénéficiaires. De plus, l'EIP-3074 permet à tout EOA de fonctionner comme un smart contract wallet sans déploiement de contrat, simplifiant son implémentation.
La principale réserve de la communauté Ethereum concernant l'EIP-3074 tient à la nécessité de modifier le layer de consensus, ce qui comporte des risques non négligeables et pourrait exiger des hard forks pour résoudre des complications. De plus, si l'EIP-3074 confère aux EOA certains attributs des CA, il conserve le mécanisme de signature ECDSA, empêchant l'utilisation de signatures arbitraires et restreignant les options d'authentification.
Bien que l'EIP-3074 ait été suspendu, la proposition reste d'actualité. L'EIP-5003 introduit l'OpCode AUTHUSURP, qui déploie du code sur les adresses autorisées par l'EIP-3074, en coordination avec l'EIP-3607 pour révoquer l'autorité des clés de signature d'origine des EOA. Par exemple, lorsque l'EOA 1 autorise l'adresse 2 à agir en son nom via EIP-3074, l'OpCode AUTHUSURP permet à l'adresse 2 de définir les codes de l'EOA 1. Ce mécanisme permet aux EOA existants d'évoluer vers des CA et d'adopter des signatures plus performantes et sécurisées, tout en préservant les avantages de l'EIP-3074 et en en corrigeant les limites.
L'Account Abstraction via l'EIP-4337 représente un jalon majeur dans l'évolution d'Ethereum vers une adoption à grande échelle. En résolvant des points de blocage importants grâce à une architecture innovante, cette proposition apporte des bénéfices comme des options de sécurité renforcées, des mécanismes de paiement des frais de gas flexibles et une expérience utilisateur optimisée. Ces progrès abaissent sensiblement les barrières d'accès à l'écosystème Ethereum, rendant la blockchain plus accessible. À mesure que l'EIP-4337 s'intègre aux principaux wallets et plateformes, l'Account Abstraction promet de transformer profondément la manière dont les utilisateurs interagissent avec les réseaux blockchain, ouvrant la voie à une adoption accrue des cryptomonnaies et à des applications décentralisées toujours plus évoluées. L'implémentation de l'EIP-4337 pose un nouveau standard pour l'infrastructure des wallets, illustrant le potentiel de l'Account Abstraction pour révolutionner l'usage de la blockchain, tout en préservant la sécurité et la décentralisation.
L'EIP-4337 introduit l'Account Abstraction sur Ethereum, permettant aux utilisateurs de créer des Contract Accounts pour gérer leurs transactions sans dépendance extérieure. Il sépare les processus de vérification et de transaction, rendant les interactions plus efficaces et sécurisées grâce aux objets UserOperation.
L'ERC-4337 est un protocole Ethereum dédié à l'Account Abstraction. Il permet de créer des smart accounts, améliore l'expérience utilisateur et autorise le paiement des frais de gas en tokens ERC-20 ou par des tiers, sans modification du consensus.
Non, EIP (Ethereum Improvement Proposal) et ERC (Ethereum Request for Comment) sont distincts. Les EIP concernent les évolutions du protocole, tandis que les ERC définissent les standards pour les tokens et les smart contracts.
L'ERC-4337 est une norme Ethereum pour l'Account Abstraction, permettant les smart contract wallets, les transactions sans gas et une expérience utilisateur optimisée.









