Partie 4 : Plongée au cœur du Bitcoin – Décentralisation et cryptographie

Voici la suite de notre chronique sur le Bitcoin. Aujourd’hui, nous entrons dans le cœur du réacteur.

Partie 1

Partie 2

Partie 3

Reprenons depuis le début. La Blockchain est donc un registre de transactions totalement transparent qui permet de savoir à chaque instant où se trouvent les Bitcoins (sur quelles adresses). Ce registre se met à jour à peu près toutes les dix minutes ou bout desquelles on dit qu’un nouveau bloc de transactions est ajouté à la Blockchain.

Ces « blocs » ont ça de très particulier qu’ils résultent d’un processus cryptographique qui est véritablement le cœur de la Blockchain et que l’on appelle « fonction de hachage ». N’ayez crainte, je vais tout vous expliquer.

Le rôle d’une fonction de hachage est de prendre n’importe quelles données et de les passer à la moulinette pour générer un hash. Cette « moulinette » est un algorithme mathématique que l’on utilise dans le domaine de la cryptographie. D’où l’expression « cryptomonnaie ». Quant au « hash », il s’agit d’une chaîne de caractères de taille fixe (32 caractéres) comme par exemple :

000009ea367cea6a2cc4a6f5a1d9a334d0d9e

En d’autres termes, un hash est le résultat de la fonction de hachage. Si vous modifiez ne serait-ce qu’une virgule des données fournie en entrée, le hash résultant sera totalement différent. Le hash est donc une signature unique qu’il est très facile de vérifier si l’on possède les données d’entrée.

Lors de la création d’un bloc de transactions, ce sont ceux que l’on appelle des « mineurs » qui génèrent ce « hash » à l’aide de plusieurs données d’entrée comme :

– Le hash du bloc précédent (d’où le fait que les blocs sont « emboîtés » et forment une chaîne)

– Les informations relatives aux dernières transactions attendant d’être confirmées (afin que les Bitcoins soient déplacés d’une adresse à une autre une fois le bloc ajouté)

– Un « nounce » qui est un chiffre que les mineurs font varier jusqu’à ce qu’ils obtiennent un hash d’un certain type.

Par « certain type », j’entends un hash qui commencerait par exemple par cinq zéros. Autrement dit, un hash très peu probable et difficile à générer. On appelle cela le « proof of work » (preuve de travail). Produire du « Proof of work » est un processus aléatoire avec une faible probabilité de réussite qui nécessite de réaliser un nombre astronomique d’essais afin de trouver un hash valide. La génération d’un certain type de hash requiert une gigantesque puissance de calcul de la part des « mineurs » qui utilisent du matériel spécial pour ce faire.

Le Bitcoin utilise un système de proof of work dont la fonction de hash s’appelle SHA256. La difficulté de ce proof of work est ajustée en permanence en fonction de la puissance de calcul apportée par les mineurs afin qu’un hash valide puisse être trouvé toutes les 10 minutes environ et ainsi valider les dernières transactions. Par exemple, si la puissance de calcul cumulée des mineurs augmente, le protocole du Bitcoin va demander la génération de blocs dont le hash se finira pas 6 zéros au lieu de cinq.

Les mineurs sont tous en compétition pour essayer de trouver un hash valide et dépensent beaucoup d’énergie et donc d’argent pour ce faire. L’intérêt de « gaspiller » autant d’énergie pour trouver un hash est de décentraliser et sécuriser le réseau Bitcoin. Les mineurs sont incités à fournir leur puissance de calcul car ils sont tout simplement récompensés pour cela. Soit dit en passant, c’est la seule façon de créer des Bitcoins. D’où l’expression « miner des Bitcoins ». En 2019, la récompense pour la création d’un hash/bloc était de 12.5 Bitcoins. Ce montant est divisé par deux tous les 4 ans et on estime que le dernier Bitcoin sera miné vers l’année 2150. Voilà ce qui incite les mineurs à chercher un hash valide.

L’intérêt premier du système de proof of work est de décentraliser et sécuriser le réseau Bitcoin. En effet, plus la puissance de calcul nécessaire pour trouver un hash valide est grande et plus il devient difficile de modifier des transactions passées. La raison étant, comme nous l’avons dit, que chaque hash de bloc est calculé en intégrant dans les données d’entrée le hash du bloc précédent. Par conséquent, chaque bloc contient une chaîne de blocs qui représente une grande quantité de travail (proof of work). Changer frauduleusement des transactions dans un bloc nécessite de refaire tous les blocs qui ont été ajoutés par la suite et donc de refaire tout le proof of work pour que chaque bloc suivant soit doté d’un hash valide. Ce qui est impossible. Une transaction est considérée comme irréversible une fois que 6 blocs ont été ajoutés par dessus le bloc dans lequel elle a été validée.

Maintenant il faut préciser qu’avant qu’un bloc soit effectivement ajouté à la Blockchain de manière irrémédiable, le hash de ce bloc est diffusé dans le réseau pour vérification. Si trouver un hash valide est difficile, il est très facile de vérifier si ce hash est valide. Il suffit de vérifier si en passant les données d’entrée (nounce, hash du bloc précédent, transactions en attentes etc…) dans la fonction de hash (moulinette), on obtient bien un hash commençant par 5 zéros, ce qui prouve que le mineur a bien réalisé le proof of work et intégré les bonnes informations dans le bloc. Cette opération de vérification ne prend qu’un millième de seconde. Si la majorité des personnes qui vérifient la validité du bloc l’approuvent, alors le bloc est ajouté à la Blockchain.

Contactez-nous

Utilisez ce formulaire pour nous contacter, nous vous répondrons dans les 24 heures!

En cours d’envoi

©[2018] Cryptojournal.fr - Décryptage de la révolution Bitcoin, comment acheter du Bitcoin

Présentation de notre Equipe - Mentions légales - Avertissements sur les risques - Contactez l'équipe CryptoJournal.fr

ou

Vous connecter avec vos identifiants

Vous avez oublié vos informations ?