Explorer la proposition EIP-7702 : la solution ultime de Vitalik pour le dilemme de l'abstraction de compte ?

Débutant5/14/2024, 1:42:24 PM
Vitalik Buterin a proposé l'EIP-7702, qui pourrait être l'un des changements les plus importants de l'histoire d'Ethereum. L'EIP-7702 vise à améliorer l'abstraction de compte, permettant aux contrats intelligents d'être utilisés comme comptes, améliorant ainsi la fonctionnalité et la sécurité. Il est hautement compatible avec l'EIP-4337, largement adopté sur des plateformes comme Polygon. L'EIP-7702 permet la délégation temporaire des comptes EOAs (Externally Owned Accounts) aux contrats intelligents en peuplant temporairement le champ de code du contrat d'un EOA avec du code de contrat intelligent, sans nécessité de hard fork. Cela pourrait transformer la manière dont les utilisateurs interagissent avec les applications Web3.

Vitalik Buterin a récemment proposé l'EIP-7702, qui pourrait être l'un des changements les plus impactants de l'histoire d'Ethereum. Cet article présentera le fonctionnement de cette nouvelle proposition et tout ce qu'il faut comprendre pour sa mise en œuvre.

Tout d'abord, la proposition EIP-7702 est étonnamment brève, ce qui a laissé certaines personnes perplexes quant à son fonctionnement. Pour comprendre l'EIP-7702, nous devons examiner trois autres propositions mentionnées à l'intérieur :

  1. EIP-4337

  2. EIP-3074

  3. EIP-5003

Commençons par l'objectif commun de ces propositions : « abstraction de compte ». Sur Ethereum, les EOAs (comptes « ordinaires ») présentent des inconvénients importants - ils sont très risqués et ont des fonctionnalités très limitées. L'abstraction de compte permet aux utilisateurs d'utiliser des contrats intelligents comme des comptes, ajoutant ainsi plus de fonctionnalités et de sécurité pour résoudre ces problèmes.

EIP-4337

L'EIP-4337 est entré en service sur le mainnet en mars 2023. Il permet aux contrats intelligents d'être rédigés comme des comptes afin qu'ils puissent vérifier et exécuter des transactions, améliorant de nombreuses expériences utilisateur (UX).

Depuis sa sortie, l'EIP-4337 a connu une adoption généralisée, principalement menée par Polygon, avec une activité accrue de Base ces derniers mois.

Les dernières innovations liées à l'EIP-4337 proviennent de l'écosystème Coinbase et du Coinbase Smart Wallet. Ce portefeuille est basé sur la technologie biométrique, offrant une excellente expérience utilisateur. Le week-end dernier, j'ai créé une autre petite démonstration à l'ETH Global Sydney pour présenter cela.

Alors, quelles sont les problèmes de l'EIP-4337? Pourquoi y a-t-il une autre proposition d'abstraction de compte aujourd'hui? Parce que les EOAs sont toujours de loin le type de compte le plus largement utilisé.

De plus, la plupart des comptes de contrat intelligent EIP-4337 sont contrôlés par un seul signataire EOA. Voici un exemple de code snippet :

Parce qu'il n'est pas possible de « convertir » un EOA d'utilisateur en un compte de contrat intelligent, cette étrange solution intérimaire existe. Cela est principalement dû au manque de support natif dans les applications Web3 pour la connexion des comptes de contrat intelligent. De nos jours, la plupart des gens utilisent encore des EOA via des portefeuilles plug-in tels que MetaMask.

EIP-3074

Cela nous amène à notre prochaine proposition: EIP-3074.

En fait, cette proposition a été introduite avant l'EIP-4337, mais elle n'a pas encore été fusionnée dans le mainnet. L'EIP-3074 tente de donner plus de pouvoir aux EOAs en leur permettant de déléguer le contrôle de leurs EOAs à des contrats intelligents.

