Rejoignez-Nous sur

Istanbul, le guide de la fork prévue le 4 décembre

a27rGOa10E4oeF9xXr6g03Cg2AmMA3h QxjkLqsa3 frgYAdGaHYHqXDNsPq4m7ejeoxpc7MGnY2HOWVfJTwV3 mBCcu 8Rsc7NqsW4zJKqwyFt tWiYNPtBai5ay Hqd32nJ3fm

News

Istanbul, le guide de la fork prévue le 4 décembre

pasted image 0

Annoncée et confirmée par la publication des versions 1.9.7 “Quad Kicker” du client Geth, 2.6.5 du client Parity et 1.3.4 du client Hyperledger Besu, la prochaine fork d’Ethereum est programmée pour le bloc numéro 9,069,000 soit a priori dans la journée du 4 décembre.

a27rGOa10E4oeF9xXr6g03Cg2AmMA3h QxjkLqsa3 frgYAdGaHYHqXDNsPq4m7ejeoxpc7MGnY2HOWVfJTwV3 mBCcu 8Rsc7NqsW4zJKqwyFt tWiYNPtBai5ay Hqd32nJ3fm
Istanbul à portée de main, bague Hagia Sophia par le joaillier turc Sevan Bıçakçı

Cet article propose de faire le tour des 6 différents EIPs (Ethereum Improvement Proposal) qui seront ainsi intégrés dans Ethereum. Le déploiement d’Istanbul va apporter:

  • Un alignement du coût de certaines opérations machines avec leur difficulté d’exécution et une amélioration de la résilience d’Ethereum à certaines attaques
  • Des gains de performances pour les solutions de scalabilté qui exploitent des techniques cryptographiques basés sur les SNARKs et STARKs
  • De l’interopérabilité entre Zcash et Ethereum
  • De nouvelles fonctionnalités pour les smartcontracts. 

En route vers les EIPs 152, 1108, 1344, 1884, 2028, 2200!

Introduction: le processus de mise à jour d’Ethereum

Le protocole Ethereum est mis à jour par des forks dont le contenu est publiquement et librement discuté. Tout à chacun peut contribuer aux EIPs en suivant le processus de l’EIP-1. Une fois ajoutées au dossier github correspondant les EIPs sont commentées et débattues par la communauté des développeurs et des utilisateurs jusqu’à atteindre un niveau de maturité et être mises à l’agenda des meetings bi-mensuels des Core Developers. Ces meetings sont diffusés en direct sur des plateformes de streaming avec un chat libre et une discussion animée par des représentants des différents des différents clients Ethereum en plus des initiateurs des EIPs à l’agenda. L’objet des meetings est avant tout la faisabilité technique et la priorisation des développements. Les EIPs sont ensuite implémentées par les développeurs des clients et la mise à jour est programmée sur le testnet Ropsten puis sur le réseau principal d’Ethereum. 

Une procédure guidée par l’échéance de la prochaine fork

Cette approche a prévalu jusqu’à aujourd’hui avec des EIPs implémentées et déployées en groupe à chaque fork. De nombreuses EIPs sont proposées et discutés en parallèle et avec des niveaux de finalisation variables tandis que l’échéance de la prochaine fork impose une cadence pour faire partie de la prochaine mise à jour. Cette approche a pu parfois limiter le temps nécessaire à la revue des EIPs. 

ahmet oran 5 5493563
Triptyque sans titre (2010) de l’artiste turc Ahmet Oran exposé au Musée d’Art Moderne d’Istanbul

Les futures forks tenteront une procédure centrée sur les EIPs pour leur permettre de gagner en maturité indépendamment du calendrier des mises à jour. Les EIPs matures seront d’abord supportées par des clients Ethereum, des développeurs ou la communauté, puis implémentées dans les clients principaux, puis testées et enfin acceptées c’est-à-dire mis au programme d’une future fork.

EIP 152 : Contrat précompilé pour la fonction de hachage BLAKE2

