Le minage expliqué aux non-initiés

Toutes les technologies blockchain sont basées sur un principe dont le nom évoque un archaïsme étonnant pour ce type de technologie de pointe : le minage.

Cet article donne une explication au néophyte qui souhaite comprendre le principe de cette opération ainsi que ses enjeux.

Qu’est-ce que le minage ?

Le minage est la validation d’un bloc par un des membres du réseau.

Un bloc est un groupe d’opérations, qui vont être groupées entre elles, et mises à la suite de la chaîne de blocs (ie la blockchain), constituant ainsi un nouveau maillon à cette chaîne.

C’est donc l’opération fondamentale d’une chaîne de blocs, quelle qu’elle soit, et qui la distingue d’un système centralisé classique.

Par exemple, Bob envoi 1 Bitcoin à Alice, et Carol envoi 2 Bitcoins à Dan.

Bob et Carol soumettent à tous les participants au réseau Bitcoin leur demande de transaction. Mais ces transactions ne sont pas pour autant validées d’office. En effet, l’envoi d’une demande d’opération ne nécessite aucune vérification. Techniquement, Bob pourrait demander à envoyer 10 Bitcoins à Alice alors qu’il n’en possède que 5.

C’est au moment de la création des blocs (donc du minage) que les opérations sont confirmées. Un bloc est donc simplement l’agglomération de plusieurs opérations valides (donc pas la demande d’envoi de 10 Bitcoins soumise par Bob) et qui sont en attente (donc pas des opérations déjà passées dans un bloc précédent).

Le bloc sera donc formé de : Bob envoie 1 à Alice et Carol envoie 2 à Dan.

Dans le cas classique (Bitcoin et tous ses dérivés), le principe de base est le suivant :

· N’importe quel nœud (membre) du réseau peut proposer un nouveau bloc, et donc miner

· Le mineur agrège toutes les opérations en attente, non encore incluses dans un bloc et donc non présentes dans la blockchain

· Il vérifie la validité de toutes ces opérations (les comptes sont suffisamment approvisionnés, l’opération est dûment signée par les personnes autorisées, etc.)

· Il groupe les opérations dans un même bloc

· Il soumet le bloc au réseau

· Le réseau étudie la validité du bloc, dans la forme (respect du protocole informatique) et dans le fond (validité des transactions saisies)

· Le réseau accepte le nouveau bloc et tous les membres l’ajoutent à leur copie locale de la blockchain

Tout travail mérite salaire

Pour ce travail, le mineur est rémunéré, de deux façons :

· Les utilisateurs du système monétaire payent des frais de transaction, qu’ils peuvent choisir librement. Plus ils définissent des frais élevés, plus leurs opérations seront passées rapidement (puisque les mineurs vont prioriser les opérations les plus rémunératrices)

· Toute monnaie prévoit un processus de création monétaire (émission de nouvelle monnaie et donc d’augmentation de la masse monétaire globale), et de la nouvelle monnaie doit être émise. Dans le cas des crypto-monnaies, c’est très souvent au moment du minage. Ainsi, le mineur va créer de la monnaie à chaque bloc, dont il sera le premier propriétaire. Dans le cas du Bitcoin, ce montant généré par création monétaire diminue exponentiellement. Le dernier Bitcoin sera miné dans le courant de l’année 2140.

Il est donc important de comprendre ici que dans un système classique, le mineur a un intérêt financier à le faire, parfois très important.

La preuve de travail

S’il est si facile de miner, pourquoi tout le monde ne le fait pas ?

Pourquoi faut-il parfois tant de temps pour miner un bloc dans ce cas (10 minutes en moyenne pour le Bitcoin) ?

Ces deux questions trouvent leur réponse dans le principe de la preuve de travail, qui rend le minage non si trivial.

En effet, pour pouvoir créer un bloc valide dans une blockchain type Bitcoin, il est nécessaire de résoudre un problème mathématique très complexe, dont la solution ne peut être trouvée que par force brute, c’est-à-dire en testant au hasard des solutions jusqu’à tomber sur la bonne.