La proposition décrit l'ajout de deux nouveaux opcodes:

  1. AUTH: Un EOA peut appeler AUTH pour autoriser un certain contrat intelligent à agir en son nom.
  2. APPELAUTH : Le contrat intelligent autorisé peut utiliser APPELAUTH pour exécuter des transactions au nom de l'EOA.

Cela permet d'atteindre bon nombre des mêmes cas d'utilisation que l'EIP-4337 sans exiger de chaque utilisateur le déploiement d'un nouveau contrat intelligent. Une différence clé est que les transactions proviennent de l'EOA de l'utilisateur, plutôt que d'un nouveau contrat qui manque d'historique de compte de l'utilisateur, d'ETH, de NFT, de jetons, etc.

Une réaction courante à l'EIP-3074 est : "Et si quelqu'un créait un contrat malveillant et que l'utilisateur lui déléguait ses pouvoirs ?" Après tout, déléguer à un contrat malveillant pourrait entraîner le drainage de tous les actifs cryptographiques du portefeuille de l'utilisateur.

La solution à ce problème est que les fournisseurs de services de portefeuille restreignent les utilisateurs à autoriser indiscriminément tout contrat. Ils peuvent maintenir une liste blanche de contrats intelligents auxquels les utilisateurs peuvent déléguer l'autorité, garantissant que tout contrat en dehors de cette liste ne soit pas présenté aux utilisateurs pour autorisation.

Un point crucial concernant la délégation dans l'EIP-3074 est qu'elle n'est pas permanente. "La délégation d'un EOA est invalidée par une seule transaction, qui incrémente le nonce, rendant nulles toutes les autorisations en cours."

En essence, après qu'un utilisateur a effectué une nouvelle transaction, la délégation ne sera plus valide.

EIP-5003

Nous ne voulons vraiment pas accorder plus de pouvoir aux EOAs. Après tout, l'objectif de ces propositions est de faire passer les utilisateurs des EOAs aux comptes de contrats intelligents. Alors, pourquoi ajouter des fonctionnalités aux EOAs ?

Cela nous amène agréablement à notre prochaine proposition : EIP-5003. EIP-5003 introduit un autre opcode, « AUTHUSURP », qui déploie du code à l'adresse d'autorisation EIP-3074.

La différence entre EIP-3074 et EIP-5003 est que :

EIP-3074 est une délégation temporaire aux contrats intelligents, révocable.

EIP-5003 est une migration permanente des EOAs et une “conversion” des EOAs en comptes de contrats intelligents.

Un problème majeur avec EIP-3074 + EIP-5003 est son incompatibilité avec le schéma actuel d'abstraction de compte via EIP-4337. Certains membres de la communauté Ethereum craignent que nous puissions "créer deux écosystèmes de code séparés" avec ces deux types d'abstractions de compte.

EIP-7702

Cela nous amène à la proposition de Vitalik Buterin aujourd'hui : EIP-7702. Il propose de modifier l'EIP-3074 pour le rendre plus concis et compatible avec l'EIP-4337, afin de ne pas se retrouver avec deux écosystèmes d'abstraction de compte séparés. L'EIP-5003 est ensuite considéré comme la prochaine étape pour une migration permanente.

EIP-7702 introduit un nouveau type de transaction qui accepte à la fois les champs contract_code et signature. Lors de l'exécution de la transaction, il définit le code de contrat du compte du signataire à contract_code. À la fin de la transaction, il réinitialise le code à vide.

Similaire à l'EIP-3074, cela permet la délégation temporaire des EOAs aux contrats intelligents. Cependant, l'EIP-7702 n'introduit pas de nouveaux opcodes (ce qui nécessiterait une mise à jour difficile), mais définit plutôt les fonctions à appeler :

AUTH -> appels "vérifier"

AUTHCALL -> appelle "exécuter"

Plus précisément, il :

Vérifie si le code de contrat de votre compte est vide.

S'il est vide, le définit sur le code de contrat fourni.

Exécute la transaction selon la façon dont le contrat intelligent fourni gère les transactions.

Restaure le code de contrat du compte à vide.