Cette EIP ajoute la fonction de hachage BLAKE2 ainsi que plusieurs de ces variantes aux opérations natives de la Machine Virtuelle Ethereum (EVM). Pour mémoire, chaque client Ethereum émule l’EVM dans laquelle sont exécutés les instructions machines (opcodes) contenus dans les transactions de la blockchain. Ces opcodes sont le langage natif de l’EVM et contiennent aussi bien des instructions basiques comme ADD (addition), DIV (division), SSTORE(stockage) etc. que des instructions plus sophistiquées comme SHA3 pour la fonction de hachage keccak256. Les contrats précompilés permettent d’étendre les fonctionnalités de l’EVM à partir d’opérations codées dans le langage d’écriture de chaque EVM. Par exemple la fonction de hachage SHA256 qui est très répandue dans bitcoin est disponible dans l’EVM de chaque client Ethereum via l’implémentation de référence dans le langage du client correspondant. Ainsi Parity utilise l’implémentation en Rust, Hyperledger Besu en Java et Geth en Go.  Ces implémentations sont référencées dans la blockchain à la même adresse dans chaque client. Pour la fonction SHA256 il s’agit de l’adresse 2 (0x0000000000000000000000000000000000000002), qui ne contient pas de code dans la blockchain mais lorsque l’adresse 2 est invoquée par un smartcontract l’EVM l’interprète via l’implémentation locale du client.

Extrait des contrats précompilés en Go du client Geth 

Cette façon de procéder pour ajouter des fonctionnalités à l’EVM permet une grande flexibilité et les déploiements privés d’Ethereum peuvent à l’envie retirer ou ajouter des contrats précompilés. Pour les utilisateurs d’Ethereum chaque opération machine a un prix correspondant à sa difficulté d’exécution en termes de ressources informatiques, comme ces contrats précompilés sont très optimisés et implémentés nativement dans les clients, leurs fonctionnalités sont très peu onéreuses. Il est néanmoins nécessaire pour invoquer un contrat précompilé d’utiliser (et donc de payer) l’opcode CALL qui déclenche l’appelle à un contrat, l’EIP-1109 (non finalisée) a ainsi pour but de simplifier encore ce fonctionnement et donc de baisser les coûts pour les utilisateurs.

L’ajout de BLAKE2 par EIP-152 rend disponible la fonction de hachage principale de ZCash et autres blockchains faisant usage de Equihash comme Komodo. Notons au passage que l’algorithme de minage Equihash a été développé par des chercheurs du centre SnT de l’Université du Luxembourg tandis que le français Jean-Philippe Aumasson faisait partie de l’équipe à l’origine de BLAKE2. 

L’ajout de nouvelles fonctions de hachage permet d’améliorer l’interopérabilité d’Ethereum avec les blockchains reposant sur ces fonctions. Il devient possible de vérifier le contenu d’un bloc d’une autre blockchain à l’intérieur d’Ethereum puis par exemple de déclencher des contrats de finance décentralisée.

EIP-1108: Réduction du coût des vérifications de couplage pour la courbe elliptique alt_bn128 

Les courbes elliptiques ont des applications très importantes en cryptographie, citons par exemple le principe de signature numérique ECDSA qui est très largement répandu en blockchain. Les courbes elliptiques sont aussi présentes dans les techniques d’obfuscation comme les ZK-SNARKs (cet article décrit succinctement leurs fonctionnement) qui font usage d’opérations arithmétiques sur ces courbe. Avec l’intégration de l’EIP-196 dans la fork Byzantium de novembre 2017 (voir l’article d’Ethereum-France sur le sujet), les opérations sur la courbe alt_bn128 ont été introduites dans un contrat précompilés  et l’EIP-1108 vient réduire le coût de ces opérations. Depuis Byzantium de nouvelles implémentations très performantes de ces opérations sont disponibles notamment dans les librairies officielles de Go et Rust, en conséquence leur utilisation dans Ethereum seront moins onéreuses.

EIP 1344: Création d’un opcode spécifique pour le ChainID

Ethereum existe aussi bien dans des instanciations publiques que privées. Il est très simple de lancer sa propre version, il suffit de créer un bloc de départ (Genesis Block) et d’inviter des pairs à faire partie de ce réseau en leur donnant ces informations. Les réseaux ethereum alternatifs sont souvent conçus sur mesure pour répondre à des besoins spécifiques de leur participants et la personnalisation peut toucher l’ensemble du protocol, de la forme de consensus (PoA, PoS, IBFT, PoW, …), aux contrats précompilés, en passant par la distribution et les règles d’émission des éthers natifs de la blockchain. Le site ChainID.Network en référence plusieurs dizaines. Les wallets restent compatibles d’une instanciations à l’autre, il est d’ailleurs possible de se connecter à un n’importe quel réseau via MetaMask avec une adresse RPC:

i77Mz rvPRC3OhrifZONIwMVhu7r BIUGlVC037kx3XOxe4H MbttTi4FPTJo1ms2LtdmGN4S4GrJNKR3WJ6c9kko94NaJB tgDtEtr8uih5yveHkHcmuzSW4gQD91flpCkAD1tV
L’interface d’ajout de chaînes dans MetaMask

