Le Bitcoin utilise un algorithme de hachage SHA-256, cryptographiquement sécurisé. Bien qu’une explication du fonctionnement dépasse largement la portée de ce livre, il est utile d’avoir une vue d’ensemble. Il faut le penser tel une boîte noire.

Cette boîte, c’est l’algorithme SHA-256. Pour nos besoins, nous ne nous inquiéterons pas vraiment de ce qui se passe à l’intérieur de la boîte. Il faut simplement imaginer qu’à l’intérieur, les données sont soumises à des math avancées. L’aspect important, pour nous, est que vous pouvez prendre n’importe quel type de données, quelle que soit leur taille, et les insérer dans cette boîte. Il faut se rappeler que toutes les données numériques, même complexes (même des films de plusieurs gigas) ne sont qu’une suite de 1 et de 0, des bits. Lorsque nous soumettons ces données au SHA-256, elles sont traitées, réarrangés d’une certaine manière.

Le résultat est une chaîne de 256 bits de caractères apparemment aléatoires, qui ressemble à un non-sens. On a appliqué une empreinte digitale unique sur les données et le non-sens apparent qui sort n’est pas vraiment un non-sens.

Le SHA-256 est déterminant, ce qui signifie que si vous soumettez les mêmes données, vous obtiendrez la même chaîne de sortie exacte, ou empreinte digitale. A chaque fois!

 

Hachage en sens unique

Une autre caractéristique de cette fonction de hachage est qu’il s’agit d’une fonction à sens unique. Cela signifie que vous ne pouvez pas prendre la chaîne de sortie et la reconvertir en données d’origine.

Donc, dans notre exemple, nous ne pouvons pas inverser le processus en utilisant le non-sens pour recréer du sens. Un exemple de la façon dont cela est utilisé est de vérifier les documents, tels que PDF. Si vous signez un contrat et l’envoyez à quelqu’un avec l’empreinte digitale SHA-256, il peut tester le hachage pour s’assurer que pas un seul bit de données n’a été modifié. Tout simplement parce qu’en soumettant le PDF au SHA-256, ils auront la même réponse.

Si, par contre, le moindre changement s’est produit – qu’il s’agisse d’une modification bien intentionnée telle qu’une faute de frappe ou d’une altération volontaire – l’empreinte qui en sort sera complètement différente.

La nature ou la portée de la modification des données d’origine n’a pas d’importance pour l’algorithme; la sortie de l’algorithme SHA-256 sera totalement différente sauf si les données sont identiques à 100%. Par exemple, si vous remplacez le mot « bonjour » par « Bonjour » ou « BONJOUR », vous obtiendrez une chaîne de sortie totalement différente. Simple et efficace!

Maintenant que nous avons une compréhension de base sur la façon dont SHA-256 fonctionne, on est en droit de se demander comment cela se rapporte à la blockchain Bitcoin. Cela peut être l’un des concepts les plus compliqués à comprendre du protocole de Bitcoin. Afin de comprendre le rôle de SHA-256 dans le modèle de Preuve du Travail qui fait fonctionner le Bitcoin, nous devons creuser un peu plus la manière dont les mineurs participent à l’écosystème de la blockchain.

Pierre Collignon Bitcoin

 

Le rôle des mineurs de bitcoin

« Les mineurs résolvent des problèmes mathématiques complexes pour ajouter des blocs à la chaîne en échange d’une récompense. » C’est exact, et c’est une bonne explication. Pour le dépeindre grossièrement.

Quand il s’agit de comprendre l’architecture plus large de la technologie blockchain, nous trouvons que cette explication est un peu trop simplifiée. Pour nos besoins, nous devons explorer la mécanique de l’exploitation minière du Bitcoin d’un peu plus près. L’exploitation implique un calcul complexe conçu pour trouver certaines combinaisons de nombres aléatoires (appelés « nonces »).

Ces nonces sont combinées avec des informations sur des transactions Bitcoin particulières pour produire une chaîne SHA-256 qui répond à des critères très spécifiques. Les données concernant les transactions Bitcoin se trouvent dans l’en-tête, le premier « bloc », de n’importe quel bloc de la chaîne, qui est affiché comme une chaîne SHA-256. Ainsi, le premier « bloc » de la chaîne qui compose chaque bloc contient des informations sur les transactions contenues dans ce bloc, telles que l’heure, la quantité de Bitcoin, les adresses impliquées et d’autres détails. Le reste de la chaîne est produit en trouvant un nonce qui, lorsqu’il est ajouté aux données de la transaction, produira une chaîne SHA-256 qui répond aux critères susmentionnés.

