Partager cet article :

Aujourd’hui, nous nous retrouvons pour une étude du livre blanc originel de Bitcoin. Je tiens à préciser que ce n’est pas une présentation de Bitcoin, ni un tutoriel d’utilisation. Je vous conseille donc de faire vos propres recherches si des points sont encore flous pour vous. Il s'agit simplement d'une rapide présentation du fonctionnement du protocole Bitcoin et des idées de son créateur, Satoshi Nakamoto. Le document est assez court (9 pages) et ne couvre donc pas les précisions techniques que l’on pourrait retrouver ailleurs. C’est l’occasion de revenir dans le passé et revoir les fondements de Bitcoin, une décennie après son lancement.

 

Bitcoin

Avant de se lancer dans le livre blanc, il faut tout d’abord définir le propos et recontextualiser Bitcoin. On trouve de nombreuses définitions de Bitcoin sur de nombreux supports, mais elles sont similaires sur différents points. Bitcoin est un système de transfert de valeur en pair-à-pair, sans organe de contrôle central, qui repose sur un algorithme de consensus et sur un réseau de nœuds validateurs. Bitcoin résout de par sa technologie la problématique de la double dépense et c'est en cela qu'il révolutionne les choses. Mais nous ne sommes pas ici pour présenter Bitcoin, et je vous conseille de vous renseigner sur ce dernier par le biais des nombreux guides présent sur le site. Il est important également de retenir que le livre blanc étudié ne représente pas Bitcoin actuellement, puisqu’il évolue chaque jour grâce au travail des développeurs. En effet, contrairement à l’idée reçue, Bitcoin s’améliore au fil des années par de nombreuses innovations, et est loin d’être un système figé.

 

Le livre blanc de Bitcoin

Un livre blanc (appelé white paper en anglais) est un document présentant une technologie, un projet ou une innovation. C’est assez commun lors d’un investissement, et on retrouve souvent ce genre de document pour présenter des projets de cryptos. La plupart des projets cherchant à lever des fonds par le biais d'une ICO, d'une IEO ou d'une STO publient leur livre blanc avant la réalisation du projet, afin de le présenter aux potentiels investisseurs. À l'inverse, Satoshi Nakamoto a délibérément attendu d’obtenir des résultats lors de ses expérimentations avant de publier celui de Bitcoin. Nommé sobrement « Bitcoin : un système d'argent liquide électronique pair-à-pair », le document présente en 9 pages le fonctionnement de Bitcoin ainsi que les réflexions de son auteur autour de son invention. On retrouvera notamment des critiques du fonctionnement des échanges financiers traditionnels.

 

Les problématiques monétaires

L’introduction du document peint un tableau du système financier actuel, ainsi que le fonctionnement des transferts de valeurs. L’auteur rappelle que durant cette ère numérique la plupart des transactions passent par le biais de tiers de confiance. Mais il soulève également de nombreuses problématiques liées à l’utilisation de systèmes numérique pour effectuer ces paiements. Il soutient que la mise en place de transaction à double dépense ne peut pas être empêchée. Il s’agit par exemple d’une situation ou un individu envoie les mêmes fonds à deux personnes différentes. Pour contrecarrer ce genre de procédé, nous utilisons des tiers de confiance pour nos achats en ligne, où l'utilisation d'espèces est impossible contrairement au monde physique.

Il n’existe aucun système permettant de réaliser des paiements en ligne sans tiers de confiance.

Satoshi Nakamoto

Et cette utilisation a plusieurs coûts. Tout d’abord, les frais de fonctionnement de ces fameux tiers de confiance. Ensuite, l’utilisateur doit renseigner un grand nombre d’informations personnelles pour utiliser ces moyens de paiement, et souvent plus que ce qui est réellement nécessaire.

Satoshi propose alors une solution, basé sur des algorithmes de cryptographie plutôt que sur la confiance. L’objectif est alors de permettre à deux parties de réaliser des transactions directement sans avoir recours à un tiers de confiance, tout en protégeant ces derniers de la fraude.

 