Depuis novembre 2016 (fork Spurious Dragon et EIP-155) Ethereum possède un mécanisme de protection pour assurer qu’une transaction créée pour certaine chaîne ne puisse pas être répliqué sur une autre chaîne ethereum. La signature d’une transaction s’applique ainsi sur un identifiant de la chaîne ou ChainID. L’EIP-1344 introduit la possibilité de consulter le ChainID à l’intérieur d’un contrat afin entre autres de permettre de nouveaux mécanismes pour les méthodes de scalabilité comme Plasma ou les Sidechains. Ces dernières communiquent souvent avec le réseau principal à l’aide de contrats servant de pont (par exemple Parity Bridge) qui vont pouvoir bénéficier de cet opcode pour vérifier la provenance d’une transaction d’une chaîne à l’autre.

EIP 1884: Changement dans le coût des opcodes dont la difficulté d’exécution dépend de l’étendue de la structure des données

Comme évoqué plus haut, les opcodes ont un prix (exprimé en Gas) qui correspond à leur difficulté d’exécution en termes de ressources informatiques. Pour des opcodes qui impliquent des opérations de lecture cette difficulté d’exécution dépend de l’étendue de la structure des données à parcourir. Par exemple l’opcode SLOAD consulte une case mémoire dans l’état de l’EVM, cette opération est d’autant plus difficile que l’état de l’EVM est grand. Or l’état de l’EVM grossit à chaque bloc avec l’activité intense du réseau. L’EIP-1884 change le coûts des opcodes SLOAD de 200 à 800 gas, de BALANCE de 400 à 700 gas, et EXTCODEHASH de 400 à 700 gas. Enfin le nouvel opcode SELFBALANCE est créé avec un coût très faible (5 gas).L’opcode EXTCODEHASH renvoie le hash du code d’un contrat. L’opcode BALANCE renvoie le solde d’un compte tandis que SELFBALANCE renvoie le solde du contrat en cours d’exécution. 

EIP 2028: Réduction du coût en gas de l’inclusion de données dans les transactions

Cette EIP réduit le coût en gas de l’ajout de données dans une transaction de 68 gas par byte à 16 gas par byte. Le coût en gas se justifiait des considérations sur les délais de transmission des données dans le réseau. Des travaux récents (Sompolinsky et Zohar puis Pass, Seeman et Shelat) ont amélioré la compréhension de ces délais et motivé ce changement qui offre des gains directs de scalabilité. En effet, les méthodes utilisant des opérations réalisées hors de la chaîne principale seront moins onéreuses. Cela concerne aussi bien les SNARKs et STARKs que les Sidechains et Plasma mais aussi les oracles! 

Une excellente nouvelle en somme à laquelle ont largement œuvré les équipes de StarkWare dont le cofondateur (et co-auteur de cet EIP) Eli Ben Sasson sera présent à EthCC!

EIP 2200: Définition du coût net en gas de l’opcode SSTORE

L’opcode SSTORE est l’instruction utilisée par l’EVM pour enregistrer une information dans sa mémoire. Son coût d’exécution est différent selon qu’il faille créer une nouvelle case mémoire (20,000 gas), écraser une information existante par une nouvelle information (5,000 gas) ou supprimer la case mémoire (remboursement de 15,000 gas). Cette EIP optimise le fonctionnement de SSTORE et permettra par exemple de regrouper pour un coût moindre des transferts multiples de jetons ERC-20 

atilla torunoglu yabali ihtiyar fazil dayi old fazil dayi with a hayfork polatli ankara 1963 36 4034912
« Old Fazıl Dayı with a hayfork, Polatlı-Ankara » 1963 photographie de l’artiste turc Atilla Torunoğlu exposée au Musée d’Art Moderne d’Istanbul

Que devez-vous faire d’ici au 4 décembre ?

Mettre à jour votre nœud et vous inscrire au meetup de débriefing de Devcon 5!



Retrouver l’article original de JdeTychey ici: Lien Source

BlockBlog

Le Meilleur de l'Actualité Blockchain Francophone & Internationale | News, Guides, Avis & Tutoriels pour s'informer et démarrer facilement avec Bitcoin, les Crypto-Monnaies et le Blockchain. En Savoir Plus sur L'Équipe BlockBlog

Commenter cet Article

Commenter cet Article

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Plus dans News

Les Plus Populaires

Acheter des Bitcoin

Acheter des Alt-Coins

Sécuriser vos Cryptos

Vêtements et Produits Dérivés

Top
commodo ut quis quis, elit. vulputate, justo commodo libero diam ipsum Sed