Le minage d’un nouveau bloc relève donc de deux choses :

· La chance, puisqu’il est possible de trouver une solution en quelques secondes ou en plusieurs dizaines de minute. C’est pourquoi on parle de temps moyen de création d’un bloc, ce temps étant en pratique variable

· La puissance de calcul du mineur. Plus il dispose de puissance pour réaliser des tentatives en parallèle, plus vite il trouvera une solution

Pour s’adapter à l’augmentation de la puissance de calcul des mineurs, le protocole prévoit que la difficulté des problèmes mathématiques à résoudre augmentera ou diminuera régulièrement en fonction des besoins pour maintenir un temps moyen entre chaque nouveau bloc miné statistiquement constant (10 minutes pour le Bitcoin, 12 secondes pour Ethereum).

Parents, fils, oncles et cousins

Dans un réseau décentralisé, personne ne va se concerter pour savoir à qui est le tour de miner. Tout le monde va chercher à résoudre le problème mathématique avant les autres pour empocher la mise.

Ainsi, il est possible que deux nœuds du réseau trouvent pratiquement simultanément la solution d’un problème de minage, et donc minent deux blocs différents au même moment. Ainsi, le réseau est dans un état indéterminé, dans lequel il ne sait pas laquelle des deux blockchains créées utiliser.

Le protocole prévoit ce type de problèmes, et oblige les nœuds du réseau à prendre comme seule et unique blockchain valide la plus longue en termes de nombre de blocs.

Ainsi lorsque deux blocs sont trouvés en même temps, il n’est pas possible d’arbitrer.

Mais les mineurs vont continuer leur office, et un nouveau bloc va être miné sur l’une ou l’autre des deux blockchains, la rendant ainsi comme valide par défaut. Le bloc alors miné inutilement sera appelé « oncle » (puisque non lié à la ligne directe qu’est la blockchain), et sera délaissé.

Théoriquement, il est possible que même dans cette deuxième génération de blocs, deux mineurs trouvent à nouveau 2 blocs en même temps sur les 2 chaînes séparées. Commence alors un troisième round de minage, espérant que quelqu’un trouve avant les autres.

En théorie, la probabilité de trouver quasi simultanément des blocs décroît exponentiellement avec la longueur de la chaîne des blocs en attente de détermination.

A noter que certaines blockchains plus modernes, comme Ethereum, incluent les blocs oncles dans la blockchain, sans les considérer comme abandonnés. Ces blocs donnent donc lieu à une partie du bénéfice lié au minage, en échange du fait que leur présence accroît la sécurité globale de la chaîne. Voir Ethereum et protocole GHOST.

L’attaque des 51%

Nous l’avons vu le réseau derrière la blockchain va systématiquement utiliser la blockchain la plus longue qui lui est proposée.

Ainsi, il est possible à un mineur très puissant de manipuler la blockchain en utilisant ce principe.

Partant d’un bloc A déjà miné, un mineur du réseau va miner un bloc B. Un autre va miner sur ce bloc B un bloc C, et enfin un troisième bloc D sera miné.

En 30 minutes environ, la blockchain est à l’état D.

Imaginons que pendant ce temps, le super mineur (que nous appellerons Stakhanov), qui dispose de plus de puissance de calcul que tous les autres mineurs du réseau (soit plus de 50% de la puissance du réseau), mine dans son coin une blockchain A -> B2 -> C2 -> D2 -> E, avec des bloc B2, C2 et D2 différents de respectivement B, C et D.

Il sort alors du bois et propose à tout le réseau sa nouvelle chaîne.

Cette dernière sera automatiquement acceptée par tous, annulant du même coup les blocs B, C et D.

Les opérations qui composent ces blocs passent du statut de confirmées à en cours, et les mineurs précédemment rétribués se retrouvent dépossédés de leur argent.

