🤖 NOUVEAU : « Quicknode » : un guide pratique sur l'IA 10 recettes éprouvées pour le codage en IA agents.
Voir les recettes     Guide sur l'abstraction de compte : comment fonctionne l'ERC-4337 sur l'EVM | QuicknodeCertifié SOC 2 Type II · ISO 27001
Réponses>En savoir plus sur les portefeuilles et l'identité>Qu'est-ce que l'abstraction de compte ? Qu'est-ce que l'abstraction de compte ?
// Tags
extraction de données de compteERC-4337
En bref : l’abstraction de compte est une mise à niveau de la blockchain qui remplace le modèle de compte rigide à clé unique par des portefeuilles programmables sous forme de contrats intelligents, prenant en charge une logique de vérification personnalisée. Les comptes traditionnels détenus en externe (EOA) sont contrôlés par une seule clé privée : si vous la perdez, vous perdez tout ; si vous la divulguez, tout peut vous être volé. L’abstraction de compte permet aux contrats intelligents de fonctionner comme des comptes utilisateurs, offrant ainsi des fonctionnalités telles que la récupération via les réseaux sociaux (vos amis peuvent vous aider à retrouver l’accès), l’autorisation par signatures multiples, les transactions groupées, le parrainage des frais de gaz (une autre personne paie vos frais), les clés de session (clés à autorisation limitée pour des actions spécifiques) et les limites de dépenses. La norme ERC-4337 définit le fonctionnement de ces portefeuilles basés sur des contrats intelligents sur Ethereum et les chaînes compatibles EVM sans nécessiter de modifications du protocole de base.
L'explication simple
Utiliser une blockchain aujourd’hui, c’est comme avoir un compte bancaire dont la seule sécurité réside dans un mot de passe unique, sans aucune option de récupération. Si vous oubliez ce mot de passe, votre argent est perdu à jamais. Si quelqu’un le devine, il s’empare de tout. Il n’y a pas de bouton « mot de passe oublié », pas de service client, pas d’authentification à deux facteurs, pas de limites de dépenses. Chaque transaction est autorisée par une seule clé cryptographique, et c’est là tout le modèle de sécurité.
L’abstraction de compte change la donne en rendant les comptes programmables. Au lieu d’une seule clé contrôlant tout, c’est un contrat intelligent qui gère le compte et peut mettre en œuvre toute logique de sécurité et d’authentification souhaitée par le développeur. Vous souhaitez exiger deux clés sur trois pour approuver une transaction ? C’est possible. Vous souhaitez permettre à des amis de confiance de voter pour récupérer votre compte si vous perdez votre clé ? C’est possible. Vous souhaitez fixer une limite de dépenses quotidienne qui n’autorise que les petites transactions sans autorisation supplémentaire ? C’est possible. Vous souhaitez autoriser un jeu à approuver des transactions en votre nom pendant une heure sans avoir à redemander l’autorisation à chaque fois ? C’est possible.
Le terme « abstraction » dans ce nom fait référence à la séparation entre le concept de compte et un mécanisme d'authentification spécifique. Aujourd'hui, les notions de « compte » et de « clé privée » sont indissociables. Avec l'abstraction de compte, le compte est un contrat intelligent, et la logique d'authentification dépend de ce que le développeur du contrat met en place.
Le problème des comptes traditionnels
Ethereum (ainsi que la plupart des chaînes compatibles EVM) comporte deux types de comptes. Les comptes détenus en externe (EOA) sont contrôlés par une clé privée et constituent l'interface que la plupart des utilisateurs utilisent via MetaMask, Phantom ou tout autre portefeuille standard. Les comptes de contrat sont des contrats intelligents qui contiennent du code et ne peuvent être déclenchés que par des transactions provenant d'EOA ou d'autres contrats.
Les EOA présentent plusieurs limites fondamentales liées à l’abstraction d’adresse. Il n’y a pas de récupération de clé. Si vous perdez votre clé privée ou votre phrase de récupération, aucun mécanisme de récupération n’est intégré au protocole. Vos fonds sont bloqués à jamais. Chaque interaction de l’utilisateur avec la blockchain nécessite qu’il détienne le token natif (ETH sur Ethereum) pour payer les frais de gaz, ce qui crée une expérience d’onboarding désagréable pour les nouveaux utilisateurs qui souhaitent simplement essayer une dapp mais ne possèdent pas encore de cryptomonnaie.
Chaque transaction nécessite une validation manuelle. Il n’est pas possible de déléguer une autorisation limitée à une dapp. Si vous jouez à un jeu sur la blockchain, vous devez valider chaque action du jeu individuellement, ce qui rend l’expérience utilisateur frustrante. Les transactions ne peuvent pas être regroupées de manière native. Valider un token puis l’échanger nécessite deux transactions distinctes, avec deux signatures distinctes et deux paiements de gas distincts.
Ces limites comptent parmi les principales raisons pour lesquelles les applications blockchain semblent peu pratiques par rapport aux logiciels traditionnels. L'abstraction des comptes permet de les éliminer.
Fonctionnement de l'ERC-4337
ERC-4337 est la norme qui permet l'abstraction des comptes sur les chaînes « Ethereum » et EVM sans nécessiter de hard fork ni de modification au niveau du protocole. Elle introduit un pipeline de transactions parallèle qui fonctionne en parallèle avec celui existant.
Le portefeuille de contrats intelligents correspond au compte de l'utilisateur. Contrairement à un compte EOA, les fonds et les actifs de l'utilisateur sont détenus par un contrat intelligent qui définit sa propre logique de validation. Le contrat peut exiger une signature unique, plusieurs signatures, une vérification biométrique effectuée depuis une enclave de confiance, ou toute autre condition programmée par le développeur.
Les opérations utilisateur (UserOps) remplacent les transactions traditionnelles. Au lieu de signer directement une transaction, l'utilisateur signe une UserOp, qui est une structure de données décrivant l'action qu'il souhaite effectuer. L'UserOp est envoyée vers un mempool distinct (le mempool UserOp), et non vers le mempool standard des transactions.
Les « bundlers » sont des nœuds qui collectent les UserOps dans le mempool UserOp, les regroupent en une seule transaction standard « Ethereum » et soumettent cette transaction au réseau. Le « bundler » paie les frais de gaz liés à la transaction groupée et est remboursé par les portefeuilles des contrats intelligents (ou leurs responsables financiers) lors de l’exécution. Les « bundlers » s’apparentent aux « block builders » dans la chaîne d’approvisionnement MEV : ils agrègent les intentions des utilisateurs et les soumettent à la chaîne de manière efficace.
Le contrat EntryPoint est un contrat intelligent de type « singleton » déployé sur chaque chaîne EVM qui coordonne l'exécution des UserOps. Lorsqu'un « bundler » soumet un « bundle », le contrat EntryPoint traite chaque UserOp en appelant la fonction de validation du portefeuille du contrat intelligent de destination, en vérifiant que le portefeuille approuve l'opération, en exécutant celle-ci et en gérant le remboursement du gas.
Les « paymasters » sont des contrats intelligents facultatifs qui peuvent prendre en charge les frais de gaz pour les UserOps. Un développeur de dApp peut déployer un « paymaster » qui paie les frais de gaz pour ses utilisateurs, ce qui évite à ces derniers de devoir détenir des ETH. Cela change la donne en matière d’intégration : un nouvel utilisateur peut interagir avec une dApp sans jamais avoir à acheter de cryptomonnaie, car la dApp prend en charge les coûts de transaction.
Ce que permet l'abstraction des comptes
La récupération sociale permet aux utilisateurs de désigner des « tuteurs » (amis de confiance, membres de la famille ou institutions) qui peuvent approuver collectivement un changement de clé si l'utilisateur en perd l'accès. Le contrat intelligent du portefeuille exige un seuil minimum d'approbations de la part des tuteurs (par exemple, 3 sur 5) pour remplacer la clé de signature par une nouvelle. Cela élimine le risque catastrophique lié à la perte d'une seule phrase de récupération.
Les clés de session permettent aux utilisateurs d'attribuer aux applications des clés temporaires dotées de droits d'accès limités. Au lieu d'approuver individuellement chaque transaction dans un jeu sur blockchain, vous pouvez créer une clé de session qui autorise le jeu à envoyer des transactions en votre nom pendant une durée définie (une heure, une session de jeu) et selon des contraintes spécifiques (uniquement des appels au contrat du jeu, dépense maximale de 0,1 ETH). À l'expiration de la session, la clé devient inutilisable.
Le regroupement des transactions permet aux utilisateurs d'approuver plusieurs actions en une seule opération. L'exemple classique est l'flow « approuver et échanger » ERC-20, qui nécessite actuellement deux transactions distinctes. Grâce à l'abstraction de compte, le portefeuille de contrats intelligents peut regrouper ces deux opérations en une seule UserOp : approuver le token et exécuter l'échange de manière atomique, ce qui permet d'économiser du gaz et de réduire les frictions.
Le paiement des frais de gaz par l'intermédiaire de « paymasters » permet aux applications de régler ces frais pour le compte de leurs utilisateurs, ou d'accepter le paiement des frais de gaz dans des tokens autres que l'ETH. Une application de stablecoin pourrait ainsi permettre à ses utilisateurs de payer les frais de gaz en USDC. Une plateforme de jeux pourrait quant à elle prendre entièrement en charge ces frais, en les considérant comme un coût d'acquisition d'utilisateurs. Cela élimine l'un des principaux obstacles à l'adoption généralisée de la blockchain.
Grâce à la multi-signature et à l'autorisation personnalisée, les portefeuilles peuvent exiger plusieurs validations pour les transactions de montant élevé, mettre en place des limites de dépenses qui déclenchent des contrôles de sécurité supplémentaires dès qu'un seuil est dépassé, ou utiliser n'importe quelle combinaison de facteurs d'authentification (signatures, données biométriques, clés matérielles, verrouillage temporel).
Implémentations actuelles
Plusieurs fournisseurs de portefeuilles se sont appuyés sur la norme ERC-4337. Safe (anciennement Gnosis Safe) est le portefeuille de contrats intelligents le plus utilisé, sécurisant plus de 100 milliards de dollars d’actifs. Conçu à l’origine pour la gestion de trésorerie multi-signature, Safe s’est développé pour prendre en charge l’intégralité de l’ flow UserOp de la norme ERC-4337. Coinbase Smart Wallet utilise l’abstraction de compte pour offrir une expérience d’inscription simplifiée, avec une authentification par clé de passe et la prise en charge des frais de gaz. Argent a développé un portefeuille utilisant l’abstraction de compte, doté d’une récupération via les réseaux sociaux, de limites de dépenses quotidiennes et d’une sécurité basée sur des tuteurs. Sequence propose un portefeuille utilisant l’abstraction de compte axé sur les jeux, avec des clés de session et une prise en charge des frais de gaz conçues pour les transactions en jeu.
Comment « Quicknode » prend en charge l'abstraction des comptes
La création et l'exploitation de portefeuilles basés sur l'abstraction de comptes nécessitent une infrastructure blockchain robuste. L'API Core de Quicknode fournit l'accès RPC dont les agrégateurs, les gestionnaires de paiements et les portefeuilles à contrats intelligents ont besoin pour soumettre et surveiller les UserOps sur les chaînes EVM. Des points de terminaison à faible latence garantissent un traitement rapide des UserOps et permettent aux applications de portefeuille d’afficher un état à jour. La Marketplace de Quicknode propose des intégrations d’agrégateurs et de gestionnaires de paiements qui simplifient le développement de portefeuilles AA. Pour les équipes qui développent une infrastructure AA personnalisée, l’ Streams de Quicknode permet de surveiller en temps réel l’exécution des UserOps, les événements EntryPoint et les changements d’état des portefeuilles.
Compte EOA et compte de contrat intelligent : quelle est la différence ?
L'abstraction de compte transforme votre portefeuille crypto, qui était auparavant un compte à clé unique géré en externe (EOA), en un compte de contrat intelligent programmable. Le tableau ci-dessous présente les changements apportés.
Dimension | Compte détenu par un tiers (EOA) | Compte de contrat intelligent |
|---|
Sous le contrôle de | Une seule clé privée | Logique de contrat programmable |
Rétablissement | Aucune : si vous perdez la clé, vos fonds sont perdus | Réinsertion sociale et tutelle possibles |
Gaz | L'utilisateur doit détenir le jeton natif. | Peut être financé par un payeur ou réglé sous d'autres formes |
Dosage | Une action par transaction | Plusieurs actions dans une seule UserOp |
Autorisations | Tout ou rien | Clés de session, limites de dépenses, signatures multiples |
Exemples | MetaMask, la plupart des portefeuilles classiques | Safe, Coinbase Smart Wallet, Argent |
La fonctionnalité d'abstraction de compte est-elle disponible aujourd'hui sur Ethereum ?
Oui. L’ERC-4337 a été mis en service sur Ethereum mainnet en mars 2023 sans hard fork, puisqu’il fonctionne entièrement via des contrats intelligents et un mempool UserOp distinct traité par des « bundlers ». Plus récemment, l’EIP-7702 permet aux EOA existants d’adopter temporairement les fonctionnalités d’un « smart-account », apportant ainsi les avantages de l’abstraction de compte aux portefeuilles que les utilisateurs emploient déjà . Les « bundlers » se comportent de manière très similaire aux « block builders » dans la chaîne d’approvisionnement MEV, en regroupant les intentions des utilisateurs avant leur soumission.
Foire aux questions
Qu'est-ce que l'abstraction de compte, en termes simples ?
L'abstraction de compte rend un compte blockchain programmable. Au lieu d'une seule clé privée contrôlant tout, c'est un contrat intelligent qui gère le compte et peut y ajouter des fonctionnalités telles que la récupération, les limites de dépenses, le traitement par lots et le « gas » sponsorisé.
Qu'est-ce que l'ERC-4337 ?
ERC-4337 est la norme « Ethereum » qui permet l'abstraction des comptes sans modifier le protocole de base. Elle introduit les UserOps, les «bundlers», un contrat EntryPoint singleton et des «paymasters» facultatifs, qui s'exécutent tous via des points de terminaison RPC standard.
Qu'est-ce qu'un « paymaster » ?
Un « paymaster » est un contrat intelligent facultatif qui prend en charge les frais de gaz pour les utilisateurs ou leur permet de payer ces frais avec des jetons autres que la cryptomonnaie native. C'est ce qui permet à un nouvel utilisateur d'interagir avec une dapp sans avoir à acheter d'ETH au préalable.
Puis-je récupérer un portefeuille de type « account abstraction » si je perds ma clé ?
Souvent, oui. Les portefeuilles basés sur des contrats intelligents peuvent intégrer un système de récupération sociale, dans lequel des tuteurs désignés approuvent un changement de clé, ce qui élimine le risque de défaillance lié à la phrase de récupération unique qui affecte les portefeuilles traditionnels. Pour en savoir plus, découvrez comment fonctionne la gestion des clés.
Ai-je besoin d'ETH pour utiliser un portefeuille de type « account abstraction » ?
Pas forcément. Si l'application intègre un « paymaster », celle-ci peut prendre en charge vos frais de gaz ou vous permettre de payer en stablecoin, ce qui vous permet d'effectuer des transactions sans détenir le jeton natif de la chaîne.
Pour en savoir plus