sur

Qu’est-ce que l’attaque du Vector 76 ?

vector 76 bitcoin

L’attaque Vector 76 est un type d’attaque par double dépense qui exploite un petit bug dans le système de consensus Bitcoin pour s’exécuter. En conséquence, l’attaquant est en mesure de prendre des fonds de manière malveillante et de générer des pertes pour ses victimes.

Toutes les technologies développées, y compris la blockchain, comportent des vecteurs d’attaque que les cybercriminels peuvent exploiter à leur profit. Dans le monde de la cryptographie, l’une des attaques les moins connues est l’attaque par vecteur 76.

L’avènement des monnaies numériques et des crypto-monnaies a entraîné un grave problème, la double dépense. Dans les monnaies numériques centralisées, ce problème est facilement résolu car tout le contrôle est centralisé. Mais dans les monnaies décentralisées comme le bitcoin, le problème est bien plus important. En fait, la conception de Bitcoin parvient à minimiser le problème de la double dépense. On peut même dire qu’il l' »élimine », mais en raison de la nature décentralisée du bitcoin, il y aura toujours un point d’échec qui pourra être utilisé pour une double dépense.

C’est là qu’intervient l’attaque du vecteur 76, ou attaque de confirmation. Cette attaque par double dépense permet à l’attaquant d’inclure une transaction à double dépense dans un bloc et de l’utiliser à son avantage. Pour ce faire, il envoie un bloc auto-construit pour que le réseau confirme que le bloc est valide. De cette façon, l’attaquant peut s’emparer d’une certaine quantité de fonds avant que le réseau ne se rende compte du problème. Cette attaque a été décrite pour la première fois par l’utilisateur vector76 sur le forum Bitcointalk.

Mais, pour comprendre la nature de cette attaque, il est nécessaire de se pencher plus en profondeur sur son fonctionnement, et c’est ce que nous allons faire maintenant.

Comment fonctionne l’attaque du Vecteur 76 ?

Cette attaque est en fait une combinaison de l’attaque Race et de l’attaque Finney. Sa cible principale sont les bourses ou maisons d’échange, où les attaquants peuvent acheter et vendre leurs crypto-monnaies et jetons sans être détectés rapidement.

Mais comment cela est-il possible ? Eh bien, regardons de plus près l’anatomie de cette attaque.

Comment cette attaque est-elle exécutée ?

Une attaque vectorielle 76 est exécutable lorsqu’un mineur malhonnête, qui a le contrôle de 2 nœuds complets du réseau, connecte l’un d’entre eux (nœud A) directement au service d’un échange. Ensuite, le deuxième nœud complet (nœud B), l’interconnecte avec d’autres nœuds qui sont bien positionnés dans le réseau de la blockchain. Pour savoir à quels nœuds se connecter, le mineur doit surveiller l’instant où les nœuds transmettent les transactions, et comment ils les propagent ensuite aux autres nœuds du réseau. De cette façon, il sera en mesure de savoir quels nœuds sont les premiers à transmettre des transactions et pourra se connecter au service cible et aux nœuds bien positionnés.

Après avoir établi les connexions nécessaires, le mineur génère en privé un bloc valide. À ce stade, il crée une paire de transactions, qui auront des valeurs différentes, l’une étant de valeur élevée et l’autre de valeur faible. Par exemple, la première transaction peut être de 25 BTC ou plus, et la seconde de 0,1 BTC seulement. Par la suite, le mineur détient le bloc miné et attribue au nœud A la transaction de grande valeur, c’est-à-dire la transaction de 25 BTC. Il s’agira de la transaction qui sera dirigée pour effectuer un dépôt au sein du service d’échange.

Lorsque le mineur détecte une annonce de bloc sur le réseau, il transmet immédiatement le bloc pré-miné directement au service d’échange, ainsi que le bloc nouvellement généré sur le réseau. Ceci dans l’espoir que les autres nœuds considèrent son bloc comme valide et le considèrent comme faisant partie de la chaîne principale. Ainsi, le bloc sera confirmé, et par conséquent, la transaction de 25 BTC qui y est incluse sera validée.

Une fois que le service d’échange a confirmé la transaction de 25 BTC, l’attaquant effectue un retrait auprès de l’échange pour le même montant de crypto-monnaies qu’il a déposé lors de la transaction précédente (25 BTC). Ensuite, l’attaquant envoie la deuxième transaction créée, celle pour 0,1 BTC, au réseau depuis le nœud B. L’objectif est de créer un fork qui amène le réseau à rejeter et à invalider la première transaction. Si ce fork survit, la première transaction avec le dépôt de 25 BTC sera invalidée, mais le retrait sera effectué. Par conséquent, l’attaquant aura réussi et l’échange perdra 25 BTC.

Probabilité de réussite de l’attaque

Tous ces processus se produisent immédiatement et simultanément, il est donc très probable que les transactions de 0,1 BTC soient prises comme chaîne principale. Mais, quelques blocs plus tard, la transaction de dépôt avec 25 BTC est invalidée. En effet, le nœud B, qui transmet la transaction de 0,1 BTC, est connecté à des nœuds bien positionnés qui relaieront cette transaction beaucoup plus rapidement dans le réseau. Alors que le nœud A, qui contient la transaction de dépôt de 25 BTC, est directement connecté uniquement au service d’échange. Ce nœud, qui devra relayer ces transactions aux autres nœuds, est donc beaucoup plus lent que le nœud B.

Dans le cas contraire, où le bloc accepté sur la chaîne principale contient la transaction de 25 BTC, l’attaquant ne retirera que les 25 BTC qu’il a déposés dans l’échange. Par conséquent, l’attaque du vecteur 76 ne réussira pas. Pourtant, dans ce scénario, il n’y a ni perte ni gain, ni pour l’attaquant ni pour l’échange.

Expliqué ainsi, on peut détecter qu’il y a une forte probabilité de succès dans l’exécution de ce type d’attaque. Mais, même ainsi, il n’est pas courant de l’exécuter parce qu’il exige un échange qui accepte de faire des paiements de retrait après une seule confirmation, et la grande majorité des échanges exigent habituellement 2 à 6 confirmations.

Toutefois, une entreprise proposant des biens ou des services numériques peut également être victime de ce type d’attaque.

Comment se protéger d’une attaque du Vector 76 ?

Pour se protéger de ce type d’attaque, il y a quelques recommandations à garder à l’esprit :

  • Utilisez des systèmes qui n’acceptent pas les transactions avec une seule confirmation. L’attaque par le vecteur 76 exige que cela soit possible afin de mener à bien l’attaque. Au lieu de cela, le minimum que nous devrions attendre est d’avoir 2 confirmations, ou même 6, comme cela est largement recommandé.
  • Le nœud que nous utilisons doit éviter d’avoir des connexions entrantes activées, ou à défaut, définir des connexions entrantes provenant de machines bien reconnues. Cela empêche l’attaquant d’injecter de fausses informations sur la blockchain dans notre nœud.
  • Les connexions sortantes du nœud doivent également être surveillées et autorisées uniquement vers des nœuds connus. Cela empêche nos nœuds de pouvoir donner des informations sur l’état de la chaîne que nous gérons.

Grâce à ces mesures, nous pouvons nous protéger de ce type d’attaque sans problème majeur.