Constantinople est le très attendu prochain fork de la blockchain Ethereum. Prévue aujourd’hui, sa mise en place a été suspendue hier après la découverte d’une faille qu’elle introduisait dans certains smart contracts, permettant à une personne mal intentionnée d’en siphonner les fonds.
Ethereum devait aujourd’hui connaître un fork, un changement du protocole de la blockchain introduisant de nouvelles règles et s’imposant à l’ensemble des utilisateurs d’un client Ethereum (opérateurs de nœuds et mineurs). En d’autres termes, un « upgrade » n’est pas une chose à prendre à la légère.
Or l’équipe d’Ethereum a décidé hier de repousser la mise à jour. En cause, la découverte d’une vulnérabilité dans le code de Constantinople. L’entreprise ChainSecurity, à l’origine de cette découverte, explique sur Medium que l’une des améliorations introduites par ce fork était susceptible de fournir à des attaquants une faille permettant de voler les fonds des participants à un smart contract.
Siphon
Qualifiée d’attaque de « réentrance » (« reentrancy » dans le texte), cette vulnérabilité permet à une personne mal intentionnée participant à un smart contract (en l’occurrence parmi ceux utilisant une fonction transfer () ou send () suivie d'une opération de changement d'état) de réentrer à plusieurs reprises la même fonction sans que les autres utilisateurs ne soient informés du changement d’état. Et ainsi retirer les fonds partagés à volonté.
« Étant donné que le risque zéro n’existe pas et que le temps requis pour déterminer les risques est plus long que le temps disponible avant la mise à niveau prévue de Constantinople, il a été décidé de remettre le fork à plus tard » indique l’équipe d’Ethereum. Une nouvelle date devrait être connue d’ici à vendredi.