En bref : une « reorg » (abréviation de « réorganisation ») de la blockchain se produit lorsque la chaîne canonique du réseau change et que des blocs qui étaient auparavant considérés comme faisant partie de la chaîne principale sont remplacés par un ensemble différent de blocs. Cela peut entraîner la disparition de transactions confirmées, une modification de l’ordre des transactions et une incohérence dans l’état de l’application. Les réorganisations se produisent naturellement sur la plupart des blockchains en raison de la latence du réseau et de la production simultanée de blocs, mais des réorganisations profondes peuvent également résulter d’attaques ou de bogues logiciels. Il est essentiel de bien comprendre les réorganisations pour tout développeur créant des applications qui dépendent de données blockchain confirmées, car ne pas tenir compte de ces réorganisations peut entraîner des vulnérabilités liées à la double dépense, des transactions fantômes et des bases de données corrompues.
L'explication simple
Imaginez une blockchain comme un sentier unique traversant une forêt, où chaque pas correspond à un bloc. En temps normal, tout le monde suit le même chemin. Mais il arrive parfois que deux pionniers découvrent simultanément des itinéraires différents, et pendant un bref instant, deux chemins valides coexistent. Le réseau finit par déterminer quel chemin est le bon (généralement celui qui s'étend le plus loin en premier), et tout le monde s'y engage. Ceux qui suivaient l'autre chemin doivent alors rebrousser chemin et s'y engager à leur tour.
Lorsque ce changement se produit, on parle de « réorganisation ». Les blocs du chemin abandonné sont supprimés, et ceux du chemin gagnant constituent désormais la chaîne canonique. Les transactions qui figuraient dans les blocs abandonnés peuvent apparaître ou non dans les blocs de la chaîne gagnante. Certaines transactions peuvent se retrouver dans les deux chemins à la même position. D’autres peuvent apparaître dans l’un mais pas dans l’autre. Quelques-unes peuvent être entièrement supprimées si elles entrent en conflit avec des transactions de la chaîne gagnante.
Pour la plupart des utilisateurs finaux, les réorganisations superficielles (d’une ou deux profondeurs de blocs) se produisent fréquemment et de manière invisible. Votre portefeuille peut brièvement afficher une transaction comme confirmée, puis la faire apparaître à nouveau comme en attente pendant quelques secondes avant qu’elle ne soit reconfirmée dans le nouveau bloc canonique. Vous ne le remarquerez probablement même pas. Mais pour les applications qui traitent des données de blockchain à grande échelle, même une réorganisation d’un seul bloc signifie que les enregistrements qui avaient déjà été écrits dans votre base de données à partir des anciens blocs sont désormais incorrects et doivent être corrigés.

Comment se déroulent les réorganisations ?
La cause la plus courante des réorganisations est la latence naturelle du réseau. Lorsque deux validateurs produisent des blocs valides à peu près au même moment (au sein du même créneau ou à la même hauteur de bloc), différentes parties du réseau peuvent temporairement adopter des blocs différents. Le nœud A peut voir le bloc X en premier et le considérer comme canonique, tandis que le nœud B voit le bloc Y en premier. Les deux blocs sont valides selon les règles de consensus, mais un seul peut finalement faire partie de la chaîne principale.
Le réseau résout cette ambiguïté grâce à sa règle de choix de fork. Sur Ethereum, la règle de choix de fork (LMD-GHOST) sélectionne la chaîne soutenue par le plus grand nombre d’attestations de validateurs. Sur Bitcoin, c’est la chaîne la plus longue (celle qui a accumulé le plus de preuve de travail) qui l’emporte. Quelle que soit la règle spécifique, le résultat est le même : une branche est adoptée comme canonique, et l'autre est abandonnée. Les nœuds qui suivaient la branche abandonnée détectent le changement, annulent les blocs orphelins et adoptent la chaîne gagnante.
Sur les chaînes de type « Proof of Work » telles que Bitcoin, les réorganisations sont relativement courantes car le processus de minage est intrinsèquement probabiliste. Deux mineurs peuvent trouver des blocs valides presque simultanément, créant ainsi une bifurcation temporaire qui se résout en l'espace d'un ou deux blocs. Les réorganisations d'un bloc sur Bitcoin se produisent régulièrement et sont considérées comme un élément normal du fonctionnement du réseau. Les réorganisations plus profondes sont rares dans des conditions normales, mais deviennent possibles si un attaquant contrôle une part significative de la puissance de hachage du réseau (ce qui constitue la base d'une attaque à 51 %).
Dans le système de « Proof of Stake » d’ Ethereum, le modèle de production de blocs par « slot » réduit la fréquence des réorganisations naturelles, car chaque « slot » dispose d’un proposant désigné. Cependant, des réorganisations peuvent tout de même se produire si le bloc d’un proposant arrive en retard (en raison de la latence du réseau) et que le proposant suivant s’appuie alors sur le bloc canonique précédent. Les créneaux manqués, c'est-à-dire lorsque le proposant désigné ne parvient pas à produire un bloc, peuvent également créer les conditions propices à de courtes réorganisations lorsque plusieurs validateurs s'appuient sur des vues différentes de la chaîne.

