Lesson 2

Comment fonctionne le bitcoin ?

Le bitcoin est basé sur la technologie blockchain, qui est un grand livre distribué publiquement et qui utilise un mécanisme de consensus PoW pour maintenir la sécurité du réseau.

La naissance du bitcoin et de la blockchain est liée à deux problèmes de longue date dans le domaine des monnaies numériques : le problème de la double dépense et le problème des généraux byzantins.

De la monnaie physique à la monnaie numérique : Résoudre le problème de la double dépense

Par rapport à la monnaie physique de la vie quotidienne, la plus grande difficulté dans le développement de la monnaie électronique est de surmonter le "problème de confiance". La raison pour laquelle les premiers coquillages et métaux précieux peuvent être utilisés comme équivalents généraux est qu'ils présentent une certaine rareté, tandis que les billets de banque physiques ultérieurs reposent sur la crédibilité de l'État pour résoudre le problème de la confiance.

Ces monnaies physiques avaient une valeur et pouvaient effectuer le transfert de valeur instantanément. À l'ère numérique, tout contenu est essentiellement une combinaison de codes 0 et 1, et la monnaie numérique peut être copiée en deux exemplaires et distribuée à deux destinataires différents en même temps, ce qui constitue ce que l'on appelle le "problème de la double dépense". L'internet lui-même n'a pas la capacité de représenter une valeur, de sorte que les gens devaient auparavant utiliser un système de compte centralisé avec un serveur centralisé, comme une banque, afin d'utiliser des cartes de crédit et d'autres types de monnaie électronique.

Un système qui ne nécessite pas de confiance : Grand livre distribué

Mais la question se pose de savoir s'il existe un véritable tiers de confiance. Il existe un risque de défaillance d'un point unique, comme les attaques contre les serveurs centralisés, et même les gouvernements peuvent percevoir un "seigneuriage" en émettant de la monnaie en trop grande quantité. La solution proposée par Bitcoin est d'abandonner les intermédiaires tiers et de construire un grand livre distribué où chacun est au centre du grand livre.

Prenons l'exemple d'un village où il n'y a qu'un seul "chef" chargé de tenir le grand livre, et où toutes les dépenses des membres du village sont enregistrées auprès du chef du village, qui est la plaque tournante du système de grand livre. Le système peut bien fonctionner si le chef du village est digne de confiance ; cependant, si le chef, qui est au centre du système, est un voleur, il peut être difficile pour les autres de le détecter.

Considérons un village "décentralisé" dans lequel chaque membre détient un grand livre identique. Lorsqu'un membre souhaite apporter une modification au grand livre, il doit en informer les autres membres par "diffusion" afin qu'ils puissent confirmer les entrées et les copier dans leur propre grand livre. Le processus de transaction n'est pas terminé tant que tous les membres n'ont pas confirmé et mis à jour leurs grands livres. C'est essentiellement ainsi que fonctionne le réseau Bitcoin.

Mise en œuvre du grand livre distribué : Blocs et blockchain

Le bitcoin a inventé un nouveau type de système numérique d'enregistrement des transactions d'actifs, connu sous le nom de grand livre distribué. Contrairement à l'enregistrement centralisé, où les données sont stockées sur des serveurs centralisés, la blockchain est une base de données décentralisée, chaque nœud du réseau jouant le rôle de détenteur et de gestionnaire de la base de données.

Bitcoin a été la première application à grande échelle de la blockchain, et la blockchain est le fondement sous-jacent de Bitcoin.

Le système Bitcoin peut être divisé en trois couches : la couche de données, la couche de protocole et la couche d'application. Commençons par le "grand livre" (couche de données) que possède chaque membre du système Bitcoin.

Des arbres Merkle aux chaînes de blocs

Une blockchain est essentiellement un grand livre distribué tenu par tous les nœuds du réseau, chaque nœud stockant l'ensemble des données de la blockchain. La "chaîne" de blocs stockée par un nœud est une chaîne ordonnée de blocs connectés entre eux, et le bloc lui-même est une structure inaltérable de données maintenue par l'algorithme de hachage cryptographique.

