Comment s’est passée la mise à jour Byzance ?
C’est au bloc 4 370 000 que le hard fork Byzance d’Ethereum a été mis en œuvre en octobre 2017. Pour rappel, un hard fork représente la division d’une blockchain en deux, ce qui crée alors deux versions : une ancienne et une nouvelle. Les deux ne sont pas compatibles l’une de l’autre et toutes les transactions sont désormais enregistrées sur la nouvelle chaîne de blocs. Cette mise à jour a porté sur la sécurité, la rapidité et la légèreté de la blockchain permettant des transactions beaucoup plus rapides, d’un côté et de l’autre une plus grande sécurité.
Les mises à niveau effectives du hard fork Byzance
Quand un hard fork est mis en œuvre par une communauté et les développeurs d’une blockchain, celui-ci a pour objectifs des améliorations spécifiques. Cela est nécessaire pour améliorer le fonctionnement de la chaîne de blocs. Le hard fork Byzance portait sur 8 mises à niveau qui sont :
- L’ajout de la prise en charge de certaines vérifications de signature ;
- L’ajout d’un nouveau modèle mathématique et de vérification d’appariement permettant un meilleur fonctionnement de « zk-Snarks » (Preuve à divulgation nulle de connaissance) ;
- L’ajout d’opcodes « Revert » à la blockchain permettant d’arrêter des contrats intelligents dans le cas où une erreur se produit sans pour autant consommer tout le gaz payé pour une transaction ;
- L’ajout de la prise en charge des valeurs variables ;
- L’ajout d’un champ d’état aux reçus de transactions pour indiquer le succès ou l'échec de la transaction ;
- L’ajout de l’opcode « Staticcall » permettant des appels aux nœuds ne demandant pas des changements d’état ;
- La modification de la formule sous-jacente à l’ajustement de la difficulté pour tenir compte des blocs Ommer ;
- Retardement de la bombe de difficulté rendant l’exploitation minière peu rentable encourageant les mineurs à passer à la preuve d’enjeu (PoS – proof of stake).
Quelques changements mis en place avec Byzance
Grâce au hard fork Byzance, Ethereum a fait peau neuve avec différentes améliorations, dont les plus notables sont les suivants :
Amélioration de la cryptographie
Lors de cette mise à niveau, un codage natif d’Ethereum a été amélioré afin de réduire les besoins en énergie pour la mise en place de « zk-Snarks » ; une cryptographie à connaissance nulle où chacune des parties d’une transaction est en mesure de vérifier l’autre sans que les informations soient visibles. Cela est devenu la norme de confidentialité pour les transactions de cryptos.
Intégration du code d’état des transactions dans les reçus
Avant la mise à niveau, les transactions faisaient référence à un paramètre racine dans la structure de l’arbre de Merkle : les blocs s’appuyant les uns sur les autres pour sécuriser la chaîne. Cette structure de données utilise les données des blocs précédents dans l’objectif de créer des informations de vérification pour permettre d’examiner un bloc au lieu de vérifier chaque bloc à chaque transaction. Grâce à cette MAJ, les transactions communiquent le succès ou l’échec au lieu de rechercher le paramètre. La blockchain Ethereum a gagné en rapidité dans le traitement des transactions.
Changements d’état
Les transactions par nature modifient l’étant de la chaîne de blocs tandis que les « smart contracts » exécutent les transactions. De ce fait, il était nécessaire d’implémenter un système pour un utilisateur pour appeler ou interroger un contrat intelligent sans pour autant initier un changement d’état. Cela est aujourd’hui possible grâce à la fonction « Staticcall ».
Arrêt d’un contrat intelligent en cas d’erreur
Avant la mise à niveau, les « smart contracts » étaient sujets à des erreurs et les initiateurs étaient toujours facturés pour l’ensemble des transactions. Il faut savoir que les frais de gaz peuvent être onéreux pour les contrats intelligents et c’est pour cette raison que cette mise à jour a été importante empêchant alors les créateurs de contrat de perdre le « gwei » - la dénomination de l’ETH utilisée pour payer les transactions, alors que le contrat n’a pas été exécuté intégralement.
Bombe de difficulté
Depuis son développement, Ethereum travaille sur le mécanisme de consensus PoS (proof of stake – preuve d’enjeu/de participation). Celui-ci n’a pas été simple à mettre en place dans la mesure où de nombreux changements étaient nécessaires. Cela obligeait par ailleurs les participants à la blockchain d’utiliser leur ETH comme garantie pour le privilège de devenir un « validateur ». La bombe de difficulté, quant à elle, est une augmentation de la difficulté de minage, mise en place pour décourager le minage qui est énergivore contre des récompenses en jeton. Cela a été retardé dans le hard fork Byzance.
Blocs Ommer
Quand les mineurs ou les validateurs exploitent de nouveaux blocs, il y a une probabilité que plusieurs d’entre eux soient extraits simultanément en raison de la nature distribuée de la chaîne de blocs. Quand cela se produit, le réseau choisit celui à ajouter. Dans la blockchain Ethereum, ceux qui sont mis de côté – qui n’ont pas été choisis donc – sont appelés des blocs Ommer. Avec la mise à jour Byzance, ces blocs délaissés sont utilisés et pris en compte pour l’ajustement de la difficulté. Cela permet de s’assurer que la difficulté ne peut être manipulée grâce à l’ajustement du taux Ommer.
Laisser un commentaire