Cryptomonnaie
Cours 17
18 min

Le whitepaper de Bitcoin : une explication simple

Publié en octobre 2008 par un individu ou un groupe sous le nom de Satoshi Nakamoto, le whitepaper de Bitcoin a jeté les bases d’un changement fondamental dans le traitement des paiements mondiaux et de la transformation d’industries toutes entières en matière de gestion des données. 

  • Le bitcoin a été présenté au monde pour la première fois comme monnaie numérique dans le whitepaper « Bitcoin : un système de paiement électronique pair-à-pair »

  • Le whitepaper de Bitcoin ne compte que neuf pages et constitue une approche d’un système de transactions électroniques trustless.

  • Le réseau Bitcoin établit un mécanisme de paiement par le biais d’un canal de communication sans dépendre d’un tiers de confiance comme intermédiaire.

  • En termes simples, le whitepaper de Bitcoin tente de traduire des concepts technologiques complexes dans une terminologie facile à comprendre.

Dans ce cours, nous allons fournir une explication simple des principes technologiques fondamentaux exposés dans le whitepaper de Bitcoin.

Le whitepaper, ou livre blanc, de Bitcoin a été publié le 31 octobre 2008 par un individu ou un groupe de personnes utilisant le pseudonyme Satoshi Nakamoto via une liste de diffusion de cryptographie sur une plateforme appelée Metzdowd. De nombreuses théories et mythes entourent l’identité réelle du ou des créateurs de Bitcoin ; un certain nombre de personnalités de la scène des cryptomonnaies ont prétendu être Satoshi Nakamoto ou du moins le connaître. 

Le concept à l’origine de Bitcoin repose sur la cryptographie, l’étude des technologies de communication sécurisées et le développement de protocoles conçus pour empêcher le public ou des tiers d’accéder à des informations privées.

Le résumé

L’introduction à la première page du whitepaper de Bitcoin est un extrait de la publication résumant le contenu et l’objectif du whitepaper. 

Concrètement, l’objectif de Bitcoin est de développer une technologie informatique permettant à différentes parties d’envoyer des paiements en ligne directement les unes aux autres (« système de paiement pair-à-pair  ») sans avoir besoin d’une institution financière telle qu’une banque. Bien entendu, il est essentiel que le système sous-jacent de ces transactions réponde à certaines exigences de sécurité.

Comme la transaction proposée doit être exécutée en ligne et sans argent liquide, le problème de la double-dépense devrait être abordé. On appelle double-dépense la vulnérabilité potentielle d’un système de monnaie numérique, soit la possibilité que la même unité de valeur (le token) soit dépensée deux fois si quelqu’un duplique ou falsifie un token.

Les conditions préalables au fonctionnement de ce type de système monétaire décentralisé sont les suivantes :

  • Coopération entre les parties qui gèrent le système (structure de réseau) ;

  • Garantie que les enregistrements précédents ne peuvent jamais être modifiés (immuabilité) ;

  • Accord sur la validité des transactions selon certaines règles (consensus).

En d’autres termes : toutes les parties doivent se mettre d’accord sur des règles et coopérer en les suivant, tout en garantissant la validité et l’immuabilité des enregistrements. 

Introduction - d'où vient le Bitcoin ?

Le paragraphe d’introduction du whitepaper de Bitcoin expose les raisons pour lesquelles son créateur pense qu’un système de monnaie électronique trustless est nécessaire en premier lieu. La principale raison invoquée est que les systèmes de paiement traditionnels utilisés dans un cadre commercial et fonctionnant via des institutions financières telles que les banques présentent un certain nombre de défauts.

Tout d’abord, les paiements traditionnels impliquent souvent des coûts de transaction et de règlement élevés en cas de litige sur une transaction, par exemple en cas d’annulation d’une transaction. 

Deuxièmement, les systèmes de paiement traditionnels sont sujets à la fraude, et troisièmement, ils nécessitent toujours un tiers de confiance. Le whitepaper de Bitcoin propose un système dans lequel les tiers, s’ils sont nécessaires, tels que des services d’entiercement pour les parties primaires de la transaction, peuvent facilement être mis en œuvre en déclenchant une action codée spécifique. 

Transactions

Une monnaie électronique consiste essentiellement en une chaîne composée de signatures numériques. Il s’agit de lignes de code informatique protégées qui existent en relation avec le code précédent dans la ligne qui les précède. Vous ne pouvez pas tenir cette monnaie électronique entre vos mains, à l’instar d’une monnaie traditionnelle, car elle n’existe qu’en ligne. 

