ETFFIN Finance >> cours Finance personnelle >  >> Crypto-monnaie >> Chaîne de blocs

Comment une chaîne de blocs empêche-t-elle la double dépense de Bitcoins ?

L'une des principales préoccupations de tout développeur de crypto-monnaie est le problème de la double dépense. Cela fait référence à l'incidence d'un individu dépensant un solde de cette crypto-monnaie plus d'une fois, créant effectivement une disparité entre le record de dépenses et le montant de cette crypto-monnaie disponible, ainsi que la façon dont il est distribué.

La question de la double dépense est un problème que l'argent n'a pas; si vous payez un sandwich avec un billet de 10 $, remettre cette facture au fabricant du sandwich, vous ne pouvez pas faire demi-tour et dépenser les mêmes 10 $ ailleurs. Une transaction utilisant une monnaie numérique comme le bitcoin, cependant, se fait entièrement numériquement. Cela signifie qu'il est possible de copier les détails de la transaction et de les rediffuser de telle sorte que le même BTC puisse être dépensé plusieurs fois par un même propriétaire. Au dessous de, nous examinerons comment les développeurs de crypto-monnaie ont assuré que les doubles dépenses ne peuvent pas se produire.

Points clés à retenir

  • Un problème technique qui se pose avec la notion de monnaie numérique est la possibilité pour quelqu'un de dupliquer l'argent numérique et de le dépenser simultanément à deux endroits ou plus.
  • Ce problème de « double dépense » est évité dans les crypto-monnaies basées sur la blockchain telles que Bitcoin en utilisant un mécanisme de consensus connu sous le nom de preuve de travail (PoW).
  • Ce PoW est effectué par un réseau décentralisé de « mineurs » qui non seulement sécurise la fidélité des transactions passées sur le grand livre de la blockchain, mais détecte et empêche également les doubles dépenses.

Comprendre la blockchain

La blockchain qui sous-tend une monnaie numérique comme le bitcoin n'est pas en mesure d'empêcher à elle seule les doubles dépenses. Plutôt, toutes les différentes transactions impliquant la crypto-monnaie concernée sont publiées dans la blockchain, où ils sont vérifiés séparément et protégés par un processus de confirmation. Dans le cas du bitcoin et de nombreuses autres crypto-monnaies, les transactions ainsi confirmées deviennent irréversibles; ils sont affichés publiquement et maintenus à perpétuité.

Bitcoin a été la première grande monnaie numérique à résoudre le problème de la double dépense. Il l'a fait en mettant en œuvre ce mécanisme de confirmation et en maintenant un système de registre universel. De cette façon, la blockchain bitcoin conserve des enregistrements de transactions horodatées remontant à la fondation de la crypto-monnaie en 2009.

En termes de Bitcoin, un "bloc" est un fichier de données enregistrées en permanence. Toutes les transactions récentes sont écrites dans des blocs, un peu comme un grand livre de transactions boursières sur une bourse. Les informations des blocs sont ajoutées au grand livre toutes les quelques minutes ; tous les nœuds du réseau conservent une copie du registre blockchain. Les utilisateurs peuvent naviguer dans la blockchain pour le bitcoin et examiner les transactions en termes de quantité uniquement. Les détails sur les identités de l'acheteur et du vendeur dans toute transaction sont protégés par un cryptage de haut niveau, qui protège également le grand livre contre la falsification par des sources extérieures. Lorsque le registre blockchain est mis à jour, il en va de même pour tous les portefeuilles bitcoin.

Gérer les doubles dépenses

Imaginez que vous avez 1 BTC et que vous essayez de le dépenser deux fois en deux transactions distinctes. Vous pouvez essayer de le faire en envoyant le même BTC à deux adresses de portefeuille Bitcoin distinctes. Ces deux transactions iront ensuite dans le pool des transactions non confirmées. La première transaction serait approuvée via le mécanisme de confirmation, puis vérifiée dans le bloc suivant. Cependant, la seconde transaction serait reconnue invalide par le processus de confirmation et ne serait pas vérifiée. Si les deux transactions sont extraites du pool pour confirmation simultanément, la transaction avec le plus grand nombre de confirmations sera incluse dans la blockchain, tandis que l'autre sera jeté.

