jeudi 13 février 2014

Bug Bitcoin : Qu'est-ce que la Transaction Malleability ?

► Bug Bitcoin : Qu'est-ce que la "Transaction Malleability" ?


Cette semaine, un nouveau terme est apparu pour de nombreux bitcoiners : "Transaction Malleability"


Mt Gox s'est servie de ce bug pour suspendre les retraits de leurs clients, et il a également été mentionné comme base dans une attaque massive contre le réseau bitcoin.


Alors c'est quoi la "Transaction Malleability" ?   Devrions-nous être inquiets ?

• Qu'est-ce que la "Transaction Malleability" ?

C'est une attaque qui permet à quelqu'un de changer l'ID unique d'une transaction bitcoin avant d'être confirmé sur le réseau bitcoin. Cette modification rend possible pour une personne de prétendre que la transaction n'a pas eu lieu, si toutes les conditions sont réunis.

• Est-il possible de doubler ses dépenses ?

Non, doubler ses dépenses implique des bitcoins dépenser une fois, puis la création d'une autre transaction avec les mêmes bitcoins avant que la première transaction soit confirmée.
L'astuce consiste alors à faire confirmer en premier la transaction frauduleuse sur le réseau bitcoin, de sorte que la première transaction n'ait pas lieu. Cela signifie concrètement que vous arrivez à les dépenser deux fois.

• Comment fonctionne la "Transaction Malleability" ?

Pour comprendre cela, vous devez savoir comment fonctionne une transaction bitcoin.

Lorsque vous envoyez des bitcoins à quelqu'un, une transaction est créée sur la chaîne de blocs de bitcoin.


La chaîne de bloc agit comme un grand livre de compte pour l'ensemble du réseau bitcoin. Il tient un registre des fonds qui sont envoyés d'une adresse bitcoin à l'autre. Celui-ci donne un compte rendu complet du nombre de bitcoins attribués aux différentes adresses sur le réseau à tout moment.

Lorsqu'une une transaction bitcoin est faite, elle comprend des informations telles que les adresses de provenances des bitcoins, où ils vont, les montants transférés et quelle adresse a envoyé ces fonds à l'adresse de l'expéditeur.
Si les transactions sont signées, la signature ne couvre pas actuellement toutes les données dans une transaction qui est hachée pour créer le hashage de la transaction. Ainsi, bien que rare, il est possible pour un noeud sur le réseau de changer une transaction d'envoi de manière à ce que le hashage soit invalidé.

Notez que cela modifie juste le hashage, la sortie de la transaction reste le même et les bitcoins iront à leur destinataire.

Toutefois, cela ne signifie pas que, par exemple, il n'est pas accepté sur une chaîne de transactions non confirmées parce que les transactions ultérieures dépendront des hashs des opérations précédentes, ces tables de hashage peuvent être changé jusqu'à ce qu'ils soient confirmés dans un bloc (et peut-être même après une confirmation si la chaîne de bloc est réorganisée).

C'est là qu'intervient la malléabilité des signatures numériques que l'utilisateur utilise dans le cadre de la table de hachage à «signer» la transaction est censé être dans un certain format. Ce format n'a pas toujours été correctement vérifié. Cela signifie qu'un format mal formaté pourrait être introduit, et encore accepté.

Modifier la signature de cette manière,  et il est possible de créer différentes tables de hachage pour la même transaction.

• Quels problèmes cela peut-il causer ? 

Le problème vient surtout des plateformes d'échanges bitcoin (Mt Gox, Bitstamp etc..), utiliser pour acheter et vendre bitcoins. Les utilisateurs envoient de l'argent ou leurs bitcoins sur une plateforme, où il dispose d'un compte afin de convertir leurs argents ou leurs bitcoins. À un certain moment, ils pourraient vouloir retirer leurs bitcoins de leur compte.

Voici les scénarios possibles...

     Attaque malveillante individuel

Disons que MtStamp est une plateforme d’échange bitcoin, et Mr X un client de cette plateforme.

Mr X décide de retirer les bitcoins de son compte, et demande à MtStamp de les envoyer à l'adresse de son portefeuille bitcoin. Lorsque MtStamp les envoie, une transaction est créée automatiquement, qui est transmis par l'exploitation minière de manière à pouvoir être inclus dans la chaîne de blocs bitcoin.

Mais Mr X prétend que MtStamp ne les a pas envoyé. Il utilise la faille de la "transaction Malleability" afin de reproduire la transaction originale de MtStamp, peaufiner la signature pour produire un hashage légèrement différent. Mr X retransmet ensuite cette transaction, avec l'ID différents.

Il y a une chance que la transaction de Mr X soit confirmé en premier sur la chaîne bloc. Si cela se produit, le réseau supposera que la transaction est valide, et celle de MtStamp ne sera pas enregistrée. Mr X peut alors se plaindre à MtStamp qu'il n'a pas reçu les bitcoins. Quand MtStamp vérifie son identifiant de transaction dans la chaîne de bloc, elle ne le trouvera pas, et elle pourrait envoyer plus de bitcoin, ce qui signifie qu'elle en sera de ça poche.

     Attaque massive par déni de service

Quelqu'un pourrait également causer des problèmes plus larges pour le réseau bitcoin en lançant délibérément  des attaques utilisant la faille de la "transaction Malleability" sur plusieurs plateformes d'échanges bitcoin à la fois, peut-être en utilisant un logiciel conçu pour créer des transactions "mutantes".

Cette attaque est ce qui semble s'être passé cette semaine, avec plusieurs plateformes d'échanges bitcoins qui ont été toucher. Les systèmes comptables des plateformes peuvent être en mesure de faire face à un nombre modéré de transactions "mutantes", mais si elles sont régulièrement bombardées, alors cela pourrait leur causer des problèmes logistiques pendant un certain temps. Cela pourrait également causer des problèmes à court terme pour le marché.

Toute incertitude ou doute sur la stabilité du marché auront naturellement un effet sur les prix du bitcoin.

• Est-ce que cela signifie qu'il y a un bug dans bitcoin ?

Il y a eu plusieurs problèmes avec des technologies qui utilisent le réseau bitcoin, et qui créent des problèmes de malléabilité.

Selon un communiqué de la Fondation Bitcoin cette semaine, cette dernière attaque de la malléabilité relaie une version mutée de transactions qui a «Exposer les bugs à la fois sur la mise en œuvre de référence et le logiciel de certaines plateformes d'échange bitcoin" ce qui signifie qu'il y a des failles de logiciels dans différents endroits dans l'écosystème de bitcoin qui doivent être corrigé.

Il s'avère qu'il existe un certain nombre d'autres questions de malléabilité, dont certains figurants dans un document proposant l'amélioration du Bitcoin poster ce mois-ci par l'un des principaux développeurs bitcoin.

• Est-ce la fin du Bitcoin ?

Il s'agit d'une irritation, mais guère plus. Il y a des bugs dans la plupart des logiciels, mais pas tous les bugs sont égaux.
Le Bitcoin n'est pas mort.

Les bases fondamentales du bitcoin - la manière décentralisée dans laquelle beaucoup d'ordinateurs travaillent ensemble pour prendre des décisions sur les transactions - fonctionnent toujours.

Les plateformes bitcoins pourrait également mettre en œuvre des outils pour suivre automatiquement les entrées sur les transactions, ce qui leurs permettraient de repérer les transaction suspectes.

Source : Coindesk

0 commentaires:

Enregistrer un commentaire