Les Cryptomonnaies (Partie 1)

#bitcoin #cryptographie #cryptomonnaies #cybersécurité #finance 

Comprendre les cryptomonnaies en 2021

Par : Dr Olivier Blazy

Pour l’utiliser tous les jours, nous pensons tous connaître la monnaie. Mais en pratique qu’est-ce qu’une monnaie ? Sur le principe, elle doit respecter trois grands axes. Elle doit être une unité de valeur, c’est à dire qu’elle peut servir d’étalon. En outre, elle doit être un instrument d’échange, c’est à dire qu’elle doit pouvoir être acceptée par tous, et immédiatement disponible. Et enfin, elle doit être une réserve de valeur, c’est à dire un instrument de rétention de pouvoir d’achat, qui peut être conservé, investi ou thésaurisé.

Dans cette première partie, nous allons nous intéresser à l’histoire de ces monnaies numériques, prédatées par l’E-Cash, né à la fin du siècle dernier, mais aussi aux protocoles utilisés pour leur fonctionnement.

Petit historique

L’E-Cash : Une monnaie électronique avant l’heure

L’e-cash : plus ancien que beaucoup imaginent (photo colorisée)

Dans un monde toujours plus connecté, il est naturel de se demander s’il est possible de créer un analogue numérique de la monnaie physique. En 1983, David Chaum a proposé le concept de monnaie numérique. Pour cela, il introduit le concept de signature en blanc qui consiste à interagir avec un serveur pour que celui-ci authentifie un message, sans savoir de quoi il retourne. Une telle primitive permet dès lors à une banque de certifier des pièges de monnaie numérique, sans pour autant connaître leur numéro de série, et donc par la suite savoir quelle personne a dépensé la pièce en question chez un revendeur.

Il a proposé une première version commerciale du concept à travers la société DigiCash basée à Amsterdam. Le concept a essaimé et a péniblement trouvé preneur, que ce soit dans des banques américaines ou sur des transferts de fonds. L’on prendra l’exemple de Liberty Reserve, qui permettait d’abstraire des dollars et des euros et de les changer (via une commission) avant de se faire fermer pour blanchiment d’argent par le régulateur américain. Il en va de même pour E-gold, qui après avoir été lancé en 1996, a grossi jusqu’à atteindre plusieurs millions d’utilisateurs avant de se voir forcé à la fermeture.

Bitcoin / La Blockchain : Le white paper à l’origine de l’aventure

Un bitcoin (vue par un microscope électronique)

En 2008, une petite révolution est présentée par Satoshi Nakamoto. Dans un white paper [dont il existe deux variantes publiées], il pose les bases d’un nouveau concept, la blockchain. Ce registre public va permettre de stocker indéfiniment des empreintes numériques de chaque transaction.

Avec ce concept, il propose le protocole de Bitcoin dont la première implémentation open-source se lancera en 2009. L’idée de décentralisation est au cœur du protocole, les transactions sont vérifiées par des noeuds du réseau, avant d’être stockées sur le registre public. Les Bitcoins sont créés à travers un processus dit de minage, et maintenant peuvent être échangés dans beaucoup de devises, ou contre des produits, services ou d’autres cryptomonnaies. Il est estimé qu’actuellement cette cryptomonnaie est utilisée par 4 à 5 millions de personnes.

Gloire et Déchéance des crypto-monnaies

« It was at this moment, Jackson knew he f***ed up »

Les cryptomonnaies ont admis de nombreuses déclinaisons.
La version historique s’appelle le Bitcoin, (BTC) dans sa forme raccourcie. Le cours du Bitcoin a récemment franchi la barre des 50 000€ pour 1 BTC montrant un réel engouement financier pour cette monnaie. La monnaie est sécable, sa division la plus basse s’appelant le Satoshi est la plus petite division possible d’une unité. Un Bitcoin se retrouve donc sécable en 100 000 000 unités de Satoshi.
Son fonctionnement est somme toute simple, une transaction est représentée par une liste d’adresses de départ et une liste d’adresses d’arrivée, montrant dès lors un transfert de fonds de la première à la seconde. Bien entendu pour éviter les doubles-dépenses, il convient de vérifier que les adresses de départ n’ont pas déjà été utilisées.

Une fois la transaction proposée, elle doit être traitée par une équipe de mineurs, qui, après avoir résolu un puzzle mathématique complexe appelé « Proof of Work » va pouvoir l’ajouter à la blockchain. De plus, un mécanisme régulant la difficulté du puzzle est mis en place afin de s’assurer qu’un bloc de transactions est ajouté en moyenne toutes les dix minutes.

