Passer au contenu

Bitcoin aurait pu mourir

Quand on parle de cryptomonnaie et de blockchain, c’est souvent à Bitcoin que l’on pense en premier. Pourtant la plus connue des cryptomonnaies aurait bien pu disparaitre prématurément, et cela à deux reprises notamment. Fort heureusement, la communauté de Bitcoin a su réagir efficacement pour le sauver.

Voilà maintenant 12 ans que Bitcoin a vu le jour et que sa blockchain compile toutes les transactions qui s’y produisent. Malgré les critiques que l’on peut adresser à Bitcoin (manque de scalabilité, très énergivore …), il a su conserver sa place de leader dans l’écosystème crypto et montrer que la technologie sous-jacente des cryptomonnaies a de l’avenir. Il doit une grande partie de sa pérennité et de sa stabilité à la communauté qui le soutient.

L’utilisateur qui créa 185 milliards de Bitcoins

C’est sûrement la faille la plus critique à laquelle Bitcoin a dû faire face depuis le début de son existence. En effet, alors que la limite fixée par le White Paper prévoit l’émission de 21 millions de Bitcoins, le 15 août 2010, un utilisateur malintentionné a réussi à trouver une faille dans le système de vérification des transactions et à générer 185 milliards de nouveaux Bitcoins au bloc 74 638 de la blockchain. Autant dire que si son action avait abouti, Bitcoin n’aurait pas la valeur qu’il a aujourd’hui et personne n’aurait plus confiance en une cryptomonnaie dont tout le monde peut générer de nouveaux jetons à l’infini. Toutefois, rassurez-vous, la faille exploitée par cet utilisateur a été rapidement corrigée.

La stratégie utilisée consistait à faire croire au réseau que sa transaction, pourtant impossible, était bien valide. Pour ce faire, l’utilisateur malveillant a utilisé une technique qu’on appelle « VALUE OVERFLOW INCIDENT ». Pour présenter simplement comment fonctionne une transaction en Bitcoins, les mineurs reçoivent une chaîne de caractères contenant les informations nécessaires (montant, émetteur, destinataire…) qu’ils comparent avec les informations de l’émetteur. Si ce dernier possède bien les fonds qu’il souhaite envoyer, alors la transaction est validée. Seulement, lors de la création des 185 milliards de Bitcoins, l’utilisateur a trouvé une faille qui consistait à maximiser toutes les valeurs variables contenues dans la chaîne de caractères, afin de provoquer un débordement, le fameux « overflow ». Pour illustrer ce mécanisme, imaginez que la chaîne de caractères reçue par le réseau est une bouteille d’eau d’un litre. Pour que la transaction soit validée, il faut que le contenu de la bouteille puisse être transvasé dans une autre bouteille du même volume. Si c’est le cas, alors la transaction est envoyée aux mineurs pour être effectuée. Toutefois, même en vidant 2 bouteilles dans une, le contenu final sera quand même d’un litre et la transaction sera considérée comme valide. C’est ce qui s’est produit au bloc 74 638. La transaction a donc été validée et l’utilisateur a créé 185 milliards de nouveaux Bitcoins. Heureusement, un autre utilisateur s’en est rendu compte rapidement et c’est Satoshi Nakamoto en personne qui a modifié le processus de vérification de la blockchain Bitcoin afin d’éviter que n’importe qui puisse créer de nouveaux Bitcoins à l’infini. Suite à cela, un fork de la blockchain a eu lieu pour pouvoir revenir juste avant la transaction frauduleuse et effacer les Bitcoins créés par l’utilisateur. Par ailleurs, la chaîne qui en a résulté est celle que l’on connait encore aujourd’hui. Preuve même de la capacité de résilience de Bitcoin malgré une faille d’une telle ampleur.

GHASH.io : le pool de minage aux 51%

Lorsqu’une personne ou un groupe de personnes arrive à réunir plus de 51% de la puissance d’un réseau blockchain, ceux-ci peuvent faire ce qu’on appelle des doubles dépenses. C’est-à-dire dépenser deux fois le même Bitcoin et ceci à l’infini. Le même problème que précédemment se pose alors : qui voudrait d’une monnaie duplicable à l’infini ? C’est pourtant ce que GHASH.io avait réussi à faire.

Aux débuts de Bitcoin, peu de mineurs se partageaient les nouveaux Bitcoins générés, ils avaient donc beaucoup de chances de gain. Aujourd’hui, il y a des millions de mineurs sur le réseau Bitcoin, si bien qu’un mineur isolé aurait très peu de chance de remporter du Bitcoin. C’est pour ça que les pool de minage ont vu le jour. Leur rôle est de rassembler un grand nombre de mineurs. Ainsi, les mineurs se partagent les récompenses gagnées et sont donc assurés de gagner. GHASH.io fait partie de ces pool et a même rencontré un franc succès, si bien qu’à un moment de son existence, le pool possédait plus de 51% de la puissance du réseau, faisant craindre une attaque 51.

Toutefois, aujourd’hui sur le réseau Bitcoin il est quasiment impossible de réunir 51% de la puissance du réseau. Plus important encore, comme le nombre de mineurs sur la blockchain augmente, il faudrait des milliards d’euros pour y parvenir. De plus, si une attaque 51 se produisait, tous les détenteurs de Bitcoins s’empresseraient de les vendre et donc le prix chuterait. Ça n’aurait donc aucun intérêt de dépenser autant d’argent pour parvenir à un tel résultat. C’est ce qui protège aujourd’hui le réseau Bitcoin d’une telle attaque, si bien que depuis GHASH.io, personne n’est passé au-dessus des 51% de la puissance totale du réseau.

Une conclusion positive

Le plus intéressant à retenir suite à ces deux histoires, c’est qu’à chaque fois la bienveillance et la réactivité de la communauté a permis de faire de Bitcoin le pilier de l’écosystème blockchain qu’il est aujourd’hui. La grande force de Bitcoin qu’on peut en tirer est sa résilience face aux obstacles. Bitcoin n’est pas infaillible, mais grâce au bon sens de sa communauté, Bitcoin devient à chaque fois plus fort et tout le monde a intérêt à maintenir le bon fonctionnement du réseau .

🟣 Pour ne manquer aucune news sur le Journal du Geek, abonnez-vous sur Google Actualités. Et si vous nous adorez, on a une newsletter tous les matins.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *