Malléabilité du système (Malleability)

De BitcoinWiki
Ceci est la révision approuvée de la page, et aussi la plus récente.
Aller à : navigation, rechercher

Enjoyed the article? Share:

Comparativement récemment on a inventé le terme, dont des nombreux utilisateurs de crypto-monnaie Bitcoin n'avaient jamais entendu auparavant - "malléabilité des transactions". Mt Gox a nommé cette malléabilité l'une des raisons principales de la suspension temporaire de traite de l'argent. On a mentionné aussi malléabilité des transactions comme une erreur. Ce semaine elle a été utilisée pour une attaque massive sur le réseau de Bitcoin. Alors qu'est-ce que c'est, comment ce fonctionne et est-ce que nous pouvons nous en inquiétons? Voici ce que nous savons.

Q'est ce que c'est une "malléabilité des transactions"?[modifier]

C'est un type d'attaque qui permet au malfaiteur modifier l'identifiant unique de transaction des bitcoins avant sa confirmation dans le réseau de Bitcoin. Avec ce changement et selon les conditions appropriées, l'utilisateur peut faire les choses de façon que cette transaction n'a pas été réalisée.

Est-ce que c'est la même qu'une "double-dépense"?[modifier]

Non. Lors d'une double-dépense bitcoins sont dépensés juste une fois, et puis on crée une autre transaction avant la première transaction sera confirmée. La surprise consiste à l'obtention de la confirmation de transaction frauduleuse dans le réseau de Bitcoin avant la première transaction sera exécutée. Cela signifie en fait que vous devrez essuyer une double-dépense.

Comment le mode de "malléabilité des transactions" fonctionne-t-il?[modifier]

Pour comprendre cela, vous devez savoir comment on exécute une transaction des bitcoins.

Lors de l'envoi des bitcoins à quelqu'un vous ne les retirez pas de compte et ne les envoyez pas très vite à travers du réseau. On n'envoie jamais les bitcoins de cette manière. Au lieu de cela, on crée cette transaction dans une chaîne des blocs de Bitcoin. Chaîne de blocs joue le rôle d'un grand registre de comptabilité pour l'ensemble du réseau de Bitcoin. Il tient des registres d'adresses des bitcoins à partir de lesquels les fonds sont envoyés aux autres adresses des bitcoins bien que l'heure de départ. Cela fournit un rapport complet sur le nombre des bitcoins qui peuvent être attribués au l'adresse particulière dans le réseau à tout moment.

Lors d'exécution de transaction des bitcoins elle comprend des informations telles que les adresses desquels Bitcoins sont venu (entrants), où ils ont été déposés (sortants), les sommes transférées et les adresses qui ont envoyé ces fonds au l'adresse de l'expéditeur.

"Malléabilité des transactions contribuera à prouver la stabilité d'un réseau décentralisé à des événements discrets du réseau"

Chaque transaction doit être clairement identifiée, de sorte qu'on pouvait y faire une référence dans une chaîne de blocs. ID de transaction (TX ID) est formé sur l'information dans une transaction qui est exécutée par la fonction de hachage.

Hachage est une procédure mathématique dans laquelle les différents éléments de données sont pris ensemble dans un court bloc d'information sous le nom de hach. L'un des éléments qui sont inclus dans le hach de transaction est une signature numérique de l'utilisateur, ce qui confirme qu'il est l'initiateur de la transaction. C'est un mode d'une souscription électronique de transaction.

L'une des qualités principales d'une fonction de hachage est l'impossibilité de voir par hachage ce qui était l'information originale. Il est également impossible de prévoir type du hach sur des fragments d'information disponibles. Si on modifie tout élément dans toutes les parties de données, le hach changera de manière imprévisible.

Grâce à cela les identifiants de transaction sont pratiquement impossibles à falsifier. Chaque transaction doit posséder juste un hach possible. Pour vérifier une validité de la transaction il faut juste mettre tous les éléments constitutifs de l'information via une fonction de hachage et vous assurez que vous obtenez le même hach.

Au moins, c'est l'idée. Mais voila le moment quand le mode de malléabilité intervient. Il est entendu que les signatures numériques du propriétaire utilisées dans le hach pour la souscription des transactions ont un format spécifique. Ce format n'est pas toujours bien contrôlé. Cela signifie qu'on peut faire une signature "pauvrement" formatée, et elle sera acceptée. Ce changement de signature permet de créer les hachs différents pour une seule transaction.

