Tout sur le Bitcoin et les Altcoins

Tout sur le Bitcoin et les Altcoins

Comment la Blockchain Bitcoin se prémunit-elle contre le problème de double dépense ?

Publié en 2008, le livre blanc du Bitcoin révélait au monde entier le premier système d’échanges de cash en mode P2P parfaitement fonctionnel. Le père du Bitcoin, le mystérieux Satoshi Nakamoto, publiait ensuite le premier client Bitcoin sur SourceForge en 2009 ce qui donnait officiellement naissance au Bitcoin. Une nouvelle aventure exceptionnelle venait de démarrer.

Comment la Blockchain Bitcoin se prémunit-elle contre le problème de double dépense ?

Au coeur du succès phénoménal du Bitcoin se trouve la résolution du problème de double dépense qui avait causé la perte de toutes les autres tentatives de création de monnaies virtuelles précédemment. Dans cet article, nous allons revenir sur ce qu’est la double dépense et voir comment la Blockchain sur laquelle s’appuie le Bitcoin permet de l’en prémunir.

Avant le Bitcoin, il y a eu le Bit Gold

Le Bitcoin n’est pas le premier essai de création d’un système de monnaie digitale fonctionnel. En 1998, Nick Szabo, un pionnier dans le milieu des monnaies virtuelles, proposa ainsi Bit Gold avant d’exposer ses idées dans un article de blog en 2005. En bénéficiant d’un peu de recul, il est tout à fait possible d’imaginer que Nick Szabo ait pu développer le Bitcoin en prenant comme point de départ le Bit Gold. Cependant, un article sur son blog datant de 2008 concernant le Bitcoin révèle que ses vues concernant la crypto monnaie emblématique diffèrent de celles de Satoshi Nakamoto, le créateur anonyme du Bitcoin.

Avant le Bitcoin, il y a eu le Bit Gold

Un point crucial des écrits de Nick Szabo concerne la manière dont il envisage le Bitcoin. Pour lui, il s’agit avant tout d’une réserve de valeur et non d’un moyen d’échanges. Une des raisons expliquant les échecs des tentatives précédentes pour créer des monnaies virtuelles vient du fait, qu’à l’image du Bit Gold, elle n’arrivait pas à résoudre le problème de double dépense.

Qu’est-ce que la double dépense ?

Avant toute chose, il paraît important de définir ce qu’est la double dépense. Comme le terme le suggère fortement, la double dépense signifie dépenser la même monnaie deux fois. Avec les monnaies fiat représentées physiquement sous la forme de pièces et de billets, ce n’est tout simplement pas possible et le problème ne se pose donc même pas.

Considérons l’exemple suivant :

Vous allez faire vos courses à Carrefour et acheter pour 30 euros de marchandises. Vous payez en cash avec un billet de 20 euros et un autre de 10 euros. Une fois ces billets mis en caisse, vous ne pouvez plus les dépenser à nouveau à moins de les dérober de manière physique.

Pourquoi la double dépense est un problème pour les monnaies virtuelles ?

Les monnaies virtuelles sont différentes du cash. Lorsque vous faites une transaction avec une monnaie virtuelle, vous allez diffuser la transaction sur tous les noeuds du réseau. Les noeuds étant les ordinateurs exécutant le logiciel sur lequel la crypto monnaie en question est supportée. Ces noeuds ont besoin de recevoir puis de confirmer la transaction. Tout ceci prend du temps. Le problème se pose donc en ces termes :

Qu’est-ce qui peut empêcher quelqu’un de copier la transaction et de la diffuser à nouveau sur le réseau avant que la précédente ait été confirmée sur le réseau ?

Comment le réseau peut-il savoir laquelle de ces transactions est authentique ?

Le Bitcoin n’a pas de banque centrale pour arbitrer les différends

