Comprendre le système bitcoin : la crypto-monnaie décryptée
Depuis la crise des subprimes en 2009, qui a mis à mal la confiance des usagers dans les monnaies classiques, un certain nombre de nouvelles initiatives sont nées. Parmi elles, l’invention et le développement des crypto-monnaies. D’abord marginales et élitistes, elles se sont peu à peu imposées comme de nouvelles variables sur les marchés financiers mondiaux. Non régies par des autorités nationales ou internationales, elles sont également sources de questionnements voire d’inquiétudes pour les investisseurs. En virtualisant la monnaie (plus d’émission de pièces ou de billets), elles ont révolutionné le monde des transactions monétaires. Impossible aujourd’hui de passer à côté du bitcoin pour ne parler que de la plus célèbre.
1 – Historique des crypto-monnaies
Les crypto-monnaies ont débuté en 2009 avec l’apparition du système bitcoin.
D’autres (Ethereum, etc.) ont suivi, basées sur des principes voisins, avec des succès variables, et une importance financière bien moindre. Fin 2017 la valorisation des 14 millions de bitcoins (BTC) émis représente 163,31 milliards d’euros (cours de fin 2017, 1 BTC = 11 665€). On s’intéresse ci-dessous principalement à bitcoin.
Cours au 19/03/2018 : 1 BTC = 6 011,79€
(* ref: https://courscryptomonnaies.com/bitcoin)
2 – Monnaie indépendante – Pas d’autorité de contrôle
Afin de garantir la confiance, les monnaies classiques sont régies par une autorité qui fixe les règles, en surveille l’application, et émet la monnaie. Les crypto-monnaies s’affranchissent du besoin d’en avoir une. Pour bitcoin, la confiance est « basée sur un consensus » autour des règles de fonctionnement fixées par la « bitcoin Foundation », une association basée aux Etats-Unis dont la mission est de « standardiser, protéger et promouvoir l’utilisation de la crypto-monnaie bitcoin pour le bénéfice de tous les utilisateurs dans le monde. »
2.1 – Implications et conséquences
Cette absence d’autorité a des implications fortes :
2.2 – Techniques de vérification
2.2.1 – Le Hashing (« empreinte digitale » en Français), avec le standard ISO SHA1
Notons qu’ici le bénéficiaire d’un paiement est identifié simplement par sa clé publique. Pour profiter de ce paiement, donc payer, il doit prouver qu’il est bien en possession de la clé secrète correspondante. L’acte de paiement est donc sécurisé par la signature du payeur sur des données telles que la clé publique du payé, le montant, etc. De plus, de façon à renforcer l’anonymat, une nouvelle bi-clé peut être générée par le payé avant chaque paiement qu’il reçoit. Donc rien à voir avec les techniques usuelles où un utilisateur a pour une ou plusieurs application(s) donnée(s) une seule bi-clé, avec certificats X509 et autorités de certification, etc. Notons que bitcoin offre ainsi un bon niveau d’anonymat, quoique imparfait, du fait des possibilités de traçage.
2.2.3 – Le P2P
Pour diffuser un message à tous les utilisateurs d’un réseau, bitcoin utilise le « bouche à oreille viral » au lieu d’un système d’annuaire, qui nécessiterait une autorité, ce qui est exclu par les principes des crypto-monnaies !
Remarques : Rappelons qu’en sécurité informatique, ce concept de signature date d’au moins 40 ans, notamment avec l’invention de l’algorithme RSA, utilisé universellement. Ce concept suit un peu le principe des signatures manuscrites avec une capacité de contrefaçon difficile et une vérification aisée.
En informatique, on parle de bi-clé de signature :
3 – La blockchain
3.1 – Grands principes de la blockchain
Dans la blockchain apparaissent donc des transactions (en jaune sur le schéma ci-dessous). Chaque transaction affecte des gains à des dépenses et peut comporter plus de deux utilisateurs. La figure ci-dessous présente un extrait de la blockchain avec des blocs (en bleu sur le schéma) i, j, k.. etc., i
3.2 – Ecriture dans la blockchain
Pour ce qui est de l’écriture dans ce fichier, les points critiques sont les suivants :
- Comment valider les nouvelles transactions (et empêcher les doubles dépenses : par exemple empêcher A d’utiliser deux fois le gain provenant de Y de 3 unités) ?
- Comment garantir l’intégrité de ce qui a déjà été validé ? (Y pourrait par exemple effacer YA3 pour faire « oublier » sa dépense)
- Comment répartir les rôles de façon à ce que n’apparaisse pas une autorité de fait, se chargeant de toutes les vérifications ?
- Comment enfin, dans l’hypothèse où la majorité des participants sont honnêtes, parvenir au résultat que le système est sûr et donc que toute malversation est détectée et inopérante ?
Les réponses à ces questions se trouvent dans le processus de contrôle du nouveau bloc prolongeant la blockchain, et de « minage » permettant de constituer un « proof of work » , sorte de sceau démontrant que le bloc a été dûment vérifié et joint à la blockchain, et garantissant son intégrité.
3.3 – Processus de vérification
Les processus de vérification du nouveau bloc (notamment des transactions qu’il contient : cf. question 1) et de scellement suivent donc les règles précises spécifiées par bitcoin. Ils sont réalisables par tous les nœuds du réseau, mais nécessitent une grande puissance de calcul.
3.3.1 – Rémunération et émission
Le premier nœud qui termine le processus ajoute un nouveau bloc à la chaîne et est rémunéré. Actuellement cette rémunération est de 12,5 BTC, et ce procédé constitue le mécanisme d’émission de monnaie BTC. Chaque bloc contient donc une transaction initiale affectant un montant (actuellement 12,5 BTC) à la clé publique du nœud gagnant. Pour des raisons de concurrence possible entre deux chaînes, explicitées ci-dessous, cette transaction initiale n’est utilisable que 100 blocs plus loin.
3.3.2 – Puissance de calcul
Le nombre de BTC créés est divisé par deux tous les quatre ans, ce qui aboutit à un nombre total de BTC émis d’environ 21 millions (série géométrique de raison ½). Toutes les dix minutes, un nouveau bloc est ajouté. Si on fait l’hypothèse qu’il y a plus de puissance de calcul honnête que malhonnête (cf. question 4), le problème d’apparition de versions concurrentes de la blockchain ne peut apparaître de façon durable.
3.3.3 – Principe de la plus longue chaîne
En effet, il est hautement improbable que deux chaînes avancent parallèlement : l’une dépasserait forcément l’autre à un moment donné, du fait de l’imprévisibilité du temps de calcul du sceau, et >deviendrait gagnante car la chaîne la plus longue construite par les nœuds honnêtes est toujours celle qui est intéressante pour les nœuds honnêtes, en termes financiers : elle leur donne une meilleure espérance de rémunération pour les blocs à venir !
3.3.4 – Malversation rendue inopérante
Si une malversation apparaît dans l’une des chaînes, par exemple une double dépense, du fait d’une vérification insuffisante d’un bloc, la version honnête de la chaîne l’emporterait car les nœuds honnêtes la font progresser plus vite puisqu’ils ont plus de puissance de calcul. Enfin, modifier un bloc ancien dans la chaîne (pour enlever par exemple une transaction) impose de recalculer tous les sceaux à partir du bloc modifié, ce qui handicape les mineurs malhonnêtes qui, par hypothèse, mobilisent moins de la moitié de la puissance de calcul, et ne peuvent donc créer la chaîne la plus longue.
3.3.5 – Sceau et minage
Ce seau est en fait simplement le hash d’un ensemble de données : hash du bloc précédent, hash du bloc courant et « nonce ». Ce nonce est un nombre choisi de façon à ce que le sceau ait n bits de poids fort à zéro. Les propriétés de la fonction de hashing font que ces n bits ont un caractère aléatoire, et la probabilité de tomber sur n zéros et donc 1/2n. En d’autres termes, la recherche du nonce nécessite de l’ordre de 2n calculs. Actuellement n vaut 70, et rappelons que 270 ~ 1021 donc mille milliards de milliards de calculs à faire ! On voit que le terme « minage » convient bien à ce processus hautement répétitif ! Le nombre de bits de ce nonce est d’ailleurs adapté automatiquement tous les 100 blocs de façon à maintenir le rythme d’un nouveau bloc toutes les 10 minutes.
Ces processus répondent à la question 2 (intégrité des blocs par le calcul du hash) et 3 (répartition des rôles : imprévisibilité du temps de calcul du sceau) et garantissent un système sûr (principe de la plus longue chaîne). Enfin notons que « respect des règles » veut dire ici simplement que les logiciels suivent les règles de constitution et de vérification des blocs, et que sinon, du fait de ce qui est indiqué plus haut, leurs actions sont rendues inopérantes.
4 – Le phénomène bitcoin
4.1 – Quelques chiffres
10 millions d’utilisateurs, c’est-à-dire de personnes ayant téléchargé le logiciel permettant de réaliser des transactions (wallet) sur leur PC ou smartphone,
5000 nœuds au sens défini plus haut,
4.2 – Les logiciels bitcoin ou wallets
Le logiciel « wallet » émis par un « broker » se charge facilement par exemple sur les « play-stores » Apple ou Google, et met en relation l’utilisateur avec un serveur « broker » . Coinbase est le plus connu. Ces logiciels offrent une interface simple à l’utilisateur pour acheter des BTC à partir d’un compte bancaire ou en vendre et recevoir la contrepartie sur le compte bancaire. Ils permettent évidemment de connaître la quantité de BTC détenus et l’historique des transactions. Ils offrent également la possibilité de payer avec des BTC en physique (chez un commerçant) ou en virtuel (sur Internet) : la clé publique du payé est physiquement communiquée par code barre 2D. Notons qu’il existe deux catégories de wallets :
4.2.1 – Ceux qui laissent toute la gestion et la mémorisation des BTC au broker
La liaison utilisateur-broker est une simple et classique relation de commerce électronique qui associe l’utilisateur à un compte. L’utilisation de plusieurs wallets sur différents équipements (par ex. smartphone et PC) associés au même compte ne pose pas de problème. Mais cette solution repose totalement sur la confiance dans le broker, et on a vu récemment en Corée du Sud des attaques contre un broker, Youbit, qui ont permis de voler les BTC (donc les bi-clés) de certains comptes et ont fait chuter le cours du BTC de 30% tout en faisant perdre aux utilisateurs de cette plateforme une grande partie de leurs avoirs !
4.2.2 – Ceux qui laissent à l’utilisateur l’accès à la mécanique bitcoin
et la mémorisation des BTC
A charge à cet utilisateur d’assurer sa sécurité lui-même : faire des sauvegardes et gérer de façon correcte la protection de ses PCs ou smartphones ! La perte ou le vol des bi-clés, comme la perte de pièces ou billets par le détenteur, ne peut être récupérée ! Il convient donc d’utiliser des sauvegardes sûres et multiples ! L’utilisation de plusieurs wallets sur différents équipements est possible à condition d’avoir un moyen de synchronisation pour, par exemple, ne pas utiliser un avoir déjà dépensé avec le wallet 1 de nouveau sur le wallet 2, ce qui reviendrait à une double dépense et serait de toute façon rejeté.
4.3 – L’impact écologique
La puissance de calcul dans le réseau actuel bitcoin, basée sur les processeurs de minage les plus économes en kilowatts, nécessite le calcul d’environ 1021 sceaux (donc 2 hashs) toutes les 10 minutes, ce qui aboutit à 660 mégawatts, donc la moitié d’une tranche de réacteur nucléaire !
4.4 – L’impact démocratique
La question 4 ci-dessus est importante : en fait elle nécessite de faire l’hypothèse supplémentaire que la puissance de calcul est répartie à peu près uniformément entre de nombreux nœuds. Ce qui n’est pas vraiment le cas aujourd’hui, où apparaissent de grands centres de calculs dédiés au minage, et composés de milliers de processeurs travaillant en parallèle. N’y a-t-il pas un risque de mainmise éloignant le système de ces principes démocratiques ?
4.5 – Indépendance bancaire
Les arbres ne montent pas au ciel : les financiers utilisent souvent cette expression pour dire que la spéculation a toujours des limites. Fin 2016, le bitcoin valait 855€ , fin 2017 : 11 665€, et des variations au jour le jour de +/-30% ne sont pas rares. Les institutions bancaires aiment à critiquer le bitcoin, qui pour elles, est une horreur financière basée sur du vent. Il faut sans doute nuancer ces propos corporatistes par le fait que dans une économie ouverte et mondialisée, il y aura toujours des acteurs cherchant à protéger, cacher ou optimiser leurs avoirs financiers, et donc une demande importante.
De plus, les partisans du bitcoin, apparu lors de la crise des subprimes en 2008, vantent son indépendance vis-à-vis des instabilités financières des systèmes traditionnels. Avec la limitation du nombre de bitcoins à 21 millions, la rareté de la monnaie produite incitera le cours à monter mécaniquement, sauf crise majeure (apparition d’une faiblesse cryptographique), ou problème majeur (broker qui se fait hacker) ou accord international d’interdiction du bitcoin, peu probable !
5 – Les autres processus de calculs
4.1 – Quelques chiffres
Ils diffèrent principalement sur le processus de calcul du « proof of work »et de rémunération des nœuds-mineurs, donc de création de la monnaie. Avec le « proof of stake » , le valideur de blocs est celui qui possède le plus de monnaie, avec des systèmes de signature majoritaires. Les « proof of activity » ,
« proof of burn » , « proof of capacity » sont d’autres techniques. Beaucoup de travaux de recherche académique se font sur ce thème, qui est la pierre angulaire de toute crypto-monnaie.
En conclusion, pour être reconnue et viable, une crypto-monnaie comme le bitcoin doit être considérée comme telle par l’ensemble des participants à son système monétaire. Il faut donc qu’elle soit rare et infalsifiable. Les processus de vérification du système bitcoin que nous avons évoqués garantissent l’absence de doubles dépenses. De même, la limite à 21 millions de bitcoin assure la stabilité de la monnaie et sa reconnaissance sur les marchés. C’est une véritable révolution en marche car le bitcoin est aux transactions financières ce que le courriel est au courrier papier. Même si certains restent inquiets ou sceptiques face à ces monnaies dématérialisées, d’autres ont su trouver dans ce système monétaire virtuel de belles perspectives d’avenir. Chez EESTEL, nous avons des experts en crypto-monnaies prêts à vous accompagner dans votre démarche d’information ou d’accession à un tel système.
A propos de l’auteur : Jean-Claude PAILLES – Ancien consultant chez Orange R&D – Enseignant à l’ENSI Caen, à Supelec Rennes et consultant pour SFR – Expert en sécurité des smartphones.