Pourquoi la blockchain a été créée ?
En temps ordinaire, lorsqu'on s'intéresse à la compréhension de la blockchain, on y trouve de multiples définitions sur internet, presque toutes s'accordent pour dire que la blockchain est une technologie de stockage décentralisée permettant la transmission de l'information de manière sécurisée (souvent au moyen de TCP).
Mais avant de s'intéresser à son fonctionnement, il faut d'abord se demander pourquoi a-t-elle été créée ?
Pour cela, il faut remonter jusqu'en 2008, date à laquelle le mystérieux créateur Satoshi Nakamoto a publié le whitepaper du Bitcoin : la première blockchain devenue populaire au point d'être utilisée à l'échelle mondiale.
Le whitepaper (ou livre blanc en français) du Bitcoin est le document décrivant dans les grandes lignes : ses objectifs, son fonctionnement et la vision de son créateur.
Dès le début, on découvre que Satoshi Nakamoto émet une critique sur le système bancaire déjà existant, fondé sur l'appel à des tiers de confiances (institutions financières) pour effectuer des transactions bancaires. La faiblesse principale qu'il souligne est l'impossibilité d'effectuer des transactions irréversibles pour des services à usage unique : dans un monde où l'être humain est sujet à des conflits, il arrive que des parties (gouvernements, entreprises ou personnes) soient en désaccord, pouvant entrainer l'annulation d'une transaction, même si le produit ou service a été livré.
Cela engendre des coûts et du temps pour la résolution des conflits mais surtout, cela entraîne un climat de méfiance permanent, accentué par l'ère du numérique : les vendeurs doivent se méfier de leurs consommateurs, ces derniers sont en mesure d'ouvrir un litige en ligne et de se faire rembourser plus facilement que s'ils avaient payé en espèces. Certains abusent de la clémence du système de remboursement pour le plus grand désarroi des boutiques en ligne, à un point qu'elles ont "accepté" que la fraude était inévitable, comme si c'était une fatalité. Cette faiblesse les pousse à demander un maximum d'informations sur leurs clients et souvent bien plus que nécessaire pour se prémunir d'un éventuel litige...
L'incertitude de paiement pourrait être évité en utilisant un moyen de paiement physique (pièces ou espèces), mais comment s'ouvrir au monde numérique qui ne cesse de grandir et rétablir un climat de confiance à ce sujet ?
L'idéal serait de pouvoir effectuer des paiements sécurisés, sans tiers de confiance et dont les transactions sont irréversibles !
C'est probablement dans ce but que le Bitcoin a été créé... On pourrait également y voir une aspiration à une certaine forme de liberté, qui commence par la création d'un système indépendant et inarrêtable.
Une chose est sûre, c'est que l'aboutissement de la technologie blockchain est un véritable exploit !
Le Bitcoin, une prouesse technique et un créateur visionnaire
Avant la création du Bitcoin, bon nombre de monnaies digitales ont été créées, leur développement a été fortement influencé par la progression du domaine de la cryptographie : l'art ou la science du secret.
La monnaie est un moyen d'échange, de paiement et d'unité de compte (pour définir le prix d'un bien ou d'un service par exemple). Ce moyen de paiement que nous utilisons au quotidien est reconnu comme fiable aux yeux de tous, nous avons confiance en la monnaie pour acquérir ou vendre des biens et services.
Les défis à relever pour créer une monnaie digitale
La création d'une monnaie digitale implique donc de tenir compte des éléments les plus importants qui définissent la fiabilité d'une monnaie physique (également appelée fiduciaire, soit les pièces et les billets), sans quoi, en l'absence de confiance, sa valeur sera nulle car personne ne voudra s'en servir comme moyen d'échange et de paiement.
Voici les questions à se poser :
- Comment être sûr que la monnaie est authentique et non contrefaite ?
- Comment résoudre le problème de la double dépense ?
- Comment s'assurer que les fonds proviennent bien du bon propriétaire (qu'ils ne font pas l'objet d'une tentative d'usurpation ou de vol) ?
Garantir l'authenticité de la monnaie
Pour ce qui est de la première question, si on regarde notre système actuel, on sait que les imprimeurs de billets papiers sont constamment en train d'innover dans le procédé de fabrication des billets, ils doivent les rendre impossible à imiter, cela dans le but de distinguer facilement un vrai d'un faux billet.
Concernant les paiements en ligne traditionnels, nous avons confiance en la banque et au système informatique de transactions, c'est le tiers de confiance.
Rendre une monnaie qui est 100 % numérique, authentique et non contrefaite est donc un réel défi mais ce n'est pas le seul challenge à relever !
Se prémunir de la double dépense
Une monnaie digitale doit également résister à la double dépense : on ne doit pas pouvoir dépenser plusieurs fois une même unité d'une devise !
Pour faire le rapprochement avec les pièces de monnaies, si vous achetez une baguette de pain à 1 € à la boulangerie, vous vous séparez définitivement de la pièce de 1 €. Vous ne pouvez pas réutiliser la même pièce pour aller acheter autre chose puisque vous l'avez déjà donné (dépensé) à votre boulanger.
En informatique, on peut facilement copier/coller des données, il faut absolument mettre en place des sécurités pour éviter cette double-dépense, il y a plusieurs méthodes possibles : la première est l'approche centralisée, faisant appel à un unique tiers de confiance et la seconde, l'approche décentralisée qui repose sur plusieurs acteurs au sein d'un réseau informatique.
Système centralisé
La première méthode qui consiste à utiliser un système centralisé est probablement la plus commune : elle introduit un tiers de confiance qui est en charge de vérifier toutes les transactions, que tout se passe comme prévu et qu'il n'y a pas de double dépense. C'est notre système bancaire numérique actuel.
Le problème dans le cas d'une monnaie digitale indépendante créée par une société, est qu'en cas de liquidation de cette dernière, cela entraînerait la disparition de la monnaie avec elle.
C'est déjà arrivé dans le passé où des personnes ont tenté de créer une crypto-monnaie (bien avant le Bitcoin !). Le projet n'a pas plu à l'état et la société à l'origine du projet a été dans l'obligation de cesser toute activité, faisant ainsi disparaitre sa crypto-monnaie car tout ne reposait que sur une seule et même entité.
Système décentralisé
La deuxième approche est d'utiliser un système décentralisé : faire confiance à de multiples acteurs (ou participants) pour sécuriser les transactions. C'est cette approche qui est utilisée par Bitcoin.
Pour s'assurer qu'une quantité de monnaie n'a pas été dépensée plusieurs fois il ne faut prendre en compte que la première transaction (valide) et ignorer les futures transactions et tentatives de double dépense.
Cela nécessite d'être au courant de toutes les transactions qui ont eu lieu au sein du réseau : il faut un historique des transactions comme dans le système bancaire traditionnel (centralisé).
Cependant, dans le cas d'un système décentralisé, Il faut que les différents participants se mettent d'accord sur une seule et même version de l'historique des transactions (il doit être le même pour tous). Bien souvent cet historique doit également être publiquement accessible, tout le monde doit pouvoir le lire.
Et c'est là qu'est la difficulté à mettre en place un tel système... Nous allons voir comment le Bitcoin est parvenu à utiliser l'approche décentralisée grâce à la blockchain.
La blockchain, une structure de données utilisée par le Bitcoin
La blockchain est une liste de blocs ordonnés les uns à la suite des autres en suivant certaines règles. Dans un bloc, on y trouve souvent une liste de transactions et d'autres informations utiles.
On peut voir la blockchain comme un grand livre de comptes ou chaque page du livre serait un bloc (contenant les différentes transactions), mais la blockchain peut servir à bien d'autres usages et ne se limite pas à stocker l'historique des transactions, on peut stocker de la donnée au sens large.
Dans notre explication précédente qui portait sur l'usage d'un système décentralisé, nous avons évoqué le fait que tous les acteurs doivent utiliser une seule et même version de l'historique de transactions, mais comment savoir laquelle est la bonne et se mettre d'accord entre tous les participants ?
Le Bitcoin est décentralisé et utilise la blockchain : vous savez désormais que la blockchain est une suite de blocs. C'est cette suite de blocs (la blockchain) qui va servir d'historique de transactions pour tous les participants et qui va leur permettre de se mettre d'accord.
Les acteurs du réseau Bitcoin sont tout simplement des ordinateurs ou des serveurs qui disposent d'une copie de la blockchain, on les appelle les noeuds. Certains noeuds sont appelés des "mineurs" car ce sont eux qui vont contribuer à sécuriser le réseau en faisant des calculs cryptographiques (hachage).
Les adresses et les signatures
Pour envoyer ou reçevoir des bitcoins il faut disposer d'une adresse, tout comme pour reçevoir du courrier vous devez fournir votre adresse postale !
Pour créer une adresse, vous devez utiliser un logiciel appelé wallet (portefeuille crypto).
Dans la blockchain, une adresse correspond à une suite de caractères, voici à quoi elle peut ressembler : bc1qzx86cr85hxklns5drehv29k7scx38dj67mh7um
On peut faire l'analogie avec le coffre fort ou l'IBAN : seul le propriétaire du coffre fort détient les clés et est en mesure de retirer l'argent qu'il contient !
De même vous pouvez reçevoir des virements d'autres personnes en leur fournissant votre IBAN mais ces dernières ne pourront pas effectuer des virements à votre place avec votre IBAN.
Dans la blockchain, c'est exactement la même chose : lorsque vous souhaitez envoyer des bitcoins à une personne, vous devez fournir la preuve au réseau que vous êtes le propriétaire !
Pour cela, vous allez utiliser ce qu'on appelle une clé secrète (que vous seul connaissez) qui va vous permettre de signer une transaction, plus simplement de laisser une preuve de propriété que l'ensemble du réseau va être en mesure de vérifier et ainsi enregistrer la transaction dans la blockchain !
Nous entrerons plus dans les détails dans les chapitres techniques.
Quel est le déroulement d'une transaction dans la blockchain Bitcoin ?
Lorsque quelqu'un souhaite payer une personne (effectuer une transaction), il va utiliser un wallet qui va lui permettre de signer et transmettre l'ordre de virement au réseau, ensuite les mineurs vont vérifier la transaction et l'intégrer dans un bloc (le bloc contient très probablement d'autres centaines de transactions).
Une fois que certaines conditions sont réunies, les mineurs vont essayer de "miner" le block : ils vont effectuer des calculs informatiques et mathématiques (hachage) pour que le bloc respecte les normes de la blockchain Bitcoin et puisse être intégré (par tous les noeuds) dans la blockchain !
En moyenne, un bloc est ajouté toutes les 10 minutes dans la blockchain Bitcoin.
Un bloc valide fait office de preuve de travail (Proof Of Work) : c'est le consensus utilisé par le Bitcoin ! Ainsi, en guise de récompense, le mineur qui aura trouvé un bloc valide en premier gagnera des Bitcoins car le calcul est coûteux en énergie (éléctricité).