Types de réorganisations
Les réorganisations superficielles portent sur une à trois chaînes de blocs et surviennent naturellement sur la plupart des blockchains. Elles constituent une conséquence normale du consensus distribué et se résolvent d'elles-mêmes en quelques secondes. La plupart des applications peuvent gérer ces réorganisations superficielles en attendant quelques confirmations de blocs supplémentaires avant de considérer les données comme définitives.
Les réorganisations profondes portent sur plus de trois blocs et sont généralement le signe d’une anomalie : une attaque délibérée, un bug de consensus ou une partition importante du réseau. Une réorganisation profonde sur une chaîne majeure constitue un événement grave, car elle peut annuler des transactions que les utilisateurs et les applications considéraient déjà comme confirmées. Les réorganisations profondes sur des chaînes plus petites et moins sécurisées (puissance de hachage ou valeur mise en jeu plus faibles) sont plus courantes et ont été utilisées pour mener des attaques par double dépense.
Une attaque à 51 % (ou à 34 % sur certaines chaînes PoS) consiste à provoquer délibérément une réorganisation profonde. Un attaquant disposant d’une majorité de pouvoir de consensus mine ou valide une chaîne privée différente de la chaîne publique, puis la révèle au réseau. La chaîne de l’attaquant étant plus longue (ou comportant davantage d’attestations), le réseau l’adopte comme chaîne canonique, rendant ainsi orphelins les blocs récents de la chaîne publique. Cela permet à l’attaquant d’annuler des transactions sur la chaîne abandonnée, ce qui peut entraîner une double dépense des fonds précédemment envoyés et confirmés.
Conséquences sur les applications
Pour les applications qui traitent des données de blockchain, les réorganisations posent un problème de cohérence des données. Si votre application enregistre les enregistrements de transactions dans une base de données dès leur apparition dans un bloc, une réorganisation signifie que certains de ces enregistrements reposent désormais sur des blocs qui n’existent plus. Les transactions peuvent encore apparaître dans les nouveaux blocs canoniques (mais à une position différente ou sous un numéro de bloc différent), ou bien elles peuvent avoir complètement disparu.
Les applications DeFi sont particulièrement vulnérables. Si un agrégateur DEX affiche un échange comme confirmé et met à jour le portefeuille de l’utilisateur, mais qu’une réorganisation supprime cet échange de la chaîne canonique, le portefeuille est alors erroné. Si un pont détecte un dépôt sur la chaîne source et débloque des fonds sur la chaîne de destination, mais qu’une réorganisation supprime ce dépôt, le pont a alors débloqué des fonds sur la base d’une transaction qui n’existe plus. Il s’agit là de l’un des principaux vecteurs d’attaque contre les ponts inter-chaînes.
Les indexeurs et les pipelines de données doivent détecter les réorganisations, identifier les blocs abandonnés, annuler tous les enregistrements dérivés de ces blocs et retraiter les blocs canoniques corrects. Sans cette logique, la base de données indexée accumule des enregistrements fantômes provenant de blocs orphelins, ce qui engendre des incohérences qui s'aggravent avec le temps et corrompent les analyses, les soldes et les historiques de transactions en aval.

