This article has been translated from English to French.
Comment fonctionnent les transactions Bitcoin ?
Une transaction Bitcoin est un transfert d'une certaine quantité de bitcoins d'une adresse à une autre adresse qui est enregistrée sur la blockchain.
Mais comment ce processus de « transfert » fonctionne-t-il réellement ?
Dans cette leçon, je vais te montrer comment fonctionne une transaction Bitcoin du début à la fin.
Tout d'abord, nous allons voir comment une transaction Bitcoin fonctionne du pointde vue d'un utilisateur. Ensuite, nous verrons comment une transaction Bitcoin fonctionne d'un point de vue global.
Cela t'aidera à te souvenir de tous les nouveaux concepts que tu as appris dans les leçons précédentes.
Êtes-vous prêts ?

Disons qu'Ironman possède 1 bitcoin qu'elle souhaite envoyer à Batman.

Du point de vue d'Ironman
La première chose qu'Ironman ferait serait d'ouvrir son portefeuille Bitcoin.
Il peut utiliser n'importe quel type de portefeuille, mais dans cet exemple, il utilise un portefeuille logiciel qu'il a installé sur son ordinateur portable.

Ensuite, il demande à Batman son adresse Bitcoin.
C'est là que Batman veut recevoir son bitcoin. Batman lui envoie par e-mail une adresse Bitcoin qu'Ironman copie et colle.

Ironman entre ensuite le montant de bitcoins qu'il souhaite envoyer à Batman.

Comme ses énormes doigts en alliage d'or et de titane sont sujets aux fautes de frappe, il vérifie qu'il a entré le bon nombre.
Et il appuie sur Envoyer.

Le logiciel du portefeuille demande alors le mot de passe pour confirmer la transaction.
Pour envoyer des bitcoins, Ironman doit prouver au réseau Bitcoin qu'il est bien lui qui envoie l'argent et qu'il est propriétaire des bitcoins.
C'est là qu'intervient sa clé privée (qui est stockée dans le portefeuille).
Une fois que Ironman a saisi le bon mot de passe, le logiciel du portefeuille« signe »la transaction à l'aide de la clé privée de Batman, créant ainsi une donnée distincte appelée «signature numérique». (Tout cela se fait en arrière-plan.)

Transaction Bitcoin en coulisses
À partir de là, l'intervention de Batman est terminée.
Le logiciel du portefeuille se connecte à un nœud Bitcoin et envoie le message de transaction, ainsi quela « signature numérique »et la clé publique.
Le nœud vérifie si la transaction est valide:
- L'expéditeur a-t-il suffisamment de BTC liés à son adresse pour effectuer la transaction ?
- L'expéditeur est-il autorisé à envoyer le BTC ?
Par exemple, il vérifie que Batman a bien 1 BTC à envoyer. Si la transaction passe tous les contrôles, le nœud transmet la transaction à d'autres nœuds.
Par défaut, les nœuds ne se font pas confiance, ils valideront donc à nouveau la transaction pour eux-mêmes.
Et ce n'est que si la transaction est jugée valide qu'ils la partageront avec les nœuds auxquels ils sont connectés.

Si une transaction est jugée valide, elle est alors stockée dans une zone de stockage temporaire appelée « pool de mémoire » ou «mempool».
À ce stade, une transaction est considérée comme « non confirmée » ou «en attente».

Des nœuds spéciaux appelés« mineurs» regroupent cette transaction avec d'autres transactions valides de leur mempool dansun « bloc».

Les mineurs se feront alors concurrence pour être les premiers à « miner » leur bloc. Cela implique d'essayer de trouver un nombre qui commence par un nombre spécifique de zéros.
La seule façon de trouver ce nombre est d'essayer et d'échouer. En d'autres termes, de faire autant de suppositions que possible.

Le premier mineur à deviner un nombre correct est le premier à « miner » son bloc.
Dès que le mineur a trouvé la bonne réponse, il partage son bloc ainsi que le « numéro gagnant » avec les autres nœuds du réseau Bitcoin.

Les nœuds du réseau Bitcoin vérifient que le mineur a deviné le bon nombre et, s'il est correct, ils ajoutent le bloc du mineur gagnant à leur copie de la chaîne de blocs. Ils envoient également ce bloc à d'autres nœuds.
Puisque le bloc (qui contient la transaction) a maintenant été ajouté à la version « officielle » de la blockchain, la transaction est désormais considérée comme «confirmée».
Une fois que ce bloc est créé et que la nouvelle transaction est vérifiée et incluse dans ce bloc, on dit que la transaction a «une confirmation».