système financier et problématiques monétaires

 

Un système de transactions

Un jeton numérique de ce système est en réalité une chaîne composée d’une succession de signatures numériques, et n’a pas d’existence en soi. Chaque possesseur de cette chaîne va la transférer à son nouveau propriétaire lors d’une transaction en signant par la transaction précédente ainsi que l’adresse publique de son futur possesseur. Celui qui reçoit le jeton peut vérifier l’ensemble de la chaîne de propriété.

En revanche cela ne règle pas la problématique de la double dépense. Et c’est souvent ici que la solution la plus utilisée revient à mettre en place une autorité centrale, ayant accès à toutes les transactions pour empêcher les fraudes. Cela reviendrait à utiliser une sorte de banque, ce qui n’est pas l’objectif de ce nouveau système financier.

La seule solution de certifier qu’une transaction n’a pas eu lieu en amont est d’accéder à l’ensemble des transactions existantes à un moment t. Toutes les transactions doivent donc être rendues publiques pour tous les utilisateurs, et chaque participant doit être en accord avec ces données.

 

L’horloge Bitcoin

Le système Bitcoin repose sur un serveur horodaté, une sorte de grande horloge destiné à rendre public l’ensemble des transactions réalisées sur le réseau. Il est composé de nombreux maillons qu'on appelle blocs et qui contiennent chacun un hash du bloc précédent. Chaque bloc contient également un horodatage (timestamp) qui spécifie la date et l'heure auxquelles il a été miné. Cela permet de définir que les informations ont existé dans le temps, prouvant ainsi leur existence.

 

Validation des transactions

Une fois que l’idée de l’horloge Bitcoin qui serait distribuée entre tout les participants est posée, il faut garantir la justesse des blocs ajoutés. Pour la petite histoire, une société de sécurité informatique avait utilisé un système de chaîne similaire, et chaque bloc était écrit dans la partie petites annonces du journal quotidien. De cette manière, il fallait récupérer les exemplaires du journal, ainsi que les précédent pour modifier un ou plusieurs maillons, ce qui était assez complexe à mettre en œuvre. Pour Bitcoin, Satoshi propose un système dit de « proof-of-work », ou de preuve de travail en français. Il s’agit de faire travailler un processeur informatique, jusqu’à ce que l’effort fourni satisfasse la difficulté actuelle du réseau. En fonction de l’évolution du nombre de travailleurs, la difficulté peut être ajustée pour satisfaire l’objectif de création de blocs par heure.

Ainsi, la chaîne la plus longue, c'est-à-dire celle qui jouit d’une plus grande puissance de calcul, est celle acceptée comme valide. Si une majorité de la puissance de calcul est contrôlée par des acteurs honnêtes par rapport au réseau, alors la chaîne la plus longue sera valide et pourra distancer les autres chaînes.

 

transactions bitcoin stockés blocs blockchain

 

Le réseau Bitcoin

Satoshi Nakamoto décrit les règles de fonctionnement du réseau comme suit :

  • Chaque nouvelle transaction est transmise à chaque nœud du réseau.
  • Ces nœuds reçoivent des blocs confirmant ces transactions.
  • Les nœuds fournissent une preuve de travail pour leurs propres blocs.
  • Dès lors que la preuve de travail est trouvée par un nœud, il le transmet à chaque noeud du réseau.
  • Les autres nœuds n’acceptent le bloc qu’après vérification des transactions, veillant notamment à éviter la double dépense de ces dernières.
  • L’acceptation de ce bloc est exprimée par les nœuds en créant le prochain bloc, qui utilisera le hash du précédent bloc dans son en-tête.

Ces règles nous présentent comment fonctionne le réseau Bitcoin et son système de preuve de travail. La règle primordiale reste que les nœuds utilisent et travaillent sur la chaîne la plus longue et considèrent cette dernière comme la chaîne valide. Les blocs n’ont pas besoin d’être transmis à chaque nœud, et cette transmission prend en compte les pertes d’informations.

 