Le "code de contrat" est littéral ; c'est là que le code d'un contrat intelligent est stocké. Étant donné qu'un EOA en soi n'est pas un contrat, ce champ est généralement vide. Cependant, la brillance de l'EIP-7702 est qu'elle remplit temporairement ce champ avec un code de contrat intelligent lors de l'exécution de la transaction.

Ceci est une manière de fournir un nouveau comportement (sous forme de code) à votre EOA pour exécuter cette transaction spécifique. La prochaine étape consiste à en faire un changement comportemental permanent en choisissant simplement "de ne pas définir le code comme vide après la fin de la transaction."

L'un des meilleurs aspects de cette proposition est sa grande compatibilité avec tout le travail d'abstraction de compte réalisé jusqu'à présent pour l'EIP-4337. "Le code de contrat que les utilisateurs doivent signer peut en fait être le code de portefeuille EIP-4337 existant."

Une fois que ce changement prend effet, les EOAs existants des utilisateurs peuvent exécuter tout code de contrat intelligent. Grâce à des EIP supplémentaires, les EOAs peuvent également être mis à niveau de manière permanente pour exécuter un code spécifique.

Avec le temps, cela pourrait changer fondamentalement la façon dont nous interagissons tous avec les applications Web3.

Déclaration :

  1. Cet article est reproduit à partir de [panews], le titre original "Exploration de la proposition EIP-7702 : la prescription ultime de Vitalik pour le problème d'abstraction de compte ?", les droits d'auteur appartiennent à l'auteur original [Foresight News], si vous avez des objections à la reproduction, veuillez contacterÉquipe d'apprentissage Gate, l'équipe le traitera dès que possible selon les procédures pertinentes.

  2. Avertissement : Les points de vue et opinions exprimés dans cet article ne représentent que les points de vue personnels de l'auteur et ne constituent aucun conseil en matière d'investissement.

  3. D'autres versions linguistiques de l'article sont traduites par l'équipe Gate Learn, non mentionnées dans Gate, l'article traduit ne peut être reproduit, distribué ou plagié.

Explorer la proposition EIP-7702 : la solution ultime de Vitalik pour le dilemme de l'abstraction de compte ?

Débutant5/14/2024, 1:42:24 PM
Vitalik Buterin a proposé l'EIP-7702, qui pourrait être l'un des changements les plus importants de l'histoire d'Ethereum. L'EIP-7702 vise à améliorer l'abstraction de compte, permettant aux contrats intelligents d'être utilisés comme comptes, améliorant ainsi la fonctionnalité et la sécurité. Il est hautement compatible avec l'EIP-4337, largement adopté sur des plateformes comme Polygon. L'EIP-7702 permet la délégation temporaire des comptes EOAs (Externally Owned Accounts) aux contrats intelligents en peuplant temporairement le champ de code du contrat d'un EOA avec du code de contrat intelligent, sans nécessité de hard fork. Cela pourrait transformer la manière dont les utilisateurs interagissent avec les applications Web3.

Vitalik Buterin a récemment proposé l'EIP-7702, qui pourrait être l'un des changements les plus impactants de l'histoire d'Ethereum. Cet article présentera le fonctionnement de cette nouvelle proposition et tout ce qu'il faut comprendre pour sa mise en œuvre.

Tout d'abord, la proposition EIP-7702 est étonnamment brève, ce qui a laissé certaines personnes perplexes quant à son fonctionnement. Pour comprendre l'EIP-7702, nous devons examiner trois autres propositions mentionnées à l'intérieur :

  1. EIP-4337

  2. EIP-3074

  3. EIP-5003

Commençons par l'objectif commun de ces propositions : « abstraction de compte ». Sur Ethereum, les EOAs (comptes « ordinaires ») présentent des inconvénients importants - ils sont très risqués et ont des fonctionnalités très limitées. L'abstraction de compte permet aux utilisateurs d'utiliser des contrats intelligents comme des comptes, ajoutant ainsi plus de fonctionnalités et de sécurité pour résoudre ces problèmes.

EIP-4337

