Abstraction de comptes
Les utilisateurs interagissent sur Ethereum en utilisant des . C'est la seule façon de démarrer une transaction ou d'exécuter un contrat intelligent. Ce qui restreint la façon dont les utilisateurs peuvent interagir sur Ethereum. Par exemple, il est difficile d'exécuter des lots de transactions si les utilisateurs ne disposent pas d'un solde d'ETH suffisant pour couvrir les frais de gaz.
L'abstraction de compte est un moyen de résoudre ces problèmes car elle offre aux utilisateurs plus de flexibilité et donc plus de sécurité pour une meilleure expérience avec leur compte. Cela peut se produire en mettant à niveau les EOA(opens in a new tab) afin qu'ils puissent être contrôlés par des contrats intelligents, ou en mettant à niveau les contrats intelligents(opens in a new tab) pour qu'ils puissent initier des transactions. Ces deux options nécessitent des modifications du protocole Ethereum. Il existe également une troisième voie qui consiste à ajouter un second système de transaction distinct(opens in a new tab) fonctionnant parallèlement au protocole existant. Indépendamment du procédé, le résultat est l'accès à Ethereum via des portefeuilles de contrats intelligents, soit nativement pris en charge par le protocole existant, soit par l'intermédiaire d'un réseau de transactions complémentaires.
Les portefeuilles de contrats intelligents offrent de nombreux avantages à l'utilisateur, notamment :
- définir ses propres règles de sécurité flexibles
- restaurer son compte en cas de perte des clés
- partager la sécurité de son compte sur des appareils ou avec des personnes de confiance
- payer les frais de gaz pour quelqu'un d'autre, ou faire payer les vôtres par quelqu'un d'autre
- faire des lots de transaction (par exemple, approuver et exécuter un swap en une seule fois)
- plus de possibilités pour les dApps et les développeurs de portefeuilles d'innover en matière d'expérience utilisateur
Ces avantages ne sont pas pris en charge de manière native aujourd'hui, car seuls les comptes externes () peuvent initier des transactions. Les EOA sont simplement des paires de clés publiques-privées. Ils fonctionnent comme ceci :
- si vous avez la clé privée, vous pouvez faire tout ce que vous voulez dans le respect des règles de la Machine virtuelle Ethereum (EVM)
- si vous n'avez pas la clé privée, vous ne pouvez rien faire.
Si vous perdez vos clés, il sera impossible de les récupérer. Par ailleurs, les clés volées permettent aux voleurs d'accéder instantanément à tous les fonds disponibles sur un compte.
Les portefeuilles de contrats intelligents sont la solution à ces problèmes, mais ils sont aujourd'hui difficiles à programmer car, en fin de compte, toute logique qu'ils implémentent doit être traduite en un ensemble de transactions EOA avant de pouvoir être traitée par Ethereum. L'abstraction de compte permet aux contrats intelligents d'initier eux-mêmes des transactions, de sorte que toute logique que l'utilisateur souhaite mettre en œuvre peut être codée dans le portefeuille du contrat intelligent lui-même et exécutée sur Ethereum.
Finalement, l'abstraction de compte améliore le support des portefeuilles de contrats intelligents, les rendant plus faciles à développer et plus sûrs à utiliser. En fin de compte, avec l'abstraction de compte, les utilisateurs peuvent profiter de tous les avantages d'Ethereum sans avoir besoin de connaître ou de se soucier de la technologie sous-jacente.
En finir avec les phrases de récupération
Les comptes d'aujourd'hui sont sécurisés en utilisant des clés privées calculées à partir de phrases de récupération. Toute personne ayant accès à une phrase de récupération peut facilement découvrir la clé privée protégeant un compte et gagner l'accès à tous les actifs qu'il contient. Si une clé privée et une phrase de récupération sont perdues, elles ne pourront jamais être récupérées et les actifs qu'elles contrôlent seront figés à jamais. La sécurisation de ces phrases de récupération est compliquée, même pour les utilisateurs expérimentés, et l'hameçonnage de phrases de récupération est l'une des méthodes les plus courantes utilisées pour arnaquer les utilisateurs.
L'abstraction de compte résoudra ce problème en utilisant un contrat intelligent pour détenir les actifs et autoriser les transactions. Ces contrats intelligents peuvent ensuite être agrémentés de logiques personnalisées pour les rendre aussi sécurisés et adaptés à l'utilisateur que possible. Au bout du compte, vous utiliserez toujours des clés privées pour contrôler l'accès à votre compte, mais avec des filets de sécurité qui les rendront plus faciles et plus sûres à gérer.
Par exemple, des clés de secours peuvent être ajoutées à un portefeuille afin que si vous perdiez ou exposiez accidentellement votre clé principale, elle puisse être remplacée par une nouvelle clé sécurisée de secours. Vous pourriez sécuriser chacune de ces clés différemment ou les répartir entre des gardiens de confiance. Cela rend beaucoup plus difficile pour un voleur de prendre le contrôle total de vos fonds. De même, vous pouvez ajouter des règles au portefeuille pour réduire l'impact en cas de compromission de votre clé principale, par exemple vous pourriez autoriser les transactions de faible valeur à être vérifiées par une seule signature, tandis que les transactions de plus grande valeur nécessitent l'approbation de plusieurs signataires authentifiés. Il existe d'autres moyens par lesquels les portefeuilles de contrats intelligents peuvent vous aider à déjouer les voleurs, par exemple, une liste de confiance peut être utilisée pour bloquer toutes les transactions à moins qu'elles ne soient destinées à une adresse de confiance ou vérifiées par plusieurs de vos clés pré-approuvées.
Exemples de logiques de sécurité pouvant être intégrées dans un portefeuille de contrat intelligent :
- Autorisation multi-signatures: vous pouvez partager les identifiants d'autorisation entre plusieurs personnes ou appareils de confiance. Alors, le contrat peut être configuré de telle sorte que les transactions d'une valeur supérieure à une certaine valeur prédéfinie nécessitent l'autorisation d'une certaine proportion (par exemple 3/5) des parties de confiance. Par exemple, les transactions de valeur élevée pourraient nécessiter l'approbation à la fois d'un appareil mobile et d'un portefeuille matériel, ou les signatures de comptes distribués à des membres de la famille de confiance.
- Gel de compte : si un appareil est perdu ou compromis, le compte peut être verrouillé depuis un autre appareil autorisé, protégeant ainsi les actifs de l'utilisateur.
- Récupération de compte : vous avez perdu un appareil ou oublié un mot de passe ? Dans le paradigme actuel, cela signifie que vos actifs pourraient être gelés à jamais. Avec un portefeuille de contrats intelligents, vous pouvez mettre en place une liste de confiance des comptes pouvant autoriser de nouveaux appareils ou réinitialiser les accès.
- Définir des limites de transaction: Spécifiez des seuils quotidiens pour la valeur maximale pouvant être transférée depuis le compte par jour/semaine/mois. Cela signifie que si un attaquant prend le contrôle de votre compte, il ne pourra pas tout vider d'un coup, et vous aurez l'occasion de geler et de réinitialiser l'accès.
- Créer une liste de confiance : N'autoriser les transactions qu'à une liste restreinte d'adresses que vous savez sûres. Cela signifie que même si votre clé privée était volée, l'attaquant ne pourrait envoyer des fonds qu'à des comptes de destination faisant partie de votre liste. Ces listes des adresses autorisées nécessiteraient plusieurs signatures pour être modifiées, de sorte qu'un attaquant ne pourrait pas ajouter sa propre adresse à la liste à moins d'avoir accès à plusieurs de vos clés de sauvegarde.
Meilleure expérience utilisateur
L'abstraction de compte permet une meilleure expérience utilisateur globale ainsi qu'une sécurité améliorée car elle ajoute la prise en charge des portefeuilles de contrats intelligents. au niveau du protocole. La raison la plus importante est que cela offrira aux développeurs de contrats intelligents, de portefeuilles et d’applications beaucoup plus de liberté pour innover en matière d’expérience utilisateur d’une manière que nous ne pouvons peut-être pas encore anticiper. Quelques améliorations évidentes qui accompagneront l'abstraction de compte incluent le regroupement des transactions pour plus de rapidité et d'efficacité. Par exemple, un simple échange devrait être une opération en un clic, mais aujourd'hui, il faut signer plusieurs transactions pour approuver les dépenses de chaque jeton individuellement avant que l'échange ne soit exécuté. L'abstraction de compte élimine cette friction en autorisant le regroupement des transactions. De plus, la transaction groupée pourrait approuver précisément la bonne valeur de jetons requise pour chaque transaction, puis révoquer les approbations après la finalisation de la transaction, offrant ainsi une sécurité supplémentaire.
La gestion du gaz est également nettement améliorée grâce à l'abstraction de comptes. Non seulement les applications peuvent proposer de payer les frais de gaz de leurs utilisateurs, mais les frais de gaz peuvent être payés en jetons autres que l'ETH, ce qui évite aux utilisateurs d'avoir à maintenir un solde d'ETH pour financer les transactions. Cela fonctionnerait en échangeant les jetons de l'utilisateur contre de l'ETH à l'intérieur du contrat, puis en utilisant l'ETH pour payer le gaz.
Les sessions de confiance sont aussi susceptibles de transformer l'expérience utilisateur, en particulier pour des applications comme les jeux, où un grand nombre de petites transactions doivent être approuvées dans un court laps de temps. L'approbation individuelle de chaque transaction perturberait l'expérience du jeu, mais l'approbation permanente n'est pas sécurisée. Un portefeuille de contrats intelligents, pourrait approuver certaines transactions lors d'un temps fixe jusqu'à une certaine valeur spécifique, ou seulement vers certaines adresses.
Il est également intéressant de réfléchir à la manière, dont les achats pourraient évoluer avec l’abstraction du compte. Aujourd'hui, chaque transaction doit être approuvée et exécutée depuis un portefeuille préfinancé avec une quantité suffisante du bon jeton. Grâce à l'abstraction des comptes, l'expérience pourrait ressembler davantage aux achats en ligne habituels, où l'utilisateur remplit un « panier » d'articles et clique une seule fois pour les acheter en même temps, avec toute la logique requise étant assurée par le contrat, non par l'utilisateur.
Ce ne sont là que quelques exemples, de la manière dont l’expérience utilisateur pourrait être améliorée grâce à l’abstraction des comptes, mais il y en a bien d’autres que nous n’avons pas encore imaginés. L'abstraction de compte libère les développeurs des contraintes des EOA actuels, leur permet d'intégrer les bons aspects du web2 dans le web3 sans sacrifier leur propre sécurité, et pirater de manière créative de nouvelles expériences utilisateur inventives.
Comment l'abstraction des comptes sera-t-elle mise en œuvre ?
Aujourd'hui, les portefeuilles de contrats intelligents existent mais sont difficiles à mettre en œuvre car l'EVM ne les prend pas en charge. À la place, ils s’appuient sur un code relativement complexe autour des transactions standard d'Ethereum. Ethereum peut changer cela en permettant aux contrats intelligents d'initier des transactions, adoptant une logique nécessaire dans les contrats intelligents d'Ethereum plutôt que hors chaîne. L'addition de logique dans les contrats intelligents augmente également la décentralisation d'Ethereum, car elle élimine le besoin de « relais » gérés par les développeurs de portefeuilles, pour traduire les messages signés par l'utilisateur lors des transactions régulières Ethereum.
Progrès actuels
Des portefeuilles de contrats intelligents sont déjà disponibles, mais d'autres améliorations sont nécessaires pour les rendre aussi décentralisés et sans autorisation que possible. L'EIP-4337 est une proposition mûre qui ne nécessite aucune modification du protocole Ethereum, il est donc possible qu'elle soit mise en œuvre rapidement. Toutefois, les mises à jour qui modifient le protocole d'Ethereum ne sont actuellement pas en cours de développement actif, de sorte que ces changements peuvent prendre beaucoup plus de temps à être déployés. Il est également possible que l'abstraction des comptes soit suffisamment bien réalisée par l'EIP-4337 pour qu'aucun changement de protocole ne soit jamais nécessaire.
Complément d'information
- erc4337.io(opens in a new tab)
- Débat sur l'abstraction des comptes à Devcon Bogota(opens in a new tab)
- "Pourquoi l'abstraction de compte est une innovation majeure pour les dapps" - Devcon Bogota(opens in a new tab)
- « L'abstraction de compte, ELI5 » - Devcon Bogota(opens in a new tab)
- Les notes de Vitalik sur la « Route vers l'abstraction de comptes »(opens in a new tab)
- Article de blog de Vitalik sur les portefeuilles à récupération sociale(opens in a new tab)
- Notes EIP-2938(opens in a new tab)
- Documentation EIP-2938(opens in a new tab)
- Notes EIP-4337(opens in a new tab)
- Documentation EIP-4337(opens in a new tab)
- Documentation EIP-2771(opens in a new tab)
- « Les bases de l'abstraction de comptes » -- Qu'est-ce que l'abstraction de comptes ? Partie 1(opens in a new tab)