Ethereum : le hard fork Istanbul, qu’est-ce que ça change ?
Le hard fork du réseau Ethereum intitulé Istanbul approche à grands pas, puisqu’il est prévu pour le 8 décembre. Cette mise à jour introduira notamment l’interopérabilité entre Ethereum et Zcash, ou encore des améliorations sur les méthodes anonymisation utilisant les zk-SNARKs et les zk-STARK. Analysons ensemble le prochain hard fork d’Ethereum.
Processus de mise à jour d’Ethereum
Avant tout chose, revenons brièvement sur système de mise à jour du réseau Ethereum. Les mises à jour sont faites par le biais de forks, dont les caractéristiques sont préalablement débattues et validées par la communauté.
Le contenu de ces mises à jour est proposé par les développeurs, ou tout autre membre de la communauté par le biais d’EIP (ou Ethereum Improvement Proposal). Après être analysés puis vérifiés par la communauté, les EIPs sont mis à l’ordre du jour des réunions bimensuelles regroupant les développeurs travaillants sur Ethereum.
Si un consensus est atteint au cours de ces réunions, les EIPs sont implémentés sur les différents clients Ethereum, puis testées sur le réseau testnet Robsten avant d’être enfin déployées sur le mainnet Ethereum grâce à un hard fork.
Hard fork Istanbul, une mise à jour pas comme les autres
Le hard fork Istanbul est une première en termes de taille. En effet, ce sont plus de 30 EIPs différents qui ont été proposés pour cette mise à jour. Après discussions et délibérations, seuls 6 d’entres eux ont été jugés appropriées et prêts à être implémentés dans la mise à jour Istanbul.
Le hard fork Istanbul permettra d’initier la phase 0 de la transition d’Ethereum 1.0 à Ethereum 2.0. Cette transition vise à rendre plus scalable le réseau Ethereum, c’est-à-dire lui permettre de traiter plus de transactions à la seconde.
Nous allons à présent détailler les spécifications des 6 EIPs retenus : les EIP 152, 1108, 1344, 1884, 2028 et 2200.
EIP 152 : intégration de la fonction de hachage BLAKE2
L’EIP 152 vise à intégrer la fonction de hachage BLAKE2 à l’EVM (Ethereum Virtual Machine). Cette fonction est d’ores et déjà utilisée par d’autres blockchains comme celle de Zcash et permettra d’améliorer l’interopérabilité d’Ethereum avec ces autres blockchains.
Ainsi, les programmes dans l’EVM seraient en mesure de vérifier les blocs des blockchains implémentant cet algorithme. Cela permettra notamment d’effectuer des échanges atomiques – atomic swaps – entre Zcash et Ethereum.
EIP 1108 : réduction des coûts d’opération lors de l’utilisation de ZK-SNARKs
Cet EIP permet la réduction des coûts en gas liés aux instructions utilisant la courbe elliptique alt_bn128. Cette courbe est à l’origine des mécanismes offuscations utilisés par les ZK-SNARKs. Pour rappel, les ZK-SNARKs permettent d’ajouter un niveau d’anonymat aux transactions sur Ethereum.
EIP 1344 : ChainID
Il existe de nombreux réseaux Ethereum, qu’ils soient publics ou privés. Le ChainID est un identifiant propre à chaque réseau qui permet de l’identifier. L’EIP 1344 donne la possibilité aux smarts contracts de consulter le ChainID de la chaîne sur laquelle ils fonctionnent.
Cela sert notamment aux contrats opérant en seconde couche, pour s’assurer qu’ils suivent bien la chaîne principale (notamment en période de hard fork). C’est une fonctionnalité qui sera par exemple utilisée par Plasma, une des solutions de mise à l’échelle du réseau Ethereum.
EIP 1884 : modification du prix en gas de certaines fonctions
Dans un smart contract, chaque action réalisée (création d’une transaction, modification d’une information, etc.) a un coût en gas. L’EIP 1884 vise à rétablir un équilibre raisonnable entre le prix en gas de certaines actions (liées aux fonctions de ces contrats) et la puissance de calcul nécessaire à la réalisation de ces actions dans l’EVM. D’un point de vue plus technique, le coût en gas sera augmenté pour les actions SLOAD, BALANCE et EXTCODEHASH : en effet, elles sont peu chères pour le moment, alors qu’elles consomment beaucoup de puissance de calcul.
EIP 2028 : réduction du coût en gas des transactions
L’EIP 2028 permettra de réduire le coût en gas lors de l’ajout de données à une transaction de 68 à 16 gas par byte. Cela devrait permettre de réduire le coût de l’ensemble des opérations qui seront réalisées off-chain. Tout comme l’EIP 1344, cette modification sera principalement utile aux solutions construites en seconde couche (SNARKs, Plasma, Sidechains, etc.). Une autre bonne nouvelle : cela devrait apporter des gains en terme de mise à l’échelle.
EIP 2200 : modification du calcul du coût de l’opération SSTORE
L’EIP 2200 va modifier la manière dont est calculé le coût en gas de la fonction SSTORE dans l’EVM. Cette fonction permet d’enregistrer des données dans la mémoire d’un smart contract. Cela permettra notamment de regrouper en une seule action le transfert de plusieurs jetons ERC-20.
Que faire pour se préparer au hard fork Istanbul ?
Si vous êtes simple détenteur d’ether : ce hard fork sera invisible pour vous et aucune action ne sera requise de votre part.
À l’inverse, les opérateurs de nœud devront, eux, mettre à jour la version de leur client Ethereum. Prévu pour le bloc 9,069,000, le hardfork Istanbul devrait donc prendre place durant ce week-end.
Si vous souhaitez en apprendre plus sur les spécifications et le déroulement de la transition d’Ethereum 1.0 à Ethereum 2.0, n’hésitez pas à consulter notre podcast sur le sujet :