Aller au contenu principal

Billet mars 2025

Le lien surprenant entre un robinet rouge géant à Minorque et l’essor de Bitcoin

Au cœur de la mer Méditerranée, trois îles sœurs attirent chaque année des foules de touristes : Majorque, Ibiza et Minorque. Cette dernière, réputée pour ses plages magnifiques, s’étend sur une cinquantaine de kilomètres de longueur. Lors d’une escale à Santa Galdana, une ville au sud de l’île, un élément architectural insolite capte l’attention : un immense robinet rouge perché au sommet d’une aire de jeux pour enfants. Qui aurait cru que cet objet deviendrait un jour le symbole d’un moment clé de l’histoire de Bitcoin : le premier Bitcoin Faucet.

Vous êtes curieux ? Ce texte est pour vous !

Une initiative généreuse et visionnaire

En 2010, Gavin Andresen, développeur de logiciels, lance un site web nommé FreeBitcoins. Ce site demandait aux visiteurs de copier deux mots et donnait en échange 5 bitcoins. Aujourd’hui, une telle rémunération serait inimaginable, mais à l’époque, Bitcoin n’était qu’à ses débuts et sa valeur était encore très basse. Le site de Andresen (2010) affichait aussi un message clair : « Je veux que Bitcoin réussisse, alors j’ai créé ce petit service pour vous offrir quelques pièces afin de commencer ». L’objectif était double et illustré par le robinet rouge de Minorque.

  • Faire connaître Bitcoin ;
  • Encourager son adoption par la distribution gratuite de bitcoins.

Cette stratégie rappelle celle des échantillons gratuits en magasin, permettant aux gens de découvrir et d’adopter cette nouvelle technologie. Cependant, l’idée de Andresen répondait aussi à un besoin fondamental du réseau deux ans après sa création : attirer de nouveaux utilisateurs pour renforcer la décentralisation.

Quelques principes fondamentaux de Bitcoin

La décentralisation
Il est crucial de distinguer Bitcoin, la chaîne de blocs, de bitcoin, la monnaie échangée sur ladite chaîne. Contrairement aux monnaies traditionnelles, le bitcoin n’est ni émis ni contrôlé par un gouvernement. Comme le souligne Andresen (2010) : « Bitcoin est créé et géré par toute personne souhaitant faire partie du réseau de paiement Bitcoin ».

La chaîne de blocs fonctionne grâce à la participation de ses utilisateurs. Plus ils sont nombreux, plus le réseau est sécurisé. Sans adhésion massive, Bitcoin n’aurait eu aucun intérêt, car une minorité d’utilisateurs détiendrait la plupart des jetons en circulation.

Dans un système décentralisé, la double dépense est l’un des principaux défis soulignés par le créateur pseudonyme de Bitcoin : Satoshi Nakamoto (2008). Concrètement, il s’agit de reproduire dans le monde numérique une caractéristique du monde physique : un même billet de banque ne peut pas servir à payer plusieurs fois, car il est remis au commerçant lors de la première transaction.


Le problème, bien sûr, est que le bénéficiaire ne peut pas vérifier si l’un des précédents propriétaires n’a pas déjà dépensé la pièce. Une solution courante consiste à introduire une autorité centrale de confiance, ou une institution émettrice, qui vérifie chaque transaction pour éviter les doubles dépenses. Après chaque transaction, la pièce doit être retournée à cette institution pour qu’une nouvelle soit émise et seules les pièces directement émises par elle sont considérées comme valides et non dépensées en double. Le problème avec cette approche, c’est que l’ensemble du système monétaire repose sur la société qui gère cette institution et que chaque transaction doit passer par elle, à l’image d’une banque. Il nous faut donc un moyen permettant au bénéficiaire de s’assurer qu’aucun des précédents propriétaires n’a signé d’autres transactions avant celle-ci. À nos fins, seule la première transaction effectuée compte, nous n’avons donc pas à nous soucier des tentatives ultérieures de double dépense. Le seul moyen de confirmer l’absence d’une transaction est d’avoir une visibilité complète sur l’ensemble des transactions. (p. 2)