Mais plus grave, les opérations des blocs B, C, et D étant annulées, Stakhanov peut en profiter pour faire une double dépense : Dépenser le même Bitcoin dans la chaîne A -> B -> C -> D et dans la chaîne A -> B2 -> C2 -> D2 -> E

Par exemple :

Stakhanov envoie publiquement 1 BTC (Bitcoin) à Bob pour l’achat d’un objet.

Bob voit dans le bloc B que l’opération est validée. Une fois écrite dans la blockchain, le paiement est considéré comme validé. Ainsi, Bob envoie l’objet à Stakhanov.

Plus tard, Stakhanov soumet sa propre blockchain. Dans cette version, Stakhanov n’envoie pas son Bitcoin à Bob, mais à Alice, avec laquelle il est également en affaire.

Alice intègre la nouvelle blockchain comme tout le monde et se rend compte que Stakhanov lui a bien payé le 1 BTC qu’il lui doit.

Dans l’affaire, Bob a été dépayé, mais n’a pas pour autant récupéré son objet.

Ce processus explique pourquoi en pratique dans l’univers des crypto-devises, la validation d’un seul bloc ne suffit pas à valider un paiement. Il est souvent attendu que d’autres blocs soient ensuite minés sur le bloc de paiements pour que l’opération soit considérée comme en pratique irréversible.

Cette manipulation du réseau, dite attaque des 51% (bien qu’elle puisse théoriquement être déclenchée en deçà de 50% par « minage égoïste »), est identifiée depuis l’origine de la création du Bitcoin par Satoshi Nakamoto (le créateur anonyme du Bitcoin).

La preuve de travail comme outil de sécurisation du réseau

La preuve de travail (pour rappel, la résolution de problèmes mathématiques arbitrairement complexes pour valider le minage d’un bloc) est donc l’outil clé de sécurisation du réseau, puisque plus les problèmes sont complexes à résoudre, plus il est compliqué pour un membre, même très riche, de posséder la puissance de calcul nécessaire à détenir 50% de la puissance du réseau.

Or nous l’avons vu, la puissance nécessaire à la validation d’un bloc est elle-même dépendante de la puissance globale du réseau (puisque la complexité du problème s’adapte périodiquement pour garantir un temps de minage en moyenne constant).

Ainsi, pour accroître la sécurité, il est nécessaire d’attirer le plus de mineurs possibles, lesquels mineurs devant mettre à disposition du réseau leur puissance de calcul.

Pour ce faire, nous renvoyons au début de l’article : les mineurs sont rémunérés.

Ayant un intérêt économique à investir dans du matériel pour miner, ils s’équipent en masse et se lancent dans une vaste course à l’armement qui a pour effet de protéger les utilisateurs d’une attaque aux 51%.

Cette course est d’autant plus effrénée que l’on rappelle que le réseau adapte dynamiquement la complexité des calculs à la puissance globale disponible. Ainsi donc, la fortune des mineurs ne se fait pas sur leur puissance de calcul dans l’absolu, mais sur ce qu’elle représente par rapport à l’intégralité de la puissance disponible.

En d’autres mots, ils perdent de l’argent lorsque d’autres augmentent leur puissance.

Le côté sombre du minage par preuve de travail

Le minage par preuve de travail est fondateur du système blockchain et il est ce qui permet à la blockchain de fonctionner et de s’imposer comme un nouveau standard de réseau décentralisé trustless (donc sans aucun tiers de confiance) mais sûr.

Il est ce qui a permis au Bitcoin d’aussi bien résister aux multiples attaques dont il a été l’objet. C’est cette résistance qui permet au Bitcoin d’être une monnaie plus crédible aux yeux de certains que bien des monnaies nationales.

Mais cette méthode a des inconvénients :

· Les mineurs paient leur matériel et surtout leur électricité en devise classique (du moins pour l’instant). Ils doivent donc procéder à des échanges de crypto-devises contre des devises classiques, créant une pression à la baisse sur la contre-valeur des crypto-devises par rapport aux devises classiques