Supposons qu’un détenteur de bitcoins souhaite effectuer une transaction. Lorsqu’il transfère les bitcoins au détenteur suivant, cette quantité de bitcoins est envoyée au réseau.

L’ancien propriétaire active le transfert de la cryptomonnaie au propriétaire suivant en cryptant le hash (l’empreinte numérique unique) de la transaction précédente à l’aide d’une signature numérique. Le cryptage derrière Bitcoin est possible grâce à deux clés mathématiquement liées : une clé publique et une clé privée. Bien qu’elles soient liées, ces clés ne sont pas identiques. 

La clé publique est nécessaire pour chiffrer la transaction avec la clé privée du propriétaire pour créer la signature numérique. La clé publique est similaire à votre numéro de compte bancaire, tandis que une clé privée est comparable à votre code d'accès à votre compte bancaire. Par conséquent, la clé publique sert également d’adresse au destinataire auquel le propriétaire veut envoyer des bitcoins.

La clé publique est nécessaire pour chiffrer la transaction avec la clé privée du propriétaire pour créer la signature numérique. 

Ces informations sont annexées « à la fin » de la cryptomonnaie.

Naturellement, le destinataire, donc le nouveau propriétaire, veut s’assurer que le montant qui lui est envoyé n’a pas déjà été dépensé lors d’une transaction antérieure. Pour le vérifier, il n’y a qu’une seule façon : le réseau doit accepter toutes les transactions effectuées auparavant dans l’ordre où elles ont été exécutées. 

L’ordre valide de toutes les transactions sur le réseau doit être annoncé publiquement afin que tout le monde sache quelles transactions sont valides. Pour ce faire, le réseau doit convenir, à l'aide de règles établies, des conditions à remplir pour qu'une transaction soit considérée comme valide.

Au moment où le destinataire a reçu sa transaction, la majorité du réseau doit se mettre d’accord pour reconnaître qu’il est le premier destinataire à avoir reçu cette transaction, et donc qu’aucun autre destinataire ne l’a perçue auparavant. 

L’ordre valide de toutes les transactions sur le réseau doit être annoncé publiquement afin que tout le monde sache quelles transactions sont valides. Pour ce faire, le réseau doit convenir, à l'aide de règles établies, des conditions à remplir pour qu'une transaction soit considérée comme valide.

Serveur d’horodatage 

Cette section du whitepaper de Bitcoin décrit la proposition de Satoshi Nakamoto selon laquelle un « serveur d’horodatage distribué » devrait être utilisé sur le réseau Bitcoin pour prouver dans quel ordre les transactions ont été générées. Mais qu’est-ce que cela signifie ?

Le réseau Bitcoin fonctionne sur un système décentralisé d’ordinateurs. Tous les processus informatiques du réseau s’exécutent simultanément sur des centaines, voire des milliers d’ordinateurs, appelés nodes, situés dans différents pays répartis dans le monde entier. Tous ces ordinateurs sont connectés les uns aux autres et toute personne disposant de l’équipement adéquat peut faire partie du réseau.

Plus il y a d’ordinateurs dans le réseau, plus il y a de copies des enregistrements de données, sécurisant ainsi davantage le système. Après tout, il est pratiquement impossible de voler ou de détruire simultanément les enregistrements de plusieurs centaines d’ordinateurs en même temps. Par conséquent, le système est sûr tant que la majorité des parties exploitant les ordinateurs conviennent collectivement de la plus longue chaîne d’enregistrements de données, c’est-à-dire de la blockchain « valide ». 

Les transactions sont regroupées en blocs contenant plusieurs transactions ainsi que des informations sur le bloc précédent. Un serveur d’horodatage est un logiciel qui ajoute l’horodatage au hachage d’un bloc au même moment sur les milliers d’ordinateurs du réseau. 

L’horodatage fournit la preuve que les données ont manifestement dû exister à un instant T, et chaque horodatage inclut l’horodatage précédent dans son hachage. De cette façon, une chaîne se forme, chaque horodatage supplémentaire renforçant les horodatages qui le précèdent. C’est le même principe que celui des poupées russes : une petite poupée à l’intérieur d’une plus grande poupée qui est à l’intérieur d’une encore plus grande poupée et ainsi de suite. Voilà à quoi ressemble une transaction Bitcoin. 