La création des bitcoins

La première transaction d’un bloc fraîchement créé concerne la création de nouveaux jetons, possédés par le propriétaire du bloc. C’est une manière d’augmenter le nombre de bitcoins en circulation, et de mettre en place une récompense pour les nœuds supportant le réseau. C’est la seule et unique manière de créer les bitcoins, puisqu’au contraire des monnaies traditionnelles il n’y a pas de banque centrale capable d’injecter des jetons. Satoshi Nakamoto compare cette création monétaire à celle des mineurs d’or, qui utilisent des ressources pour augmenter le nombre de kilos d’or en circulation. Dans le cas de Bitcoin, ces ressources sont de la puissance de calcul et de l’électricité.

Mais cette façon d’augmenter la masse des bitcoins a une seconde utilité. En effet, ce fonctionnement incite les noeuds à utiliser leur puissance de calcul à participer de façon honnête au réseau. Il est plus intéressant de chercher à obtenir plus de nouveaux bitcoins que de tenter de voler ceux des autres. Cela reviendrait à affaiblir le réseau et donc la valeur fiduciaire d’un bitcoin.

 

Optimiser l’espace disque utilisé

Si on souhaite rendre public et transmettre l’ensemble des transactions réalisées sur le réseau à tous les nœuds, il faut les stocker. Et en fonction du nombre de transactions effectuées cela peut devenir lourd. Satoshi présente des optimisation afin que le stockage de ces transactions ne soit pas un problème. Notamment l’utilisation d’un arbre de Merkel, une structure utilisant des fonctions de hachage pour garantir l’intégrité des informations sans avoir à tout sauvegarder. D’après les calculs de l’auteur, avec une création de blocs effectués toutes les dix minutes, il n’y devrait pas avoir de problème lié aux capacité de notre matériel informatique.

 

disk stock transaction merkle tree

 

La vérification des transactions

Vous n’avez pas besoin d’avoir un nœud validant des transactions pour les vérifier. En effet si vous possédez une copie des en-têtes des blocs de la chaîne la plus longue, vous pouvez rechercher et vérifier qu’une transaction est bien inscrite dans un de ces blocs. En revanche, vous n’êtes pas capable d’être autonome. Vous n’êtes capable que de voir qu’un nœud a accepté la transaction, et que le réseau l’a ajouté à la chaîne, validant le bloc.

Cela ne pose aucun problème si tout le réseau est honnête. Mais un nœud simple ne pourrait pas vérifier les transactions de lui même et ne remarquera pas les blocs invalides en cas d’attaque du réseau. Satoshi Nakamoto conseille l’utilisation de nœuds propres pour une indépendance, et une plus grande sécurité en cas de transactions.

 

Transactions à multiples entrées et sorties

Nous avons vu qu’un bitcoin n’existe pas en tant qu’entité dans la chaîne de blocs utilisée par le réseau. En effet ils sont en réalité composés d’une succession de transactions depuis leurs « création ». Ce serait trop complexe d’en réaliser le suivi satoshi par satoshi, et de réaliser une transactions pour chaque bouts de bitcoins impliqués dans un échange entre deux utilisateurs. C’est pour cette raison que Bitcoin utilise des transactions possédant des entrées et sorties de fonds multiples.

Il existe donc différents scénarios de transactions. Tout d’abord, en entrée il peut avoir un seul flux dont la somme égalerait ou dépasserait le prix de la transaction, ou alors de multiples flux utilisé pour atteindre la somme requise. Ce serait très peu probable que le nombre de bitcoins en entrée soit exactement la somme de la transaction. C’est pour cela qu’il y a également plusieurs flux de sortie de cette dernière. Ils sont souvent deux : l’un pour celui à qui la transaction est initialement destinée, l'autre pour renvoyer la différence à celui qui effectue la transaction.

 

