Saturday, December 3, 2022
HomeEthereumUne introduction à l’Abstraction du Compte

Une introduction à l’Abstraction du Compte

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 easy 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/weblog/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 sorts 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 good contracts by way of 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 :

  • Steadiness: montant d’actifs sur le compte
  • Nonce: paramètre incrémental permettant de vérifier que les transactions s’effectuent dans le bon ordre
  • Deal with: 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 pockets. 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 pockets i.e. prouver qu’on peut effectuer des transactions (par exemple envoyer de l’argent ou interagir  depuis ce compte.
  • NB : Il est potential de dériver la clef publique à partir de la clef privée suivant le modèle ECDSA, mais l’inverse est unimaginable.
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 smart 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 purposes.
  • Le compte doit payer du gasoline pour chaque transaction, dans le token natif (ETH). Cela limite l’expérience et la confidentialité des utilisateurs.

Résoudre ces limitations semble pressing pour plusieurs raisons : tout d’abord automotive l’informatique quantique se développe rapidement et pourrait remettre en trigger 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 options centralisées.

3. L’abstraction du compte

L’abstraction du compte est une various 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 kind de good contracts se fait by way of des good contract wallets (tels que Argent ou Protected). 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 good contract wallets, chaque utilisateur possède un EOA secret sur son téléphone, qui est le propriétaire du good contract. La gestion de la clef privée est abstraite grâce à un modèle de social restoration.

Cf. Vitalik Buterin by way of “Pourquoi avons-nous besoin de l’adoption huge du “social restoration” (permis grâce à l’abstraction du compte) https://vitalik.ca/basic/2021/01/11/restoration.html 

Cependant les good contract wallets sont considérés comme des citoyens de seconde zone automotive Ethereum a été conçu pour interagir avec les EOAs et non des good contracts ; chaque software a besoin d’être personnalisée pour pouvoir interagir avec les good 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 Restoration (recouvrement social) : permet de se passer de clefs privées en donnant l’autorisation de réinitialiser un pockets à 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 gasoline, réaliser plusieurs opérations d’une seule traite ou encore programmer des transactions sous circumstances.
  • Fraud monitoring (surveillance de la fraude) : permet une validation à facteur multiples (e.g. 2FA) avec plusieurs signatures pour interagir avec certains good contracts ou réaliser certains sorts d’opérations. 
  • Session keys (clefs de session) : donne la possibilité d’autoriser un good contract à réaliser un ensemble d’actions pendant une période de temps donné.
  • Customized gasoline administration (gestion personnalisée du gaz) : permet d’éviter aux utilisateurs d’avoir à payer du gasoline pour chaque transaction. Permettrait également aux utilisateurs ou purposes de payer le gasoline dans n’importe quel token ou monnaie fiduciaire.

…et bien d’autres encore. La grande pressure de l’abstraction du compte est qu’il rend potential 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 good 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=e-mail#Transaction-inclusion-lists 
+c.f. historique des EIPs sur l’abstraction du compte https://hackmd.io/@matt/r1neQ_B38?utm_source=substack&utm_medium=e-mail

En plus de ces développements sur le protocole Ethereum, la mise en manufacturing des options 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 good 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 Observe a déjà bien avancé, et devrait s’accélérer dans les prochains mois.

Des options de scalabilité de kind 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 notice d’actualité, la faillite de FTX souligne une fois de plus la nécessité des options de self custody (détention personnelle) qui permettent de s’émanciper des options centralisées et sécuriser nos actifs sans tiers parti. L’abstraction du compte, qui positionne les good contracts wallets comme commonplace 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 by way of NathanSexer sur Twitter.

RELATED ARTICLES

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Most Popular

Recent Comments