II. DES BLOCS « HORODATÉS » RELIÉS PAR LA CRYPTOGRAPHIE : LE FONCTIONNEMENT DE LA CHAÎNE DE BLOCS

Le bitcoin repose sur un protocole sous-jacent appelé blockchain . On parle de chaînes de blocs, ou blockchains , car les transactions effectuées entre les utilisateurs du réseau sont regroupées par blocs 16 ( * ) « horodatés ». C'est cet aspect précis de la technologie blockchain , objet du présent développement, qui a conduit à donner, par métonymie, son nom à l'ensemble de ces protocoles.

Une fois le bloc validé, en moyenne toutes les dix minutes pour le bitcoin, la transaction devient visible pour l'ensemble des détenteurs du registre, potentiellement tous les utilisateurs, qui vont alors l'ajouter à leur chaîne de blocs. Selon Blockchain France, « une blockchain est une base de données numérique infalsifiable sur laquelle sont inscrits tous les échanges effectués entre ses utilisateurs depuis sa création ».

Représentation d'une chaîne de blocs

Source : Blockchain France

Le protocole de Nakamoto se fonde sur deux outils cryptographiques alors déjà connus et étudiés : la signature électronique à clé publique fondée sur des algorithmes asymétriques et les algorithmes de hashage. Tous deux sont des fonctions à sens unique, c'est-à-dire qu'ils peuvent aisément être calculés, mais impossibles à inverser. Ils ont toutefois un fonctionnement et des usages bien distincts.

A. L'UTILISATION D'ALGORITHMES ASYMÉTRIQUES

1. Un système reposant sur une paire de clés, publique et privée

Chaque transaction a recours à la cryptographie asymétrique , proposée pour la première fois par Diffie et Hellman en 1976, et aujourd'hui très répandue pour sécuriser les échanges d'informations car elle permet d'assurer l'origine des données tout en préservant leur confidentialité. Elle fonctionne, pour chaque utilisateur, avec une paire de clés, l'une privée et l'autre publique .

Cette paire de clés présente le double intérêt de chiffrer ou de signer un message. Dans le cadre du Bitcoin, seule sa fonction de signature est utilisée.

Dans ce système, un utilisateur crée une suite aléatoire de chiffres, appelée clé privée . À partir de celle-ci un algorithme permet de produire une seconde clé appelée clé publique . Pour le bitcoin, il s'agit d'un algorithme de signature numérique à clé publique dit à courbes elliptiques 17 ( * ) , appelé ECDSA (pour Elliptic Curve Digital Signature Algorithm ). Par la suite, cette clé privée permettra de signer un message. Les autres utilisateurs du réseau qui connaissent la clé publique correspondante pourront alors vérifier qu'il est bien l'auteur de ce message.

Schéma explicatif de la paire clé publique/clé privée

Source : Wikimedia Commons

Même si elles sont liées de manière unique, la clé publique ne permet pas de retrouver la clé privée qui en est à l'origine . La clé publique peut donc être diffusée largement. Ainsi, lors d'une transaction sur le réseau, l'émetteur va utiliser la clé publique du récepteur pour lui transférer un certain nombre de satoshis. Ces derniers représentent la plus petite fraction de bitcoin , un satoshi équivalent à 0,00000001 bitcoin 18 ( * ) .

Tous les membres du réseau pourront alors lire la transaction et vérifier que l'émetteur était effectivement le dernier possesseur des satoshis envoyés. Seul le récepteur pourra signer la transaction avec sa clé privée pour en prouver la possession.

2. Un système pseudonyme plus qu'anonyme

Sans autre indice, on ne peut identifier le propriétaire d'une clé publique, mais si le lien est fait, on peut alors retracer toutes les transactions qu'il a reçues et envoyées. Le bitcoin est donc un système pseudonyme plus qu'anonyme.

La clé publique est diffusable et permet de recevoir des transactions, la clé privée est quant à elle gardée secrète. Seule la clé privée permet d'utiliser les transactions reçues, c'est pourquoi sa préservation est cruciale. En cas de vol ou de perte, il n'existe aucun moyen de récupérer les bitcoins qui ont été envoyés à la clé publique appariée. On estime ainsi qu'entre un cinquième et un tiers de l'ensemble des bitcoins ne sont plus utilisables.

Sans autre indice, on ne peut identifier le propriétaire d'une clé publique, mais dès lors que le lien est fait, on peut retracer toutes les transactions qu'il a reçues et envoyées.

3. L'horodatage (timestamping)

Les blocs ainsi constitués de plusieurs transactions « signées » par clés publiques sont ensuite « horodatés » ( timestamped ) par leur auteur. Cet aspect, appelé horodatage, est essentiel car il permet la datation relative des blocs ainsi constitués, la blockchain formant à cet égard une sorte de chronologie dans laquelle les transactions sont classées les unes après les autres. L'accès à l'historique du registre étant totalement ouvert, les auteurs de tel ou tel bloc peuvent se trouver à n'importe quel point tout autour du globe. Plusieurs blocs pourraient donc être constitués au même moment, de sorte que la même transaction ou deux transactions incompatibles puissent se diffuser de pair à pair.

Le protocole inventé par Nakamoto propose une solution pour limiter le risque qu'une telle production simultanée de deux blocs se produise, et s'assurer qu'un bloc valide ait le temps de se diffuser dans l'ensemble du réseau avant qu'un suivant ne soit créé. Pour la comprendre, il est nécessaire d'évoquer préalablement le fonctionnement des fonctions de hachage.


* 16 En 1991, Stuart Haber et W. Scott Stornetta furent les premiers à proposer une chaine de blocs permettant l'horodatage : https://link.springer.com/article/10.1007%2FBF00196791

* 17 L'ECDSA est inventé en 1992 par Scott Vanstone, en vue de créer un nouveau système de signatures numériques au sein de l'organisme américain de standardisation, le National Institute of Standards and Technology (NIST), cf. ftp://ftp.iks-jena.de/mitarb/lutz/standards/ansi/X9/x963-7-5-98.pdf

Il s'agit comme l'explique l'article suivant d'une technologie clé pour le bitcoin : https://web.archive.org/web/20160315110426/http://www.e-ducat.fr/bitcoin-2/securite-signatures-ecdsa/

* 18 Un bitcoin est donc équivalent à 100 millions de satoshis.

Les thèmes associés à ce dossier

Page mise à jour le

Partager cette page