
Quand une chaîne se réécrit : le bug de consensus de Ravencoin et ce que vaut vraiment une confirmation
La plupart des incidents crypto tournent autour des clés. Quelqu'un hameçonne une phrase de récupération, un contrat a un bug de réentrance, une plateforme perd son portefeuille chaud. Le registre reste honnête ; c'est simplement un ensemble précis de pièces qui change de mains contre la volonté de son propriétaire.
L'incident Ravencoin d'août appartenait à une autre catégorie, plus rare. Personne n'a touché aux clés. C'est le registre lui-même qui s'est disloqué.
Ce qui s'est passé
Le 7 août 2026 à 15h44 UTC, à la hauteur de bloc 4 487 776, un bloc qui aurait dû être impossible a été accepté par le réseau. Puis d'autres. Sur un tronçon examiné de 2 089 blocs, 96 étaient invalides. La faille a été démontrée publiquement le 11 août, quatre jours après le premier bloc exploité — ce qui signifie que la chaîne produisait discrètement des blocs contrefaits depuis près d'une semaine avant que quiconque l'annonce.
Le RVN a chuté d'environ 20 %, autour de 0,0027 dollar. Upbit et Bitget ont suspendu dépôts et retraits. Le projet Ravencoin a demandé aux plateformes, explorateurs et opérateurs de nœuds de mettre à jour immédiatement, et a signalé comme potentiellement réversible toute transaction confirmée après le bloc 4 487 775.
C'est sur cette dernière phrase qu'il faut s'arrêter. Non pas « certaines transactions ont été annulées ». Toutes les transactions, pendant trois jours, étaient provisoires.
Le bug : un nombre que personne ne vérifiait
Ravencoin mine avec KAWPOW, un algorithme de preuve de travail gourmand en mémoire, dérivé de ProgPoW. Cette gourmandise est tout l'intérêt : le travail dépend d'un grand jeu de données qu'il faut garder en RAM, ce qui rend les ASIC non rentables et maintient le minage accessible aux GPU. Ce jeu de données est régénéré périodiquement, et lequel il vous faut se déduit de la hauteur du bloc.
L'en-tête du bloc porte un champ, nHeight, qui déclare où se situe le bloc dans la chaîne. Les nœuds validaient la preuve de travail par rapport à la hauteur que le bloc prétendait avoir. Ils ne vérifiaient jamais cette déclaration par rapport à la position réelle du bloc dans la chaîne.
On pouvait donc mentir. Déclarez une hauteur du tout début de la chaîne, obtenez un petit jeu de données, faites une fraction du travail, et produisez un bloc qu'un nœud vulnérable acceptera volontiers comme valide. La dureté mémoire qui rend le minage de Ravencoin coûteux devenait facultative dès lors qu'on affirmait simplement miner un bloc autre que celui qu'on minait. Les blocs invalides sont devenus, selon les mots du projet lui-même, radicalement moins chers à produire que les blocs légitimes.
Difficile de faire plus fondamental comme bug de consensus. La preuve de travail est le mécanisme par lequel une blockchain convertit de l'électricité en finalité. Si la preuve peut être forgée à bas coût, il n'y a pas de finalité — seulement son apparence.
Le remède, c'était la réorganisation
Voici la partie qui paraît alarmante de l'extérieur et qui est en réalité correcte.
2Miners et RavenMiner, qui détiennent ensemble la majorité du hash rate du réseau, ont annoncé qu'ils minaient une chaîne excluant la branche exploitée à partir de 4 487 776. Le logiciel de nœud corrigé (2Miners a publié la 4.6.1.1-hf1) rejette les blocs dont la hauteur déclarée ne correspond pas à la vraie, et fige le bloc 4 487 775 comme point de contrôle — une ligne au-delà de laquelle l'ancienne histoire empoisonnée ne peut plus être réacceptée.
Le résultat fut une réorganisation de chaîne d'environ trois jours de profondeur. Trois jours de blocs écartés et remplacés.
Une réorganisation profonde est d'ordinaire le symptôme d'une attaque. Ici, c'était le remède. La branche exploitée n'était pas une histoire légitime que quelqu'un aurait réécrite ; elle était déjà invalide, et le réseau a choisi de cesser de faire semblant.
La couture se voit encore aujourd'hui dans la chaîne. Le bloc 4 487 775 a été miné à 15h43min57s UTC le 7 août. Le bloc 4 487 776 — l'honnête, celui de la chaîne rétablie — porte l'horodatage 14h09min42s UTC le 10 août. Deux jours, vingt-deux heures et vingt-six minutes entre deux blocs consécutifs sur une chaîne qui vise la minute. Cet écart, c'est le tissu cicatriciel.
Ce que cela signifiait si vous déteniez du RVN
Si vos pièces reposaient dans un portefeuille que vous contrôlez et que vous n'avez pas transigé ces jours-là, il ne vous est rien arrivé. Les clés n'ont jamais été en cause. Les soldes antérieurs à 4 487 775 n'ont jamais été remis en question.
Si vous avez transigé dans cette fenêtre, votre transaction devait être reminée dans la chaîne rétablie pour survivre. Les paiements ordinaires y sont généralement parvenus : c'étaient des transactions valides qui vivaient simplement dans des blocs écartés, et elles sont retournées au mempool pour être confirmées à nouveau. Ce qui ne survit pas à une réorganisation, c'est tout ce qui dépendait de la permanence de l'histoire écartée. Le cas classique est un dépôt sur une plateforme : les pièces arrivent, sont créditées, échangées ou retirées, puis le dépôt se dé-produit. C'est exactement pourquoi suspendre dépôts et retraits était la bonne décision, et pourquoi les plateformes qui l'ont fait vite protégeaient leurs utilisateurs et elles-mêmes plutôt que de paniquer. S'arrêter est un mode de défaillance que les plateformes peuvent et doivent absorber quand l'alternative consiste à créditer de l'argent qui s'évaporera ensuite.
Ce qu'une confirmation promet réellement
La plupart des portefeuilles, le nôtre compris, affichent un nombre de confirmations et vous laissent en déduire la sécurité. Il vaut la peine d'être précis sur ce que ce nombre signifie, car c'est dans des incidents comme celui-ci que l'imprécision mord.
Une confirmation n'est pas une garantie. C'est un énoncé économique : réécrire l'histoire à partir de ce point exigerait de refaire cette quantité de preuve de travail, ce qui coûterait plus cher que ne vaut le paiement. Six confirmations sur Bitcoin, c'est une règle empirique sur le coût, pas une preuve cryptographique de permanence.
Cet énoncé contient une hypothèse cachée : que produire des blocs coûte cher. Le bug de Ravencoin a supprimé l'hypothèse. Quand les blocs invalides ne coûtent presque rien, « tant de confirmations » ne mesure plus rien du tout. Le nombre à l'écran continuait de grimper ; ce qu'il comptait était devenu, sans bruit, dépourvu de sens.
La conclusion honnête n'est pas « les confirmations ne servent à rien ». C'est qu'un compteur de confirmations est un énoncé sur la santé des règles de consensus d'une chaîne, et qu'il hérite de chacune de leurs faiblesses. Ajustez votre patience à la valeur en jeu, et considérez un incident de consensus en cours comme une raison de cesser complètement de transiger, non d'attendre un nombre plus élevé.
Où se tenait SSP
Nous exploitons notre propre infrastructure Ravencoin plutôt que de lire des soldes dans l'API d'un tiers, ce qui fait que la question « SSP est-il sur la bonne chaîne ? » a une réponse vérifiable plutôt que rassurante.
Notre nœud tourne sous Ravencoin 4.8.0 — bien au-delà du hard fork — et se trouve, au moment d'écrire ces lignes, à la hauteur 4 522 205 sur la chaîne rétablie. Les deux côtés de la couture correspondent exactement à la chaîne de référence :
- 4 487 775 →
000000000002d64509e06e76ddbbe418c725291687ec62b41ecfc40386a091fd - 4 487 776 →
0000000000042bb50281ebb2f68d3f9143980b041178849015d95b067d52a841
Mêmes empreintes que l'explorateur officiel Ravencoin, même écart de trois jours. Rien n'a été demandé aux utilisateurs de SSP, et Ravencoin dans SSP fonctionne exactement comme avant.
Les limites honnêtes
Nous écrivons ces textes pour expliquer ce contre quoi notre architecture protège ; il importe donc d'être clair sur ce contre quoi elle ne protège pas.
Le multisig deux-sur-deux protège le côté signature. Il garantit qu'aucun appareil compromis à lui seul ne peut déplacer vos pièces, que chaque paiement est approuvé deux fois sur deux matériels indépendants, et qu'un voleur muni de votre ordinateur portable n'a rien. Ces propriétés ont tenu pendant tout l'incident, et ce sont elles qui comptent pour l'immense majorité des façons dont les gens perdent leurs cryptos.
Aucune d'elles n'aide contre une réorganisation de chaîne. Ni un portefeuille matériel, ni un signataire hors ligne, ni une phrase de passe, ni un quorum multisig de quelque taille que ce soit. Les défaillances de consensus se situent en dessous de tout cela — elles sont une propriété du réseau, pas de votre conservation. Quiconque prétend que son portefeuille vous protège d'un mauvais bloc vous vend quelque chose.
Ce qu'un portefeuille peut honnêtement offrir, c'est ceci : faire tourner une véritable infrastructure de nœuds, la maintenir à jour, et dire clairement quelle chaîne elle suit. C'est un engagement de maintenance, pas une garantie cryptographique, et c'est la bonne taille de promesse.
L'autre chose à retenir d'août est un rappel sur l'endroit où loge vraiment le risque. Le bug de Ravencoin dormait dans le code depuis des années avant que quelqu'un l'exploite, à l'endroit le moins glorieux qui soit : un champ d'en-tête que tout le monde supposait vérifié par quelqu'un d'autre. La faille d'entropie de Coldcard avait exactement la même forme — une petite ligne de code ennuyeuse et jamais examinée, invisible de l'extérieur, portant tout ce qui reposait dessus.
Ce sont ces bugs-là qui font mal. Pas les attaques cryptographiques exotiques, mais l'hypothèse pour laquelle personne n'a écrit de test.


