Appendix A: Normes Ethereum

Bannière Amazon du livre Maîtriser Ethereum

Propositions d’amélioration d’Ethereum (EIPs)

Le référentiel des propositions d’amélioration d’Ethereum est situé sur https://github.com/ethereum/EIPs/. Le flux de travail est illustré dans Flux de travail des propositions d’amélioration Ethereum.

Depuis EIP-1 :

EIP signifie Ethereum Improvement Proposal (Proposition d’amélioration d’Ethereum). Un EIP est un document de conception fournissant des informations à la communauté Ethereum ou décrivant 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 la fonctionnalité. L’auteur de l’EIP est responsable de la recherche d’un consensus au sein de la communauté et de la documentation des opinions dissidentes.

Flux de travail des propositions d’amélioration d’Ethereum
Figure 1. Flux de travail des propositions d’amélioration Ethereum

Tableau des EIP et ERC les plus importants

Table 1. EIP et ERC importants
N° EIP/ERC Titre/Description Auteur Couche Statut Créé par

EIP-1

Objectif et lignes directrices de l’EIP

Martin Becze, Hudson Jameson

Méta

Finale

EIP-2

Changements à la fourchette dure de Homestead

Vitalik Buterin

Noyau

Finale

EIP-5

Consommation de gaz pour RETURN et CALL*

Christian Reitwiessner

Noyau

Brouillon

EIP-6

Renommer SUICIDE Opcode

Hudson Jameson

Interface

Finale

EIP-7

DELEGATECALL

Vitalik Buterin

Noyau

Finale

EIP-8

Exigences de compatibilité ascendante devp2p pour Homestead

Félix Lange

Réseautage

Finale

EIP-20

Norme de jeton ERC-20. Décrit les fonctions standard qu’un contrat de jeton peut implémenter pour permettre aux DApp et aux portefeuilles de gérer les jetons sur plusieurs interfaces/DApp. Les méthodes incluent : totalSupply, balanceOf(address), transfer, transferFrom, approve, allowance. Les événements incluent : Transfer (déclenché lorsque les jetons sont transférés), Approval (déclenché lorsque approve est appelé).

Fabian Vogelsteller, Vitalik Buterin

ERC

Finale

Frontière

EIP-55

Codage d’adresse de somme de contrôle à casse mixte

Vitalik Buterin

ERC

Finale

EIP-86

Abstraction de l’origine et de la signature de la transaction. prépare le terrain pour "abstraire" la sécurité des comptes et permettre aux utilisateurs de créer des "contrats de compte", en évoluant vers un modèle où, à long terme, tous les comptes sont des contrats qui peuvent payer pour le gaz, et les utilisateurs sont libres de définir leurs propres modèles de sécurité qui effectuer toute vérification de signature et vérifications nonce souhaitées (au lieu d’utiliser le mécanisme dans le protocole où ECDSA et le schéma nonce par défaut sont le seul moyen "standard" de sécuriser un compte, qui est actuellement codé en dur dans le traitement des transactions).

Vitalik Buterin

Noyau

Différé (à remplacer)

Constantinople

EIP-96

Blockhash et changements de racine d’état. Stocke les hachages de bloc dans l’état pour réduire la complexité du protocole et le besoin d’implémentations client complexes pour traiter l’opcode BLOCKHASH. Étend la portée de la vérification des blocs de hachage, avec pour effet secondaire de créer des liens directs entre les blocs avec des numéros de bloc très éloignés pour faciliter une synchronisation initiale beaucoup plus efficace du client léger.

Vitalik Buterin

Noyau

Différé

Constantinople

EIP-100

Modifie l’ajustement de la difficulté pour cibler le temps de blocage moyen et inclure les oncles.

Vitalik Buterin

Noyau

Finale

Métropole Byzantinium

EIP-101

Monnaie de sérénité et abstraction cryptographique. Rend abstrait l’ether d’un niveau avec l’avantage de permettre à l’ether et aux sous-jetons d’être traités de manière similaire par des contrats, réduisant le niveau d’indirection requis pour les comptes de politique personnalisée tels que les multisigs et purifiant le protocole Ethereum sous-jacent en réduisant la complexité minimale de mise en œuvre du consensus.

