Qu’est-ce que Bitcoin, comment ça marche et pourquoi c’est une révolution ?

Cet article est destiné à trois publics. Dans la première partie, je présente Bitcoin via une simple analogie pour permettre aux curieux de comprendre rapidement le concept mais également la révolution que cela pourrait être. Dans la deuxième partie, je serais un peu plus technique pour vous permettre de comprendre le fonctionnement et les principes de base. Enfin, dans la troisième partie, je rentrerai dans le détail du fonctionnement en présentant les différents aspects de cette crypto monnaie.

J’aurai aussi pu écrire une quatrième partie qui détaille encore plus ce système mais si vous souhaitez aller plus loin, je vous conseille l’excellent livre “MasteringBitcoin” par Andreas M. Antonopoulos qui m’a quasiment tout appris sur le sujet.


Commençons par une analogie.

Bien que je comprenne les critiques et les doutes qui entourent Bitcoin, cela reste pour moi une des technologies les plus fascinantes qui m’ait été donné de voir. Tout d’abord, pour être précis, Bitcoin n’est pas une technologie mais plutôt un ensemble de technologies et de concepts qui rendent possible l’existence de cette monnaie électronique.

Avant d’en expliquer le fonctionnement et pour que vous en compreniez bien l’intérêt, je vais commencer par une analogie.

Avant l’apparition de l’email et du fax, pour envoyer un document à une personne, on utilisait les services de La Poste. Le moins que l’on puisse dire, c’est que ce n’était pas pratique :

  • Votre destinataire devait disposer d’une adresse que la poste connaissait.
  • Vous deviez suivre les processus de la poste (format enveloppe, timbre, poids, boite aux lettres…).
  • Vous deviez vous acquitter de frais “importants” et variables en fonction de la destination et de la vitesse d’acheminement souhaitée.
  • Le transport du courrier pouvait prendre un temps variable en fonction de la destination.
  • Enfin, tous les individus sur terre n’étaient pas accessible via ce système.

Si l’on compare cela avec la façon de transférer de l’argent aujourd’hui, on est quasiment dans la même situation :

  • Il faut que vous soyez enregistrés auprès d’une banque qui va vous octroyer votre “adresse” (IBAN), souvent contre un abonnement annuel.
  • Vous devez utiliser le système bancaire et ses normes.
  • Il peut y avoir des frais en fonction des banques et en fonction des pays où vous envoyez de l’argent.
  • Un virement peut aussi prendre un temps très variable, surtout si vous le faites vers l’étranger.
  • Et enfin, tout le monde n’a pas un compte en banque.

Lorsque l’email est arrivé, nous sommes alors passé à un système permettant d’envoyer des documents instantanément à n’importe quelle personne disposant d’une adresse email et pour un coût proche de zéro.

Et bien voilà, bitcoin est à la banque ce que l’email est à la lettre envoyée par La Poste. Avec Bitcoin, vous pouvez :

  • Créer un “compte” pour recevoir/envoyer des bitcoins sans avoir besoin de faire appel à une autorité centrale.
  • Vous pouvez envoyer instantanément des bitcoins à n’importe qui, peu importe où il se trouve et pour un coût proche de zéro.
  • Tout le monde peut se créer un “compte”, ça ne coûte rien, c’est instantané et vous n’avez pas à vous enregistrer auprès de qui que ce soit.
  • Le système est entièrement décentralisé, il n’appartient à personne et n’est contrôlé par personne.

Bitcoin a donc toutes les caractéristiques d’une solution “miracle” qui apporte un plus indéniable à notre façon de faire actuelle. De plus, Bitcoin s’attaque à une problématique qui coûte chaque année plusieurs milliards de dollars en frais de fonctionnement. Sur le sujet des coûts du système bancaire, je vous recommande de lire cet excellent article qui détaille les coûts d’une transaction par carte bancaire ou encore cet article qui pose la question : dans un monde où tout va si vite, pourquoi l’argent est-il si lent ?

