Blog ENI : Toute la veille numérique !
💥Offre BLACK FRIDAY : Accès illimité 24h/24 à tous nos livres & vidéos ! Cliquez ici
💥Offre BLACK FRIDAY : Accès illimité 24h/24 à tous nos livres & vidéos ! Cliquez ici
  1. Livres et vidéos
  2. Blockchains, intelligences artificielles, objets connectés, ordinateurs quantiques
  3. Les blockchains
Extrait - Blockchains, intelligences artificielles, objets connectés, ordinateurs quantiques Quels risques technologiques ?
Extraits du livre
Blockchains, intelligences artificielles, objets connectés, ordinateurs quantiques Quels risques technologiques ? Revenir à la page d'achat du livre

Les blockchains

La genèse

1. La création de Bitcoin

Le 31 octobre 2008, un document de neuf pages titré « Bitcoin : un système de monnaie électronique pair-à-pair [1] » est posté sur une liste de distribution internet dédiée à la cryptographie (https://bitcoin.org/bitcoin.pdf), avec un message d’accompagnement qui annonce : « J’ai travaillé sur un nouveau système de monnaie électronique entièrement pair-à-pair, sans tiers de confiance ». Ce texte, rédigé dans un style d’article universitaire, et signé Satoshi Nakamoto, décrit de façon très synthétique le principe de blocs de transactions chaînés les uns aux autres. Il s’inspire de travaux de recherche menés et de solutions proposées à partir des années 1990, dont la preuve de travail, les blocs horodatés et chaînés et les réseaux pair-à-pair, ainsi que les tentatives de monnaies électroniques comme Bit gold, B-Money et DigiCash. C’est le terme chain of blocks qui est utilisé dans ce document fondateur, mais le mot blockchain s’impose un peu plus tard parmi les développeurs et les premiers utilisateurs.

Le 3 janvier 2009 à 18 h 15 GMT, le réseau Bitcoin est mis en marche. Satoshi Nakamoto génère le premier bloc, que l’on appelle le Genesis Block. Il contient un texte, « The Times 03/Jan/2009 Chancellor on brink of second bailout for banks », tiré de l’édition du 3 janvier 2009 du journal The Times. La crise des subprimes fait alors rage et les gouvernements s’efforcent de sauver les banques. Le 8 janvier 2009, Satoshi Nakamoto publie un message annonçant que la version 0.1 du code source de Bitcoin est disponible et librement téléchargeable sur Internet. Il continue durant l’année 2010 à faire évoluer le logiciel de Bitcoin, et échange sur les forums avec la communauté de plus en plus nombreuse d’utilisateurs et de développeurs intéressés par ce système. Mais le 13 décembre 2010, il poste son dernier message public sur le forum des développeurs...

Sus au consensus

1. Les attaques des 51 %

Nous avons vu que Bitcoin atteint ses objectifs (pas de double dépense, pas d’autorité centrale) notamment grâce à un mécanisme de preuve de travail qui revient à tirer au sort le nœud qui valide le bloc, empêchant ainsi les attaques de type Sybil. Il existe cependant une condition pour que ce mécanisme soit efficace. Elle est rappelée dans la conclusion de l’article de Nakamoto : « Pour résoudre cela, nous avons proposé un réseau pair-à-pair utilisant la preuve de travail pour enregistrer une histoire publique des transactions, qu’il devient rapidement impraticable pour un attaquant de modifier si les nœuds honnêtes contrôlent la majorité de la puissance CPU [5] ». Pour que Bitcoin fonctionne, il faut que la majorité des nœuds soient honnêtes, ou plutôt que la majorité de la puissance de calcul soit contrôlée par des nœuds honnêtes. Si cette condition n’est pas respectée, les nœuds malhonnêtes, pour peu qu’ils collaborent entre eux, peuvent parvenir à miner des blocs frauduleux. C’est la fameuse attaque des 51 %.

En pratique, l’attaquant commence par miner des blocs, mais ne les communique pas aux autres nœuds immédiatement. Il construit donc en secret une chaîne « parallèle » à la chaîne légitime. Puis il réalise une transaction sur la chaîne légitime, comme un achat de bien ou une conversion en devises de cryptoactifs. Cette transaction est incluse dans un bloc, qui est miné et rajouté à la chaîne légitime. Une fois les devises ou les biens récupérés, l’attaquant continue à miner des blocs sur la chaîne parallèle, jusqu’à ce qu’elle soit plus longue que la chaîne légitime. Il diffuse alors les blocs de la chaîne parallèle aux autres nœuds, qui appliquent la règle de la chaîne la plus longue. La chaîne malveillante s’impose en quelques secondes ou dizaines de secondes sur tous les nœuds, et les blocs légitimes minés après le premier bloc frauduleux disparaissent, y compris...

Les clefs du paradis

1. Chiffrement asymétrique et signature

En 1977, Ronald Rivest, Adi Shamir et Leonard Adleman publient un article titré A Method for Obtaining Digital Signatures and Public-Key Cryptosystems qui apporte une solution efficace à un vieux problème. Jusque-là, les algorithmes qui permettent de chiffrer des données afin de les protéger pendant leur stockage ou leur transmission sont symétriques. La même clef est utilisée pour chiffrer et déchiffrer les données. Un émetteur qui voudrait adresser un message à un destinataire et le protéger par chiffrement durant le transfert doit donc s’assurer que le destinataire connaît la clef de chiffrement/déchiffrement. Certes, la clef a pu être communiquée préalablement lors d’une entrevue en face à face, mais c’est une contrainte très forte et peu applicable en pratique. L’envoi de la clef par un canal protégé n’est pas envisageable car se pose alors le problème de la transmission sécurisée de données, que l’usage de la cryptographie est censé résoudre.

La solution de ces chercheurs, particulièrement élégante, est de considérer deux clefs : une clef privée, connue de son seul propriétaire, et une clef publique, qui peut être connue de tous. Les deux clefs sont liées par des propriétés mathématiques qui font que des données chiffrées par l’une des clefs ne peuvent être déchiffrées que par l’autre, et réciproquement. Si la taille des clefs publiques/privées est suffisamment grande, la connaissance de la clef publique ne permet pas, en pratique, de déduire la clef privée. Pour décrire ce mode de fonctionnement les termes de « cryptographie asymétrique » sont utilisés. Grâce à ces propriétés, il est possible de résoudre le problème de la cryptographie symétrique. Le destinataire du message communique sa clef publique à l’émetteur par un canal qui n’a pas besoin d’être sécurisé. L’émetteur chiffre les données avec la clef publique du destinataire...

Les contrats stupides

1. Les contrats intelligents

En janvier 2014, un tout jeune homme de 19 ans, Vitalik Buterin, publie un article [27] qui décrit une nouvelle blockchain nommée Ethereum. L’une des ambitions de Vitalik Buterin, qui travaille depuis deux ans dans l’écosystème Bitcoin, est de doter sa blockchain d’un langage de programmation permettant de développer des programmes exécutés sur la blockchain, appelés smart contracts (nous parlerons simplement de « contrats » dans la suite du livre). Bitcoin possède certes un langage de programmation, mais il est relativement limité. Vitalik Buterin est rejoint par d’autres développeurs et le projet prend forme. Ethereum est lancé le 30 juillet 2015 et s’impose rapidement comme la deuxième blockchain majeure, après Bitcoin.

L’une des promesses des contrats est l’exécution autonome, sans intervention humaine et sans modification. Un contrat est immuable car son code est inclus dans la blockchain. Il ne peut donc pas être modifié ou supprimé une fois déployé, mais il peut éventuellement s’autodétruire si le développeur l’a prévu. Il est également possible de construire des architectures composées d’un contrat de type proxy et d’un contrat de type implémentation. Le contrat proxy agit comme intermédiaire entre les utilisateurs et le contrat d’implémentation. Les développeurs peuvent déployer un nouveau contrat d’implémentation et mettre à jour son adresse dans le contrat proxy afin que les requêtes des utilisateurs vers le contrat d’implémentation soient relayées vers le nouveau contrat. Cela permet dans les faits la maintenance et l’évolution fonctionnelle des contrats.

Un contrat garantit aux parties intéressées que la logique de son code sera suivie quoi qu’il arrive, sans retard, sans erreur et sans fraude, et qu’une partie ne pourra pas en changer unilatéralement les termes. Par exemple, un contrat pourrait être employé dans le cadre d’un testament, pour assurer qu’une somme sera versée à un héritier le jour de ses 18 ans, sans avoir besoin...

À l’assaut de la DeFi

1. La DeFi

Lancé en 2014, le projet MakerDAO est le précurseur de la finance décentralisée, ou DeFi, qui est en plein essor depuis 2017. Les projets et plateformes DeFi proposent de multiples services financiers de prêt, d’échange, de trading, d’investissement, d’assurance, de couverture, etc. Les services DeFi, également appelés « protocoles », sont implémentés sans intermédiaire, via des contrats. Ils sont de type non custodial, c’est-à-dire que leurs utilisateurs gardent, au sens de la blockchain, la propriété effective des cryptoactifs qu’ils manipulent. Ils n’exigent pas de connaître l’identité véritable des utilisateurs. Ils peuvent donc être employés par n’importe qui, n’importe quand, de n’importe où, sans nécessiter de processus de KYC. Ils sont « composables », c’est-à-dire que les contrats d’un protocole DeFi peuvent interagir avec les contrats d’un autre protocole, et que l’on peut construire des produits ou services financiers complexes comme sont assemblées des briques de Lego. Par exemple, les tokens d’un projet DeFi peuvent être déposés en tant que collatéral sur une plateforme DeFi de prêt. À la date de rédaction de ce livre, plus de 44 milliards de dollars de cryptoactifs sont placés dans des projets DeFi.

Les oracles constituent l’un des composants de la DeFi. Ils y sont utilisés pour obtenir des prix de cryptoactifs afin d’acheter, de vendre, d’échanger ou d’emprunter en apportant un collatéral. Les oracles peuvent être de type off chain, allant par exemple chercher les cours sur des plateformes d’échange classiques. Ils peuvent être aussi on chain, auquel cas ils se basent sur des données disponibles sur des plateformes d’échange décentralisées, notamment sur les volumes d’achats et de ventes ou sur les réserves de cryptoactifs. Un autre élément de la DeFi est le flash loan, apparu début 2020. Dans cette approche, un acteur emprunte des cryptoactifs, les utilise pour une ou plusieurs opérations...

Le panoptique des blocs

1. L’analyse des transactions

Le 8 septembre 2020, Alon Gal, un expert en cybersécurité et cryptoactifs, annonce sur Twitter qu’il a en sa possession un portefeuille contenant une clef privée détenant 69 000 bitcoins, soit 693 millions de dollars. Ces bitcoins n’ont pas changé de propriétaire depuis 2013. Il indique que des acteurs malveillants essayent depuis des années de casser le mot de passe protégeant ce portefeuille. Le 3 novembre 2020, Alon Gal tweete qu’une transaction vient de vider ce portefeuille de tous ses bitcoins. Les conjectures fusent. Quelqu’un a-t-il réussi à casser le mot de passe du portefeuille ? La réponse arrive quelques jours plus tard : c’est le département de la justice des États-Unis qui a réalisé cette opération. Les fonds contenus dans le portefeuille provenaient de Silk Road, une place de marché présente sur le darkweb. La transaction du 3 novembre est donc une saisie judiciaire. Le cours du Bitcoin ayant augmenté entre septembre et novembre 2020, le montant dépasse alors le milliard de dollars. 

Comment Alon Gal a-t-il su que ce portefeuille très sensible avait été vidé ? Il a simplement examiné les transactions dans la blockchain Bitcoin. Il suffit de connaître l’adresse correspondant à la clef privée stockée dans le portefeuille, et, soit d’analyser directement les données sur un nœud Bitcoin, soit de consulter un site web spécialisé de type explorateur de blockchain. Toutes les transactions insérées dans une blockchain publique sont en effet accessibles, sans aucun filtre, à tout le monde. Toute personne peut observer une transaction, prendre connaissance de l’adresse de l’émetteur, de l’adresse du destinataire, du montant du transfert ainsi que de la date et de l’heure. Il est possible d’écrire des programmes qui analysent les transactions incluses dans chaque nouveau bloc miné. Ils peuvent se focaliser sur des adresses ou des montants particuliers. Ainsi, le compte Twitter @whale_alert, opéré par un programme informatique, surveille les transferts les plus importants sur Bitcoin...

Les externalités de la blockchain

1. La dépense énergétique

L’empreinte environnementale des technologies blockchain, notamment de Bitcoin, est un sujet qui a donné lieu depuis quelques années à de vives polémiques entre pro et anti. La blockchain n’est en effet pas une technologie qui se caractérise par sa sobriété, en matière de capacité de traitement et de stockage. L’une des bases de la sécurité d’une blockchain est qu’elle est hébergée sur des milliers ou des dizaines de milliers de nœuds et que toutes les transactions y sont conservées sans limites de temps. Par rapport à des systèmes plus classiques de paiement ou de traitement de données, les besoins en capacité de stockage, de mémoire, de connectivité et de calcul sont donc démultipliés. À la date de rédaction du livre, la taille de la blockchain Bitcoin est de 494 Go et celle d’Ethereum est de 14 700 Go.

Le sujet le plus controversé est la consommation d’énergie que les protocoles de consensus de type preuve de travail entraînent. Rappelons leur fonctionnement, en considérant l’exemple de Bitcoin. Lorsqu’une transaction arrive sur un nœud de minage, elle est mise dans un bloc en construction, puis le nœud mine le bloc en cherchant à trouver la solution d’un problème mathématique complexe. Tous les nœuds de minage de la blockchain sont en compétition et la production d’un unique bloc de Bitcoin entraîne donc une très grande quantité de calculs pendant une dizaine de minutes. À la date de rédaction de ce livre, le hashrate de Bitcoin est de 372 EH/s, ce qui signifie que l’ensemble des nœuds de minage Bitcoin calculent 372 milliards de milliards de hashes par seconde. Cette puissance de calcul est assurée par plusieurs millions d’équipements spécialisés qui consomment une énorme quantité d’électricité.

La polémique commence en 2014 suite à la publication de la première étude [52] abordant le sujet de la consommation énergétique de Bitcoin. La majorité de cette courte analyse...

Chaînes éternelles ?

L’histoire montre que les technologies, même très innovantes, ne sont pas immortelles. Un exemple en est donné par le réseau de poste pneumatique qui a existé à Paris pendant 117 ans. Créé en 1868, il permettait d’acheminer en quelques dizaines de minutes des messages contenus dans des petits cylindres, par le biais d’air sous pression insufflé dans des tuyaux souterrains. À son apogée, ce réseau représentait 472 km à Paris et sa proche banlieue. Mais le 30 mars 1984, le ministère des Postes, Télégraphes et Téléphones met officiellement fin au service, face aux coûts de maintenance et à la concurrence du fax.

Il est légitime de s’interroger sur la promesse d’immuabilité d’une blockchain, des blocs qui la composent et des transactions qui s’y trouvent. Combien de temps une transaction insérée dans une blockchain survivra-t-elle ? Sera-t-elle encore là dans dix ans ou plus ? Des cas d’usage commerciaux, bancaires ou notariaux peuvent nécessiter une conservation de données pendant plusieurs dizaines d’années. Une blockchain apporte-t-elle une garantie de pérennité suffisante pour y répondre ?

1. Les acteurs qui font vivre une blockchain

Un nœud fonctionne sur un ordinateur. Si l’ordinateur tombe en panne ou est détruit, des milliers d’autres nœuds continuent d’héberger la blockchain. L’obsolescence des matériels, des systèmes d’exploitation, des logiciels ou des langages informatiques n’est donc pas une menace. Des nœuds hébergés sur de nouveaux matériels et de nouveaux systèmes d’exploitation avec de nouveaux logiciels écrits avec de nouveaux langages informatiques remplaceront en effet petit à petit les nœuds les plus anciens. Ils se synchroniseront avec la dernière version de la blockchain, assurant ainsi la pérennité de la chaîne, des blocs et des transactions. Encore faut-il que suffisamment de particuliers ou d’organisations aient la motivation nécessaire pour héberger des nœuds. Encore faut-il que suffisamment...

Comment sécuriser les blockchains ?

1. Analyser les risques

En l’espace d’une dizaine d’années sont apparues des milliers de blockchains extrêmement diverses dans leurs buts, leurs principes, leurs périmètres, leurs implémentations et leurs capacités. Les protocoles de consensus, les mécanismes de protection contre la double dépense, les typologies et le nombre d’acteurs et de parties prenantes, les modes de gouvernance, les algorithmes cryptographiques, les volumes de transactions, les types et montants de cryptoactifs manipulés, les modèles économiques, les infrastructures sous-jacentes, les capacités des contrats exécutés sur la blockchain, sont autant de caractéristiques qui participent à la très grande diversité des projets et solutions basées sur les technologies blockchain. L’écosystème au sein duquel les blockchains existent s’est largement complexifié, avec des mineurs ou validateurs, des plateformes d’échange centralisées ou décentralisées, des contrats, des tokens, des oracles, des ponts, etc.

De nombreuses solutions et de nombreux projets basés sur les technologies blockchain se sont éloignés fortement du cas d’usage de Bitcoin, de son modèle de menace et des protocoles, algorithmes et mécanismes conçus ou sélectionnés pour maîtriser les risques identifiés. Bitcoin a été créé pour répondre à un unique besoin, la monnaie électronique, avec un modèle de menace volontairement très simple : les utilisateurs de Bitcoin ne veulent pas dépendre d’un tiers et ils ne veulent pas devoir faire confiance aux autres participants.

Dès que des cas d’usage, comme le notariat, sont rajoutés, dès que de nouvelles couches technologiques, comme les contrats, sont intégrées, dès que de nouveaux composants, comme les oracles, apparaissent, le modèle de menace et l’efficacité des moyens mis en place pour couvrir les risques sont grandement modifiés. L’assurance que les caractéristiques et qualités propres de la blockchain pensée par Satoshi Nakamoto permettent de maîtriser...

Notes

[1] "Bitcoin: A Peer-to-Peer Electronic Cash System", S.Nakamoto

[2]  "A purely peer-to-peer version of electronic cash would allow online payments to be sent directly from one party to another without going through a financial institution."

[3] "Digital signatures provide part of the solution, but the main benefits are lost if a trusted third party is still required to prevent double-spending."

[4] "A Quantitative Analysis of the Impact of Arbitrary Blockchain Content on Bitcoin", R. Matzutt, J. Hiller, M. Henze, J. H. Ziegeldorf, D. Müllmann, O. Hohlfeld, K. Wehrle

[5] "To solve this, we proposed a peer-to-peer network using proof-of-work to record a public history of transactions that quickly becomes computationally impractical for an attacker to change if honest nodes control a majority of CPU power"

[6] "Botcoin: Monetizing Stolen Cycles", D. Y. Huang, H. Dharmdasani, S. Meiklejohn, V. Dave, C. Grier, D. McCoy, S. Savage, N. Weaver, A. C. Snoeren, K. Levchenko

[7] "Jenkins Miner: One of the Biggest Mining Operations Ever Discovered", Checkpoint

[8] "A First Look at the Crypto-Mining Malware Ecosystem: A Decade of Unrestricted Wealth", S. Pastrana, G. Suarez-Tangil

[9] :

  • "Low-cost attacks on Ethereum 2.0 by sub-1/3 stakeholders", M. Neuder, D. J. Moroz, R. Rao, D. C. Parkes

  • "Three Attacks on Proof-of-Stake Ethereum", C. Schwarz-Schilling, J. Neu, B. Monnot, A. Asgaonkar, E. Nusret Tas, D. Tse

  • "Two Attacks on Proof-of-Stake GHOST/Ethereum", J. Neu, E. Nusret Tas, D. Tse

[10] "Are Blockchains Decentralized? Unintended Centralities in Distributed Ledgers", E. Sultanik, A. Remie, F. Manzano, T. Brunson, S. Moelius, E. Kilmer, M. Myers, T. Amir, S. Schriner

[11] "Cryptocurrency Anti-Money Laundering Report - Q3 2018", CipherTrace"

[12] "Art of Steal: Satori Variant is Robbing ETH BitCoin by Replacing Wallet Address", Qihoo 360...