
Le protocole Bitcoin est l' ensemble des règles qui régissent le fonctionnement du bitcoin . Ses principaux composants et principes sont : un réseau décentralisé peer-to-peer sans surveillance centrale ; la technologie blockchain , un registre public qui enregistre toutes les transactions bitcoin ; le minage et la preuve de travail , le processus de création de nouveaux bitcoins et de vérification des transactions ; et la sécurité cryptographique.
Les utilisateurs diffusent des messages signés cryptographiquement sur le réseau à l'aide d'un logiciel de portefeuille de cryptomonnaie Bitcoin . Ces messages sont des propositions de transactions, des modifications à apporter au registre. Chaque nœud possède une copie de l'historique complet des transactions du registre. Si une transaction viole les règles du protocole Bitcoin, elle est ignorée, car les transactions ne se produisent que lorsque l'ensemble du réseau parvient à un consensus selon lequel elles doivent avoir lieu. Ce « consensus réseau complet » est atteint lorsque chaque nœud du réseau vérifie les résultats d'une opération de preuve de travail appelée minage . Le minage regroupe des groupes de transactions en blocs et produit un code de hachage qui respecte les règles du protocole Bitcoin. La création de ce hachage nécessite une énergie coûteuse , mais un nœud du réseau peut vérifier que le hachage est valide en utilisant très peu d'énergie. Si un mineur propose un bloc au réseau et que son hachage est valide, le bloc et ses modifications de registre sont ajoutés à la blockchain, et le réseau passe aux transactions non encore traitées. En cas de litige, la chaîne la plus longue est considérée comme correcte. Un nouveau bloc est créé toutes les 10 minutes en moyenne.
Les modifications apportées au protocole Bitcoin nécessitent un consensus entre les participants du réseau. Le protocole Bitcoin a inspiré la création de nombreuses autres monnaies numériques et technologies basées sur la blockchain, ce qui en fait une technologie fondamentale dans le domaine des cryptomonnaies .
Blockchain
La technologie blockchain est un registre numérique décentralisé et sécurisé qui enregistre les transactions sur un réseau d'ordinateurs. Elle garantit la transparence, l'immuabilité et la résistance à la falsification, ce qui rend la manipulation des données difficile. La blockchain est la technologie sous-jacente des crypto-monnaies comme le bitcoin et a des applications au-delà de la finance, comme la gestion de la chaîne d'approvisionnement et les contrats intelligents.
Transactions

Le réseau nécessite une structure minimale pour partager les transactions. Un réseau décentralisé ad hoc de bénévoles est suffisant. Les messages sont diffusés dans la mesure du possible et les nœuds peuvent quitter et rejoindre le réseau à volonté. Lors de la reconnexion, un nœud télécharge et vérifie les nouveaux blocs provenant d'autres nœuds pour compléter sa copie locale de la blockchain.
Exploitation minière


Bitcoin utilise un système de preuve de travail ou une preuve de transaction pour former un serveur d'horodatage distribué en tant que réseau peer-to-peer . Ce travail est souvent appelé minage de bitcoins . Pendant le minage, pratiquement toute la puissance de calcul du réseau bitcoin est utilisée pour résoudre des tâches cryptographiques, ce qui est une preuve de travail. Leur objectif est de garantir que la génération de blocs valides implique un certain effort afin que la modification ultérieure de la blockchain, comme dans le scénario d'attaque à 51 %, puisse être pratiquement exclue. En raison de la difficulté, les mineurs forment des « pools de minage » pour obtenir des paiements malgré ces besoins en énergie élevés, des déploiements de matériel coûteux et un matériel sous contrôle. En raison de l'interdiction chinoise du minage de bitcoins en 2021, les États-Unis détiennent actuellement la plus grande part des pools de minage de bitcoins.
L'innovation clé de Satoshi Nakamoto a été de demander une preuve de travail pour accepter un nouveau bloc dans la blockchain . Le processus de minage consiste à identifier un bloc qui, lorsqu'il est haché deux fois avec SHA-256 , donne un nombre inférieur à la cible de difficulté donnée. Alors que le travail moyen requis augmente en proportion inverse de la cible de difficulté, un hachage peut toujours être vérifié en exécutant un seul tour de double SHA-256.
Pour le réseau d'horodatage Bitcoin, une preuve de travail valide est trouvée en incrémentant un nonce jusqu'à ce qu'une valeur soit trouvée qui donne au hachage du bloc le nombre requis de bits zéro en tête. Une fois que le hachage a produit un résultat valide, le bloc ne peut pas être modifié sans refaire le travail. Comme les blocs ultérieurs sont enchaînés après lui, le travail de modification du bloc inclurait de refaire le travail pour chaque bloc suivant. S'il y a un écart dans le consensus, une bifurcation de la blockchain peut se produire.
Le consensus majoritaire dans Bitcoin est représenté par la chaîne la plus longue, qui a nécessité le plus d'efforts pour être produite. Si la majorité de la puissance de calcul est contrôlée par des nœuds honnêtes, la chaîne honnête se développera le plus rapidement et dépassera toutes les chaînes concurrentes. Pour modifier un bloc passé, un attaquant devrait refaire la preuve de travail de ce bloc et de tous les blocs suivants, puis surpasser le travail des nœuds honnêtes. La probabilité qu'un attaquant plus lent rattrape son retard diminue de manière exponentielle à mesure que des blocs ultérieurs sont ajoutés.

