Comment fonctionne la blockchain : explication étape par étape
Comprendre comment fonctionne la blockchain exige de suivre une transaction depuis son origine jusqu’à sa confirmation finale. Même si la technologie sous-jacente implique une cryptographie avancée et de l’ingénierie de systèmes distribués, le processus de base est d’une élégante simplicité : les transactions sont créées, diffusées, vérifiées, regroupées en blocs, puis enregistrées de façon permanente dans un registre partagé.
Ce guide parcourt chaque étape du processus blockchain en prenant Bitcoin comme exemple principal, tout en indiquant les différences avec d’autres blockchains comme Ethereum. À la fin, vous comprendrez exactement ce qui se passe depuis le moment où vous cliquez sur "Send" jusqu’au moment où votre transaction devient une partie irréversible de la blockchain.
Étape 1 : Création de la transaction
Toute interaction blockchain commence par la création d’une transaction. Quand vous décidez d’envoyer une cryptomonnaie, votre logiciel de portefeuille construit un message de transaction contenant plusieurs informations.
Entrées et sorties de transaction
Bitcoin utilise un modèle Unspent Transaction Output (UTXO). Considérez les UTXO comme des billets numériques dans votre portefeuille. Si vous avez reçu 0.5 BTC et 0.3 BTC dans deux transactions distinctes, vous avez deux UTXO totalisant 0.8 BTC. Quand vous voulez envoyer 0.6 BTC, votre portefeuille :
- Sélectionne des UTXO qui couvrent ensemble le montant (0.5 + 0.3 = 0.8 BTC).
- Crée une transaction avec l’adresse du destinataire comme sortie (0.6 BTC).
- Crée une sortie de monnaie vers votre propre adresse (0.2 BTC moins les frais de transaction).
- Les UTXO sélectionnés deviennent "spent" et les nouvelles sorties deviennent de nouveaux UTXO.
Ethereum utilise un modèle basé sur les comptes différent, plus proche d’un compte bancaire traditionnel. Chaque adresse possède un solde, et les transactions débitent simplement l’expéditeur et créditent le destinataire.
Signature numérique
Avant qu’une transaction puisse être diffusée, elle doit être signée avec la clé privée de l’expéditeur. C’est là que la sécurité de votre seed phrase devient essentielle : votre clé privée est dérivée de votre seed phrase, et toute personne qui la possède peut signer des transactions en votre nom.
Le processus de signature fonctionne comme suit :
- Les données de la transaction sont hachées avec SHA-256 (Bitcoin) ou Keccak-256 (Ethereum).
- Le hachage est signé avec la clé privée de l’expéditeur via l’algorithme ECDSA.
- La signature numérique résultante est ajoutée à la transaction.
- N’importe qui peut vérifier la signature avec la clé publique de l’expéditeur, confirmant que la transaction a été autorisée par le détenteur de la clé sans jamais voir la clé privée elle-même.
C’est un principe fondamental : la signature prouve la propriété. Votre clé privée ne quitte jamais votre appareil pendant ce processus. Seule la signature — qui ne peut pas être utilisée pour reconstituer la clé privée — est partagée avec le réseau.
Étape 2 : Diffusion de la transaction
Une fois signée, la transaction est diffusée au réseau blockchain. Votre portefeuille se connecte à un ou plusieurs nœuds (ordinateurs exécutant le logiciel blockchain) et envoie les données de transaction.
Propagation pair-à-pair
Les réseaux blockchain fonctionnent sur une topologie pair-à-pair (P2P). Il n’y a pas de serveur central. Quand un nœud reçoit votre transaction, il effectue des vérifications de validation initiales et, si elle est valide, la relaie à ses pairs connectés. Ces pairs valident puis relaient à leur tour. En quelques secondes, votre transaction se propage sur tout le réseau — atteignant généralement la majorité des nœuds en 2 à 15 secondes.
Le mempool
Après propagation, votre transaction entre dans le mempool (memory pool) — une zone d’attente de transactions non confirmées maintenue par chaque nœud. Le mempool n’est pas un pool partagé unique ; chaque nœud maintient sa propre version, qui peut différer légèrement en raison de la latence réseau et des politiques individuelles des nœuds.
Les transactions dans le mempool sont classées principalement par fee rate (satoshis par octet sur Bitcoin, ou prix du gas sur Ethereum). Les mineurs et validateurs sélectionnent d’abord les transactions les plus rémunératrices, car cela maximise leurs revenus. Pendant les périodes de forte demande réseau, le mempool peut fortement grossir, et les transactions à faibles frais peuvent attendre des heures, voire des jours, avant confirmation.
Frais de transaction
Les frais de transaction ont deux objectifs :
- Inciter les mineurs/validateurs à inclure votre transaction dans un bloc.
- Empêcher le spam en rendant coûteux l’envoi massif de transactions sans valeur.
Sur Bitcoin, les frais sont calculés selon la taille de la transaction en octets (et non selon le montant envoyé). Une transaction envoyant 10 BTC peut coûter les mêmes frais qu’une transaction envoyant 0.001 BTC si leur taille en octets est identique.
Sur Ethereum, les frais suivent le modèle EIP-1559 avec des base fee (brûlés) et un priority tip (payé au validateur). La base fee s’ajuste dynamiquement selon la congestion réseau.
Étape 3 : Validation de la transaction
Avant qu’une transaction puisse être incluse dans un bloc, les nœuds la valident indépendamment selon les règles du protocole. Cette validation est essentielle pour maintenir l’intégrité de la blockchain.
Vérifications de validation
Chaque nœud effectue plusieurs contrôles sur chaque transaction reçue :
- Validité syntaxique : la transaction est-elle correctement formatée selon la spécification du protocole ?
- Vérification de signature : la signature numérique correspond-elle à la clé publique de l’expéditeur ? Cela confirme que la transaction a été autorisée par le détenteur de la clé privée.
- Vérification de double dépense : les UTXO référencés (Bitcoin) sont-ils toujours non dépensés, ou le compte (Ethereum) a-t-il un solde suffisant ?
- Validation de script : les scripts de verrouillage et de déverrouillage s’exécutent-ils correctement ? (Bitcoin utilise un langage de script appelé Script pour définir les conditions de dépense.)
- Adéquation des frais : la transaction inclut-elle des frais suffisants pour atteindre le seuil minimal de relais du nœud ?
- Limites de taille : la transaction respecte-t-elle les contraintes de taille du protocole ?
Si une transaction échoue à l’un de ces contrôles, elle est rejetée et n’est pas relayée vers d’autres nœuds. Cette validation décentralisée est ce qui rend la blockchain résistante aux transactions frauduleuses — chaque nœud vérifie indépendamment chaque transaction selon le même ensemble de règles.
Étape 4 : Construction du bloc
Les mineurs (dans les systèmes en proof-of-work) ou les validateurs (dans les systèmes en proof-of-stake) collectent les transactions validées depuis le mempool et les assemblent dans un bloc candidat.
Structure d’un bloc
Un bloc typique contient :
En-tête de bloc :
- Version : la version du protocole.
- Hash du bloc précédent : le hash SHA-256 de l’en-tête du bloc précédent. C’est ce qui crée la "chaîne" dans blockchain.
- Racine de Merkle : un hash unique résumant toutes les transactions du bloc.
- Horodatage : l’heure approximative de création du bloc.
- Cible de difficulté (PoW) : le seuil en dessous duquel le hash du bloc doit se situer pour que le bloc soit valide.
- Nonce (PoW) : un compteur que les mineurs incrémentent pendant la recherche d’un hash valide.
Corps du bloc :
- Nombre de transactions : le nombre de transactions incluses.
- Liste des transactions : les données réelles des transactions.
- Transaction coinbase : une transaction spéciale en première position qui crée de nouvelles pièces comme récompense de bloc et collecte tous les frais de transaction. C’est la seule transaction d’un bloc qui n’a pas d’entrées — elle crée de la nouvelle monnaie à partir de rien, selon le calendrier d’émission du protocole.
Sélection des transactions
Les mineurs sélectionnent généralement les transactions pour maximiser leurs revenus, en priorisant celles avec les fee rates les plus élevés. Cependant, ils doivent aussi respecter la limite de taille de bloc (poids de bloc de 4 MB sur Bitcoin) ou la limite de gas de bloc (environ 30 millions de gas sur Ethereum). Cela crée un marché naturel de l’espace de bloc — en période de forte demande, les utilisateurs se concurrencent en proposant des frais plus élevés.
Certains mineurs peuvent avoir des politiques supplémentaires, comme inclure certains types de transactions indépendamment des frais ou exclure des transactions qui interagissent avec des adresses sanctionnées.
Construction de l’arbre de Merkle
L’arbre de Merkle est construit en hachant de manière répétée des paires de hashes de transactions :
- Chaque transaction est hachée individuellement.
- Les hashes adjacents sont appariés puis hachés ensemble.
- Ce processus remonte l’arbre jusqu’à ce qu’un hash unique reste : la racine de Merkle.
La racine de Merkle fournit un résumé compact de toutes les transactions. Si une transaction est modifiée, la racine de Merkle change, révélant immédiatement toute altération. Cette structure permet aussi la Simplified Payment Verification (SPV), où les clients légers peuvent vérifier l’inclusion d’une transaction sans télécharger des blocs complets.
Étape 5 : Consensus et production de bloc
Le bloc candidat doit passer par le mécanisme de consensus du réseau pour être accepté. C’est là que les différentes blockchains divergent fortement.
Proof of Work (Bitcoin)
En proof-of-work, les mineurs se disputent la découverte d’une valeur de nonce qui, combinée aux données de l’en-tête de bloc puis hachée, produit un hash inférieur à la cible de difficulté du réseau. C’est essentiellement une recherche par force brute :
- Le mineur construit l’en-tête de bloc avec tous les champs requis.
- Le mineur hache l’en-tête avec SHA-256 (appliqué deux fois sur Bitcoin).
- Si le hash résultant est inférieur à la cible de difficulté, le bloc est valide.
- Sinon, le mineur incrémente le nonce et recommence.
- Ce processus se répète des milliards de fois par seconde sur l’ensemble des mineurs.
La cible de difficulté s’ajuste tous les 2 016 blocs (environ deux semaines) pour maintenir un temps moyen de bloc de 10 minutes, quelle que soit la puissance totale de minage sur le réseau.
Quand un mineur trouve un hash valide, il a résolu l’"énigme" et peut diffuser son bloc au réseau. Le premier mineur à trouver une solution valide remporte la récompense de bloc (actuellement 3.125 BTC après le halving d’avril 2024) plus tous les frais de transaction du bloc.
Proof of Stake (Ethereum)
Ethereum utilise le proof of stake, où les validateurs sont sélectionnés aléatoirement pour proposer des blocs en fonction de la quantité d’ETH qu’ils ont stakée (verrouillée en collatéral). Le processus est fondamentalement différent :
- Un validateur est sélectionné pseudo-aléatoirement pour proposer un bloc à chaque slot de 12 secondes.
- Le proposeur crée un bloc et le diffuse.
- Un comité de validateurs atteste (vote) que le bloc est valide.
- Une fois suffisamment d’attestations collectées, le bloc est considéré comme justifié puis finalement finalisé.
Le proof of stake élimine le calcul de hash énergivore du proof of work tout en maintenant la sécurité via des incitations économiques — les validateurs risquent de perdre leur ETH staké (slashing) s’ils agissent de manière malveillante.
Pour une comparaison plus approfondie, consultez notre guide sur les Consensus Mechanisms.
Étape 6 : Propagation du bloc
Une fois qu’un bloc valide est produit, il doit être distribué à travers le réseau.
Propagation réseau
Le mineur ou validateur gagnant diffuse le nouveau bloc à ses pairs, qui valident le bloc puis le relaient plus loin. La propagation d’un bloc prend généralement 1 à 10 secondes pour atteindre la majorité du réseau, selon la taille du bloc et les conditions réseau.
Compact Block Relay (BIP 152)
Bitcoin utilise Compact Block Relay pour accélérer la propagation. Comme la plupart des nœuds ont déjà les transactions dans leurs mempools, le nouveau bloc n’a besoin de transmettre qu’un résumé compact (identifiants de transaction courts) plutôt que les données complètes des transactions. Les nœuds peuvent reconstruire le bloc complet depuis leur mempool, réduisant les besoins de bande passante d’environ 90 %.
Blocs orphelins
Il arrive que deux mineurs trouvent des blocs valides presque en même temps, créant un fork temporaire. Le réseau résout cela naturellement : la chaîne qui reçoit le bloc suivant en premier devient la chaîne la plus longue, et l’autre bloc devient un orphelin (ou bloc périmé). Les transactions du bloc orphelin retournent dans le mempool et sont généralement incluses dans le bloc suivant de la chaîne gagnante.
Étape 7 : Validation du bloc et extension de la chaîne
Quand un nœud reçoit un nouveau bloc, il valide indépendamment l’ensemble du bloc avant de l’accepter.
Validation complète
Les nœuds vérifient :
- Validité de l’en-tête de bloc : format correct, hash du bloc précédent valide, proof of work conforme à la cible de difficulté (ou signature de validateur valide en PoS).
- Validité des transactions : chaque transaction du bloc passe les mêmes vérifications décrites à l’étape 3.
- Cohérence de la racine de Merkle : la racine de Merkle calculée correspond à celle de l’en-tête de bloc.
- Taille/poids du bloc : le bloc ne dépasse pas les limites du protocole.
- Validité de la coinbase : la récompense de bloc et la collecte des frais sont correctes selon les règles actuelles du protocole.
- Plage d’horodatage : l’horodatage du bloc se situe dans des bornes acceptables.
Si toutes les vérifications passent, le nœud ajoute le bloc à sa copie locale de la blockchain et met à jour son ensemble UTXO (ou state trie sur Ethereum). Le nœud relaie ensuite le bloc à ses pairs.
Étape 8 : Confirmation de la transaction
Une fois votre transaction incluse dans un bloc valide, elle a reçu sa première confirmation. Chaque bloc supplémentaire ajouté au-dessus du bloc de votre transaction ajoute une confirmation.
Pourquoi plusieurs confirmations comptent
Une seule confirmation signifie que votre transaction est dans la blockchain, mais le bloc peut théoriquement devenir orphelin si une chaîne concurrente le dépasse. Chaque confirmation supplémentaire rend une réorganisation exponentiellement moins probable :
| Confirmations | Temps d’attente Bitcoin | Niveau de sécurité |
|---|---|---|
| 0 (non confirmée) | — | Vulnérable à la double dépense |
| 1 | ~10 minutes | Adaptée aux petits montants |
| 3 | ~30 minutes | Sécurité raisonnable |
| 6 | ~60 minutes | Standard pour les montants importants |
| 12+ | ~2 heures | Très haute sécurité |
La norme souvent citée de 6 confirmations pour Bitcoin signifie que la probabilité d’une réorganisation de chaîne réussie (et donc d’une double dépense) est astronomiquement faible — cela exigerait qu’un attaquant contrôle plus de 50 % de la puissance de hash du réseau et la maintienne pendant plus d’une heure.
Ethereum offre une finalité plus rapide. En conditions normales, une transaction atteint la finalité (ne peut pas être inversée sans brûler au moins un tiers de tout l’ETH staké) en environ 12 à 15 minutes.
Types de finalité
- Finalité probabiliste (Bitcoin) : les transactions deviennent de plus en plus difficiles à inverser à chaque confirmation, mais il n’existe pas de point absolu d’irréversibilité. Six confirmations est le seuil pratique largement accepté.
- Finalité économique (Ethereum PoS) : après finalisation, inverser une transaction exigerait de brûler des milliards de dollars d’ETH staké — économiquement irrationnel pour tout attaquant.
- Finalité absolue (certaines chaînes basées sur BFT) : les transactions sont irréversibles immédiatement après confirmation du bloc. Les chaînes comme les réseaux basés sur Tendermint offrent cette propriété.
Vue d’ensemble complète : le parcours d’une transaction
Pour résumer le cycle de vie complet :
- Vous initiez un transfert depuis votre portefeuille.
- Votre portefeuille construit la transaction, en sélectionnant les entrées et sorties (UTXO) ou en spécifiant le montant du transfert (modèle de compte).
- Votre clé privée signe la transaction, prouvant que vous l’avez autorisée.
- La transaction signée est diffusée au réseau P2P.
- Les nœuds valident la transaction et l’ajoutent à leur mempool.
- Un mineur/validateur sélectionne votre transaction dans le mempool et l’inclut dans un bloc candidat.
- Le bloc est produit via proof of work ou proof of stake.
- Le nouveau bloc se propage à travers le réseau.
- Les nœuds valident et acceptent le bloc, étendant la chaîne.
- Votre transaction gagne des confirmations à mesure que de nouveaux blocs sont construits au-dessus.
Ce processus complet — de la création à la première confirmation — prend environ 10 minutes pour Bitcoin et 12 secondes pour Ethereum, bien que votre transaction puisse passer davantage de temps dans le mempool en attente de sélection.
La sécurité de votre transaction commence avec vos clés. Utilisez le SafeSeed Seed Phrase Generator pour créer une seed phrase BIP-39 cryptographiquement sécurisée. Chaque étape du processus blockchain — de la signature des transactions à la preuve de propriété — dépend de la sécurité de vos clés privées, qui sont dérivées de votre seed phrase.
Concepts avancés
Malléabilité des transactions
Dans les premières versions de Bitcoin, il était possible de modifier l’identifiant d’une transaction (txid) sans l’invalider — une propriété appelée transaction malleability. Cela a été largement résolu par la mise à niveau Segregated Witness (SegWit) en 2017, qui sépare les données de signature des données de transaction, garantissant que le txid ne peut pas être modifié après signature.
Replace-By-Fee (RBF)
Bitcoin prend en charge Replace-By-Fee, permettant à un expéditeur de renvoyer une transaction avec des frais plus élevés pour accélérer la confirmation. La nouvelle transaction remplace l’originale dans le mempool. C’est utile quand le réseau est congestionné et que vos frais initiaux étaient trop faibles. Les portefeuilles qui prennent en charge RBF marquent les transactions comme remplaçables, et la version à frais plus élevés est prioritaire.
Regroupement de transactions
Les exchanges et grands expéditeurs regroupent souvent plusieurs paiements dans une seule transaction à sorties multiples. C’est plus efficace en espace que d’envoyer des transactions individuelles, ce qui réduit les frais globaux et l’utilisation de l’espace de bloc.
FAQ
Combien de temps prend une transaction blockchain ?
Le temps de transaction varie selon la blockchain. Bitcoin produit en moyenne un bloc toutes les 10 minutes, mais votre transaction peut attendre dans le mempool avant inclusion. Ethereum produit des blocs toutes les 12 secondes. Les solutions Layer 2 comme le Lightning Network peuvent régler des paiements en millisecondes. Le délai total entre soumission et première confirmation dépend de la congestion réseau et des frais payés.
Que se passe-t-il si j’envoie à la mauvaise adresse ?
Les transactions blockchain sont irréversibles. Si vous envoyez une cryptomonnaie à la mauvaise adresse, il n’existe aucune autorité centrale pouvant annuler la transaction. Si l’adresse appartient à quelqu’un, vous devez le contacter directement en espérant qu’il renvoie les fonds. Si l’adresse est invalide ou n’appartient à personne, les fonds sont effectivement perdus pour toujours. Vérifiez toujours les adresses deux fois avant d’envoyer.
Une transaction blockchain peut-elle échouer ?
Sur Bitcoin, une transaction correctement construite et signée sera finalement confirmée (même si cela peut prendre longtemps avec des frais très faibles). Sur Ethereum, les transactions peuvent échouer (revert) si l’exécution du smart contract rencontre une erreur ou manque de gas. Dans les deux cas, les frais de transaction sont quand même consommés. Certains portefeuilles fournissent une simulation de transaction pour prédire si une transaction réussira avant soumission.
Qu’est-ce qu’un hash de transaction (txid) ?
Un hash de transaction (txid ou transaction ID) est un identifiant unique attribué à chaque transaction. Il est généré en hachant les données de transaction. Vous pouvez utiliser le txid pour suivre votre transaction sur un block explorer (comme mempool.space pour Bitcoin ou etherscan.io pour Ethereum). Le txid est attribué dès la création de la transaction et ne change pas une fois confirmée.
Pourquoi les frais de transaction fluctuent-ils ?
Les frais de transaction sont déterminés par l’offre et la demande d’espace de bloc. Quand de nombreux utilisateurs effectuent des transactions en même temps, ils se disputent un espace de bloc limité en offrant des frais plus élevés. Pendant les périodes calmes, les frais diminuent. L’espace de bloc Bitcoin est fixe (poids de 4 MB par bloc toutes les 10 minutes), donc les frais peuvent grimper fortement en période de forte demande. L’EIP-1559 d’Ethereum fournit une base fee plus prévisible qui s’ajuste algorithmiquement selon l’utilisation du réseau.
Quelle est la différence entre transactions confirmées et non confirmées ?
Une transaction non confirmée existe dans le mempool mais n’a pas encore été incluse dans un bloc. Elle est en attente et peut théoriquement être remplacée ou supprimée. Une transaction confirmée a été incluse dans un bloc et ajoutée à la blockchain. À chaque bloc supplémentaire construit au-dessus, le nombre de confirmations augmente et la transaction devient de plus en plus difficile à inverser.
Les mineurs peuvent-ils choisir de ne pas inclure ma transaction ?
Oui. Les mineurs et validateurs peuvent choisir quelles transactions inclure dans leurs blocs. Ils ne sont pas obligés d’inclure une transaction précise. Toutefois, les incitations économiques les poussent fortement à inclure autant de transactions payant des frais que possible. En pratique, toute transaction valide avec des frais adéquats sera finalement incluse par un mineur, même si quelques-uns choisissent de l’ignorer.