Nous allons voir que les Bitcoins sont générés par le système mais vous pouvez aussi en acheter et/ou en vendre contre des euros. Si vous voulez essayer, je vous conseille de passer par coinbase.

Note : Certains concepts utilisés par Bitcoin comme le “blockchain” commence à être utilisés dans d’autres domaines comme l’internet des objets ou les données de santé.


Esquissons une vision globale.

Dans cette partie, je vais essayer de vous présenter une vision globale du système sans rentrer trop dans le détail. Ceci vous permettra d’avoir une vue d’ensemble du fonctionnement même si je serai contraint de faire quelques raccourcis.

Mais commençons par le début, le terme Bitcoin désigne deux choses : le système de paiement et la monnaie utilisée pour les paiements.

Le système de paiement.

Premier élément, le système de paiement. Il est constitué d’un réseau de machines connectées entre elles en peer to peer. Ces machines tiennent à jour un registre global et public de toutes les transactions qui existent depuis la création de Bitcoin. C’est une sorte de relevé de compte global qui permet de savoir qui a quoi.

Dans ce réseau, il n’y a pas de “serveur central” ou “d’autorité de contrôle”, le système est entièrement décentralisé et autonome. Personne n’est aux commandes, même pas son créateur.

Pour résumer, nous avons donc un ensemble de machines (dont la votre pourrait faire partie) qui tiennent à jour un registre infalsifiable de toutes les transactions existantes afin de savoir qui possède quoi.

La monnaie.

Deuxième élément, n’importe qui peut facilement sur n’importe quel ordinateur et de manière anonyme, se créer un “compte” bitcoin (le terme “compte” n’est pas adapté mais nous allons l’appeler comme ça pendant un petit moment).

Ce “compte” est composé de deux choses :

  • Une clé publique qui permet de générer des adresses qui sont un peu comme des RIB. Si vous donnez une adresse à quelqu’un, la personne sera en mesure de vous envoyer des bitcoins.
    Exemple : 17bJrR55Sf5kK9WWc8B7qWKX9SqdvuQNhN
  • Une clé privée qui vous permet de gérer les bitcoins que vous possédez. C’est un peu comme les données d’accès à votre compte bancaire en ligne. Si vous les avez, vous pouvez accéder à votre argent et faire des transferts.
    Exemple : 5JoKg76uvFcWrhaX5U9aKqvWd5EesDxLAGyjrGwxwL4nArrSY4K

Si vous voulez voir ce que cela donne concrètement, vous pouvez vous créer votre propre “compte” bitcoin en 10 secondes avec cette simple page web. Vous pouvez aussi utiliser des applications plus complète comme coinbase qui vous masquera cette complexité.

Le fonctionnement

La réalité est un peu plus complexe mais si on veut schématiser, voici comment fonctionne le système :

  • Depuis n’importe quel ordinateur ou site web, vous créez le couple clé privée / clé publique.
  • A partir de la clé publique, vous allez générer des adresses que vous pourrez donner à des tiers comme vous donneriez votre adresse email sauf que cette adresse ne vous permet pas de recevoir des messages mais des paiements.
  • A l’aide d’un logiciel, d’une application web ou d’une application mobile, un de vos amis entre sa clé privée et déclare qu’elle veut faire transiter X Bitcoins qu’il possède vers l’adresse que vous lui avez donné.
  • La transaction ainsi créée est immédiatement envoyée à un des nœuds du réseau qui va la propager aux autres machines.
  • Le réseau va ensuite se charger de la validation de la transaction (propriétaire, destinataire, montant disponible, preuve de travail, ajout de la transaction au registre global…).
  • Les bitcoins sont désormais sur votre “compte”. Vous pouvez utiliser votre clé privée pour créer une nouvelle transaction et transférer ces Bitcoins vers une autre adresse.

