211service.com
À quel point la blockchain est-elle vraiment sécurisée ?
Monsieur Tech
L'intérêt d'utiliser une blockchain est de permettre aux gens, en particulier ceux qui ne se font pas confiance, de partager des données précieuses de manière sécurisée et inviolable. En effet, les blockchains stockent des données à l'aide de mathématiques sophistiquées et de règles logicielles innovantes qui sont extrêmement difficiles à manipuler pour les attaquants. Mais la sécurité des systèmes de blockchain, même les mieux conçus, peut échouer là où les règles mathématiques et logicielles fantaisistes entrent en contact avec les humains, qui sont des tricheurs qualifiés, dans le monde réel, où les choses peuvent devenir désordonnées.
Pour comprendre pourquoi, commencez par ce qui rend les blockchains sécurisées en principe. Bitcoin en est un bon exemple. Dans la blockchain de Bitcoin, les données partagées sont l'historique de chaque transaction Bitcoin jamais effectuée : un grand livre comptable. Le registre est stocké en plusieurs copies sur un réseau d'ordinateurs, appelés nœuds. Chaque fois que quelqu'un soumet une transaction au grand livre, les nœuds vérifient que la transaction est valide, c'est-à-dire que celui qui a dépensé un bitcoin avait un bitcoin à dépenser. Un sous-ensemble d'entre eux se fait concurrence pour regrouper des transactions valides en blocs et les ajouter à une chaîne de transactions précédentes. Les propriétaires de ces nœuds sont appelés des mineurs. Les mineurs qui réussissent à ajouter de nouveaux blocs à la chaîne gagnent des bitcoins en récompense.
Cette histoire faisait partie de notre numéro de mai 2018
- Voir la suite du problème
- S'abonner
Ce qui rend ce système théoriquement inviolable, c'est deux choses : une empreinte cryptographique unique à chaque bloc, et un protocole de consensus, le processus par lequel les nœuds du réseau s'accordent sur un historique partagé.
L'empreinte digitale, appelée hachage, nécessite beaucoup de temps de calcul et d'énergie pour être générée initialement. Cela sert donc de preuve que le mineur qui a ajouté le bloc à la blockchain a fait le travail de calcul pour gagner une récompense en bitcoin (pour cette raison, on dit que Bitcoin utilise un protocole de preuve de travail). Il sert également en quelque sorte de sceau, car modifier le bloc nécessiterait de générer un nouveau hachage. Cependant, il est facile de vérifier si le hachage correspond ou non à son bloc, et une fois que les nœuds l'ont fait, ils mettent à jour leurs copies respectives de la blockchain avec le nouveau bloc. C'est le protocole de consensus.
Le dernier élément de sécurité est que les hachages servent également de liens dans la blockchain : chaque bloc inclut le hachage unique du bloc précédent. Donc, si vous souhaitez modifier rétroactivement une entrée dans le grand livre, vous devez calculer un nouveau hachage non seulement pour le bloc dans lequel il se trouve, mais également pour chaque bloc suivant. Et vous devez le faire plus rapidement que les autres nœuds ne peuvent ajouter de nouveaux blocs à la chaîne. Ainsi, à moins que vous n'ayez des ordinateurs plus puissants que le reste des nœuds combinés (et même dans ce cas, le succès n'est pas garanti), tous les blocs que vous ajouterez entreront en conflit avec ceux existants, et les autres nœuds rejetteront automatiquement vos modifications. C'est ce qui rend la blockchain inviolable, ou immuable.
Façons créatives de tricher
Voilà pour la théorie. Sa mise en œuvre concrète est plus difficile. Le simple fait qu'un système fonctionne comme Bitcoin - comme le font de nombreuses crypto-monnaies - ne signifie pas qu'il est tout aussi sécurisé. Même lorsque les développeurs utilisent des outils cryptographiques éprouvés, il est facile de les assembler accidentellement de manière non sécurisée, explique Neha Narula, directrice de la Digital Currency Initiative du MIT. Le bitcoin existe depuis le plus longtemps, c'est donc le plus testé au combat.
Les gens ont également trouvé des moyens créatifs de tricher. Emin Gün Sirer et ses collègues de l'Université Cornell ont montré qu'il existe un moyen de subvertir une blockchain même si vous avez moins de la moitié de la puissance minière des autres mineurs. Les détails sont quelque peu techniques, mais essentiellement un mineur égoïste peut obtenir un avantage injuste en trompant d'autres nœuds en leur faisant perdre du temps sur des crypto-puzzles déjà résolus.
Une autre possibilité est une attaque par éclipse. Les nœuds de la blockchain doivent rester en communication constante afin de comparer les données. Un attaquant qui parvient à prendre le contrôle des communications d'un nœud et à le tromper en acceptant de fausses données qui semblent provenir du reste du réseau peut le tromper en gaspillant des ressources ou en confirmant de fausses transactions.
Enfin, peu importe à quel point un protocole blockchain est inviolable, il n'existe pas dans le vide, dit Sirer. Les hacks de crypto-monnaie qui font les gros titres récents sont généralement des échecs aux endroits où les systèmes de blockchain se connectent au monde réel, par exemple, dans les clients logiciels et les applications tierces.
Les pirates peuvent, par exemple, s'introduire dans des portefeuilles chauds, des applications connectées à Internet pour stocker les clés cryptographiques privées dont toute personne possédant une crypto-monnaie a besoin pour la dépenser. Les portefeuilles détenus par les échanges de crypto-monnaie en ligne sont devenus des cibles de choix. De nombreux échanges affirment qu'ils conservent la majeure partie de l'argent de leurs utilisateurs dans des portefeuilles matériels froids, des périphériques de stockage déconnectés d'Internet. Mais comme l'a montré le braquage en janvier de plus de 500 millions de dollars de crypto-monnaie de la bourse japonaise Coincheck, ce n'est pas toujours le cas.
Les points de contact les plus compliqués entre les blockchains et le monde réel sont peut-être les contrats intelligents, qui sont des programmes informatiques stockés dans certains types de blockchain qui peuvent automatiser les transactions. En 2016, les pirates ont exploité une bizarrerie imprévue dans un contrat intelligent écrit sur la blockchain d'Ethereum pour voler 3,6 millions d'éther, d'une valeur d'environ 80 millions de dollars à l'époque, à l'Organisation autonome décentralisée (DAO), un nouveau type de fonds d'investissement basé sur la blockchain.
Étant donné que le code DAO vivait sur la blockchain, la communauté Ethereum a dû pousser une mise à jour logicielle controversée appelée hard fork pour récupérer l'argent, créant essentiellement une nouvelle version de l'histoire dans laquelle l'argent n'a jamais été volé. Les chercheurs développent encore des méthodes pour s'assurer que les contrats intelligents ne fonctionneront pas mal.
La question de la centralisation
Une supposée garantie de sécurité d'un système blockchain est la décentralisation. Si des copies de la blockchain sont conservées sur un réseau de nœuds vaste et largement distribué, il n'y a pas de point faible à attaquer, et il est difficile pour quiconque d'accumuler suffisamment de puissance de calcul pour subvertir le réseau. Mais les travaux récents de Sirer et de ses collègues montrent que ni Bitcoin ni Ethereum ne sont aussi décentralisés qu'on pourrait le penser. Ils ont constaté que les quatre principales opérations d'extraction de bitcoins détenaient plus de 53% de la capacité d'extraction moyenne du système par semaine. Selon la même mesure, trois mineurs d'Ethereum représentaient 61 %.
Certains disent que des protocoles de consensus alternatifs, peut-être ceux qui ne reposent pas sur l'exploitation minière, pourraient être plus sûrs. Mais cette hypothèse n'a pas été testée à grande échelle, et les nouveaux protocoles auraient probablement leurs propres problèmes de sécurité.
D'autres voient un potentiel dans les blockchains qui nécessitent une autorisation pour se joindre, contrairement au cas de Bitcoin, où toute personne qui télécharge le logiciel peut rejoindre le réseau. De tels systèmes sont contraires à la philosophie anti-hiérarchique des crypto-monnaies, mais l'approche séduit les institutions financières et autres qui cherchent à exploiter les avantages d'une base de données cryptographique partagée.
Les systèmes autorisés, cependant, soulèvent leurs propres questions. Qui a le pouvoir d'accorder l'autorisation ? Comment le système garantira-t-il que les validateurs sont bien ceux qu'ils prétendent être ? Un système autorisé peut rendre ses propriétaires plus sûrs, mais cela leur donne vraiment plus de contrôle, ce qui signifie qu'ils peuvent apporter des modifications, que les autres participants du réseau soient d'accord ou non, ce que les vrais croyants verraient comme une violation de l'idée même de la blockchain.
Donc, au final, la sécurité finit par être très difficile à définir dans le contexte des blockchains. Sécurisé auprès de qui ? Sécurisé pour quoi ? Cela dépend de votre point de vue, dit Narula.
