Pour comprendre Bitcoin, il faut d'abord abandonner l'idée de pièces numériques stockées dans un coffre-fort virtuel. Dans le monde bancaire traditionnel, l'argent est défini par les soldes de compte. Si vous avez de l'argent dans une banque, une base de données centrale affiche un nombre spécifique à côté de votre nom. Bitcoin fonctionne de manière totalement différente. Il n'y a pas de pièces physiques, ni de fichiers numériques représentant des pièces individuelles. Il n'y a pas non plus de comptes dans la couche du protocole qui listent simplement le solde d'un utilisateur.
Au lieu de cela, l'ensemble du système repose sur un historique des transactions. Ce que nous appelons un « bitcoin » est essentiellement une chaîne de signatures numériques reflétant un historique de transfert de valeur. La propriété est établie non pas en détenant un objet statique, mais en ayant la capacité de créer une nouvelle entrée dans ce registre. Lorsque un utilisateur vérifie le solde de son portefeuille, le logiciel scanne en fait l'ensemble de la blockchain pour calculer la somme de toutes les transactions non dépensées accessibles par ses clés.
Cette différence architecturale est fondamentale pour la manière dont le réseau reste décentralisé. Sans banque centrale pour mettre à jour un registre maître des soldes, le réseau repose sur une chaîne de détention transparente et vérifiable. Chaque transaction pointe vers une précédente, remontant jusqu'au moment où les pièces ont été minées pour la première fois par un mineur. Cette structure garantit que la valeur ne peut pas être créée de toutes pièces et que l'historique de chaque fraction de bitcoin est traçable et immuable.
Les fondements de la propriété : Cryptographie à clé publique
Comprendre les paires de clés
Au cœur des mécanismes des transactions Bitcoin se trouve la cryptographie à clé publique. Ce cadre mathématique permet aux utilisateurs de générer une identité numérique sécurisée sans s'enregistrer auprès d'une autorité centrale. La propriété est définie par la possession d'une paire de clés : une clé privée et une clé publique. La clé privée est un secret généré aléatoirement, similaire à un mot de passe, mais bien plus complexe. Elle accorde l'autorité pour déplacer les fonds.
La clé publique est dérivée mathématiquement de la clé privée. Elle peut être partagée ouvertement sans compromettre la sécurité. À partir de cette clé publique, le réseau génère une adresse Bitcoin, qui sert de destination pour les fonds. Cette voie à sens unique est cruciale. Vous pouvez facilement générer une clé publique à partir d'une clé privée, mais il est impossible d'inverser le processus et de dériver la clé privée à partir de la clé publique.
Cette asymétrie permet au réseau de fonctionner sans confiance. Lorsqu'un utilisateur souhaite recevoir des fonds, il partage son adresse. Lorsqu'il souhaite dépenser des fonds, il utilise sa clé privée pour signer cryptographiquement un message. Cette signature prouve qu'il possède la clé privée associée à l'adresse contenant les fonds, sans jamais révéler la clé privée elle-même au réseau ou au destinataire.
Le rôle des signatures numériques
Une transaction Bitcoin est efficacement un message qui déclare : « Je transfère ces bitcoins spécifiques vers cette nouvelle adresse. » Pour rendre ce message valide, il doit être signé numériquement. La signature numérique est créée en appliquant la clé privée de l'expéditeur aux données de la transaction. Ce processus génère une chaîne de données unique spécifique à cette transaction exacte.
Si une partie des détails de la transaction était modifiée — comme le montant ou l'adresse de destination — la signature ne correspondrait plus. Cela garantit qu'une fois une transaction signée et diffusée, elle ne peut pas être altérée par des tiers. Les participants du réseau, ou nœuds, peuvent utiliser la clé publique de l'expéditeur pour vérifier mathématiquement la signature.
Si les calculs correspondent, le réseau sait que la transaction est légitime et autorisée par le véritable propriétaire. Si cela échoue, la transaction est rejetée immédiatement. Cette vérification se produit automatiquement sur des milliers d'ordinateurs dans le monde entier, sécurisant le réseau sans intervention humaine.
| Composant | Fonction | Visibilité |
|---|---|---|
| Clé privée | Signe les transactions pour prouver la propriété | Secret (Propriétaire uniquement) |
| Clé publique | Vérifie les signatures par rapport à l'adresse | Public (Réseau) |
| Adresse | Destination pour recevoir des fonds | Public (Quiconque) |
Le modèle Unspent Transaction Output (UTXO)
Comment Bitcoin gère la valeur
La plupart des gens sont habitués au modèle « basé sur les comptes » utilisé par les banques et les cartes de crédit. Dans ce système, si vous avez 100 $ et dépensez 20 $, la banque met simplement à jour votre entrée de base de données pour afficher 80 $. Bitcoin utilise une logique différente connue sous le nom de modèle Unspent Transaction Output (UTXO). Dans ce système, il n'y a pas de soldes persistants, seulement des chunks de bitcoin reçus mais pas encore dépensés.
Imaginez ces UTXO comme de l'argent liquide numérique ou des pépites d'or de tailles variées. Si vous recevez une transaction de 0,5 BTC et une autre de 0,3 BTC, vous détenez deux UTXO distincts dans votre portefeuille. Ils ne fusionnent pas en une seule « pièce » de 0,8 BTC sur la blockchain, même si votre logiciel de portefeuille affiche la somme totale pour plus de commodité. Ils restent des enregistrements de valeur distincts en attente d'utilisation.
Lorsque vous initiez une transaction, votre portefeuille sélectionne suffisamment de ces UTXO pour couvrir le montant que vous souhaitez envoyer. Vous ne pouvez pas diviser un UTXO en deux sans le dépenser entièrement. C'est similaire à la façon dont fonctionne l'argent physique. Vous ne pouvez pas déchirer un billet de 20 $ pour payer un article de 10 $. Vous devez remettre le billet entier et recevoir la monnaie en retour.
Entrées, sorties et monnaie rendue
Chaque transaction Bitcoin consiste en des entrées et des sorties. Les entrées sont des références à des UTXO précédents que vous dépensez maintenant. Les sorties sont les nouvelles destinations pour cette valeur. Lorsque vous construisez une transaction, vous consommez des UTXO existants comme entrées et créez de nouveaux UTXO comme sorties.
Par exemple, si un mineur gagne une récompense de bloc de 6,25 BTC, c'est un seul UTXO. Si le mineur veut envoyer 1 BTC à Alice, il ne peut pas simplement envoyer 1 BTC. Il doit construire une transaction qui prend le UTXO de 6,25 BTC comme entrée. La transaction aura alors deux sorties.
La première sortie envoie 1 BTC à Alice. La seconde sortie renvoie les 5,25 BTC restants à l'adresse du mineur lui-même. Cette seconde sortie est connue sous le nom de « sortie de monnaie rendue ». Sur la blockchain, le UTXO original de 6,25 BTC est marqué comme dépensé et n'est plus valide pour les transactions futures. À sa place, deux nouveaux UTXO (1 BTC et 5,25 BTC) sont créés et enregistrés. Cette chaîne d'entrées et de sorties crée l'historique incassable de la monnaie.
Bitcoin Script : Le langage des transactions
Exécution basée sur pile
Les transactions Bitcoin ne sont pas de simples transferts de valeur ; ce sont des instructions programmables. Ces instructions sont écrites dans un langage appelé Bitcoin Script. Contrairement aux langages de programmation complexes utilisés pour le développement de logiciels généraux, Script est intentionnellement simple. Il est « basé sur pile », ce qui signifie qu'il traite les données en poussant des éléments sur une liste (la pile) et en effectuant des opérations sur les éléments du haut.
Script n'est pas non plus complet Turing. Cela signifie qu'il manque la capacité de créer des boucles ou une logique complexe qui pourrait s'exécuter indéfiniment. Ce choix de conception est une fonctionnalité de sécurité délibérée. En limitant la complexité du langage, le réseau empêche les boucles infinies qui pourraient faire planter les nœuds ou permettre aux attaquants de bloquer le système avec des commandes coûteuses en calcul.
Le script dicte les conditions qui doivent être remplies pour qu'un UTXO soit dépensé. Lorsqu'une transaction est créée, l'expéditeur attache un « Script de verrouillage » (ScriptPubKey) à la sortie. Ce script déclare essentiellement : « Ces fonds ne peuvent être déplacés que par quelqu'un qui peut fournir une signature correspondant à ce hachage de clé publique spécifique. »
Désverrouillage et validation
Pour dépenser ces fonds plus tard, le propriétaire crée une nouvelle transaction contenant un « Script de déverrouillage » (ScriptSig). Ce script contient la signature numérique et la clé publique. Lorsqu'un nœud valide une transaction, il exécute les deux scripts ensemble. Il place le script de déverrouillage sur la pile suivi du script de verrouillage de la transaction précédente.
Le nœud exécute les instructions séquentiellement. Si le résultat final est « True », la transaction est valide et les fonds peuvent être déplacés. Si le résultat est « False », la transaction est invalide. Ce mécanisme permet des conditions plus complexes que la simple propriété.
Par exemple, des scripts peuvent être écrits pour exiger plusieurs signatures (Multi-Sig), où deux des trois clés désignées doivent signer avant que les fonds ne bougent. Les scripts peuvent aussi imposer des verrouillages temporels, empêchant les fonds d'être dépensés jusqu'à ce qu'une certaine hauteur de bloc soit atteinte. Cette programmabilité est la base de fonctionnalités avancées comme le Lightning Network et les sidechains, qui utilisent des scripts complexes pour activer des règlements hors chaîne plus rapides et moins chers.
Le cycle de vie des transactions : Du portefeuille à la blockchain
Création et diffusion
Le parcours d'une transaction Bitcoin commence dans le logiciel de portefeuille de l'utilisateur. Le portefeuille rassemble les entrées nécessaires à partir des UTXO disponibles de l'utilisateur et définit les sorties. Il calcule la différence entre les entrées et les sorties, qui devient les frais de transaction. Une fois les détails définis, le portefeuille utilise la clé privée pour générer la signature numérique.
Ce paquet de données signé est ensuite diffusé sur le réseau. Le nœud de l'utilisateur envoie le message à ses pairs, qui à leur tour le propagent à travers le monde. Chaque nœud qui reçoit la transaction effectue une vérification initiale. Ils vérifient que la signature numérique est valide, que les entrées n'ont pas déjà été dépensées et que les valeurs de la transaction sont non négatives.
Si la transaction passe ces vérifications, le nœud l'ajoute à sa zone de stockage temporaire connue sous le nom de « mempool » (pool de mémoire). Le mempool n'est pas une file d'attente centrale unique mais une collection locale de transactions valides et non confirmées stockées par chaque nœud individuel. À ce stade, la transaction est connue du réseau mais ne fait pas encore partie de l'historique permanent de la blockchain.
Le marché des frais et la priorisation
Étant donné que les blocs sur la blockchain Bitcoin ont une capacité de taille limitée, toutes les transactions du mempool ne peuvent pas tenir dans le bloc suivant. Cette rareté crée un marché des frais. Les mineurs, qui construisent les blocs, sont financièrement motivés à inclure les transactions qui paient les frais les plus élevés par octet de données.
Les frais ne sont pas déterminés par la valeur du bitcoin envoyé mais par la taille des données de la transaction. Une transaction déplaçant 10 millions de dollars peut être très petite en taille de données si elle n'utilise qu'une entrée et une sortie. Inversement, une transaction déplaçant 100 $ peut être grande en taille de données si elle rassemble de la poussière de cinquante petites entrées pour effectuer le paiement.
Les utilisateurs qui veulent que leurs transactions soient confirmées rapidement doivent attacher un frais suffisamment compétitif pour attirer les mineurs. Pendant les périodes de forte congestion du réseau, le mempool se remplit de transactions non confirmées. Les mineurs choisissent naturellement les enchères les plus élevées. Les transactions avec des frais bas peuvent rester dans le mempool pendant des heures ou des jours jusqu'à ce que le trafic diminue ou que l'expéditeur augmente le frais.
Minage et consensus
Les mineurs jouent le rôle final dans la solidification des mécanismes de transaction. Un mineur sélectionne un lot de transactions de son mempool pour former un bloc candidat. Ils s'engagent ensuite dans la Preuve de travail (PoW), un processus intensif en calcul où ils rivalisent pour résoudre un puzzle mathématique basé sur les données de ce bloc.
Ce processus nécessite de hacher l'en-tête du bloc de manière répétée avec un nombre aléatoire appelé nonce jusqu'à ce que le hachage résultant tombe en dessous d'une difficulté cible spécifique. La difficulté s'ajuste automatiquement tous les 2 016 blocs pour s'assurer que de nouveaux blocs sont trouvés approximativement toutes les 10 minutes, indépendamment de la puissance de calcul qui rejoint le réseau.
Une fois qu'un mineur trouve une solution valide, il diffuse le nouveau bloc sur le réseau. Les autres nœuds reçoivent le bloc et vérifient la solution. Ils revérifient également chaque transaction incluse dans ce bloc pour s'assurer qu'aucune règle n'a été violée. Une fois validé, les nœuds mettent à jour leur copie locale de la blockchain, en supprimant les transactions incluses de leur mempool. La transaction est maintenant confirmée.
Traiter le problème de la double dépense
Le défi de la duplication numérique
Dans le domaine numérique, les informations sont facilement copiées. Si vous envoyez une photo par e-mail, vous conservez toujours le fichier original. Pour la monnaie numérique, cela présente une vulnérabilité critique connue sous le nom de problème de double dépense. Sans mécanisme pour l'empêcher, un acteur malveillant pourrait signer une transaction envoyant 1 BTC à un marchand et simultanément signer une autre transaction envoyant ce même 1 BTC à lui-même ou à une autre partie.
Dans un système centralisé, une banque empêche cela en maintenant un registre maître. Dans un réseau décentralisé, il n'y a pas d'autorité centrale pour dire quelle transaction est arrivée en premier. Bitcoin résout cela par la combinaison du registre public de la blockchain et de la Preuve de travail.
Étant donné que chaque nœud complet maintient une copie complète de la blockchain, l'ensemble du réseau a un consensus sur les UTXO actuellement valides. Si un utilisateur essaie de diffuser deux transactions conflictuelles, les nœuds accepteront la première qu'ils voient et rejetteront la seconde comme une tentative de dépenser des entrées déjà référencées.
Irréversibilité par la Preuve de travail
Cependant, des différences de timing pourraient amener différents nœuds à accepter temporairement différentes versions de la vérité. C'est là que le minage devient décisif. La « vérité » dans Bitcoin est définie par la chaîne la plus longue avec le plus de Preuve de travail accumulée. Une fois qu'une transaction est incluse dans un bloc, elle devient partie de cet historique officiel.
Pour inverser ou double-dépenser une transaction déjà confirmée dans un bloc, un attaquant devrait re-miner ce bloc et tous les blocs subséquents plus rapidement que le reste du réseau combiné. Cela est connu sous le nom d'attaque à 51 %. L'immense coût en énergie et en matériel requis pour y parvenir rend le registre pratiquement immuable.
À mesure que plus de blocs sont ajoutés au-dessus du bloc contenant une transaction spécifique, la sécurité augmente de manière exponentielle. Une transaction avec une confirmation est généralement sécurisée, mais une avec six confirmations est considérée comme mathématiquement impossible à inverser dans des conditions normales de réseau. Ce mécanisme transforme des données numériques, normalement faciles à copier, en un actif numérique unique et fini.
Le rôle des nœuds dans l'intégrité du réseau
Validation vs Minage
Il est courant de penser que seuls les mineurs sécurisent le réseau. Bien que les mineurs ordonnent les transactions et produisent les blocs, les « nœuds » sont les auditeurs qui appliquent les règles. Un nœud est tout ordinateur exécutant le logiciel Bitcoin qui stocke la blockchain et valide le trafic.
Les nœuds complets téléchargent chaque bloc et transaction. Ils vérifient les signatures numériques, s'assurent que les montants des entrées couvrent les montants des sorties et veillent à qu'aucune pièce ne soit double-dépensée. Importamment, les nœuds vérifient également le travail effectué par les mineurs. Si un mineur produit un bloc qui viole une règle du protocole — comme s'attribuer trop de bitcoin ou inclure une transaction invalide — les nœuds rejetteront le bloc immédiatement.
Ce rejet se produit indépendamment de l'énergie dépensée par le mineur pour créer le bloc. Cet équilibre des pouvoirs garantit que les mineurs ne peuvent pas changer les règles du système ou imprimer de l'argent supplémentaire. Ils sont au service du protocole, tenus en échec par le réseau décentralisé de nœuds géré par des individus et des entreprises du monde entier.
Décentralisation et fiabilité
La robustesse des mécanismes des transactions Bitcoin repose sur la diversité et le nombre de ces nœuds. Plus les nœuds sont distribués, plus il est difficile pour une entité de censurer des transactions ou d'arrêter le réseau. Les nœuds communiquent en pair-à-pair, propageant les données de transaction comme une rumeur se propageant dans une foule.
Il n'y a pas de serveur central à pirater. Si une section d'Internet est hors ligne, les nœuds restants continuent de fonctionner. Lorsque les nœuds déconnectés reviennent, ils se synchronisent avec le réseau pour télécharger l'historique manquant. Cette architecture garantit que le registre reste cohérent et disponible globalement, 24 h/24, 7 j/7, sans interruption.
Les utilisateurs peuvent exécuter leurs propres nœuds pour obtenir une souveraineté financière. En vérifiant leurs propres transactions plutôt que de dépendre d'un service de portefeuille tiers, ils éliminent le besoin de faire confiance à quiconque sur l'état de leurs finances. Cela s'aligne avec l'éthos central de Bitcoin : « Ne faites pas confiance, vérifiez. »
Frais du réseau et poids des données
Calcul des coûts
Le coût d'une transaction Bitcoin est souvent mal compris. Ce n'est pas un pourcentage du montant envoyé, comme un frais de traitement de carte de crédit. Il s'agit strictement d'un paiement pour l'espace de bloc. L'espace de bloc est une ressource rare, limitée à une capacité spécifique par bloc (conceptuellement 1 Mo, bien qu'améliorée par le pondération SegWit).
Étant donné que le système utilise le modèle UTXO, la taille des données d'une transaction dépend de la complexité de ses entrées et sorties. Une transaction qui consolide dix petites entrées en une sortie contient plus de données de signature numérique qu'une transaction utilisant une seule entrée. Par conséquent, elle consomme plus d'octets dans le bloc.
Les mineurs facturent par unité de données, généralement mesurée en satoshis par octet (sat/vB). Un « satoshi » est la plus petite unité de Bitcoin (0,00000001 BTC). Si le taux de marché actuel est de 50 sats/octet, une transaction simple pourrait coûter 2 $, tandis qu'une complexe pourrait coûter 10 $, même si elles transfèrent la même valeur.
| Facteur | Impact sur les frais | Raison |
|---|---|---|
| Nombre d'entrées | Augmente les frais | Chaque entrée nécessite un script de signature numérique |
| Nombre de sorties | Augmente les frais | Chaque sortie ajoute des données pour la nouvelle adresse |
| Congestion | Augmente le taux | Forte demande fait monter le prix du marché sat/octet |
Gérer la congestion
Les frais du réseau fluctuent énormément en fonction de la demande. Lorsque le mempool est vide, les utilisateurs peuvent payer le frais minimum et être quand même confirmés dans le bloc suivant. Lorsque le réseau est occupé, les utilisateurs doivent concurrencer. Les portefeuilles estiment généralement le frais requis en regardant l'arriéré actuel dans le mempool.
Pour les utilisateurs qui fixent un frais trop bas, la transaction n'est pas perdue ; elle reste simplement dans le mempool. Éventuellement, si elle n'est jamais prise par un mineur, elle sera supprimée de la mémoire des nœuds et les fonds resteront effectivement dans le portefeuille de l'expéditeur. Dans les situations urgentes, les utilisateurs peuvent utiliser des accélérateurs de transaction ou des protocoles « Replace-by-Fee » (RBF) pour augmenter le frais d'une transaction bloquée, la rediffusant efficacement avec un incitatif plus élevé pour les mineurs.
Conclusion
Les mécanismes des transactions Bitcoin représentent un passage des systèmes financiers basés sur la confiance aux systèmes cryptographiques basés sur la vérification. En remplaçant les soldes de compte par le modèle UTXO, Bitcoin traite la valeur comme une chaîne de détention numérique qui peut être auditée par quiconque. La cryptographie à clé publique garantit que seul le propriétaire de la clé privée peut initier ces transferts, offrant un niveau de sécurité qui ne repose pas sur des coffres-forts bancaires ou des vérifications d'identité.
Ce système est maintenu par l'interaction des nœuds, des mineurs et des règles spécifiques de Bitcoin Script. Le langage de script, bien qu'intentionnellement limité en portée, fournit la logique nécessaire pour valider la propriété et activer des conditions de dépense complexes sans compromettre la stabilité du réseau. Le marché compétitif des frais et le mempool garantissent que la ressource limitée de l'espace de bloc est allouée efficacement, tandis que la Preuve de travail fournit la sécurité thermodynamique qui rend le registre immuable.
Comprendre ces mécanismes révèle pourquoi Bitcoin est décrit comme un registre décentralisé. Ce n'est pas seulement une monnaie mais un système comptable rigoureux et automatisé maintenu par un consensus mondial. Chaque aspect, des mathématiques des clés à l'ensemble des entrées UTXO, est conçu pour permettre à des inconnus d'échanger de la valeur sans intermédiaires, résolvant le problème de double dépense par du code plutôt que par l'autorité.
Bitcoin remplace la confiance dans les institutions par une preuve cryptographique, garantissant que le transfert de valeur est vérifié, immuable et strictement détenu par le titulaire de la clé.