Dossier

[Dossier] La place des mining pools et du minage en 2020

Crypto

Par Eric Geoffroy le

Si vous lisez la rubrique crypto du site, et que vous vous intéressez fortement à la blockchain et aux cryptos, il est fort probable que vous ayez déjà entendu parler de minage de crypto-monnaies, et aujourd’hui on vous propose un « deep dive » dans le monde des mining pools – ces coopératives, véritables rassemblements de mineurs de cryptomonnaies, qui sont essentielles au bon fonctionnement de la blockchain.

Qu’est-ce qu’une pool de minage et quel est son rôle ?

Rappel – La blockchain et le minage de cryptomonnaies

Sans trop s’attarder sur les détails, puisqu’un article très bien rédigé sur le minage des crypto-monnaies a déjà été réalisé, les mineurs sont en réalité des personnes comme vous et moi, ou bien des professionnels, avec du matériel de minage – ou un RIG comme on l’appelle dans le jargon.

Un RIG de minage c’est une sorte de PC hybride monté dans l’optique de générer une puissance de calcul optimisée grâce au GPU – les cartes graphiques – ou le CPU (en fonction du coin miné). En connectant les RIGs de minage à la blockchain on participe au processus de validation et de sécurisation des transactions du réseau.

Pour récompenser ce travail, les mineurs ayant mis à disposition leurs puissance de calcul sont récompensés par des fragments de cryptomonnaies issus de la validation d’un bloc dans la blockchain.

Sans les pools de minage, il n’y aurait pas de Blockchain

Le fonctionnement basique de la blockchain lors d’une transaction

Mais alors à quel moment interviennent les pools de minage ? Et bien très simplement, il est devenu quasiment impossible de travailler tout seul, dans son coin, avec sa machine, et ceci simplement à cause de l’évolution de ce que l’on appelle la difficulté du réseau (qui évolue sans cesse en fonction de la taille du réseau et du nombre d’acteurs qui y participent). Entrent alors en scène les pools de minage.

S’il fallait représenter cela de façon imagée, on pourrait voir la pool de minage comme un sorte de coopérative au sein de laquelle se regroupent les mineurs de cryptomonnaies afin de mettre en commun la puissance de calcul.

En rassemblant toute cette puissance de calcul, il est plus simple pour ces derniers de résoudre les puzzles mathématiques nécessaires au bon fonctionnement de la blockchain dans le système de la Preuve de TravailProof-of-Work. Les pools de minage ont donc un rôle indispensable au minage de cryptomonnaies, sans quoi tout ce système serait impossible. C’est en fait la colonne vertébrale de tout ce système.

Petit historique des pools de minage

Il y a de cela une dizaine d’année, quand les gens ne s’intéressaient pas encore autant à Bitcoin, il était tout à fait possible de miner quelques BTC bien au chaud chez soi, avec le CPU de son ordinateur – Imaginez un temps où avec votre modeste PC vous pouviez faire du solo mining sur Bitcoin, un temps où le reward pour un bloc était de 50 BTC. Aujourd’hui ça peut paraître fou mais en 2011 par exemple, c’était la norme pour tous.

Évidemment cela ne pouvait durer indéfiniment et les choses commencèrent à changer lorsque le minage de Bitcoin commença à prendre une tournure industrielle – entendez par là des mineurs avec de plus en plus de matériel, et à solliciter les GPU, donc les cartes graphiques (bénéficiant ainsi d’une plus grande puissance de calcul).

Vous comprendrez donc que pour les mineurs CPU, il devenait impossible de trouver des blocs de leur côté. C’est dans cette situation déséquilibrée, avec les mineurs en CPU d’un côté (plus modestes) et les mineurs en GPU de l’autre, qu’apparaît la première pool de minage de bitcoin. Avec son slogan très clair « Mine As One » SlushPool ouvre la voie à une nouvelle période dans l’histoire du minage de Bitcoin et des cryptomonnaies à venir.

Cette nouvelle impulsion se traduit par une augmentation et une évolution rapide des technologies liées au minage – pour arriver aux fameux ASICs – et à la professionnalisation du minage sur le réseau Bitcoin. Aujourd’hui le modèle est répliqué partout, et la plupart des cryptomonnaies que l’on connait nécessitent de passer par une pool de minage afin de miner correctement et d’avoir une chance de faire tomber un bloc.

Fonctionnement technique des pools de minage

Qu’arrive-t-il aux transactions de la blockchain ?

Dans un consensus de Preuve de Travail (Proof-of-work), lors d’une transaction de A vers B, les mineurs valident et sécurisent ces informations. Le minage sert en réalité à prévenir le risque de double dépense (double-spend), un type de fraude résultant de la manipulation des données. Il y a donc une double utilité du travail des mineurs puisqu’ils sont à la fois responsables de la vérification des transactions, mais également de la création des blocs qui vont servir à les sécuriser. Les mineurs sont responsables de ce système de validation et permettent donc à tout l’écosystème blockchain de fonctionner correctement, c’est pourquoi ces derniers sont récompensés pour ce travail.

Tout cela est très bien mais que se passe t’il en réalité dans les coulisses ? Comment les mineurs trouvent des blocs ? Quel-est le rôle d’une pool de minage ? Comment ces programmes communiquent t’ils ensemble ? Explications :

Job broadcasting entre la pool et les mineurs

Ce sont en effet les mineurs qui soutiennent toute cette activité dans les systèmes proof-of-work (PoW) que l’on connait actuellement sur Bitcoin et Ethereum par exemple. Nous avons vu plus haut la nécessité de se regrouper au sein de pool de minage, afin d’être capable de trouver des blocs.

