Qu'est-ce que c'est le minage de bitcoin?

Video courtesy of: www.bitcoinmining.com

Avant de commencer...

Avant d'aller plus loin, vous devez savoir que la plupart des utilisateurs du bitcoin ne font pas de minage ! Le minage de bitcoin est une forme de commerce très compétitif. À moins que vous fassiez du minage uniquement pour le plaisir, vous devez trouver le moyen de le faire de façon très efficace afin de vous permettre de générer des profits..

Si vous voulez obtenir des bitcoins sur la base d'une puissance de calcul précise mais que vous ne voulez pas vous occuper d'acquérir le matériel vous-même, vous pouvez acheter un contrat de minage.

Détails techniques

Durant le minage, votre ordinateur effectue des hashs cryptographiques (deux SHA256 successifs) sur ce qu'on appelle une entête de bloc. Pour chaque nouveau hash, le logiciel de minage utilise un nombre aléatoire différent qu'on appelle le nonce. Selon le contenu du bloc et la valeur du nonce, le hash produit aura une forme similaire à l'exemple suivant:

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 se calcule en comparant à quel point il est difficile de générer un bloc comparativement au premier bloc créé. Ce qui signifie qu'une difficulté de 70000 équivaut à 70000 fois plus d'efforts qu'il en fallait pour Satoshi Nakamoto pour générer le premier bloc. A l'époque où le minage était beaucoup plus lent et mal optimisé.

La difficulté change à chaque 2016 blocs. Le réseau essaie d'assigner la difficulté de telle sorte à ce que la puissance de calcul mondiale prenne exactement 14 jours pour générer 2016 blocs. C'est pourquoi la difficulté augmente de pair avec la puissance du réseau.

Matériel

Au commencement, faire du minage avec un processeur (CPU) était la seule façon de miner des bitcoins. Les cartes graphiques (GPU) ont éventuellement remplacés les CPU en raison de leurs nature qui permettait une augmentation entre 50x à 100x dans la puissance de calcul en utilisant moins d'électricité par megahash comparativement à un CPU.

Bien que n'importe quel GPU moderne puisse être utilisé pour faire du minage, l'architecture des GPU de marque AMD s'est avérée bien supérieure à nVidia pour miner des bitcoins et la carte ATI Radeon HD 5870 a été la plus économique pendant un temps.

Pour une liste plus complète des cartes graphiques et de leurs performances, consultez le Wiki Bitcoin: Comparaison du matériel de minage

De la même manière que la transition CPU vers GPU, le monde du minage a évolué vers l'usage des Field Programmable Gate Arrays (FPGA) comme plateforme de minage. Bien que les FPGAs n'offraient pas une augmentation de 50x à 100x de vitesse de calcul comme la transition de CPU à GPU, ils offraient une meilleure efficacité énergétique.

Une carte graphique typique de 600 MH/s consomme environ 400w d'électricité, tandis qu'un appareil FPGA habituel peut offrir un taux de hash de 826 MH/s à 80w de consommation électrique, un gain de 5x plus de calculs pour la même puissance énergétique. Puisque l'efficacité énergétique est un facteur déterminant dans la profitabilité du minage, il s'agissait d'une étape importante pour la migration de GPU à FPGA pour plusieurs personnes.

Le monde du minage de bitcoin est maintenant en migration vers les Application Specific Integrated Circuit (ASIC). Un ASIC est une puce conçue spécifiquement afin d'accomplir une seule et unique tâche. Contrairement aux FPGAs, un ASIC ne peut pas être reprogrammé pour effectuer d'autres tâches. Un ASIC conçu pour miner des bitcoins ne peut et ne pourra rien faire d'autre que de miner des bitcoins.

La rigidité d'un ASIC lui permet d'offrir une augmentation de la puissance de calcul de 100x tout en réduisant la consommation électrique comparativement à toutes les autres technologies. Par exemple, un appareil classique de offre 60 GH/s (1 Gigahash équivaut à 1000 Megahash. 1GH/s = 1000 Mh/s) tout en consommant 60w d'électricité. Comparativement au GPU, il s'agit d'une augmentation de la puissance de calcul de 100x et d'une réduction de la consommation électrique d'un facteur de 7.

Contrairement aux générations de technologies qui ont précédées l'ASIC, l'ASIC est la "fin de la ligne" lorsqu'on parle de changement de technologie important. Les CPUs ont été remplacés par les GPUs, eux-même remplacés ensuite par les FPGAs qui ont été remplacés par les ASICs.

Il n'y a rien qui puisse remplacer les ASICs aujourd'hui ou dans un futur immédiat. Il y aura des raffinements technologiques dans les produits ASIC et des améliorations dans l'efficacité énergétique mais rien qui ne corresponde à une augmentation de 50x à 100x de la puissance de calcul ni une réduction de 7x dans la consommation électrique comparativement à la technologie précédente.

Ce qui signifie que l'efficacité énergétique d'un appareil ASIC est le seul facteur important de tout produit ASIC, puisque la durée de vie estimée d'un appareil ASIC est supérieure à l'histoire entière du minage de bitcoin. Il est concevable qu'un appareil ASIC acheté aujourd'hui soit toujours en opération dans deux ans si l'appareil offre encore une consommation électrique suffisamment économique pour demeurer profitable. La profitabilité du minage est aussi déterminée par la valeur du bitcoin mais dans tous les cas, plus un appareil a une bonne efficacité énergétique, plus il est profitable.

Logiciel

Il y a deux manières de faire du minage : par vous-même ou en faisant partie d'une équipe (un pool). Si vous faites du minage par vous-même, vous devez installer le logiciel Bitcoin et le configurer pour JSON-RPC (voir: Faire fonctionner Bitcoin). L'autre option est de rejoindre un pool. Il y a plusieurs pools disponibles. Avec un pool, le profit généré par n'importe quel bloc généré par un membre de l'équipe est divisé entre tous les membres de l'équipe. L'avantage de rejoindre une équipe est d'augmenter la fréquence et la stabilité des gains (c'est ce qu'on appelle réduire la variance) mais les gains seront inférieurs. Au final, vous gagnerez la même somme avec les deux approches. Miner en solo vous permet de toucher des gains énorme mais très peu fréquents, tandis que miner avec un pool peut vous offrir de petits gains stables et réguliers.

Une fois que vous avez votre logiciel configuré ou que vous avez rejoint un pool, la prochaine étape est de configurer le logiciel de minage. Le logiciel le plus populare pour GPU/FPGA/ASIC est présentement CGminer ou un dérivé conçu spécifiquement pour les FPGA et les ASICs, BFGMiner.

Si vous voulez un aperçu rapide du minage sans installer de logiciel, essayez Bitcoin Plus, un mineur de Bitcoin fonctionnant dans votre navigateur avec votre CPU. Ce n'est aucunement profitable pour faire du minage sérieux, mais il s'agit d'une bonne démonstration du principe du minage en équipe.

Merci à:

Blitzboom et les participants sur #bitcoin-dev pour leur aide dans la rédaction de ce guide!