D’autres monnaies ont vu le jour depuis, la plus connue parmi elles est sans doute Ethereum (ETH). Ethereum a permis deux grandes avancées, l’émergence des smart contracts, c’est à dire l’automatisation de paiements conditionnels. Par exemple, je m’engage à payer une somme d’argent, si et seulement si 5 autres personnes le font également. Grâce à ce langage de scripting, nous n’avons pas besoin de nous coordonner, d’être actifs en même temps, et il est possible d’interdire de se dédire en cours de route. Bien entendu, cela ne va pas sans inconvénient, des abus sur les smart contracts ont permis à certaines personnes de tricher pour s’enrichir, et il n’est pas impossible que cela puisse se reproduire.

Un autre changement majeur dans les versions récentes d’Ethereum vient de son mécanisme de mise à jour. Là où Bitcoin utilise une Proof of Work, ETH se base sur une Proof of Stake. Ce mécanisme de consensus permet de désigner la personne en charge du prochain bloc, non pas par une capacité de calcul mais en fonction de sa richesse, de son ancienneté dans le système, … et donc s’avère en pratique nettement moins coûteuse en énergie.

Parmi la multitude de cryptomonnaies, il faut noter l’existence des Stable Coins, c’est à dire des cryptomonnaies dont le cours s’appuie sur des monnaies courantes (principalement l’USD, le CHF et l’EUR). Ces monnaies permettent principalement de transposer dans le monde numérique des échanges du monde réel. Leur cours et la confiance en elles résident alors principalement dans l’organisme (la banque) en charge de maintenir la corrélation entre les deux cours.

De nombreuses autres cryptomonnaies existent. Aujourd’hui 90 d’entre-elles ont un cap au delà du milliard de dollars, elles peuvent donc avoir un impact significatif sur l’économie.

Sécurité et validations de la Blockchain

La blockchain 1.O1

La trousse à outils cryptographiques

La plupart des cryptomonnaies reposent sur 3 briques cryptographiques élémentaires.

Tout d’abord, les fonctions de Hachage. Une telle primitive mathcal{H} prend en entrée une chaîne x de longueur arbitraire (un fichier, une liste d’adresses, des vidéos etc…), et ressort en sortie y une chaîne de caractères de taille fixe. On notera cela y={H}(x).

En termes de sécurité, on veut qu’il soit dur d’anticiper la sortie d’une telle fonction. En pratique, cela veut souvent dire qu’étant donné un couple (x,y) il doit être dur de trouver une valeur z différente de x telle que {H}(z)=y={H}(x).
Intuitivement, si cela arrivait, il serait possible de rediriger une transaction vers le portefeuille de l’attaquant sans que la victime n’y puisse rien. Dans un monde idéal, un passage à la fonction SHA-3 serait à envisager pour les cryptomonnaies où ce n’est pas déjà le cas.

Une autre primitive essentielle lorsque l’on parle de cryptographie pour la confiance est la signature numérique. Cette primitive est l’analogue des signatures papier. Pour authentifier une transaction, un individu va faire un calcul que seul lui peut faire, mais que n’importe qui peut vérifier. En pratique, pour une adresse donnée sur la blockchain, une clé de vérification f{vk} sera disponible. Par contre, seul le propriétaire de l’adresse connaîtra la clé de signature f{sk}.

Il sera alors possible de générer une signature S=Sign(f{sk},C) pour s’engager à payer un coût C à partir de l’adresse associée à f{vk}, et n’importe qui pourra exécuter Valid(s,f{vk},C) pour vérifier si la transaction est licite. La plupart des cryptomonnaies utilisent EC-DSA ou une de ses variantes, même si certaines envisagent de supporter les signatures Schnorr.

Certaines cryptomonnaies ont besoin d’opérations un peu plus sophistiquées mais qui protègent malgré tout la vie privée. Pour cela, il faut utiliser des preuves de connaissances à divulgation nulle de connaisse (ZK PoK). Cette primitive permet alors de prouver une affirmation à quelqu’un, sans révéler d’information autre que la véracité de l’affirmation. Il serait évidemment peu intéressant de prouver que vous connaissez votre code de carte bleue en le donnant explicitement. Plusieurs variantes sont donc utilisées, mais l’on retombe souvent sur des preuves à la Schnorr, ou des variantes des Bullet Proofs.

Bien entendu, il est possible et recommandé de combiner toutes ses primitives. De nombreuses entreprises en blockchain tentent actuellement de trouver la combinaison permettant une fonctionnalité nouvelle, augmentant la sécurité et donc l’amélioration des protocoles.

Dans la seconde partie, nous nous intéresserons aux grandes questions pratiques et légales des cryptomonnaies. De l’utilisateur particulier au créateur de solutions, les différents points abordés permettront à chacun d’appréhender les enjeux et les mouvements des acteurs de cet univers en progression.

Derniers articles