Un serveur d’horodatage est un logiciel qui ajoute l’horodatage au hachage d’un bloc au même moment sur les milliers d’ordinateurs du réseau.

Un bloc valide 

Proof-of-work 

Le réseau général d’horodatage suggéré par Satoshi dans le whitepaper original de Bitcoin a été mis en œuvre sous la forme d’un réseau informatique pair-à-pair qui utilise un algorithme « proof-of-work » dans un processus connu sous le nom de mining de bitcoins pour créer un historique pratiquement immuable des transactions.

Au sens large, la proof-of-work décrit le processus par lequel un utilisateur d’ordinateur doit résoudre une tâche modérément difficile sur son ordinateur. Cette tâche répond à certaines exigences définies et est intrinsèquement difficile à exécuter. À l’origine, la méthode proof-of-work a été inventée pour limiter l’envoi de spams en exigeant de l’expéditeur d’e-mails qu’il effectue une petite tâche (« work ») avant de pouvoir envoyer l’e-mail, afin de garantir qu’aucun flot d’e-mails ne serait envoyé.  

Dans le réseau Bitcoin, cette tâche modérément difficile a évolué vers la résolution d’un puzzle ou casse-tête cryptographique. Plusieurs transactions sont regroupées dans un bloc. Un bloc contient des données : un index, l’horodatage, une liste des transactions, une preuve, le hachage du bloc précédent et d’autres informations. Une séquence de chiffres, appelée nonce (de l’anglais « number only used once », un numéro utilisé une seule fois), est ajoutée au bloc afin de le hacher.

Les nodes (ordinateurs) du réseau Bitcoin, soient les « mineurs », commencent à vérifier, tester et écarter des millions de nonces chaque seconde pour trouver un nonce qui réponde à l’objectif fixé par le réseau au moment de la formation du bloc (le regroupement des transactions). Ils effectuent ce travail jusqu’à ce qu’ils trouvent une valeur qui donne au hachage du bloc le niveau de difficulté requis et qui commence par un certain nombre de zéros. 

Une fois qu’une telle valeur est trouvée par un mineur, elle est diffusée aux autres nodes du réseau qui la valident. Un nouveau bloc est alors créé et ajouté à la blockchain. Aucune modification ne peut être apportée à un bloc, à moins que le travail ne soit refait.

Un bloc contient des données : un index, l’horodatage, une liste des transactions, une preuve, le hachage du bloc précédent et d’autres informations.

Vous pouvez consulter toutes les transactions de la blockchain Bitcoin sur Blockexplorer. Voici à quoi ressemble un bloc valide : 

Nouveau sur Bitpanda ? Créez votre compte aujourd'hui !

Inscrivez-vous ici

La vitesse à laquelle de nouveaux blocs sont ajoutés dépend du nombre de participants au réseau qui travaillent à la validation ou de la puissance de calcul utilisée. Si trop de blocs sont générés en une heure, la « difficulté » de la tâche est augmentée afin de ralentir délibérément la génération de nouveaux blocs. 

La blockchain valide est la chaîne la plus longue avec la plus grande puissance de calcul investie par les participants honnêtes du réseau.

Le réseau

La section suivante du whitepaper de Bitcoin expose le processus de transaction. 

Un expéditeur envoie une transaction qui est diffusée à tous les participants du réseau (bien que toutes les transactions n’aient pas besoin d’atteindre tous les nodes). Chaque node participant rassemble les nouvelles transactions dans un bloc et tente de trouver une proof-of-work pour celui-ci. 

Une fois qu’elle est trouvée et qu’il est clair que la transaction n’a pas été dépensée précédemment (double-dépense), le nouveau bloc est à nouveau diffusé sur le réseau Bitcoin et accepté comme valide (ou rejeté) par les autres ordinateurs qui travaillent à la création d’un nouveau bloc en utilisant le hachage du dernier bloc valide. La chaîne la plus longue de la blockchain est considérée comme étant la « bonne ».

Il peut arriver que deux nodes diffusent simultanément des versions différentes du bloc suivant dans le réseau Bitcoin. Par conséquent, les autres nodes reçoivent d’abord une version ou l’autre. Dans ce cas, les nodes passent à la chaîne la plus longue. Si un node ne reçoit pas de bloc, il réclame le bloc manquant dès qu’il se rend compte qu’il l’a manqué.