Ce n'est pas bon, mais n'est pas également critique. Et voila pourquoi.

Comment peut-il causer des problèmes?[modifier]

L'un des problèmes réside dans les bourses que les gens utilisent souvent pour acheter et vendre les bitcoins. Ils envoient leur monnaie qui n'est pas soutenu par l'or ou Bitcoins, dans la bourse où ils sont sur le compte pour la conversion. Au certain moment, l'utilisateur peut souhaiter retirer les Bitcoins du compte.

Certaines attaques des malfaiteurs[modifier]

On peut suppose que Alice fait l'échange et Bob a des bitcoins sur cette bourse. Bob décide de retires ses bitcoins et demande à Alice d'envoyer des bitcoins sur son adresse. Quand Alice les envoie une transaction est créée automatiquement. Elle est transmis en comprenant dans une chaîne de blocs des bitcoins.

Mais Bob prétend que Alice ne les a jamais envoyé. Il utilise un point faible de "malléabilité de transaction" reproduisant une transaction originale d'Alice et faisant de petits changements dans la signature pour la formation d'un autre hach. Puis elle transfère cette transaction avec un autre ID. Il existe une possibilité que la transaction du Bob sera confirmée d'abord dans une chaîne de blocs. Dans ce cas, le réseau peut supposer que cette transaction est valide et n'enregistrera pas une transaction d'Alice. Puis Bob peut se plaindre qu'il n'a pas reçu des bitcoins d'Alice. Quand Alice vérifie ID de sa transaction dans une chaîne de blocs, elle ne le trouvera pas, et peut essayer d'envoyer maintenant nouveaux Bitcoins encore une fois de sa propre poche.

Les histoires bien intentionnées.[modifier]

Si vous utilisez un logiciel spécial pour travailler avec votre Bitcoins, il peut générer défectueusement les hachs incorrects. On peut "corriger" ces hachs dans l'autre porte-monnaie, qui va les formater correctement. Mais elle peut changer aussi et l'ID de transaction (TX ID). Si votre porte-monnaie ne diffère pas des transactions avec les mêmes caractéristiques mais avec un ID différent, cela peut éventuellement conduire à l'existence des transactions «bloquées» qui sont dans un état suspendu. Pis encore si le programme peut identifier que la porte-monnaie a des Bitcoins à envoyer jusqu'à présent.

De manière ou d'autre si votre logiciel ne peut pas résoudre un tel problème - c'est un cauchemar comptable. Concepteur du cœur de Bitcoin Gregory Maxwell pense ici de cette possibilité.

Attaques des défauts massifs du service[modifier]

En outre, un malfaiteur peut causer plus de problèmes pour le réseau de Bitcoin en lançant intentionnellement une attaque avec utilisation de malléabilité des transactions simultanément dans les bourses multiples, peut-être, avec l'application de logiciels, visant à créer des transactions modifiées. Cette attaque simultanée probablement a eu lieu dans plusieurs bourses cette semaine.

Les systèmes de serveur du comptage de ces bourses peuvent venir à bout d'un nombre raisonnable des transactions modifiées. Si ils sont régulièrement attaqués par ces transactions, on peut causer des problèmes logistiques pour un certain période de temps.

On peut aussi causer des problèmes à courte échéance pour le marché. Toute incertitude ou des doutes dans la stabilité du marché, bien sûr, auront une influence sur les prix du marché, en particulier, pour ce qui concerne une classe d'actifs liquides et insoutenable.

Est-ce qu'on peut dire qu'il y a une erreur intermittente dans le système de Bitcoin?[modifier]

Il y avait plusieurs problèmes avec la technologie utilisée dans le réseau de Bitcoin, qui créent des problèmes de malléabilité. L'un d'eux était initialement dans le client d'accès. C'est un logiciel développé par une équipe de constructeurs. La plupart des gens utilisent ce logiciel lors du formatage de leurs propres services. Le problème est que ces signatures n'étaient pas supervisées avant le transfert d'un autre partie de logiciel. Le client d'accès de Bitcoin comptait sur ce logiciel.

