Istyablog : pour savoir en toute décontraction

Istyablog : pour savoir en toute décontraction

En quoi consiste le minage des crypto-monnaies ?

Lorsque l'on commence à s'intéresser aux crypto-monnaies on en vient rapidement à entendre un terme qui nous paraît familier tout en étant obscur dans ce contexte : le minage.

Mais de quoi s'agit-il donc exactement ? Pas d'angoisse car le minage c'est ça :

 

Minage.PNG

 

Il faut avouer, que des explications s'imposent et, dans la suite de cet article, cette image vous paraîtra limpide.

Notre exemple va se baser sur le minage du célèbre bitcoin créé par l'énigmatique Satoshi Nakamoto en 2008 et utilisé dès 2009. Le bitcoin (au sens crypto-monnaie) utilise le protocole d'une blockchain (en l'occurrence dénommée Bitcoin avec un B majuscule). En outre le minage du bitcoin utilise le protocole PoW.

 

C'est quoi le PoW ?

 

PoW signifie Proof of Work (Preuve de travail), il consiste à mettre en rivalité tous les noeuds (ordinateurs participant à un réseau pair à pair) d'un réseau de cryptomonnaie pour ajouter de façon sécurisée un nouveau bloc de transaction à une blockchain. C'est cette opération qui est dénommée minage.

Carte des nœuds (ou nodes) du réseau bitcoin.

 

Le terme de minage a été choisi en analogie au travail effectué par les chercheurs d'or du Far-West. Cela exigeait beaucoup d'énergie et seuls ceux qui trouvaient une pépite étaient récompensés !

Le travail du mineur (qui est un membre du réseau) de cryptos consiste à valider les blocs en résolvant un problème mathématique de hashing qui constituera la chaîne reliant chaque bloc... d'où le nom de blockchain ou chaîne de blocs.

Bien évidemment, seul le premier à résoudre cette recherche sera récompensé !

 

Sur l'image l'on peut lire les éléments suivants bloc, minage (c'est le symbole avec la pioche), SHA-256, Hash du bloc. De quoi s'agit-il exactement ?, je vous propose le décryptage suivant :

 

C'est quoi un bloc ?

Un bloc est un ensemble d’opérations ou de transactions, qui vont être groupées entre elles, et mises à la suite de la chaîne de blocs (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.
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 et qui sont en attente (donc pas des opérations déjà passées dans un bloc précédent).
Pour le bitcoin, les blocs sont constitués environ toutes les 10'

 

C'est quoi SHA-256 ?

 

SHA signifie Secure Hash Algorithm  et 256 pour 256 bits. Ces 256 bits traduits en hexadecimal donnent une chaîne de 64 caractères (de 0 à 9 et de a à f).

Voici le hash du premier bloc miné par Satoshi Nakamoto : 000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f  (Vous pouvez vérifier qu'il n'y a que des nombres et des lettres de a à f !).

 

C'est quoi le Hash du bloc ?

 

Le hash est l'empreinte numérique obtenue à partir du bloc en résolvant un problème mathématique difficile généré directement par la blockchain. Ce problème se résout par Force brute (c’est-à-dire en testant au hasard des solutions jusqu’à tomber sur la bonne). Cela nécessite des forces de calcul  de plus en plus colossales ce qui explique d'une part, que le bitcoin soit accusé d'être énergivore et que d'autre part, le minage est quasi impossible désormais pour le quidam aux moyens limités.

Pour mieux comprendre cette notion, imaginez un grand sudoku cryptographique avec la majorité des cases vides. La vitesse de résolution dépendra des capacités de chacun. Le premier qui trouve la solution est considéré comme ayant validé le bloc.

En langage cryptographique, la fonction mathématique hash a la vertu de transformer toute chaîne de caractères en une chaîne de longueur fixe nommée valeur de hachage (256 bits pour le mode SHA-256 utilisé pour le bitcoin). De plus, il est très difficile de retrouver le message de départ si l'on ne connaît que le résultat (lui aussi appelé hash). Un exemple pour mieux comprendre cette dernière notion : si je vous dis : "combien font 7x8" ? Vous allez trouver rapidement 56. Par contre, si je vous dis de quel calcul provient 56 vous aurez bien du mal à trouver la bonne solution : 2x28, 55+1, 23+33,.....

Une fois le hash trouvé le bloc sera sécurisé par cette chaîne de caractères fixe.

Ce hash sera également incorporé, de facto, dans le bloc suivant ce qui participera à réaliser une chaîne d'information publique, datée, infalsifiable et inviolable.

 

A savoir : 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). Cette difficulté est ajustée automatiquement de manière à ce que il y ait en moyenne un bloc qui soit créé toute les 10 minutes. Elle est recalculée tout les 2016 blocs et est basée sur le temps qu'il a fallu pour trouver les 2016 blocs précédents. Cela répond aux questions du genre « que se passe-t-il quand les PC deviendront plus puissants ou que plus de monde essaieront de miner ? » Les bitcoins ne se créeront pas plus vite, mais créer des bitcoins deviendra plus difficile.

Maintenant que vous connaissez tous les éléments décrits ci-dessus, il devient plus aisé de lire et de comprendre l'image explicative en en-tête de ce poste :

 

Le bloc n°1 est constitué de n transactions --> ce bloc va être miné via l'algorithme SHA-256 --> son hash (ligne de 64 caractères ou 256 bits) va être incorporé au bloc suivant, le n°2 et faire partie intégrante de celui-ci et ainsi de suite avec une constitution de bloc environ toutes les 10'.

 

Si un hacker veut changer une information d'un bloc à son profit (exemple : transfert de 100.000 BTC au lieu de 1), il s'ensuivra que la valeur de hachage du bloc considéré ne sera plus correcte et apparaîtra en anomalie mais, comme le hash d'un bloc figure dans le suivant, tous les blocs suivant celui pour lequel une tentative de fraude a été détectée seront également en anomalie !

 

Chronologie des opérations de minage :

 

- Saisie d'une transaction lorsqu'une partie (pair) envoie des données à une autre (cela peut être des unités de monnaie, des contrats, des actes notariés, des titres de propriété,...).

- Vérification de 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, ...). Chaque noeud est équipé d'une procédure de vérification.

- Une fois la transaction vérifiée, elle est mise en attente. Elle est alors prête pour être associée à d'autres dans un bloc.
- Le mineur agrège toutes les opérations en attente, non encore incluses dans un bloc et donc non présentes dans la blockchain
- Pour ajouter ce bloc à la blockchain chaque mineur doit calculer, via l'opération mathématique nommée hachage, une "empreinte" numérique du bloc qui prend également en compte l'empreinte du bloc précédent.
- Chaque mineur est mis en concurrence pour trouver la solution (valeur de hachage). Le mineur qui arrive le premier au bout de ce processus de "preuve de travail" 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.
- Le mineur qui a trouvé la bonne solution est alors récompensé pour son travail par l'attribution de bitcoins, ce qui procède à la création monétaire de la crypto-monnaie.



31/03/2018
1 Poster un commentaire

A découvrir aussi


Inscrivez-vous au blog

Soyez prévenu par email des prochaines mises à jour

Rejoignez les 52 autres membres