Incitation

Pour encourager les nodes à participer au réseau, Satoshi Nakamoto a recommandé que le premier node à créer un bloc soit récompensé pour y avoir investi sa puissance de calcul. Une fois que suffisamment de bitcoins seraient en circulation, les utilisateurs du réseau Bitcoin paieraient des frais de transaction, qui deviendraient ultérieurement l’unique rémunération. 

Puisqu’il faudrait une puissance de calcul incroyablement importante pour manipuler le réseau, les nodes sont plus susceptibles d’utiliser le réseau de manière honnête. La simple raison en est qu’il est plus rentable de consacrer sa puissance de calcul au mining et à la génération de nouvelles cryptomonnaies que d’essayer de prendre le contrôle du réseau. Gardez à l’esprit qu’aucune société ou personne n’est chargée de faire fonctionner le réseau Bitcoin. Au lieu de cela, il est exploité et vérifié par une grande communauté d’ordinateurs indépendants.

Récupérer l’espace de stockage

La blockchain de Bitcoin étant immuable et ne pouvant jamais être modifiée, il était évident qu’elle ne cesserait de croître et qu’elle arriverait au point d’occuper d’énormes quantités de mémoire pour son stockage. Le livre blanc de Bitcoin prévoit une taille d’environ 80 octets pour l’en-tête d’un seul bloc, qui ne contient encore aucune transaction.

Pour contrer le problème de stockage, Satoshi Nakamoto a proposé qu’une fois qu’une transaction est « enterrée » sous un nombre suffisant de blocs, les transactions passées avant elle soient « supprimées » pour économiser de l’espace disque.

Afin de s’assurer que les structures cryptographiques, les hachages, ne seraient pas cassées, le whitepaper suggère de réduire toutes les transactions à un seul hachage : celui de la racine, tout à fait réalisable à l’aide d’un arbre de Merkle. 

Un arbre de Merkle ou arbre de hachage, nommé d’après le scientifique Ralph Merkle, est une structure de données basée sur le hachage en cryptographie et en informatique. Cette structure affecte des données à une clé. Un exemple simple de ce concept est la numérotation rapide sur un téléphone : chaque numéro de téléphone est attribué à chaque touche dans une structure basée sur le hachage. Dans le réseau Bitcoin, les arbres de Merkle sont utilisés pour la vérification des données, ce qui est efficace, car les hachages sont utilisés au lieu de tout un fichier d’informations.

Un arbre de Merkle ou arbre de hachage, nommé d’après le scientifique Ralph Merkle, est une structure de données basée sur le hachage en cryptographie et en informatique.

Les arbres de Merkle utilisent généralement une structure d’arbre binaire : chaque node a au maximum deux nodes enfants, mais un niveau de sortie plus élevé peut également être utilisé. Le hachage de la racine est le plus élevé dans la structure de données basée sur le hachage et fait partie de l’en-tête du bloc. Il détermine quelles sont les transactions présentes. 

Au moment de la publication du whitepaper sur Bitcoin en 2008, il était estimé qu’au moins 4,2 Mo (mégaoctets) de stockage seraient nécessaires par an. Cette estimation était basée sur l’hypothèse que les blocs seraient générés toutes les dix minutes et que chaque bloc aurait une taille égale à 80 octets. En une heure, cela équivaudrait à 80 multiplié par 6, puis multiplié par le coût par jour puis par an, soit 80 octets multipliés par (6X24) multiplié par 365.

Les systèmes informatiques en 2008 étaient vendus avec 2 Go (gigaoctets) de RAM et à cette époque, la loi de Moore prévoyait une croissance de 1,2 Go par an. Le whitepaper de Bitcoin présumait alors que le stockage ne serait pas un problème, même si les en-têtes de blocs devaient être conservés en mémoire.

Vérification simplifiée des paiements

Un utilisateur n’a pas besoin d’exécuter un node complet pour vérifier les paiements sur le réseau Bitcoin. Cela fonctionne en créant une implémentation Bitcoin qui est connectée à un full node confirmé et qui ne télécharge que les en-têtes de bloc. 

Une fois le téléchargement terminé, l’ordinateur client vérifie la connexion correcte des en-têtes de la chaîne et un niveau de difficulté suffisant pour s’assurer qu’il s’agit de la bonne blockchain. Enfin, des copies des transactions ainsi qu’une branche de Merkle les reliant à leur bloc correct respectif sont fournies comme preuve d’inclusion. 

