Zelcore

Architecture d’ERC-4337 : EntryPoint, bundlers et paymasters sans prise de tête

10 min de lecture
Architecture d’ERC-4337 : EntryPoint, bundlers et paymasters sans prise de tête

L’abstraction de compte sur Ethereum repose sur deux adresses canoniques qu’il vaut la peine de mémoriser. EntryPoint v0.6 se trouve à 0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789. EntryPoint v0.7, déployé début 2024, se trouve à 0x0000000071727De22E5E9d8BAf0edAc6f37da032. Sur le réseau principal, Arbitrum, Optimism, Base, Polygon et la plupart des autres chaînes EVM, chaque transaction ERC-4337 passe par l’un de ces deux contrats uniques. Si vous comprenez le rôle de ces contrats et celui des cinq autres acteurs qui les entourent, vous comprenez ERC-4337.

Voici la deuxième partie de notre série sur les comptes intelligents. La première expliquait pourquoi les EOA sont un mauvais choix par défaut. Nous allons maintenant voir ce qui se passe en coulisses : les six rôles, la structure UserOperation, le déroulement concret d’un échange de token depuis un compte intelligent, les changements de v0.6 à v0.7, les paymasters, les alt-mempools publics face aux bundlers privés, ainsi que les frais supplémentaires à prévoir.

Les six rôles en un schéma

ERC-4337 répartit entre six acteurs qui coopèrent ce qu’un EOA fait en une seule étape. Aucun fork d’Ethereum n’a été nécessaire : le système repose entièrement sur des contrats et une infrastructure hors chaîne.

Gardez ces rôles à l’esprit. Le reste de l’article montre simplement comment ces six acteurs interagissent.

La structure UserOperation

Une UserOperation est un ensemble de champs compatible avec JSON-RPC qui, une fois signé, exprime une intention sans encore l’inscrire sur L1. La disposition de v0.7 comporte 11 champs logiques :

Le portefeuille choisit le schéma de signature. ECDSA sur secp256k1 est courant, mais la vérification P-256/passkey, les signatures multisig, les seuils de récupération sociale et les signataires à clé de session utilisent tous la même interface. C’est là tout l’intérêt de cette flexibilité.

De bout en bout : que se passe-t-il lorsqu’un compte intelligent échange des USDC contre des ETH ?

Suivons un échange réel pour voir les différents rôles intervenir dans l’ordre.

  1. L’utilisateur appuie sur « Swap » dans l’interface de son portefeuille. Le portefeuille construit une UserOperation : sender = 0xUserSafe, callData = swapUSDCforETH(amount) ciblant Uniswap.
  2. Estimation du gaz. Le portefeuille appelle eth_estimateUserOperationGas sur un RPC de bundler. Celui-ci simule l’opération auprès d’EntryPoint et renvoie les trois limites de gaz.
  3. Signature de l’utilisateur. Le portefeuille calcule le hachage de la UserOp avec l’adresse d’EntryPoint et l’identifiant de chaîne, demande à l’utilisateur de signer (avec une passkey, une clé matérielle ou autre), puis ajoute la signature.
  4. Soumission. La UserOp signée est envoyée via eth_sendUserOperation à un ou plusieurs bundlers. Elle entre dans l’alt-mempool, un réseau pair-à-pair distinct du mempool des transactions ordinaires d’Ethereum.
  5. Simulation par le bundler. Le bundler simule à nouveau l’opération avec eth_call auprès de simulateValidation. Il vérifie les règles d’accès au stockage d’ERC-7562 : pendant la validation, une UserOp ne peut accéder qu’à son propre stockage, faute de quoi le bundler risque d’être la cible d’une attaque par harcèlement.
  6. Regroupement. Le bundler regroupe cette UserOp avec une dizaine d’autres au maximum dans un seul appel handleOps([...userOps], beneficiary) à EntryPoint.
  7. Exécution sur la chaîne. EntryPoint parcourt le lot : pour chaque opération, il appelle validateUserOp sur l’émetteur, déduit le préfinancement, puis exécute callData. L’échange sur Uniswap est effectué depuis le compte intelligent.
  8. Remboursement. EntryPoint rembourse à l’émetteur (ou au paymaster) les frais de gaz inutilisés et verse le paiement à l’adresse bénéficiaire du bundler.

Si l’étape 5 échoue, le bundler abandonne l’opération et l’utilisateur voit un code d’erreur AAxx. Les plus courants sont AA21 (préfinancement insuffisant), AA23 (erreur de signature), AA25 (nonce invalide), AA33 (annulation par le paymaster) et AA40 (limite de gaz de vérification dépassée). Mémorisez ces codes : vous les rencontrerez.

EntryPoint v0.6 et v0.7

v0.6 a été lancé en mars 2023 à l’adresse 0x5FF1…2789. Il fonctionnait, mais présentait trois problèmes récurrents : un seul bloc paymasterAndData confondant trois dimensions de gaz, un empaquetage initCode peu pratique et un calcul des frais de gaz qui faisait payer trop cher les émetteurs. v0.7 a corrigé ces trois problèmes.

Voici les principaux changements de v0.7 :

v0.6 est toujours actif et utilisé : de nombreux portefeuilles n’ont pris en charge les modules compatibles avec v0.7 qu’à partir de la seconde moitié de 2024. Sur la plupart des chaînes, les deux versions d’EntryPoint coexistent pendant des années.

Paymasters : qui paie les frais de gaz ?

Un paymaster est un contrat qui immobilise une mise en ETH auprès d’EntryPoint et accepte de couvrir les frais de gaz des UserOps conformes à sa politique. Trois types dominent :

