BlockPulseNews
Définition

UserOperation : définition

Aussi appelé : UserOp

Une UserOperation, ou UserOp, est une pseudo-transaction définie par le standard ERC-4337 : elle décrit ce qu'un portefeuille smart contract veut exécuter, puis un bundler la regroupe avec d'autres et la soumet au contrat EntryPoint dans une transaction normale.

Thème : Ethereum et smart contracts

UserOperation : comment ça marche ?

Sur Ethereum, seules les adresses contrôlées par une clé privée peuvent lancer une transaction. ERC-4337 contourne cette limite sans modifier le protocole : l'utilisateur d'un smart contract wallet signe une UserOperation, un objet qui contient notamment l'adresse du compte, l'appel à effectuer, un nonce, les limites de gas et une signature dont le format est libre. Cet objet est envoyé dans un mempool alternatif dédié, et non dans le mempool classique.

Des acteurs appelés bundlers collectent ces UserOps, les vérifient par simulation, puis les soumettent en lot au contrat EntryPoint. Celui-ci demande au compte de valider la signature selon ses propres règles, puis exécute l'opération. Un paymaster peut éventuellement payer le gas à la place de l'utilisateur, ou l'accepter dans un autre token. C'est ce qui permet des fonctions comme la récupération sociale, les clés de session ou les transactions sans ETH.

Un exemple concret

Alice utilise un portefeuille smart contract qui accepte une signature par empreinte biométrique de son téléphone. Elle veut acheter un NFT. Son application crée une UserOp, la signe avec cette clé, et l'envoie à un bundler. Le bundler l'intègre dans une transaction vers l'EntryPoint, et un paymaster de l'application prend en charge les frais.

Les risques à connaître

Les UserOps dépendent de l'infrastructure ERC-4337 : bundlers, paymasters et contrats EntryPoint. Une faille dans la logique de validation du compte peut permettre à un tiers de faire exécuter des opérations. Les portefeuilles smart contract restent plus récents et moins éprouvés que les comptes classiques.

À ne pas confondre avec

  • TX : Une transaction classique est signée par une clé privée et traitée directement par le protocole, alors qu'une UserOp doit être emballée par un bundler dans une transaction.
  • Account Abstraction : L'account abstraction est le concept global des comptes programmables, alors que la UserOp est l'objet concret que ces comptes signent dans ERC-4337.
  • Bundler : Le bundler est l'acteur qui collecte et soumet les UserOps, pas l'opération elle-même.

Questions fréquentes sur UserOperation

Une UserOperation est-elle une vraie transaction ?

Pas directement. C'est une demande signée qui ne devient effective qu'une fois incluse par un bundler dans une transaction Ethereum adressée au contrat EntryPoint.

Qui paie le gas d'une UserOperation ?

Par défaut, le compte smart contract de l'utilisateur rembourse le bundler. Un paymaster peut toutefois prendre ces frais en charge ou les accepter dans un autre token.

Termes liés

Dans le même thème : Ethereum et smart contracts

Tous les termes du thème Ethereum et smart contracts →

À lire

L'actualité : Ethereum et smart contracts

Les derniers articles de BlockPulseNews sur ce sujet.

Approfondir avec l'Académie : Ethereum en Profondeur Un module gratuit, en leçons courtes et quiz, pour maîtriser ce thème pas à pas.
Découvrir le module

Les autres termes en U

← Tout le lexique crypto de A à Z