Du point de vue de Batman
Batman voit que la transaction a été confirmée et vérifie son portefeuille Bitcoin pour voir si le bitcoin a été transféré.

Plus il y a de blocs construits au-dessus du bloc contenant la transaction d'Ironman, plus la transaction est « confirmée » sur la blockchain.
En gros, chaque bloc ajouté est considéré commeune « confirmation supplémentaire». Attendre six confirmations est la norme actuelle pour que la plupart des transactions soient considérées comme sécurisées.
Et trois, c'est gagné !
Un bitcoin a maintenant été transféré d'une adresse appartenant à Ironman vers une nouvelle adresse appartenant à Batman.
Et à moins qu'Ironman ou Batman ne partage publiquement l'adresse de leur portefeuille Bitcoin, personne ne saura que deux super-héros célèbres ont participé à une transaction Bitcoin.
Tout ce que l'on verrait, c'est 1 BTC envoyé d'une adresse à une autre, mais on ne saurait pas qui se cache derrière ces adresses.
Comme tu peux le voir, de nombreuses étapes d'une transaction Bitcoin se déroulent en coulisses.
Une fois que Batman a partagé son adresse avec Ironman et qu'Ironman a initié la transaction en utilisant son portefeuille Bitcoin, le reste a été géré par des ordinateurs et du code logiciel.
Vue d'ensemble d'une transaction Bitcoin
Maintenant, voyons comment fonctionne une transaction Bitcoin.
Supposons qu'Ironman ait déjà saisi l'adresse de Batman et le montant de bitcoins à envoyer.

Le portefeuille d'Ironman se connecte à un nœud qui diffuse un message à tous les ordinateurs (le « réseau Bitcoin ») qui exécutent une copie de la base de données à jour (la « blockchain Bitcoin ») qui dit, en substance : «Je veux envoyer 1 bitcoin à Batman ».
Ironman possède une chaîne unique de lettres et de chiffres appelée «clé privée». Grâce à cette clé privée, le logiciel du portefeuille de Batman génèreune « signature numérique »qui garantit que le message provient bien de lui et de personne d'autre.
Les ordinateurs(« nœuds complets ») du réseau Bitcoin peuvent facilement confirmer si Ironman est bien celui qui a envoyé le message en utilisant une chaîne de lettres et de chiffres différente fournie par Ironman, appelée «clé publique», pour vérifier cette « signature numérique ».
Ils peuvent également facilement confirmer qu'Ironman a 1 bitcoin à envoyer car ils ont tous une copie de la base de données actuelle.
Tous les nœuds se mettent constamment à jour les uns les autres avec les dernières informations(« transactions ») qui sont ajoutées au réseau Bitcoin.
Une transaction existe en tant qu'enregistrement du transfert de bitcoin d'une adresse à une autre. Les transactions ne sont pas enregistrées individuellement sur la blockchain, mais sont d'abord regroupées en blocs.
Il est important de noter qu'à ce stade, la transaction n'a été que proposée. Aucun ordinateur n'a encore mis à jour sa copie du registre(« blockchain »).
Les transactions sont d'abord placées dans ce qui équivaut à une salle d'attente(« mempool »), où elles restent en attente de confirmation.
Le mempool (pool de mémoire) est une base de données plus petite de transactions non confirmées (en attente) que chaque nœud conserve. Toutes les transactions dans le mempool sont en attente et ne doivent pas être considérées comme fiables tant qu'elles ne sont pas incluses dans un bloc.
Comme la transaction est seulement proposée et non réglée, le système peut rapidement relayer le message pour s'assurer que chaque participant en est informé.
Dans le diagramme ci-dessous, Ironman et Batman sont représentés par des portefeuilles violets.
Les cercles gris représentent les ordinateurs (« full nodes ») qui font partie du réseau Bitcoin peer-to-peer (P2P).
Les carrés noirs représentent la « blockchain », des copies du registre mises à jour séquentiellement, au moment où Ironman propose sa transaction au réseau.
Comme tu peux le voir, des copies identiques de la blockchain sont stockées sur des ordinateurs du monde entier(« full nodes ») qui exécutent le logiciel Bitcoin. Cette conception garantit qu'aucune entité n'a le contrôle du registre et rend Bitcoin résistant au contrôle (ou à la fermeture) par un gouvernement ou une autorité centrale.
Tous les nœuds qui conservent une copie complète de la chaîne de blocs, appelés «nœuds complets», devraient être détruits pour effacer le registre. Tant que l'intégralité du registre existe sur au moins un nœud complet, il y aura un enregistrement de toutes les transactions Bitcoin à travers l'histoire.