Pour compenser l'augmentation de la vitesse du matériel et l'intérêt variable pour l'exécution des nœuds au fil du temps, la difficulté de trouver un hachage valide est ajustée environ toutes les deux semaines. Si les blocs sont générés trop rapidement, la difficulté augmente et davantage de hachages sont nécessaires pour créer un bloc et générer de nouveaux bitcoins.
Difficulté et pools miniers

Le minage de bitcoins est une activité compétitive. Une « course aux armements » a été observée à travers les différentes technologies de hachage qui ont été utilisées pour miner des bitcoins : des unités centrales de traitement (CPU) de base, des unités de traitement graphique (GPU) haut de gamme, des matrices de portes programmables (FPGA) et des circuits intégrés spécifiques à une application (ASIC) ont tous été utilisés, chacun réduisant la rentabilité de la technologie moins spécialisée. Les ASIC spécifiques au bitcoin sont désormais la principale méthode de minage de bitcoins et ont dépassé la vitesse du GPU jusqu'à 300 fois. La difficulté du processus de minage est périodiquement ajustée à la puissance de minage active sur le réseau. Les bitcoins étant devenus plus difficiles à miner, les fabricants de matériel informatique ont constaté une augmentation des ventes de produits ASIC haut de gamme.
La puissance de calcul est souvent regroupée ou « mise en commun » pour réduire les écarts de revenus des mineurs. Les plates-formes minières individuelles doivent souvent attendre de longues périodes pour confirmer un bloc de transactions et recevoir un paiement. Dans un pool, tous les mineurs participants sont payés chaque fois qu'un serveur participant résout un bloc. Ce paiement dépend de la quantité de travail qu'un mineur individuel a contribué à trouver ce bloc et du système de paiement utilisé par le pool.
Effets environnementaux


Bitcoins minés