La fonction de hachage (SHA-256 et RipeMD160) est un algorithme cryptographique essentiel du bitcoin qui permet de convertir une valeur d'entrée de longueur arbitraire en une valeur de sortie de longueur fixe, de manière aléatoire et sans collision. Une petite modification de l'entrée peut entraîner un résultat radicalement différent. La sortie d'une fonction de hachage peut être facilement dérivée de l'entrée, mais la déduction de l'entrée à partir de la sortie nécessite une énumération par force brute, ce qui prend beaucoup de temps et de puissance de calcul. L'utilisation répétée des fonctions de hachage simplifie et définit la structure des données de Bitcoin.

Un bloc Bitcoin se compose de deux parties : le corps du bloc et l'en-tête du bloc. Le corps du bloc contient toutes les informations relatives à la transaction sur ce bloc, qui sont hachées plusieurs fois pour former une structure connue sous le nom d'arbre de Merkle, qui constitue le corps du bloc. Le premier message de transaction sur chacun de ces blocs est également connu sous le nom de transaction coinbase. Il s'agit de la transaction qui génère de nouveaux bitcoins et les récompense au mineur, tandis que toutes les autres transactions sont des transferts d'un utilisateur à l'autre.

Ces transactions sont soumises à de multiples opérations de hachage pour aboutir à une valeur appelée Merkle Hash, qui est la somme de toutes les données de la transaction. Le Merkle Hash, ainsi que le Nunce, les horodatages, les hachages des blocs parents et d'autres données, constituent l'en-tête du bloc, et le calcul de la valeur de hachage de l'en-tête du bloc permet d'obtenir le Block Hash de ce bloc. Comme l'en-tête de chaque bloc contient la valeur de hachage du bloc parent, tous les blocs sont reliés en une chaîne. Les blocs sont verrouillés entre eux et toute modification des données du bloc entraînera une modification du hachage du bloc, ce qui brisera la chaîne.

Preuve de travail (PoW) : le mécanisme de consensus pour la sécurité des réseaux

Après avoir présenté le "grand livre" (couche de données) détenu par chaque nœud, passons à la couche de consensus de Bitcoin, qui est responsable de la sécurité du réseau.

Avant d'aborder la question du consensus distribué, il est essentiel de comprendre le problème des "généraux byzantins".

Généraux byzantins : Un problème de synchronisation multi-messages

Le problème des généraux byzantins remonte à la période médiévale, lorsque l'armée byzantine avait recours à des messagers pour transmettre des informations en raison de l'étendue du territoire de Byzance. Si un traître déforme délibérément les informations opérationnelles des supérieurs, il en résulte des plans opérationnels incohérents, d'où le "problème des généraux byzantins".

Le réseau Bitcoin est constitué d'un certain nombre de nœuds décentralisés, dont chacun est un "corps" indépendant, autonome et égal. Chaque nœud du réseau possède sa propre copie des données de la blockchain, et tous veulent être les premiers à effectuer des transactions et à gagner des récompenses en bitcoins. Alors, quel nœud réussira à obtenir les droits sur le grand livre et à convaincre l'ensemble du réseau de parvenir à un consensus pour modifier les données de la blockchain ?

Preuve de travail (PoW) : Calculez la réponse et publiez-la sur le réseau pour vérification en temps réel.

La réponse de Bitcoin est le mécanisme de consensus Proof-of-Work (PoW), communément appelé "minage", qui est un processus de calcul numérique effectué par des nœuds, où le premier nœud à trouver la "réponse" obtient les droits sur le grand livre. Plus précisément, le nœud doit continuer à essayer de modifier le nonce de l'en-tête du bloc, à calculer le hachage du bloc et, enfin, à obtenir un hachage du bloc dont les premiers bits sont nuls.