Bien sûr, Ironman n'est pas le seul à créer une transaction. D'autres membres des Avengers envoient leurs bitcoins à d'autres destinataires. Par exemple, Captain America pourrait envoyer des bitcoins au Soldat de l'hiver.
C'est là qu'intervient un participant spécial du réseau :les « mineurs ».
Les mineurs sont des ordinateurs dispersés dans le monde entier et qui constituent un élément essentiel du réseau Bitcoin. Leur travail consiste à regrouper de nouvelles transactions valides, telles que celle d'Ironman, et à les proposer pour règlement.
Ces groupes de transactions sont appelés« blocs », d'où vient le « bloc » dans « blockchain ».
Un bloc est un ensemble de transactions. Les blocs sont reliés entre eux de manière chronologique pour former une « chaîne de blocs » ou blockchain.
À tout moment, des milliers de ces ordinateurs sont en concurrence pour obtenir le droit de créer le bloc suivant. La compétition consiste à résoudre une « énigme », et les mineurs ne peuvent proposer un nouveau bloc que s'ils résolvent l'énigme en cours.
Ce « puzzle » revient essentiellement à essayer de deviner un nombre correct. Les chances de deviner un nombre correct sont d'environ 1 sur 6 000 milliards.
Donc, le truc pour être le premier à trouver un nombre « gagnant » est de deviner autant de nombres que possible. Cela nécessite une grande puissance de calcul qui utilise d'énormes quantités d'énergie.
Celui qui trouve la solution en premier a droit à une récompense, appelée «récompense de bloc».
La récompense de bloc a été conçue pour inciter les nœuds à participer au minage. Sinon, il n'y aurait pas de mineurs puisqu'ils ne seraient pas en mesure de récupérer le coût élevé des ordinateurs et le coût de l'électricité pour les faire fonctionner.
La récompense de bloc est composée de DEUX éléments :
- Bitcoins nouvellement frappés
- Les frais de transaction (qui sont payés par la personne qui initie la transaction, comme Ironman)
Les bitcoins nouvellement émis « gagnés » par le mineur sont appelés« subvention de bloc »et représentent la plus grande partie de la récompense. Actuellement, chaque nouveau bloc s'accompagne d'une récompense de 6,25 bitcoins nouvellement émis.
Chaque bloc contient plusieurs transactions, et toutes les transactions incluent des frais, que les mineurs collectent.
En résumé :
Récompense du bloc = subvention du bloc + frais de transaction
La récompense de bloc est ce qui incite les mineurs à effectuer le travail nécessaire pour vérifier les transactions et maintenir la base de données.
Tous les 210 000 blocs, soit environ tous les quatre ans, la subvention des blocs est réduite de moitié lors d'un événement appelé« halving». Ce processus se poursuivra jusqu'à ce que la subvention des blocs soit nulle. À ce stade, les mineurs ne percevront que les frais de transaction.
De nouveaux blocs sont réglés sur le réseau Bitcoin toutes les 10 minutes environ, bien que le temps exact dépende de la rapidité avec laquelle le « puzzle » est résolu.
Aujourd'hui, la plupart des opérations de minage sont effectuées par des « pools de minage », des groupes de mineurs qui combinent leur puissance de traitement et se partagent la récompense du bloc.
Ce processus est illustré dans le diagramme ci-dessous.

