La blockchain est soutenue par deux technologies fondamentales : le hachage, ou calcul informatique de l'empreinte d'une information
(Sous-section I)
et la cryptographie dite « asymétrique » à travers le couple clé publique et clé privée
(Sous-section II)
.
Les caractéristiques communes
Les caractéristiques communes
Le hachage des données
– Sous quelle forme s'échangent les documents ? Sous la forme transcrite en caractères numériques d'un document ou schéma écrit classique. Il s'agit de la technique du hachage, ou transformation et réduction d'un document sous format numérique. Une donnée est alors transformée en empreinte numérique par une suite d'opérations et instructions (les algorithmes). En clair, le document objet du message se présente comme un condensé cryptographique sous forme de séquence de caractères alphanumériques de longueur fixe.
- la valeur de hachage d'un message se calcule « très rapidement » ;
- il est, par définition, impossible pour une valeur de hachage donnée de construire un message ayant cette valeur de hachage ;
- il est, par définition, impossible de modifier un message sans changer sa valeur de hachage ; on parle de fonctions à sens unique, puisqu'il est impossible de retrouver le fichier dont est issue une empreinte. L'empreinte ne permet pas de connaître le contenu du fichier d'entrée ;
- il est, par définition, impossible de trouver deux messages différents ayant la même valeur de hachage.
Comme le souligne le professeur Legeais, les qualités complémentaires du procédé de hachage cryptographique pour assurer l'intégrité et l'historique des transactions sont quadruples
Op. cit.
:
Une clé privée et une clé publique
– Cryptographie asymétrique. – Pour échanger et stocker des données de manière sécurisée, on recourt à la cryptographie asymétrique, plus sûre que celle symétrique car elle suppose que chaque partie – l'émetteur et le récepteur du message – ait le même code, dispose de la même clé, unique. Le procédé consiste à crypter les messages en conférant deux clés à une personne, une clé publique qui peut être connue de tous et une clé privée qui demeure confidentielle. Le calcul de la clé publique s'obtient à partir de la clé privée. Séduisant techniquement, le procédé est parfois critiqué pour n'être pas infaillible à toute épreuve… l'épreuve de la cryptographie
A. Bensoussan, Blockchain : de la technologie des algorithmes à la technique juridique : Dalloz IP/IT juill.-août 2019, 420.
.
Seule la clé privée peut déchiffrer un message chiffré grâce à la clé publique qui y est associée. Là réside la confidentialité de l'échange, hors d'une connaissance humaine de l'autre partie. Ce qui importe est de garantir la fiabilité de la transaction. Ainsi c'est par la clé publique correspondant à la clé privée ayant servi à signer la transaction que l'opération demeure fiable
V. É. A. Caprioli, La blockchain ou la confiance dans une technologie : JCP G 2016, no 23, art. 672.
. Chaque utilisateur est ainsi capable de vérifier la validité des transactions sur le registre constitué par la blockchain.
Rappelons que le logiciel de la blockchain s'assure que chaque nœud accepte, dans un processus appelé « consensus », les informations déposées. Ici interviennent les clés : chaque acteur, émetteur ou récepteur a un identifiant qui permet de le tracer (sans révéler son identité ; les échanges sont dits « pseudonymes » et non « anonymes »). Ces identifiants sont précisément la paire de clés électroniques possédée par chaque membre de la communauté : la clé publique qui contient son adresse et la clé privée qui permet de signer les transactions.
– Ordres donnés et usage des clés. – Concrètement, chaque nœud du réseau reçoit en permanence des messages proposant de nouvelles transactions à ajouter à la blockchain. La transaction initialisée est transmise via internet sous la forme d'une requête signée avec la clé privée de l'émetteur de la transaction, pour vérification non pas par un tiers de confiance, mais par les ordinateurs du réseau : les mineurs
M. Mekki, Les mystères de la blockchain : D. 2017, p. 2160.
.
L'application blockchain installée sur le serveur d'un mineur vérifie alors la validité de la transaction (vérification de la clé, de la détention de somme d'argent). Il s'agit de découvrir, lire, l'information en entête de chaque bloc, nommée « nonce », pour reconnaître le bloc concerné dans la chaîne. C'est une opération très complexe et grande consommatrice d'énergie ; sur cet aspect, elle prête le flanc à la critique
V. Gautrais, Les sept péchés de la blockchain : éloge du doute ! : Dalloz IP/IT juill.-août 2019, 432.
.
Dès qu'un mineur découvre un nonce satisfaisant
R. Baron, Aspects techniques de la technologie blockchain, in Blockchain et droit, préc., p. 7.
, il diffuse cette information à tous les nœuds du réseau ; cette étape est qualifiée de « preuve de travail » (proof-of-work). En rétribution de leur contribution, les mineurs perçoivent des bitcoins, nouvellement émis.
Tous les acteurs de la blockchain disposent enfin d'une copie du registre. C'est par là un registre distribué réalisant une transmission de pair-à-pair.
- qu'une inscription numérique reste unique (elle ne peut pas être dépensée deux fois – double spend) ;
- que le support sur lequel elle est inscrite (la chaîne de blocs) ne puisse pas être altéré – ou du moins que cette altération soit visible et son coût fortement dissuasif.
La détention pratique d'un bitcoin prend diverses formes, qui illustrent l'une des variables de la technologie blockchain.
– L'inaltérabilité des transactions. – L'utilisation des clés est l'un des rouages de la blockchain permettant d'éviter la duplication. Son mécanisme de numérotation électronique
Protocoles utilisés par cette technologie, appelés « protocoles de consensus ».
permet en effet d'assurer :
Faire circuler, jamais dupliquer
En pratique, celui qui possède un ether ou un bitcoin – il est donc le détenteur d'une clé privée à laquelle est associé un solde de X cryptomonnaies – peut par l'envoi de transactions à la <em>blockchain</em> concernée le déplacer, le donner, le vendre, mais jamais le dupliquer, c'est-à-dire le dépenser deux fois. Si le réseau reçoit l'envoi de deux transactions d'envoi portant sur le même actif, seule la première transaction insérée dans un bloc sera traitée, l'autre sera considérée par les participants comme invalide (car portant sur un actif déjà transféré) et rejetée par le réseau.