À ce stade, la valeur de Nunce est la réponse à la question. Après avoir trouvé la réponse, le nœud la diffuse aux autres nœuds du réseau et, après avoir vérifié la réponse, les autres nœuds prennent rapidement le bloc comme nouveau nœud parent et poursuivent le cycle suivant d'opérations minières.

Cela pose un problème dans la mesure où les données mettent du temps à être diffusées entre les nœuds, et il est tout à fait possible que deux nœuds ou plus découvrent la réponse à l'énigme en même temps avant que l'ensemble de la communauté ne parvienne à un accord. Cependant, comme deux nœuds effectuent des transactions coinbase différentes, il en résulte deux blocs valides distincts. En raison des différentes séquences de signalisation, les nœuds de minage fonctionneront sur les deux chaînes de fourches. À ce stade, le réseau Bitcoin suivra la "règle de la chaîne la plus longue", considérant la chaîne de bifurcation ayant le plus grand nombre de blocs comme la seule chaîne de blocs reconnue. Ce concours de fourche est généralement réalisé en moins de 6 blocs, et toutes les transactions sur l'autre chaîne abandonnée sont annulées.

L'essence du bitcoin : le modèle UXTO

Les nœuds Bitcoin peuvent synchroniser les mises à jour du grand livre distribué en utilisant le minage et la règle de la chaîne la plus longue pour parvenir à un consensus. Ce registre distribué basé sur le consensus rend également possible les monnaies numériques peer-to-peer comme le Bitcoin.

Les monnaies électroniques traditionnelles utilisent un système de compte centralisé où des comptes sont créés pour chaque utilisateur sur un serveur central et où les données de solde sont stockées pour tous les comptes. Après chaque opération, le solde du compte est augmenté ou diminué par ordre chronologique. Bitcoin, quant à lui, utilise un modèle UXTO, qui représente le résultat des transactions non dépensées.

La cryptographie asymétrique est utilisée pour sécuriser les transactions en bitcoins. Chaque utilisateur de Bitcoin doit disposer d'une paire de clés publiques et privées, à l'instar d'un compte et d'un mot de passe. L'utilisateur doit signer les données de la transaction avec la clé privée et publier les données de la transaction, la signature et la clé publique ensemble. Cependant, lors de chaque transaction, l'utilisateur ne transfère pas directement le solde du compte mais utilise le "montant non dépensé" des multiples transactions précédentes, à savoir UTXO.

Dans le système Bitcoin, il n'y a pas de concept de compte ou de solde de compte, mais seulement l'UTXO de toutes les transactions dans l'historique. Les portefeuilles Bitcoin peuvent analyser les données de toutes les transactions précédentes et calculer l'UTXO total d'une adresse spécifique (c'est-à-dire la clé publique) pour déterminer le solde du compte. En outre, lorsqu'une transaction est lancée, les portefeuilles de bitcoins peuvent automatiquement faire correspondre l'UTXO avec le solde correct pour effectuer le transfert.

Points forts

  • Le bitcoin est basé sur la technologie des blocs. La blockchain est une base de données décentralisée utilisée pour créer un grand livre distribué, de sorte qu'aucune confiance de la part d'un tiers n'est nécessaire et que chaque nœud du réseau agit comme un mainteneur de données.
  • Bitcoin utilise l'algorithme SHA256 pour générer des hachages et stocker des données dans les en-têtes et les corps de blocs. Il s'agit d'une structure composée de blocs individuels enchaînés les uns aux autres, et comme les données sont inaltérables, elle est extrêmement sûre.
  • Le mécanisme de consensus de Bitcoin est la preuve de travail (PoW), un mécanisme qui permet aux nœuds de dépenser de la puissance arithmétique pour résoudre une énigme, puis de synchroniser la transaction avec d'autres nœuds pour la récompense du bloc.
Disclaimer
* Crypto investment involves significant risks. Please proceed with caution. The course is not intended as investment advice.
* The course is created by the author who has joined Gate Learn. Any opinion shared by the author does not represent Gate Learn.
Catalog
Lesson 2

