Table des matières
- Comprendre la blockchain
- Faire face à une double dépense
- Preuve de travail et «exploitation minière»
L'une des principales préoccupations de tout développeur de crypto-monnaie est la question des doubles dépenses. Cela se réfère à l'incidence d'une personne 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 elle est distribuée.
La question de la double dépense est un problème que la trésorerie n'a pas; si vous payez pour un sandwich avec une facture de 10 $, en remettant cette facture au fabricant du sandwich, vous ne pouvez pas vous retourner 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 sorte que le même BTC puisse être dépensé plusieurs fois par un seul propriétaire. Ci-dessous, nous examinerons comment les développeurs de crypto-monnaie ont assuré qu'une double dépense ne peut 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 par en utilisant un mécanisme de consensus connu sous le nom de preuve de travail (PoW).Ce PoW est réalisé par un réseau décentralisé de `` mineurs '' qui non seulement garantissent la fidélité des transactions passées sur le grand livre de la blockchain, mais détectent et préviennent é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. Au lieu de cela, toutes les différentes transactions impliquant la crypto-monnaie pertinente sont publiées dans la blockchain, où elles sont vérifiées séparément et protégées 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é.
Le Bitcoin a été la première grande monnaie numérique à résoudre le problème du double investissement. Il l'a fait en mettant en œuvre ce mécanisme de confirmation et en maintenant un système de grand livre universel commun. 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 Bitcoin, un "bloc" est un fichier de données enregistrées en permanence. Toutes les transactions récentes sont écrites en blocs, un peu comme un registre des 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 de la 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 registre contre toute falsification par des sources extérieures. Lorsque le registre de la blockchain est mis à jour, tous les portefeuilles Bitcoin le sont également.
Faire face à une double dépense
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 de 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 deuxième transaction serait reconnue comme non valide 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 rejetée.
Bien que cela règle efficacement le problème de la double dépense, ce n'est pas sans poser de problèmes. Par exemple, le destinataire prévu de la deuxième transaction (échouée) ne participerait pas à l'échec de la transaction elle-même, et pourtant cette personne ne recevrait pas le bitcoin qu'il avait prévu. De nombreux commerçants attendent au moins 6 confirmations d'une transaction (ce qui signifie que 6 blocs de transactions ultérieurs ont été ajoutés à la blockchain après la transaction en question). À ce stade, le commerçant peut supposer en toute sécurité que la transaction est valide.
Il existe d'autres vulnérabilités dans ce système qui pourraient permettre à des attaques à double dépense de se produire. Par exemple, si un attaquant est en mesure de contrôler au moins 51% de la puissance du réseau, il peut engager des dépenses doubles. Si un attaquant était en mesure de prendre le contrôle de cette puissance de calcul, il pourrait inverser les transactions et créer une blockchain privée distincte. Cependant, la croissance rapide du bitcoin a pratiquement assuré que ce type d'attaque était impossible. (Pour en savoir plus, consultez Méfiez-vous de ces cinq escroqueries Bitcoin)
Explication de la preuve de travail et de l'exploitation minière
Maintenant, allons un peu plus technique. La façon dont les utilisateurs détectent la falsification, comme une tentative de dépenser deux fois dans la pratique, consiste à utiliser des hachages, de longues chaînes de chiffres qui servent de preuve de travail (PoW). Mettez un ensemble de données donné via une fonction de hachage (le bitcoin utilise SHA-256), et il ne générera qu'un seul hachage. Cependant, en raison de «l'effet d'avalanche», même une infime modification d'une partie des données d'origine entraînera 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 aura 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, donc 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 "miné" - ajouté à la blockchain en générant un hachage valide - environ toutes les 10 minutes. La définition de la difficulté est accomplie en établissant une "cible" 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 du 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 modifiait un montant de transaction de 0, 0001 bitcoin, le hachage résultant serait méconnaissable et le réseau rejetterait la fraude.
Puisqu'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 en dessous de la cible? Ils modifient l'entrée en ajoutant un entier, appelé nonce ("nombre 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 compétitif, mais il s'agit plus d'une loterie que d'une course. En moyenne, quelqu'un génère une preuve de travail acceptable toutes les dix minutes, mais qui ce sera à la conjecture de quiconque. Les mineurs se regroupent pour augmenter leurs chances d'exploiter des blocs, ce qui génère des frais de transaction et, pour une durée limitée, une récompense des bitcoins nouvellement créés.
La preuve de travail rend extrêmement difficile de modifier n'importe quel aspect de la blockchain, car une telle modification nécessiterait de réexaminer tous les blocs suivants. Cela rend également difficile pour un utilisateur ou un groupe d'utilisateurs de monopoliser la puissance de calcul du réseau, car la machinerie et la puissance nécessaires pour exécuter les fonctions de hachage sont coûteuses.
