Module 8 sur 10

Comment fonctionne Bitcoin

8.0 Introduction

Bitcoin n'est pas « non réglementé » ; il est régi par un algorithme plutôt que par des bureaucraties gouvernementales. Incorruptible.
Andreas M. Antonopoulos

Dans ce module, nous examinons de plus près l’aspect technique de Bitcoin. Nous expliquons en termes simples la cryptographie qui sécurise le protocole et le fonctionnement des transactions. Certains concepts peuvent sembler techniques, mais ne vous inquiétez pas. Beaucoup de gens utilisent Internet chaque jour sans vraiment comprendre comment cela fonctionne.

Apprendre l’aspect technique de Bitcoin est un long parcours que tout le monde n’a pas besoin d’emprunter. Même si nous encourageons à continuer d’apprendre, ce module se concentre sur les bases essentielles.

Le réseau Bitcoin est un registre partagé des transactions, stocké sur de nombreux ordinateurs appelés nœuds. Ce registre, connu sous le nom de registre Bitcoin, est pseudonyme. Il n’inclut pas de détails personnels comme les noms ou les âges, seulement les données de transaction et les adresses Bitcoin. Le registre suit chaque transaction depuis le début de la blockchain.

Mécanismes du protocole Bitcoin
  • Preuve de travail
  • Horodatages cryptographiques
  • Ajustement de la difficulté
  • Architecture réseau pair-à-pair
  • Fonctions de hachage et arbres de Merkle
  • Cryptographie à clé publique
  • Division par deux de la récompense de bloc

8.1 Sécurité par la cryptographie

Ce que My First Bitcoin nous offre, c'est une promesse solide : le programme s'exécutera exactement comme spécifié.
Andreas M. Antonopoulos

Cryptographie à clé publique/privée

Cryptographie est la pratique qui consiste à transformer une information en un secret que seules les bonnes personnes peuvent lire.

  • Chiffrement est le processus qui consiste à transformer une information en une forme codée afin que seule une personne possédant la bonne clé puisse la lire.
  • Déchiffrement est le processus qui consiste à rendre cette information codée à nouveau lisible.

Dans la cryptographie traditionnelle, deux personnes qui souhaitent communiquer de manière privée doivent d'abord partager la même clé secrète, similaire à un mot de passe partagé. L'une utilise cette clé pour chiffrer le message avant de l'envoyer, et l'autre utilise la même clé pour le déchiffrer et le lire.

Le problème avec ce système est que les deux personnes doivent déjà partager la clé secrète. Si quelqu'un d'autre accède à cette clé, il peut lire tous les messages interceptés.

My First Bitcoin résout ce problème en utilisant une approche différente appelée cryptographie à clé publique, où les utilisateurs n'ont pas besoin de partager des clés secrètes à l'avance.

La cryptographie à clé publique/privée résout le problème du partage des secrets. Au lieu de partager un mot de passe, chaque personne possède deux clés : une clé publique et une clé privée.

  • La clé publique peut être partagée avec n'importe qui.
  • La clé privée doit toujours rester secrète.

Si Gérard veut envoyer quelque chose à Arel, il peut utiliser la clé publique d'Arel. Seul Arel peut la déverrouiller en utilisant sa clé privée. Même si quelqu'un intercepte le message, il ne pourra pas le lire ou l'utiliser sans la clé privée.

Dans My First Bitcoin, ce système est utilisé pour créer des signatures numériques. Une signature numérique prouve que le propriétaire d'une clé privée a approuvé une transaction, comme lorsque vous signez un document. C'est ce qui permet aux transactions Bitcoin d'être sécurisées et vérifiables sans avoir à faire confiance à un tiers.

Les transactions Bitcoin consistent à transférer la propriété de bitcoin d'une adresse à une autre.

Le chiffrement est utilisé pour garantir que seul le véritable détenteur du bitcoin a l'autorité d'envoyer son argent à quelqu'un d'autre. Cela garantit que sa propriété est protégée contre les acteurs malveillants.

Comme mesure de protection supplémentaire, chaque transaction Bitcoin reçoit automatiquement une signature numérique UNIQUE. Cette signature numérique unique est générée par une technologie inviolable qui aide le réseau à vérifier que le véritable propriétaire du bitcoin, et non quelqu'un d'autre, les a envoyés.

Chaque utilisateur possède deux clés : une clé privée, qui est gardée secrète, et une clé publique qui peut être partagée avec d'autres. La clé privée sert de forme d'identification et de preuve de propriété, confirmant : « Cette adresse m'appartient et j'en ai le contrôle. »