Avant l’invention du Bitcoin, les échanges digitaux de monnaies par Internet étaient monitorés et contrôlés par les banques ainsi que les institutions financières. Le problème avec les banques agissant en tant que médiateurs dans les disputes financières vient du fait que les transactions peuvent être annulées. Tout ceci conduit à des frais de transactions plus élevés et à des délais de validation plus longs.

Schéma de la Blockchain

Le Bitcoin s’est donné pour but de résoudre ces limitations en créant un système basé entièrement sur une preuve cryptographique en lieu et place de la confiance dans l’intermédiaire. En ce sens, le Bitcoin a permis de réaliser des échanges de type bancaires sans avoir besoin des banques.

Chaque Bitcoin permet de tracer la chaîne de ses propriétaires

Afin de pouvoir commencer à comprendre comment le système de preuve cryptographique fonctionne, il est essentiel de comprendre ce qu’est un Bitcoin. Dans le livre blanc du Bitcoin, un Bitcoin est défini comme étant une chaîne de signatures digitales. Il peut passer d’un propriétaire à un autre via des portefeuilles digitaux. Chaque portefeuille a une clé publique, également connue sous le nom d’adresse, et une clé privée, qui est un mot de passe confidentiel qui doit être connu uniquement du propriétaire.

Lorsque le propriétaire d’un Bitcoin décide de le transférer à quelqu’un d’autre, la transaction correspondante va embarquer comme signature le hash des transactions précédentes ainsi que la clé publique du propriétaire suivant. Ce hash est ensuite ajouté à la fin du Bitcoin. Par conséquent, chaque Bitcoin est l’équivalent du journal de bord d’une voiture contenant un enregistrement de tous les propriétaires précédents.

Explication des fonctions de hachage cryptographique

Une fonction de hachage cryptographique est un algorithme mathématique acceptant en entrée une chaîne de caractères contenant des données et retournant en sortie une chaîne de caractères dont la taille a été fixée arbitrairement. Il s’agit d’une fonction à sens unique ce qui signifie que le même paramètre remis plusieurs fois en entrée retournera la même sortie. De plus, il n’est pas possible de faire du reverse engineering sur l’entrée.

Fonction de Hachage Cryptographique

Plus important encore, il est impossible que deux entrées différentes produisent la même valeur en sortie. De fait, chaque sortie produite par la fonction de hachage cryptographique sera unique. Chaque fois qu’un Bitcoin est transféré, un nouveau hash est donc ajouté. La chaîne des propriétaires de chaque Bitcoin peut ainsi être vérifiée simplement en regardant les signatures embarquées dans le Bitcoin.

Tout ceci est particulièrement intéressant mais ne résout pas le problème de double dépense. Un bénéficiaire ne peut pas vérifier qu’un des anciens propriétaires d’un Bitcoin n’a pas dépensé deux fois ce Bitcoin. Une solution aurait pu être d’avoir une banque centrale donnant la possibilité de vérifier chaque transaction pour se prémunir du problème de double dépense. Cependant, on aurait alors perdu le côté décentralisé qui est à l’origine même de la création du Bitcoin. En effet, le Bitcoin a été conçu afin résoudre les problèmes que posent les banques centrales lors des échanges bancaires. A quoi bon remplacer une banque centrale par une autre ?

La Blockchain Bitcoin est un grand livre universel

Dans le but de gérer le problème de double dépense, le Bitcoin s’appuie sur un grand livre de comptes universel plus communément appelé Blockchain. Afin de prouver qu’il n’y a eu de tentatives de double dépense, la Blockchain permet à tous les noeuds d’être au courant de chacune des transactions réalisées.

La Blockchain Bitcoin est un grand livre universel

Avec le Bitcoin, toutes les transactions sont donc publiquement annoncées à l’ensemble des noeuds du réseau. Ces derniers peuvent alors se mettre d’accord sur un seul et unique historique de l’ordre dans lequel ils ont été reçus. Le Bitcoin se prémunit donc du problème de double dépense en prenant en compte les transactions pour lesquelles la majorité des noeuds du réseau se sont mis d’accord sur l’arrivée en premier. Les tentatives qui vont arriver ensuite et qui vont donc tenter une double dépense ne sont pas considérées.

