Cryptomonnaies – Au commencement, le Bitcoin

Créé le: 2022/04/28 ; Révisé le: 2022/04/28
Thumbnail

La première cryptomonnaie à venir au monde est le Bitcoin en 2009. En plus d’amener une nouvelle devise qui est entièrement virtuelle, elle a mis en place les fondations d’une nouvelle technologie qu’est la Blockchain décentralisée et une manière de l’utiliser de façon sécuritaire avec la preuve de travail (mining). Malgré les belles promesses initiales qu’elle n’a pas réussi à tenir, elle a ouvert le chemin à des centaines d’autres cryptomonnaies qui tentent de régler les problèmes que le Bitcoin ne veut pas régler.

Peut-être qu’un jour, nous verrons une cryptomonnaie utilisable pour les achats courant, mais pour le moment faison un état des lieux en décortiquant tous les concepts.

Ce que le Bitcoin est censé être

  1. Une monnaie qui n’appartient à personne (elle n’appartient pas à un gouvernement ou une banque).
  2. Utilise un réseau décentralisé, anonyme et qui n’appartient à personne (les transactions sont publiques et ne sont pas gérées par une entité spécifique)
  3. Une monnaie utilisable pour faire des petites ou de grosses transactions avec des frais minimes.
  4. Paiement rapide

Fonctionnement

La Blockchain décentralisée est au centre de cette innovation technologique. C’est tout simplement une liste de blocs qui sont liés un après l’autre. Il y a donc le bloc 1 de départ, suivi du bloc 2 qui pointe sur le bloc 1, ensuite le bloc 3 qui pointe sur le bloc 2, etc. C’est une structure de base qui n’a rien d’impressionnant en soi, mais ce qui la rend spéciale est qu’elle est décentralisée. Cela veut dire que n’importe qui peut écrire des blocs dessus. Par contre, tous ne peuvent pas le faire en même temps sinon plusieurs vont pointer au même bloc précédent et cela ne ferait pas une belle chaine linéaire. Il y a donc des règles à suivre pour avoir le droit de prendre le crayon et écrire le prochain bloc.

Dans un monde idéal, s’il y a 10 machines qui veulent écrire, on choisi un ordre et on passe le drapeau au suivant. C’est d’ailleurs ce qu’une entreprise fait avec des systèmes qui sont entièrement contrôlés par elle-même puisqu’elle fait confiance en son système. Le problème ici est que c’est décentralisé et donc qu’on ne peut pas faire confiance à tous. On veut donc pouvoir « passer le crayon » de manière artificielle et juste. Cela est accompli avec la preuve de travail (mining). La façon que ça fonctionne c’est que le bloc doit contenir:

  1. L’adresse du bloc précédent (pour confirmer que c’est bien des transactions à la suite de ce bloc),
  2. les transactions à faire dans ce nouveau bloc en devenir
  3. et finalement un champ au contenu aléatoire.

Section 3: le travail se fait dans cette dernière partie. La preuve de travail est que le contenu du bloc, lorsque passé à la fonction de hachage SHA-256 doit avoir un certain nombre de bits à 0. (Pour en apprendre plus sur le hachage, allez voir mon livre électronique ) Étant donné le le SHA-256 est une fonction sécure, cela veut dire qu’il n’est pas possible de trouver quel contenu mettre pour obtenir une valeur précise. La seule chose à faire est de changer le dernier champ pour essayer des valeurs jusqu’à temps qu’on obtienne un résultat avec le nombre de bits à 0 désiré. Comme cela implique énormément d’essais, c’est du travail et c’est pourquoi ça s’appele une preuve de travail. Si une machine obtient le bon résultat, alors elle peut envoyer son bloc à toutes les autres machines et ces dernières pourront rapidement valider puisqu’elles n’ont qu’un essait à faire.

Le nombre de bits à 0 change au fil du temps parce que Bitcoin désire qu’il y ait toujours environ 1 transaction par 10 minutes. Cela veut dire que s’il y a peu de machines en compétitions, il y a moins d’essais qui sont effectués au total alors le nombre de bits à 0 demandé sera plus petit. À l’inverse, lorsqu’il y a énormément de joueurs qui peuvent faire énorméments d’essais, il faut que ce soit plus difficile pour être plus long et donc, le nombre de bits à 0 demandé sera plus grand.

Section 2: les transactions dans le bloc. Une transaction est composé entre autre de l’adresse du compte qui envoi les fonds, du montant, de l’adresse du compte qui reçoi les fonds ainsi que d’une signature cryptographique de l’expéditeur pour prouver que c’est bien lui qui envoi l’argent. Cette transaction est diffusée à un maximum de mineurs pour qu’ils l’ajoutent dans le prochain bloc. Une autre limite importante est qu’un bloc ne peut pas être plus gros qu’un mégaoctect. Cela veut donc dire qu’il y a une limite au nombre de transactions qui peuvent être dans un bloc. C’est environ 2760 transactions par bloc et environ 1 bloc par 10 minutes (maximum 4.6 transactions par seconde). Étant donné cette limite, s’il y a trop de transactions, les mineurs vont prioriser celles qui leur donne le plus de (gaz/frais/pourboire).