Comment fonctionne une transaction Bitcoin
  1. Création de la transaction : Un utilisateur initie une transaction Bitcoin en spécifiant des détails tels que l'adresse du destinataire et le montant de bitcoin à envoyer.
  2. Génération de la signature numérique : L'expéditeur génère une signature numérique unique en utilisant sa clé privée. Cette signature est un code unique qui vérifie l'authenticité de la transaction.
  3. Diffusion de la transaction : La transaction signée est diffusée sur le réseau Bitcoin, indiquant l'intention de transférer la propriété du bitcoin de l'expéditeur au destinataire.
  4. Vérification sur le réseau : Les nœuds du réseau Bitcoin reçoivent la transaction et utilisent la clé publique pour vérifier l’authenticité de la signature de la transaction. En même temps, ils utilisent la clé publique pour vérifier la signature numérique.
  5. Confirmation sur le réseau Bitcoin : Si la vérification réussit, la transaction sera ajoutée au registre, qui sert de dossier sécurisé et transparent de toutes les transactions. Une fois confirmée, la propriété du bitcoin est officiellement transférée de l’expéditeur au destinataire.

La signature numérique, créée avec la clé privée de l’expéditeur, prouve que la transaction a été autorisée par le propriétaire du bitcoin. Le réseau Bitcoin peut alors vérifier cette preuve et enregistrer la transaction.

Explication du hachage

Ne soyez pas intimidé par les termes techniques et les concepts mathématiques qui suivent. Nous comprenons que tout le monde n’est pas passionné de maths, mais vous pourriez vous surprendre et voir que même les idées les plus complexes peuvent être comprises avec un peu d’effort.

Une fonction est comme une machine qui prend des informations et les transforme en quelque chose de nouveau. Les informations que vous donnez à la fonction sont l’entrée. La nouvelle information créée par la fonction est la sortie. Les fonctions aident les ordinateurs à accomplir des tâches et à résoudre des problèmes.

Qu’est-ce qu’une fonction ?

Une fonction est un ensemble d’instructions qui prend une entrée et produit une sortie. Vous pouvez la comparer à une recette : vous suivez les étapes avec certains ingrédients, et vous obtenez toujours un résultat prévisible.

Dans Bitcoin, les fonctions sont utilisées pour traiter et vérifier les transactions. Lorsqu’une personne envoie des bitcoins, des fonctions cryptographiques permettent de vérifier que la transaction est valide, de confirmer que l’expéditeur a suffisamment de fonds et de mettre à jour les soldes sur le registre Bitcoin. Une fois vérifiée et ajoutée à un bloc, la transaction fait partie de l’enregistrement permanent sur la blockchain.

Qu’est-ce qu’une fonction à sens unique ?

Une fonction à sens unique est un type particulier de fonction qui est facile à calculer dans un sens mais extrêmement difficile à inverser. Par exemple, mixer des ingrédients pour faire un smoothie est facile, mais il est impossible de séparer le smoothie pour retrouver les ingrédients d’origine.

La sécurité de Bitcoin repose sur les fonctions à sens unique. Elles sont utilisées dans la cryptographie à clé publique et privée, permettant aux gens de partager une clé publique tout en gardant leur clé privée secrète. Même si la clé publique est visible, il est impossible d’en déduire la clé privée. C’est ce qui rend les transactions Bitcoin sécurisées.

Qu’est-ce qu’une fonction de hachage ?

Une fonction de hachage est comme une machine à codes secrets. Elle prend un message et le transforme en un code.

Comment fonctionne le hachage dans les transactions Bitcoin

Dans Bitcoin, chaque transaction est transformée en un hachage avant d’être ajoutée à la blockchain. Un hachage est une empreinte digitale unique de la transaction. Si quelqu’un essaie de modifier ne serait-ce qu’une petite partie de la transaction, le hachage changera complètement. Cela permet au réseau de détecter facilement toute tentative de falsification.

Le rôle du hachage dans la sécurité de Bitcoin

Le hachage aide à protéger le réseau Bitcoin en rendant les transactions faciles à vérifier et impossibles à modifier discrètement. Comme chaque transaction a son propre hachage unique, le réseau peut rapidement détecter si quelque chose a été modifié.

Une fonction de hachage prend des données et les convertit en une chaîne fixe de chiffres et de lettres appelée hachage. La même entrée produira toujours le même hachage, mais même un minuscule changement dans l’entrée créera un résultat complètement différent. Cette propriété permet aux ordinateurs de vérifier que les données n’ont pas été modifiées.

Le hachage est comme créer une empreinte digitale pour des données numériques. C’est le processus qui consiste à prendre un message numérique et à le transformer en un code de longueur fixe, qui sert d’identifiant unique. Tout comme une empreinte digitale peut identifier une personne, un hachage peut identifier un message numérique.

La sortie, ou hachage, a toujours la même longueur, quelle que soit la taille de l’information d’origine. Bitcoin utilise quelques types spécifiques de fonctions de hachage appelées SHA-256 et RIPEMD160.

Voici quelques exemples :

  • Hachage SHA256 de la chaîne bonjour le monde
    • b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9
  • Empreinte SHA256 de la chaîne bonjour le monde.
    • 7ddb227315f423250fc67f3be69c544628dffe41752af91c50ae0a9c49faeb87
    • Remarquez qu’un petit changement dans l’entrée modifie complètement la sortie par rapport à la première
  • Empreinte SHA256 du fichier iso téléchargeable Ubuntu 18.10
    • 7b9f670c749f797a0f7481d619ce8807edac052c97e1a0df3b130c95efae4765
    • Même si l’entrée est un fichier volumineux, la sortie reste toujours de la même longueur fixe