Bitcoin et données personnelles

En utilisant un tiers de confiance, les échanges traditionnels peuvent garantir un minimum d’intimité entre les deux parties. Le fait que toutes les transactions soit complètement publiques limite un système similaire. Mais si les clés publiques, seules informations nécessaires à la réalisation d’une transaction sont anonymes, l’intimité des utilisateurs est préservée. Le réseau observe qu’une adresse réalise une transaction, sans pour autant la relier à un individu ou une entreprise. Une double mesure peut être mise en place par les utilisateurs qui est d’utiliser une nouvelle adresse publique à chaque transaction. Cette méthode permet d’empêcher de lier de multiples transactions à un propriétaire unique.

 

Probabilités et projections

Dans cette partie, nous étudierons les calculs de Satoshi Nakamoto sur les probabilités d’attaque contre le réseau. Prenons le scénario possible de la création d’une chaîne qui se voudrait plus rapide que la chaîne valide. Tout d’abord il est impossible de créer des bitcoins, puisque que les blocs non conformes qu’il proposera au réseau seront rejetés par ce dernier. La seule manière de monétiser son attaque est de modifier ses transactions passées. Voyons comment un attaquant pourrait remporter la course de la chaîne la plus longue face au réseau.

Une telle attaque peut être mathématiquement exprimé par une marche aléatoire. À chaque essaie il existe deux possibilités, que la chaîne augmente d’un bloc en cas d’échec ou que la chaîne de l’attaquant progresse en cas de réussite. Il s’agit donc d’une course entre les deux chaînes, et l’attaquant commence cette dernière avec un retard.

La probabilité que l’attaquant puisse rattraper son retard est calculable. Imaginons qu’il ait un nombre illimité de tentative pour tenter de valider ses blocs. La chaîne malhonnête verra la probabilité de rattraper l’autre décroître exponentiellement au fur et à mesure que le retard en nombre de bloc augmentera.

 

attaque 51% attaque contre bitcoin

 

Conclusion

Voici la fin de la présentation d’un système de transactions numérique reposant uniquement sur lui-même, sans tiers de confiance. La gestion par signature numérique n’est pas nouvelle, mais Bitcoin apporte une solution à la problématique de la double dépense. Celle-ci est résolue par l’utilisation d’un réseau pair-à-pair impliquant le concept de preuve de travail. L’utilisation de puissance de calcul permet de réduire à néant les possibilités d’attaque de ce réseau pour modifier des transactions passées, du moins si la plupart de cette puissance est contrôlée par des nœuds honnêtes.

Les nœuds n’ont pas besoin d’être identifiés et fonctionnent tous de pair avec le reste du réseau. Ils peuvent librement quitter et rejoindre ce dernier, et acceptent la chaîne la plus longue comme historique acquis. Un système de vote peut être mis en place par le biais de la puissance de calcul, ce qui permet de mettre en place des règles nécessaires par ce consensus.

Voilà pour cette étude du livre blanc de Bitcoin, écrit par Satoshi Nakamoto. Bitcoin a beaucoup évolué depuis cette date, et continuera d’évoluer. J’espère que cela vous a plu, peut être vous a donné l’envie d’aller le lire par vous même ou vous a permis de mieux le comprendre. Vous pouvez retrouver ce livre blanc en format pdf.

N’hésitez pas comme d’habitude à laisser vos remarques à la suite de cet article.


 

A propos de l'auteur : Guillaume Chanut

twitter-soothsayerdatatwitter-soothsayerdata

Passionné par les crypto-monnaies, j’ai rapidement appris à développer des outils dans le domaine des technologies blockchain. J’aime partager mes connaissances sur le sujet et je participe activement au rayonnement des aspects techniques de la blockchain au sein de la communauté crypto. Je suis principalement intéressé par Ethereum et par son code Solidity.
Tous les articles de Guillaume Chanut.

Partager cet article :

Poster un Commentaire

avatar