La blockchain de la crypto-monnaie bicoin est un système de confiance informatisé qui permet de se passer de tiers (par exemple une banque) pour garantir le bon déroulement des transactions et les valider. Elle garde une trace de toutes les transactions en bitcoins qui se sont produites depuis l'origine. Plus la blockchain de la crypto-monnaie Bitcoin grossit – elle pèse plus de 130 gigaoctets
aujourd’hui -, plus les moyens à mobiliser pour la compromettre sont gigantesques. Afin de ne pas
prêter le flanc à une attaque informatique, cet historique horodaté des transactions en bitcoins
n’est pas stocké sur les serveurs d’une entité unique, qui pourrait être une banque, mais répliqué
sur l’ensemble des ordinateurs du réseau Bitcoin. Cette architecture décentralisée, héritée du
peer-to-peer, s'est imposée comme référence en terme de stabilité et de sécurité.
Appelés « mineurs », les ordinateurs du réseau Bitcoin, dont on estime le nombre à plusieurs
milliers et qui sont répartis dans plus de 80 pays, hébergent chacun une copie de la blockchain
qu'ils se chargent de mettre à jour au fur et à mesure que de nouveaux blocs de transactions sont
validés. Ces « mineurs » ont une autre fonction : ils mettent volontairement à la disposition du
réseau Bitcoin leurs capacités de calcul pour valider de nouveaux blocs de transactions. Cette
activité, qu'on appelle le « minage », exige une énorme puissance de calcul. Elle est rétribuée par
l'émission de nouveaux bitcoins, et par une faible commission sur les transactions.
Les milliers de mineurs du réseau Bitcoin se font concurrence pour valider de nouveaux blocs de
transactions. C'est le mineur qui parvient à valider un bloc le premier qui empoche la rémunération
prévue. Un nouveau bloc est validé toutes les dix minutes en moyenne.
Le minage est le seul moyen de générer de nouveaux bitcoins. C'était le seul moyen de s'en procurer à l'origine. Des
plateformes d'échange ont vu le jour depuis, qui permettent d'en acheter ou d'en vendre. D'abord rémunéré 50 bitcoins (BTC),
le minage d'un bloc de transactions ne rapportait plus que 25 BTC en 2016. Sa rémunération est passée à 12,5 BTC en juillet
2016. Le code source du logiciel Bitcoin prévoit qu'elle soit divisée par deux tous les 210 000
blocs validés, soit environ tous les quatre ans. Le système de génération de bitcoins limite à 21 millions le nombre de bitcoins qui pourront être créés. Cette règle vise à éviter tout phénomène d'inflation monétaire. Le minage ne sera alors plus rémunéré que par des commissions sur les transactions.
Au cours du processus de minage, chaque nouveau bloc de transactions traité doit être estampillé
d’un « hashcash », ou somme de contrôle, qui va permettre à tous les mineurs de vérifier son
intégrité avant de l'ajouter à leur copie de la blockchain. Cette série de 32 caractères est obtenue au terme d’un calcul cryptographique réalisé à partir des données du bloc (on parle d'exécution d'une "fonction de hachage"). Ces données incluent
le hashcash du bloc précédent (pour le chaînage des blocs, d'où l’appellation de blockchain, ou
« chaîne de blocs ») ; le montant des transactions et les adresses Bitcoin des parties ; ainsi qu'un timestamp, ou marque d'horodatage (repère temporel). En informatique, l'horadatage consiste à lier un événement, une information ou une donnée à une date et une heure précises. C'est une sorte de cachet de la poste, une preuve d'antériorité qui contribue à garantir l'intégrité du bloc.
Le
hashcash est une empreinte numérique des données du bloc qui permet à la fois de l'identifier et
de vérifier qu’il n’a pas été corrompu. Autant son calcul est rendu complexe et nécessite des équipements de plus en plus lourds, autant les mineurs peuvent en vérifier rapidement la conformité. Modifier un seul caractère du bloc produit une somme de contrôle différente, ce qui permet de détecter toute corruption des
données source. Dans le dispositif de la blockchain, le calcul du hashcash de chaque bloc de transactions est une
sorte d’épreuve imposée aux mineurs. Il joue un rôle de « preuve
de travail » (proof-of-work en anglais). En clair, il garantit que la compromission du réseau
nécessite une telle puissance de calcul qu’elle relève de l’impossible.
La tâche qui requiert le plus de puissance informatique n'est pas tant de calculer
des empreintes numériques des blocs de transactions, ce qu'un ordinateur peut faire en une
fraction de seconde, que d'en calculer un nombre indéfini, à partir des données du bloc et d'une
chaîne de caractères aléatoire différente à chaque fois (appelée « nonce »), jusqu'à parvenir à
produire une empreinte conforme à une difficulté cible. Cette difficulté cible, appelée « difficulté de
minage », peut consister, par exemple, à recommencer le calcul jusqu'à obtenir une empreinte
commençant par un nombre défini de zéro, ce qui est parfaitement aléatoire et nécessite
d'effectuer un nombre tout aussi aléatoire de tentatives infructueuses.
Pour parvenir à ce résultat, les équipements spécifiques dédiés au minage sont capables de
calculer des milliers de milliards d'empreintes par seconde. C'est ce qu'on appelle le hashrate, ou taux de "hachage". Le hashrate des matériels de minage s'exprime en « gigahash » par seconde
(GH/s), ce qui correspond à un milliard de hash, ou empreintes, calculés chaque seconde. Certains matériels affichent une capacité de calcul
en « terahash » par seconde (TH/s), soit plusieurs milliers de milliards d'empreintes. Le jour où j'écris ces lignes, le taux de hachage global de tous les mineurs du réseau Bitcoin a été de près de 8 milliards de GH/s, pour miner 173 nouveaux blocs de transactions.
Exprimée en multiple de la capacité de calcul
déployée pour générer le premier bloc de transactions en bitcoins, la difficulté de minage est
ajustée tous les 2016 blocs de transactions résolus, en fonction de la montée en puissance de
calcul du réseau, et de manière à ce que la génération des 2016 blocs suivants dure toujours quatorze jours. Le système Bitcoin maintient cet intervalle à des fins d'autorégulation. Grâce au réglage automatique de la difficulté de minage, le protocole Bitcoin prévient qu'un trop grand nombre de transactions ne vienne submerger le réseau ; par exemple, avec le développement d'activités de micro-trading.
La difficulté de minage, et par la même occasion la sécurité du réseau, augmentent au fur et à
mesure que le nombre de mineurs augmente, ou que les équipements utilisés pour le minage
montent en puissance. Le minage n'est plus une activité accessible ou rentable pour
les particuliers, comme ce fut le cas aux premiers temps du bitcoin. Seuls quelques
sites industriels suréquipés parviennent à tirer leur épingle du jeu aujourd'hui. Les processeurs d'ordinateurs personnels (CPU) ne sont plus assez puissants. Ce sont des circuits intégrés spécifiquement
conçus pour cette activité (ou ASIC, pour Application-Specific Integrated Circuit) qui s'en chargent.
Ces circuits ASIC sont beaucoup moins énergivores que les CPU. Faire du minage nécessite
désormais de s'équiper d'appareils spécialisés qui en sont dotés, et qui peuvent coûter plusieurs
centaines ou milliers d'euros pièce, sachant qu'une ferme de minage peut en exploiter plusieurs milliers.
Le calcul du hashcash, imposé aux mineurs pour sécuriser l'enregistrement d'un nouveau bloc de
transactions dans la blockchain, n'est pas le seul dispositif cryptographique mis en oeuvre dans le
système Bitcoin. La sécurité des transactions elles-mêmes est assurée par le biais d'un système
cryptographique « à double clé », publique et privée, dit « asymétrique ». Le principe est simple. Les deux interlocuteurs disposent chacun de deux clés (des séries de chiffres et de caractères) :
l'une publique, qu'ils diffusent largement ; l'autre privée, qu'ils gardent secrète. S'il doit garantir la
confidentialité de son message, l'expéditeur le code en utilisant la clef publique du destinataire, qui
devra utiliser sa propre clef privée pour le déchiffrer. S'il doit authentifier son message, l'émetteur
ajoute un champ d'identification (sa « signature numérique »), qu'il génère avec sa clef privée. Le
destinataire pourra vérifier la validité de la signature avec la clef publique de l'expéditeur. L'intérêt
est de ne pas avoir à échanger la clé permettant de déchiffrer le message ou de vérifier son
authenticité, ce qui constituerait une vulnérabilité.
Tout système de cryptographie asymétrique permet de cumuler ces deux fonctions de
confidentialité et d'authentification. Dans le cas de la crypto-monnaie bitcoin, la problématique n'est pas d'assurer la
confidentialité des transactions, dont les données circulent en clair sur le réseau, mais
d'authentifier les parties, c'est à dire de s'assurer que les montants seront déduits des bons
comptes émetteurs et crédités sur les bons comptes destinataires. Pour ce faire, l'émetteur d'une
transaction doit la signer « cryptographiquement » avec sa clé privée, qui doit correspondre à la
clé publique du compte à partir duquel la transaction est effectuée. A aucun moment le logiciel Bitcoin n'utilise des données personnelles pour identifier les parties
d'une transaction. Leur adresse Bitcoin, qui est une empreinte (ou hash) de leur clé publique, est
la seule référence utilisée. Et seule la clé privée correspondante permet d'utiliser les bitcoins
crédités à cette adresse. En cas de perte de la clé privée, qui peut-être stockée sur un ordinateur, un téléphone
mobile ou une clé USB (voire écrite à la main sur un bout de papier), ces bitcoins resteront à jamais inaccessibles.
Inscription à :
Publier les commentaires (Atom)
L'effondrement qui vient...
Notre monde est devenu un amoncellement de systèmes complexes - politiques, économiques, industriels, financiers - qui s'imbriquent le...

-
Il n'y a d'argent facile que pour les riches. Lorsque le président Macron déclare à une employée de maison de retraite qu'il n...
-
( english translation ) Nous sommes entrés dans l'ère de la "cryptosphère". C'est la raison principale qui me pousse à...
J'oublie de souligner une notion importante, me signale un lecteur : le hashcash du blog est calculé à partir de ses données, qui intègrent aussi, outre le hashcah du blog précédent et les transactions à valider, un timestamp, ou marque d'horodatage (repère temporel). En informatique, l'horadatage consiste à lier un événement, une information ou une donnée à une date et une heure précises. C'est une sorte de cachet de la poste, une preuve d'antériorité qui contribue à garantir l'intégrité du bloc.
RépondreSupprimerarticle mis à jour
Supprimer