Sécurité du Bitcoin & des cryptos

Selon Satoshi Nakamoto, la blockchain permet d’authentifier et de sécuriser les opérations effectuées sur le réseau tout en assurant l’anonymat de chaque individu. En revanche, sur la blockchain, ce ne sont ni des coquillages, ni des pierres, ni des dollars ou des euros qui s’échangent, mais des actifs numériques, appelés bitcoins.


Afin de comparer le système proposé par Satoshi Nakamoto, observons le système bancaire actuel. De manière courante, en Europe, au sein des structures bancaires habituelles, un individu lambda (appelé ici Damien) peut demander à sa banque, par exemple la Société Générale, de payer un autre individu (appelé ici Xavier) ayant pour intermédiaire une autre banque, par exemple la BNP. L’ordre passera donc du compte de Damien, à la Société Générale, puis à la Banque Centrale Européenne (ci-après « BCE ») qui va enregistrer et authentifier la transaction, avant de repasser par la BNP, qui inscrira la transaction dans les comptes de Xavier. Ces opérations s'effectueront moyennant des frais bancaires de tenue de compte.


Dans une structure commerciale habituelle, lorsque Damien choisit d’acheter une chemise, auprès de Xavier, vendeur chez Zara, Damien paiera en utilisant sa carte bleue en caisse : la Société Générale passera par la société qui héberge les transactions, probablement Mastercard, puis par la société qui fournit la carte bancaire, probablement VISA, avant de confirmer la réalisation de la transaction auprès de la Société Générale. La banque passera ensuite, à nouveau, par la BCE pour enregistrer la transaction, avant de soit crédité le compte de Xavier (le commerçant) auprès de sa banque la BNP. Ces opérations entraînent des frais de tenue de compte, ainsi que des frais supplémentaires auprès de Mastercard et de VISA.


Or, dans la structure numérique telle qu’imaginée par Satoshi Nakamoto, l’opération se fait du client A au client B, tout simplement. On parle d’échanges pair-à-pair[1]. On supprime ici tous les intermédiaires, sans frais supplémentaires, et sans autorité centrale qui accorde le droit de réaliser une opération.


Se pose alors une interrogation:


Pourquoi conserver tous ces intermédiaires si l’on peut passer par un système permettant de réaliser la même opération à moindre coût ?


Techniquement, la blockchain est une « méta-technologie[2] » combinant plusieurs technologies avec (i) Internet et (ii) « une base de données, une application logicielle, un certain nombre d’ordinateurs connectés, des clients pour y accéder, un environnement logiciel autour et des outils pour la contrôler ». En outre, comme on l’a dit, les opérations réalisées sur le réseau se font en bitcoin (de « bit » : unité d’information binaire, et de l’anglais « coin » : pièce de monnaie).


Définition bien trop compliquée. Voyons ce qui se cache derrière cette notion.


Si l’on a parlé de sécurité, de vérification, et d’anonymat, c’est parce que le procédé pour réaliser les échanges au sein de la blockchain passent par l’opération de « minage » ou d’autres membres du réseau, disposant d’un matériel informatique très puissant, appelés « mineurs[3]», vont authentifier toutes les opérations ayant eu lieu au bout d’un certain temps - environ toutes les 10 minutes - et les inscrire après vérification afin de créer un « bloc », appelé « preuve de travail ». Cette notion de preuve de travail s'inspire du paradoxe des généraux byzantins sur lequel on va s'attarder maintenant.


La blockchain de Satoshi Nakamoto, et plus globalement, l’ensemble des blockchains se basent sur le paradoxe des généraux byzantins[5]. Ce paradoxe est une métaphore d’un problème mathématique traitant de la remise en cause de la fiabilité des transmissions et de l’intégralité des interlocuteurs.


Le problème est le suivant :