L'EIP-4337 est entré en service sur le mainnet en mars 2023. Il permet aux contrats intelligents d'être rédigés comme des comptes afin qu'ils puissent vérifier et exécuter des transactions, améliorant de nombreuses expériences utilisateur (UX).

Depuis sa sortie, l'EIP-4337 a connu une adoption généralisée, principalement menée par Polygon, avec une activité accrue de Base ces derniers mois.

Les dernières innovations liées à l'EIP-4337 proviennent de l'écosystème Coinbase et du Coinbase Smart Wallet. Ce portefeuille est basé sur la technologie biométrique, offrant une excellente expérience utilisateur. Le week-end dernier, j'ai créé une autre petite démonstration à l'ETH Global Sydney pour présenter cela.

Alors, quelles sont les problèmes de l'EIP-4337? Pourquoi y a-t-il une autre proposition d'abstraction de compte aujourd'hui? Parce que les EOAs sont toujours de loin le type de compte le plus largement utilisé.

De plus, la plupart des comptes de contrat intelligent EIP-4337 sont contrôlés par un seul signataire EOA. Voici un exemple de code snippet :

Parce qu'il n'est pas possible de « convertir » un EOA d'utilisateur en un compte de contrat intelligent, cette étrange solution intérimaire existe. Cela est principalement dû au manque de support natif dans les applications Web3 pour la connexion des comptes de contrat intelligent. De nos jours, la plupart des gens utilisent encore des EOA via des portefeuilles plug-in tels que MetaMask.

EIP-3074

Cela nous amène à notre prochaine proposition: EIP-3074.

En fait, cette proposition a été introduite avant l'EIP-4337, mais elle n'a pas encore été fusionnée dans le mainnet. L'EIP-3074 tente de donner plus de pouvoir aux EOAs en leur permettant de déléguer le contrôle de leurs EOAs à des contrats intelligents.

La proposition décrit l'ajout de deux nouveaux opcodes:

  1. AUTH: Un EOA peut appeler AUTH pour autoriser un certain contrat intelligent à agir en son nom.
  2. APPELAUTH : Le contrat intelligent autorisé peut utiliser APPELAUTH pour exécuter des transactions au nom de l'EOA.

Cela permet d'atteindre bon nombre des mêmes cas d'utilisation que l'EIP-4337 sans exiger de chaque utilisateur le déploiement d'un nouveau contrat intelligent. Une différence clé est que les transactions proviennent de l'EOA de l'utilisateur, plutôt que d'un nouveau contrat qui manque d'historique de compte de l'utilisateur, d'ETH, de NFT, de jetons, etc.

Une réaction courante à l'EIP-3074 est : "Et si quelqu'un créait un contrat malveillant et que l'utilisateur lui déléguait ses pouvoirs ?" Après tout, déléguer à un contrat malveillant pourrait entraîner le drainage de tous les actifs cryptographiques du portefeuille de l'utilisateur.

La solution à ce problème est que les fournisseurs de services de portefeuille restreignent les utilisateurs à autoriser indiscriminément tout contrat. Ils peuvent maintenir une liste blanche de contrats intelligents auxquels les utilisateurs peuvent déléguer l'autorité, garantissant que tout contrat en dehors de cette liste ne soit pas présenté aux utilisateurs pour autorisation.

Un point crucial concernant la délégation dans l'EIP-3074 est qu'elle n'est pas permanente. "La délégation d'un EOA est invalidée par une seule transaction, qui incrémente le nonce, rendant nulles toutes les autorisations en cours."

En essence, après qu'un utilisateur a effectué une nouvelle transaction, la délégation ne sera plus valide.

EIP-5003

Nous ne voulons vraiment pas accorder plus de pouvoir aux EOAs. Après tout, l'objectif de ces propositions est de faire passer les utilisateurs des EOAs aux comptes de contrats intelligents. Alors, pourquoi ajouter des fonctionnalités aux EOAs ?

Cela nous amène agréablement à notre prochaine proposition : EIP-5003. EIP-5003 introduit un autre opcode, « AUTHUSURP », qui déploie du code à l'adresse d'autorisation EIP-3074.