Alors, quels sont les critères et qui décide? Les blocs de Bitcoin doivent être construits selon un ensemble de règles précises afin d’être considérés comme valides par le modèle de consensus régissant tous les nœuds sur le réseau Bitcoin. Cet ensemble de règles – les critères qui doivent être remplis pour générer un bloc valide – est écrit dans le code du logiciel Bitcoin.

Les « règles » sont un ensemble de fonctions écrites en C ++ et qui s’exécutent sur chaque machine (les nœuds) connectée au réseau. Un mineur doit créer un bloc suivant cet ensemble de règles. Tout d’abord, le bloc doit inclure des informations sur les transactions Bitcoin les plus récentes. Ensuite, le mineur doit trouver un nonce qui, une fois ajouté aux données de la transaction, produira une chaîne SHA-256 qui répond aux critères définis par le logiciel Bitcoin. Par exemple, le critère pourrait être que la chaîne doit contenir un nombre avec 15 zéros de suite.

Il n’y a aucun moyen de trouver le nonce sans la méthode dite de « force brute ». Ce qui signifie simplement par essai et par élimination. Les mineurs essaient très rapidement un tas de nombres aléatoires jusqu’à ce qu’ils en trouvent un qui fonctionne. Lorsqu’un mineur « résout un bloc », cela signifie qu’il a trouvé un nonce qui produit un hachage SHA-256 qui répond aux critères d’un bloc valide.

Ils peuvent alors soumettre leur réponse au réseau Bitcoin et les autres noeuds vont la vérifier et confirmer qu’elle est valide. Pour vous donner une idée de la complexité de trouver le nonce, le réseau Bitcoin produit plus de 500 quadrillions de hachages par seconde. C’est la quantité de tentatives uniques faites pour trouver un nonce qui produit le résultat nécessaire.

Même avec cette énorme quantité de travail, il faut en moyenne 10 minutes pour résoudre un bloc, ou pour trouver un nonce viable. Lorsqu’un mineur résout un bloc avec succès, il est récompensé par une petite quantité de Bitcoin (la « racine de Merkle » est une référence au concept mathématique d’arbre de Merkle.)

Dans ce cas particulier, la racine de Merkle est le hachage de toutes les transactions. Les détails de chaque transaction sont également hachés ; la racine de Merkle est donc le hachage de tous ces hashs.

bitcoin monnaie virtuelle

 

Le Pay to Play des mineurs

Vous avez peut-être entendu des gens parler de minage de bitcoin comme un moyen de faire de se l’argent facile. Cela n’a jamais été le cas, même aux débuts du Bitcoin. Et c’est encore moins vrai aujourd’hui vu la complexité de résolution des blocs. La complexité augmente avec le temps en corrélation avec la quantité de Bitcoin en circulation.

La spécificité de la chaîne SHA-256 devient plus compliquée au fil du temps (c’est ce qu’on appelle la « cible de difficulté »)… La quantité de puissance requise pour trouver un nonce valide est de plus en plus significative. Aujourd’hui, un équipement spécial est nécessaire pour réussir à exploiter le Bitcoin d’une manière significative, et même comme ça, la plupart des mineurs combinent leurs ressources dans des pools qui partagent à la fois le fardeau du travail et les récompenses.

Les mineurs utilisent leur équipement pour tester les hachages à un rythme incroyablement rapide. Comme vous pouvez l’imaginer, ce type de puissance de calcul nécessite beaucoup d’électricité, ce qui n’est généralement pas gratuit. La raison pour laquelle l’infrastructure liée au minage de Bitcoin fonctionne est due, en partie, au fait que pour participer, les mineurs encourent un coût. Sans ce sacrifice, il n’y a pas de récompense.

La seule raison pour laquelle quelqu’un voudrait exploiter le Bitcoin, c’est qu’ils croient au plus profond que les bénéfices dépasseront la lourde facture d’électricité. Quand un mineur trouve un nonce qui fonctionne, son résultat sera vérifié et validé par le réseau Bitcoin plus large. Vérifiée, le réseau fourni une preuve de travail qui donne droit à une récompense.

Si le reste des nœuds sur le réseau Bitcoin voit que quelque chose dans un bloc proposé ne répond pas aux critères, soit en suivant une règle de manière incorrecte ou en ne fournissant pas un non répondant aux critères, le bloc sera rejeté et ce mineur aura gaspillé de l’argent et des ressources.

