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.