L’histoire des cryptomonnaies (partie 2)
L’histoire des cryptomonnaies (partie 1)
Partie II
Le BitGold
Le B-money à ouvert la porte au concept de cryptomonnaie. Quelques années plus tard, en 2005, Nick Szabo publie le concept de BitGold. Tandis que le B-money est un concept général de cryptomonnaie qui ne rentre pas dans le détail et qui se contente des grandes lignes, le BitGold détaille un peu plus le fonctionnement technique. Contrairement au B-money qui voulait se passer du gouvernement, l’objectif du BitGold est de pouvoir se passer d’une entité tierce à qui l’on fait confiance pour gérer l’argent et sa valeur (gouvernement ou banque). Ainsi il veut éviter l’hyperinflation qui a pu avoir lieu avec des monnaies standards.
Un exemple de valeur d’échange qui ne dépends pas de tiers est les métaux précieux. Ceux-ci ont une valeur du fait de leur rareté et du coût d’extraction de ceux-ci mais il est trop coûteux de faire des analyses pour des transactions courantes. De ce fait bien que les métaux ne dépendent pas d’un tiers, un tiers de confiance entre en jeu afin de garantir la qualité d’un métaux. De plus il n’est pas facile de transporter ces métaux précieux et on ne peut payer sur internet avec.
Le but du BitGold est d’avoir un protocole où l’on pourrait créer des bits (un bit est un 0 ou un 1 sur un ordinateur, il faut prendre ça comme une pièce dans ce contexte) en ligne de manière très coûteuse (tout comme l’extraction des métaux précieux) avec très peu de dépendance à de tièrces parties. Le stockage et le transfère doivent aussi être facile. Le nom de BitGold vient de la compression du mot Bit (le bit informatique) et Gold (or en français).
Le fonctionnement
L’idée est de partir d’une chaine de bit, d’y appliquer une fonction (suite d’opérations pour transformer cette chaine) pour arriver à une autre chaine de bit constituant la preuve de travail. Les fonctions de hachage sont des fonctions qui prennent une chaine de caractère en entrée pour en sortir une autre. Si on prend une chaine et qu’on la prend en entrée, on aura toujours le même résultat en sortie. Une des particularités de ces fonctions est qu’elles ne sont pas reversibles : le seul moyen de trouver le texte d’origine est de tester toutes les possibilités jusqu’à constater que le résultat est le même une fois haché. Voici quelques exemples avec une fonction md5 :
coucou -> 721a9b52bfceacc503c056e3b9b93cfa
la blockchain c’est cool -> 3a90a467d43e64ce8a8399f796d8194d
Quelle que soit la longueur en entrée la longueur en sortie sera toujours de taille fixe. Si on modifie un caractère le résultat en sortie, appelé hash, ne sera plus le même. Ces fonctions sont des fonctions à un sens, on ne peut pas revenir en arrière : à partir d’un hash le seul moyen de retrouver la chaine en entrée est de tester toutes les possibilités et de la hacher jusqu’a retomber sur le même hash.
Les étapes pour la création de BitGold sont donc les suivantes :
- Une chaine de départ est créée
- Alice calcule sur son ordinateur la chaîne de Proof of Work. Il s’agit de la chaine de caractère qui une fois passée dans une fonction à un sens unique (une fois haché) avec la chaine de départ donne un résultat définit, par exemple une chaine qui commence par 2 zéros. Ce calcul est très coûteux car il faut tester beaucoup de possibilités jusqu’à tomber sur une chaîne de Proof of Work qui donne le résultat attendu (voir schéma).
- La chaîne de Proof of Work est horodatée de manière sécurisée par un serveur
- Alice ajoute la chaine de Proof of Work horodatée dans le registre (le fonctionnement du registre est détaillé ici)
- La chaine de départ correspond alors à la dernière chaîne ajoutée au BitGold (chaine de Proof of Work horodatée)
- Pour vérifier qu’Alice possède un BitGold en particulier, Bob doit regarder dans la chaine de titre contenue dans le registre de titre
Le contrôle d’Alice sur son BitGold dépend donc de sa dominance sur la chaine de titre dans le registre (dans le registre on peut voir qui possède le BitGold).
Afin de réguler la création de monnaie il convient de trouver une fonction ainsi qu’un résultat demandé qui soit assez difficile : plus c’est dur plus il faudra de temps pour créer de la monnaie. Il faut donc définir une difficulté mathématique. Cette difficulté peut être vérifiée dans le registre car les chaines sont horodatés (on peut regarder le nombre de pièces créées par jour par exemple). Ainsi si l’on créer une grosse quantité rapidement la valeur descend d’où l’interêt de la difficulté. Il est interessant de constater que l’auteur indique que les mineurs pourraient se rémunérer en revendant les pièces forgées sur les marchés et pourrait déployer des machines optimisés pour ces calculs, chose qui se fait actuellement avec les machines ASICS que l’on trouver pour miner le Bitcoin.
Le processus décrit ci-dessus est une première version de la blockhain (concept qui sera détaillé dans la prochaine partie) ainsi qu’une première version du système de minage. Le concept de Proof of Work est née.
L’auteur conclue en indiquant que ce protocole permet de résoudre des problèmes des monnaies fiduciaires telles que la contrefaçon. Cependant il reste le problème des fonds de départ qui sont cachés : si un créateur met en circulation 6000 BitGold mais qu’il en a gardé caché à la création 20 000 cela pose un problème qui devra être résolu par les futurs créateurs de ces monnaies.
Sources :
- Bit Gold, Nick Szabo (2005) – https://nakamotoinstitute.org/bit-gold/
- Secure Property Title with ower authority, Nick Szabo (1998à – https://nakamotoinstitute.org/secure-property-titles/
L’histoire des cryptomonnaies (partie 2) Read More »