Aller au contenu

Abstraction de compte

Comprendre l'abstraction de compte Ethereum avec les smart accounts ERC-4337, les versions d'EntryPoint, les UserOperations, bundlers, paymasters, canaux de nonce, phases de validation et d'execution, delegation EIP-7702 et risques de frais et de recuperation.

Mis à jour

À des fins éducatives uniquement ; ne constitue ni un conseil en investissement ni une recommandation d’investissement. Les investissements peuvent entraîner des pertes.

Reponse directe

L’abstraction de compte rend programmables les regles d’autorisation et d’execution d’un compte. Sur Ethereum, ERC-4337 la met en oeuvre sans modifier le type de transaction du consensus : un portefeuille envoie une UserOperation via une infrastructure RPC dediee, un bundler regroupe une ou plusieurs operations dans une transaction normale adressee a un EntryPoint versionne, puis le smart account valide et execute sa propre operation. Recuperation, passkeys, cles de session, plafonds de depense, traitement par lot et parrainage des frais sont des fonctions du compte ou du service construites sur ce flux, pas des garanties automatiques d’ERC-4337.

ERC-1271 normalise pour sa part la validation par un contrat d’une signature de message, tandis qu’EIP-7702 permet a un compte externe (EOA) de deleguer l’execution a du code. Ces mecanismes peuvent interagir, mais ils ne partagent ni interface unique, ni nonce, ni deploiement, ni modele de securite. L’abstraction de compte ne supprime pas les moyens d’authentification, le cout du gas, le risque des contrats ou la necessite de verifier exactement la chaine et l’implementation.

Flux ERC-4337 en sept etapes

  1. Figer l’environnement : chainId, implementation du smart account et controles de mise a niveau, factory, version, adresse et hash du code deploye d’EntryPoint, prise en charge par le bundler et activation d’EIP-7702 sur la chaine. Une adresse valable pour une version ou une chaine n’est pas une constante universelle.
  2. Construire l’operation correspondant a la version. Les champs logiques actuels comprennent sender, nonce, factory, factoryData, callData, callGasLimit, verificationGasLimit, preVerificationGas, maxFeePerGas, maxPriorityFeePerGas, les champs facultatifs du paymaster et signature. EntryPoint recoit on-chain une representation compacte ; les appels cibles sont encodes dans le callData defini par le compte, non dans un champ cible universel.
  3. Lier l’autorisation au bon domaine. Le userOpHash couvre l’operation hors signature et la lie a EntryPoint et a la chaine. Le validateUserOp du compte verifie proprietaire, multisignature, passkey, session ou autre politique. ERC-1271 isValidSignature est une interface distincte de signature contractuelle ; un aggregator facultatif peut valider des signatures agregees. Le tuple d’autorisation EIP-7702 est fourni separement de la UserOperation.
  4. Prouver la capacite de payer. Le compte peut prefinancer par son solde EntryPoint, ou un paymaster accepter conditionnellement la charge sur son propre depot. Il peut parrainer, facturer un token, appliquer des listes ou quotas et executer postOp ; ERC-4337 ne fixe aucune de ces regles commerciales. Le stake soutient validation et reputation, tandis que le depot paie le gas.
  5. Estimer et soumettre via le RPC ERC-7769. Le bundler valide a reception, avant selection puis lors de la construction du lot. ERC-7562 limite opcodes et acces au stockage pendant la validation et permet des controles de reputation contre le deni de service. Cette simulation verifie admission et paiement ; une simulation distincte de l’appel complet est necessaire pour anticiper l’execution metier.
  6. Le bundler appelle handleOps. EntryPoint effectue le deploiement autorise, les validations du compte et du paymaster, les controles de prefinancement et l’agregation facultative avant execution. Une validation echouee empeche l’operation ; l’appel cible peut encore revert apres admission valide et consommer du gas. Le rollback atomique ou le succes partiel d’un lot interne depend du code d’execution du compte.
  7. Reconcilez recus et etat. Rapprochez recu UserOperation, transaction du lot, evenements EntryPoint, deploiement, evenements cibles, gas reel, facturation en tokens, remboursement et soldes finaux. Surveillez ensuite canaux de nonce, proprietaires, recuperation, revocation des sessions, modules, mises a niveau, solutions de repli bundler/paymaster, reorganisations et migration ou redelegation EIP-7702.

