- Retour au menu
- Retour au menuTarifs
- Retour au menuRecherche
- Retour au menu
- Retour au menu
- Retour au menu
- Retour au menu
- Retour au menuWebinaires et Événements
Ce que signifie le « Bitcoin Bug » : un guide sur la malléabilité des transactions
Que signifie la malléabilité des transactions, et Bitcoin est-il corrompu ou non ? Découvrez-le ici.

Cette semaine, un terme inconnu de nombreux bitcoiners T apparu : la malléabilité des transactions. Mt Gox l'a citécomme une raison principale pour la suspension des retraits, et il a également été mentionné comme la base d'un exploit utilisé dans unattaque massive contre le réseau BitcoinCette semaine. Alors, qu'est-ce que c'est, comment ça marche et faut-il s'inquiéter ? Voici ce que nous savons.
Qu’est-ce que la malléabilité des transactions ?
Il s'agit d'une attaque permettant de modifier l' ID unique d'une transaction Bitcoin avant sa confirmation sur le réseau Bitcoin . Cette modification permet de faire comme si la transaction n'avait T eu lieu, si toutes les conditions sont réunies.
Est-ce la même chose que la double dépense ?
Non. La double dépense consiste à dépenser des pièces une fois, puis à créer une autre transaction avec ces mêmes pièces avant la confirmation de la première transaction. L'astuce consiste ensuite à faire confirmer la transaction frauduleuse sur le réseau Bitcoin au préalable, afin que la première transaction n'ait T lieu. Concrètement, cela signifie que vous pouvez dépenser vos pièces deux fois.
Comment fonctionne la malléabilité des transactions ?
Pour comprendre cela, vous devez savoir comment fonctionne une transaction Bitcoin .
Lorsque vous envoyez des bitcoins à quelqu'un, vous ne les retirez T d'un compte pour les envoyer par la poste. Les bitcoins ne sont jamais envoyés de cette manière. Une transaction est créée sur la blockchain Bitcoin .
La blockchain agit comme un grand livre général pour l'ensemble du réseau Bitcoin . Elle enregistre les adresses Bitcoin qui ont envoyé des fonds à d'autres adresses Bitcoin , et à quel moment. Cela lui permet d'avoir un enregistrement complet du nombre de bitcoins pouvant être attribués à chaque adresse du réseau à un instant T.
Lorsqu'une transaction Bitcoin est effectuée, elle comprend des informations telles que les adresses d'où proviennent les Bitcoins (les entrées), où ils vont (les sorties), les montants transférés et les adresses qui ont envoyé ces fonds à l'adresse de l'expéditeur.
[post-citation]
Chaque transaction doit être identifiée de manière unique afin de pouvoir être référencée dans la blockchain. Cet ID de transaction (TX ID) est généré en récupérant les informations de la transaction et en les exécutant via une fonction de hachage.
Le hachage est une procédure mathématique qui combine différentes données pour produire une information plus courte, appelée hachage. Un hachage de transaction inclut notamment la signature numérique de l'utilisateur, qui prouve que la transaction provient bien de lui. C'est un moyen pour lui de « signer » numériquement la transaction.
ONEune des principales qualités d'une fonction de hachage est qu'il est impossible de déterminer l'information d'origine simplement en observant le hachage. Il est également impossible de prédire le résultat du hachage à partir des informations de départ. La moindre modification de ces données modifiera le hachage de manière totalement imprévisible.
Cela rend les identifiants de transaction pratiquement impossibles à usurper. Chaque transaction ne doit avoir qu'un ONE hachage possible. Vous pouvez prouver la validité d'une transaction en exécutant simplement toutes les informations qui la composent via la fonction de hachage, afin de vérifier que vous obtenez le même hachage.
C'est du moins l'idée. Mais c'est là qu'intervient la malléabilité. Les signatures numériques de l'utilisateur utilisées dans le hachage pour « signer » la transaction sont censées respecter un certain format. Ce format n'était T toujours correctement vérifié. Il était donc possible d'introduire une ONE mal formatée, tout en étant acceptée. Cette modification de la signature permet de créer différents hachages pour la même transaction.
Ce n'est pas bon. Mais il s'avère que ce n'est pas non plus terrible. Voici pourquoi.
Comment cela peut-il causer des problèmes ?
Un problème se pose ici au niveau des plateformes d'échange, que les utilisateurs de Bitcoin utilisent souvent pour acheter et vendre des bitcoins. Ils envoient leur monnaie fiduciaire ou leurs bitcoins à une plateforme d'échange, où ils sont déposés sur un compte afin d'être convertis. À un moment donné, ils peuvent souhaiter retirer des bitcoins de leur compte.
Plusieurs scénarios sont possibles. En voici quelques-uns :
Attaques individuelles malveillantes
Imaginons ALICE gère une plateforme d'échange et qu'Ève y détienne des bitcoins. ALICE décide de retirer ses bitcoins et demande à ALICE de les lui envoyer à son adresse. Lorsqu'Alice les envoie, une transaction est automatiquement créée, transmise au minage afin d'être intégrée à la blockchain Bitcoin .
Mais ALICE prétend qu'Alice ne les a jamais envoyés. Elle exploite la faille de malléabilité des transactions pour reproduire la transaction originale d'Alice, en modifiant légèrement la signature pour produire un hachage différent. Elle retransmet ensuite cette transaction avec un ID différent.
Il est possible que la transaction d'Ève soit d'abord confirmée sur la blockchain. Dans ce cas, le réseau considérera la transaction comme valide et n'enregistrera T celle d'Alice. Ève pourra alors se plaindre auprès d' ALICE de ne T avoir reçu les bitcoins. ALICE vérifiera son ID de transaction dans la blockchain, elle ne le trouvera T et pourrait tenter d'envoyer davantage de bitcoins, ce qui la ruinerait.
Des accidents bien intentionnés
Si vous utilisez votre propre logiciel pour gérer vos bitcoins, il peut générer des hachages erronés. Ces hachages peuvent ensuite être corrigés par un autre portefeuille plus performant, qui les formatera correctement. Cela pourrait toutefois modifier l' ID de transaction. Si votre portefeuille n'est pas conçu pour détecter les transactions présentant les mêmes caractéristiques mais un ID différent, il risque de se retrouver avec des transactions bloquées. Pire encore, il pourrait penser qu'il dispose encore de ces cryptomonnaies à dépenser.
Quoi qu'il en soit, si votre logiciel ne peut T gérer la situation, c'est un véritable cauchemar comptable. Gregory Maxwell, développeur CORE de Bitcoin , s'interroge sur cette possibilité. ici.
Attaques massives par déni de service
Quelqu'un pourrait également causer des problèmes plus importants au réseau Bitcoin en lançant délibérément des attaques visant à altérer la malléabilité des transactions sur plusieurs plateformes d'échange à la fois, peut-être en utilisant un logiciel conçu pour créer des transactions mutantes. C'est ce qui semble s'être produit cette semaine, touchant plusieurs plateformes d'échange.
Les systèmes de comptabilité back-end de ces échanges peuvent être capables de gérer un nombre modéré de transactions mutantes, mais s'ils sont bombardés de manière répétée, cela pourrait leur causer des problèmes logistiques pendant un certain temps.
Cela pourrait également engendrer des problèmes à court terme pour le marché. Toute incertitude ou tout doute quant à la stabilité du marché aura naturellement un impact sur les prix, en particulier avec une classe d'actifs aussi peu liquide et volatile.
Cela signifie-t-il qu'il y a un bug dans Bitcoin?
Plusieurs problèmes liés aux technologies utilisées par le réseau Bitcoin ont entraîné des difficultés de malléabilité. ONEun d'eux concernait initialement le client de référence, le logiciel produit par une CORE de développeurs et utilisé par la plupart des utilisateurs pour développer leurs propres services. Ce problème résidait dans l'absence de double vérification des données de signature avant leur transmission à un autre logiciel sur lequel reposait le client de référence Bitcoin .
Selon une annonce de la Fondation Bitcoin cette semaine, cette dernière attaque de malléabilité relaie des versions mutées de transactions qui « exposent des bugs à la fois dans l'implémentation de référence et dans le logiciel de certains échanges », ce qui signifie qu'il existe des failles logicielles à différents endroits de l'écosystème Bitcoin qui devraient être corrigées.
Les développeurs CORE ont également signalé à CoinDesk deux « cas extrêmes » dans le client de référence (des failles rarement invoquées). Ces deux cas concernent la partie portefeuille du logiciel.
Il s'avère qu'il existe de nombreux autres problèmes de malléabilité, dont certains répertoriés ce mois-ci <a href="https://gist.github.com/sipa/8907691">https://gist.github.com/sipa/8907691</a> par ONEun des CORE développeurs de Bitcoin dans une proposition d'amélioration de Bitcoin (BIP) - un document qui demande quelques modifications à Bitcoin.
Les développeurs CORE sont tenus muets sur les problèmes les plus problématiques, car ils ne veulent T donner plus d'informations aux attaquants potentiels.
Comment cela est-il résolu ?
La communauté était au courant du problème le plus souvent discuté, qui permettait la soumission de signatures mal formées, dès 2011 (voircette discussion). Le problème était qu'un logiciel clé utilisé par le client Bitcoin ne gérait T correctement les signatures mal formées. Ce n'était T la faute des développeurs du CORE Bitcoin , mais ils n'avaient pas réussi à faire en sorte que le client Bitcoin vérifie à nouveau la bonne formation de la signature avant de la lui transmettre. Ce problème a été résolu dans la version 0.8 du client de référence.
Cependant, toutes les plateformes d'échange n'utilisent pas le client de référence pour gérer leurs transactions Bitcoin . Elles peuvent utiliser des versions personnalisées, dont le fonctionnement est légèrement différent. Les développeurs Bitcoin , de portefeuilles et de plateformes d'échange peaufinent donc leur code pour garantir le bon fonctionnement de leurs transactions. Pour les plateformes d'échange, cela implique de s'assurer qu'elles gèrent correctement les transactions mutantes, en agissant correctement dès qu'elles en détectent une.
Les autres correctifs concernent davantage les processus. La malléabilité est d'autant plus problématique qu'elle repose sur des transactions non confirmées, où les biens et services sont transférés ou fournis avant même qu'une transaction ne soit confirmée dans la blockchain. Exiger une confirmation de transaction est donc toujours une bonne idée.
De même, une vérification manuelle des retraits de Bitcoin des échanges peut aider à KEEP les choses en ordre en arrière-plan.
Alors, le monde du Bitcoin est-il en train de disparaître ? Sommes-nous face à une cryptocalypse ?
C'est irritant, mais guère plus. La plupart des logiciels comportent des bugs, mais ils ne se valent pas tous. Certains sont des erreurs critiques et irréversibles, d'autres T. Ces erreurs ne le sont T, et Bitcoin n'est pas corrompu. Les principes CORE de Bitcoin – la manière décentralisée dont de nombreux ordinateurs collaborent pour prendre des décisions concernant les transactions – fonctionnent toujours.
Dans notre exemple d'échange ci-dessus, on pourrait espérer ALICE ait tenu une comptabilité suffisamment détaillée pour pouvoir rapprocher les bitcoins envoyés. Si elle a envoyé, par exemple, 1 Bitcoin à 12h10 GMT le 5 février, il s'agirait d'une transaction assez unique. Elle pourrait simplement dire : « Nos archives indiquent que cette transaction a été effectuée à cette heure-là, avec ces paramètres. L' ID de transaction a dû changer, je ne vais donc pas renvoyer ces bitcoins. »
Une bourse pourrait également mettre en œuvre des outils permettant de suivre automatiquement les entrées sur les transactions, ce qui l’aiderait à repérer les mutations.
En fait, la malléabilité des transactions contribuera à prouver la résilience du réseau décentralisé face à des Événements réseau discrets. Après tout, la décentralisation est ONEun des facteurs qui en font le « miel BADGER de l'argent ».
Pièce malléableimage via Shutterstock
Danny Bradbury
Danny Bradbury est écrivain professionnel depuis 1989 et travaille en freelance depuis 1994. Il couvre la Technologies pour des publications telles que le Guardian.