Explication sur le serveur de timestamp du Bitcoin

Satoshi Nakamoto a proposé dans son livre blanc sur le Bitcoin l’utilisation d’un serveur de timestamp comme solution pour se prémunir contre le problème de double dépense. Ce serveur prend le hash d’un bloc de transactions et va ensuite le diffuser à tous les noeuds de la Blockchain Bitcoin. Ce timestamp associé au hash va prouver que toutes les données contenues dans le hash n’ont pas pu être créées après la publication du hash.

Puisque chaque timestamp inclut le timestamp du bloc précédent dans son hash, on obtient ainsi un enregistrement immuable de l’ordre dans lequel chaque transaction a pris place. Les timestamps vont donc se renforcer entre eux.

Il existe un enregistrement de toutes les transactions en Bitcoins réalisées

Pour comprendre pleinement comment la Blockchain Bitcoin se prémunit du problème double dépense, il est bon de rappeler qu’elle maintient un historique complet de l’ensemble des transactions réalisées depuis l’envoi des premiers Bitcoins par Satoshi Nakamoto en 2009.

Chaque transaction étant liée à la précédente via le hash cryptographique créé, il est impossible de modifier des enregistrements passés. L’historique des enregistrements est plus connu sous le nom de Blockchain et un nouveau groupe de transactions, regroupé au sein d’un bloc, est ajouté toute les 10 minutes.

La Blockchain Bitcoin en action

Avant de conclure, un exemple de la Blockchain Bitcoin en action va s’avérer plus parlant. Nous allons considérer que vous avez 1 BTC que vous souhaitez essayer de dépenser deux fois. Imaginons que vous fassiez alors un achat d’une valeur de 1 BTC avec un marchand acceptant les paiements en Bitcoins, comme Microsoft. Maintenant, que se passe-t-il si vous essayez d’envoyer le même Bitcoin à une autre adresse Bitcoin ?

Vous allez pouvoir le faire ... Ou tout du moins, vous allez pouvoir essayer !

Comme vous pouvez le voir, il n’y a aucun mécanisme empêchant quelqu’un de mal intentionné d’essayer de diffuser deux transactions pour le même Bitcoin. Dans ce scénario, les deux transactions vont aller dans le pool des transactions non confirmées. Que va-t-il alors se passer ?

Création d'une Blockchain en Java

Votre première transaction, celle réalisée avec Microsoft, va être confirmée par les mineurs en Bitcoins et vérifiée dans le prochain bloc. Cette transaction va donc être stockée sous la forme d’un hash cryptographique au sein de la Blockchain Bitcoin. Bien entendu, le timestamp du bloc précédent est enregistré à ce moment-là. C’est en s’appuyant sur ce timestamp que les noeuds de la Blockchain Bitcoin vont pouvoir juger la seconde transaction comme invalide. Elle sera rejetée du réseau et ne sera donc jamais confirmée.

Par confirmation, on entend ici que les blocs contenant des transactions ont été ajoutés à la Blockchain. Comme chaque bloc est lié aux blocs précédents, un marchand n’aura qu’à attendre de recevoir un certain nombre de transactions afin d’être sûr que le Bitcoin reçut n’a pas été dépense deux fois. Le problème de la double dépense est donc bien géré et résolu !

Conclusion

Pour résumer, on peut dire que la Blockchain Bitcoin se prémunit du problème de double dépense en associant un timestamp à des groupes des transactions puis en diffusant ces informations à tous les noeuds du réseau Bitcoin. Les transactions étant timestampées sur la Blockchain et mathématiquement liées les unes aux autres, elles sont irréversibles et impossibles à falsifier.

Partager