Quatre exemples calcules

  • Enveloppe de gas simplifiee. Une operation reserve 120,000 de gas d’execution, 90,000 de validation du compte, 45,000 de validation du paymaster, 40,000 de prevalidation et 30,000 de post-operation paymaster : 120,000 + 90,000 + 45,000 + 40,000 + 30,000 = 325,000 gas. Avec maxFeePerGas = 30 gwei, le plafond simplifie vaut 325,000 × 30 gwei = 0.009750 ETH. Si l’usage reel facturable atteint 210,000 gas a 22 gwei, le cout est 0.004620 ETH. Version EntryPoint, penalites, frais de donnees L1 et tarification du rollup peuvent modifier les montants : c’est un budget, non une formule universelle de prefinancement.
  • Canal de nonce parallele. Avec une 192-bit key et une 64-bit sequence, la cle 7 et la sequence 42 codent nonce = (7 << 64) | 42 = 129127208515966861354 = 0x7000000000000002a. Apres inclusion, ce canal attend 43 ; rejouer 42 echoue. Une autre cle peut avoir une sequence independante selon le compte et le bundler.
  • Capacite du paymaster. Un paymaster a depose 0.50 ETH et chaque operation exige une garantie maximale de 0.03 ETH. Il couvre floor(0.50 / 0.03) = 16 operations, reserve 0.48 ETH et conserve 0.02 ETH. Une dix-septieme demande plus de depot ou une garantie moindre. Le stake ne remplace pas ce depot de frais.
  • Revert d’execution apres admission. Une operation reserve jusqu’a 0.0060 ETH ; la validation reussit, mais la cible revert apres 180,000 gas × 25 gwei = 0.0045 ETH. Les changements d’etat de la cible sont annules, mais le compte ou paymaster doit encore 0.0045 ETH ; les 0.0015 ETH inutilises suivent les regles applicables de reglement et de penalite. Une simulation reussie ne promet ni succes metier, ni inclusion, ni finalite.

Risques et controles

  • Une chaine, adresse, version ou hash du code EntryPoint errone peut invalider ou detourner l’operation.
  • Une signature sans liaison au domaine de la chaine et d’EntryPoint peut permettre un rejeu.
  • Factory, adresse contrefactuelle, initialisation ou salt peuvent etre substitues ou mal calcules.
  • Une delegation EIP-7702 peut orienter un EOA vers du code malveillant disposant d’une large autorite.
  • Le front-running ou la repetition de l’initialisation peuvent detourner ou corrompre le compte.
  • Une mise a niveau de proxy ou redelegation peut entrer en conflit avec le stockage existant.
  • Un administrateur de mise a niveau ou de modules compromis peut remplacer le comportement du compte.
  • Des failles de proprietaire, multisignature, passkey ou ERC-1271 peuvent autoriser le vol ou bloquer les fonds.
  • Seuils, delais, gardiens et voies d’annulation de recuperation peuvent echouer ou etre compromis.
  • Les cles de session peuvent depasser cible, token, montant, duree ou fonction autorises.
  • Les canaux de nonce peuvent entrer en collision, presenter des trous, etre rejoues ou bloquer des operations dependantes.
  • Une panne de l’aggregator ou de l’agregation peut immobiliser des operations valides.
  • Les bundlers peuvent censurer, etre indisponibles, appliquer une politique locale ou refuser un mempool alternatif.
  • Les UserOperations publiques peuvent exposer l’intention a la correlation, au front-running et au MEV.
  • Un changement d’etat apres simulation peut invalider l’operation pendant la construction du lot.
  • Le paymaster peut refuser le service, epuiser son depot ou echouer dans postOp.
  • La facturation en tokens comporte risques de change, d’allowance, de spread et de marge du service.
  • Sous-estimer le gas peut provoquer un revert ; des limites excessives augmentent reservation ou penalite.
  • Le lot du compte peut autoriser un succes partiel alors que l’utilisateur attendait un rollback atomique.
  • Failles du protocole cible, front ends hostiles, reorganisations et faible finalite restent hors de l’abstraction de compte.

Idees recues

  • “L’abstraction de compte supprime les cles privees.” Elle change la politique de credentials ; un moyen d’authentification doit toujours autoriser les actions.
  • “Un paymaster rend le gas gratuit.” Le gas natif reste paye et l’utilisateur, le sponsor ou le service en supporte le cout.
  • “La simulation du bundler garantit le succes.” L’admission ne garantit ni execution, ni inclusion, ni finalite.
  • “ERC-1271, ERC-4337 et EIP-7702 sont la meme interface.” Ils traitent de problemes distincts de signature, de flux et de delegation.
  • “Chaque chaine, portefeuille et EntryPoint est compatible et plus sur.” Support, versions, deploiements, code, modules et controles doivent etre verifies separement.

Sujets connexes

Sources

Navigation

Rechercher dans le wiki...