3. Bitcoin et notions intermédiaires


Introduction

Ce résumé se concentre sur Bitcoin pour définir et connaître de nouveaux concepts qui me semblent importants pour bien comprendre la suite. On aborde ici des concepts de bases qui sont utiles, pas seulement pour comprendre Bitcoin mais l’ensemble des cryptomonnaies.

Pour l’histoire

Création 2008-2009

La création de Bitcoin s’est faite en plusieurs étapes. La première est la publication d’un article (https://bitcoin.org/bitcoin.pdf) par le créateur de bitcoin Satoshi Nakamoto. C’est le texte fondateur de Bitcoin.

Voici quelques passages intéressants qui permettent de mieux saisir les motivations derrière la création de Bitcoin :

“Même si le système (traditionnel) fonctionne assez bien pour la plupart des transactions, il souffre cependant des faiblesses inhérentes à un modèle basé sur la confiance”.

“…aucun mécanisme n’existe pour faire des transactions sur un canal de communication sans une partie de confiance”

“Dans ce papier, nous proposons une solution […] qui est sécurisée tant que l’ensemble des nœuds honnêtes contrôlent collectivement plus de puissance de calcul que n’importe quel groupe d’attaquant”

On voit bien que l’idée principale dans la création de Bitcoin est de s’affranchir du tier de confiance, acteur dont on ne peut se passer dans la finance dite traditionnelle.

Premiers usages et adoption 2010-2012

2010 : Apparition de la première plateforme d‘échange

2011 : Première fois que le prix du Bitcoin atteint 1 USD

2011-2012 : Apparition des premières copies et alternatives

Bitcoin a, à l’heure où j’écris ce dossier, plus de 15 ans !

Montée en puissance

2013 : Première bullrun, le prix atteint 1’000 USD avant de chuter.

2014-2015 : Premières interventions de régulateurs

Explosion médiatique

2017 : Bitcoin repasse la barre des 1’000 USD puis atteint les 20’000 en décembre.

2018 : Forte correction, chute à 3’000 USD

Halving

On l’a vu, un mineur est récompensé lorsque son bloc est validé. Dans les dossiers précédents, j’avais alors simplifié, mais en réalité sa récompense se compose de deux choses :

  • Les frais de transactions, constitués de toutes les transactions inclues dans le bloc qu’il a miné.
    Pour faire une transaction sur Bitcoin il faut payer des frais. Ils ne sont pas calculés en fonction de la somme qui est inclue dans la transactions mais, principalement, par rapport à l’utilisation de la blockchain en temps réel. Lorsque la blockchain est congestionnée, il se peut alors que les frais soient plus élevés que la somme qui est transférée.
  • Des bitcoins qui sont générés par la blockchain en récompense pour le mineur. On comprend donc bien qu’il y a de plus en plus de bitcoins en circulation.

L’offre en bitcoin est actuellement inflationniste, mais il y a un mais ! Tout les 210’000 blocs, le nombre de bitcoin généré pour récompenser les mineurs est divisé par deux. Ce processus est appelé halving (littéralement “divisé par deux” en français).

Sachant qu’il y a un nouveau bloc toutes les 10 minutes environ, le halving à lieu tous les 4 ans environ :

  • 2012 → premier halving (50 → 25 BTC)
  • 2016 → deuxième (25 → 12,5 BTC)
  • 2020 → troisième (12,5 → 6,25 BTC)
  • 2024 → quatrième (6,25 → 3,125 BTC)

Le protocole continuera ainsi jusqu’à ce que la récompense atteigne 0 vers l’année 2140. L’offre totale est plafonnée à 21 millions de BTC. Il n’y en aura jamais plus. C’est ce mécanisme qui donne sa rareté à Bitcoin.

Les récompenses de bloc seront alors exclusivement composées des frais de transactions, en espérant que le prix du Bitcoin soit assez haut et que la blockchain soit assez utilisée pour couvrir les frais des mineurs.

Fork

Il faut bien comprendre que le code qui fait tourner une blockchain est le même sur tous les ordinateurs qui participent au réseau, sinon cela ne fonctionnerait pas.
Si un grand nombre de participant au réseau voulait utiliser un autre code, différent de celui utilisé actuellement, ils pourraient créer une deuxième version de Bitcoin. C’est ce qu’on appel un fork.

Pour comprendre ce qu’est un fork prenons un exemple historique :

Exemple de fork avec Bitcoin Cash

En août 2017, la communauté Bitcoin s’est divisée à cause d’un désaccord technique sur la taille des blocs et la manière d’augmenter la capacité du réseau.

Contexte

Chaque bloc Bitcoin peut contenir un nombre limité de transactions (1 Mo à l’époque).

Avec la hausse de l’utilisation, les blocs étaient souvent pleins, entraînant :

  • Des frais de transaction élevés
  • Des délais de validation de bloc longs

Deux visions s’opposaient :

  1. Conserver des blocs de 1 Mo.
  2. Augmenter la taille des blocs pour contenir plus de transactions.

Le fork

Le 1ᵉʳ août 2017, le réseau a subi un fork :

  • Ceux qui ont suivi la version originale ont continué sur la blockchain Bitcoin (BTC),
  • Ceux qui ont adopté la version modifiée ont créé Bitcoin Cash (BCH), avec des blocs de 8 Mo d’abord, puis 32 Mo.

On nomme une telle situation fork (fourchette en français) car elle peut être imagée par la forme d’une fourchette et de ses pics qui se séparent.

Il faut bien comprendre que pour participer à la blockchain Bitcoin il faut avoir le même code que tout ceux qui y participent. Mais ce code n’est pas figé. Si l’ensemble des participants au réseau voit une amélioration du code qui est bénéfique à bitcoin, ils peuvent décider de tous accepter d’utiliser le nouveau code contenant la modification.

Aussi, au final, ce sont les utilisateurs qui définissent lequel est le « vrai » Bitcoin. Prenons un petit exemple extrême. Je peux moi même faire un fork de Bitcoin que je ferais tourner sur mon natel. Si l’ensemble des utilisateurs venaient à utiliser ma blockchain, on pourrait considérer que le « vrai » Bitcoin est celui qui tourne sur mon natel.

Dernière chose concernant les forks. Lors du fork entre bitcoin et bitcoin cash, la blockchain s’est séparée en deux. J’entends par là que la blockchain de bitcoin cash a, lors du bloc 477’120 de bitcoin, continué la blockchain avec de nouvelles règles (un nouveau consensus). De l’autre côté, la blockchain de bitcoin a continué sans conséquences.

Les 477’120 premier blocs sont donc identiques pour les deux blockchains. Bitcoin cash est en fait une blockchain dérivée de bitcoin.
En conséquence, si mon wallet X contenait 30 BTC, je peux retrouver exactement le même sur bitcoin cash.

Ça ne veut cependant pas dire que je suis deux fois plus riche puisque le marché n’a pas donné la même valeur au deux cryptomonnaies. Après le fork, les deux cryptomonnaies vivent à part entière sur les marchés et n’ont pas la même valeur.

Proof of Work

Bitcoin utilise comme mécanisme de consensus le Proof of Work (PoW). Ce qu’on appel mécanisme de consensus est la méthode qu’utilise une blockchain pour faire en sorte que tous les participants soient d’accord sur l’état du registre (livre de compte). Le mécanisme de consensus est la façon dont une blockchain décide qui a raison, sans chef, sans banques, sans confiance au préalable.

Comme on l’a vu, un mineur sur Bitcoin doit être le premier à résoudre un problème mathématique complexe pour proposer son bloc. Ce calcul est gourmand en ressources, en énergie, en puissance de calcul. Pour être le premier à trouver la solution au calcul il faut fournir un travail important. Autrement dit, le prochain bloc validé et celui de quelqu’un qui a fourni un effort conséquent et dépensé de l’énergie.

C’est pourquoi ce mécanisme de consensus est appelé preuve par le travail. En quelque sorte, un mineur prouve sa bonne fois car il a fourni un travail conséquent pour être le premier à résoudre le problème mathématique complexe.

Défi de calcul cryptographique

Jusque là, je suis resté vague sur ce fameux “problème mathématique complexe” à résoudre en premier. Dans le cadre de Bitcoin il a une influence directe sur plusieurs choses :

  • Le temps que met un mineur à trouver la solution influence directement le temps entre deux blocs.
  • Plus il y a de mineur, plus il y a de puissance de calcul allouée à la création et validation des nouveaux blocs. C’est pourquoi plus il y a de mineur, plus la blockchain est sécurisée. Mais comment faire pour garder un temps entre deux blocs d’environ 10 minutes ?
  • Il faut un problème assez complexe pour être certain que le mineur qui propose un bloc aie réellement fourni beaucoup de travail.

Ce fameux “problème mathématique complexe” est utilise une fonction de hashage. C’est parti Dora, apprenons ensemble ce que c’est.

Hash

Un hash est le résultat d’une fonction cryptographique. Cette fonction fonctionne ainsi :

On peut mettre n’importe quelle type de donnée en entrée, de n’importe quelle longueur et de n’importe quel type (chiffres, lettres, caractères spéciaux, …). Dans le cadre de la fonction cryptographique utilisé pour Bitcoin, on obtiendra en sortie toujours une chaîne de caractère de longueur de 256 bits.

Comme pour la dérivation d’une clé publique depuis une clé privée, l’opération est très facile à faire dans un sens mais impossible dans l’autre. C’est ce qui fait une des forces d’une telle fonction.

La deuxième composante majeur d’une fonction pareille est que le résultat obtenu est totalement imprévisible. Bitcoin utilise la fonction cryptographique nommée SHA-256.

Comparons quelques exemples pour comprendre :

EntréeSortie
Mot0770f7e43596a233ad5c2ab06a8e24b4d932426956a754bbcae04d16b66d2ac8
mot01459f1a01f08e6e86474d76f4240d2089cfe4f1bd30be9eb8f88247d7b54015
Une phrase un peu plus longuec37c103061eaa8701c2fb17804b921afdf6b6d0cabd99f816d5704bfbebb25e9

Modifier simplement une lettre et le résultat et totalement différent, il est donc impossible de prédire le résultat.

Peu importe la longueur de l’entrée, il y a toujours le même nombre de charactères en sortie.

Si vous voulez vous amuser et regarder ce que donne votre plus grand secret une fois haché en SHA-256 : SHA256 – Online Tools

But d’un mineur

Le mineur prend les éléments suivants :

  • Le hash du bloc précédent (pour relier les blocs entre eux)
  • La liste des transactions
  • Un horodatage
  • Une nonce (qu’il va modifier à chaque essai)

Tous ces éléments sont combinés et hachés avec la fonction cryptographique SHA-256.

Le but du mineur est de trouver une nonce de sorte à ce que le résultat du hachage soit dans une cible donnée par la blockchain.
Autrement dit : la blockchain donne par exemple, comme cible, que les 6 premiers caractères du résultat du hachage soit 0.

Cette cible est adaptée en fonction de la durée moyenne que mettent les mineurs à trouver un résultat. Car si la cible est trop facile, les blocs seront créés plus rapidement que toutes les 10 minutes, et inversement.

Sachant que le résultat du hachage est imprévisible, le seul moyen pour un mineur de trouver une nonce qui donne un résultat conforme à la cible est de faire des tonnes d’essais. Un mineur a donc besoin d’une grosse puissance de calcul, d’énergie pas chère et un peu de chance. Grâce à ça il peut tester comme une brute le plus de nonce possible pour être le premier à en trouver une qui correspond à la cible.

Le processus de minage correspond donc à ça :

  • Le mineur crée un bloc avec les transactions récentes.
  • Il modifie la nonce et calcule le hash.
  • Si le hash ne commence pas par assez de zéros → échec.
  • Il recommence jusqu’à trouver un hash valide.
  • Quand il y parvient, il diffuse le bloc au réseau.
  • Les autres nœuds vérifient le calcul et ajoutent le bloc à la blockchain.

La nonce est primordiale pour un mineur. C’est le paramètre qu’il modifie à chaque essai dans le but d’avoir un résultat de hashage dans la cible.

Conclusion

Dans ce résumé un peu plus technique on a vu plusieurs notions importantes pour la compréhension de Bitcoin. Comme toujours, il est possible de pousser la compréhension beaucoup plus loin et d’aller fouiller des processus techniques avancé, comprendre des codes, explorer la blockchain en temps réel, …

Les notions de halving, fork, PoW et hashage sont vraiment importantes à comprendre et font partie du vocabulaire de base de la blockchain.

On comprend désormais aussi, à mon avis, les grandes lignes du fonctionnement de Bitcoin. Discutez une fois de Bitcoin avec quelqu’un qui n’en a entendu parlé qu’à la télévision et vous verrez à quel point les préjugés à son sujets sont grands.

Vous êtes resté jusque là ? Vous êtes un boss.
Vous en voulez plus et devenir un big boss ? Essayez de comprendre ce qu’est le « hashrate » et mettez votre plus beau commentaire sous l’article en expliquant le concept succinctement.


Être informé des dernières publications par mail

Email

The form has been submitted successfully!
There has been some error while submitting the form. Please verify all form fields again.

Commentaires

S’abonner
Notification pour
guest
0 Commentaires
Le plus ancien
Le plus récent
Commentaires en ligne
Afficher tous les commentaires