Ethereum utilise deux types de comptes : les comptes externes (EOA) et les comptes de contrat. Les EOA sont contrôlés par des clés privées et sont utilisés par des individus ou des applications pour signer des transactions. Ces comptes sont simples dans leur structure. Ils incluent un nonce, un solde, et une clé publique associée mais pas de code interne. Lorsqu'un utilisateur signe une transaction depuis un EOA, la Machine Virtuelle Ethereum (EVM) vérifie la signature et déduit les frais de gaz avant d'exécuter la transaction. Les comptes de contrat, en revanche, sont contrôlés par du code et n'initient pas d'actions d'eux-mêmes. Ils ne répondent qu'aux transactions déclenchées par des EOA. L'EVM traite la logique du contrat et stocke l'état, mais un contrat ne peut pas signer des transactions indépendamment ou les initier sans une entrée externe.
Cette architecture limite la fonctionnalité des comptes sur Ethereum. Comme toute activité doit provenir d'EOA et que chaque transaction nécessite une signature cryptographique valide, des fonctionnalités avancées telles que l'authentification multi-facteurs, la récupération sociale et les opérations groupées nécessitent des solutions complexes. Ces contraintes ont motivé le concept d'abstraction de compte - rendre tous les comptes programmables et unifier la distinction entre l'activité contrôlée par l'utilisateur et celle contrôlée par le contrat.
L'abstraction de compte modifie le parcours de validation des transactions en permettant au compte lui-même de définir comment les actions sont approuvées et exécutées. Au lieu d'exiger une signature d'une clé privée spécifique, un portefeuille de contrat intelligent peut définir sa propre logique pour l'authentification. Cette logique peut inclure des signatures de seuil, des vérifications de dispositifs matériels ou des règles pour les limites de dépenses et les verrouillages temporels.
Un des changements les plus impactants introduits par l'abstraction de compte est le découplage du paiement des frais de gaz de l'expéditeur. Traditionnellement, l'initiateur de la transaction doit payer les frais de gaz en ETH. Avec l'abstraction de compte, la logique de validation peut permettre à des tiers—appelés paymasters—de couvrir les frais de gaz au nom de l'utilisateur. Cela ouvre de nouvelles possibilités telles que le parrainage de transactions pour les nouveaux utilisateurs, la possibilité d'interactions dApp sans frais de gaz, ou le paiement des frais en stablecoins ou en tokens de projet natifs.
De plus, l'abstraction de compte introduit la possibilité de regrouper plusieurs opérations en une seule transaction. Par exemple, un utilisateur peut approuver un jeton, effectuer un échange et transférer des fonds en une seule action, réduisant ainsi le nombre de confirmations requises et améliorant l'expérience utilisateur. Ces améliorations réduisent considérablement les frictions dans les interactions avec les dApps tout en maintenant la sécurité et la composabilité.
L'ERC-4337, finalisé en 2023, représente une étape importante dans le parcours d'Ethereum vers l'abstraction des comptes. Contrairement aux propositions antérieures telles que l'EIP-2938, l'ERC-4337 ne nécessite pas de modifications au niveau du consensus d'Ethereum. Au lieu de cela, il fonctionne entièrement dans l'environnement des contrats intelligents existants en introduisant un flux de transactions parallèle utilisant un mempool alternatif et une architecture de contrat spécifique.
Sous l'ERC-4337, les transactions sont remplacées par des UserOperations - des objets de données qui décrivent les actions souhaitées mais ne sont pas soumises au mempool traditionnel. Ces UserOperations sont récupérées par des acteurs spécialisés hors chaîne appelés bundlers. Un bundler agrège plusieurs UserOperations en une transaction Ethereum standard et la soumet à la blockchain.
Sur la chaîne, un contrat singleton appelé EntryPoint vérifie et traite ces opérations groupées. L'EntryPoint interagit avec les comptes intelligents des utilisateurs, qui définissent leur propre logique de validation et délèguent l'exécution des transactions une fois validées. Pour payer les frais de gaz, les comptes peuvent interagir de manière optionnelle avec des paymasters, qui sponsorisent les coûts d'exécution sous des conditions spécifiées dans le code.
Cette structure permet un moyen décentralisé et sans autorisation de supporter l'abstraction de compte sans modifier le protocole de base d'Ethereum. En conséquence, les développeurs peuvent déployer des portefeuilles de contrats intelligents qui se comportent comme des EOA du point de vue de l'utilisateur, mais offrent une fonctionnalité beaucoup plus riche.
Solana adopte une approche fondamentalement différente de l'abstraction des comptes en la soutenant au niveau du protocole. Les comptes Solana ne sont pas divisés en comptes EOA et comptes de contrat. Au lieu de cela, tous les comptes sur Solana sont des conteneurs de stockage à usage général qui peuvent contenir des données, se voir attribuer une propriété et interagir avec des programmes.
Dans le modèle de Solana, la validation des actions est intégrée au sein des programmes (contrats intelligents) eux-mêmes. Les Adresses Dérivées de Programme (ADPs) sont un élément clé de ce système. Ce sont des adresses déterministes générées à partir de graines et de programmes qui n'ont pas de clé privée associée. Au lieu de cela, elles sont contrôlées par la logique du programme et peuvent effectuer des actions lorsque les conditions appropriées sont remplies.
En raison de cette flexibilité native, Solana a proposé des fonctionnalités telles que l'autorisation multi-signature, la délégation de compte et le paiement des frais par des tiers sans nécessiter de normes externes ou de flux de transactions simulés. Des portefeuilles comme Phantom et Solflare ont intégré ces capacités dès le début, démontrant une expérience utilisateur fluide et un contrôle programmable des fonds. Cela contraste avec Ethereum, où une fonctionnalité similaire dépend de superpositions comme l'ERC-4337 et les réseaux de bundlers.
Ethereum utilise deux types de comptes : les comptes externes (EOA) et les comptes de contrat. Les EOA sont contrôlés par des clés privées et sont utilisés par des individus ou des applications pour signer des transactions. Ces comptes sont simples dans leur structure. Ils incluent un nonce, un solde, et une clé publique associée mais pas de code interne. Lorsqu'un utilisateur signe une transaction depuis un EOA, la Machine Virtuelle Ethereum (EVM) vérifie la signature et déduit les frais de gaz avant d'exécuter la transaction. Les comptes de contrat, en revanche, sont contrôlés par du code et n'initient pas d'actions d'eux-mêmes. Ils ne répondent qu'aux transactions déclenchées par des EOA. L'EVM traite la logique du contrat et stocke l'état, mais un contrat ne peut pas signer des transactions indépendamment ou les initier sans une entrée externe.
Cette architecture limite la fonctionnalité des comptes sur Ethereum. Comme toute activité doit provenir d'EOA et que chaque transaction nécessite une signature cryptographique valide, des fonctionnalités avancées telles que l'authentification multi-facteurs, la récupération sociale et les opérations groupées nécessitent des solutions complexes. Ces contraintes ont motivé le concept d'abstraction de compte - rendre tous les comptes programmables et unifier la distinction entre l'activité contrôlée par l'utilisateur et celle contrôlée par le contrat.
L'abstraction de compte modifie le parcours de validation des transactions en permettant au compte lui-même de définir comment les actions sont approuvées et exécutées. Au lieu d'exiger une signature d'une clé privée spécifique, un portefeuille de contrat intelligent peut définir sa propre logique pour l'authentification. Cette logique peut inclure des signatures de seuil, des vérifications de dispositifs matériels ou des règles pour les limites de dépenses et les verrouillages temporels.
Un des changements les plus impactants introduits par l'abstraction de compte est le découplage du paiement des frais de gaz de l'expéditeur. Traditionnellement, l'initiateur de la transaction doit payer les frais de gaz en ETH. Avec l'abstraction de compte, la logique de validation peut permettre à des tiers—appelés paymasters—de couvrir les frais de gaz au nom de l'utilisateur. Cela ouvre de nouvelles possibilités telles que le parrainage de transactions pour les nouveaux utilisateurs, la possibilité d'interactions dApp sans frais de gaz, ou le paiement des frais en stablecoins ou en tokens de projet natifs.
De plus, l'abstraction de compte introduit la possibilité de regrouper plusieurs opérations en une seule transaction. Par exemple, un utilisateur peut approuver un jeton, effectuer un échange et transférer des fonds en une seule action, réduisant ainsi le nombre de confirmations requises et améliorant l'expérience utilisateur. Ces améliorations réduisent considérablement les frictions dans les interactions avec les dApps tout en maintenant la sécurité et la composabilité.
L'ERC-4337, finalisé en 2023, représente une étape importante dans le parcours d'Ethereum vers l'abstraction des comptes. Contrairement aux propositions antérieures telles que l'EIP-2938, l'ERC-4337 ne nécessite pas de modifications au niveau du consensus d'Ethereum. Au lieu de cela, il fonctionne entièrement dans l'environnement des contrats intelligents existants en introduisant un flux de transactions parallèle utilisant un mempool alternatif et une architecture de contrat spécifique.
Sous l'ERC-4337, les transactions sont remplacées par des UserOperations - des objets de données qui décrivent les actions souhaitées mais ne sont pas soumises au mempool traditionnel. Ces UserOperations sont récupérées par des acteurs spécialisés hors chaîne appelés bundlers. Un bundler agrège plusieurs UserOperations en une transaction Ethereum standard et la soumet à la blockchain.
Sur la chaîne, un contrat singleton appelé EntryPoint vérifie et traite ces opérations groupées. L'EntryPoint interagit avec les comptes intelligents des utilisateurs, qui définissent leur propre logique de validation et délèguent l'exécution des transactions une fois validées. Pour payer les frais de gaz, les comptes peuvent interagir de manière optionnelle avec des paymasters, qui sponsorisent les coûts d'exécution sous des conditions spécifiées dans le code.
Cette structure permet un moyen décentralisé et sans autorisation de supporter l'abstraction de compte sans modifier le protocole de base d'Ethereum. En conséquence, les développeurs peuvent déployer des portefeuilles de contrats intelligents qui se comportent comme des EOA du point de vue de l'utilisateur, mais offrent une fonctionnalité beaucoup plus riche.
Solana adopte une approche fondamentalement différente de l'abstraction des comptes en la soutenant au niveau du protocole. Les comptes Solana ne sont pas divisés en comptes EOA et comptes de contrat. Au lieu de cela, tous les comptes sur Solana sont des conteneurs de stockage à usage général qui peuvent contenir des données, se voir attribuer une propriété et interagir avec des programmes.
Dans le modèle de Solana, la validation des actions est intégrée au sein des programmes (contrats intelligents) eux-mêmes. Les Adresses Dérivées de Programme (ADPs) sont un élément clé de ce système. Ce sont des adresses déterministes générées à partir de graines et de programmes qui n'ont pas de clé privée associée. Au lieu de cela, elles sont contrôlées par la logique du programme et peuvent effectuer des actions lorsque les conditions appropriées sont remplies.
En raison de cette flexibilité native, Solana a proposé des fonctionnalités telles que l'autorisation multi-signature, la délégation de compte et le paiement des frais par des tiers sans nécessiter de normes externes ou de flux de transactions simulés. Des portefeuilles comme Phantom et Solflare ont intégré ces capacités dès le début, démontrant une expérience utilisateur fluide et un contrôle programmable des fonds. Cela contraste avec Ethereum, où une fonctionnalité similaire dépend de superpositions comme l'ERC-4337 et les réseaux de bundlers.