Mis à jour le lundi 12 juin 2017
  • Moyenne

Ce cours est visible gratuitement en ligne.

Vous pouvez obtenir un certificat de réussite à l'issue de ce cours.

J'ai tout compris !

La Blockchain

Connectez-vous ou inscrivez-vous pour bénéficier de toutes les fonctionnalités de ce cours !

Nous sommes en 2008. Un certain Satoshi Nakamoto publie en ligne un PDF de moins de 10 pages qui décrit le fonctionnement d'une monnaie qu'il vient d'inventer, le Bitcoin.

Son document est comparable à un papier scientifique : un peu austère dans la forme et évidemment très technique. Si vous avez déjà des connaissances en informatique et en programmation, vous pouvez le retrouver en ligne. Vous ne comprendrez probablement pas tout, mais cela vous donnera une idée. Je vous recommande d'y jeter un oeil.

Voici un aperçu du document en question, duquel tout est parti :

Aperçu du papier scientifique publié par Satoshi Nakamoto en 2008
Aperçu du papier scientifique publié par Satoshi Nakamoto en 2008

Quand j'ai lu ce document, j'ai été étonné que toute l'innovation puisse être résumée en à peine 8 pages. Evidemment, la première fois... je n'ai rien compris. 😅

Je relu ce document plusieurs fois, et petit à petit je me suis rendu compte à quel point c'était intelligent. Je ne suis toujours pas un expert du sujet, mais je vais essayer de vous expliquer le concept de façon simple.

Le livre de comptes

Imaginez un livre de comptes. C'est un document dans lequel on écrit tout ce que chacun dépense et achète :

  • Le 01/08/2009 à 16h : Alice paie 250€ à Bob

  • Le 03/08/2009 à 20h : Bob paie 30€ à Carole

  • Le 03/08/2009 à 22h : Alice paie 15€ à Carole

  • etc.

En lisant ce document, on voit qui a payé combien à qui.

Le livre de compte liste toutes les transactions
Le livre de compte liste toutes les transactions

Eh bien Bitcoin, c'est ça : un très très gros livre de comptes. Je vous le disais, il n'y a pas de "pièces de monnaie" Bitcoin. A la place, il y a ce grand livre de comptes qui dit qui a payé à qui (et quand).

Mais il n'est dit nulle part de combien d'argent chacun dispose ?!

Si ! On sait combien d'argent vous avez car, quelque part dans une des pages du livre, il est écrit que quelqu'un vous a transmis de l'argent. Par exemple, on sait qu'il reste 220€ à Bob puisqu'il a récupéré 250€ d'Alice et donné 30€ à Carole. Simple affaire de déduction !

Une chaîne de livres

La place dans un livre est limitée. Imaginez que notre livre de comptes comporte 1000 pages blanches. Une fois qu'on les a toutes remplies, que fait-on ?

On prend un nouveau livre et on continue ! On va donc avoir des livres numérotés dans l'ordre : Livre 1, Livre 2, Livre 3...

Chaque livre contient un résumé du livre précédent, un peu comme au début des séries télévisés (vous savez, avec la grosse voix qui fait"Précédemment dans Lost"). C'est une façon de relier les livres entre eux.

Les livres se suivent et racontent l'histoire. Chaque livre a un résumé du livre précédent.
Les livres se suivent et racontent l'histoire. Chaque livre contient un résumé du livre précédent.

Bien entendu, avec Bitcoin, il n'y a pas de vrais livres. A la place, ce sont des fichiers qu'on appelle des "blocs". Les blocs sont les uns à la suite des autres, ils forment une "chaîne de blocs". C'est comme ça que le terme "Blockchain" est apparu.

Mais comment faire pour résumer le livre 1 au début du livre 2 ?

C'est là qu'on appelle les Hash à la rescousse. 😎

Les Hash