Vitalik Buterin

Actif

Fonction Sérénité

Sérénité Casper

EIP-105

Partage binaire plus sémantique d’appel de contrat. "Échafaudage de partitionnement" EIP pour permettre aux transactions Ethereum d’être parallélisées à l’aide d’un mécanisme de partitionnement d’arbre binaire, et pour préparer le terrain pour un schéma de partitionnement ultérieur. Recherche en cours; voir https://github.com/ethereum/sharding.

Vitalik Buterin

Actif

Fonction Sérénité

Sérénité Casper

EIP-137

Service de nom de domaine Ethereum - Spécification

Nick Johnson

ERC

Finale

EIP-140

Nouvel Opcode : REVERT. Ajoute l’instruction d’opcode REVERT, qui arrête l’exécution et annule les changements d’état d’exécution EVM sans consommer tout le gaz fourni (au lieu de cela, le contrat ne doit payer que pour la mémoire) ou perdre les journaux, et renvoie à l’appelant un pointeur vers l’emplacement de la mémoire avec le code ou le message d’erreur.

Alex Beregszaszi, Nikolai Mushegian

Noyau

Finale

Métropole Byzantinium

EIP-141

Instruction EVM invalide désignée

Alex Beregszaszi

Noyau

Finale

EIP-145

Instructions de décalage au niveau du bit dans EVM

Alex Beregszaszi, Pawel Bylica

Noyau

Différé

EIP-150

Changements de coût du gaz pour les opérations lourdes d’E/S

Vitalik Buterin

Noyau

Finale

EIP-155

Protection simple contre les attaques par relecture. Replay Attack permet à toute transaction utilisant un nœud ou un client Ethereum pré-EIP-155 d’être signée afin qu’elle soit valide et exécutée sur les chaînes Ethereum et Ethereum Classic.

Vitalik Buterin

Noyau

Finale

Propriété

EIP-158

Dédouanement de l’État

Vitalik Buterin

Noyau

Remplacé

EIP-160

Augmentation du coût de l’EXP

Vitalik Buterin

Noyau

Finale

EIP-161

Effacement de trie d’état (alternative préservant l’invariant)

Bois Gavin

Noyau

Finale

EIP-162

Initial ENS Hash Registrar

Maurelian, Nick Johnson, Alex Van de Sande

ERC

Finale

EIP-165

Détection d’interface standard ERC-165

Christian Reitwiessner et al.

Interface

Brouillon

EIP-170

Limite de taille du code de contrat

Vitalik Buterin

Noyau

Finale

EIP-181

Prise en charge de l’ENS pour la résolution inverse des adresses Ethereum

Nick Johnson

ERC

Finale

EIP-190

Norme d’emballage du contrat intelligent Ethereum

Piper Merriam et al.

ERC

Finale

EIP-196

Contrats précompilés pour l’addition et la multiplication scalaire sur la courbe elliptique alt_bn128. Requis pour effectuer la vérification zkSNARK dans la limite de gaz du bloc.

Christian Reitwiessner

Noyau

Finale

Métropole Byzantinium

EIP-197

Contrats précompilés pour un contrôle d’appariement optimal sur la courbe elliptique alt_bn128. Combiné avec EIP-196.

Vitalik Buterin, Christian Reitwiessner

Noyau

Finale

Métropole Byzantinium

EIP-198

Exponentiation modulaire des grands entiers. Précompilation permettant la vérification de signature RSA et d’autres applications cryptographiques.

Vitalik Buterin

Noyau

Finale

Métropole Byzantinium

EIP-211

Nouveaux opcodes : RETURNDATASIZE et RETURNDATACOPY. Ajoute la prise en charge du retour de valeurs de longueur variable à l’intérieur de l’EVM avec une simple charge de gaz et une modification minimale des opcodes d’appel à l’aide des nouveaux opcodes RETURNDATASIZE et RETURNDATACOPY. Poignées similaires aux calldata existantes, dans lesquelles après un appel, les données de retour sont conservées dans un tampon virtuel à partir duquel l’appelant peut les copier (ou des parties de celui-ci) dans la mémoire, et lors du prochain appel, le tampon est écrasé.