C’est précisément pour répondre à ce problème que le réseau Bitcoin prend la forme d’un registre distribué et décentralisé. Toutes les transactions y sont publiquement accessibles et leur validation repose sur un consensus entre les utilisateurs du réseau. Ainsi, plutôt que de faire confiance à une autorité centrale, Bitcoin permet à tous de vérifier l’intégrité du système.

Le consensus
Puisque le concept traditionnel de confiance n’intervient pas dans la chaîne de blocs Bitcoin, il est essentiel d’établir des règles permettant d’atteindre un consensus. Dans le cas de Bitcoin, ce consensus repose sur la preuve de travail : un mécanisme qui oblige plusieurs ordinateurs à effectuer un très grand nombre de calculs jusqu’à ce que l’un d’entre eux trouve une solution valide.

Pour mieux comprendre ce principe, une façon simple est d’utiliser un simulateur comme celui de Anders Brownworth (2024). Dans celui-ci, chaque bloc est composé de cinq zones de texte dont seulement trois peuvent être modifiées par l’utilisateur.

  • Le numéro du bloc ;
  • Le nonce, un nombre utilisé dans le calcul de confirmation ;
  • Les données du bloc, généralement constituées des transactions à confirmer.

Supposons que l’Université Laval adopte une chaîne de blocs pour encaisser les frais de scolarité de ses étudiants. Désirant m’inscrire à la prochaine session, ma demande est inscrite dans la section data du bloc actuel portant le numéro 4345.

Sous la section data, deux cases sont grisées (Prev et Hash). Ces cases contiennent des empreintes cryptographiques (hash), générées par une fonction de hachage. Le travail de cette fonction vise à transformer le contenu d’un bloc (une entrée) en une chaîne de caractères respectant quatre règles fondamentales.

  • Le résultat sera toujours une chaîne de soixante-quatre caractères (hash), peu importe la taille de l’entrée ;
  • Deux entrées différentes dans la même fonction de hachage ne donnent pas le même hash ;
  • Deux entrées identiques dans la même fonction de hachage donnent le même hash ;
  • Une entrée permet de générer un hash, mais un hash ne permet pas de générer son entrée (processus irréversible)

La première case grisée (Prev) contient le hash généré à partir du contenu du bloc précédent (4344) qui a été entré dans une fonction de hachage. L’empreinte numérique du bloc précédent (4344) fait donc partie du bloc actuel (4345). En entrant dans la fonction de hachage le numéro du bloc actuel, le contenu des champs Nonce et Data ainsi que ladite empreinte numérique du bloc précédent, le hash du bloc actuel est obtenu et indiqué dans le champ (Hash).

Concernant le bloc actuel (4345), il est important de remarquer qu’il est rouge, car son hash ne commence pas par au moins quatre zéros : la règle incontournable pour confirmer un bloc dans le simulateur. Étant donné qu'il est impossible de prévoir le hash produit par une fonction de hachage, des mineurs doivent procéder par essais et erreurs. Dans notre exemple, lesdits mineurs seront des étudiants contribuant à la gestion du réseau, modifiant la valeur du nonce jusqu'à obtenir un résultat conforme aux exigences (les quatre zéros). Cet ajustement permet de faire changer l’entrée dans la fonction de hachage et donc le résultat donné par ladite fonction. Le nonce est d’ailleurs la seule chose que les mineurs puissent modifier, car ils n’ont aucun intérêt à changer le numéro du bloc, le hash du bloc précédent ou pire encore, les transactions. Deux options s’offrent alors à eux :

  • Essayer à la main plusieurs valeurs de nonce : 1, 2, 3, 4, 5… jusqu’à ce qu’ils obtiennent un hash qui commence par quatre zéros ;
  • Demander à leur ordinateur de le faire en appuyant sur le bouton Mine.

Après une dizaine de minutes, nous remarquons dans la chaîne de blocs accessible publiquement qu’un étudiant a enfin trouvé la bonne valeur à inscrire dans le champ nonce : 24479. Espérons que ce mineur a choisi la deuxième option, car s’il avait tenté 24479 valeurs à la main, il aurait eu le temps non seulement de finir son baccalauréat, mais peut-être même d’entamer une maîtrise !

