Cet article revoit les grands principes qui se cachent derrière l’abstraction du compte (ou Account Abstraction) pour en comprendre ses enjeux. Il passe en revue les comptes Ethereum et leurs limitations, apporte une définition simple de l’abstraction du compte, explique pourquoi nous en parlons tant aujourd’hui, ce que cela permet et donne un aperçu du futur de cette innovation.

Inspiré de l’excellente serie sur le sujet par Julien Niset d’Argent:  https://www.argent.xyz/blog/part-3-wtf-is-account-abstraction/.
Un grand merci à Disiaque, spolrot et filtertron pour leur relecture.

1. Les comptes Ethereum

Un compte Ethereum permet d’utiliser la blockchain. Il existe deux types de comptes : les comptes contrats (ou contract account ou smart-contracts) et les EOAs (Externally Owned Accounts ou compte à propriétaire externe). 

Les comptes contrats sont déployés sur Ethereum de manière immuable et permettent l’utilisation de la blockchain à travers leurs fonctions programmables. Les EOAs permettent d’interagir avec Ethereum et ses smart contracts via des wallets (e.g. Metamask) qui agissent comme des interfaces avec la blockchain.
Nous nous concentrons ici sur les EOAs : les comptes utilisateurs.

Un EOA possède les caractéristiques suivantes :

  • Balance: montant d’actifs sur le compte
  • Nonce: paramètre incrémental permettant de vérifier que les transactions s’effectuent dans le bon ordre
  • Address: suite hexadécimale de 42 caractères (0x…n) permettant l’identification du compte

À chaque EOA est assigné un signatairesigner »). C’est un objet cryptographique composé d’une paire de clefs (ou « keypair ») publique et privée :

  • La clef publique permet l’identification du wallet. C’est à partir de celle-ci que l’on dérive l’adresse publique du compte lors de sa création. (NB : les adresses Ethereum sont dérivés des 20 derniers octets du hash de la clef publique, en ajoutant ”0x” au début) 
  • La clef privée permet de signer des messages numériques et prouver que l’on est le détenteur du wallet i.e. prouver qu’on peut effectuer des transactions (par exemple envoyer de l’argent ou interagir  depuis ce compte.
  • NB : Il est possible de dériver la clef publique à partir de la clef privée suivant le modèle ECDSA, mais l’inverse est impossible.
C.f. Définition des comptes sur Ethereum-France (2017) https://www.ethereum-france.com/comptes-transactions-gaz-et-limites-de-gaz-par-bloc-sur-ethereum/ 

2. Limitations des comptes Ethereum

Aujourd’hui, sur Ethereum Mainnet, un EOA est indissociable du signataire et vice versa. Cela représente une limitation au niveau du protocole qui affecte l’expérience utilisateur et la sécurité des comptes de plusieurs manières :

  • Il existe une seule clef privée par compte ; perdre sa clef privée revient à perdre l’accès à son compte et tous ses actifs.
  • Protéger sa clef privée, en dissimulant les 12 ou 24 mots composant la seed phrase, est aussi sensible que complexe, même pour les utilisateurs avancés.
  • Le modèle de signature (ECDSA) est limité et non résistant à l’informatique quantique.
  • Ce même modèle de signature est rigide : il ne peut pas être modifié à la guise de l’utilisateur ou des applications.
  • Le compte doit payer du gas pour chaque transaction, dans le token natif (ETH). Cela limite l’expérience et la confidentialité des utilisateurs.

Résoudre ces limitations semble urgent pour plusieurs raisons : tout d’abord car l’informatique quantique se développe rapidement et pourrait remettre en cause la sécurité des comptes Ethereum (en rendant obsolète le modèle de signature ECDSA). Mais c’est aussi et surtout la pérennité de mauvaises pratiques depuis des années qui freinent l’adoption de la technologie en effrayant les utilisateurs ou les poussent à se tourner vers des solutions centralisées.

3. L’abstraction du compte

L’abstraction du compte est une alternative au modèle de comptes utilisateurs actuels permettant de faire face aux limitations évoquées ci-dessus. 
En informatique, l’abstraction consiste à enlever, séparer ou isoler des caractéristiques d’un élément afin de le simplifier et/ou réduire à l’essentiel. 

L’abstraction du compte consiste en une transformation de l’EOA en un smart-contract, permettant d’isoler le signataire des autres éléments du compte. Ce smart-contract permet d’imiter les fonctionnalités principales d’un compte, c’est-à-dire valider et exécuter des transactions, et d’ajouter des capacités de programmation et personnalisation.

La gestion de ce nouveau type de smart contracts se fait via des smart contract wallets (tels que Argent ou Safe). Depuis des années, ils permettent d’émuler une forme d’abstraction de compte: c’est-à-dire qu’ils implémentent les caractéristiques de l’abstraction du compte sans changement du protocole Ethereum. Il y a toujours des EOA, mais une partie des complexités est dissimulée.
Par exemple avec Argent, un pionnier des smart contract wallets, chaque utilisateur possède un EOA secret sur son téléphone, qui est le propriétaire du smart contract. La gestion de la clef privée est abstraite grâce à un modèle de social recovery.

Cf. Vitalik Buterin via “Pourquoi avons-nous besoin de l’adoption massive du “social recovery” (permis grâce à l’abstraction du compte) https://vitalik.ca/general/2021/01/11/recovery.html 

Cependant les smart contract wallets sont considérés comme des citoyens de seconde zone car Ethereum a été conçu pour interagir avec les EOAs et non des smart contracts ; chaque application a besoin d’être personnalisée pour pouvoir interagir avec les smart contract wallets (cf. EIP-1271 et la fonction isValidSignature).

4. Capacités et possibilités de l’abstraction du compte

L’abstraction du compte permet de grandes améliorations de sécurité et de facilité d’utilisation, et ouvre la porte à une infinité de cas d’usages, notamment :

  • Social Recovery (recouvrement social) : permet de se passer de clefs privées en donnant l’autorisation de réinitialiser un wallet à partir d’autres entités (comptes, hardware wallets, utilisateurs).
  • Multicall (multi-appel) : permet de grouper plusieurs opérations et les soumettre en une transaction (atomique) afin d’économiser du gas, réaliser plusieurs opérations d’une seule traite ou encore programmer des transactions sous conditions.
  • Fraud monitoring (surveillance de la fraude) : permet une validation à facteur multiples (e.g. 2FA) avec plusieurs signatures pour interagir avec certains smart contracts ou réaliser certains types d’opérations. 
  • Session keys (clefs de session) : donne la possibilité d’autoriser un smart contract à réaliser un ensemble d’actions pendant une période de temps donné.
  • Custom gas management (gestion personnalisée du gaz) : permet d’éviter aux utilisateurs d’avoir à payer du gas pour chaque transaction. Permettrait également aux utilisateurs ou applications de payer le gas dans n’importe quel token ou monnaie fiduciaire.

…et bien d’autres encore. La grande force de l’abstraction du compte est qu’il rend possible de personnaliser les paramètres des comptes utilisateurs, et notamment le modèle de signature, ce qui décuple le champ des possibilités.

5. Pourquoi l’abstraction du compte, maintenant ? 

On parle d’abstraction du compte depuis les débuts d’Ethereum et Vitalik en est un fervent défenseur. 
Historiquement, les EOAs ont été conçus avec comme priorité la possibilité de gérer soi-même et sans intermédiaire ses clefs privées afin de maximiser la décentralisation du réseau.

Plusieurs propositions de mises à jour du protocole ont été imaginées pour implémenter l’abstraction du compte sur Ethereum: les EIP-86, EIP-2938, EIP-3074,et le plus récent EIP-4337.

L’EIP-4337 consiste à rendre plus facile le développement et la gestion des smart contract wallets en mutualisant l’infrastructure nécessaire à leur fonctionnement. Avec l’EIP-4337, les utilisateurs n’envoient plus directement de transactions au réseau. À la place, ils soumettent des “intentions” de transaction à une mempool, repris par des bundlers ou assembleurs qui vérifient, exécutent et soumettent les transactions à l’EVM. Des paymasters ou trésoriers-payeurs peuvent être désignés pour financer les frais de gaz.

Les spécifications de cet EIP ont été définies et l’implémentation est en cours. 

+ c.f. Roadmap de l’implémentation de l’Account Abstraction https://notes.ethereum.org/@vbuterin/account_abstraction_roadmap?utm_source=substack&utm_medium=email#Transaction-inclusion-lists 
+c.f. historique des EIPs sur l’abstraction du compte https://hackmd.io/@matt/r1neQ_B38?utm_source=substack&utm_medium=email

En plus de ces développements sur le protocole Ethereum, la mise en production des solutions de scalabilité ou passage à l’échelle représente aujourd’hui une aubaine pour l’abstraction du compte qui peut être implémentée nativement et à grande échelle en ayant appris des erreurs commises dans le passé.

6. Quelles pistes d’avenir pour l’abstraction du compte ?

Sur Ethereum, nous utilisons encore des EOAs ou des smart contract wallets qui imitent l’abstraction du compte. L’implémenter sur Ethereum, comme toute modification du protocole, représenterait des changements lourds et complexes. Mais comme l’a montré Vitalik dans la roadmap mise à jour d’Ethereum, l’Account Abstraction Track a déjà bien avancé, et devrait s’accélérer dans les prochains mois.

Des solutions de scalabilité de type Layer2 (couches de niveau 2 ou L2) comme Starknet et Zksync v2 supportent l’abstraction du compte nativement. Il sera fascinant d’étudier les développements de l’abstraction du compte sur ces dernières et de parfaire le modèle proposé par l’EIP-4337. Nous nous attendons à ce que d’autres L2/blockchains suivent le pas.

Dans un monde où 99% de l’activité d’Ethereum se passe sur les L2(cf. Rollup-centric roadmap) le besoin d’abstraction du compte sur mainnet pourrait se réduire. Mais si on se dirige vers un monde où les chaînes/rollups sont compatibles avec l’EVM et/ou équivalents, alors il sera tout de même nécessaire d’implémenter cette innovation sur le mainnet d’Ethereum. D’un autre côté, si Ethereum adopte l’abstraction du compte sur mainnet, la majorité des L2 devront suivre…🐓🥚

Pour finir avec une note d’actualité, la faillite de FTX souligne une fois de plus la nécessité des solutions de self custody (détention personnelle) qui permettent de s’émanciper des solutions centralisées et sécuriser nos actifs sans tiers parti. L’abstraction du compte, qui positionne les smart contracts wallets comme standard de la self custody, apparaît comme la suite logique dans le développement des comptes et wallets sur Ethereum ; mais pas seulement.


Pour suivre Ethereum-France ⬇️

Des questions ou commentaires? N’hésitez pas à me contacter via NathanSexer sur Twitter.