Rappel : Pour profiter pleinement de cette formation, sauvegarder votre progression et obtenir votre diplôme en fin de formation, il est vivement recommandé de vous créer un compte CoinAcademy et de vous y connecter.
Dans cet article vous allez découvrir les différentes étapes d'une transaction Bitcoin, contrairement aux apparences, une transaction envoyée n'est pas automatiquement ajoutée à la blockchain, avant cela elle est stockée dans une liste d'attente appelée mempool.
Le mempool : la liste d'attente des transactions
Mempool est l'abréviation de “Memory Pool“. Dans Bitcoin, le mempool est une sorte de “liste d'attente” pour les transactions qui n'ont pas encore été confirmées et incluses dans un bloc de la blockchain.
Lorsqu'une transaction Bitcoin est créée, elle est d'abord transmise à tous les nœuds du réseau. Ces nœuds vérifient que la transaction est valide (par exemple, que l'expéditeur a suffisamment de bitcoins pour effectuer la transaction) et, si c'est le cas, ils l'ajoutent à leur mempool.
Les mineurs de Bitcoin puisent ensuite dans leur mempool pour créer de nouveaux blocs. Ils choisissent généralement les transactions qui offrent les frais de transaction les plus élevés, car ces frais sont une source de revenus pour eux.
Une fois qu'une transaction a été incluse dans un bloc et que ce bloc a été ajouté à la blockchain, la transaction est confirmée et est retirée du mempool.
Il est à noter que tous les nœuds n'ont pas le même mempool, car les transactions peuvent prendre un certain temps à se propager à travers le réseau et les nœuds peuvent avoir des politiques différentes quant aux transactions qu'ils acceptent dans leur mempool. Par exemple, certains nœuds peuvent refuser d'inclure des transactions avec des frais de transaction très bas.
Vous pouvez visualiser les transactions en attente dans un mempool en temps réel sur le site txstreet.
Sur cette image on peut voir que plus de 90 000 transactions sont en attente, en sachant qu'un bloc Bitcoin contient en général 2000 à 4000 transactions. Pour rappel un bloc est généré toutes les 10 minutes.
La taille maximale d'un bloc Bitcoin est de 1 Mo (mégaoctet) dans le protocole Bitcoin original, bien qu'une mise à jour appelée SegWit (en août 2017) ait permis d'augmenter cette limite effective à environ 4 Mo par bloc en modifiant la façon dont certaines informations sont stockées.
Lorsque le bloc est rempli, il est nécessaire d'attendre le bloc suivant pour pouvoir ajouter de nouvelles transactions. Mais comme vu plus haut, il faut attendre en moyenne 10 minutes par bloc. Si vous êtes pressés, vous aurez donc pour obligation de payer plus cher votre transaction pour motiver les mineurs de bitcoins à faire passer votre transaction en priorité.
Pour info : un bloc Bitcoin peut contenir 1 à 4 Mo de transactions en sachant qu'une transaction Bitcoin peut prendre environ 250 à 500 octets (soit 0,00025 à 0,0005 Mo). Un bloc Bitcoin peut contenir 2000 à 4000 transactions sans SegWit et 4 fois plus avec SegWit c'est-à-dire 8000 à 16000 transactions.
Les transactions en crypto monnaies fonctionnent un peu comme des enchères
Dans le système Bitcoin, les frais de transaction sont payés par les utilisateurs aux mineurs pour prioriser l'inclusion de leurs transactions dans le prochain bloc qui sera ajouté à la blockchain, ces frais étant généralement plus élevés lorsque le réseau est surchargé.
Les transactions Bitcoin sont similaires aux enchères car les utilisateurs “enchérissent” avec des frais de transaction plus élevés pour que leurs transactions soient traitées en priorité par les mineurs.
Les étapes d'une transaction jusqu'à sa finalisation
Retrouvez ci-dessous les étapes incontournables d'une transaction :
- Un utilisateur émet une transaction.
- La transaction est diffusée à tous les ordinateurs participants au réseau Bitcoin : ces ordinateurs sont appelés nœuds. Toutes les transactions sont publiées dans le mempool.
- Les mineurs vérifient la transaction par rapport à certaines règles de validation définies par les créateurs du réseau blockchain spécifique.
- Les transactions validées sont stockées dans un bloc et sont scellées avec une clé appelée hash.
- Ce nouveau bloc est ajouté à la blockchain Bitcoin et devient partie intégrante de la blockchain lorsque les autres ordinateurs du réseau vérifient si la clé du bloc est correcte.
- La transaction est terminée et ne peut plus être modifiée de quelque manière que ce soit.
Confirmation des transactions dans Bitcoin
Dans le réseau Bitcoin, une confirmation signifie qu'une transaction a été vérifiée par le réseau et ajoutée à la blockchain.
Voici comment cela fonctionne :
- Première confirmation: Lorsqu'une transaction est d'abord émise, elle est en attente et n'a pas encore été confirmée. Lorsqu'un mineur résout l'énigme cryptographique nécessaire pour ajouter un nouveau bloc à la blockchain (un processus appelé “minage”), il ajoute un ensemble de transactions en attente à ce bloc. La transaction est alors considérée comme “confirmée”. C'est la première confirmation.
- Confirmations supplémentaires: Chaque fois qu'un nouveau bloc est ajouté à la blockchain après le bloc contenant votre transaction, cela compte comme une confirmation supplémentaire pour votre transaction. Cela signifie essentiellement que la transaction est de plus en plus enracinée dans la blockchain, car modifier ou supprimer une transaction nécessiterait de refaire le minage de tous les blocs qui ont suivi.
Plus il y a de confirmations, plus la transaction est considérée comme sécurisée contre une possible attaque double dépense, où quelqu'un tenterait de dépenser les mêmes bitcoins plus d'une fois.
Généralement, une transaction est considérée comme suffisamment sécurisée après 6 confirmations, ce qui prend en moyenne environ une heure (étant donné que les blocs Bitcoin sont minés environ toutes les 10 minutes).
Les plateformes centralisées permettant d'acheter des bitcoins comme Binance ont un seuil de tolérance plus bas (2-3 confirmations soit environ 20-30 minutes) afin de permettre à leurs utilisateurs de recevoir leurs bitcoins plus rapidement mais tolérer un nombre de confirmations inférieur n'est pas sans risque.
Quel est le risque en acceptant une transaction bitcoin avec une seule confirmation ?
Lorsque vous acceptez une transaction Bitcoin avec une seule confirmation, il y a un petit risque qu'elle puisse être annulée dans le cadre d'une attaque dite de “double dépense“. Une attaque de double dépense se produit lorsqu'un mauvais acteur réussit à dépenser les mêmes bitcoins plus d'une fois.
Cela peut se produire de la manière suivante : le mauvais acteur envoie une transaction avec des bitcoins à une personne ou une entreprise, puis crée immédiatement une autre transaction envoyant les mêmes bitcoins à une adresse publique qu'il contrôle. Ces deux transactions ne peuvent pas coexister dans la blockchain, alors les mineurs doivent choisir l'une des transactions à inclure dans le prochain bloc.
Si le mauvais acteur contrôle une quantité significative de puissance de minage sur le réseau Bitcoin, il pourrait potentiellement miner un bloc contenant sa seconde transaction et l'ajouter à la blockchain avant que les autres mineurs honnêtes n'aient la chance d'ajouter un bloc contenant la première transaction. Si cela se produit, la première transaction serait annulée.
Cependant, une attaque de double dépense est très difficile à réaliser en pratique. Elle nécessite une quantité énorme de puissance de calcul et est donc très coûteuse. De plus, après chaque nouvelle confirmation, il devient de plus en plus difficile d'annuler une transaction.
Si vous souhaitez en savoir plus sur l'attaque par double dépense, n'hésitez pas à consulter notre article dédié à ce sujet.
Visualiser les frais de transaction sur Bitcoin en temps réel
Sur le site mempool.space vous pouvez visualiser en temps réel l'estimation du prix d'une transaction nécessaire pour que votre transaction passe en priorité.
Sat/vb est une unité de mesure utilisée pour déterminer les frais de transaction dans le réseau Bitcoin. “Sat” est l'abréviation de “satoshi“, la plus petite unité de bitcoin, nommée en l'honneur de Satoshi Nakamoto, le créateur de Bitcoin. Un bitcoin est composé de 100 millions de satoshis.
“vB” est l'abréviation de “vByte“. C'est une mesure de la taille d'une transaction introduite avec la mise à jour SegWit de Bitcoin. Avant SegWit, la taille des transactions était mesurée en bytes. Cependant, SegWit a changé la façon dont certaines données sont comptées, ce qui a conduit à l'introduction de la mesure “vbyte”.
Par conséquent, “sat/vB” représente le nombre de satoshis que vous êtes prêt à payer en frais de transaction. Plus ce chiffre est élevé, plus votre transaction est susceptible d'être traitée rapidement, car les mineurs ont tendance à prioriser les transactions avec des frais plus élevés.
Pour valider ce chapitre et passer à la suite, cliquez sur “Ce qu'il faut retenir” ci-dessous. Cette étape vous aidera avant de répondre au quiz de cette partie.