Vous avez surement entendu parler de cette monnaie numérique qui n'est contrôlée par aucun état, et d'ailleurs par personne d'autre. Il y aurait beaucoup à dire sur sa philosophie, son espérance de vie, son impact sur la société, ses avantages et ses inconvénients. Cependant, je ne vais ici que vous présenter humblement le principe technique à la base de la monnaie.

Comment le bitcoin fonctionne pour être sûr tout en n'étant contrôlé par personne ?

L'idée de base, c'est de rendre inviolable l'historique des transactions afin d'empêcher tout tricheur de tricher, c'est-à-dire de modifier une transaction après sa validation. Pour cela, le principe proposé n'est pas de chiffrer(1) les transactions mais tout simplement de les compléter de manière suffisamment originale afin que cette opération soit impossible à réaliser pour le tricheur. Ainsi, cet historique complété est publié et accepté unanimement par tout le réseau participant.

Je m'explique : on va faire intervenir non pas un chiffrement mais un hashage(2). On va compléter l'historique de transactions tel quel (en clair, visible) avec quelques caractères générés aléatoirement et sans aucun sens de sorte que le hashage soit très particulier(3). Comme de tels hashages sont très rares (quand le nombre de 0 est grand), ils sont très longs à trouver. En effet, il n'y a pas d'autre solution pour en trouver que de générer aléatoirement les caractères, de calculer le hashage pour voir s'il correspond au critère et de recommencer si ce n'est pas le cas(4). Une fois que de tels caractères sont publiés, ils sont acceptés automatiquement par tout le réseau et ce dernier s'attache immédiatement à recommencer le procédé sur l'historique modifié (et éventuellement complété des dernières transactions).

Si un tricheur veut profiter du système, il doit modifier des transactions dans l'historique. Pour cela, rien de plus facile puisque l'historique est public, il lui suffit de le télécharger pour le modifier. Mais bien sûr, sa modification change le résultat du hashage qui redevient commun. Il doit donc trouver de nouveaux caractères aléatoires pour avoir un bon hashage afin de faire accepter son historique au réseau, ce qui lui prend un certain temps. Malheureusement pour lui, pendant ce temps, la chaine de hashage du réseau de gens fiables continue et pour faire accepter sa modification, il doit trouver de nouveaux caractères pour chaque étape de retard qu'il a sur le réseau. Il s'engage alors une course de puissance de calcul entre le tricheur et le réseau. Course hautement défavorable au tricheur qui confronte les machines qu'il est capable de rassembler à l'ensemble des machines du réseau mondial adhérent au système.

Et c'est aussi simple que ça. Le système n'est pas protégé par un organisme unique (la banque) et donc attaquable mais par sa simple puissance de calcul distribué. Et c'est ça qui est épatant, tout est transparent : le principe est public, le programme est public, la fonction de hashage est publique, les transactions mêmes sont publiques(5) mais pourtant, la triche est hautement improbable. Improbable car il est tout à fait possible de réussir à tricher sur un gros coup de chance puisque la recherche des caractères est aléatoire. Cependant, les démonstrations montrent qu'il est bien plus probable de gagner à l'euromillion que de prendre le réseau de vitesse(6).

Vous comprenez un peu mieux maintenant pourquoi le système n'est contrôlé par personne. Nulle entité, pas même le créateur du système, n'a le pouvoir de modifier une transaction. Pour cela, il ne suffit pas de passer discrètement et patiemment par une porte dérobée comme dans le cas des attaques classiques, il faut attaquer frontalement le réseau dans son ensemble.


  1. (1) C'est à dire « coder l'information » en langage courant. La transformer en un amas incompréhensible qui peut redevenir comme avant grâce à la bonne clé tenue secrète.
  2. (2) Le hashage donne, comme le chiffrement, un résultat incompréhensible à partir de l'information initiale. Par contre, il est impossible de retrouver l'information originale, il y a perte d'information. Tout ce que l'on peut dire, c'est qu'un hashage de deux informations identiques donne bien le même résultat mais la moindre modification produit un hashage complètement différent.
  3. (3) En l'occurrence ici, on veut un hashage qui commence par plein de 0.
  4. (4) Dans le cas du bitcoin, la difficulté est réglée pour que cela prenne 10 minutes en moyenne pour l'ensemble du réseau.
  5. (5) Les portefeuilles le sont mais le lien avec une personne physique n'est que de la responsabilité de cette personne, pas du réseau.
  6. (6) En plus, la modification d'une partie de la chaîne serait surveillée de très près puisque tout le monde s'en rendrait immédiatement compte. En fait, il est infiniment moins difficile d'attaquer directement le porteur du compte que de tenter de modifier l'historique.