Plusieurs armées, avec chacune à sa tête un général, assiègent une ville ennemie. Les généraux doivent alors décider de se retirer, ou d’attaquer. Pour cela la décision doit être bonne et unanime. Toutefois, les généraux ne communiquent pas directement mais par des messagers. Or, des traîtres, soldats ou généraux (albanais), se cachent parmi les membres de l’armée afin d’empêcher les généraux, loyaux, de s’accorder ou de prendre une bonne décision. Par exemple, des généraux (albanais) peuvent décider d’envoyer le message « retraite », au lieu de « attaque », et convaincre ainsi certains généraux loyaux de se retirer et causer une défaite certaine.


Le problème est donc de se demander comment les généraux loyaux peuvent-ils parvenir à se mettre d’accord sur une stratégie- ou un algorithme nécessitant une certaine synchronisation de divers éléments fonctionnant dans le cadre d’un système informatique. Divers protocoles de sécurité, à commencer par la preuve de travail comme cité plus tôt, doivent être mis en oeuvre.


A. Proof-of-work


Le bitcoin, qui fonctionne sur un réseau décentralisé et partagé entre des participants détenant chacun une copie du registre des opérations, peut également rencontrer ce genre de paradoxe byzantin lors du processus d'exécution.


En effet, des utilisateurs « non loyaux » peuvent soumettre les autres membres du réseau à ce genre d’opérations malveillantes. En conséquence, le but est de trouver un algorithme permettant à tous les participants, honnêtes, de se mettre d’accord en présence de participants, malhonnêtes.


Si dans le cas de nos généraux byzantins, le but est de s’accorder sur la retraite ou l’attaque, le but ici pour le bitcoin est de parvenir à un consensus et se mettre d’accord sur qui détient quoi, qui possède ce nombre de bitcoins, etc...


On passera sous silence les détails mathématiques et algorithmiques ici, mais il a été démontré mathématiquement que pour résoudre ce paradoxe, il faut que les généraux loyaux, ou utilisateurs honnêtes, représentent plus de 2/3 de l’ensemble des individus présents dans la boucle.


Dans le cas du bitcoin, l’algorithme passe par la « preuve de travail » où, au bout d’un certain temps (environ 10 minutes), les mineurs vont vérifier et authentifier un « bloc » d’opérations faites en bitcoin en résolvant un problème mathématique et validant ainsi la chaîne de transactions la plus longue.


Pour un utilisateur malhonnête, il serait bien trop long et bien trop compliqué de falsifier une transaction puisqu’il devrait transformer la « preuve de travail » du bloc précédent, et de tous les blocs après lui, puis surpasser le travail de tous les autres utilisateurs honnêtes. Il semble que cela soit impossible puisque la probabilité de rattraper les autres utilisateurs honnêtes diminue au fur et à mesure que ces derniers construisent et valident de nouveaux blocs et les diffusent aux autres membres du réseau qui vont alors se synchroniser dessus[6].


La majorité des blockchains fonctionnent de nos jours sur cette preuve de travail, ce qui est très énergivore puisque les différents pools de minage vont être en « concurrence » afin de valider les opérations réalisées, cela implique un investissement très important.


Pour apporter une solution à ce problème, de nouvelles blockchains se créent et viennent proposer une nouvelle solution avec la « preuve d’enjeu » (PoS – Proof-of-Stake).


B. Proof-of-Stake


En effet, des nouvelles blockchains comme Ethereum[7] ou Cardano proposent maintenant une nouvelle forme d’authentification des opérations par la preuve d’enjeu, réduisant ainsi le minage énergivore du bitcoin. Par ce processus, plutôt que de proposer le minage des transactions à tout le réseau, un pool de mineurs pourra mettre en jeu son portefeuille de cryptos-actifs pour confirmer la transaction[8]. Si le pool cherche à frauder, il perdra tout son portefeuille.



Cette forme d’authentification permet ainsi aux actifs numériques en question d’être plus durables, plus robustes, plus efficients, et de taire les critiques concernant l’écosystème des cryptos-actifs et leur caractère énergivore. En effet, il apparaît qu’avec la preuve d’enjeu, il sera possible de réduire la consommation de l’écosystème d’environ 99,9%.