Tant que des nodes honnêtes contrôlent un réseau et que vous vous connectez à un node digne de confiance, cette vérification est également fiable. Cependant, pour s’assurer que les transactions ne sont pas créées par un attaquant sur une chaîne invalide, Satoshi Nakamoto recommande aux entreprises utilisant le bitcoin pour des paiements fréquents d’exploiter leurs propres nodes pour plus de rapidité et de sécurité. 

En résumé, il n’est pas nécessaire de connaître l’historique complet des transactions de la chaîne pour vérifier l’authenticité d’une transaction. Il suffit de télécharger une branche de l’arbre de Merkle et de vérifier que le hachage de la racine est le même.

Combiner et diviser la valeur 

Les principes fondamentaux de Bitcoin s’appliquent également aux transactions qui nécessitent plusieurs « inputs » (entrées) et « outputs » (sorties), de la même manière que si vous deviez dépenser 35 centimes, vous devez combiner une pièce de 20 centimes, de 10 centimes et de 5 centimes. Dans le réseau Bitcoin, les transactions peuvent avoir plusieurs entrées et sorties, ce qui permet de diviser et de combiner la valeur.  

Confidentialité

Les banques traditionnelles atteignent un certain niveau de confidentialité dans les transactions en limitant la divulgation des détails des transactions aux parties concernées, y compris les parties intermédiaires. Sur le réseau Bitcoin, cependant, toutes les transactions sont visibles par tous. Tout le monde peut voir qu’une transaction est en train d’être effectuée, pourtant la transaction ne peut être attribuée à personne, car on ne voit pas qui se cache derrière les parties agissantes.

Les utilisateurs s’identifient au réseau à l’aide d’une clé publique, mais ont besoin d’une clé privée pour accéder à la transaction. Par conséquent, le whitepaper de Bitcoin recommande d’utiliser une nouvelle paire de clés pour chaque transaction afin de s’assurer que les transactions ne peuvent pas être retracées ou liées à un propriétaire commun.

Calculs 

Enfin, Satoshi Nakamoto a voulu illustrer l’improbabilité que le réseau Bitcoin puisse subir une attaque. Cette section du whitepaper contient des calculs pour démontrer combien il serait compliqué pour un attaquant de lancer une nouvelle chaîne rivalisant avec la chaîne valide. Étant donné que les nodes honnêtes n’accepteraient jamais une transaction frauduleuse, les fraudeurs auraient besoin de supplanter la chaîne valide, ce qui nécessiterait une grande quantité de puissance de calcul, et la probabilité qu’ils atteignent le seuil de rentabilité est minuscule.  

Conclusion 

Bitcoin est un système pair-à-pair pour transactions monétaires électroniques trustless. Il utilise la proof-of-work pour enregistrer l’historique public des transactions et est hautement protégé contre les attaques tant que les nodes honnêtes contrôlent la majorité de la puissance de calcul. Le réseau est composé de nodes qui nécessitent peu de coordination, qui peuvent rejoindre ou quitter le réseau à volonté et qui, sur la base d’un mécanisme de consensus, n’acceptent que les blocs valides et rejettent les blocs invalides.  

Après avoir fait la lumière sur les concepts technologiques qui sous-tendent Bitcoin, la Bitpanda Academy fournira des cours plus avancés pour expliquer comment ceux-ci s’appliquent au monde des cryptomonnaies.

Cet article ne constitue en aucun cas un conseil en investissement ni une offre ou une invitation à acheter des actifs financiers numériques.

Le présent article est fourni à titre d'information générale uniquement et aucune déclaration ou garantie, expresse ou implicite, n'est faite et aucune fiabilité ne doit être accordée quant à l'équité, l'exactitude, l'exhaustivité ou la justesse de cet article ou des opinions qui y sont contenues.

Certaines déclarations contenues dans cet article peuvent concerner des attentes futures fondées sur nos opinions et hypothèses actuelles et comportent des incertitudes susceptibles d'entraîner des résultats, performances ou événements réels différents de ces déclarations. 

Ni Bitpanda GmbH, ni aucune de ses filiales, conseillers ou représentants ne peuvent être tenus responsables de quelque manière que ce soit en relation avec cet article. 

Veuillez noter qu'un investissement dans des actifs financiers numériques comporte des risques en plus des opportunités décrites ci-dessus.