Dernière modification effectuée le 01.12.2022 20:31
Ce mardi 14 septembre le réseau Solana s’est interrompu pendant plusieurs heures, à cause d’une affluence trop importante de transactions. Cet épisode a rendu nécessaire un redémarrage complet du réseau, ce qui a engendré de nombreuses critiques à l’encontre de ce que certains appelaient un « Ethereum killer » il y a de cela quelques jours. Que s’est-il réellement passé ?
Solana, prétendant de taille à la couronne
Solana est un réseau blockchain capable de déployer des smart contracts comme Ethereum, Avalanche et d’autres blockchains dites « infrastructures ». Elle fonctionne sur la preuve d’enjeu (avec une spécificité, la proof of history) et se targue de faire profiter ses utilisateurs d’un coût transactionnel extrêmement faible.
Cependant, une caractéristique démarque Solana de ses concurrents : Solana serait capable de gérer un nombre de transactions par seconde bien plus important que celui de ses concurrents avec un cap à 50 000 transactions par secondes.
Ayant le vent en poupe depuis quelques semaines, notamment grâce à une hype importante autour des Non Fungible Tokens (NFT), le nombre d’utilisateurs du réseau a explosé. Et avec la renommée viennent les problèmes. Le réseau a dû être interrompu pendant plusieurs heures jusqu’à ce qu’un vote soit décidé pour le redémarrer.
Une attaque DDOS ? Pas vraiment…
Le DDOS est une attaque perpétrée par des personnes malveillantes à l’encontre d’un système informatique quelconque. L’idée est de surcharger d’informations les serveurs afin de créer une erreur dans le fonctionnement des systèmes informatiques. Cette méthode d’attaque est bien connue dans le monde de la sécurité informatique et devrait normalement être anticipée par les équipes de développement d’une technologie blockchain.
Seulement, Solana a peut-être surestimé sa capacité à pouvoir endurer d’importants afflux de transactions. Le réseau a été surchargé jusqu’à atteindre un pic de 400 000 transactions par seconde (par comparaison, le réseau Visa a pu gérer dans son histoire un maximum de 56 000 transactions par seconde).
Le problème se situe dans l’obligation pour une blockchain, un tant soit peu décentralisée, de synchroniser ses nœuds pour produire une chaîne de blocs cohérente. Le proof of history de Solana devait apporter une partie de la solution, mais l’affluence sur le réseau était telle que les validateurs n’ont pas pu prioriser les transactions à valider.
Sur Ethereum, le principe veut qu’une affluence de transactions en attente de validation soit tempérée par le paiement de frais de plus en plus élevés. Seules les transactions payées au plus haut seront validées, les autres échoueront.
Solana a pris le parti de faire les choses différemment pour garantir des frais de transaction faibles : les transactions mises en attente ne sont pas rejetées, mais transférées à un autre validateur. Cela a eu pour conséquence de surcharger la mémoire des validateurs de Solana qui, un à un, ont commencé à se déconnecter.
La cause n’était pas une attaque DDOS du réseau, mais une affluence de bots acheteurs connectés à la plateforme d’ido Raydium. À noter que depuis ce problème, deux nouvelles mises à jour ont été déployées par l’équipe de Solana sur leur GitHub, qui devraient empêcher un tel phénomène de se reproduire (« limit transaction forwarding ; prioritize transaction forwarding« ).
Solana réparé, non sans y laisser quelques plumes
Après avoir implémenté la mise à jour 1.6.25, le réseau Solana a pu redémarrer ce mercredi 15 septembre 2021 au petit matin. De nombreuses critiques ont vu le jour à propos de cet évènement. D’aucuns diront que Solana n’est pas décentralisé puisque l’équipe a pu s’accorder très rapidement sur un redémarrage du réseau. D’autres que la sécurité était très faible pour qu’un tel problème survienne.
Ce genre d’événement permet bien souvent de faire la différence entre les projets ayant de l’avenir et ceux qui tomberont dans l’oubli à l’issue de ce Bullrun. Par ailleurs, le prix du SOL, qui était en baisse depuis sa formidable ascension, n’a pas subi de grosses variations par la suite, ce qui reste plutôt rassurant vu l’ampleur de la panne.
Rome ne s’est pas faite en un jour.
Pour les plus courageux de nos lecteurs anglophones qui aimeraient entrer dans le détail technique du problème, un développeur du nom de Buffalu a expliqué ce qu’il se serait passé :