Selon une publication de la Bitcoin Fondation cette semaine, au cours de cette dernière attaque avec utilisation des modes de malléabilité les versions modifiées des transactions qui "ont eu pour but l'exposition des erreurs dans le client d'accès bien que dans logiciel des certaines bourses”, ce qui signifie ce qu'il y a des erreurs logicielles dans lieux différents d'écosystème de Bitcoin qui doivent être éliminés.

Les constructeurs principaux ont également dit à CoinDesk des deux "cas extrêmes" pour le client d'accès (les erreurs très rares). Ils font partie du logiciel attaché à la porte-monnaie.

Il se trouve qu'il y a beaucoup d'autres questions liées à la malléabilité, y compris certains d'entre eux, dénombrées ce mois par l'un des constructeurs principaux de Bitcoin dans une Proposition du perfectionnement du système de Bitcoin (BIP). C'est un document dans lequel il faut effectuer des changements dans le réseau de Bitcoin.

Les constructeurs principaux font actuellement le silence sur les questions les plus problématiques parce qu'ils ne veulent pas donner plus d'informations à des malfaiteurs potentiels.

Comment peut-on résoudre cette question?[modifier]

La question le plus fréquemment discutée était connue dans la communauté. Conséquemment, on a permit de transférer des mauvaises signatures de plus en 2011 (voir la discussion). Le problème ici est que le partie clé du logiciel utilisé par le client de Bitcoin, ne faisait pas face à des telles signatures comme il se doit. Ce n'était pas la faute des constructeurs de Bitcoin, mais ce qu'ils n'ont pas fait, donc c'est que le client de Bitcoin a vérifié l'exactitude de la signature avant son transfert. Cette faute a été corrigée dans la version 0,8 du client d'accès.

Cependant, ce ne sont pas tous les bourses qui utilisent un client d'accès pour traiter leurs transactions avec bitcoins. Elles peuvent utiliser des versions spécialisées avec un traitement des transactions légèrement différent. Ainsi, les constructeurs de Bitcoin et porte-monnaies et des bourses "raffinent" avec leurs codes en vue d'effectuer les transactions sans aucun problème. C'est très important pour les bourses traiter les transactions modifiées avec un délicat et prendre les mesures appropriées en cas de leurs détection.

Autres corrections sont liées plus au processus. Le problème de malléabilité devient plus sérieux parce que le système repose sur des transactions non-validées dans lesquelles les produits et les services sont transferts ou disponibles avant la confirmation de la transaction dans la chaîne de blocs. C'est pourquoi Il faut toujours exiger cette confirmation de la transaction.

Pareillement, une fonction de la vérification manuelle de traite de Bitcoins de la bourse sera utile pour la serveur.

C'est-à-dire, il y a une menace apocalyptique pour les bitcoins? Est-ce que nous sommes face à une apocalypse cryptographique?[modifier]

Les erreurs sont vraiment ennuyeuses, mais pas critiques. Il y a des erreurs dans la plupart des produits logiciels, mais elles ne sont pas tous les mêmes. Certaines d'entre eux sont critiques, et d'autres non. Ces erreurs ne sont pas critiques, et le système de Bitcoin n'est pas ruiné. Base de Bitcoin prevoit une décentralisation du travail collaboratif de plusieurs ordinateurs qui prennent des décisions sur les transactions. Elle fonctionne toujours.

Dans notre exemple de bourse ci-dessus on pouvait espérer que Alice fait une comptabilité assez détaillée pour être apte de résoudre le problème avec Bitcoins lesquelles elle a envoyé. Si elle a envoyé au Bob, par exemple, 1 Bitcoin à 12h10 GMT le 5 Février, cette transaction est tout à fait unique. Elle pouvait simplement dire: "Selon mes informations, la transaction a été effectuée à ce moment, avec ces paramètres". Peut-être l'ID de transaction a été changé, donc je ne peux pas renvoyer Bitcoins".

La bourse peut utiliser aussi des outils pour suivre automatiquement les données d'entrée sur les transactions qui pourraient aider à détecter leur changement.

En tout cas, malléabilité des transactions contribuera à prouver la stabilité d'un réseau décentralisé à des événements discrets du réseau" Enfin, la décentralisation est l'une des choses qui transforme le réseau dans "le blaireau du miel de l'argent".

Articles connexes[modifier]

Double-spending

Anonymat

Bitcoin transaction