Bitcoin, pièce par pièce · 6 min · démo interactive

Le minage expliqué : mine un bloc dans ton navigateur

Miner, c'est tirer au sort des millions de fois. Lance un mineur ici, avec le même calcul que Bitcoin, et compare ta vitesse à ce que demande le réseau.

L’idée en une phrase

Miner consiste à essayer des nombres au hasard jusqu'à ce que le hash d'un bloc tombe sous une cible fixée par le réseau.

Il n'y a aucune énigme à résoudre et aucune astuce pour aller plus vite. Comme un hash est imprévisible, la seule méthode est de recommencer. Le gagnant écrit le prochain bloc et touche la récompense. Sa réussite coûte très cher à produire et une seule opération à vérifier.

La démo

Exemple déjà miné : nonce 98991, hash commençant par 16 bits à zéro au moins.

En-tête de 80 octets (ordre des octets de Bitcoin)

version 01000000 précédent 6fe28c0ab6f1b372c1a6a246ae63f74f931e8365e15a089c68d6190000000000 merkle 081397a630725558e71ad02533f2f2946e55d001a57c30901d801077c5a4c581 temps 00b95569 cible ffff001f nonce af820100

Dernier hash essayé (affichage inversé, zéros en vert)

0000abfe2c5e765bca71b85d37c848cb463eb2ee9239ab2bccf9f31738f2c726
98 992essais de ce tirage
65 536essais espérés en moyenne
–ta vitesse
–temps écoulé
16 bitsmeilleur résultat
–pour 232 essais à ta vitesse
BitsEssaisEspérésTemps
1698 99265 536exemple

Sans JavaScript, voici le résultat fixe de l'exemple. L'en-tête bâti sur le texte « Alice paie 5 à Bob », pour 16 bits à zéro, est valide avec le nonce 98 991, soit 98 992 essais depuis zéro, et donne le hash 0000abfe2c5e765bca71b85d37c848cb463eb2ee9239ab2bccf9f31738f2c726. Refais le calcul sur n'importe quelle machine : tu obtiendras la même chose.

Intégrer cette démo

Copie ce code sur ton site, ton cours ou ton blog. La démo reste gratuite ; garde simplement le lien vers protocole.org.

Pourquoi ça compte

Sans registre central, qui décide du prochain bloc ? Un vote par ordinateur échouerait : un attaquant créerait un million d'identités en une minute. Satoshi Nakamoto a remplacé le vote par la dépense : ton poids dépend du calcul que tu fournis, et le calcul se paye en électricité et en matériel.

Ce mécanisme répond à deux besoins. Il ordonne les transactions sans chef, et il rend la réécriture du passé ruineuse. Un mineur qui triche voit son bloc rejeté par tous les nœuds et perd l'énergie dépensée.

Le code

Le code commence par vérifier le vrai bloc de genèse de Bitcoin, avec ses 80 octets publics. Il mine ensuite un en-tête comme la démo. Augmente BITS avec prudence : l'exécution s'arrête au bout de 5 secondes.

Clique sur Lancer pour exécuter ce code dans ton navigateur.

Ce qui se passe vraiment

L'en-tête affiché dans la démo a la structure exacte de Bitcoin : version sur 4 octets, hash du bloc précédent sur 32, racine de Merkle sur 32, temps sur 4, cible compacte sur 4, nonce sur 4. Ici, le bloc précédent est le vrai bloc de genèse, et l'heure est figée au 1er janvier 2026 pour que le résultat soit reproductible.

Clique sur Lancer. Le programme écrit un nonce dans l'en-tête, applique deux fois SHA-256, puis regarde si le résultat, lu comme un grand nombre, passe sous la cible. Sinon, il ajoute 1 au nonce et recommence. Le calcul avance par tranches de 12 millisecondes pour laisser la page réactive.

Le tableau montre la nature du tirage. Chaque bit à zéro exigé divise la cible par deux, donc double le travail moyen : 216 vaut 65 536, 220 dépasse le million. Les temps varient beaucoup d'un essai à l'autre, car chaque hash est un tirage indépendant. Après 100 000 échecs, ta chance au tirage suivant reste la même : on dit que le minage est sans mémoire. Change le texte d'une lettre et relance pour le constater.

Le compteur « meilleur résultat » indique le hash le plus proche de la cible parmi ceux qui ont déjà un premier octet nul. La case suivante convertit ta vitesse en durée pour 232 essais, soit environ 4,3 milliards, le travail moyen de la difficulté 1 de Bitcoin, celle de ses débuts.

La démo est lente par construction : une implémentation JavaScript pédagogique, sur un seul cœur. Elle reste un mineur fidèle dans sa logique, pas dans son échelle. Elle simplifie aussi le contenu du bloc : un seul texte au lieu de vraies transactions.

Dans la vraie vie

Le réseau ajuste la cible tous les 2 016 blocs, environ deux semaines, pour viser un bloc toutes les dix minutes. Si la puissance totale double, la cible se resserre d'autant au réajustement suivant, et le rythme revient vers dix minutes. Plus de mineurs ne signifie donc pas plus de bitcoins émis.

Le vrai bloc de genèse montre que le hasard peut dépasser la demande : sa cible exigeait 32 bits à zéro et son hash en a 43, comme le montrent les dix zéros hexadécimaux au début de son hash, affiché par le code. Son nonce, 2 083 236 893, tient sur 32 bits. Aujourd'hui, le nonce s'épuise bien trop vite : les machines spécialisées parcourent ces 4 milliards de valeurs en une fraction de seconde. Les mineurs modifient alors le temps ou un champ libre de la première transaction, ce qui change la racine de Merkle et ouvre de nouvelles valeurs à essayer.

Le gagnant inscrit lui-même une transaction spéciale qui lui verse la récompense, composée de bitcoins nouveaux et des frais du bloc. Cette émission diminue par paliers, comme l'explique la page sur le halving. Le secteur s'est industrialisé : le matériel est passé des processeurs aux cartes graphiques, puis aux puces ASIC dédiées. Les mineurs mettent leur puissance en commun dans des pools pour lisser leurs revenus.

Ethereum a abandonné ce modèle en septembre 2022 pour la preuve d'enjeu. Le débat porte sur des compromis : la preuve de travail lie la sécurité à une dépense physique, avec une consommation d'énergie importante.

Ce qui peut mal tourner

  • Croire qu'on peut miner avec son téléphone ou son navigateur. La case « pour 232 essais » le montre : ton appareil est très loin du niveau du réseau actuel. Cette page ne mine rien de réel et ne rapporte rien.
  • Le cryptojacking. Des sites et des logiciels malveillants minent à ton insu avec ton processeur. Un onglet qui fait hurler le ventilateur sans raison doit alerter.
  • Les offres de « cloud mining » trop belles. Beaucoup de pyramides financières se présentent ainsi. Un rendement garanti n'a pas de sens pour une activité dont la difficulté et les revenus varient.
  • La concentration. Si quelques pools regroupent la majorité de la puissance, ils peuvent censurer des transactions ou réécrire les blocs récents.
  • Le minage égoïste. Un mineur peut garder ses blocs secrets pour faire perdre du travail aux autres, une stratégie décrite par Eyal et Sirer en 2013.
  • Confondre difficulté et sécurité absolue. Une petite chaîne qui partage son algorithme avec une grande peut être attaquée avec du matériel loué. Voir pourquoi on ne peut pas modifier une blockchain.

Teste-toi

1. Après un million d'essais ratés, ta chance au prochain essai est…
2. Exiger un bit à zéro de plus multiplie le travail moyen par…
3. Pourquoi Bitcoin ajuste-t-il sa difficulté ?