Le bloc contenant ma transaction (4345) est désormais confirmé, ce qui signifie que le réseau (l’Université Laval et les mineurs) considère officiellement que j’ai bien dépensé 1 bitcoin pour payer mes frais de scolarité. 

L’immuabilité
La chaîne de blocs Bitcoin est immuable, ce qui signifie qu’une transaction confirmée ne peut pas être annulée. Cette caractéristique est importante, car un paiement effectué ne peut pas être révoqué, d’où l’importance d’être vigilant lors de toute transaction.

Imaginons maintenant qu’un étudiant, M. X, un peu trop rusé (ou carrément mal intentionné), tente de détourner mon bitcoin pour régler ses propres frais de scolarité. Pour y parvenir, il devra modifier le bloc 4345 où se trouve ma transaction afin de rediriger mon paiement vers lui. Puis, dans le bloc suivant (4346), il sera en mesure d’utiliser frauduleusement mon bitcoin pour payer son inscription.

En modifiant un bloc déjà confirmé, M. X crée une chaîne parallèle malveillante. Toutefois, il se heurte immédiatement à un problème majeur. D’abord, le bloc 4345 maintenant falsifié qui redirige mon paiement vers son propre compte devient rouge. En d’autres termes, il n’est plus validé, car la modification du contenu du bloc entraîne un changement de son hash, qui ne commence plus par les quatre zéros requis.

De plus, pour que cette fraude fonctionne, M. X doit faire en sorte que sa chaîne malveillante devienne la chaîne légitime aux yeux du réseau. Or, la règle est simple : la chaîne ayant le plus de blocs confirmés l’emporte. Pendant qu’il tente de valider son bloc frauduleux, la chaîne officielle continue de croître d’un bloc toutes les 10 minutes, creusant l’écart avec sa version falsifiée. Il sera impossible pour M. X, à lui seul, de valider son propre bloc falsifié tout en rattrapant son retard. Pour espérer réussir son coup, il lui faudrait posséder plus de 50 % de la puissance de calcul de l’ensemble des nombreux mineurs. En clair, son plan est voué à l’échec.

Une telle tentative de fraude sur le réseau Bitcoin par un individu malveillant est encore plus irréaliste. En effet, un mineur solitaire cherchant à valider un bloc à lui seul devrait faire travailler son ordinateur pendant plusieurs décennies pour espérer trouver un nonce donnant un hash valide. Pendant ce temps, la chaîne légitime continuerait de s’étendre avec un nouveau bloc ajouté toutes les dix minutes.

Dans le cas de Bitcoin, la chaîne de blocs exige actuellement un hash commençant par une vingtaine de zéros. Il s'agit d’un événement si rare qu’il faut en moyenne dix minutes à l’ensemble des mineurs du réseau Bitcoin pour trouver un nonce valide.

Conclusion

Comme le robinet rouge de Minorque, qui semble flotter dans les airs, mais qui repose en réalité sur un ingénieux système caché, Bitcoin repose sur des principes fondamentaux qui tentent de garantir son bon fonctionnement. Si ces principes assurent à un utilisateur légitime l’absence de double dépense, ils permettent aussi à un fraudeur d’empêcher une victime de récupérer ses fonds après un virement. De plus, le caractère pseudonyme de Bitcoin complique l’identification des individus derrière les transactions. Comprendre ces mécanismes permet d’adopter des comportements plus sécuritaires et de mieux appréhender cette technologie en constante évolution.

 

Hugo Chouinard 
Étudiant à la maîtrise en sciences de la consommation
Diplômé du microprogramme de deuxième cycle en administration des affaires - chaînes de blocs pour gestionnaires
Membre de la Chaire de recherche sur les contrats intelligents et la chaîne de blocs
Université Lava

  • Vous avez un commentaire

    Pour toutes questions et commentaires, veuillez nous écrire à blogue@fsaa.ulaval.ca