Par exemple, si quelqu’un tente de dépenser deux fois ses bitcoins, il sera pris et le bloc sera rejeté. L’utilisation par Bitcoin d’un modèle de consensus de Proof-of-Work (preuve de travail), il est pratiquement impossible de tricher ou de pirater la blockchain. Avec Bitcoin, les mineurs paient pour miner, et il ne paie que pour jouer selon les règles. Et c’est sans compter que ceux qui ne les suivent pas perdront de l’argent en raison du coût de l’électricité nécessaire pour pouvoir miner.

Monnaie virtuelle Pierre Collignon

 

La blockchain sans le bitcoin

Quand nous regardons le Blockchain du Bitcoin, nous pouvons voir qu’il est composé de plusieurs parties distinctes qui travaillent toutes ensemble pour créer l’architecture globale de cet écosystème. Trois des éléments que nous avons examinés jusqu’ici sont l’idée d’un registre distribué, l’utilisation du SHA-256 et un modèle de consensus de preuve de travail (PoW).

Quels sont les éléments propres au Bitcoin et lesquels font partie du concept même de la technologie blockchain? C’est une bonne question, et la réponse peut dépendre de votre interlocuteur. Il y a un débat sur la frontière entre Bitcoin et blockchain, ou plutôt sur les fonctionnalités de la blockchain du Bitcoin qui sont essentielles pour créer d’autres blockchains qui fonctionnent réellement de manière pratique.

Si on analyse le tout foncièrement et qu’on enlève les particularités du Bitcoin, nous ne retrouvons finalement plus que la notion de registre distribué des transactions. Quel type de transactions et comment sont-elles traitées, vérifiées et enregistrées est une chose que différentes applications peuvent gérer de différentes manières.

Lorsque nous commençons à examiner d’autres implémentations de la technologie blockchain, nous devons examiner de près comment elles fonctionnent.

Comment assurent-elles la sécurité? Sont-elles ouvertes et accessibles à tous? Fonctionnent-elles de manière décentralisée? Comment cryptent-elles l’information? Les transactions sont-elles anonymes? Quels types de transactions sont traités? Utilisent-elles une preuve de travail? Y a-t-il un autre modèle de consensus? Ce sont toutes ces questions qui se posent quand nous commençons à regarder la technologie blockchain de plus près. Quand on regarde au-delà du Bitcoin!

 

Par Pierre Collignon

Lire la suite ? Rendez-vous sur l’article les alternatives au Bitcoin

 

En apprendre plus sur le hachage ?

Voici quelques livres qui permettent de mieux comprendre les algorithmes et leur fonctionnement.

Le minage de Bitcoin

Bienvenue dans le monde de Bitcoins!

Anonyme, rapide, frais faible et parfois sans frais – que pourrait-il y avoir de mieux? Il y a certains risques et beaucoup que vous devez savoir. Alors allez-y et lisez ce livre pour tout savoir sur les bitcoins et le minage de bitcoin; vous serez équipé avec tout ce dont vous avez besoin de savoir à la fin de la lecture de ce livre. Vous pourriez même rejoindre un pool de minage, vous allez peut-être investir – continuez de lire et décidez.

 

Encrypted Lessons: the Study Guide

This is a study guide for the group, Encrypted Lessons (http//:fb.me/encryptedlessons for more details). It is structured as a test bank to challenge the group members to research and complete the essay-based, true/false, and fill-in-the-blank exercises included. However, the study guide also includes video references (YouTube) to other experts in bitcoin, blockchain technology, consensus, hash function, open ledger, decentralization, proof of work, proof of stake, cold storage methods, and other topics pertinent to cryptocurrency development. Readers are invited to join Encrypted Lessons for bonus materials not included in this study guide as well

 

Advances in Cryptology

This book constitutes the refereed proceedings of the 29th Annual International Cryptology Conference, CRYPTO 2009, held in Santa Barbara, CA, USA in August 2009. The 38 revised full papers presented were carefully reviewed and selected from 213 submissions. Addressing all current foundational, theoretical and research aspects of cryptology, cryptography, and cryptanalysis as well as advanced applications, the papers are organized in topical sections on key leakage, hash-function cryptanalysis, privacy and anonymity, interactive proofs and zero-knowledge, block-cipher cryptanalysis, modes of operation, elliptic curves, cryptographic hardness, merkle puzzles,…

3 Comments

  1. Pingback: Les bases de la blockchain – Comment gérer les transactions numériques (Pierre Collignon)

  2. Pingback: Le problème des 51% (Pierre Collignon)

  3. Pingback: l'Ether et les contrats intelligents

Comments are closed.