Comment gérer les réorganisations
La meilleure protection contre les réorganisations consiste à attendre la finalité avant de considérer les données comme confirmées. Sur Ethereum, la finalité intervient après deux époques (environ 12 à 13 minutes), après quoi les blocs ne peuvent plus être annulés sans détruire au moins un tiers de tous les ETH mis en jeu. Sur Bitcoin, six confirmations (environ 60 minutes) constituent la norme largement acceptée pour la finalité économique. Sur Solana, la finalité en un seul créneau signifie que les transactions confirmées sont effectivement définitives en environ 400 millisecondes.
Pour les applications qui ne peuvent pas se permettre d'attendre la finalité totale (car les utilisateurs s'attendent à un retour plus rapide), la meilleure pratique consiste à afficher les données comme « non confirmées » ou « en attente » jusqu'à ce qu'un nombre suffisant de confirmations ait été enregistré, et à mettre en place une logique de retour en arrière qui gère de manière élégante le cas où une transaction récemment confirmée serait annulée par une réorganisation.
Les pipelines de données doivent traiter les blocs dans l'ordre de finalité dans la mesure du possible. Au lieu d'ingérer les blocs dès leur apparition à l'extrémité de la chaîne (ce qui comporte le risque de traiter des blocs susceptibles de devenir orphelins par la suite), les pipelines doivent mettre en mémoire tampon les blocs récents et ne les traiter qu'une fois qu'ils ont atteint une profondeur de confirmation sûre. Pour les cas d'utilisation en temps réel où la mise en mémoire tampon n'est pas acceptable, le pipeline doit inclure des mécanismes explicites de détection des réorganisations et de retour en arrière.

