Générer des bitcoins

Le minage c’est le procédé par lequel les transactions Bitcoin sont sécurisées. A cette fin les mineurs effectuent avec leur matériel informatique des calculs mathématiques pour le réseau Bitcoin. Comme récompense pour leurs services, ils collectent les bitcoins nouvellement créés ainsi que les frais des transactions qu’ils confirment. Elle est divisée par deux tous les quatre ans environ. Le 11 mai 2020 cette récompense est passée à 6,25 bitcoins par bloc.

Les mineurs (ou les coopératives de mineurs) sont en concurrence et leurs revenus sont proportionnels à la puissance de calcul déployée.

« Pour décrire le minage, on pourrait utiliser l’exemple d’un gigantesque concours de sudoku où les participants recommencent une nouvelle grille dès que quelqu’un trouve une solution, et dont la difficulté s’ajuste pour qu’en moyenne une grille soit résolue toutes les dix minutes. Imaginons une grille géante de sudoku, avec plusieurs milliers de lignes et de colonnes. Il serait assez facile de vérifier qu’une grille terminée est bien remplie. Mais […] il faudra beaucoup de travail pour la terminer ! La difficulté des grilles peut être ajustée en changeant leurs tailles […], mais elles peuvent toujours être vérifiées facilement même si elles sont très grandes. Les puzzles à résoudre dans le réseau bitcoin se basent sur les hashs cryptographiques et présentent les mêmes caractéristiques que ces grilles de sudoku : ils sont très difficiles à résoudre mais il est très facile de vérifier qu’une solution est bonne, et leur difficulté peut être ajustée. » – Andreas M. Antonopoulos.

Que calculent les mineurs ?

Les mineurs effectuent des hashs cryptographiques (deux SHA256 successifs) sur ce qu’on appelle un entête de bloc. Pour chaque nouveau hash, le logiciel de minage utilise un nombre aléatoire différent qu’on appelle le nonce. Le nonce est une valeur entière avec 32 bits de mémoire qui lui sont alloués. Cela signifie qu’il est limité à environ 4 milliards de possibilités seulement, ce qui, avec la puissance de hachage actuel du réseau, est largement insuffisant. On ajoute donc dans le hash l’horodatage du bloc en heure Posix, constamment actualisée. Autre élément variable sur lequel les mineurs peuvent jouer : l’agencement des transactions. Intégrant le numéro de bloc, l’horodatage, le nonce, les données du bloc et hachage du bloc précédent, le hash produit ressemblera à ceci :

93ef6f358fbb998c60802496863052290d4c63735b7fe5bdaac821de96a53a9a

Ce hash peut être converti dans un très long nombre. (Il s’agit d’un nombre hexadécimal, ce qui signifie que les lettres A-F sont les nombres 10-15). Afin de rendre le minage difficile, il y a ce qu’on appelle la difficulté cible. Afin de créer un bloc valide, un mineur doit trouver un hash qui est inférieur à la difficulté cible. Par exemple, si la difficulté est de :

1000000000000000000000000000000000000000000000000000000000000000

n’importe quel nombre qui débute par un zéro serait accepté et considéré comme inférieur à la cible. Exemple :

0787a6fd6e0782f7f8058fbef45f5c17fe89086ad4e78a1520d06505acb4522f

Si nous diminuons la cible à :

0100000000000000000000000000000000000000000000000000000000000000

nous avons maintenant besoin d’un nombre débutant par deux zéros :

00db27957bd0ba06a5af9e6c81226d74312a7028cf9a08fa125e49f15cae4979

Parce que la cible est un nombre encombrant avec beaucoup de chiffres, un nombre plus simple est généralement utilisé pour exprimer la cible actuelle. Ce nombre est appelé la difficulté de minage. La difficulté de minage est étalonnée sur le premier bloc créé. Ce qui signifie qu’une difficulté de 70000 signifie 70000 fois plus de puissance de calcul qu’il en a fallu à Satoshi Nakamoto pour générer le premier bloc, quand il était le seul mineur et qu’il n’utilisait que le CPU d’un ordinateur.

Lorsqu’ils minent un bloc, les mineurs incluent dans le bloc un horodatage. Depuis 2016, ce « timestamp » permet au réseau de s’ajuster au temps qui passe en calculant le temps médian passé (MTP), c’est-à-dire la médiane des horodatages des 11 derniers blocs. Pour être valide, un horodatage ne peut pas se trouver plus de deux heures dans le futur par rapport au temps subjectif du nœud.

La difficulté change tous les 2016 blocs. Le réseau ajuste la difficulté afin que le temps de génération de ces 2016 blocs soit de 14 jours, quelle que soit la puissance de calcul déployée. C’est pourquoi la difficulté suit la puissance du réseau. L’algorithme d’ajustement est le suivant : si le temps mesuré dans la période de 2016 blocs est inférieur à 20 160 minutes (temps attendu), alors la difficulté augmente pour se conformer à la puissance de calcul supposée ; s’il est supérieur, alors la difficulté diminue. Le reciblage est limité à un facteur 4 (multiplication comme division) pour éviter les instabilités.

Pour connaitre la difficulté actuelle : https://www.coinwarz.com/mining/bitcoin/difficulty-chart

La puissance de calcul du réseau se mesure actuellement en ExaHash par seconde (EH/s). Pour une estimation de la puissance actuelle : https://www.coinwarz.com/mining/bitcoin/hashrate-chart

UnitéHashHashs par seconde
H/s (Hash)1Un
kH/s (KiloHash)1,000Mille
MH/s (MegaHash)1,000,000Un million
GH/s (GigaHash)1,000,000,000Un milliard
TH/s (TeraHash)1,000,000,000,000Un billion (mille milliards)
PH/s (PetaHash)1,000,000,000,000,000Un billiard (un million de milliards)
EH/s (ExaHash)1,000,000,000,000,000,000Un trillion (un milliard de milliards)

Quelques vidéos

Source : MoneyRadar
Vidéo de la chaine youtube « Chaîne de Blocs« 

Comment miner des bitcoins ?

Le minage de bitcoins rarement une activité rentable pour les particuliers. La popularité de Bitcoin a généré une concurrence énorme qui le rend inaccessible. Le plus souvent seuls des sites industriels parviennent à tirer profit de cette activité. Avant de vous risquer dans cette aventure, nous vous invitons à lire le témoignage (déjà ancien) de Greg Ryder et à visiter l‘espace dédié au minage sur le forum Bitcointalk.

Notons au passage l’existence de sociétés qui pratiquent le « cloud mining » et vendent de la capacité de calcul à leurs clients qui reçoivent en échange les fractions de bitcoins minés, après déduction de frais de gestion. Attention cependant, certains services sont souvent très décevants, quand il ne s’agit pas tout simplement de pures escroqueries. De façon générale, même pratiqué sérieusement, le cloud mining est rarement rentable.

Pratiqué sur le sol français (ou européen), le minage de cryptomonnaies n’est à conseiller qu’aux personnes qui disposent, à des fins domestiques, de leur propre générateur d’électricité verte (solaire, éolien, géothermique, hydraulique) sans avoir la possibilité de revendre les surplus de production sur le réseau public.

Autre possibilité pour rendre le minage rationnel en France, c’est d’utiliser la chaleur produite pour produire de l’eau chaude, c’est la proposition de la startup française WiseMining.