Bitcoin Mining [mooc Bitcoin week #05]

Maxime Pawlak
8 min readJun 5, 2018

--

Jusque là dans ce mooc nous avons compris comment valider de nouvelles transactions, comment enchainer les blocs dans la blockchain, comment voter par consensus. Et s’il y a un acteur impliqué à chacune de ces étapes, c’est bien le mineur.

Nous allons voir cette semaine qui sont-ils ? Quels matériel possèdent-ils ? Et comment s’organisent-ils ?

(ps : si vous débarquez à peine, je vous conseille de reprendre les choses depuis le début).

# The task of Bitcoin Miners

Pour commençons, prenons l’analogie de la ruée vers l’or à la fin du XIXème siècle aux Etats-Unis. En très peu de temps, des gens se sont précipités à l’autre bout du pays dans l’espoir de devenir riche très rapidement en trouvant une pépite d’or. Dans les faits, c’est plus sur le long terme que vous pouviez espérer gagner de l’argent (et en attendant, faut bien manger !).

Qui sont les personnes vraiment devenus riches ? Les vendeurs de pioches !

Avec le Bitcoin, c’est un peu pareil : un gros engouement ,et un investissement massif dans du matériel pour miner. Autant vous dire qu’aujourd’hui, ce n’est plus du tout intéressant de miner sans un investissement conséquent (on parle de centaines de milliers d’euros).

Pour miner du bitcoin, le principe est simple :

  • rejoindre le réseau
  • assembler un block avec les transactions reçues
  • trouver le “nonce” qui va bien
  • espérer avoir été le plus rapide et que le reste du réseau accepte ce block
  • devenir riche #easyMoney

Si la théorie est facile, la pratique l’est beaucoup moins. Trouver le fameux “nonce” est très fastidieux dans la mesure où il n’y a pas vraiment d’astuce pour avancer plus rapidement qu’un autre : c’est de la force (de calcul) brute. Il faut essayer un maximum de combinaison pour trouver un “nonce” qui soit plus petit que la difficulté ciblée.

A ce sujet, à en croire blockchain.info la difficulté actuelle (mai 2018) est de trouver le nonce tel que le hash commence par 18 zéros :

Comment est ajustée cette difficulté au fil du temps ? C’est simple.

Tous les 2016 blocs (deux semaines), la difficulté est mise à jour selon cette formule :

Elle dit que la prochaine difficulté doit permettre de trouver un bloc toutes les 10 minutes en moyenne (soit 2016 toutes les 2 semaines).

Si plus de mineurs rejoignent le réseau, les blocs seront trouvés plus rapidement, donc la difficulté augmente. Au contraire, si les blocs sont trouvés moins fréquemment, la difficulté diminue.

Ci-dessous, l’historique de l’évolution de la difficulté depuis 1 an :

Si de manière générale, cela augmente toutes les deux semaines, on remarque aussi qu’à certains moments la difficulté diminue. On voit aussi qu’en un an, la puissance de calcul du réseau a été multipliée par 6 !

Grâce à cette ajustation bi-mensuelle, on s’assure de générer en moyenne un bloc toutes les 10 minutes, et ce même si des mineurs rejoignent ou quittent le réseau.

# Mining Hardware

Parlons maintenant un peu du matériel nécessaire pour miner.

En fait, miner, vous l’avez compris, c’est calculer un nombre gigantesque de hashs (plus particulièrement des hashs issus de la fonction SHA-256).

Toute la suite est la retranscription du Mooc qui a été enregistré en 2014. Donc il y a des chances que certains points ne soient plus d’actualité.

Avec un PC normal, si vous minez avec votre CPU, vous arriverez à générer entre 2 et 24 hashs par seconde. C’est un début on va dire.

Très rapidement, en 2010, certains personnes se sont mises à utiliser leurs cartes graphiques (GPU). Le principale avantage étant la parallélisation des tâches. Et comme on peut controller plusieurs cartes graphiques avec un seul PC, on s’est vite retrouvé avec plein d’agancements … maison on va dire:

Puis, en 2011, d’autres sont partis vers les cartes FPGA. Ce sont des cartes programmables plus performantes que les GPU. Une bonne carte graphique génère autour de 30 hash/seconde, là où une carte FPGA peut monter à un milliard de hash/seconde ! On monte d’un cran !

Puis, juste après d’autres ont préféré utilisé des cartes ASICS spécifiquement conçus pour le minage de bitcoin : des produits designés et optimisés pour cela ! On parle de plusieurs millers d’euros et quelques TéraHahs/seconde (mille milliard).

Sauf que ces produits étant très spécifiques, tous les vendeurs mettent un gros avertissement : il n’y a que des précommandes et aucun engagement sur la date de livraison. Ca peut poser problème, car si vous recevez votre produit plus tard que prévu (selon vos calculs de rentabilité en fonction de la puissance du réseau), tout votre investissement peut être complétement vain !

Certains disent même que les fabricants utilisaient les machines avant de les envoyer, expliquant les très nombreux retards…

Le problème de ces produits est qu’ils étaient très vite dépassés : 6 mois maximum. Aujourd’hui les mineurs sont regroupés dans des fermes de minage qui sont spécialisées. Un peu comme les data-centers où tout est optimisé : connexion réseau, température, …

Ces mines sont réparties sur la planète et souvent dans des endroits où :

  • l’électricité est peu chère
  • la connexion internet est bonne
  • de préférence avec un climat frais pour limiter le refroidissement.

Ce n’est donc pas un hasard si les principales fermes se trouvent Islande et en Chine.

Si on reprend le parallèle avec la ruée vers l’or, on observe la même progression : accessible à tous puis spécialisation et enfin professionalisation complète de l’activité.

Or, cette consolidation des acteurs va à l’encontre de la vision du bitcoin et de sa volonté de décentralisation. Pas mal de questions se posent alors :

  • est-ce toujours intéressant pour un petit mineur de rester ?
  • est-ce la super puissance des ASIC ne rompt-elle pas la vision du bitcoin ?

Autant de questions qui perdurent dans l’univers Bitcoin, mais qui sont traitées dans d’autres alt-coins.

# Energy Consumption & Ecology

La consommation énergétique est inévitable pour miner :

  • produire le matériel de minage et le livrer
  • consommation électrique pour faire tourner ce matériel
  • consommation électrique pour refroidir le matériel (et c’est souvent cela qui coûte le plus cher !)

Il va sans dire : une empreinte écologique énorme !

Il y a tout un débat autour de cela. C’est compréhensible. Néanmoins, si cela vous intéresse, je vous conseille vivement cette vidéo de Jacques Favier qui a étudié le sujet :

En quelques mots : oui le bitcoin consomme beaucoup. Mais les modes de calcul avancés dans certains médias sont faux et exagèrent la réalité.

Est-ce utile ? Ca dépend du point de vue. Mais cela va encourager le progrès sur la production d’électricité (technologiquement parlant) et le refroidissement. (faut-il encourager le progrès ? C’est encore un autre débat)

Et surtout, le point que je trouve le plus pertinent est le suivant : combien consomme l’économie “réelle” : banques, traders, convoyeurs de fonds, distributeurs … ?

A aucun moment une comparaison claire est établie entre la consommation de l’économie du bitcoin et l’économie réelle dans les médias qui raffolent des titres racoleurs. Je pense que ce comparatif serait super intéressant à étudier !

# Mining Pools

Vous l’aurez compris, vous lancez seul dans le minage c’est comme jouer au casino : peu de chances de gagner.

C’est pour cette raison que les mineurs se sont regroupés pour former des pool de minage. Le concept est simple :

  • plusieurs mineurs cherchent à résoudre le même bloc, ayant comme adresse de de paiement, l’adresse du pool
  • dès que le pool trouve un bloc, la récompense est partagée entre les participants

Cela permet d’unir ses forces et de lisser ses revenus (si on apporte la puissance de calcul suffisante).

Il y a plusieurs manières de répartir la récompense. L’une d’entre elles est le near-valid blocks. En fait, elle consiste à récompenser en fonction de notre effort, et pas forcément si on a trouvé le bloc ou pas.

Comment faire ? Simplement en comptant le nombre de blocs ayant un hash suffisamment petit. Et oui statistiquement, plus vous avez cherché, plus vous avez trouvé des petits hash (et donc des blocs presque valides).

Sur l’image ci-dessus, c’est la machine de droite qui trouve le bon nonce. Ceci dit, elle gagne moins que la machine à gauche car cette dernière a fourni un effort lui permettant de trouver 3 petits hahs (face au deux hash de la machine “victorieuse).

Après chaque pool a ses spécifités. Des protocoles ont d’ailleurs émergé pour gérer cet aspect là du minage (Stratum, Getwork …).

Aujourd’hui, plus de 90% du minage est organisé en pool. La répartition acutelle (en prenant en compte la puissance sous un mois) est la suivante :

Fait intéressant, en juin 2014, un pool (GHash.io) a dépassé les 50% de puissance. LE moment que tout le monde redoutait est ainsi arrivé ! Néanmoins, les enjeux étaient tels qu’ils ont décidé de rétrécir volontairement leur puissance. Ils ont par la suite lancé un appel à toutes les autres pools pour que personne ne dépasse les 39.9% pour le bien du Bitcoin. Fascinant comme comportement, n’est-ce pas ?

Les pools sont une concentration de la puissance et représentent un danger pour la décentralisation du Bitcoin. C’est pour cela que des alt-coins se sont lancés afin de rendre caduc le regroupement en pool (#stayTuned).

Conclusion

Le statut du mineur a bien évolué depuis le début du bitcoin. Il s’est surtout professionnalisé : matériel, stratégie, regroupement. Plus rien n’est laissé au hasard aujourd’hui. Et quand on connaît les sommes en jeu, on comprend bien pourquoi.

La semaine prochaine, nous étudierons l’aspect “anonyme” du bitcoin.

--

--

Maxime Pawlak
Maxime Pawlak

Written by Maxime Pawlak

#dataScientist #techplorator #prototypeur #entrepreneur

No responses yet