En informatique, et plus particulièrement en cryptographie, on utilise souvent des fonctions de hash. Si vous avez déjà un peu programmé, vous avez dû entendre parler de MD5, SHA1, SHA256... Si ces mots ne vous disent rien, pas de panique : retenez que ce sont des fonctions mathématiques qui transforment n'importe quel contenu sous la forme d'un grand nombre hexadécimal composé de lettres (de "a" à "f") et de chiffres.

Ainsi : "Bonjour" hashé devient f30ecbf5b1cb85c631fdec0b39678550973cfcbc
Et : "Bonjour !" hashé devient 245469f3c41b3222441056b6bc6e789710ef2bfb

Les fonctions de hash transforme un contenu en un nombre qui le représente
Les fonctions de hash transforment un contenu en un nombre qui le représente

Si vous ajoutez ou modifiez une lettre, vous pouvez voir que le résultat est complètement différent (ici, j'ai juste ajouté un point d'exclamation et le hash n'a rien à voir).

Vous pouvez hasher n'importe quoi. Si je hashais par exemple tout le livre "Les Misérables" de Victor Hugo, le nombre produit ne serait pas plus long !

Le résultat si on hashait
Le résultat si on hashait "Les Misérables" de Victor Hugo

Vous voyez où je veux en venir, non ? 😏
Si on peut hasher les Misérables et obtenir un résultat aussi court, on peut donc hasher notre livre de comptes de la même façon !

Les fonctions de hashage ont une spécificité : elles ne marchent que dans un sens. Ainsi, je ne peux rien faire avec le nombre 150201d82c6da2cfead6d6ae22243185fd30a23e. Je ne peux pas l'utiliser pour "retrouver" tout le contenu du livre de Victor Hugo.

Quel intérêt alors ? Ce n'est pas vraiment un résumé du livre du coup ?

150201d82c6da2cfead6d6ae22243185fd30a23e "représente" le livre de Victor Hugo. C'est une façon de vérifier l'identité du livre, de vérifier qu'il n'a pas été modifié.

Comment peut-on en être sûr ? Eh bien, si vous prenez le livre de Victor Hugo et que vous le passez à la "moulinette" de la fonction de hashage, vous devriez forcément retrouver ce nombre 150201d82c6da2cfead6d6ae22243185fd30a23e (sauf si vous avez changé une virgule, auquel cas le nombre sera complètement différent comme on l'a vu !). Les hashs nous permettent d'avoir la garantie que le contenu du livre n'a pas été modifié par quelqu'un.

La Blockchain

Voilà qui nous permet donc de représenter notre chaîne de blocs. Mesdames et messieurs, la Blockchain !

La Blockchain est une chaîne de blocs d'informations qui contiennent les hash des blocs précédents
La Blockchain est une chaîne de blocs d'informations qui contiennent les hash des blocs précédents

Dans chaque bloc, il y a une ou plusieurs transactions écrites comme "Alice paie 250€ à Bob". En lisant tous les blocs, on peut donc retracer toute l'histoire des échanges en Bitcoin.

Dans la pratique, le premier bloc a été créé par Satoshi Nakamoto lui-même le 09/01/2009. Depuis, des nouveaux blocs sont créés toutes les 10 minutes environ. Il y a donc déjà plusieurs centaines de milliers de blocs dans la blockchain, et ce nombre ne va faire qu'augmenter dans le futur ! 🙀

Ca ne va pas faire... trop gros à gérer à la fin ?

Nos ordinateurs ont suffisamment de mémoire. Notre capacité de stockage augmente au fil des années, cela ne devrait donc pas être un vrai problème. Vous allez voir que vous pouvez vous aussi télécharger comme je l'ai fait tout l'historique de la blockchain : il y en a peut-être pour 100 Go environ. C'est beaucoup, mais pas si énorme au final.

Allez, on fait une pause, on respire un grand coup et on passe au chapitre suivant pour en découvrir un peu plus sur le fonctionnement du Bitcoin. Au menu : transferts en réseau, mineurs, preuves de travail et problème de la double dépense. 😁‌

Exemple de certificat de réussite
Exemple de certificat de réussite