Comment fonctionne le bitcoin ?

Le bitcoin est basé sur la technologie blockchain, qui est un grand livre distribué publiquement et qui utilise un mécanisme de consensus PoW pour maintenir la sécurité du réseau.

La naissance du bitcoin et de la blockchain est liée à deux problèmes de longue date dans le domaine des monnaies numériques : le problème de la double dépense et le problème des généraux byzantins.

De la monnaie physique à la monnaie numérique : Résoudre le problème de la double dépense

Par rapport à la monnaie physique de la vie quotidienne, la plus grande difficulté dans le développement de la monnaie électronique est de surmonter le "problème de confiance". La raison pour laquelle les premiers coquillages et métaux précieux peuvent être utilisés comme équivalents généraux est qu'ils présentent une certaine rareté, tandis que les billets de banque physiques ultérieurs reposent sur la crédibilité de l'État pour résoudre le problème de la confiance.

Ces monnaies physiques avaient une valeur et pouvaient effectuer le transfert de valeur instantanément. À l'ère numérique, tout contenu est essentiellement une combinaison de codes 0 et 1, et la monnaie numérique peut être copiée en deux exemplaires et distribuée à deux destinataires différents en même temps, ce qui constitue ce que l'on appelle le "problème de la double dépense". L'internet lui-même n'a pas la capacité de représenter une valeur, de sorte que les gens devaient auparavant utiliser un système de compte centralisé avec un serveur centralisé, comme une banque, afin d'utiliser des cartes de crédit et d'autres types de monnaie électronique.

Un système qui ne nécessite pas de confiance : Grand livre distribué

Mais la question se pose de savoir s'il existe un véritable tiers de confiance. Il existe un risque de défaillance d'un point unique, comme les attaques contre les serveurs centralisés, et même les gouvernements peuvent percevoir un "seigneuriage" en émettant de la monnaie en trop grande quantité. La solution proposée par Bitcoin est d'abandonner les intermédiaires tiers et de construire un grand livre distribué où chacun est au centre du grand livre.

Prenons l'exemple d'un village où il n'y a qu'un seul "chef" chargé de tenir le grand livre, et où toutes les dépenses des membres du village sont enregistrées auprès du chef du village, qui est la plaque tournante du système de grand livre. Le système peut bien fonctionner si le chef du village est digne de confiance ; cependant, si le chef, qui est au centre du système, est un voleur, il peut être difficile pour les autres de le détecter.

Considérons un village "décentralisé" dans lequel chaque membre détient un grand livre identique. Lorsqu'un membre souhaite apporter une modification au grand livre, il doit en informer les autres membres par "diffusion" afin qu'ils puissent confirmer les entrées et les copier dans leur propre grand livre. Le processus de transaction n'est pas terminé tant que tous les membres n'ont pas confirmé et mis à jour leurs grands livres. C'est essentiellement ainsi que fonctionne le réseau Bitcoin.

Mise en œuvre du grand livre distribué : Blocs et blockchain

Le bitcoin a inventé un nouveau type de système numérique d'enregistrement des transactions d'actifs, connu sous le nom de grand livre distribué. Contrairement à l'enregistrement centralisé, où les données sont stockées sur des serveurs centralisés, la blockchain est une base de données décentralisée, chaque nœud du réseau jouant le rôle de détenteur et de gestionnaire de la base de données.

Bitcoin a été la première application à grande échelle de la blockchain, et la blockchain est le fondement sous-jacent de Bitcoin.

Le système Bitcoin peut être divisé en trois couches : la couche de données, la couche de protocole et la couche d'application. Commençons par le "grand livre" (couche de données) que possède chaque membre du système Bitcoin.

Des arbres Merkle aux chaînes de blocs

Une blockchain est essentiellement un grand livre distribué tenu par tous les nœuds du réseau, chaque nœud stockant l'ensemble des données de la blockchain. La "chaîne" de blocs stockée par un nœud est une chaîne ordonnée de blocs connectés entre eux, et le bloc lui-même est une structure inaltérable de données maintenue par l'algorithme de hachage cryptographique.