Bien que cela résolve efficacement la question de la double dépense, ce n'est pas sans problèmes. Par exemple, le destinataire prévu de la deuxième transaction (en échec) n'aurait pas participé à l'échec de la transaction elle-même, et pourtant, cette personne ne recevrait pas le bitcoin qu'elle avait prévu. De nombreux commerçants attendent au moins 6 confirmations d'une transaction (ce qui signifie que six blocs de transactions ultérieurs ont été ajoutés à la blockchain après la transaction en question). À ce point, le commerçant peut supposer en toute sécurité que la transaction est valide.

Il reste d'autres vulnérabilités dans ce système qui pourraient permettre des attaques à double dépense. Par exemple, si un attaquant est en quelque sorte capable de contrôler au moins 51% de la puissance du réseau, ils peuvent engager des dépenses doubles. Si un attaquant parvenait d'une manière ou d'une autre à prendre le contrôle de cette puissance de calcul, ils pourraient annuler des transactions et créer un blockchain privée. Cependant, la croissance rapide du bitcoin a pratiquement assuré que ce type d'attaque est impossible.

Preuve de travail et « exploitation minière » expliquée

Passons maintenant à un peu plus technique. La façon dont les utilisateurs détectent les falsifications telles qu'une tentative de double dépense dans la pratique se fait par le biais de hachages, de longues chaînes de chiffres qui servent de preuve de travail (PoW). Mettre un ensemble de données donné via une fonction de hachage (bitcoin utilise SHA-256), et il ne générera jamais qu'un seul hachage. En raison de "l'effet d'avalanche, " toutefois, même un petit changement dans une partie des données d'origine se traduira par un hachage totalement méconnaissable. Quelle que soit la taille de l'ensemble de données d'origine, le hachage généré par une fonction donnée sera de la même longueur. Le hachage est une fonction à sens unique :il ne peut pas être utilisé pour obtenir les données d'origine, uniquement pour vérifier que les données qui ont généré le hachage correspondent aux données d'origine.

Générer n'importe quel hachage pour un ensemble de transactions bitcoin serait trivial pour un ordinateur moderne, afin de transformer le processus en "travail, " le réseau bitcoin définit un certain niveau de " difficulté ". Ce paramètre est ajusté de sorte qu'un nouveau bloc soit " extrait " - ajouté à la blockchain en générant un hachage valide - environ toutes les 10 minutes. Le réglage de la difficulté est accompli en établissant un " target" pour le hachage :plus la cible est basse, plus l'ensemble de hachages valides est petit, et plus il est difficile d'en générer un. En pratique, cela signifie un hachage qui commence par une longue chaîne de zéros :le hachage pour le bloc #429818, par exemple, est 000000000000000004dd3426129639082239efd583b5273b1bd75e8d78ff2e8d. Ce bloc contient 2, 012 transactions impliquant un peu plus de 1, 000 bitcoins, ainsi que l'en-tête du bloc précédent. Si un utilisateur modifie le montant d'une transaction de 0,0001 bitcoin, le hachage résultant serait méconnaissable, et le réseau rejetterait la fraude.

Étant donné qu'un ensemble de données donné ne peut générer qu'un seul hachage, comment les mineurs s'assurent-ils de générer un hachage inférieur à la cible ? Ils modifient l'entrée en ajoutant un entier, appelé un nonce ("numéro utilisé une fois"). Une fois qu'un hachage valide est trouvé, il est diffusé sur le réseau, et le bloc est ajouté à la blockchain.

L'exploitation minière est un processus concurrentiel, mais c'est plus une loterie qu'une course. En moyenne, quelqu'un produira une preuve de travail acceptable toutes les dix minutes, mais qui ce sera est à deviner. Les mineurs se regroupent pour augmenter leurs chances de miner des blocs, qui génère des frais de transaction et, Pour un temps limité, une récompense de bitcoins nouvellement créés.

La preuve de travail rend extrêmement difficile la modification de tout aspect de la blockchain, car une telle modification nécessiterait de ré-miner tous les blocs suivants. Il rend également difficile pour un utilisateur ou un groupe d'utilisateurs de monopoliser la puissance de calcul du réseau, puisque les machines et la puissance nécessaires pour accomplir les fonctions de hachage sont chères.