De plus, cela réduira les risques de centralisation étant donné que les fermes d’ordinateurs n’auront plus l’avantage de la puissance de calcul, les validateurs étant sélectionnés au hasard : on évitera ainsi le risque de « l’attaque des 51%[9]».


C. Alternatives


Par ailleurs, il existe également d’autres protocoles de vérification et d’authentification.


Tout d’abord, ce peut être la preuve d’autorité (PoA – Proof-of-Authority). Il s'agit d'une procédure qui ressemble au fonctionnement de la preuve d’enjeu, mais demande une « super majorité » pour que la validation de nouvelles opérations se fasse. De plus, cela nécessite que l’identité des validateurs soit publique, et vérifiable par une tierce partie. Toutefois, cette condition supplémentaire semble inopportune vis-à-vis du caractère anonyme et de la philosophie de décentralisation voulue par l’écosystème.


En outre, il existe également la preuve de temps écoulé (PoET – Proof-of-Elapsed-Time). Cette PoET a été mise au point par Intel et ressemble beaucoup à la preuve de travail. Néanmoins, elle s'en différencie sur un point important puisque les ordinateurs ne doivent pas résoudre des problèmes complexes, mais doivent attendre, pendant une période à la durée aléatoire. De ce fait, le protocole est beaucoup moins gourmand en énergie que la preuve de travail.


Enfin, on peut également citer la preuve d’importance (PoI – Proof-of-Importance). Il s’agit d’un protocole très semblable à la preuve d’enjeu, mais qui en est différente car la sélection du validateur est conditionnée à certains paramètres notamment : les actions récentes du compte, le nombre d’unités de cryptomonnaie que le compte possède, et le temps passé par le compte sur le réseau.


Voilà, vous savez désormais tout sur une partie du protocole de sécurité qui se cache derrière les différentes blockchains. En effet, l'autre partie passe par le hashage et la cryptographie asymétrique qui nous intéressera dans un prochain article. En espérant que celui-ci vous ait plu, je vous souhaite une agréable journée ! Bien à vous !

[1] D’où le nom du papier blanc de Satoshi Nakamoto – «a peer-to-peer electronic system ». [2] W. Mougayar, Business blockchain – pratiques et applications professionnelles, Dicoland, 2017 [3] Le terme de « mineurs » est utilisé comme référence aux chercheurs d’or qui augmentaient la somme des richesses au fur et à mesure de leur découverte. Ici, chaque mineur augmente la somme des richesses (en bitcoin) en validant un bloc et en obtenant en contrepartie des bitcoins. [4] Le Hash d’un fichier est une petite chaîne de bits qui caractérise le fichier – par exemple, la suite suivante est un hash déterminant un fichier : 7096e36e73cf1a30cd28b603bfb88226 [5] The Byzantine Generals Problem, L. Lamport, R. Shostak, M. Pease, 1982, disponible via : https://lamport.azurewebsites.net/pubs/byz.pdf, consulté le 25 novembre 2021 [6] On parle de « scalabilité » qui correspond à la capacité du réseau à traiter un nombre grandissant de transactions. [7] Foundation, Ethereum. A Country’s Worth of Power, No More!, disponible via: https://blog.ethereum.org/2021/05/18/country-power-no-more/, consulté le 7 décembre 2021 [8] Ethereum a annoncé qu’il faudra mettre en jeu 32 Ether (ETH – soit environ 66.000$) afin de pouvoir participer et devenir validateur [9] En réalité, il est toujours possible que cela arrive notamment sous le prisme du scénario appelé « 51% attack » où 51% des mineurs se rassembleraient et contrôleraient 51% de l’activité de minage ce qui leur permettraient de contrôler l’activité et l’exécution ou non des transactions.

17 vues0 commentaire

Posts similaires

Voir tout