La fonction de hachage (SHA-256 et RipeMD160) est un algorithme cryptographique essentiel du bitcoin qui permet de convertir une valeur d'entrée de longueur arbitraire en une valeur de sortie de longueur fixe, de manière aléatoire et sans collision. Une petite modification de l'entrée peut entraîner un résultat radicalement différent. La sortie d'une fonction de hachage peut être facilement dérivée de l'entrée, mais la déduction de l'entrée à partir de la sortie nécessite une énumération par force brute, ce qui prend beaucoup de temps et de puissance de calcul. L'utilisation répétée des fonctions de hachage simplifie et définit la structure des données de Bitcoin.

Un bloc Bitcoin se compose de deux parties : le corps du bloc et l'en-tête du bloc. Le corps du bloc contient toutes les informations relatives à la transaction sur ce bloc, qui sont hachées plusieurs fois pour former une structure connue sous le nom d'arbre de Merkle, qui constitue le corps du bloc. Le premier message de transaction sur chacun de ces blocs est également connu sous le nom de transaction coinbase. Il s'agit de la transaction qui génère de nouveaux bitcoins et les récompense au mineur, tandis que toutes les autres transactions sont des transferts d'un utilisateur à l'autre.

Ces transactions sont soumises à de multiples opérations de hachage pour aboutir à une valeur appelée Merkle Hash, qui est la somme de toutes les données de la transaction. Le Merkle Hash, ainsi que le Nunce, les horodatages, les hachages des blocs parents et d'autres données, constituent l'en-tête du bloc, et le calcul de la valeur de hachage de l'en-tête du bloc permet d'obtenir le Block Hash de ce bloc. Comme l'en-tête de chaque bloc contient la valeur de hachage du bloc parent, tous les blocs sont reliés en une chaîne. Les blocs sont verrouillés entre eux et toute modification des données du bloc entraînera une modification du hachage du bloc, ce qui brisera la chaîne.

Preuve de travail (PoW) : le mécanisme de consensus pour la sécurité des réseaux

Après avoir présenté le "grand livre" (couche de données) détenu par chaque nœud, passons à la couche de consensus de Bitcoin, qui est responsable de la sécurité du réseau.

Avant d'aborder la question du consensus distribué, il est essentiel de comprendre le problème des "généraux byzantins".

Généraux byzantins : Un problème de synchronisation multi-messages

Le problème des généraux byzantins remonte à la période médiévale, lorsque l'armée byzantine avait recours à des messagers pour transmettre des informations en raison de l'étendue du territoire de Byzance. Si un traître déforme délibérément les informations opérationnelles des supérieurs, il en résulte des plans opérationnels incohérents, d'où le "problème des généraux byzantins".

Le réseau Bitcoin est constitué d'un certain nombre de nœuds décentralisés, dont chacun est un "corps" indépendant, autonome et égal. Chaque nœud du réseau possède sa propre copie des données de la blockchain, et tous veulent être les premiers à effectuer des transactions et à gagner des récompenses en bitcoins. Alors, quel nœud réussira à obtenir les droits sur le grand livre et à convaincre l'ensemble du réseau de parvenir à un consensus pour modifier les données de la blockchain ?

Preuve de travail (PoW) : Calculez la réponse et publiez-la sur le réseau pour vérification en temps réel.

La réponse de Bitcoin est le mécanisme de consensus Proof-of-Work (PoW), communément appelé "minage", qui est un processus de calcul numérique effectué par des nœuds, où le premier nœud à trouver la "réponse" obtient les droits sur le grand livre. Plus précisément, le nœud doit continuer à essayer de modifier le nonce de l'en-tête du bloc, à calculer le hachage du bloc et, enfin, à obtenir un hachage du bloc dont les premiers bits sont nuls.