Pour vous, mineurs, lorsque vous rejoignez une pool de minage, vous installez votre matériel, branchez le tout proprement (ou pas) et lancez un logiciel de minage (Vous en connaissez déjà quelque uns : Claymore, Ethminer, etc). Ce dernier, via une connexion TCP se connecte au serveur de la pool en respectant un protocole nommé STRATUM

De son côté, la pool reconnait la demande de connexion et commence à transmettre des informations clés, notamment la difficulté de minage (qui doit être cohérente afin que le mineur puisse trouver suffisamment de shares pour avoir une récompense), mais attribue également un identifiant au mineur en question. L’échange continue très simplement entre la pool et les mineurs avec le système de distribution des jobs (donc ce fameux puzzle mathématique à résoudre) – et de l’autre côté la réception des shares et son traitement.

Attribution du design : Conception vecteur créé par macrovector – fr.freepik.com

La pool de minage : validation, transmission et rémunération

Comment une pool gère les shares qui lui sont soumises ?

A partir de là, trois solutions s’offrent à la pool lorsqu’elle reçoit une share depuis un de ses mineurs. Le fonctionnement peut varier en fonction des pools et des protocoles mis en place en termes de rémunération, mais voici comment cela fonctionne par exemple chez Cruxpool, pool de minage PPS (Pay-Per-Share).

  • Si la share est invalide, l’invalidité est enregistrée et l’information est communiquée au mineur afin qu’il puisse remédier à un éventuel problème de connectivité
  • Si la share est valide, mais ne correspond pas à la bonne solution requise par le bloc en cours, l’effort accompli est enregistré pour ensuite rémunérer le mineur (ce qui n’est pas le cas dans un système PPLNS par exemple)
  • Si la shareest valide et qu’en plus elle constitue la bonne solution requise par la blockchain, l’effort est aussi enregistré, mais en plus cette share est soumise à un node de la blockchain pour intégration.

Un rôle d’intermédiaire indispensable entre les mineurs et la blockchain

Tout le travail de la pool de minage réside dans le fait de conserver une totale cohérence avec l’état de la blockchain. Il faut donc que l’information circule correctement entre les différents nodes de la blockchain, la pool de minage, et les mineurs.

Par exemple, c’est le rôle de la pool d’aller extraire des serveurs (des nodes) de la blockchain et de mettre à jour le travail à effectuer. La pool fait donc une request sur les informations du bloc en cours, les transactions à inclure etc. La pool doit ensuite adresser ce job à tous les mineurs connectés par le biais d’une connexion TCP STRATUM (le fameux mining.notify).

De l’autre côté de l’activité, une fois que le mineur envoie ses shares, la pool doit construire la transaction à envoyer au protocole Blockchain, en associant l’adresse de la pool, et transmet le tout (les transactions, les smarts contracts …) au reste du réseau pour que l’ensemble des nodes qui constituent la blockchain puissent approuver ce nouveau bloc.

Tout travail méritant salaire, c’est jour de paie pour les mineurs connectés à la pool. Cette dernière comptabilise toutes les shares valides soumises et récompense à hauteur des efforts fournis ! Encore une fois, le système de rémunération dépend des pools et probablement qu’un autre article serait nécessaire pour en faire le tour à 100% !

Epilogue : La décentralisation … par des mining pools centralisées.

L’origine même des mining pools est par essence « contraire » à la vision originelle de Satoshi Nakamoto, le créateur de Bitcoin. La blockchain se devait en effet d’être totalement sécurisée par le principe même de la décentralisation, et ce dans une volonté de s’opposer aux institutions monétaires et au système bancaire que nous connaissons tous. Cette vision devait garantir l’abolition des intermédiaires, et la souveraineté des biens et des actifs aux participant de la blockchain.

Un système ou une plateforme décentralisée et un système où personne n’est entièrement propriétaire de la blockchain – les transactions qui s’y déroule sont validées par une multitude de serveurs, et non pas par un seul acteur qui stocke, archive, vérifie et valide les données.

« Mais c’est quoi le problème avec la centralisation ? »

Et bien tout simplement qu’avec la centralisation du réseau intervient la probabilité d’une attaque des 51% – c’est-à-dire que si l’on possède 51% du réseau, on peut le falsifier, le modifier, le réécrire selon son envie. Vous imaginez bien le risque de fraude se profiler.

Pour en revenir à notre sujet, le minage de cryptomonnaies est vite devenu une course à l’armement – en passant du CPU, aux GPU puis aux ASICS, avec une concentration toujours plus grande des acteurs du minage au sein de pool ultra dominantes – pour la plupart basées en Asie. Exemple flagrant – la société Bitmain qui se trouve derrière les deux plus grosses pools de minage de Bitcoin que sont BTC.com et Antpool. Pour autant à l’heure actuelle de nombreux projets voient le jour pour contrer cette centralisation, notamment avec la société Layer1 Technologies qui a pour ambition de drainer un bon tiers du hashrate vers les Etats-Unis, et rétablir un nouvel équilibre (sacrés américains !).

Plus sérieusement, les pools de minage sont nécessaires pour la communauté de mineurs qui ne pourrait pas absorber les risques liés à cette activité – Si vous minez seul, et ne trouvez aucun bloc, vous n’êtes pas rémunérés et vous continuez de payer l’électricité et donc votre portefeuille risque de ne pas apprécier… Les pools permettent à tous de supporter les projets des différentes blockchains et permettent également à nombre d’entre nous de générer quelques cryptomonnaies sans avoir à passer par la case exchange.