Quand votre portefeuille indique « envoyé », l'argent n'est pas forcément déjà en sécurité. Cet article explique la différence entre une transaction incluse, confirmée et finalisée, comment chaque chaîne la gère, et combien de temps attendre avant de vous fier à un paiement.
Les trois étapes d'une transaction
Ces mots s'emploient de façon légèrement différente selon les cas, mais l'idée est la même.
- Incluse (included) : la transaction est dans un bloc. Elle apparaît sur un explorateur. Ce bloc pourrait encore être remplacé.
- Confirmée (confirmed) : d'autres blocs ont été ajoutés par-dessus, ce qui rend son remplacement plus difficile. Chaque nouveau bloc est une confirmation de plus.
- Finalisée (finalized) : le réseau garantit que le bloc ne sera pas annulé, sauf si une grande partie du système tombe en panne. Toutes les chaînes n'ont pas de point de finalité explicite.
Pensez à un chèque bancaire. Le remettre est une chose. Voir l'argent sur votre compte en est une autre. Savoir qu'il ne peut plus être rejeté est la dernière étape.
Les reorgs : pourquoi attendre aide
Les blockchains sont exploitées par de nombreux nœuds, et il arrive que deux blocs valides soient produits presque au même moment. Pendant un court instant, différentes parties du réseau voient des blocs différents. Bientôt, une branche devient plus longue ou reçoit plus de votes, et l'autre est abandonnée. C'est une réorganisation, ou reorg.
Quand votre bloc est abandonné, votre transaction retourne dans la file d'attente et est généralement incluse à nouveau dans un bloc ultérieur. Mais un paiement que vous pensiez terminé peut brièvement disparaître. Dans des cas rares et extrêmes, quelqu'un pourrait tenter de réécrire volontairement une portion plus longue de la chaîne. Plus il y a de blocs au-dessus du vôtre, plus un attaquant aurait besoin de travail ou d'enjeu. C'est pourquoi attendre davantage de confirmations rend un paiement plus sûr.
Bitcoin
Bitcoin a une finalité probabiliste. Il n'y a pas de moment unique où un paiement devient définitif. Chaque confirmation rend une annulation moins probable.
Une règle empirique courante est de 6 confirmations, soit environ une heure, car les blocs arrivent environ toutes les 10 minutes en moyenne. Les petits paiements sont souvent acceptés avec 1 à 3 confirmations. Les sommes plus importantes attendent souvent 6 confirmations ou plus. Vous pouvez voir arriver les blocs sur la page Bitcoin. Pour en savoir plus sur les frais et les délais, voir mempool et frais Bitcoin.
Ethereum
Ethereum produit un bloc par créneau (slot) de 12 secondes. 32 créneaux forment une époque (epoch). Les validateurs votent sur les blocs, et le réseau peut marquer un bloc comme justifié (justified) puis finalisé (finalized).
La finalité prend environ deux époques, soit environ 13 minutes. Ensuite, annuler le bloc exigerait de détruire une grande quantité d'ETH mis en jeu, donc l'annulation est extrêmement improbable. Avant cela, une transaction incluse dans un bloc est généralement sûre pour des paiements ordinaires, mais une reorg d'un bloc récent est possible. Voir Ethereum.
Solana
Solana utilise des niveaux d'engagement (commitment levels) que vous pouvez demander lors de la lecture des données :
- Processed : le nœud a vu la transaction dans un bloc. Elle pourrait encore être abandonnée.
- Confirmed : une large majorité de l'enjeu a voté pour le bloc. Il est rarement annulé.
- Finalized : le bloc est enraciné (rooted), c'est-à-dire que de nombreux blocs ont été construits dessus, et il ne peut plus être annulé.
Les créneaux de Solana durent environ 400 millisecondes : l'état confirmed arrive donc en quelques secondes et l'état finalized prend nettement plus de temps, mais les deux sont rapides comparés à Bitcoin. Les explorateurs et les portefeuilles affichent généralement l'état confirmed ou finalized. Voir Solana.
Réseaux de couche 2
Sur les rollups comme Arbitrum, Base et Optimism, il existe plusieurs niveaux.
- Confirmation souple par le séquenceur. La L2 possède un composant qui ordonne les transactions, appelé séquenceur (sequencer). Quand il accepte votre transaction, vous la voyez incluse en une ou deux secondes. C'est rapide, mais cela repose sur la promesse du séquenceur.
- Publiée sur Ethereum (L1). Les lots du séquenceur sont publiés sur Ethereum. Une fois le lot dans un bloc Ethereum, les données sont publiques et n'importe qui peut reconstituer l'état de la L2.
- Définitive après la finalité de la L1. Quand le bloc Ethereum qui contient le lot est finalisé, la transaction L2 est aussi définitive qu'Ethereum lui-même.
La fenêtre de 7 jours concerne les retraits
Les rollups optimistes ont une fenêtre de contestation d'environ 7 jours. On la confond souvent avec la finalité, mais c'est autre chose. Elle s'applique quand vous retirez des fonds de la L2 vers Ethereum via le pont officiel. Le système attend pour que chacun puisse contester une déclaration invalide. L'usage normal de la L2, comme envoyer ou échanger, n'attend pas 7 jours. Les ponts rapides et les plateformes d'échange peuvent raccourcir l'attente pour vous, moyennant un coût et avec leurs propres risques. Voir rollups optimistes et à preuve de connaissance nulle et les ponts et leurs risques.
Pourquoi les plateformes d'échange attendent des confirmations
Quand vous déposez des cryptos sur une plateforme d'échange, elle peut indiquer qu'il faut un certain nombre de confirmations. La plateforme veut éviter de créditer de l'argent qui pourrait disparaître lors d'une reorg, puis être dépensé ou retiré. Le nombre requis dépend de la chaîne, du risque et du montant. Il est généralement plus élevé sur les chaînes à finalité probabiliste, comme Bitcoin, que sur celles à finalité explicite rapide.
Si vous attendez un dépôt, vous pouvez suivre vous-même le nombre de confirmations. Recherchez le hash de la transaction dans la recherche de l'en-tête de ChainMonitor et regardez le bloc et le statut. Voir comment lire une transaction.
Guide pratique
| Chaîne | Une attente raisonnable pour un paiement normal |
|---|---|
| Bitcoin | 1 à 3 confirmations pour de petites sommes, 6 pour des sommes plus importantes |
| Ethereum et ses L2 | Quelques blocs pour de petites sommes, finalisé (environ 13 minutes) pour de grandes sommes |
| Solana | Confirmed pour de petites sommes, finalized pour de grandes sommes |
Ce sont des repères, pas des règles. L'attente appropriée augmente avec le montant en jeu. Dans le doute, attendez la finalité.
Questions fréquentes
Combien de confirmations suffisent pour Bitcoin ?
Six est la règle empirique courante pour les paiements importants, ce qui prend environ une heure. Les petits paiements sont souvent acceptés avec moins.
Combien de temps avant qu'une transaction Ethereum soit définitive ?
La finalité prend environ deux époques, soit à peu près 13 minutes. Une transaction est généralement sûre pour de petits paiements bien plus tôt.
Une transaction sur Base est-elle définitive tout de suite ?
Elle est acceptée par le séquenceur en quelques secondes, ce qui suffit pour la plupart des usages quotidiens. Elle devient aussi définitive qu'Ethereum une fois son lot publié sur Ethereum et ce bloc finalisé.
Qu'est-ce qu'une reorg de blockchain ?
Une reorg survient quand le réseau abandonne quelques blocs récents et bascule vers une autre branche valide. Les transactions des blocs abandonnés retournent dans la file d'attente et sont généralement incluses à nouveau.
L'attente de 7 jours s'applique-t-elle à chaque transaction L2 ?
Non. Elle s'applique aux retraits des rollups optimistes vers Ethereum via le pont officiel. Les transferts L2 normaux n'attendent pas aussi longtemps.