À ce stade, la valeur de Nunce est la réponse à la question. Après avoir trouvé la réponse, le nœud la diffuse aux autres nœuds du réseau et, après avoir vérifié la réponse, les autres nœuds prennent rapidement le bloc comme nouveau nœud parent et poursuivent le cycle suivant d'opérations minières.

Cela pose un problème dans la mesure où les données mettent du temps à être diffusées entre les nœuds, et il est tout à fait possible que deux nœuds ou plus découvrent la réponse à l'énigme en même temps avant que l'ensemble de la communauté ne parvienne à un accord. Cependant, comme deux nœuds effectuent des transactions coinbase différentes, il en résulte deux blocs valides distincts. En raison des différentes séquences de signalisation, les nœuds de minage fonctionneront sur les deux chaînes de fourches. À ce stade, le réseau Bitcoin suivra la "règle de la chaîne la plus longue", considérant la chaîne de bifurcation ayant le plus grand nombre de blocs comme la seule chaîne de blocs reconnue. Ce concours de fourche est généralement réalisé en moins de 6 blocs, et toutes les transactions sur l'autre chaîne abandonnée sont annulées.

L'essence du bitcoin : le modèle UXTO

Les nœuds Bitcoin peuvent synchroniser les mises à jour du grand livre distribué en utilisant le minage et la règle de la chaîne la plus longue pour parvenir à un consensus. Ce registre distribué basé sur le consensus rend également possible les monnaies numériques peer-to-peer comme le Bitcoin.

Les monnaies électroniques traditionnelles utilisent un système de compte centralisé où des comptes sont créés pour chaque utilisateur sur un serveur central et où les données de solde sont stockées pour tous les comptes. Après chaque opération, le solde du compte est augmenté ou diminué par ordre chronologique. Bitcoin, quant à lui, utilise un modèle UXTO, qui représente le résultat des transactions non dépensées.

La cryptographie asymétrique est utilisée pour sécuriser les transactions en bitcoins. Chaque utilisateur de Bitcoin doit disposer d'une paire de clés publiques et privées, à l'instar d'un compte et d'un mot de passe. L'utilisateur doit signer les données de la transaction avec la clé privée et publier les données de la transaction, la signature et la clé publique ensemble. Cependant, lors de chaque transaction, l'utilisateur ne transfère pas directement le solde du compte mais utilise le "montant non dépensé" des multiples transactions précédentes, à savoir UTXO.

Dans le système Bitcoin, il n'y a pas de concept de compte ou de solde de compte, mais seulement l'UTXO de toutes les transactions dans l'historique. Les portefeuilles Bitcoin peuvent analyser les données de toutes les transactions précédentes et calculer l'UTXO total d'une adresse spécifique (c'est-à-dire la clé publique) pour déterminer le solde du compte. En outre, lorsqu'une transaction est lancée, les portefeuilles de bitcoins peuvent automatiquement faire correspondre l'UTXO avec le solde correct pour effectuer le transfert.

Points forts

  • Le bitcoin est basé sur la technologie des blocs. La blockchain est une base de données décentralisée utilisée pour créer un grand livre distribué, de sorte qu'aucune confiance de la part d'un tiers n'est nécessaire et que chaque nœud du réseau agit comme un mainteneur de données.
  • Bitcoin utilise l'algorithme SHA256 pour générer des hachages et stocker des données dans les en-têtes et les corps de blocs. Il s'agit d'une structure composée de blocs individuels enchaînés les uns aux autres, et comme les données sont inaltérables, elle est extrêmement sûre.
  • Le mécanisme de consensus de Bitcoin est la preuve de travail (PoW), un mécanisme qui permet aux nœuds de dépenser de la puissance arithmétique pour résoudre une énigme, puis de synchroniser la transaction avec d'autres nœuds pour la récompense du bloc.
Disclaimer
* Crypto investment involves significant risks. Please proceed with caution. The course is not intended as investment advice.
* The course is created by the author who has joined Gate Learn. Any opinion shared by the author does not represent Gate Learn.