Cryptomonnaies et blockchain
1. Introduction
Ces dernières décennies, les technologies de l’information nous ont habitués à passer de systèmes d’information extrêmement centralisés à des systèmes qui, au contraire, sont de plus en plus distribués. C’est le cas des réseaux de télécommunication dont les anciennes architectures en étoile ont été remplacées par des réseaux maillés composés de nœuds et de serveurs manipulant des paquets de données et des adresses (Internet). C’est aussi le cas des bases de données distribuées dont la situation physique ou géographique n’a plus aucune signification (nuages) et il en va de même pour les traitements de données répartis entre des machines distantes pour accomplir une tâche donnée.
Pourtant, certains services semblent encore résister à cette tendance générale vers l’éclatement des structures centralisées ; ce sont tous ceux qui font appel à un tiers de confiance dont l’une des principales caractéristiques est d’inspirer confiance aux utilisateurs sur la base d’un consensus le plus souvent socio-économique, voire réglementaire. Dans cette catégorie on trouve pratiquement tous les services bancaires depuis la tenue des comptes jusqu’aux transactions financières de toutes sortes. On trouve aussi tous les services de notarisation assurant l’authenticité et l’intégrité de nombreux actes comme les titres de propriété ou les testaments. On trouve également les registres officiels de conservation des hypothèques, le service du cadastre, les agences nationales des titres sécurisés (immatriculations) etc. Mais le secteur privé n’est pas en reste où, entre autres choses, contrats, comptabilité, auditabilité, inventaires et sécurité réclament aussi des processus de confiance.
Fondamentalement la mission d’un tiers de confiance consiste à tenir un « grand livre » (ledger en anglais) où sont consignées « toutes les choses dont on veut être sûrs et de façon pérenne ». Autrement dit, ce grand livre doit être fiable et infalsifiable mais néanmoins aisément consultable par les utilisateurs. Comme par principe, ce tiers de confiance assure une fonction centralisée, il présente donc, dans tout système, un point critique de vulnérabilité technique, économique ou politique. Ces dernières années, c’est principalement ce constat qui a amené certains à réfléchir à un concept de « confiance distribuée » qui offrirait donc moins de vulnérabilité, mais pas seulement pour cette raison. En effet, parmi les tiers de confiance les plus importants nous n’avons pas encore parlé des Etats (ou groupes d’Etats) dans leur prérogative régalienne de création et de gestion monétaire. La monnaie fiduciaire (ou monnaie fiat) dont ils ont le monopole a une valeur nominale supérieure à sa valeur intrinsèque et ne vaut donc que par la confiance que les citoyens peuvent accorder à ces Etats au travers d’institutions centralisatrices. Dans un esprit libertaire, ce monopole a été contesté par un groupe de scientifiques anonymes connu sous le pseudonyme de Satoshi Nakamoto ; il fut à l’origine du premier projet de monnaie virtuelle destiné à s’affranchir de toute autorité de tutelle : le bitcoin (BTC).
2. Le réseau Bitcoin
En 2008 paraissait un « white paper[1] » décrivant les principes du système proposé ; la première implémentation, le premier bitcoin et les premières transactions virent le jour l’année suivante. En s’appuyant sur Internet pour le transport et sur les PC des clients comme terminaux, Bitcoin est un réseau « pair à pair » (P2P) ouvert à tous, où les transactions financières se font anonymement en bitcoins et directement entre utilisateurs sans aucune autorité centrale régulatrice. Ces transactions sont organisées de telle sorte qu’un bitcoin donné ne peut être en la possession que d’une seule personne à tout instant. Pour assurer que les bitcoins échangés soient affectés aux bons destinataires ou qu’un même bitcoin ne puisse être dépensé plusieurs fois[2], le système construit un grand livre électronique qui rassemble la totalité des transactions depuis la création du premier bitcoin. De par sa construction comme une suite de blocs de transactions vérifiées, cette base de données s’est vue attribuée le nom de « blockchain » ou chaîne de blocs et constitue la principale innovation en se substituant au tiers de confiance. Un tel historique permet de prouver qui détient quoi à tout moment. Cette chaîne est fiable car elle est dupliquée et stockée sur les milliers de nœuds[3] que comporte le réseau Bitcoin (environ 11000 nœuds à ce jour). Le contenu de l’historique est infalsifiable grâce un chaînage cryptologique des blocs : toute modification d’une transaction dans un bloc invalide la suite des signatures cryptographiques (hash) des blocs de la chaîne.
Blockchain simplifiée
Pour obtenir la confiance des utilisateurs il reste encore à garantir l’unicité de l’historique par un mécanisme de consensus de ces derniers sur le fait que la blockchain (le grand livre) en cours de construction est bien la bonne et non la création par un ou plusieurs utilisateurs malhonnêtes, à partir de la chaîne originale, d’une chaîne déviante ou « fourche » (fork chain) qui leur permettrait de prendre le contrôle du système. Le problème est d’autant plus ardu que les utilisateurs n’ont aucune raison de se faire confiance, sont anonymes et peuvent entrer ou sortir du réseau à leur grés. Dans ces conditions, il est clair qu’un consensus s’appuyant seulement sur un vote majoritaire des utilisateurs déclarant valable chaque bloc pourrait être mis en échec facilement par une multiplication incontrôlable des votes.
Satoshi Nakamoto a proposé un protocole dit de « preuve de travail ». Chaque nœud est en charge de valider les transactions au fur et à mesure qu’elles sont diffusées à l’ensemble du réseau ; c’est en particulier l’occasion de vérifier qu’aucun bitcoin ne fait l’objet d’une double dépense. Chaque transaction approuvée contribue à former le bloc du moment. Le bloc sera à son tour validé par une signature numérique le liant entre autres choses au bloc précédent ; mais pour se faire tous les nœuds sont mis en compétition pour résoudre un « problème difficile[4] » demandant de réels moyens calculatoires. Le premier nœud qui y parvient publie alors le nouveau bloc signé qui s’ajoute à la chaîne et il est récompensé par un certain nombre de bitcoins qui sont créés ex nihilo (12,5 BTC aujourd’hui) à raison de la création d’un bloc toutes les 10 minutes en moyenne. L’incitation est assez forte pour pousser tous les nœuds[5] (ou mineurs) à s’équiper des moyens les plus puissants pour résoudre le puzzle ce qui engendre une puissance de calcul totale considérable à l’échelle du réseau. Ainsi, tout attaquant qui veut falsifier un ou plusieurs blocs en créant un « fork » durable devra disposer en moyenne à lui tout seul d’une puissance de calcul au moins égale à 50 % de la puissance disponible dans l’ensemble du réseau, puissance qui est elle-même à la limite supérieure des possibilités technologiques du moment. On aboutit ainsi à la réalisation d’un véritable consensus majoritaire qui ne peut être déjoué que par la collusion d’un très grand nombre de « mineurs » ce qui réduit d’autant la probabilité d’une attaque réussie.
Ce sont sur ces bases que le réseau Bitcoin fonctionne depuis 2009 en dépit de la réputation un peu sulfureuse d’être la monnaie du « dark net », lieu d’échange de beaucoup de transactions illégales. Néanmoins, à ce jour (mars 2018) le réseau Bitcoin est encore solide et bien actif :
- Taux de change (au 31/03/2018): 1 BTC = 6 890 USD
- Nombre total de bitcoins : 17 millions
- Capitalisation totale : 117 milliards USD
- Nombre moyen de transactions : de 2 à 6/s (VISA : 2500/s)
- Nombre de comptes actifs : environ 23 millions
- Nombre de nœuds actifs : environ 11 000.
3. Autres cryptomonnaies
Depuis l’apparition des bitcoins il s’est créé un très grand nombre d’autres monnaies virtuelles dont l’objectif est de corriger certains défauts de Bitcoin ou d’ajouter d’autres services. On en dénombre actuellement[6] près de 1600 pour une capitalisation globale de 261 milliards USD. Nous ne citerons que les huit plus fortes capitalisations (au 31/03/2018) :
Nom | Symbol | Capitalisation
(milliards USD) |
Bitcoin | BTC | 117,9 |
Ethereum | ETH | 39,2 |
Ripple | XRP | 19,9 |
Bitcoin Cash | BCH | 11,9 |
Litecoin | LTC | 6,6 |
EOS | EOS | 4,6 |
Cardano | ADA | 3,8 |
Stellar | XLM | 3,7 |
Certaines de ces cryptomonnaies se distinguent du modèle initial Bitcoin principalement par leurs capacités à gérer, en plus d’une monnaie virtuelle, d’autres types d’actifs en utilisant le même principe de tiers de confiance distribué. Elles peuvent aussi proposer des constructions plus rapides des blocs en vue d’accélérer les transactions ou un plus grand nombre de transactions par unité de temps. Certaines d’entre elles, par exemple, utilisent un principe de consensus différent de celui de Bitcoin. Par exemple la « preuve d’enjeu » qui est liée à la quantité de monnaie virtuelle (l’enjeu) détenue par chacun des utilisateurs habilités à participer au vote majoritaire du consensus décidant de la validité d’un bloc. En effet, si le nombre de votes est proportionnel au nombre d’unités de monnaie virtuelle détenue, il est clair qu’il n’est possible de prendre le contrôle du réseau que si l’on détient soi-même plus de 50 % de la capitalisation ce qui paraît d’une part très difficile et d’autre part assez inutile puisque cela revient alors à s’attaquer soi-même.
4. Problèmes non résolus
Les points qui suivent sont examinés dans l’optique bitcoin mais pour peuvent s’appliquer à la plupart des cryptomonnaies.
Problème de gouvernance
Même si un système propose un service décentralisé, il ne peut pas se passer d’une certaine forme de gouvernance au moins au niveau de la maintenance et des inévitables évolutions techniques. Ainsi, tandis qu’une centralisation des décisions techniques devient indispensable, les « développeurs » acquièrent une position nécessairement privilégiée qui pourrait même devenir dominante. Dans le cas de Bitcoin, la cohérence technique du code source (Bitcoin Core) est assurée par une demi-douzaine de développeurs bien identifiés et une communauté de nombreux bénévoles au travers de divers forums et Fondations. Dans le cadre d’une organisation peu contraignante, les processus décisionnels ont du mal à émerger ou conduisent à des tensions entre les divers communautés impliquées : développeurs, mineurs et utilisateurs.
Pour optimiser leurs compromis entre gains et risques les mineurs ont formé des « pools » qui regroupent ou étendent leur moyens calculatoires. Actuellement, quatre pools représentent près de 75% de la puissance de calcul du réseau Bitcoin. C’est un autre constat inquiétant pour la survie de l’esprit de décentralisation démocratique du réseau : la collusion des deux plus gros pools permet en théorie de prendre le contrôle du grand livre.
Protocole de consensus énergivore
En raison du très gros effort calculatoire imposé aux nœuds pour la vérification des blocs, la puissance électrique consommée en continue par l’ensemble du réseau Bitcoin est estimée aujourd’hui à plus de 6000 MW[7]. A noter que cette consommation est destinée à augmenter au fil du temps car le protocole Bitcoin impose une réévaluation régulière du niveau de difficulté calculatoire pour tenir compte des améliorations progressives en vitesse de traitement. On peut montrer qu’aujourd’hui[8] le coût du minage atteint environ 54% de la valeur du bitcoin. Cette valeur représente, en marginal, le coût d’opportunité, par bitcoin, pour choisir d’entrer dans le processus de minage. Tant que le cours du BTC est supérieur à ce coût, il y a une certaine logique économique, mais peut-être pas écologique, à une telle consommation d’énergie. A ce sujet, il est bon de souligner que le système VISA consomme globalement cinq fois moins d’énergie pour un nombre de transactions mille fois supérieur. Cet écart donne la mesure du coût à consentir pour passer d’un système centralisé à un système de confiance distribué et la question se pose naturellement de savoir s’il est justifié.
Un statut légal mal défini
Il semble qu’il soit difficile de décider si les bitcoins sont des actifs physiques, des actifs financiers ou simplement une monnaie privée. Il n’est donc pas étonnant que leur statut juridique soit pour le moins ambiguë et variable selon les Etats. Par exemple, les bitcoins sont interdits en Russie et au Thaïlande mais sont tolérés en Europe et en France qui les considère comme une unité de compte virtuelle à caractère spéculatif. Mais puisque l’Union européenne a décidé que le bitcoin n’est pas assujetti à la TVA il semble bien qu’il y ait acquis le statut de monnaie. Aux Etats Unis, le statut du bitcoin dépend de l’Administration concernée : c’est une matière première pour l’Agence régulatrice du marché des matières premières mais c’est une monnaie pour l’IRS. Pour l’heure, la France dispose de deux missions parlementaires – cryptomonnaies et blockchain respectivement – et d’un chargé de mission à Bercy pour réfléchir au statut légal ou fiscal à accorder aux cryptomonnaies.
Limitations
On a déjà cité le faible nombre de transactions par seconde que peut réaliser le réseau Bitcoin et qui conduit les développeurs à envisager une multiplication par 8 ou 20 de la taille des blocs ce qui provoquerait une modification majeure système.
Satoshi Nakamoto a souhaité limiter intrinsèquement l’agrégat monétaire en divisant par 2 tous les 4 ans la récompense allouée aux nœuds de minage (les mineurs). Cette création monétaire était de 50 BTC par bloc à compter de 2009, elle est aujourd’hui de 12,5 BTC et continuera sa descente en forme de progression géométrique pour se terminer quand la récompense atteindra moins de 1 BTC par bloc. Elle conduit à une masse monétaire maximum d’environ 21 millions de bitcoins aux alentours de l’année 2040. Il faut noter qu’à partir de là, les mineurs devront se contenter des seules rétributions qui leurs sont dues pour leur travail de vérification des transactions et nul ne sait aujourd’hui si l’incitation économique restera suffisante pour les engager à poursuivre le vrai travail de minage qui est la seule façon de conserver un consensus résistant.
Risques
La très forte volatilité du bitcoin le rend particulièrement vulnérable au risque de marché.
A titre d’illustration, en partant de zéro, il a atteint pratiquement 20000 USD en décembre 2017 pour évoluer actuellement (au 1° trimestre 2018) aux alentours de 7 000 dollars. Il existe aussi un réel risque de contrepartie en raison du peu de fiabilité ou de sérieux d’un certain nombre d’officines dédiées à l’échange des bitcoins contre les monnaies standard. Il faut aussi relever un risque de transaction ; en effet, ces dernières sont toujours irréversibles car le réseau Bitcoin n’offre aucune procédure de remboursement. Donc en cas d’erreur il ne faut tabler que sur la bonne volonté et la bonne foi des utilisateurs pour corriger directement entre eux les éventuels problèmes. Le caractère ouvert et distribué du réseau Bitcoin accentue les risques opérationnels : risque de compromission des clés privées des utilisateurs[9], risques de déni de service sans oublier le risque global déjà mentionné de prise de contrôle du système par une attaque réunissant plus de 50 % de la puissance de calcul du réseau.
Un tel niveau de risque a pour conséquence de très fortement limiter l’usage du bitcoin dans le monde du commerce ouvert pour le confiner au monde moins reluisant des transactions pas toujours très légales. Corrélativement, les cryptomonnaies apparaissent avant tout comme un actif virtuel excessivement volatil donc hautement spéculatif.
5. La Blockchain
En prenant un peu de recul, on peut voir la blockchain comme une base de données distribuée, fiable parce que largement dupliquée et sécurisée par des validateurs qui la mette à jour continuellement. On réalisa donc bien vite que la blockchain elle-même pouvait servir à bien d’autres choses que des transactions purement monétaires en substituant ou ajoutant aux bitcoins d’autres actifs et en spécifiant chaque fois les règles de gestion particulières de ces derniers. En effet, les principaux éléments constitutifs sont les suivants :
- un réseau de transactions paire à paire éventuellement anonymes,
- un « token » pouvant représenter n’importe quel actif objet des transactions et dont la traçabilité est assurée,
- un registre (le grand livre) décentralisé
- accessible et partageable qui enregistre chronologiquement au fur et à mesure toutes les transactions numériquement signées et non répudiables ainsi que des programmes permettant l’exécution automatique et conditionnelle de certaines transactions (contrats intelligents),
- infalsifiable grâce à un chaînage cryptologique des données regroupées par blocs,
- un processus de « confiance distribuée » apte à établir un consensus majoritaire quant à la validité des transactions de la chaîne.
En retenant tout ou partie de ces fonctions on peut obtenir une très grande variété de systèmes qui seront plus ou moins performants ou plus ou moins adaptés à tel ou tel service : des « trust machine » que l’on peut classer en plusieurs catégories.
Blockchain publiques : elles sont ouvertes à tous à tout moment et tous les participants, outre l’usage qu’ils font du système, sont incités à jouer un rôle de validateurs, en rémunérant leur travail de vérification ou de minage éventuel. Tous les participants ont un droit d’accès aux données de la blockchain. Le consensus majoritaire est obtenu, par exemple, par la preuve de travail des validateurs. C’est ce type de blockchain publique qu’utilisent les systèmes de cryptomonnaies comme Bitcoin ou Ethereum.
Blockchain privées : à l’opposé des précédentes, une autorité centrale décide de tout et contrôle tout. Le but n’est pas ici d’éliminer tout tiers de confiance centralisé mais de profiter des aspects sécurisés et partageables de la blockchain. En particulier, l’autorité décide seule du choix des participants ainsi que du choix et du maintien de la liste des validateurs. Dans le même esprit, les droits de lecture sont strictement limités. Puisque, par construction, les participants se font confiance au travers de l’autorité centrale, le consensus, majoritaire ou non, s’obtient naturellement sans qu’il soit nécessaire de faire appel à un quelconque processus de minage. Néanmoins, le caractère privé ne dispense pas d’un protocole qui soit tolérant aux pannes ou erreurs.
Blockchain semi-privée : elles constituent un niveau intermédiaire entre blockchain publiques et privées. Les nouveaux entrants ne sont acceptés que par accord des autres participants tandis que la validation des opérations ou transactions nécessite l’accord d’un ensemble prédéfini de validateurs. Ce type de blockchain est particulièrement bien adapté à un consortium, par exemple R3 qui rassemble bon nombre d’institutions financières dans le but d’expérimenter les possibilités de la blockchain dans leurs secteurs.
Les applications de ces blockchain sont évidemment multiples allant des transactions financières (cryptomonnaies, réseaux de compensation) aux opérations de notarisation ou d’horodatage (droits d’auteur, cadastre, registre des hypothèques, traçage de produits, etc.) en passant par ce qu’il est convenu d’appeler les contrats intelligents ou « smart contracts ».
Ces derniers voient leurs clauses et conditions inscrites dans « le marbre » de la blockchain tandis que des « oracles » externes ou internes au système déclenchent l’auto-exécution des termes du contrat qui peuvent comporter des règlements financiers qui se font alors par l’intermédiaire de cryptomonnaies ou de tokens propres au système. Ils sont particulièrement adaptés aux divers domaines de l’assurance pour l’automatisation de certains contrats ou l’indemnisation automatique des retards dans les transports. De même, dans le cadre des marchés financiers, les opérations d’achat de titres ou d’exercice de contrats optionnels pourraient bénéficier, sans intermédiaires, des qualités de fiabilité et de sécurité d’une blockchain. Dans le secteur des « smart grids » de l’énergie ou des échanges d’énergies propres et renouvelables entre divers entités – notamment de simples particuliers – la blockchain peut apporter une solution de confiance complètement décentralisée : les bâtiments peuvent être équipés de capteurs mesurant l’énergie produite ou consommée en chaque point tandis que les compensations financières sont effectuées automatiquement. A noter que subsiste néanmoins le problème de la confiance périphérique, celle qu’il faut accorder aux capteurs et autres oracles.
Avant d’opter pour une blockchain, il est bon de s’assurer que cette dernière est bien la solution au problème que l’on doit résoudre. Par exemple, les données traitées sont-elles bien à partager entre de nombreux participants, seront-elles mises à jour par ces mêmes participants et ces mises à jour devront-elles être contrôlées ou validées, quel sera le degré d’ouverture du système, etc. D’une façon plus générale, avant d’implémenter une blockchain privée il est toujours bon de se demander si une base de données classique ne serait pas plus pertinente.
La décision étant prise d’implémenter une blockchain il convient de choisir une plateforme comme par exemple Ethereum qui est la plus utilisée actuellement et qui bénéficie d’un langage de programmation complet (solidity) et d’une bonne documentation. A signaler qu’il existe une autre alternative qui peut s’avérer utile en prototypage : « blockchain as a service » (BaaS) qui est une nouvelle offre cloud orientée blockchain privée.
En conclusion, que peut-on dire des perspectives de la blockchain que le battage médiatique a souvent qualifié de technologie disruptive. Sans pour autant révolutionner toute l’économie elle est sans aucun doute l’outil indispensable au développement fulgurant des services organisés autour de concepts collaboratifs ; ainsi, en dehors des cryptomonnaies, les premières applications réussies sont ou seront des blockchains privées locales ou internes à certaines organisations. Les développements plus vastes de type consortium vont sans doute prendre plus de temps tandis que les « smart contracts » sont certainement les applications de la blockchain qui présentent le plus fort potentiel de développement. Mais attention, qu’elle soit publique ou privée, de la solidité du mode de consensus retenu dépendra celle de la blockchain…
Quelques références pour aller plus loin
Fonctionnement détaillé du réseau Bitcoin et de ses fonctions cryptologiques :
Bitcoin Book, Pierre Noizat, (2012)
Understanding Bitcoin, Pedro Franco, (2015), Wiley
Problèmes de consensus :
Byzantine Consensus in Asynchronous Message-Passing Systems, Miguel Correira
The Sybil Attack, John R. Douceur
The Byzantine Generals Problem, Leslie Lamport, Robert Shostak, Marshall Pease
Majority is not Enough: Bitcoin Mining is Vulnerable, Ittay Eyal, Emin Gün Sirer
L’auteur, Joël Lebidois, ingénieur INSA, a fait toute sa carrière dans de grands groupes industriels de l’électronique professionnelle. Actuellement consultant, il est membre de la Société des Ingénieurs et Scientifiques de France. Il est l’auteur de nombreux articles et de Finance pour les ingénieurs (Maxima, 2013).
[1] Bitcoin : A Peer-to-Peer Electronic Cash System, Satoshi Nakamoto.
[2] Par construction cette menace n’existe pas avec la monnaie fiat – sauf faux monnayage – mais surgit avec toute monnaie virtuelle.
[3] Qui sont des utilisateurs particuliers équipés de moyens calculatoires plus importants.
[4] Par essais systématiques avec une fonction à sens unique trouver une empreinte (ou hash) du bloc qui soit inférieure à un seuil fixé.
[5] Appelés « mineurs » car ils extraient des bitcoins…
[6] Voir par exemple http://coinmarketcap.com
[7] Un réacteur nucléaire = 1000 MW.
[8] https://digiconomist.net/bitcoin-energy-consumption
[9] Les clés privées permettent de signer les transactions donc de libérer les bitcoins virtuels correspondants. Leur perte est l’équivalent, pour l’utilisateur, de la perte de son portefeuille.
Cet article a été initialement publié sur le site variances.eu le 22 février 2017. Il est repris par Vox-Fi avec due autorisation.
Cet article a été également publié sur Vox-Fi le 19 avril 2018.