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 signataire (« signer »). 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
- Twitter:Â https://twitter.com/Ethereum_France
- Discord:Â https://discord.com/invite/2cGc5JP4JC
- Youtube:Â https://www.youtube.com/channel/UCf7zF8tFOb9T58nBo09BhAw
- Meetup:Â https://www.meetup.com/fr-FR/ethereum-france/?_locale=fr-FR
The post Une introduction Ă lâAbstraction du Compte first appeared on Ethereum France.Des questions ou commentaires? NâhĂ©sitez pas Ă me contacter via NathanSexer sur Twitter.