Comprendre le fonctionnement
Lorsqu’un actif numérique (par exemple du Bitcoin ou de l’Ether) est transféré sur une blockchain, il ne s’agit pas d’un virement traditionnel. Le transfert repose sur une transaction publique inscrite de manière infalsifiable dans le registre de la blockchain. Cette transaction suit plusieurs étapes techniques avant d’être validée et ajoutée au registre.
Lorsqu’une transaction est initiée, le processus se déroule généralement de la manière suivante :
- L’adresse de destination et le montant sont renseignés dans l’outil de saisie de la transaction, souvent l’application de portefeuille ;
- La transaction est signée à l’aide de la clé privée du détenteur, permettant de prouver l’autorisation de l’opération ;
- La transaction est transmise au réseau par l’application de portefeuille qui contacte un des points d’entrée du réseau (un nœud) qui l’intégre dans sa file d’attente de transactions à traiter (pool de mémoire ou « MemPool ») et qui la diffuse aux autres noeuds du réseau pour prise en compte (« broadcasting »), en attente de traitement ;
- Les validateurs (mineurs ou stakers, selon le type de blockchain) sélectionnent les transactions valides et les intègrent dans un nouveau bloc ;
- Une fois le bloc validé et ajouté à la chaine, la transaction devient définitive et immuable.
Ce processus peut s’exécuter en quelques secondes ou en quelques minutes, en fonction des spécificités de la blockchain utilisée.
Approfondissement technique du processus
- Création de la transaction
L’utilisateur définit :
- L’adresse du destinataire (clé publique),
- Le montant envoyé,
- Les frais de réseau (appelés gas fees sur Ethereum).
La transaction est signée avec la clé privée (algorithme cryptographique de type ECDSA)
- Propagation dans le réseau
La transaction est envoyée à des nœuds du réseau, elle est ensuite placée dans un « mempool* », en attente de traitement. Les transactions avec les frais les plus élevés sont habituellement traitées en priorité.
- Inclusion dans un bloc
Un validateur (PoS) ou mineur (PoW) sélectionne l’ensemble de transactions dans le mempool. Il les agrège dans un bloc et y ajoute :
- Un horodatage
- Le hash** du bloc précédent
- Un hash du bloc courant
Ce bloc est ensuite proposé au réseau
- Validation et finalisation
Le réseau valide le bloc selon son mode de consensus. Une fois validé, le bloc est ajouté à la chaîne.
La transaction devient alors irréversible et publiquement consultable sur un explorateur blockchain (par exemple : Etherscan pour la blockchain Ethereum).
*Mempool : Le terme « mempool » fait référence à la « memory pool » (« pool » ou « bloc » de mémoire). C’est une collection de toutes les transactions qui ont été diffusées sur le réseau mais qui n’ont pas encore été incluses dans un bloc. En d’autres termes, c’est un espace où les transactions en attente sont stockées jusqu’à ce qu’elles soient validées et confirmées par les mineurs.
**Hash : Une fonction de hachage est un algorithme cryptographique unidirectionnel polyvalent qui transforme une entrée de n’importe quelle taille en une sortie unique d’une longueur fixe et qui constitue une empreinte ou signature numérique propre à cette entrée.
Pourquoi est-ce important ? Cela garantit que personne ne peut tricher ou dépenser deux fois le même cryptoactif. Cela rend aussi les transactions traçables, transparente et permanentes. A noter : tout ce mécanisme explique par ailleurs les délais, frais et priorités dans les transferts cryptos.