Vous pouvez aussi voir le hachage comme une partition musicale qui capture l’essence d’un morceau de musique. De la même façon qu’une partition est une représentation unique d’un air, une valeur de hachage est une représentation unique d’une donnée.

En comparant la partition d’un morceau avec l’interprétation réelle, un musicien peut déterminer si l’exécution est fidèle. De même, en comparant la valeur de hachage des données reçues avec la valeur de hachage originale, on peut savoir si les données ont été modifiées pendant la transmission.

Tout comme une légère variation dans une interprétation musicale peut la rendre différente, même le plus petit changement dans les données originales produira une valeur de hachage différente. Cela fait du hachage un outil puissant pour garantir l’intégrité et l’authenticité d’une transaction My First Bitcoin.

Le processus de codage de la clé publique par hachage est utilisé pour renforcer la sécurité des informations en les convertissant en un format illisible de longueur fixe. My First Bitcoin utilise les algorithmes SHA-256 et RIPEMD160 pour produire des adresses publiques. Le résultat sert d’identifiant unique pour la clé publique et contribue à garantir l’intégrité et la sécurité des transactions enregistrées dans le registre. En chiffrant l’information de cette manière, il devient plus difficile pour des personnes non autorisées d’accéder aux données ou de les manipuler.

Propriétés d’une fonction de hachage
  • Déterministe : Les mêmes ingrédients produisent toujours le même smoothie. De la même façon, les mêmes données produiront toujours le même hachage.
  • Résistance à la préimage : Si vous n’avez que le smoothie, vous ne pouvez pas deviner exactement quels fruits ont été utilisés. De même, si vous n’avez qu’un hachage, vous ne pouvez pas retrouver les données originales.
  • Effet avalanche : Changer même une toute petite partie des ingrédients donne un smoothie complètement différent. Pour le hachage, un très petit changement dans les données produit un hachage totalement différent.
  • Résistance aux collisions : Il est extrêmement difficile de trouver deux ensembles d’ingrédients différents qui produisent exactement le même smoothie. De la même façon, il est extrêmement improbable que deux données différentes produisent le même hachage.
  • Rapide à vérifier : Faire le smoothie est rapide, et il est facile de vérifier que le résultat est bien un smoothie. Les fonctions de hachage sont rapides à calculer et faciles à vérifier pour tout le monde.

Activité : Générer un hachage SHA 256

Curieux de savoir comment fonctionne le hachage ? Scannez le QR code pour générer instantanément un hachage SHA256 à partir de n’importe quel mot, phrase ou entrée de votre choix. Les fonctions de hachage sont comme des empreintes digitales numériques : elles sont à sens unique, ce qui signifie qu’une fois quelque chose haché, il est impossible de revenir en arrière. Essayez et voyez par vous-même !

8.2 Le modèle UTXO

Que sont les UTXO ?

Ne soyez pas intimidé par ce nom étrange. Vous pouvez considérer les UTXO comme des morceaux de bitcoin, similaires aux billets et pièces dans votre portefeuille. Par exemple, si vous payez un article de 6 € avec un billet de 10 €, vous recevez 4 € de monnaie. Bitcoin fonctionne de manière similaire.

Tous les bitcoin que vous possédez sont composés de différents UTXO. Lorsque vous envoyez des bitcoin, votre portefeuille utilise un ou plusieurs de ces morceaux pour effectuer le paiement.

Si le morceau que vous dépensez est plus grand que le montant que vous envoyez, la valeur restante vous revient comme monnaie sous la forme d’un nouvel UTXO. En même temps, le destinataire reçoit un nouvel UTXO représentant les bitcoin que vous avez envoyés.

Le solde de votre portefeuille est simplement la valeur totale de tous les UTXO que vous contrôlez.

Vous ne devriez pas révéler vos UTXO aux autres car, s’ils les connaissent, ils peuvent suivre vos transactions et finiront par savoir combien d’argent vous possédez.

Exemple
  1. Alice veut envoyer 5 BTC à Bob.
  2. Son portefeuille utilise deux de ses UTXO qui valent ensemble 6 BTC.
  3. La transaction envoie 5 BTC à Bob, créant un nouvel UTXO dans le portefeuille de Bob.
  4. Le reste, soit 0,99 BTC revient à Alice comme monnaie, après avoir payé des frais de transaction de 0,01 BTC.
  5. Une fois la transaction confirmée, elle est ajoutée au registre de Bitcoin et les UTXO utilisés par Alice sont marqués comme dépensés, ils ne peuvent donc plus être utilisés.
Ressources
How Bitcoin Works Under the Hood
Regardez « How Bitcoin Works under the Hood »

↑ Retour à la table des matières