· Ils s’imposent comme des acteurs économiques et sécuritaires majeurs des blockchains, créant ainsi des risques politiques sur certaines crypto-devises, pas nécessairement dans le sens des intérêts des utilisateurs (voir par exemple la controverse entre le Bitcoin Core et le Bitcoin Unlimited, lors de laquelle certains mineurs ont même proposé de se retourner contre le réseau et d’utiliser leur puissance de calcul pour lui nuire)

· La consommation électrique des fermes de minage, notamment en Chine, est très conséquente à l’échelle de la planète et fait du Bitcoin et d’autres crypto-devises des mauvais élèves en termes climatiques. En 2014, une étude estimait cette consommation à 3 GW, soit la consommation de la République d’Irlande ou d’un peu plus de 2 des 4 réacteurs de la centrale nucléaire de Cattenom.

Les alternatives à la preuve de travail

Pour pallier à ces défauts, d’autres méthodes de minage sont à l’étude :

Le minage par tiers de confiance.

Véritable trahison du modèle originel, il consiste à faire miner les blocs par des tiers de confiance.

C’est le modèle privilégié dans les blockchains privées.

Certains mécanismes peuvent exister pour désigner le tiers qui doit réaliser le minage pour obliger une certaine rotation.

Dans ce type de modèle le minage n’est souvent pas rémunéré.

Le minage par consensus

Dans cette version, un algorithme permet à des nœuds maîtres du réseau de se mettre d’accord entre eux de façon certaine, déterministe et sûre sur les opérations à accepter et sur l’ordre dans lequel les accepter.

Il est donc également basé sur la confiance dans ces nœuds maîtres, dont l’identité est connue, et est donc partiellement centralisé (le nombre de nœuds maîtres peut être arbitrairement grand).

C’est le mode de fonctionnement retenu sur la blockchain Ripple.

Le minage par preuve d’enjeu

Dans ce paradigme, un des utilisateurs est désigné pseudo-aléatoirement avec une probabilité proportionnelle à sa fortune détenue sur la blockchain.

En d’autres termes, plus vous êtes riche, plus vous avez de chance d’être désigné comme mineur (donc plus vous minez, et plus vous êtes riche).

Ce modèle porte bien son nom, puisqu’il fait porter la responsabilité du minage à ceux qui ont le plus d’enjeu dans cette blockchain, et donc ceux qui ont le plus intérêt à jouer dans les règles pour maintenir la confiance dans le système.

Ce mode de fonctionnement est en cours de déploiement sur la blockchain Ethereum.

Dans le minage par preuve de travail, un attaquant doit dépenser énormément d’argent pour acheter suffisamment de matériel informatique pour détenir plus de 50% de la puissance du réseau pour mener à bien son attaque.

D’ailleurs, cette somme peut être un moyen de valoriser une crypto-devise : la capitalisation d’une crypto-devise (contre-valorisée en devise fiduciaire) doit être comparable au prix de l’achat de 50% de la puissance de minage. Preuve s’il le fallait que plus un réseau est miné, plus il est sûr, donc plus les utilisateurs ont confiance en lui, donc plus il a de la valeur.

Dans le minage par preuve d’enjeu, un attaquant devra dépenser la même somme pour, non pas acquérir du matériel informatique, mais acheter sur le marché d’échange des crypto-devises afin d’augmenter son éligibilité au minage, donc sa puissance de minage.

Conclusion

Le minage est un des processus les moins connus du grand public sur les blockchains, mais son utilité est indéniable et il est ce qui permet à cette technologie d’exister.

Ce point central est l’objet de bien des recherches : optimisation de l’algorithme de minage par preuve de travail, soit pour éviter la prolifération de matériel fondu exclusivement pour cet usage (comme c’est le cas pour le Bitcoin), soit pour rendre ce temps de calcul utile (recherche de nombres premiers, etc.) ; passage de la preuve de travail à la preuve d’enjeu ; passage de la preuve de travail à la recherche de consensus, etc.

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.