La blockchain : futur tiers de confiance ?
Les principes de base de la technologie blockchain
Le Bitcoin vise à révolutionner les marchés monétaires grâce à son anonymat et à l’absence d’intermédiaire. Derrière ce succès se trouve une innovation technologique majeure : la blockchain. Garante de la sécurité de la monnaie numérique, elle peut également être utilisée différemment, notamment dans le secteur bancaire.
Cette première partie a pour objectif de vulgariser les principes de base de la technologie blockchain en matière de transactions financières. Elle se concentre sur ses grands principes et ses principales fonctionnalités. L’article ne traitera donc pas toutes les subtilités techniques sous-jacentes à cette technologie. Si vous souhaitez aborder ces aspects plus complexes, vous trouverez des liens vers lesquels vous diriger à la fin de l’article.
Merci à Blockchain France qui a contribué à la rédaction de cet article.
Qu’est-ce que la blockchain ?
La technologie blockchain est apparue en 2009 et a permis l’émergence de la célèbre crypto-monnaie Bitcoin.
La blockchain est une base de données transactionnelle distribuée. Autrement dit, on pourrait comparer cette technologie à un grand cahier dans lequel chaque nouvelle transaction (date, compte émetteur et compte récepteur, montant de la transaction…) est écrite à la suite des autres, sans avoir la possibilité d’effacer ces dernières.
Plusieurs transactions correspondent à un bloc et l’ensemble des blocs forment la chaîne, d’où le nom de « blockchain » / « chaîne de blocs ». Il serait donc plus juste de représenter le cahier (la blockchain) de la manière suivante :
Le numéro et le nombre de transactions dans chaque bloc ont été définis arbitrairement.
La blockchain est consultable publiquement : tous les utilisateurs peuvent y avoir accès en même temps depuis n’importe quel endroit. Certains procédés, auxquels nous allons nous intéresser, permettent d’avoir confiance en l’intégrité du système.
Le principe de décentralisation
L’un des piliers de cette technologie, qui a contribué à rendre si populaire le Bitcoin, est le principe de décentralisation : aucune autorité centrale ne contrôle la blockchain.
Cette technologie est utilisée dans le cadre d’un réseau. Il faut s’imaginer des appareils (ordinateurs, smartphones…) qui sont tous liés entre eux de près ou de loin. Chaque participant à ce réseau est identifié par une adresse, attribuée lorsqu’il rejoint le système, qui sera utilisée lors d’une transaction.
La blockchain est présente chez certains participants du réseau que l’on appelle des « nœuds ». Chaque nœud, qui correspond à un participant ayant une certaine puissance de calcul, dispose de sa propre copie de la blockchain qu’il maintient à jour.
Chaque participant du réseau, ainsi que tout participant qui le rejoint, peut télécharger une copie de la blockchain auprès des nœuds. Ainsi, tout le monde a accès à l’historique complet des transactions. Cela implique un accès aux informations actuelles et passées des autres participants : dans le cas du bitcoin, cela signifie que vous pouvez vérifier qu’un participant dispose bien de la somme dont il prétend disposer.
Ce modèle est décentralisé puisqu’il ne dispose pas d’autorité de contrôle centrale, à l’inverse du modèle traditionnel des banques par exemple.
La blockchain étant présente et mise à jour dans de multiples lieux du réseau (les nœuds), elle est de fait pratiquement indestructible : il faudrait que plus de la moitié des nœuds soient touchés simultanément (cas nommé “attaque 51%”).
Le principe d’intégrité
La technologie permet à n’importe quel participant du réseau d’émettre des transactions qui seront par la suite ajoutées à la blockchain. Comment être certain que l’on peut avoir confiance en ce système ? Quelles sont les garanties de sécurité ?
Lorsqu’une nouvelle transaction a lieu, elle rejoint le pool des transactions nouvellement émises. Avant d’être ajoutées à la chaîne, ces transactions doivent être approuvées lors d’une phase de validation.
Pour la blockchain sur laquelle s’appuie le bitcoin, cette phase est appelée le minage. Celui qui la réalise est appelé le mineur : c’est un nœud du réseau qui dispose d’une certaine puissance de calcul. Celui-ci est récompensé financièrement par un minage réussi, que ce soit par la création de nouveaux bitcoins ou par des frais de transaction définis par les émetteurs des transactions par exemple. Par conséquent, le mineur sélectionne dans le pool des transactions en attente celles qui seront les plus avantageuses pour lui afin de créer un nouveau bloc. Dans un premier temps, l’authenticité et la validité des transactions du nouveau bloc sont vérifiées :
- L’émetteur d’une transaction dispose d’une signature digitale (reposant sur certains principes mathématiques et des fonctions cryptographiques[1]) à usage unique, ce qui l’empêche d’être copiée et réutilisée dans le futur, générée grâce à une clé privée que lui seul possède. Il est par conséquent virtuellement impossible d’usurper l’identité d’un autre participant pour créer une fausse transaction puisque la signature ne sera pas reconnue. De plus, la signature digitale qui est associée à la transaction dépend non seulement de l’émetteur mais également de la transaction en elle-même. Modifier la transaction modifierait donc la signature, qui ne serait par conséquent plus valide.
- La blockchain étant un registre public de toutes les transactions jamais effectuées, il est facile de vérifier qu’un individu initiant une transaction dispose bien du montant qu’il souhaite transférer en contrôlant les transactions passées.
Une fois que les transactions sont reconnues comme étant authentiques et valides, le mineur doit identifier le nouveau bloc afin de le lier aux blocs qui forment la chaîne. Cet identifiant, appelé « hash », est calculé à partir de trois éléments :
- Le hash du bloc précédent : c’est ce qui permet de créer un lien entre tous les blocs de la chaîne.
- Les transactions en attente de validation
- Une valeur aléatoire : celle-ci nécessite une importante puissance de calcul puisqu’elle ne peut être découverte qu’en essayant des combinaisons au hasard jusqu’à trouver une valeur qui correspond.
Dans le cas du bitcoin, la fonction cryptographique qui permet le calcul du hash est dénommée SHA-256.
Si un élément, aussi infime et insignifiant puisse-t-il être, venait à être modifié dans le bloc, le hash deviendrait totalement différent. Une modification de l’un des blocs qui constituent la chaîne serait par conséquent rapidement repérée.
Une fois que le hash est calculé, le mineur ajoute le bloc à la blockchain et propose celle-ci au réseau. Si la majorité des nœuds décident d’utiliser cette nouvelle version de la blockchain, c’est-à-dire qu’ils acceptent la validité du nouveau bloc proposé par le mineur, alors celle-ci devient officielle et est utilisée pour réaliser les calculs qui permettront d’ajouter les futurs blocs.
La phase de validation permet d’assurer l’intégrité de la blockchain. Tous les blocs sont liés de manière chronologique puisque leur hash dépend du hash des blocs précédents. Cela permet d’éviter l’ajout d’une fausse transaction dans la chaîne, qui modifierait l’identifiant du bloc, et également l’ajout de blocs non validés.
Ainsi, tout bloc, et par extension toute transaction, qui est ajouté à la blockchain l’est de façon immuable. Chaque individu peut contrôler l’intégrité de la chaîne et vérifier si celle-ci a été altérée par un individu malveillant.
Prenons un exemple concret avec le bitcoin. Cécile souhaite transférer 5 bitcoins à Philippe. Le transfert se fait en 4 étapes :
a. Une nouvelle transaction est créée. Une signature digitale à usage unique générée par la clé privée de Cécile est associée à la transaction.
b. La transaction rejoint le pool des transactions en attente. Un mineur la sélectionne pour créer un nouveau bloc avec d’autres transactions.
c. Le mineur vérifie chaque transaction et calcule le hash afin de lier le nouveau bloc avec ceux de la blockchain. Il propose ensuite sa solution au réseau.
d. Si la majorité des nœuds acceptent le nouveau bloc, le transfert entre Cécile et Philippe est alors considéré comme officiel.
En résumé :
- La blockchain, c’est un peu comme un grand livre de compte qui contient une trace de toutes les transactions jamais effectuées.
- La technologie s’appuie sur un modèle peer-to-peer: le système est décentralisé, maintenu par les participants du réseau eux-mêmes, et chacun peut disposer d’une copie de la blockchain.
- Chaque nouvelle transaction doit préalablement être validée avant d’être ajoutée à la blockchain, à la suite de quoi elle ne pourra être effacée. Cela permet d’assurer la validité et l’authenticité d’une transaction ainsi que l’intégrité du système tout entier.
Pour aller plus loin :
http://www.imponderablethings.com/2013/07/how-bitcoin-works-under-hood.html
http://www.longfinance.net/images/Chain_Of_A_Lifetime_December2014.pdf
[1] Pour plus d’information : se référer à « elliptic curve digital signature algorithm » et « mathematical trap door ».