La différence entre EIP-3074 et EIP-5003 est que :

EIP-3074 est une délégation temporaire aux contrats intelligents, révocable.

EIP-5003 est une migration permanente des EOAs et une “conversion” des EOAs en comptes de contrats intelligents.

Un problème majeur avec EIP-3074 + EIP-5003 est son incompatibilité avec le schéma actuel d'abstraction de compte via EIP-4337. Certains membres de la communauté Ethereum craignent que nous puissions "créer deux écosystèmes de code séparés" avec ces deux types d'abstractions de compte.

EIP-7702

Cela nous amène à la proposition de Vitalik Buterin aujourd'hui : EIP-7702. Il propose de modifier l'EIP-3074 pour le rendre plus concis et compatible avec l'EIP-4337, afin de ne pas se retrouver avec deux écosystèmes d'abstraction de compte séparés. L'EIP-5003 est ensuite considéré comme la prochaine étape pour une migration permanente.

EIP-7702 introduit un nouveau type de transaction qui accepte à la fois les champs contract_code et signature. Lors de l'exécution de la transaction, il définit le code de contrat du compte du signataire à contract_code. À la fin de la transaction, il réinitialise le code à vide.

Similaire à l'EIP-3074, cela permet la délégation temporaire des EOAs aux contrats intelligents. Cependant, l'EIP-7702 n'introduit pas de nouveaux opcodes (ce qui nécessiterait une mise à jour difficile), mais définit plutôt les fonctions à appeler :

AUTH -> appels "vérifier"

AUTHCALL -> appelle "exécuter"

Plus précisément, il :

Vérifie si le code de contrat de votre compte est vide.

S'il est vide, le définit sur le code de contrat fourni.

Exécute la transaction selon la façon dont le contrat intelligent fourni gère les transactions.

Restaure le code de contrat du compte à vide.

Le "code de contrat" est littéral ; c'est là que le code d'un contrat intelligent est stocké. Étant donné qu'un EOA en soi n'est pas un contrat, ce champ est généralement vide. Cependant, la brillance de l'EIP-7702 est qu'elle remplit temporairement ce champ avec un code de contrat intelligent lors de l'exécution de la transaction.

Ceci est une manière de fournir un nouveau comportement (sous forme de code) à votre EOA pour exécuter cette transaction spécifique. La prochaine étape consiste à en faire un changement comportemental permanent en choisissant simplement "de ne pas définir le code comme vide après la fin de la transaction."

L'un des meilleurs aspects de cette proposition est sa grande compatibilité avec tout le travail d'abstraction de compte réalisé jusqu'à présent pour l'EIP-4337. "Le code de contrat que les utilisateurs doivent signer peut en fait être le code de portefeuille EIP-4337 existant."

Une fois que ce changement prend effet, les EOAs existants des utilisateurs peuvent exécuter tout code de contrat intelligent. Grâce à des EIP supplémentaires, les EOAs peuvent également être mis à niveau de manière permanente pour exécuter un code spécifique.

Avec le temps, cela pourrait changer fondamentalement la façon dont nous interagissons tous avec les applications Web3.

Déclaration :

  1. Cet article est reproduit à partir de [panews], le titre original "Exploration de la proposition EIP-7702 : la prescription ultime de Vitalik pour le problème d'abstraction de compte ?", les droits d'auteur appartiennent à l'auteur original [Foresight News], si vous avez des objections à la reproduction, veuillez contacterÉquipe d'apprentissage Gate, l'équipe le traitera dès que possible selon les procédures pertinentes.

  2. Avertissement : Les points de vue et opinions exprimés dans cet article ne représentent que les points de vue personnels de l'auteur et ne constituent aucun conseil en matière d'investissement.

  3. D'autres versions linguistiques de l'article sont traduites par l'équipe Gate Learn, non mentionnées dans Gate, l'article traduit ne peut être reproduit, distribué ou plagié.

Comece agora
Registe-se e ganhe um cupão de
100 USD
!