Vitalik Buterin et ses amis célèbrent le succès de la fourchette de Byzance. 16 octobre 2017Le 16 octobre 2017 à 05:22 UTC, la cinquième fourchette de l'histoire du système Ethereum s'est produite - la deuxième crypto-monnaie la plus populaire sur le marché mondial après le bitcoin. La capitalisation d'Ethereum a augmenté en particulier ces derniers mois, au milieu d'une augmentation stupéfiante de la popularité des jetons ICO qui utilisent
la norme de jeton Ethereum ERC-20 .
La mise à niveau logicielle ne peut pas être considérée comme réussie. Au cours des derniers jours, le logiciel Ethereum avec le support Byzantium a été appelé à plusieurs reprises en raison de graves bogues. Les développeurs (photo ci-dessus) étaient pressés de respecter le délai avant la fourchette prévue. Tout le monde ne croyait pas qu'ils réussiraient: certains ont
exprimé l'avis qu'avec des bugs aussi graves, la fourche devrait être reportée de plusieurs jours. Mais non. La mise à jour de Byzance s'est déroulée conformément au plan.
Byzance et le futur Constantinople sont deux parties de la grande mise à jour de Metropolis. Il s'agit de la plus importante de toutes les mises à niveau du système Ethereum prévues en 2015, lorsque le plan de développement Ethereum a été élaboré.
Byzance
Byzance comprend
neuf protocoles d'amélioration d'Ethereum (EIP), soit neuf patchs distincts. Parmi eux, la correction des problèmes d'ajustement de complexité, les opérations
REVERT, les opérations
STATIC CALL , la fonction de retard de complexité et l'insertion de données de retour de transaction dans le reçu. Voici la liste complète des modifications:
EIP 100 ,
EIP 140 ,
EIP 196 ,
EIP 197 ,
EIP 198 ,
EIP 211 ,
EIP 214 ,
EIP 649 ,
EIP 658 .
Tous ces correctifs devraient améliorer les performances du réseau et réduire les risques d'exploits. La plupart d'entre eux apportent des changements plutôt mineurs, qui ne sont pas immédiatement évidents pour ceux qui ne sont pas impliqués dans l'élaboration du protocole. Mais il y a des changements assez importants.
Par exemple, l'un d'eux est associé au traitement du mauvais code dans les contrats intelligents. Le paiement ne fonctionnera pas s'il y a des erreurs de programmation, et une action programmée peut se produire, selon le type d'erreur. De plus, ce correctif modifie le cycle de vie du contrat. Ainsi, les mises à jour des contrats peuvent désormais être préprogrammées, c'est-à-dire configurées dans le code source.
De plus, les contrats bénéficient d'une meilleure protection. Des mesures spéciales ont été développées pour protéger contre les attaques potentielles de rentrée (attaque de réentrance). Si quelqu'un n'a pas rencontré d'attaques de rentrée, regardez le code d'
un tel contrat :
pragma solidity ^0.4.8; import "./HoneyPot.sol"; contract HoneyPotCollect { HoneyPot public honeypot; function HoneyPotCollect (address _honeypot) { honeypot = HoneyPot(_honeypot); } function kill () { suicide(msg.sender); } function collect() payable { honeypot.put.value(msg.value)(); honeypot.get(); } function () payable { if (honeypot.balance >= msg.value) { honeypot.get(); } } }
Nous voyons ici comment une attaque de rentrée est organisée. Le contrat
HoneyPot
enverra en continu des pièces à l'adresse
HoneyPotCollect
tant qu'il aura de l'argent, jusqu'à ce qu'il soit complètement vide.
Un tel code peut être intégré dans les contrats d'autres personnes, à partir desquels les correctifs Byzance tentent de protéger le système.
La nouvelle fonction d'insertion des données de retour de transaction dans le reçu permet aux clients légers de déterminer le succès d'une transaction sans l'exécuter réellement dans la machine virtuelle Ethereum.
Un autre patch
EIP 649 retarde l' utilisation de la "bombe de complexité" avec un passage à la preuve de propriété (PoS), ce qui rend l'exploitation minière inutile. Il devrait protéger contre le fait que le temps de transaction deviendra trop long (maintenant les transactions éther prennent 25 secondes, ce qui est beaucoup plus que la norme pour Ethereum en 10 secondes). Ce patch devrait également réduire la récompense des mineurs pour les blocs de 5 ETH à 3 ETH, accélérer et réduire le coût de l'exploitation.
Un autre correctif corrige une erreur dans l'algorithme pour changer la complexité de l'exploitation minière, donc maintenant la vitesse de calcul du bloc deviendra plus stable.
Enfin, Byzance contient quelque chose appelé zk-SNARK (Zero-knowledge Succinct Non-interactive ARgument of Knowledge) - confirmation des transactions avec zéro connaissance, la base du protocole du cryptosystème anonyme Zcash. Désormais, des transactions privées absolument anonymes seront disponibles dans Ethereum.
Après Byzance, la prochaine mise à jour prévue est Constantinople, la deuxième partie de la mise à niveau de Metropolis. Il y aura encore plus de changements et corrigera de nouveaux bugs qui devraient sortir à l'avenir après les mises à jour actuelles. Le système n'en est qu'au stade initial de développement et, jusqu'à présent, il comporte trop de trous. Mais progressivement, ces trous se ferment, il est donc de plus en plus difficile de trouver de nouveaux exploits.
La fourchette actuelle est la première tenue dans le contexte d'un large intérêt public et d'une grande popularité d'Ethereum, une attention particulière y est donc portée. À en juger par le
journal de fourche , l'extraction dans l'ancienne chaîne de blocs a cessé. Tous sont passés à un nouveau. Et
Ethereum a presque récupéré après un effondrement avant la fourche.
En général, tout s'est bien passé. Et les développeurs d'Ethereum, avec Vitalik
, ont déjà célébré cet événement dans un cadre intime, c'est-à-dire à la maison à côté d'une table avec des fourchettes levées en l'air.