Nous avons donc ici un système qui vous permet de transférer de l’argent d’un compte à un autre, partout dans le monde, de manière instantanée, anonyme et sécurisée. Et tout cela pour un coût proche de zéro.

Maintenant que vous en savez plus, observez à nouveau le fonctionnement du système bancaire… créer un compte est complexe, un transfert peut prendre plusieurs jours, les frais sont élevés, tout le monde n’a pas de compte et il y a des spécificités en fonction des pays, etc.

Cette technologie représente donc une évolution majeure d’un système bancaire qui, au final, fonctionne d’une manière assez archaïque.


En détail : clé privée, clé publique et adresses Bitcoin.

Bitcoin utilise la cryptographie asymétrique (ou cryptographie à clé publique) pour créer une paire de clés (l’une publique et l’autre privée) qui va permettre l’accès aux Bitcoins.

Concrètement une clé publique permet de coder un message et la clé privée de le décoder. N’importe qui peut donc coder un message avec la clé publique mais seul le propriétaire peut le décoder (et donc prouver son “identité”) grâce à la clé privée.

La cryptographie à clé publique est très pratique pour vérifier que quelqu’un est bien celui qu’il prétend être. Prenons un exemple, John a créé sa paire de clés. Il se retrouve dans un groupe de dix personnes qui connaissent tous la clé publique et qui prétendent tous être John. Pour savoir qui est John, il vous suffit d‘utiliser la clé publique pour coder un message quelconque comme “coucou, ça va ?” et d’envoyer le message ainsi codé aux dix personnes. Seul John, qui utilisera sa clé privée pour décoder votre message, sera capable de vous dire quel était le message d’origine que avez envoyé à tout le monde et vous saurez donc que c’est bien John.

Lors d’une transaction, la clé publique du destinataire est représentée par son empreinte digitale : l’adresse Bitcoin. C’est à cette adresse que l’on envoie les Bitcoins (la clé privée permet de générer la clé publique qui permet de générer des adresses Bitcoins).

Si la clé publique permet de recevoir de l’argent, la clé privée vous permet, elle, de prouver au réseau Bitcoin que vous êtes bien le propriétaire des bitcoins et que vous avez donc le droit de faire une transaction sur ceux-ci.

Concrètement, si vous souhaitez envoyer des bitcoins à une personne, vous devez donc créer une transaction (c’est à dire un transfert de Bitcoins d’une adresse vers une autre) dans laquelle vous indiquez combien de bitcoins vous envoyez et à quelle adresse. Puis, vous devez “signer” cette transaction grâce à votre clé privée. C’est un peu le même principe qu’un chèque : vous mettez le destinataire, le montant et vous signez.

Cela peut paraître un peu lourd mais la plupart des solutions du marché vous propose un “porte monnaie” (wallet) qui stocke vos clés et masque cette complexité.

Note : dans la première partie de l’article, j’ai parlé de créer un “compte” mais en réalité, quand vous générez votre clé publique et votre clé privée, vous n’existez pas pour le réseau Bitcoin. Vous possédez seulement une adresse Bitcoin valide qui pourrait être utilisée pour accéder à des transactions existantes. Une fois que vous aurez réalisé une transaction avec cette adresse, vous “existerez” mais en attendant, votre adresse est juste une clé valide comme des milliards d’autres. Il n’y a donc pas de notion de “compte” dans Bitcoin comme vous avez avec un compte dans une banque.

La clé privée.

Comme nous l’avons déjà vu, la clé privé est un nombre, choisi au hasard. Il vous permet d’avoir le contrôle sur tous les Bitcoins associés aux adresses correspondant à la clé privée.

Clé publique.

La clé publique est calculée à partir de la clé privée en utilisant l’algorithme ECDSA (Elliptic Curve Digital Signature Algorithm).

