La proposition d'amélioration Ethereum (EIP) 3074 constitue une évolution majeure du protocole, visant à renforcer l'abstraction des comptes et à permettre aux utilisateurs d'autoriser des contrats externes à exécuter des transactions en leur nom. Cette proposition introduit deux nouveaux opcodes, AUTH et AUTHCALL, qui offrent aux smart contracts la capacité d'agir pour le compte des Externally Owned Accounts (EOAs) des utilisateurs après réception d'une autorisation signée. Cette avancée améliore nettement l'expérience utilisateur sur Ethereum, simplifie la gestion des transactions et prépare le terrain pour des fonctionnalités évoluées telles que les transactions sans frais de gas et le regroupement de transactions.
Contexte : Origine de l’EIP 3074
L’EIP 3074 a été proposée fin 2020 par les développeurs Ethereum Sam Wilson, Ansgar Dietrichs et Matt Garnett. Elle répond à une demande croissante de l’écosystème Ethereum pour plus d’abstraction des comptes et des modèles de transaction flexibles. Avant l’EIP-3074, le modèle de transaction Ethereum était assez rigide : les utilisateurs devaient initier les transactions directement depuis leurs comptes externes et s’acquitter des frais de gas, ce qui limitait de nombreux usages et entravait l’amélioration de l’expérience utilisateur.
Face à la nécessité d’améliorer l’accessibilité et l’expérience utilisateur, le modèle traditionnel imposait aux utilisateurs de comprendre les frais de gas, de gérer leurs clés privées et d’interagir directement avec la blockchain, ce qui compliquait l’accès pour les nouveaux venus. L’EIP-3074 s’inscrit dans une démarche de long terme autour de l’abstraction des comptes, un sujet abordé depuis plusieurs années par la communauté Ethereum, avec pour objectif de rendre les interactions utilisateurs plus intuitives et fluides.
Dans l’histoire du développement Ethereum, l’EIP-3074 représente une avancée technique notable, en proposant une amélioration progressive du modèle de compte existant plutôt qu’une refonte totale. Cette approche assure la compatibilité avec les modèles de sécurité et l’infrastructure actuels, tout en apportant des évolutions fonctionnelles substantielles.
L’EIP-3074 introduit deux nouveaux opcodes qui fonctionnent en synergie pour permettre l’abstraction des comptes :
- AUTH : vérifie la signature d’un utilisateur et retourne l’adresse du signataire. Lorsqu’un contrat utilise cet opcode, il valide la signature fournie et confirme l’identité du signataire.
- AUTHCALL : permet à un contrat authentifié via AUTH d’effectuer des opérations au nom du compte externe de l’utilisateur. Ce contrat peut ainsi utiliser les droits de l’utilisateur pour interagir, transférer des fonds ou communiquer avec d’autres contrats.
Le processus se déroule ainsi :
- L’utilisateur génère une signature incluant des permissions et des limites spécifiques.
- L’utilisateur transmet cette signature à un contrat invocateur.
- Le contrat invocateur vérifie la signature et obtient l’adresse de l’utilisateur grâce à l’opcode AUTH.
- Après vérification, le contrat invocateur peut exécuter différentes opérations au nom de l’utilisateur via l’opcode AUTHCALL.
- Ces opérations sont inscrites sur la blockchain comme exécutées par le compte EOA de l’utilisateur, bien qu’elles soient réalisées par le contrat.
Un aspect clé de l’EIP-3074 réside dans son modèle d’autorisation. Les utilisateurs peuvent définir précisément le périmètre des droits accordés au contrat invocateur, notamment les contrats accessibles, les montants transférables et la durée de l’autorisation. Ce contrôle fin garantit que, même en autorisant des contrats à agir en leur nom, les utilisateurs conservent une sécurité et une autonomie élevées sur leur compte.
Par ailleurs, l’EIP-3074 empêche la réutilisation de signatures entre différents contrats en intégrant les données de récupération du signataire et l’adresse du contrat dans la signature, réduisant ainsi les risques de sécurité.
Risques et défis de l’EIP 3074
Malgré ses avancées fonctionnelles, l’EIP-3074 soulève plusieurs risques et défis :
- Risques de sécurité
- Réutilisation de signature : des signatures mal conçues pourraient être exploitées par des contrats malveillants
- Sur-autorisation : les utilisateurs pourraient accorder involontairement trop de droits aux contrats invocateurs
- Usurpation d’interface : des applications malveillantes pourraient inciter les utilisateurs à signer des autorisations risquées
- Défis techniques
- Compatibilité avec les wallets et applications existants
- Définition et adoption de standards de signature
- Besoin d’adaptations des logiciels de nœuds et de clients
- Considérations d’expérience utilisateur
- Modèles d’autorisation complexes difficiles à vulgariser
- Défis de conception d’interface pour les demandes de signature
- Nécessité de s’assurer que les utilisateurs comprennent les droits qu’ils accordent
- Impact sur le réseau
- Effets potentiels sur les performances du réseau et la taille des blocs
- Coordination et concurrence avec d’autres propositions d’abstraction de compte
La mise en œuvre de l’EIP-3074 requiert en outre un large consensus communautaire et des audits de sécurité rigoureux. En introduisant des fonctionnalités puissantes susceptibles de modifier le modèle de transaction d’Ethereum, son impact à long terme doit être soigneusement évalué. Des experts en sécurité ont souligné que, sans protections adéquates, les opcodes AUTH et AUTHCALL pourraient être exploités à des fins malveillantes, ce qui impose l’intégration de mesures de sécurité robustes dans la version finale.
Les équipes de développement Ethereum doivent trouver un équilibre entre innovation et sécurité, afin que l’EIP-3074 apporte les améliorations attendues sans générer de nouvelles vulnérabilités.
L’EIP-3074 marque une étape clé dans l’évolution d’Ethereum vers une plateforme blockchain plus flexible et accessible. Grâce à l’abstraction des comptes, elle pourrait résoudre plusieurs difficultés rencontrées par les utilisateurs, telles que la complexité des frais de gas et des processus de transaction. Pour les développeurs, l’EIP-3074 ouvre la voie à des applications décentralisées plus avancées et conviviales. À long terme, ces évolutions sont essentielles pour favoriser l’adoption massive d’Ethereum, en abaissant les barrières à l’entrée et en posant les bases techniques de nouveaux usages. À mesure que l’écosystème Ethereum progresse, des propositions comme l’EIP-3074 joueront un rôle central dans la construction d’un futur blockchain plus inclusif et performant.