Christian Reitwiessner

Noyau

Finale

Métropole Byzantinium

EIP-214

Nouvel opcode : STATICCALL. Autorise les appels sans changement d’état à lui-même ou à d’autres contrats tout en interdisant toute modification d’état pendant l’appel (et ses sous-appels, le cas échéant) pour augmenter la sécurité des contrats intelligents et assurer aux développeurs que les bogues de réentrance ne peuvent pas résulter de l’appel. Appelle l’enfant avec l’indicateur 'STATIC' défini sur 'true' pour l’exécution de l’enfant, provoquant la levée d’une exception lors de toute tentative d’opérations de changement d’état à l’intérieur d’une instance d’exécution où 'STATIC' est 'true', et réinitialise l’indicateur une fois l’appel Retour.

Vitalik Buterin, Christian Reitwiessner

Noyau

Finale

Métropole Byzantinium

EIP-225

Rinkeby testnet utilise une preuve d’autorité où les blocs ne sont extraits que par des signataires de confiance.

Péter Szilágyi

Propriété

EIP-234

Ajouter blockHash aux options de filtre JSON-RPC

Michée Zoltu

Interface

Brouillon

EIP-615

Sous-programmes et sauts statiques pour l’EVM

Greg Colvin, Paweł Bylica, Christian Reitwiessner

Noyau

Brouillon

EIP-616

Opérations SIMD pour l’EVM

Greg Colvin

Noyau

Brouillon

EIP-681

Format d’URL pour les demandes de transaction

Daniel A. Nagy

Interface

Brouillon

EIP-649

Délai de bombe de difficulté Metropolis et réduction de récompense de bloc. Retardé l’ère glaciaire (aka Difficulty Bomb) de 1 an et réduit la récompense de bloc de 5 à 3 ether.

Afri Schoedon, Vitalik Buterin

Noyau

Finale

Métropole Byzantinium

EIP-658

Intégration du code d’état de la transaction dans les reçus. Récupère et intègre un champ d’état indiquant l’état de réussite ou d’échec des reçus de transaction pour les appelants, car il n’est plus possible de supposer que la transaction a échoué si et seulement si elle a consommé tout le gaz après l’introduction de l’opcode "REVERT" dans EIP-140.

Nick Johnson

Noyau

Finale

Métropole Byzantinium

EIP-706

Compression rapide DEVp2p

Péter Szilágyi

Réseautage

Finale

EIP-721

Norme de jeton non fongible ERC-721. Une API standard qui permet aux contrats intelligents de fonctionner comme des jetons non fongibles (NFT) négociables uniques qui peuvent être suivis dans des portefeuilles standardisés et échangés sur des bourses en tant qu’actifs de valeur, similaires à ERC20. CryptoKitties a été la première implémentation populairement adoptée d’un NFT numérique dans l’écosystème Ethereum.

William Entriken, Dieter Shirley, Jacob Evans, Nastassia Sachs

Norme

Brouillon

EIP-758

Abonnements et filtres pour les transactions terminées

Jack Peterson

Interface

Brouillon

EIP-801

Norme canari ERC-801

ligi

Interface

Brouillon

EIP-827

Norme de jeton ERC827. Une extension de l’interface standard ERC20 pour les jetons avec des méthodes qui permettent l’exécution d’appels à l’intérieur de transfer et d’approbations. Cette norme fournit des fonctionnalités de base pour transférer des jetons, ainsi que permettre aux jetons d’être approuvés afin qu’ils puissent être dépensés par un autre tiers sur la chaîne. En outre, il permet au développeur d’exécuter des appels sur les transferts et les approbations.

Augusto Lemble

ERC

Brouillon

EIP-930

Stockage éternel ERC930. Le contrat ES (Eternal Storage) appartient à une adresse disposant d’autorisations d’écriture. Le stockage est public, ce qui signifie que tout le monde a des autorisations de lecture. Il stocke les données dans des mappages, en utilisant un mappage par type de variable. L’utilisation de ce contrat permet au développeur de migrer facilement le stockage vers un autre contrat si nécessaire.

Augusto Lemble

ERC

Brouillon