Quelle est la différence entre une « reorg » et un « fork » ?
Les « reorgs » et les « forks » sont liés, mais ne sont pas identiques. Un « fork » désigne tout moment où la chaîne se divise en deux branches concurrentes ; ce phénomène peut être temporaire (deux blocs valides à la même hauteur) ou permanent (une mise à jour du protocole créant une nouvelle chaîne). Une réorganisation correspond plus précisément à ce qui se produit lorsque les nœuds abandonnent une branche pour se tourner vers une autre après la résolution d’une bifurcation temporaire. En d’autres termes, une bifurcation temporaire en est la cause et une réorganisation en est la conséquence pour les nœuds qui ont soutenu la branche perdante.
Aspect | Réorganisation | Fourchette |
|---|---|---|
Définition | Les nœuds remplacent les blocs canoniques par une branche concurrente | La chaîne se divise en deux branches ou plus |
Déclencheur | Une bifurcation temporaire est résolue en faveur d'une autre branche | Blocs simultanés, bug ou mise à niveau du protocole |
Permanence | Toujours temporaire ; une branche est supprimée | Peut être temporaire ou permanent |
Pour en savoir plus sur les différents types de scission, découvrez ce qu’est une « fourche en chaîne ». Les réorganisations sont également étroitement liées à l’ordre des transactions, car celui-ci peut changer lorsque la branche canonique change.
Combien de confirmations sont nécessaires pour se prémunir contre une réorganisation ?
Le nombre de confirmations considéré comme sûr dépend de la conception du consensus de la chaîne et de la valeur en jeu. Plus il y a de confirmations, plus il faudrait une réorganisation profonde pour annuler votre transaction, ce qui devient exponentiellement plus coûteux pour un attaquant. Le tableau ci-dessous résume les recommandations courantes concernant le moment où les données peuvent être considérées comme définitives.
Chaîne | Seuil commun de finalité | Durée approximative (temps réel) |
|---|---|---|
Bitcoin | 6 confirmations | environ 60 minutes |
Ethereum | 2 époques (finalisées) | environ 12 à 13 minutes |
Solana | Finalité à emplacement unique | environ 400 millisecondes |
Chaînes PoW de plus petite taille |
Attendre la finalité de la blockchain constitue la meilleure protection, tandis que les réseaux plus petits ou moins sécurisés nécessitent des profondeurs de confirmation plus importantes, car leur risque de réorganisation est plus élevé. La fiabilité de l'infrastructure joue également un rôle essentiel : découvrez pourquoi la fiabilité des nœuds est cruciale pour garantir la cohérence des données tenant compte des réorganisations.
Une réorganisation de la blockchain peut-elle constituer une attaque ?
La plupart des réorganisations sont inoffensives et se résolvent en un ou deux blocs, mais une réorganisation profonde orchestrée délibérément constitue une attaque. En construisant en privé une chaîne concurrente puis en la rendant publique, un attaquant disposant d’une puissance de consensus suffisante peut orpheliser les blocs récents et annuler des transactions qui semblaient confirmées ; c’est le mécanisme à l’origine des attaques par double dépense et des attaques à 51 %. Les réorganisations recoupent également les stratégies d’extraction de profit ; c’est pourquoi comprendre ce qu’est le MEV et passer en revue les modes de défaillance courants des blockchains aide les équipes à concevoir des systèmes qui échouent en toute sécurité lorsqu’une réorganisation est malveillante plutôt que naturelle.
Foire aux questions
Les réorganisations de la blockchain sont-elles courantes ?
Les réorganisations superficielles, portant sur un à trois blocs, font partie intégrante du processus de consensus distribué et se produisent régulièrement, en particulier sur les chaînes de type « Proof of Work ». Elles se résolvent généralement en quelques secondes et la plupart des utilisateurs ne s'en rendent même pas compte. Les réorganisations profondes, en revanche, sont anormales et indiquent souvent une attaque ou un bug.
Les transactions confirmées disparaissent-elles lors d'une réorganisation ?
C'est possible. Une transaction contenue dans un bloc orphelin peut réapparaître dans la nouvelle chaîne canonique à une position différente, ou elle peut être purement et simplement supprimée si elle entre en conflit avec la branche gagnante. C'est pourquoi les applications doivent attendre un nombre suffisant de confirmations avant de considérer une transaction comme définitive.
Quelles sont les blockchains qui comptent le plus grand nombre de réorganisations ?
Les chaînes de type « Proof of Work » et les réseaux de plus petite taille, dont la puissance de hachage ou la valeur mise en jeu est moindre, subissent des réorganisations plus fréquemment. Le réseau « Bitcoin » connaît parfois des réorganisations d’un seul bloc, tandis que les chaînes dont la sécurité est plus faible sont davantage exposées à des réorganisations plus importantes, potentiellement malveillantes.
Comment les indexeurs gèrent-ils les réorganisations ?
Un indexeur prenant en charge la réorganisation détecte la bifurcation, identifie les blocs qui ont été abandonnés, annule tous les enregistrements dérivés de ceux-ci et traite à nouveau les nouveaux blocs canoniques. Sans cette logique, la base de données accumule des enregistrements fantômes qui, au fil du temps, faussent les soldes et les analyses.
Le fait d'attendre la finalisation permet-il d'éviter les problèmes de réorganisation ?
Oui. Une fois qu’un bloc a atteint la finalité, il ne peut plus être annulé sans un coût économique extrêmement élevé ; les données associées aux blocs finalisés sont donc à l’abri des réorganisations. Le compromis réside dans la latence, ce qui explique pourquoi certaines applications affichent des données non confirmées tout en réservant les actions irréversibles aux données finalisées.
Comment « Quicknode » gère les réorganisations
Quicknode Streams est conçu avec une gestion des réorganisations intégrée à son architecture de base. Streams fournit les données de la blockchain dans l’ordre de finalité, ce qui signifie que les blocs ne sont traités et transmis qu’après avoir atteint une profondeur de confirmation sûre sur le réseau. Lorsqu’une réorganisation se produit, Streams détecte automatiquement la bifurcation, identifie les blocs transmis qui ne sont plus canoniques et envoie des données de correction à votre destination afin que vos données restent cohérentes avec l’état réel de la chaîne.
Cette gestion intégrée des réorganisations élimine l'un des défis techniques les plus complexes liés au traitement des données de la blockchain. Au lieu d'intégrer à votre pipeline des mécanismes personnalisés de détection des réorganisations, de logique de restauration et de rapprochement des blocs, il vous suffit de configurer un Stream et Quicknode se charge du reste. Que vous développiez un indexeur, une plateforme d'analyse ou un système de surveillance en temps réel, Streams garantit que les données de votre destination correspondent à la chaîne canonique, même en cas de réorganisation du réseau.
QuicknodeL'API Core prend également en charge l'interrogation des données des blocs les plus récents et des blocs finalisés sur l'ensemble des réseaux pris en charge, ce qui permet à votre application de choisir le niveau de confirmation adapté à chaque cas d'utilisation. Affichez le bloc le plus récent aux utilisateurs qui souhaitent un retour d'information instantané, mais appuyez-vous sur les données des blocs finalisés pour toute logique impliquant des décisions financières ou des actions irréversibles.
Pour en savoir plus
Qu'est-ce que la finalité de la blockchain ? - Quicknode Glossaire
Premiers pas avec Streams - Quicknode Documentation
Pourquoi la fiabilité des nœuds est-elle importante? - Quicknode Glossaire
API Core deQuicknode