Par convention, la première transaction d'un bloc est une transaction spéciale qui produit de nouveaux bitcoins appartenant au créateur du bloc. C'est l'incitation pour les nœuds à soutenir le réseau. Il fournit un moyen de mettre de nouveaux bitcoins en circulation. La récompense pour l'exploitation minière est divisée par deux tous les 210 000 blocs. Elle a commencé à 50 bitcoins, est tombée à 25 fin 2012 et à 6,25 bitcoins en 2020. La réduction de moitié la plus récente, qui a eu lieu le 20 avril 2024 à 00h09 UTC (avec le numéro de bloc 840 000), a réduit la récompense de bloc à 3,125 bitcoins. La prochaine réduction de moitié devrait avoir lieu en 2028, lorsque la récompense de bloc tombera à 1,625 bitcoins. Ce processus de réduction de moitié est programmé pour se poursuivre un maximum de 64 fois avant que la création de nouvelles pièces ne cesse.
Vérification des paiements
Chaque mineur peut choisir les transactions à inclure ou à exempter d'un bloc. Un plus grand nombre de transactions dans un bloc n'équivaut pas à une plus grande puissance de calcul requise pour résoudre ce bloc.
Comme l'indique le livre blanc de Nakamoto, il est possible de vérifier les paiements en bitcoins sans exécuter un nœud de réseau complet (vérification simplifiée des paiements, SPV). Un utilisateur n'a besoin que d'une copie des en-têtes de bloc de la chaîne la plus longue, qui sont disponibles en interrogeant les nœuds du réseau jusqu'à ce qu'il soit évident que la chaîne la plus longue a été obtenue ; puis, obtenez la branche de l'arbre Merkle reliant la transaction à son bloc. Lier la transaction à un endroit de la chaîne démontre qu'un nœud du réseau l'a acceptée, et les blocs ajoutés après lui établissent davantage la confirmation.
Caractéristiques du protocole
Sécurité
Diverses attaques potentielles contre le réseau Bitcoin et son utilisation comme système de paiement, réelles ou théoriques, ont été envisagées. Le protocole Bitcoin comprend plusieurs fonctionnalités qui le protègent contre certaines de ces attaques, telles que les dépenses non autorisées, les doubles dépenses, la falsification de bitcoins et la falsification de la blockchain. D'autres attaques, telles que le vol de clés privées, nécessitent une attention particulière de la part des utilisateurs.
Dépenses non autorisées
Les dépenses non autorisées sont atténuées par la mise en œuvre de la cryptographie à clé publique-privée dans Bitcoin. Par exemple, lorsqu'Alice envoie un bitcoin à Bob, Bob devient le nouveau propriétaire du bitcoin. Eve, observant la transaction, pourrait vouloir dépenser le bitcoin que Bob vient de recevoir, mais elle ne peut pas signer la transaction sans connaître la clé privée de Bob.
Double dépense
Un problème spécifique qu'un système de paiement sur Internet doit résoudre est celui de la double dépense , lorsqu'un utilisateur paie la même pièce à deux ou plusieurs destinataires différents. Un exemple d'un tel problème serait si Eve envoyait un bitcoin à Alice et envoyait plus tard le même bitcoin à Bob. Le réseau Bitcoin se protège contre la double dépense en enregistrant tous les transferts de bitcoins dans un registre (la blockchain) visible par tous les utilisateurs, et en s'assurant que tous les bitcoins transférés n'ont pas été dépensés auparavant.
Attaque de course
Si Eve propose de payer Alice en bitcoin en échange de biens et signe une transaction correspondante, il est toujours possible qu'elle crée également une transaction différente en même temps qu'elle envoie le même bitcoin à Bob. Selon les règles, le réseau n'accepte qu'une seule des transactions. C'est ce qu'on appelle une attaque de course , car il y a une course entre les destinataires pour accepter la transaction en premier. Alice peut réduire le risque d'attaque de course en stipulant qu'elle ne livrera pas les marchandises tant que le paiement d'Eve à Alice n'apparaît pas dans la blockchain.
Une attaque de type « variante de race » (appelée attaque Finney en référence à Hal Finney) nécessite la participation d'un mineur. Au lieu d'envoyer les deux demandes de paiement (pour payer Bob et Alice avec les mêmes pièces) au réseau, Eve envoie uniquement la demande de paiement d'Alice au réseau, tandis que le complice essaie de miner un bloc qui inclut le paiement à Bob au lieu d'Alice. Il y a une probabilité positive que le mineur malveillant réussisse avant le réseau, auquel cas le paiement à Alice sera rejeté. Comme pour l'attaque de type « simple race », Alice peut réduire le risque d'une attaque Finney en attendant que le paiement soit inclus dans la blockchain.
Modification de l'historique
Chaque bloc ajouté à la blockchain, en commençant par le bloc contenant une transaction donnée, est appelé confirmation de cette transaction. Idéalement, les commerçants et les services qui reçoivent un paiement en bitcoins devraient attendre qu'au moins quelques confirmations soient distribuées sur le réseau avant de supposer que le paiement a été effectué. Plus le commerçant attend de confirmations, plus il est difficile pour un attaquant de réussir à inverser la transaction, à moins que l'attaquant ne contrôle plus de la moitié de la puissance totale du réseau, auquel cas on parle d'attaque à 51 %, ou d'attaque majoritaire. Bien que plus difficiles pour les attaquants de petite taille, il peut y avoir des incitations financières qui rendent les attaques de modification de l'historique rentables.
Évolutivité

Le problème d'évolutivité de Bitcoin fait référence à la capacité limitée du réseau Bitcoin à gérer de grandes quantités de données de transaction sur sa plateforme dans un court laps de temps. Il est lié au fait que les enregistrements (appelés blocs ) dans la blockchain Bitcoin sont limités en taille et en fréquence.
Les blocs de Bitcoin contiennent les transactions sur le réseau Bitcoin. La capacité de traitement des transactions en chaîne du réseau Bitcoin est limitée par le temps moyen de création des blocs de 10 minutes et la limite de taille de bloc d'origine de 1 mégaoctet. Ces éléments limitent conjointement le débit du réseau . La capacité maximale de traitement des transactions estimée à l'aide d'une taille de transaction moyenne ou médiane est comprise entre 3,3 et 7 transactions par seconde. Il existe diverses solutions proposées et activées pour résoudre ce problème.Confidentialité
Désanonymisation des clients
La désanonymisation est une stratégie d'exploration de données dans laquelle les données anonymes sont croisées avec d'autres sources de données pour réidentifier la source de données anonyme. En plus de l'analyse des graphes de transactions, qui peut révéler des connexions entre les adresses Bitcoin (pseudonymes), il existe une attaque possible qui lie le pseudonyme d'un utilisateur à son adresse IP . Si le pair utilise Tor , l'attaque comprend une méthode pour séparer le pair du réseau Tor, le forçant à utiliser sa véritable adresse IP pour toute transaction ultérieure. Le coût de l'attaque sur l'ensemble du réseau Bitcoin a été estimé à moins de 1 500 € par mois, en 2014.