Avant l'abstraction des comptes, il existait deux types de comptes dans Ethereum : les comptes détenus en externe (EOA) et les contrats intelligents. Un EOA est un compte d'utilisateur typique qui dispose d'une clé privée. C'est également le seul type de compte qui peut initier une transaction. Par exemple, un utilisateur doit disposer d'ETH pour envoyer une transaction. Il est difficile de créer des transactions par lots et il n'y a pas d'options de récupération si un utilisateur perd sa clé privée. L'abstraction de compte (AA) a été créée pour résoudre ces problèmes. Mais est-ce une solution sans risque ? Ce guide couvre les bases de l'AA avant de détailler ses risques et la manière de les atténuer.
L'abstraction de compte est une technologie qui permet aux contrats intelligents d'initialiser eux-mêmes des transactions. Il permet aux utilisateurs de créer des comptes qui sont représentés par des contrats intelligents. Cette technologie permet également d'améliorer l'interaction des utilisateurs avec la chaîne.
Différentes propositions ont été faites sur la manière de mettre en œuvre l'AA dans le réseau Ethereum. Certaines d'entre elles impliquent des modifications importantes du protocole Ethereum, ce qui complique la mise en œuvre. La mise en œuvre la plus importante est l'ERC-4337, qui n'implique aucune modification de la couche de consensus. Le standard réplique le mempool de transaction à un niveau supérieur. Les contrats intelligents de l'ERC-4337 ont été déployés sur le réseau Ethereum en mars 2023.
L'ERC-4337 utilise des contrats intelligents appelés portefeuilles au lieu de l'EOA. Ce portefeuille de contrat intelligent peut être contrôlé non seulement par une clé privée, mais aussi par un mécanisme complexe arbitraire codé dans le contrat.
Au lieu de transactions, les utilisateurs envoient des UserOperations. Une UserOperation contient des instructions à exécuter, la vérification des signatures et d'autres données. Comme pour les transactions, un utilisateur spécifie une prime pour que le Bundler donne la priorité à son opération.
Les mineurs ou les bundlers regroupent les opérations dans des transactions groupées qui sont ensuite incluses dans le réseau Ethereum.
Mise en œuvre de l'AA : HashEx
Entre autres données, la UserOperation contient le code permettant de créer un portefeuille de contrats intelligents. Si un utilisateur n'a pas de portefeuille, celui-ci est créé pour lui.
Si un utilisateur souhaite payer la transaction avec un jeton ERC20 ou même ne pas payer la transaction du tout, il spécifie l'adresse du contrat du payeur dans la UserOperation. Un payeur est un service tiers qui paiera la transaction en échange de jetons ERC20.
Bien que l'abstraction de compte soit créée pour améliorer la sécurité des utilisateurs, il existe certains risques, en particulier dans les premières phases d'adoption. L'écosystème Ethereum est connu pour ses bogues dans les contrats intelligents qui ont conduit au vol de milliards de dollars par des utilisateurs malveillants. Voici quelques risques liés à l'AA et la manière de les éviter ou de les atténuer.
Comme toute nouvelle technologie, l'abstraction de compte court le risque que sa première mise en œuvre contienne des bogues. Les contrats intelligents de l'ERC-4337 ont été audités par une société de sécurité blockchain de premier plan, OpenZeppelin.
Atténuation : La solution consiste à utiliser la vérification formelle - un processus qui implique l'utilisation de méthodes mathématiques pour prouver l'exactitude des contrats intelligents. Le processus de vérification formelle des contrats ERC4337 est en cours mais n'est pas encore terminé.
Tous les contrats intelligents ne sont pas compatibles avec les portefeuilles d'abstraction de comptes. Par exemple, les contrats intelligents qui utilisent le champ tx.origin pour vérifier le portefeuille qui a envoyé la transaction obtiendront une valeur inattendue. Une autre incompatibilité se produit avec les contrats intelligents qui utilisent des signatures EOA : ils ne sont pas pris en charge par les portefeuilles AA.
Dans ces contrats, certaines fonctionnalités essentielles peuvent ne pas fonctionner correctement. Dans le pire des cas, les fonds des utilisateurs peuvent être bloqués.
Atténuation : Afin de réduire les risques, un utilisateur utilisant un portefeuille d'abstraction de compte doit vérifier si le protocole avec lequel il interagit prend en charge la technologie.
La norme est conçue de manière à ce qu'un portefeuille de contrats intelligents puisse être créé au cours de la première UserOperation par le biais d'une usine de contrats intelligents. Cependant, il existe un risque que le contrat intelligent de mise en œuvre du portefeuille contienne des bogues. Il est crucial de n'utiliser que des usines de portefeuilles qui ont été minutieusement auditées et testées par les principales sociétés de sécurité de la blockchain.
Atténuation : N'utilisez que des services de confiance pour créer des portefeuilles et veillez à ce que le code du portefeuille soit vérifié au moins par une société de sécurité de la blockchain digne de confiance.
Si un utilisateur ou un projet utilise des paymasters, il s'en remet à un tiers pour payer les transactions. Il peut y avoir des erreurs dans la mise en œuvre du payeur, et un payeur malveillant peut voler les fonds des utilisateurs.
Il convient de noter que le service de payeur choisi peut également être victime d'utilisateurs malveillants qui peuvent trouver des moyens de tromper le payeur pour qu'il paye leurs transactions.
Atténuation : Les portefeuilles n'utilisent que des paymasters provenant de fournisseurs dignes de confiance et s'assurent que le code des paymasters a été vérifié avant de les utiliser.
L'abstraction de compte sur la blockchain Ethereum est un concept relativement nouveau. Ainsi, les meilleures pratiques et les cadres de développement pour son utilisation sont encore en cours d'élaboration. Il existe très peu d'exemples d'utilisation de l'abstraction de compte dont les développeurs peuvent s'inspirer.
Atténuation : La meilleure pratique se développera éventuellement à la suite de la diffusion de la norme. Pour les développeurs, il est essentiel de partager leurs expériences en matière d'utilisation de la nouvelle technologie, en particulier dans les premières phases d'adoption.
L'ERC-4337 est encore à l'état de projet, bien que les contrats aient déjà été déployés sur le réseau principal. Il est possible que la norme soit modifiée. Il convient de noter que ces changements sont censés concerner de petits détails et ne pas affecter les contrats intelligents déjà déployés.
Atténuation : Les développeurs doivent surveiller l'évolution de la norme et mettre à jour le code de leurs projets en fonction des modifications apportées à la norme, le cas échéant.
Bien que l'ERC-4337 soit conçu de manière à ce que tout le monde puisse créer un bundler, du moins dans un premier temps, l'écosystème d'abstraction des comptes est relativement centralisé, car il existe peu d'implémentations de bundlers prêtes à la production.
Atténuation : Pour éviter le risque qu'une erreur dans l'implémentation d'un Bundler n'affecte le réseau d'abstraction des comptes, il convient d'utiliser au moins deux implémentations du Bundler. Un grand nombre d'implémentations de Bundler sont actuellement en cours de développement et beaucoup d'entre elles seront bientôt prêtes pour la production.
L'abstraction de compte est une technologie potentiellement formidable qui peut favoriser l'adoption d'Ethereum. En même temps, c'est l'un des développements qui peut rendre la blockchain plus sûre. Toutefois, comme pour tout nouvel ajout à la technologie de la blockchain à ses débuts, les utilisateurs doivent faire preuve d'une vigilance accrue. L'examen et la recherche de l'AA est le meilleur choix pour tous ceux qui souhaitent adopter cette technologie.
Avant l'abstraction des comptes, il existait deux types de comptes dans Ethereum : les comptes détenus en externe (EOA) et les contrats intelligents. Un EOA est un compte d'utilisateur typique qui dispose d'une clé privée. C'est également le seul type de compte qui peut initier une transaction. Par exemple, un utilisateur doit disposer d'ETH pour envoyer une transaction. Il est difficile de créer des transactions par lots et il n'y a pas d'options de récupération si un utilisateur perd sa clé privée. L'abstraction de compte (AA) a été créée pour résoudre ces problèmes. Mais est-ce une solution sans risque ? Ce guide couvre les bases de l'AA avant de détailler ses risques et la manière de les atténuer.
L'abstraction de compte est une technologie qui permet aux contrats intelligents d'initialiser eux-mêmes des transactions. Il permet aux utilisateurs de créer des comptes qui sont représentés par des contrats intelligents. Cette technologie permet également d'améliorer l'interaction des utilisateurs avec la chaîne.
Différentes propositions ont été faites sur la manière de mettre en œuvre l'AA dans le réseau Ethereum. Certaines d'entre elles impliquent des modifications importantes du protocole Ethereum, ce qui complique la mise en œuvre. La mise en œuvre la plus importante est l'ERC-4337, qui n'implique aucune modification de la couche de consensus. Le standard réplique le mempool de transaction à un niveau supérieur. Les contrats intelligents de l'ERC-4337 ont été déployés sur le réseau Ethereum en mars 2023.
L'ERC-4337 utilise des contrats intelligents appelés portefeuilles au lieu de l'EOA. Ce portefeuille de contrat intelligent peut être contrôlé non seulement par une clé privée, mais aussi par un mécanisme complexe arbitraire codé dans le contrat.
Au lieu de transactions, les utilisateurs envoient des UserOperations. Une UserOperation contient des instructions à exécuter, la vérification des signatures et d'autres données. Comme pour les transactions, un utilisateur spécifie une prime pour que le Bundler donne la priorité à son opération.
Les mineurs ou les bundlers regroupent les opérations dans des transactions groupées qui sont ensuite incluses dans le réseau Ethereum.
Mise en œuvre de l'AA : HashEx
Entre autres données, la UserOperation contient le code permettant de créer un portefeuille de contrats intelligents. Si un utilisateur n'a pas de portefeuille, celui-ci est créé pour lui.
Si un utilisateur souhaite payer la transaction avec un jeton ERC20 ou même ne pas payer la transaction du tout, il spécifie l'adresse du contrat du payeur dans la UserOperation. Un payeur est un service tiers qui paiera la transaction en échange de jetons ERC20.
Bien que l'abstraction de compte soit créée pour améliorer la sécurité des utilisateurs, il existe certains risques, en particulier dans les premières phases d'adoption. L'écosystème Ethereum est connu pour ses bogues dans les contrats intelligents qui ont conduit au vol de milliards de dollars par des utilisateurs malveillants. Voici quelques risques liés à l'AA et la manière de les éviter ou de les atténuer.
Comme toute nouvelle technologie, l'abstraction de compte court le risque que sa première mise en œuvre contienne des bogues. Les contrats intelligents de l'ERC-4337 ont été audités par une société de sécurité blockchain de premier plan, OpenZeppelin.
Atténuation : La solution consiste à utiliser la vérification formelle - un processus qui implique l'utilisation de méthodes mathématiques pour prouver l'exactitude des contrats intelligents. Le processus de vérification formelle des contrats ERC4337 est en cours mais n'est pas encore terminé.
Tous les contrats intelligents ne sont pas compatibles avec les portefeuilles d'abstraction de comptes. Par exemple, les contrats intelligents qui utilisent le champ tx.origin pour vérifier le portefeuille qui a envoyé la transaction obtiendront une valeur inattendue. Une autre incompatibilité se produit avec les contrats intelligents qui utilisent des signatures EOA : ils ne sont pas pris en charge par les portefeuilles AA.
Dans ces contrats, certaines fonctionnalités essentielles peuvent ne pas fonctionner correctement. Dans le pire des cas, les fonds des utilisateurs peuvent être bloqués.
Atténuation : Afin de réduire les risques, un utilisateur utilisant un portefeuille d'abstraction de compte doit vérifier si le protocole avec lequel il interagit prend en charge la technologie.
La norme est conçue de manière à ce qu'un portefeuille de contrats intelligents puisse être créé au cours de la première UserOperation par le biais d'une usine de contrats intelligents. Cependant, il existe un risque que le contrat intelligent de mise en œuvre du portefeuille contienne des bogues. Il est crucial de n'utiliser que des usines de portefeuilles qui ont été minutieusement auditées et testées par les principales sociétés de sécurité de la blockchain.
Atténuation : N'utilisez que des services de confiance pour créer des portefeuilles et veillez à ce que le code du portefeuille soit vérifié au moins par une société de sécurité de la blockchain digne de confiance.
Si un utilisateur ou un projet utilise des paymasters, il s'en remet à un tiers pour payer les transactions. Il peut y avoir des erreurs dans la mise en œuvre du payeur, et un payeur malveillant peut voler les fonds des utilisateurs.
Il convient de noter que le service de payeur choisi peut également être victime d'utilisateurs malveillants qui peuvent trouver des moyens de tromper le payeur pour qu'il paye leurs transactions.
Atténuation : Les portefeuilles n'utilisent que des paymasters provenant de fournisseurs dignes de confiance et s'assurent que le code des paymasters a été vérifié avant de les utiliser.
L'abstraction de compte sur la blockchain Ethereum est un concept relativement nouveau. Ainsi, les meilleures pratiques et les cadres de développement pour son utilisation sont encore en cours d'élaboration. Il existe très peu d'exemples d'utilisation de l'abstraction de compte dont les développeurs peuvent s'inspirer.
Atténuation : La meilleure pratique se développera éventuellement à la suite de la diffusion de la norme. Pour les développeurs, il est essentiel de partager leurs expériences en matière d'utilisation de la nouvelle technologie, en particulier dans les premières phases d'adoption.
L'ERC-4337 est encore à l'état de projet, bien que les contrats aient déjà été déployés sur le réseau principal. Il est possible que la norme soit modifiée. Il convient de noter que ces changements sont censés concerner de petits détails et ne pas affecter les contrats intelligents déjà déployés.
Atténuation : Les développeurs doivent surveiller l'évolution de la norme et mettre à jour le code de leurs projets en fonction des modifications apportées à la norme, le cas échéant.
Bien que l'ERC-4337 soit conçu de manière à ce que tout le monde puisse créer un bundler, du moins dans un premier temps, l'écosystème d'abstraction des comptes est relativement centralisé, car il existe peu d'implémentations de bundlers prêtes à la production.
Atténuation : Pour éviter le risque qu'une erreur dans l'implémentation d'un Bundler n'affecte le réseau d'abstraction des comptes, il convient d'utiliser au moins deux implémentations du Bundler. Un grand nombre d'implémentations de Bundler sont actuellement en cours de développement et beaucoup d'entre elles seront bientôt prêtes pour la production.
L'abstraction de compte est une technologie potentiellement formidable qui peut favoriser l'adoption d'Ethereum. En même temps, c'est l'un des développements qui peut rendre la blockchain plus sûre. Toutefois, comme pour tout nouvel ajout à la technologie de la blockchain à ses débuts, les utilisateurs doivent faire preuve d'une vigilance accrue. L'examen et la recherche de l'AA est le meilleur choix pour tous ceux qui souhaitent adopter cette technologie.