A noter qu’il n’est pas possible de calculer la clé privée à partir de la clé publique. Cela ne marche que dans un sens. Pour comprendre comment cela est possible, imaginez que vous lanciez un palet dans une pièce. Vous le lancez d’un point particulier, avec une certaine force et dans une direction précise. En le lançant, du même endroit, avec la même force et dans la même direction, vous pouvez retrouver ce point autant de fois que vous le voulez. Par contre, une personne entrant dans la pièce et voyant la position du palet, ne peut pas déterminer d’où vous l’avez lancé.

Adresses Bitcoin.

L’adresse Bitcoin est une suite de chiffres que vous pouvez partager avec toute personne qui souhaite vous envoyer des bitcoins. Ces adresses sont produites à partir de votre clé publique.

Note : pour produire ces adresses bitcoin, on utilise un algorithme de hachage qui permet, à partir d’une donnée fournie en entrée (clé publique), de calculer une empreinte servant à identifier rapidement, bien qu’incomplètement, la donnée initiale. Cette fonction aussi ne marche que dans un sens.


En détail : le blockchain.

Avant de poursuivre, il est important que vous compreniez ce qu’est le hachage. Un algorithme de hachage prend n’importe quelle donnée de n’importe quelle taille en entrée et produit une chaîne de caractère “unique” qui fera toujours la même taille et qui sera une sorte d’empreinte ADN de vos données d’entrées.
Dans le cas de bitcoin, on utilise SHA-256 qui, pour la chaîne “Je m’appelle Stéphane Traumat” donne la valeur : 607af60dbf07e5c08d985e2c794624b8c05b77a5235c8071e0243baeb547906b. Si je change un caractère en rajoutant, par exemple un point d’exclamation (“Je m’appelle Stéphane Traumat!”), j’obtiendrais une chaîne complètement différente : a7b5b4dbae0800a23a47f5abf7cb7bf12999cebfbfa3e8ac199ea96c93be4802
Les fonctions de hachage permettent de vérifier très rapidement si un contenu, quelque soit sa taille, a été modifié.

Poursuivons donc notre exploration du blockchain. Ce fichier est le registre global de toutes les transactions qui ont eu lieu depuis la création de Bitcoin. On peut se le représenter comme un fichier dans lequel s’empile, les unes sur les autres, des groupes de transactions (appelés blocs) validées.

Chaque bloc de transactions (avec son “contenu”) est identifié par un hash calculé. C’est à dire une chaîne qui représente de manière unique le bloc et son contenu. Comme expliqué au début de ce chapitre, si l’on change le contenu, le hash change et l’on peut donc rapidement vérifié sa validité.

Dans le blockchain, chaque bloc sert de fondation au bloc suivant car il référence dans son entête le hash de son père. Ceci engendre une dépendance entre tous les blocs. En effet, si vous vouliez changer le contenu d’un ancien bloc, il vous faudrait recalculer tous les blocs qui se trouvent au dessus de lui ce qui serait un travail considérable. Ceci fait que plus un bloc est ancien, plus il est infalsifiable.

Si l’on veut faire une analogie, on pourrait comparer cela au jeu Jenga. Les briques les plus facile à enlever sont celles du haut, plus vous avez de couches au dessus d’une brique, plus il est difficile de la faire bouger.


En détail : le réseau bitcoin.

Le réseau Bitcoin est un réseau de machines en peer to peer (P2P), comme napster à l’époque ou bittorrent aujourd’hui, ce qui signifie que toutes les machines qui y participent (y compris la votre) ne sont pas plus spéciales les unes que les autres. Il n’y a donc pas de serveur central, pas d’autorité et pas de hiérarchie. Ce qui rend le réseau virtuellement indestructible.

