L'EIP ou Ethereum Improvements Proposals, est une structure documentaire qui permet de standardiser le développement d'améliorations au sein d'Ethereum, permettant à chacun de présenter ses propositions et ainsi d'améliorer le développement de cette blockchain.
Upas des processus les plus importants dans le développement de Ethereum (ETH), a lieu dans les connaissances Propositions d'améliorations EIP ou Ethereum. Il s'agit de documents techniques dans lesquels la communauté de développement Ethereum fait ses propositions d'amélioration pour ce projet. C'est une idée qui a été adoptée à partir de l'expérience de Bitcoin (BTC), où il y a Propositions d'améliorations Bitcoin (BIP), qui ont le même objectif et dont nous avons déjà parlé dans Bit2Me Academy.
La raison de l'adoption de ce modèle d'organisation est due à l'exigence d'un haut niveau d'organisation dans les communautés de développement décentralisées pour gérer et décider des prochaines améliorations qui seront intégrées au projet. De cette façon, tout développeur peut présenter une proposition d'amélioration qui sera discutée dans la communauté, et selon son impact, elle pourra ou non être incluse dans le protocole Ethereum.
Pour cela, le développeur de l'idée doit expliquer en détail sa proposition, argumenter pourquoi sa mise en œuvre dans le projet est positive, et démontrer clairement sa viabilité et son impact. Ainsi, la création de ces documents est explicite et a un objectif très clair et défini : proposer à la communauté l'avenir du projet et donner à chacun l'opportunité d'en discuter.
Début des propositions d'améliorations Ethereum ou EIP
Comme nous l'avons mentionné, l'idée derrière la création des propositions d'améliorations Ethereum ou EIP, vient des expériences appliquées dans Bitcoin. Rappelons que, dans Bitcoin, les BIP sont destinés à permettre à la communauté de montrer au reste des membres les améliorations qu'ils souhaitent inclure dans le protocole Bitcoin. L'idée des PIF a été initialement proposée par Amir Taaki, qui a conçu le protocole initial pour les présenter, créant le Bitcoin BIP-001.
Ensuite, le développeur Luke Dashjr, a amélioré cette idée grâce à son expérience de développement dans des communautés libres (notamment, son expérience dans Gentoo GNU/Linux), en créant le BIP-002. À partir de ce moment-là, les BIP ont été le véhicule utilisé pour inclure de nouvelles améliorations dans Bitcoin.
L'idée a eu un tel succès qu'elle a été répliquée dans d'autres crypto-monnaies, et Ethereum n'y a pas échappé. C'est ainsi que le 27 octobre 2015, le EIP-001, créé par Martin Becze et Hudson Jameson, deux développeurs majeurs d'Ethereum. Dans ledit EIP, le titre suivant peut être lu :
Objectif et lignes directrices du PEI
C'est-à-dire que ce premier EIP a établi les lignes générales et le but de ce que seraient les EIP au sein d'Ethereum. En fait, son introduction ne pourrait pas être plus claire à cet égard :
EIP signifie Ethereum Improvement Proposal. Un EIP est un document de conception qui fournit des informations à la communauté Ethereum, ou qui décrit une nouvelle fonctionnalité pour Ethereum ou ses processus ou son environnement. L'EIP doit fournir une spécification technique concise de la fonctionnalité et une justification de celle-ci. L'auteur de l'EIP est chargé de créer un consensus au sein de la communauté et de documenter les opinions dissidentes.
Classement EIP
Comme pour les BIP de Bitcoin, les EIP d'Ethereum respectent une série de classifications qui précisent où vont les améliorations qu'ils présentent. Dans ce cas, la classification Ethereum EIP est divisée en trois classes qui sont :
Norme EIP
Ces EIP sont utilisés pour décrire les changements qui affectent la plupart ou toutes les implémentations d'Ethereum. Rappelons qu'Ethereum est un protocole, et son implémentation officielle est donnée dans le logiciel Geth. Mais comme ce logiciel, il existe d'autres implémentations comme celle que nous pouvons voir dans Hyperledger Besu o Parité.
Les améliorations décrites dans un EIP de type Standard, incluent généralement des modifications du protocole réseau ou une modification des règles de blocage ou de validation des transactions. Elle s'applique également aux modifications proposées aux normes d'application ou à tout changement ou ajout affectant l'interopérabilité des applications. Ainsi, les EIP de type Standard sont ceux qui ont la plus grande portée dans le développement d'Ethereum.
De plus, les EIP de type Standard sont divisés dans les sous-catégories suivantes :
- Basique- Dans cette sous-catégorie, les EIP recherchent des améliorations qui nécessitent un changement de consensus au sein d'Ethereum. Un bon exemple de ces EIP sont EIP-005 et EIP-0101). Cependant, des améliorations sont également incluses lorsque les changements ne sont pas nécessairement critiques pour le protocole de consensus. Un exemple de ce dernier peut être vu dans EIP-086 et EIP-090.
- Réseaux Sociaux: cette sous-catégorie comprend les améliorations autour de devp2p (EIP-8) et le protocole réseau, cela inclut les améliorations proposées aux spécifications du protocole de potins et essaim d'Ethereum.
- Interface: Cette sous-catégorie comprend les améliorations des spécifications et des normes API/RPC du client Ethereum. De plus, les changements au niveau de l'ABI et de l'API sont également inclus. Un bon exemple de ces EIP peut être vu dans EIP-006.
- ERC- Normes et conventions au niveau de l'application, y compris les normes contractuelles telles que ; normes de jeton (ERC-20, ERC-721 y ERC-1155), les registres de noms (ERC-26, ERC-137), les schémas d'URI (ERC-67), les formats de bibliothèque/paquet (EIP-82) et les formats de portefeuille (EIP-75, EIP-85).
Objectif EIP
L'autre classification des EIP est connue sous le nom de Meta EIP. Ces EIP décrivent un processus entourant Ethereum ou proposent une modification de celui-ci. Ces EIP proposent généralement des modifications à une implémentation, mais pas à la base de code Ethereum. Ceux-ci nécessitent souvent un consensus de la communauté, contrairement aux EIP informationnels, les utilisateurs ne sont pas libres de les ignorer.
Un bon exemple de ce type d'EIP peut être vu dans les changements de procédures et de directives dans le processus de prise de décision et les changements dans les outils ou l'environnement utilisés dans le développement d'Ethereum. Tout objectif EIP est également considéré comme un processus EIP.
Bulletins
Un EIP informatif décrit un problème de conception d'Ethereum ou fournit des directives générales ou des informations à la communauté Ethereum, mais ne propose pas de nouvelle fonctionnalité. Les EIP informationnels ne représentent pas nécessairement le consensus ou la recommandation de la communauté Ethereum, de sorte que les utilisateurs et les responsables de la mise en œuvre sont libres d'ignorer les EIP informationnels ou de suivre leurs conseils.
Comment fonctionnent les propositions d'améliorations Ethereum ou EIP
Le fonctionnement des EIP est clairement défini dans EIP-001. Ce processus commence par le processus de génération de l'idée ou de la proposition par l'auteur de l'EIP. À ce stade, la responsabilité du développement incombe à l'auteur, et ce sera lui qui devra présenter les arguments nécessaires pour démontrer la nécessité de sa proposition, ainsi que la défendre. Pour cette raison, l'auteur de l'EIP doit créer une idée clairement expliquée et la présenter dans le corps de l'EIP, accompagnée d'une justification et des éléments qui soutiennent sa présentation.
Ainsi, à ce stade, nous avons les étapes suivantes:
Comment fonctionnent les propositions d'améliorations Ethereum ou EIP
Le fonctionnement des EIP est clairement défini dans EIP-001. Ce processus commence par le processus de génération de l'idée ou de la proposition par l'auteur de l'EIP. À ce stade, la responsabilité du développement incombe à l'auteur, et ce sera lui qui devra présenter les arguments nécessaires pour démontrer la nécessité de sa proposition, ainsi que la défendre. Pour cette raison, l'auteur de l'EIP doit créer une idée clairement expliquée et la présenter dans le corps de l'EIP, accompagnée d'une justification et des éléments qui soutiennent sa présentation.
Ainsi, à ce stade, nous avons les étapes suivantes:
Première étape : Présentation de l'idée
C'est l'étape la plus basique et la plus brute d'un EIP. Il présente essentiellement la mise à niveau comme une suggestion sur les forums Ethereum. L'objectif de celui-ci est d'obtenir des retours de la communauté, de poursuivre ou non le développement de la proposition de manière plus élaborée.
Deuxième étape : Création du brouillon
À ce stade, l'idée est déjà incarnée et exécutée selon les paramètres organisationnels attendus d'un EIP. Il s'agit d'un travail en cours actif où vous pouvez soumettre des demandes de suivi avec d'autres modifications à votre projet au point où vous pensez que l'EIP est mature et prêt à passer à l'état suivant.
Troisième étape : dernier appel
À ce stade, le brouillon corrigé apparaît sur le site Web EIPS Ethereum. L'idée de cette étape est de présenter l'EIP au plus grand nombre de personnes au sein de la communauté, de compléter les corrections, et de créer une mise en œuvre entièrement fonctionnelle et révisée de l'EIP.
Quatrième étape : Acceptation
Ce statut indique que des changements importants sont peu probables et que les développeurs de clients Ethereum devraient considérer cet EIP pour inclusion. Votre processus pour décider de le modifier sur vos clients dans le cadre d'un fourche dur cela ne fait pas partie du processus EIP. Ce statut s'applique uniquement aux EIP pour les processus de blockchain de base.
Cinquième étape : Présentation finale
Ce point représente un état où l'EIP ne doit être mis à jour que pour corriger les fautes d'impression. De plus, d'autres statuts peuvent être marqués tels que :
- Actif: Dans certains EIP d'information et de processus, ils peuvent également avoir un statut "Actif" s'ils ne doivent jamais être terminés.
- abandonné: Les auteurs originaux ne cherchent plus à mettre en œuvre cet EIP ou ce n'est peut-être plus une option (techniquement) préférée.
- Rejeté: Un EIP qui est fondamentalement cassé ou un Core EIP qui a été rejeté par Core Devs et ne sera pas implémenté.
- Remplacé: Un EIP qui était auparavant Final mais n'est plus considéré comme étant à la pointe de la technologie. Un autre EIP sera à l'état Final et fera référence à l'EIP remplacé.
Format d'une proposition d'amélioration d'Ethereum ou d'un EIP
Bien entendu, les propositions d'améliorations Ethereum ou EIP, étant des documents techniques, ont un format de présentation standard qui indique clairement toutes les informations nécessaires pour comprendre l'amélioration proposée par celui-ci. On a donc que le format EIP contient les lignes suivantes :
- Préambule. Ceci est l'introduction à l'EIP. Ils sont formatés suivant le guide de style établi par la norme RFC 822. Ce préambule comprend toutes les données de base de l'EIP, telles que son numéro, son auteur, le nom et une brève description.
- Résumé. À ce stade, nous trouverons une brève description (pas plus de 200 mots) du problème technique abordé dans l'EIP.
- Motivation. Ce point est facultatif et ne devrait être obligatoire que si vous souhaitez modifier le protocole Ethereum. À ce stade, l'auteur de l'EIP doit expliquer clairement pourquoi la spécification de protocole existante est inadéquate pour résoudre le problème que l'EIP résout. Les soumissions EIP sans motivation convaincante à ce stade peuvent être entièrement rejetées.
- spécification. A ce stade, l'auteur de l'EIP doit créer et expliquer la syntaxe et l'amélioration qu'il propose. Il doit être clair et concis, démontrable et reproductible. Si le cahier des charges ne respecte pas ces principes, il sera purement et simplement rejeté.
- Justification. La justification développe la spécification en décrivant ce qui a motivé la conception et pourquoi des décisions de conception particulières ont été prises. Il doit décrire les conceptions alternatives qui ont été envisagées et les travaux connexes. La justification peut également fournir la preuve d'un consensus au sein de la communauté et doit répondre aux objections ou préoccupations importantes soulevées au cours de la discussion.
- Rétrocompatibilité. Tous les EIP qui introduisent des incompatibilités en amont doivent inclure une section décrivant ces incompatibilités et leur gravité. L'EIP doit expliquer comment l'auteur propose de remédier à ces incohérences. Les soumissions EIP sans un traité de compatibilité descendante suffisant peuvent être entièrement rejetées.
- Cas de test. Les cas de test pour une implémentation sont requis pour les EIP qui affectent les changements de consensus. D'autres EIP peuvent choisir d'inclure des liens vers des cas de test, le cas échéant.
- Implémentations. Les déploiements doivent être terminés avant qu'un EIP ne reçoive le statut "Final", mais ne doivent pas être terminés avant que l'EIP ne soit fusionné en tant que brouillon. Bien que l'approche consistant à parvenir à un consensus sur la spécification et la justification avant d'écrire le code ait du mérite, le principe du "consensus général et de l'exécution du code" est toujours utile lorsqu'il s'agit de résoudre de nombreux arguments concernant les détails de l'API.
- Considérations de sécurité. tous les EIP doivent contenir une section traitant des implications/considérations de sécurité pertinentes pour le changement proposé. Incluez des informations qui peuvent être pertinentes pour les discussions sur la sécurité, les risques de surface et qui peuvent être utilisées tout au long du cycle de vie de la proposition. Par exemple. Ils incluent des décisions de conception relatives à la sécurité, des préoccupations, des discussions importantes, des conseils de mise en œuvre spécifiques et des pièges, un résumé des menaces et des risques et la manière dont ils sont traités. Les soumissions EIP manquantes dans la section "Considérations de sécurité" seront rejetées. Un EIP ne peut pas passer à l'état "Final" sans une discussion des considérations de sécurité que les examinateurs jugent suffisantes.
- Exemption du droit d'auteur. Tous les EIP doivent être dans le domaine public.
Quelques propositions d'améliorations importantes d'Ethereum ou EIP
Bien que vous puissiez voir tous les EIP ici !Nous expliquons ici certains des EIP les plus importants.
EIP-606 : Objectif Hard Fork : Homestead
El EIP-606 c'est un EIP de type Meta. Celui-ci décrit tous les points nécessaires pour effectuer la mise à jour de Homestead sur Ethereum. Comme il s'agit d'un EIP de type Meta, il fait référence à d'autres EIP qui expliquent toutes les modifications qui seront apportées. Dans ce cas, l'EIP-606 invoque les EIP suivants :
- EIP-2 : modifications apportées à Homestead Hard-fork
- EIP-7 : APPEL DE DÉLÉGUÉ
- EIP-8 : exigences de compatibilité ascendante devp2p pour Homestead
Chacun de ces EIP explique individuellement les modifications qui seront apportées et, ensemble, ils conduisent à la mise à jour de Homestead.
EIP-20 : norme de jeton ERC-20
El EIP-20 est peut-être l'un des EIP les plus connus dans le monde d'Ethereum puisqu'il a été créé pour mettre en œuvre le bien connu Jeton standard ERC-20. Ce développement a marqué le début pour Ethereum de créer un outil standard pour déployer des jetons sur sa blockchain. En conséquence, Ethereum est devenu la blockchain avec le plus de jetons qui existe aujourd'hui.
EIP-137 : Service de nom de domaine Ethereum - Spécification
El EIP-137 a donné naissance à la spécification du système de noms de domaine Ethereum. À partir de là, toute l'infrastructure nécessaire serait créée pour qu'Ethereum puisse devenir un gigantesque service de nom de domaine (DNS) complètement décentralisé et axé sur la confidentialité. Mais pas seulement, cela permettrait aussi d'associer une adresse lisible à une adresse cryptographique pour recevoir et envoyer des crypto-monnaies avec celle-ci. Ce travail a abouti à la ENS.
EIP-721 : Norme de jeton non fongible ERC-721
El EIP-721 est un autre EIP largement connu du fait qu'il a lui-même créé la norme pour les jetons non fongibles d'Ethereum, le ERC-721. De ce jeton, des projets tels que CryptoKitties sont nés.
EIP-779 : Méta Hard Fork : DAO Fork
C'est peut-être l'EIP le plus controversé d'Ethereum. le EIP-779 Il était responsable de la "résolution" du problème du piratage de plusieurs millions de dollars du DAO. Pour ce faire, EIP a réalisé une réécriture de toute l'histoire de la blockchain Ethereum quelques instants avant le piratage de The DAO.
Ceci dans le but de restituer les fonds volés à leurs propriétaires. À la suite de l'application de ce hard fork, Ethereum a été divisé en deux communautés chacune avec sa propre blockchain. Celui qui a appliqué le patch (Ethereum) et celui qui ne l'a pas appliqué (Ethereum Classic).
EIP-1155 : norme à jetons multiples
El EIP-1155 Également connu sous le nom de token ERC-1155, il s'agit d'un EIP de type standard qui cherche à concevoir un nouveau type de token, qui rassemble les capacités des tokens ERC-20 et ERC-721 dans un même standard. De cette façon, les jetons ERC-1155 ont des propriétés fongibles et non fongibles.
EIP-1559 : Modification du marché des frais ETH 1.0
Cet EIP vise à changer la manière dont les commissions sont gérées au sein du réseau. Pour cela, le EIP-1559 crée un mécanisme de combustion des commissions qui empêche Ethereum d'avoir une inflation plus élevée et, en même temps, étend ou réduit la capacité des blocs Ethereum à inclure plus de transactions pour réduire la congestion du réseau.