Les mineurs sont maintenant représentés par des cercles orange.
Le carré bleu représente le registre mis à jour qui inclut un certain nombre de nouvelles transactions, dont celle d'Ironman.
Pour l'instant, seul un participant au réseau (le mineur qui a proposé le nouveau bloc de transactions ) peut voir le registre entièrement mis à jour.
Tous les autres participants ne voient toujours que les blocs plus anciens, qui sont représentés en noir.
Comme la récompense est importante, de nombreux mineurs se font concurrence pour régler chaque bloc de transactions.
De par sa conception, résoudre le « puzzle » est une entreprise coûteuse, car elle nécessite une puissance de calcul importante et beaucoup d'électricité. Et il est impossible de savoir lequel des milliers de mineurs résoudra le « puzzle » en premier.
Une fois qu'un mineur a résolu le « puzzle » (deviner un nombre correct), il peut publier la solution et proposer son bloc de transactions au réseau.
Ce qui est bien avec cette approche, c'est que même si la résolution du puzzle est difficile et coûteuse, la vérification du résultat est très facile. Et lorsqu'un mineur publie une solution et son bloc de transactions, les autres membres du réseau vérifient le travail.
Si les transactions sont valides et que la solution à l'« énigme » est correcte, les participants au réseau mettent à jour leur copie de la base de données pour refléter les nouvelles transactions.
À ce stade, la transaction d'Ironman est considérée comme réglée ou «confirmée». Le bitcoin a été transféré de l'adresse d'Ironman à celle de Batman et a été officiellement enregistré sur la blockchain.
Ce « mécanisme de consensus »qui détermine quelles transactions sont enregistrées de manière permanente et « confirmées » est au cœur de la conception de la blockchain de Bitcoin.
Ce processus est illustré ci-dessous.

Tous les participants au réseau ont maintenant accepté le nouveau bloc de transactions proposé (carrébleu ). En conséquence, leurs registres sont mis à jour et synchronisés.
Il est important de noter que la concurrence pour régler le bloc de transactions suivant dépend de l'inclusion des informations du bloc précédent, ce qui oblige les mineurs à mettre rapidement à jour leur copie de la base de données et garantit qu'il est très difficile de falsifier un bloc réglé.
C'est ce « chaînage des blocs » qui explique pourquoi cette architecture de base de données est appelée «blockchain ».
La blockchain Bitcoin contient tous les blocs depuis sa création, jusqu'au tout premier bloc connu sous le nom de «bloc de genèse ».
Que se passe-t-il si le mineur de bitcoins inconnu qui soumet un bloc est un acteur malveillant et propose un bloc de transactions invalide qui lui profite d'une manière ou d'une autre ?
Ou si Ironman était malveillant et essayait d'envoyer le même bitcoin à Spider-Man et Wonder Woman en même temps sans que personne ne s'en aperçoive ?
Les participants au réseau examinent chaque transaction dans chaque bloc proposé et rejettent les blocs contenant des transactions non valides. Aujourd'hui, plus de 100 000 nœuds vérifient indépendamment chaque transaction Bitcoin !
Étant donné que le travail de validation des transactions et de vérification que seules les transactions valides sont réglées est trivialement facile pour les participants au réseau, mais que tenter de régler des transactions est coûteux, l'incitation à essayer de frauder le système est minime.
Résumé
Résumons toutes les interactions sur le réseau Bitcoin :
- Si tu veux envoyer des bitcoins à une autre personne, tu fournis l'adresse Bitcoin du destinataire, et ton portefeuille se connectera à un nœud pour initier une transaction.
- Le nœud vérifiera la transaction, la validera, puis la diffusera et la relaiera aux autres nœuds et mineurs. Si une transaction enfreint l'une des règles de Bitcoin, les nœuds la rejetteront automatiquement.
- Les mineurs regroupent ces transactions dans un « bloc candidat » (bloc temporaire) et se font concurrence pour être celui qui publie son bloc sur la blockchain en étant le premier à deviner correctement la solution à un « puzzle » mathématique.
- Le mineur « gagnant » peut publier ce bloc temporaire en tant que bloc permanent sur la blockchain, confirmant ainsi la transaction (et les autres transactions du lot).
- Les nœuds reçoivent ce bloc et vérifient que le mineur respecte les règles du réseau. (Si le bloc enfreint l'une des règles de Bitcoin, les nœuds le rejettent automatiquement.)
- Chaque fois qu'un nœud reçoit un nouveau bloc et le juge valide, il le relaie aux autres nœuds, de sorte que tous les nœuds (y compris les mineurs) puissent rester synchronisés et conserver des chaînes de blocs identiques.
- Tous les autres mineurs suppriment le bloc temporaire sur lequel ils travaillaient et commencent un nouveau « bloc candidat » avec une nouvelle « énigme » mathématique.
- Une fois que le nœud auquel le portefeuille du destinataire est connecté a reçu le nouveau bloc, le portefeuille du destinataire affichera un solde mis à jour avec les bitcoins nouvellement reçus.