EIP (Ethereum Improvement Proposal)

Ce contenu éducatif vous est proposé par bunq, la néobanque qui facilite vos investissements crypto.
<strong>Investissez dans les cryptos en toute simplicité</strong>
Investissez dans les cryptos en toute simplicité

Un Ethereum Improvement Proposal (EIP) est une proposition d'amélioration de la plateforme Ethereum. Les EIP décrivent des standards pour le réseau, à savoir :

  • Des spécifications pour le protocole ;
  • Les interfaces de programmation applicatives (API) pour les logiciels clients ;
  • Les standards pour les smart contracts.

Un EIP est donc un document qui fournit à la communauté Ethereum des informations ou la description d'une nouvelle fonctionnalité. Il doit en fournir sa justification et ses spécifications techniques.

L'EIP-1, datant du 27 octobre 2015, définit les objectifs et les lignes directrices des Ethereum Improvement Proposals.

Les différents types d'EIP

On distingue trois grandes catégories : Standard Track, Meta et Informational.

Standard Track EIP

Cette catégorie regroupe tout changement affectant la majorité ou la totalité des implémentations d'Ethereum. Elle comprend ainsi :

  • Les changements des règles du protocole ;
  • Les modifications des règles de validation des blocs ou des transactions ;
  • De nouveaux standards ou conventions pour les applications ;
  • Tout changement affectant l'interopérabilité des applications utilisant Ethereum.

Un EIP de type Standard Track comporte trois parties : document de conception, implémentation, et spécifications formelles. Les Standard Tracks sont eux-mêmes divisés en 4 sous-catégories :

  • Core : améliorations qui nécessitent un fork ou des changements devant être discutés entre les développeurs principaux.
  • Networking : améliorations du protocole réseau (devp2p, Light Ethereum Subprotocol, whisper et swarm).
  • Interface : tout ce qui concerne les standards de langage (nom des méthodes, interfaces applicatives binaires des contrats).
  • ERC (Ethereum Request for Comment) : standards et conventions au niveau applicatif (standards des jetons, schémas URI, format des librairies et des paquets, abstraction de compte).

Meta EIP

Ils concernent les processus entourant Ethereum, et s'appliquent donc à d'autres domaines que le protocole lui-même. Ils requièrent généralement le consensus communautaire et englobent :

  • Lignes directrices ;
  • Changement des processus de prise de décision ;
  • Modifications d'outils ou de l'environnement de développement d'Ethereum.

On les appelle aussi Process EIP.

Informational EIP

Comme leur nom l'indique, ces propositions sont purement informatives. Elles peuvent décrire un problème de design, ou fournir des informations génériques à la communauté. Il ne s'agit pas de proposer une nouvelle fonctionnalité : les utilisateurs sont libres d'ignorer ces recommandations.

Les statuts d'un EIP

De l'idéation à son déploiement, un Ethereum Improvement Proposal suit plusieurs étapes formelles.

  • Idée : il s'agit de la première ébauche, non inclue dans le dépôt des EIP.
  • Brouillon : première étape du développement de l'EIP. Un Éditeur inclut le draft dans le dépôt une fois qu'il est correctement formaté.
  • Revue : un Auteur signale que l'EIP est prêt à être relu et corrigé.
  • Dernier appel : un Éditeur donne une dernière possibilité de revoir la proposition (généralement durant 15 jours).
  • Final : l'EIP est désormais sous son standard final. Les seules modifications possibles concernent des erreurs mineures, ou l'ajout de clarifications.
  • Stagnant : si un EIP à l'état de brouillon ou de revue est inactif durant 6 mois ou plus, il devient « stagnant ». Les Auteurs ou Éditeurs peuvent le remettre à l'état de brouillon.
  • Retiré : si les Auteurs retirent une proposition, leur décision est définitive. Leur idée peut être reprise plus tard, mais elle sera considérée comme une nouvelle proposition, avec un numéro différent.
  • Vivant : ce statut spécial concerne les EIP conçus pour être continuellement mis à jour, comme l'EIP-1.
EIP - Ethereum Improvement Proposal - Statuts
Les différentes étapes de la vie d'un EIP

Structure d'un EIP

La structure formelle des EIP est disponible ici.

Préambule

L'en-tête contient les métadonnées :

  • Numéro ;
  • Titre (44 caractères maximum) ;
  • Description (140 caractères maximum) ;
  • Détails sur l'auteur.

Résumé

L'abstract est un paragraphe technique court, qui décrit les spécifications de la proposition. Il doit être facile à comprendre.

Motivation

Cette section explique clairement à quel problème l'EIP répond. Elle est optionnelle dans le cas où sa raison d'être est évidente.

Spécifications

Les spécifications techniques décrivent la syntaxe et les sémantiques des nouvelles fonctionnalités. Elles doivent aussi être suffisamment complètes et détaillées pour pourvoir être implémentées sur toutes les versions de la plateforme Ethereum (besu, erigon, ethereumjs, go-ethereum, nethermind, etc.)

Rationnel

Cette section explique les choix de design, et répond aux objections ou remarques soulevées lors des discussions autour de la proposition.

Rétrocompatibilité

Dans le cas où la proposition introduit des incompatibilités, il faut impérativement mentionner ces dernières ainsi que leurs conséquences.

Tests

Pour les EIP modifiant le consensus d'Ethereum, les tests et leurs résultats doivent être inclus.

Implémentation de référence

Cette section optionnelle permet de comprendre ou d'implémenter les spécifications techniques.

Sécurité

Toute considération en termes de sécurité doit être mentionnée.

Les EIP sont tous dans le domaine public.

Éditeurs et responsabilités

Les Éditeurs sont des développeurs éminents de l'écosystème Ethereum. Tout le monde peut prétendre à devenir Éditeur, cependant, il faut répondre à plusieurs critères ! Les conditions, ainsi que les rôles et missions des Éditeurs, sont présentées dans l'EIP-5069.

Un Éditeur va tout d'abord effectuer des vérifications de base pour toute proposition. Il s'assure que l'idée fait sens et est expliquée en détails; il corrige également d'éventuelles fautes de grammaire ou de syntaxe, coquilles, etc. Il renverra la proposition à son auteur dans le cas où il n'est pas prêt, avec des instructions. Une fois prête, l'Éditeur lui assigne un numéro. Il l'ajoute ensuite au dépôt GitHub en tant que pull request.

La mission des Éditeurs ne s'arrête pas à la relecture des propositions. Ils sont aussi des archivistes, maintenant l'ensemble des documents relatifs à Ethereum, et des animateurs, administrant un espace de discussion.

En revanche, les Éditeurs n'ont aucun pouvoir décisionnel quant à l'issue des propositions. Ainsi, ils assurent la publication de multiples EIP concurrents le cas échéant.

Actuellement, les éditeurs sont au nombre de 4 : Matt Garnett, Sam Wilson, Zainan Victor Zhou et Gajinder Singh. Ils peuvent compter sur le soutien de plusieurs éditeurs émérites, donc Vitalik Buterin.

Pour aller plus loin

Quelques lectures complémentaires pour tout comprendre au fonctionnement d'Ethereum :