Bien que tous les nœuds soient égaux, tous n’offrent pas forcément les mêmes fonctionnalités. En effet, il y a quatre services de base :

  • Le routage : ce service est obligatoire et permet la validation et la propagation des transactions / blocs ainsi que la découverte et la communication avec d’autres nœuds.
  • La base de données des transactions : ce service consiste à contenir une copie complète et à jour du blockchain et ainsi d’être en mesure de vérifier la validité de toute transaction de manière autonome.
  • La capacité de minage pour les nœuds qui sont en compétition pour créer des blocs valides à ajouter dans le blockchain.
  • Le porte monnaie qui permet éventuellement de gérer les clés du nœud.

En détail : les transactions.

Les transactions représentent les transferts de Bitcoins entre les participants du système. Chaque transaction est stockée dans le blockchain qui sert de registre public de toutes les transactions.

Si l’on reprend le cycle que l’on a présenté au début de cet article :

  • Un utilisateur crée une transaction et la signe avec sa clé privée.
  • La transaction est transmise au réseau de machines Bitcoin qui la propage à l’ensemble des machines de ce réseau.
  • La transaction est validée dans un groupe de transaction (bloc) grâce au “minage” que nous présenterons un peu plus tard.
  • Elle est ensuite ajoutée au registre global des transactions (le blockchain).

Note : contrairement au système bancaire, les transactions sont non répudiables. Une fois qu’une transaction est faite, personne, absolument personne, ne peut revenir dessus.

Nous allons maintenant reprendre le cycle précédent de manière un peu plus détaillée.

La création de transactions.

Comme un chèque, une transaction est une volonté de donner de l’argent à une personne mais cette volonté n’est traduite que lorsque ce chèque arrive dans le système financier.

Vous pouvez donc créer une transaction, spécifier qui en est le destinataire, définir le montant et signer la transaction avec votre clé privée. Quand vous êtes prêt, il vous suffit de la transmettre à l’un des nœuds du réseau.

Diffusion de la transaction sur le réseau Bitcoin.

Contrairement à un paiement par carte de crédit, une transaction bitcoin ne contient aucune information personnelle ou sensible. On peut donc l’envoyer sans difficulté via internet à n’importe quel nœud Bitcoin peu importe la sécurité de la connexion ou la confiance que l’on a dans le nœud.

Le nœud ne vérifie pas l’identité de l’envoyeur ou la machine émettrice, seul le fait que le contenu de votre transaction est valide est important.

Une fois que votre transaction est arrivée sur un nœud, celui-ci se chargera, si elle est valide, de la propager à l’ensemble du réseau Bitcoin. L’ensemble du réseau est décentralisé, chaque nœud recevant une nouvelle transaction va la propager à 3 ou 4 des nœuds qu’il connaît, qui eux même vont le transmettre à 3 ou 4 autres nœuds qu’ils connaissent. En quelques secondes, votre transaction sera connue par des milliers de machines.

Note : le fait que chaque nœud valide la transaction avant de la transmettre à d’autres nœuds empêche les attaques de type Denial Of Service.

Le minage.

L’opération de minage consiste, pour certaines machines du réseau Bitcoin, à réaliser des opérations mathématiques complexes afin de créer des blocs de transactions valides qui vont être inscrites dans le blockchain.

Le minage étant quelque chose d’assez complexe, je le détaille dans le chapitre suivant.

Structure d’une transaction.

Concrètement, une transaction est une structure de données contenant les informations expliquant d’où partent les bitcoins (input) et où ils vont (output).

Une des différences qui existe entre Bitcoin et la notion de compte telle que vous l’avez avec votre banque, c’est justement que les transactions ne sont pas liées à des comptes, des identités, des personnes physiques ou des personnes morales. En effet, il n’y a que des transactions dans le blockchain et celles-ci contiennent un certain nombre de bitcoins qui sont verrouillés grâce à la cryptographie. Si vous possédez la clé privée, vous pouvez donc prouver que vous êtes le destinataire de la ou des transactions et vous pouvez donc utiliser ces bitcoins pour créer une nouvelle transaction.