La fonction validatePaymasterUserOp du paymaster s’exécute pendant la phase de validation d’EntryPoint. Si elle est annulée, vous obtenez AA33. Si la mise est épuisée, EntryPoint la confisque et le bundler absorbe la perte — c’est pourquoi les bundlers tiennent des listes de réputation des paymasters. ERC-7562 formalise ces règles de réputation afin que le mempool des bundlers reste résistant au spam. Ces mêmes mécanismes expliquent pourquoi les bonnes pratiques de gestion des autorisations DeFi et du multisig s’appliquent aussi facilement à l’écosystème 4337 : mêmes menaces, nouvelle enveloppe.

Mempool alternatif public ou bundler privé

Il existe deux façons d’inclure une UserOp dans la blockchain.

Mempool alternatif public : les bundlers compatibles avec ERC-7562 diffusent les UserOps sur un réseau libp2p. Toute personne qui exécute un nœud Pimlico, Stackup, Alchemy, Etherspot ou Voltaire peut récupérer la vôtre. Cette approche est sans permission et résistante à la censure, mais vous êtes exposé aux mêmes risques de MEV que pour les transactions Ethereum classiques : les searchers peuvent voir votre opération avant son inclusion.

Bundler privé : vous envoyez directement eth_sendUserOperation au point de terminaison RPC d’un fournisseur. Celui-ci simule, regroupe et soumet les opérations en privé, souvent via Flashbots. C’est plus rapide et protège contre le MEV, mais vous devez faire confiance au bundler pour qu’il ne censure pas votre opération et ne la devance pas. En 2026, la plupart des portefeuilles grand public utilisent des bundlers privés par défaut.

Ce compromis rappelle celui entre un mempool public et Flashbots Protect pour les transactions classiques. Si vous n’avez pas consulté le guide du cycle de vie d’une transaction depuis l’époque de la L1, il explique ce qui change lorsque le bundler intervient.

Agrégateurs, adoption et coût total

Les agrégateurs sont des contrats qui valident des lots avec une seule vérification de signature. Leur principal cas d’usage est BLS : vous réunissez 50 UserOps signées avec BLS, agrégez leurs signatures en une seule vérification par appariement et économisez environ 95 % sur le coût en gaz des signatures. Leur adoption est lente, car créer des portefeuilles qui signent avec BLS est difficile et les économies de gaz ne deviennent intéressantes qu’à grande échelle. À la mi-2026, moins de 1 % des UserOps du réseau principal utilisent des agrégateurs.

Chiffres d’adoption (T1 2026, d’après bundlebear.com) : environ 380 millions de UserOps cumulées sur toutes les chaînes. Base, Polygon et Arbitrum représentent la majorité. La part du réseau principal est d’environ 6 à 8 % : c’est la plus faible en volume, mais la plus élevée en valeur transférée. Coinbase Smart Wallet, Farcaster et Argent dominent les usages grand public.

Surcoût : une UserOp v0.7 coûte environ 30 000 à 40 000 unités de gaz de plus que la transaction EOA équivalente. Ce surcoût vient de la boucle d’EntryPoint, de la validation et de la gestion du lot. Sur le réseau principal, à 20 gwei, cela représente une fraction de dollar par opération. Le déploiement d’un compte pour la première fois via factoryData ajoute environ 250 000 unités de gaz. Sur les L2, où les données d’appel constituent le principal coût, le surcoût en pourcentage reste à un chiffre. Les UserOps sponsorisées transfèrent ce coût à la dApp : c’est pourquoi les applications grand public proposent des transactions gratuites, contrairement aux applications DeFi sérieuses. Le guide général sur les frais de transaction explique comment ce surcoût se répercute sur différents marchés de frais.

En bref : ERC-4337 repose sur six rôles (expéditeur, UserOp, bundler, EntryPoint, paymaster et agrégateur), une structure, deux adresses EntryPoint à retenir et un surcoût d’environ 30 à 40 k unités de gaz. En contrepartie, il permet d’utiliser des schémas de signature arbitraires, de parrainer les frais de gaz, de regrouper des opérations et d’employer des nonces parallèles. La troisième partie de cette série porte sur EIP-7702, la voie parallèle de Pectra qui permet à votre EOA existant d’utiliser ces mêmes mécanismes sans changer d’adresse.


À lire aussi

Portefeuilles, frais de gas et autorisations : les trois notions que tout utilisateur de DeFi doit comprendre

Portefeuilles, frais de gas et autorisations : les trois notions que tout utilisateur de DeFi doit comprendre

Avant d’échanger, de prêter ou de faire du farming, vous devez comprendre les trois éléments fondamentaux dont dépend toute interaction DeFi : votre portefeuille, les frais de gas et les autorisations de token.

8 min de lecture
Comptes, contrats et EVM : comment Ethereum exécute réellement les transactions

Comptes, contrats et EVM : comment Ethereum exécute réellement les transactions

Ethereum remplace le portefeuille UTXO de Bitcoin par une immense table de comptes et une machine à pile dont l’exécution est mesurée en gas. Voici comment fonctionnent l’état, les opcodes et un transfert ERC-20.

12 min de lecture
Mécanismes du gas sur Ethereum : EIP-1559, frais de priorité et frais des blobs après Dencun

Mécanismes du gas sur Ethereum : EIP-1559, frais de priorité et frais des blobs après Dencun

Comment fonctionnent réellement les frais de gas sur Ethereum en 2026 : l’enchère de frais de base d’EIP-1559, les pourboires de priorité et le marché indépendant des blobs, créé avec Dencun et développé par Pectra.

11 min de lecture

Rejoignez notre newsletter

Recevez une mise à jour amicale une fois par mois. Pas de spam, juste les dernières nouvelles de Zelcore.

Rejoignez notre newsletter