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.

L’association EESTEL s’est penchée sur ces nouveaux processus de paiements numériques. Grâce à nos experts en crypto-monnaies nous apportons un éclairage sur les principes d’émission et de vérification de ces monnaies. Notre approche assez pointue du codage informatique pratiqué dans le système bitcoin s’adresse principalement à des spécialistes et des initiés en transactions numériques. Néanmoins, elle aborde également les aspects économiques ou démocratiques de ces nouveaux systèmes monétaires virtuels.

 

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 :

  • Toutes les données générées par ce fonctionnement sont publiques et vérifiables (respect des règles) par tous les participants,
  • Un Grand Livre (« ledger » en anglais) appelé aussi « blockchain » est utilisé pour consigner toutes les transactions.

2.2 – Techniques de vérification

2.2.1 – Le Hashing (« empreinte digitale » en Français), avec le standard ISO SHA1

Un message de longueur quelconque est transformé en un « hash » de 256 bits d’une façon imprévisible et non inversible. Ayant 256 bits, il est impossible de trouver un message dont le hash égale ces 256 bits. Notons que cette impossibilité est pratique, car en théorie, il suffit d’essayer toutes les combinaisons binaires de messages pour trouver une solution. Mais ceci conduit à des quantités de calcul, et donc des temps de calculs monstrueux !  

2.2.2 – La Signature, avec le standard ISO ECDSA

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 :

– l’une secrète et ne devant être divulguée à personne sert à calculer la signature d’un message ou d’un bloc de données quelconque.

– l’autre publique, pouvant être communiquée à tout le monde, permet de vérifier la signature du message ou bloc.

Notons que toutes ces techniques sont banales en 2017, et s’appuient sur des fonctions offertes par les OS de tous les objets informatiques actuels : PCs, smartphones et tablettes.

 

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<j<k… ;  

  • L’utilisateur X paye 8 unités à l’utilisateur A
  • Puis Y paye 3 unités à A ;
  • A possède donc au total 11 unités
  • A va pouvoir par exemple payer 9 unités à B en en gardant 11-9=2 pour lui. Il y a donc ici deux bénéficiaires.

Toutes les 10 minutes environ, un nouveau bloc est ajouté, contenant les nouvelles transactions, et c’est cet ensemble qui est appelé blockchain.

La blockchain est donc un fichier partagé, accessible en lecture à quiconque.

3.2 – Ecriture dans la blockchain

Pour ce qui est de l’écriture dans ce fichier, les points critiques sont les suivants :

  1. 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) ?
  2. 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)
  3. 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 ?
  4. 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,

– Le BTC est subdivisé en 108 unités, appelées « satoshi » ; 1 bitcoin = 100 000 000 satoshis,

– Les blocs font actuellement 1 Mo, et contiennent en moyenne 1800 transactions, ce qui, avec un bloc toutes les 10 minutes, donne un débit de 3 transactions/s (alors que Visa traite 2000 transactions/s !)

– Commissions : dans une transaction, si les dépenses sont supérieures au gain, la différence correspond à une commission pour le nœud qui gagne le minage du bloc ; elle est rajoutée par le nœud qui mine le bloc aux 12,5 BTC de la transaction initiale,

– Pour une prise en compte rapide d’une transaction (donc sa validation puisqu’elle apparaît dans un bloc scellé) une commission non nulle est nécessaire surtout avec un trafic qui est de plus en plus important dans bitcoin.  

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

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.

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.

Partager sur :
X