Comme il n’y a pas de notion de compte, pour savoir combien de bitcoins dispose telle personne, le système regarde toutes les transactions non dépensées (Unspent Transaction Ouput ou UTXO) dont la personne est le destinataire. C’est cette somme qui est votre “solde”.

Dernière chose, la plupart des transactions sont débloquées grâce à une clé privée mais Bitcoin permet aussi de spécifier des règles complexes pour accéder à une transaction. Au lieu de conditionner l’accès à la transaction à la personne possédant la clé privée, vous pouvez mettre un script écrit dans un langage qui ressemble à Forth.

Par exemple, pour accéder aux bitcoins d’une transaction, on pourrait demander que deux clés privées soient utilisées pour le déverrouillage au lieu d’une : celle de la comptabilité et du directeur financier. C’est pour cela qu’on dit que Bitcoin est une monnaie programmable.

Frais de transaction.

La sécurité des transactions est assurée par le minage, c’est à dire des machines du réseau qui exécutent des opérations complexes afin de résoudre des problèmes mathématiques qui valideront des blocs de transactions.

Pour motiver les gens (enfin leurs machines) à miner, chaque transaction peut inclure des frais à destination des mineurs qui les récolteront si ils réussissent à créer un bloc valide. En plus de financer le système, ceci permet aussi d’éviter que des personnes “spamment” le réseau Bitcoin car chaque transaction a ainsi un coût. Ces frais sont variables et c’est généralement votre logiciel qui va le calculer en fonction du “marché”, c’est à dire en fonction de la capacité du réseau et du volume de transaction. Bien sûr, les mineurs traitent en priorité les transactions incluant le plus de frais, mais vous pouvez aussi ne pas mettre de frais.

Note : à l’heure actuelle, le montant minimum de frais de transactions est de 0.0001 bitcoin.


En détail : Mining et consensus.

Le minage (mining) est le processus par lequel des nouveaux bitcoins sont créés mais c’est aussi le processus qui sécurise le système et empêche la création de fausses transactions ou qu’un même bitcoin soit dépensé deux fois. L’idée ici étant de récompenser les mineurs qui sécurisent le système en leur octroyant de la monnaie (en plus des frais inclus dans chaque transaction).

Note : le nombre total de bitcoins que l’on peut créer est limité. Il ne pourra y en avoir que 21 millions et cette limite sera atteinte en 2140. À ce moment, les mineurs seront motivés à continuer leur travail grâce aux frais de transactions. Ceci en fait une monnaie déflationniste dans le sens où un bitcoin devrait avoir plus de pouvoir d’achat dans le temps car de plus en plus de richesses seront créées sans qu’il n’y ait de nouveaux bitcoins en contrepartie.

Concrètement le métier des mineurs est de valider les nouvelles transactions et de les ajouter dans le blockchain. Toutes les 10 minutes, toutes les transactions qui ont été créées depuis l’ajout du dernier bloc de transactions, sont regroupées dans un nouveau bloc qui doit être “validé” par les mineurs. Cette validation consiste en une compétition entre tous les mineurs afin qu’ils résolvent un problème mathématique basé sur le contenu du nouveau bloc à valider (appelé bloc candidat). La solution de ce problème appelé “preuve de travail” est ajouté dans le bloc afin de prouver qu’il y a eu un effort conséquent réalisé sur celui-ci.

Cet aspect est fondamental car c’est ce qui permet à Bitcoin de se passer d’une autorité centrale et afin de bien le comprendre, nous allons détailler son fonctionnement.

La problématique clé à traiter est la suivante : comment mettre d’accord un réseau d’inconnus sur une vérité universelle en sachant que, dans un réseau d’inconnus, on ne peut faire confiance à personne. Pour ce faire, le créateur de Bitcoin, Satoshi Nakamoto, a imaginé un mécanisme décentralisé appelé “consensus émergent”.

