La blockchain, ou chaîne de blocs (attention, cela ne s'écrit pas blockchaine), désigne originellement la structure de données utilisée par Bitcoin pour lister l'ensemble des transactions réalisées par ses utilisateurs depuis son commencement : les transactions sont regroupées dans des blocs chaînés entre eux, et des blocs sont rajoutés à la chaîne au cours du temps. Ce registre est partagé entre les membres d'un réseau, d'où le fait qu'on parle parfois de registre distribué.
Depuis 2015, la blockchain désigne également la technologie de consensus décentralisé remise au goût du jour par Bitcoin. Cette technologie désigne donc l'ensemble des méthodes permettant aux participants d'un réseau distribué de se mettre d'accord sans recourir à un tiers de confiance. Dans cet article nous expliquons la blockchain pour les nuls afin que vous puissiez tout comprendre à cette « révolution ».
D'où vient la blockchain ?
Le concept de blockchain tel qu'on le connaît aujourd'hui a été inventé par Satoshi Nakamoto et décrit au sein du livre blanc de Bitcoin le 31 octobre 2008. Satoshi Nakamoto n'a néanmoins pas forgé le terme et on doit cela à Hal Finney, qui l'a utilisé pour la première fois dans sa réponse à Satoshi du 7 novembre 2008 pour désigner la chaîne de preuve de travail de Bitcoin. Il l'orthographiait alors « block chain », en deux mots. Le terme a ensuite été repris par Satoshi dans le code source de la version 0.1 de Bitcoin, et il s'est progressivement popularisé au sein de la communauté.
Cependant, la technologie derrière la blockchain n'a pas été entièrement créée avec Bitcoin et les éléments qui la composent sont bien plus anciens qu'on ne le croit : la blockchain est en effet le fruit de nombreuses années de recherche en économie, en informatique et en cryptographie.
La blockchain promeut l’idée de la décentralisation, qui, sans surprise, s'oppose à la centralisation. Aujourd'hui, nous vivons dans un monde où la majorité des choses qui nous entourent sont centralisées. Elles sont régies par les États, les banques, les grandes entreprises... Nous leurs faisons confiance, ou non, mais nous ne pouvons pas nous passer d’elles. Ces acteurs auxquels nous nous référons sont ce qu'on appelle des tiers de confiance. La blockchain, elle, fonctionne sans autorité centrale.
Bitcoin, qui utilise la technologie blockchain, permet de se passer de tiers de confiance pour la transmission de valeur entre deux entités. C’est la première application concrète de cette technologie. Il est maintenant possible, grâce à Bitcoin et à la blockchain, de transférer de la valeur sur internet entre deux entités sans intermédiaire.
Cela était beaucoup plus compliqué avant.
Par exemple, si vous envoyez un fichier à un ami sur internet, ce dernier est dupliqué. Vous possédez une copie du fichier et votre ami aussi : le fichier n'est pas unique. Le fichier ne part pas d'un point A pour arriver à un point B. Il reste au point A et une copie apparaît au point B. Cela ne peut donc pas fonctionner pour de la monnaie. Quand vous donnez 1 euro à votre boulanger pour acheter une baguette, une copie de la pièce ne reste pas dans votre poche. La pièce n'est pas dupliquée, elle est unique, elle quitte votre porte-monnaie pour aller dans la caisse du boulanger.
Il était donc impossible d'utiliser les systèmes de transferts de valeur existants sur internet dans le cadre de la mise en place d'un système monétaire sur le web. La monnaie aurait perdu de la valeur, car à chaque échange elle aurait été dupliquée. Toute la difficulté était donc de réussir à créer une monnaie sur internet qui puisse fonctionner comme dans la vie de tous les jours.
Grâce à Bitcoin, cela est maintenant possible. Un système monétaire fonctionnel, fiable et sans tiers de confiance a vu le jour.
Nous verrons beaucoup d’autres applications de la blockchain dans cet article, et vous en trouverez également dans de nombreux autres articles de notre site.
Avant d'aller plus loin, il ne faut pas oublier que la blockchain n'est, à l'origine, qu'une composante de Bitcoin. Gardez cela à l'esprit 🙂
C'est quoi la blockchain ?
La blockchain, ou chaîne de blocs en français, peut être comparée à un grand livre numérique qui est entretenu par un réseau d'ordinateurs. Des données sont alors ajoutées à ce grand livre en temps réel et sont visibles par tous les participants.
Lorsqu'une transaction est effectuée sur la blockchain, elle est ajoutée à un bloc. Ce bloc contient toutes les transactions qui se sont déroulées au cours des dernières minutes (10 minutes pour le réseau Bitcoin) et qui ont été partagées avec l'ensemble du réseau d'ordinateurs.
Les participants au réseau sont connus sous le nom de nœuds. Certains de ces nœuds participent à la vérification du registre : ce sont les validateurs. Différents protocoles existent afin de sécuriser la blockchain ce qui va influer sur le nom qu'on donne à ces validateurs : ils seront ainsi appelés des mineurs dans le cas où la blockchain utilise la preuve de travail (ou proof-of-work en anglais), ou des forgeurs dans le cas où la blockchain utilise la preuve d'enjeu (ou proof-of-stake en anglais). Pour en apprendre davantage à ce sujet, consultez notre article sur les différences entre la preuve de travail et la preuve d'enjeu. Afin de simplifier les choses, nous nous concentrerons ici sur la preuve de travail et donc les mineurs.
Il ne faut pas confondre les mineurs avec les utilisateurs de la blockchain.
Dans le cas de Bitcoin, les mineurs sont en concurrence pour résoudre des « énigmes cryptographiques » ce qui permet de valider les transactions. Le premier mineur à résoudre l'énigme reçoit une récompense pour son travail qui, rappelons-le, permet la sécurisation et le maintien du réseau. L'énigme est extrêmement difficile à résoudre et cette difficulté augmente dans le temps. Ainsi, les mineurs doivent utiliser des ordinateurs puissants pour résoudre ces calculs.
La validation des transactions correspond à leur inclusion et leur horodatage au sein d'un bloc. Cela va ensuite permettre de relier les blocs nouvellement validés à d'anciens blocs validés. Il se forme une chaîne de blocs contenant chaque transaction effectuée sur la blockchain.
Cette chaîne est mise à jour et est accessible à tous les membres du réseau. La décentralisation qui en découle permet une totale transparence et immutabilité. Ainsi, tout un chacun a la possibilité de visualiser les données disponibles sur le réseau blockchain.
Comprendre le fonctionnement d'une transaction en bitcoins sur la blockchain
Essayons de simplifier les choses :
La blockchain permet d’échanger des unités (argent, jetons, etc.) en s'affranchissant d'un tiers de confiance (banques, États, etc.)
Le réseau blockchain peut-être comparé à une feuille Excel dans laquelle toutes les transactions sont inscrites par ordre chronologique. Elle contient les heures, montants, destinataires… de toutes les transactions effectuées
La blockchain est infalsifiable : il n'est pas possible de modifier une transaction une fois que celle-ci est enregistrée dans la blockchain. Pour falsifier ce livre, il faudrait que plus de la moitié des validateurs du réseau soient « corrompus ». C'est ce que l'on appelle une attaque des 51 %.
Ce réseau est simple d'accès, n’importe qui peut y accéder et y consulter l'ensemble des transactions
Avec la blockchain, nous passons d'une architecture centralisée à une architecture décentralisée :
Voici un schéma récapitulatif expliquant le fonctionnement d'une blockchain publique lors d'une transaction. Ce schéma est extrait du site Blockchain France maintenant connu sous le nom de Blockchain Partner.
Comment fonctionne la technologie blockchain ?
Cette partie est plus complexe que la précédente. Elle explique plus en détails le fonctionnement de la blockchain.
Chaque personne qui participe au réseau blockchain possède une copie de la base de données (regroupant les transactions) et doit la tenir à jour.
Ainsi, les personnes qui participent au réseau Bitcoin, doivent avoir une copie de la blockchain Bitcoin sur un ordinateur et mettre régulièrement à jour cette dernière. À noter que la blockchain de Bitcoin pèse environ 120 Go à l'heure actuelle. Ces individus qui participent au maintien de la blockchain sont ce que l'on appelle des nœuds. En avril 2020, le réseau de Bitcoin comptait environ 10 000 nœuds publics.
Dans une blockchain publique, tous les nœuds ont les mêmes droits pour maximiser la sécurité et la transparence du réseau. Pour corrompre le réseau il faudrait que plus de la moitié des validateurs du réseau soient malveillants. On appellerait cela une attaque à 51%.
De la même manière, tant qu’un nœud est présent sur la blockchain, la blockchain est toujours maintenue.
Les données sur la blockchain sont sécurisées grâce à la création de hashs, appelés empreintes en français. Les empreintes correspondent à une suite de nombres hexadécimaux, c'est-à-dire en base 16. Pour rappel, un nombre hexadécimal est une suite comprenant les chiffres et les lettres suivants : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f.
Les données de la blockchain sont incluses dans des empreintes hexadécimales. Cela permet d’inclure un grand nombre de données chiffrées dans un format qui reste toujours identique, avec une longueur spécifique en fonction des blockchains. Le nombre de caractères et la forme des empreintes sont toujours identiques sauf si une modification est effectuée. Cela participe à la sécurité de la blockchain.
Ainsi, Bitcoin utilise l'algorithme SHA-256, alors que Ethereum utilise Keccak-256.
Les empreintes de Bitcoin ont la forme suivante :
Hash Bitcoin
Les empreintes d'Ethereum ont cette forme :
Hash Ethereum
Ces empreintes vont être utilisées dans la signature des transactions. Différentes méthodes permettent de hacher les transactions. En d'autres termes, de les valider, les inscrire et les sécuriser dans la blockchain. Les deux méthodes les plus connues sont la preuve de travail (proof-of-work en anglais, souvent abrégée en PoW) qu'utilise Bitcoin et la preuve d'enjeu (proof-of-stake en anglais, souvent abrégée en PoS) qu'utilise Tezos par exemple.
Continuons notre immersion dans le monde de la blockchain. Jean souhaite transférer 2 bitcoins 💰 à Nico et inscrit la transaction sur la blockchain. Comment savoir si Jean est bien l'émetteur de cette transaction ? Pour cela, on utilise une signature numérique basée sur la combinaison d'une clé publique et d'une clé privée. Lorsque Jean envoie une transaction à Nico, il l'envoie sur son adresse publique. Cette adresse publique est liée à la clé privée. Pour prouver que Nico est le nouveau propriétaire de 2 bitcoins, il devra s'identifier avec sa clé privée.
Dans cet article, nous avons volontairement assimiler une clé à une adresse, pour simplifier la compréhension. En réalité, il faut savoir que les adresses (publiques ou privées) sont générées grâce à des clés (publiques ou privées) utilisant des fonctions mathématiques.
Nous avons vu plus haut que pour certaines blockchains, qui utilisent le consensus proof-of-work comme Bitcoin, les mineurs construisent des blocs et les minent en tentant de trouver la solution d'un problème mathématique. Plusieurs blocs sont minés en même temps. Des mineurs travaillant sur deux blocs en concurrence cessent leur travail à partir du moment où le bloc est créé. La règle suivante a été instaurée : la branche valide est toujours la branche la plus longue.
Dans le schéma ci-dessous, la branche valide est la bleue, et les blocs en noir sont ceux qui ont été abandonnés. Tous les mineurs qui considéraient que les blocs noirs étaient valides à un moment donné sont repassés sur les blocs bleus.
l faut savoir que toute les blockchain publiques fonctionnent avec un token qui est l'équivalent d'un jeton programmable.
Quels sont les avantages de la blockchain ?
Une transparence de l'utilisation et de l'allocation des fonds
Il est possible de suivre à la trace l'utilisation des fonds faite par une entreprise ou une association. Dans le cas des fondations et associations caritatives, il serait ainsi possible de voir quelles utilisations sont faites des dons.
Moins de corruption
De la même manière que pour le suivi des fonds, il est impossible de falsifier la blockchain. Impossible donc de mentir sur le montant transféré, etc.
Vers une fin des tiers de confiance
Avec l'arrivée de Bitcoin, il est maintenant possible d'échanger de la valeur entre deux entités sans passer par des banques ou tout autre intermédiaire. Cela permet de minimiser les frais et les complications liés à l'obligation de faire confiance à une tierce partie.
L'automatisation de contrats
Certaines crypto-monnaies permettent l'utilisation de ce qu'on appelle des smart contracts, parfois appelés contrats intelligents, contrats autonomes ou contrats auto-exécutables en français. Ces contrats sont des programmes fonctionnant sur la blockchain qui se déclenchent tout seuls lorsque certaines conditions sont remplies. Cette utilisation a été rendue possible par la nature programmable de Bitcoin et a été généralisée par la création d'Ethereum en 2015. Pour en apprendre davantage à ce sujet, vous pouvez lire notre article : Qu'est-ce qu'un smart-contract ?
Quelles sont les limites de la blockchain ?
Un monde complexe
Il faut apprendre un nouveau "langage", de nouvelles manières de travailler, développer des solutions... Cela demande du temps et nécessite un apprentissage spécifique.
Un réseau risquant d'être saturé
Comme vu en fin d'année 2017, l'utilisation massive d'une blockchain peut déboucher sur une saturation du réseau : elles sont soumises à un problème de scalabilité. En effet, dans le cas de Bitcoin, fin 2017, les transactions étaient trop nombreuses pour être traitées dans des délais raisonnables. Ainsi, le trop grand nombre de transactions ont rendu impossible l'enregistrement de toutes les transactions dans un seul bloc toutes les 10 minutes. Depuis, des solutions ont été mises en place pour permettre une plus grande montée en charge du réseau Bitcoin avec par exemple le développement de SegWit et du réseau Lightning.
Par ailleurs, lorsqu'un réseau est saturé, on voit généralement les frais de transaction augmenter de façon très importante. Plus les utilisateurs payent cher, plus leurs transactions sont validées rapidement.
Il est compliqué de faire monter en charge des réseaux blcokchain sans remettre en cause leur décentralisation.
Une gouvernance difficile
Dans le cas des réseaux décentralisés, il est difficile de choisir quelles doivent être les règles de validité des transactions et comment ces règles doivent évoluer avec le temps (elles ne sont pas figées). On peut donc assister à des scissions des principales blockchains, souvent appelées hard forks. En 2016, suite au piratage de TheDAO, Ethereum s'est ainsi scindé en deux chaînes distinctes : Ethereum et Ethereum Classic. En 2017, c'est Bitcoin qui a subi une scission majeure dans le cadre du débat sur scalabilité, donnant naissance à ce que l'on nomme aujourd'hui Bitcoin Cash.