Finalement, les mineurs sont récompensés de deux façons. La première est que chaque bloc créé donne une quantité de Bitcoin. Cette quantité va en descendant pour atteindre 0 éventuellement et ainsi limité le nombre maximal final de Bitcoins à 21 millions. La seconde façon est celle déjà discutée: les frais de transactions offerts par l’expéditeur des fonds.

Problèmes vis-à-vis ses buts

  • Contrairement au but #3, ce n’est pas utilisable pour faire des petites transactions.
    1. La valeur est trop volatile alors on doit rapidement convertir en Bitcoin, faire la transaction et reconvertir en argent. Chaque conversion de ou en argent coûte cher (6.7% à 12.5% selon mes mesures). Voici la valeur en $US à quelques dates:
    1. Les frais par transactions sont souvent trop hauts. Voici quelques points de comparaisons avec le montant de la transaction pour atteindre les mêmes frais qu’une carte de crédit (3%)
  • Contrairement au but #4, ce n’est pas rapide:
    1. Faire la demande d’ajouter une transaction (pratiquement instantané)
    2. Avoir la transaction ajoutée sur la Blockchain (environ 10-20 minutes)
    3. Avoir 6 confirmations (6 blocs supplémentaires) (environ 60 minutes)
    4. Total: avant d’être certain qu’une transaction est faite, il faut une heure à une heure et demie.

Problèmes supplémentaires dus au fonctionnement

  • Peut être mauvais pour l’environnement
    • La preuve de travail (mining) utilise beaucoup d’énergie électrique pour du travail qui n’est pas vraiment utile puisque seulement le dernier résultat avec le bon nombre de bits à 0 est conservé. Si l’électricité utilisée provient de sources non renouvelables, c’est potentiellement du gaspillage.
    • Pourquoi « peut-être mauvais » et « potentiellement du gaspillage »? Parce qu’en hiver, le chauffage en soi consiste à utiliser de l’électricité et la transformer en chaleur. C’est pourquoi on pourrait simplement miner des Bitcoins durant l’hiver et la chaleur dégagée par le travail de l’ordinateur peut servir de chauffage et n’est donc pas perdu. Il y a d’ailleurs des appareils spécialisés pour cela (cherchez sur Google). À l’inverse l’été, les grands centres de minage de Bitcoins doivent dépenser de l’électricité pour miner ainsi que pour refroidir la pièce qui contient les serveurs.
  • Ne monte pas en charge
    • Avec les règles de 1 bloc par 10 mins et une taille maximale de 1MB le bloc, cela donne un maximum de 4.6 transactions par seconde. En comparaison, en 2010, Visa s’occupait de 24000 transactions par seconde.
    • En plus, la Blockchain ne fait que grandir et elle doit être répliquée sur chaque ordinateur. En date du 2022-04-28, elle prend 431GB sur mon disque dur.
  • Pas de protection pour un remboursement (le destinataire doit faire une transaction pour retourner l’argent même en cas d’erreur)

Les améliorations possibles

Étant donné que cette technologie existe depuis déjà plus d’une dizaine d’années, plusieurs personnes ont pensé à des solutions à tous ces problèmes, mais les développeurs de Bitcoin ne veulent rien changer aux règles et à l’architecture. Le Bitcoin est donc voué à rester avec toutes ces lacunes. Par contre, il y a plusieurs autres cryptomonnaies qui travaillent sur ces solutions. Voici quelques exemples:

  • Pour le gaspillage d’énergie: l’Ethereum utilise aussi la Blockchain avec la preuve de travail, mais les concepteurs devraient changer à une preuve d’enjeu à la place. Cette dernière choisie qui peut insérer des blocs en fonction de combien de monnaie il possède au lieu de faire du travail inutile. Cela assume qu’une personne qui a beaucoup de monnaie a beaucoup à perdre si le réseau ne fonctionne pas bien, alors elle va jouer franc jeu.
  • Pour la volatilité: certaines cryptomonnaies sont nommées « stables » et elles valent la même valeur que l’argent qui est en arrière. Par exemple, je pourrais vous dire: « voici ma FoilenCoin. 1FC vaut 1$US. Si tu me donnes 10$US, je te donne 10FC et si tu reviens dans le futur et me redonnes des FC, je te redonne le même montant en $US ». Ainsi, la valeur ne peut pas fluctuer par rapport au $US puisqu’en tout temps, les gens peuvent ravoir l’argent.
  • Pour la quantité de transactions:
    • l’Ethereum devrait permettre la fragmentation de la Blockchain en 2023. Au lieu d’avoir une seule grande chaîne sur laquelle les transactions s’ajoutent, elles s’ajouteront en parallèle sur plusieurs petites chaînes.
    • IOTA: utilise une autre sorte de chaîne. Au lieu d’être linéaire avec un bloc lié directement au précédent, c’est une chaîne de graphe acyclique. C’est très intéressant et devrait faire partie d’un autre article.