Comme nous l’avons vu, si vous voulez transférer des bitcoins à une adresse, vous devez créer une transaction et l’envoyer au premier nœud du réseau que vous trouvez qui se chargera de la propager à l’ensemble du réseau.

Certains des nœuds du réseau bitcoin sont spécialisés dans le minage. Ils attendent la création de nouveaux blocs et, à ce moment là, ils commencent la compétition afin de rempoter les nouveaux bitcoins qui seront créés par la personne qui résoudra le plus vite le problème posé par le nouveau bloc.

Concrètement, à chaque nouvelle transaction reçue, un nœud va l’ajouter à son stock de transactions où elles attendent d’être ajoutées dans un nouveau bloc, le bloc candidat. Lorsqu’un bloc est validé par un nœud, le réseau bitcoin va prévenir tout le monde afin de lancer une nouvelle compétition pour créer un nouveau bloc avec les transactions qui ont été stockées depuis les 10 dernières minutes.

En effet, après avoir vérifié que toutes les transactions qui sont dans le stock ne sont pas déjà incluses dans le bloc calculé précédemment (si il y en a, il les enlève tout simplement), le nœud va créer un nouveau bloc avec les transactions se trouvant dans son stock. Puis il va essayer de le rendre valide et donc acceptable pour les autres membres du réseau et donc “ajoutable” au blockchain. Pour cela, il va essayer de fournir la preuve de travail en essayant de résoudre un calcul mathématique qui implique de tester énormément de possibilités.

Concrètement, le nœud va créer un bloc lui même, en local, avec dans l’entête les champs suivants :

  • Version : Numéro de version du logiciel/protocole.
  • Hash du bloc validé précédent : “empreinte digitale” du bloc parent.
  • Merkle Root.
  • Timestap : Date approximative de la création du bloc.
  • Difficulty target : Niveau de difficulté (et oui, la difficulté du problème varie “en fonction” de la puissance totale du réseau afin que, peu importe le nombre de machines qui font du minage, il faille toujours à peu près 10 minutes pour valider un bloc).
  • Nonce : C’est ce paramètre que les mineurs vont faire évoluer (par exemple en l’incrémentant) afin de trouver la bonne valeur de nonce qui permet de créer un bloc valide.

Je vais un petit peu simplifier les choses mais la règle du jeu va être la suivante : le vainqueur, qui gagnera 25 bt plus les frais de transactions, sera celui qui trouve la première valeur de nonce qui fait que l’entête du nouveau bloc, hachée via SHA-256, va commencer par cinq “0”.

Note : en fait, ce n’est pas vraiment une histoire de nombre de zéros mais plutôt un nombre le plus petit possible à trouver et qui commence donc par beaucoup de zéros mais cela ne change pas la compréhension du système.

Donc notre nœud de minage va mettre la valeur “1” dans le champs “nonce”, puis va concaténer tous les champs de l’entête et calculer la valeur sha256 de l’ensemble de cette chaîne. Si le résultat ne commence pas par cinq “0”, il va mettre la valeur “2” dans le champ “Nonce”, concaténer tous les champs, calculer la valeur sha-256 et vérifier si le résultat commence par cinq “0” et ainsi de suite jusqu’à ce que quelqu’un dans le réseau bitcoin y arrive. Pas la peine de rêver, il n’y a aucune autre façon de faire que d’essayer des milliards de combinaisons au hasard.

C’est donc une compétition mondiale entre des milliers de machines qui effectuent des calculs “complexes” afin de trouver une valeur particulière à partir des données du nouveau bloc à valider.

Lorsqu’un nœud a trouvé un la valeur de nonce qui convient pour en faire un bloc valide, il transmet le bloc aux autres membres du réseau qui vont le vérifier et le transmettre aux autres et ainsi de suite jusqu’à ce que tout le réseau le reçoive et l’ajoute au blockchain. La compétition pour ce bloc étant terminée, l’ensemble des machines repartent de zéro avec un nouveau bloc et ceci, toutes les 10 minutes.

