La preuve de travail (proof of work) des Bitcoins est un concours de minage dans la mine de Bitcoins.
Ce concours est entre des informaticiens propriétaires des machines consommatrices en puissance de calcul.
Ces informaticiens se nomment les mineurs. Son résultat est obtenu après réalisation des tâches compliqués par les mineurs.
Le gagnant est celui qui termine les tâches en premier. Il sera donc récompensé par des Bitcoins.
Pour détailler l'explication , il faut mentionner la blockchain et le hachage.
Une blockchain est une chaîne de blocs dans lequel est enregistrées des transactions déjà accomplies dans un même intervalle de temps. Ce réseau est caractérisé par l'immuabilité et la distribution. En d'autres termes, les données ne peuvent être enregistré et modifié. Les données répliquées sur des dizaines de milliers d'ordinateurs dans le monde entier, et n'importe qui peut participer au réseau et proposer même des modifications. De ces caractéristiques nait la confiance dans l'utilisation du Bitcoin.
En outre, chaque bloc possède un "hash" ce qui permet d'ordonner la blockchain.
Ainsi, un nouveau bloc commence par le hash de ce qui le précède. Donc, c'est quoi le hash ?
En effet, le hachage est une fonction mathématique qui permet d'obtenir une empreinte unique à partir de n'importe quel fichier (texte, image, ...).
D'ailleurs, le hash est une chaîne de bits. Alors, l'avantage de cette fonction est de pouvoir stocker l'empreint d'un fichier, au lieu de lui-même, dans la blockchain, ce qui est plus léger.
La fonction de hachage utilisée en Bitcoin est le SH-256.Cela signifie que, quelle que soit la longueur de la chaîne de données (limite de 2²⁵⁶- 1 bits), la sortie aura toujours une longueur de 256 bits. Cette fonction est caractérisée par son irréversibilité : Si on admet le hash, on ne peut plus remonter au fichier source.
Par exemple, afin de trouver la preuve de travail de "Hello World!", on utilise la fonction hachage SH-256 en ajoutant à chaque fois un nombre supérieur jusqu'à obtenir un hash qui commence par 000. Il s'agit ici de travil de puissance brute parcequ'il n'y a pas intervention de moyens mathématiques qui nous permettent de déduire le résultats obtenus.
Ainsi, l’entrée représente tout ce qui s’est passé sur la blockchain combinée avec les nouvelles données qui sont ajoutées. L’épreuve consiste donc, pour une chaîne alphanumérique donnée, à y ajouter une chaîne alphanumérique aléatoire jusqu’à ce que le hash (l’empreinte numérique) de l’ensemble soit inférieur à un seuil donné.
Ce seuil est mis régulièrement et automatiquement à jour afin que l’intervalle moyen de temps entre deux blocs ne dépasse pas de dix minutes.
Les mineurs effectuent des hashs cryptographiques (deux SHA256 successifs) sur ce qu’on appelle un entête de bloc. Chaque bloc contient un en-tête où se trouve l’identifiant du bloc précédent et un nonce comportant un horodatage. Le but d’un nonce est de varier les entrées d’un hachage cryptographique et donc de le rendre plus aléatoire pendant le processus de minage. L'horodatage dans la blockchain est une donnée stockée dans chaque bloc utilisée pour déterminer le moment exact où le bloc a été exploité. Le nœud de réseau démarre donc son processus de hachage de données en les convertissant en hash. Il vérifie ensuite que le hash répond bien à la difficulté nécessaire. Si c’est le cas, le hash est diffusé aux autres mineurs du réseau. Sinon, un autre nonce est sélectionné et haché. Pour trouver un nonce qui correspond à la difficulté, les mineurs vont devoir générer plusieurs hash.
C’est en fait ce qu’on appelle le processus de mining. ce processus consomme beaucoup d’énergie en puissance de calcul.
Alors, Le mineur capable de résoudre cette énigme le premier se verra confier l’écriture du prochain bloc et sera récompensé.
Parsuite, on obtient ce que l’on appelle une empreinte qui permettra de sceller le bloc. Une fois terminé le bloc est ajouté à la chaîne et un nouveau bloc est mis en jeu.
Dans des cas exceptionnels, il arrive que deux blocs soient créés en même temps. Alors, la chaîne se divise en deux et on obtient un schéma fork.
Ainsi, on préfère la chaîne la plus longue et la plus petite sera abondonnée.
Normalement, les trois éléments différents qui sont souhaitables dans une blockchain : la décentralisation, la sécurité et la scalabilité.
Le réseau Bitcoin est décentralisé.Sa structure est conçue de sorte qu'il n'y ait pas une seule personne ou organisation qui détienne le pouvoir.
Pour la sécurité, un bon réseau blockchain doit résister aux attaques provenant d'entités malveillantes.
La scalabilité fait référence à l'objectif de créer une blockchain capable de prendre en charge de plus en plus de transactions par seconde.
Cependant, le réseau Bitcoin admet des problèmes de scalabilité.
En effet, lorsque vous effectuez une transaction Bitcoin, elle doit être approuvée par le réseau avant de pouvoir être complétée. Ceci est fait par les mineurs.
Le temps moyen pour miner un bloc de transactions sur la blockchain Bitcoin est de dix minutes, donc une transaction prend généralement environ une heure en moyenne.
Cependant, cela dépend de l’activité du réseau et peut aller de trente minutes à quelques heures.
À mesure que l’écosystème de la crypto-monnaie se développe, le nombre de transactions Bitcoin augmente et provoque une congestion du réseau, ce qui signifie que les mineurs sont plus occupés et que les approbations sont plus lentes.
Pour cela, Le Lightning Network est une solution de deuxième couche qui fonctionne au-dessus du Bitcoin chaîne de blocs.
Il est réalisé en mettant en place des canaux de paiement entre les utilisateurs, qui permettent un transfert rapide de fonds sans nécessiter l'enregistrement de chaque transaction sur la blockchain.
En effet, si deux parties souhaitent établir un canal de paiement, elles doivent au préalable créer une adresse multi-signature sur la blockchain Bitcoin .
Cette adresse oblige les deux parties à signer toute transaction effectuée via le canal, garantissant que les deux parties contrôlent les fonds en cours de transaction.
Une fois l'adresse multi-signature établie, les deux parties peuvent financer le canal avec Bitcoin.
Si l'une ou l'autre des parties ne parvient pas à signer, le canal peut être fermé.
Cela garantit qu'aucune des parties ne peut tromper l'autre en diffusant une transaction d'engagement obsolète.
Références :
Hachage
Preuve de travail
Lightning Network