Note : dans le bloc qu’il va générer, le mineur rajoute une transaction spéciale qui va créer les bitcoins (25 aujourd’hui) dans le réseau et il va, bien sûr, se mettre en destinataire de ces bitcoins. Il se transférera aussi les frais des différentes transactions.


Conclusion.

Je ne sais pas si j’ai réussi à vous convaincre avec cet article, mais pour moi, bitcoin semble être une révolution qui pourrait remplacer à la fois la monnaie qui traîne dans votre poche et le système bancaire qui apparaît aujourd’hui archaïque face aux promesses des crypto monnaies.

Bien sûr, il existe théoriquement des faiblesses dans le système, notamment l’attaque du consensus. Cependant, il faudrait une puissance de calcul phénoménale et cette attaque permettrait seulement à quelqu’un de dépenser deux fois le même bitcoin mais pas d’en voler aux autres utilisateurs. Ceci serait donc très limité et certainement peu rentable.

Le système a aussi des limites en terme de performances. Par exemple, le réseau ne peut traiter que 7 transactions à la seconde pour le moment alors que Visa tourne “régulièrement” à 480 transactions par seconde. Cela ne veut pas dire que s’il y a plus de 7 transactions, le système “perd” les transactions, c’est juste qu’une transaction prendra plus de 60 minutes à “devenir” immuable.

Malgré ces problématiques, personne ne remet en cause le principe de fonctionnement et la sûreté du système. Cette partie technique étant fiable, il reste la partie “marché” avec la problématique classique de l’œuf et de la poule. Est-ce que bitcoin atteindra une masse critique qui lui permettra de supplanter les systèmes existants ? Difficile à dire.

Pour finir, il faut voir plus loin, Bitcoin n’est qu’une utilisation particulière des concepts que l’on a vu. En effet, nous avons là un système autonome qui pourrait révolutionner toutes les activités humaines qui avaient précédemment besoin d’organisations centrales de contrôle et d’autorité. Ces organes ne seront peut être plus utiles à l’avenir et l’humanité se portera peut être mieux si l’autorité et le contrôle sont assurés par les mathématiques plutôt que par des institutions sensibles aux erreurs, à la corruption et aux régulations politiques.

Si vous le souhaitez, n’hésitez pas à entrer en contact avec moi sur About.me, Twitter, Facebook ou Linkedin. Et vous pouvez aussi me faire un don à cette adresse : 1Dw3u5Gdv8f5yKFydHbybgcEbub2WXj1AL.


Lexique

  • Address : Une adresse bitcoin ressemble à une adresse email. Si vous la donnez à une personne, celle-ci pourra vous envoyer des bitcoins directement.
  • Bitcoin : Le nom de l’unité monétaire et le réseau qui fait le système de paiement.
  • Block : Un groupe de transaction.
  • Blockchain : La liste de tous les blocks validés. Chacun étant lié au précédent jusqu’au block originel.
  • Fees : Celui qui émet une transaction inclus généralement des frais afin que le système soit rémunéré pour valider la transaction.
  • Miner : Une des machines du réseau qui crée des preuves de travail pour les nouveaux blocs.
  • Proof of work : Il s’agit d’un travail de calcul à réaliser qui demande pas mal de puissance de calcul afin de valider un bloc.
  • Secret key (clé privée) : Il s’agit d’un numéro que vous devez garder secret et qui permet de gérer les bitcoins envoyés à l’adresse publique.
  • Transaction : Il s’agit pour faire simple d’un transfert d’un certain montant de bitcoin d’une adresse à une autre. Celles-ci sont envoyées au réseau bitcoin, travaillées par les miners et inclus dans un bloc qui lui même sera ajouté au blockchain.
  • Wallet : C’est le logiciel qui contient vos adresses bitcoin publique et vos clés publiques / privées.
One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.