Coldcard Wallet Hack expliqué : comment une génération de seed faible a mis des années de Bitcoin en danger
Points clés
- •Un attaquant coordonné a volé 1,367.05 BTC observés sur trois vagues depuis des portefeuilles Coldcard, une quatrième vague suspectée pouvant porter l’exposition totale à environ 1,815.75 BTC.
- •La vulnérabilité provenait d’une migration de firmware en 2021 qui a fait utiliser à la génération de seed un repli logiciel de nombres aléatoires au lieu de la source matérielle prévue, réduisant l’entropie des seeds à environ 40 bits sur les appareils Mk2 et Mk3.
- •Les appareils Mk2 et Mk3 exécutant les versions de firmware 4.0.1 à 4.1.9 ont été les plus fortement touchés, tandis que les modèles Mk4, Q et Mk5 plus récents intégraient une entropie de secure element qui réduisait mais n’éliminait pas l’exposition.
- •Coinkite a publié des firmwares corrigés pour les gammes concernées, mais a confirmé que les mises à jour ne peuvent pas réparer les seeds déjà créées via le processus vulnérable, obligeant les utilisateurs à générer de nouveaux portefeuilles et à migrer les fonds avec prudence.
- •Deux mitigations indépendantes auraient pu réduire l’exposition individuelle : ajouter au moins 50 lancers de dés équitables lors de la création de la seed pour fournir 128 bits d’entropie indépendante, ou utiliser une passphrase BIP-39 forte et unique.
De une opération de balayage de 25 minutes à un incident en plusieurs vagues
Le transfert de 594 BTC a fait la une en raison de sa rapidité et de sa coordination. Les premiers éléments sur la première vague indiquaient qu’environ 562 BTC avaient ensuite été consolidés dans une seule adresse. Le schéma suggérait une automatisation : de nombreuses anciennes sorties à signature unique ont été balayées en succession rapprochée, l’attaquant semblant prendre l’intégralité du solde disponible plutôt que d’agir comme un utilisateur ordinaire de portefeuille.
L’estimation des pertes ne s’est pas arrêtée là. Le responsable de Galaxy Research, Alex Thorn, a continué à suivre des transactions présentant une forme similaire. Au 2 août, son estimation observée pour trois vagues d’attaque atteignait 1,367.05 BTC répartis sur 4,585 adresses sources, soit environ $88.6 millions en utilisant la référence de prix en vigueur dans sa mise à jour.
Le 3 août, Thorn a signalé un autre regroupement entre les blocs Bitcoin 960,778 et 960,792. L’examen initial a identifié 218 transactions déplaçant plus de 380 BTC depuis 462 adresses victimes suspectées vers 210 nouvelles destinations. Une analyse ultérieure fondée sur ses travaux a élargi le cluster potentiel à environ 448.7 BTC répartis sur 709 adresses.
Ce quatrième cluster exige un langage prudent. Certaines transactions étaient encore en attente avec replace-by-fee activé, ce qui signifiait qu’une victime pouvait théoriquement remplacer une transaction malveillante non confirmée en offrant des frais plus élevés. Thorn a décrit ce schéma comme étant vraisemblablement une autre vague Coldcard, et non comme un montant de perte final et définitivement établi. Ajouter mécaniquement 448.7 BTC au total précédent donne environ 1,815.75 BTC, mais il s’agit d’une estimation d’exposition potentielle sur quatre vagues, et non d’un total de vol définitivement arrêté.
| Étape | Activité observée | Statut au 4 août 2026 |
|---|---|---|
| Premier grand balayage | Environ 594 BTC provenant d’environ 500 adresses sources à signature unique en environ 25 minutes | Largement rapporté et visible on-chain |
| Estimation sur trois vagues | 1,367.05 BTC sur 4,585 adresses | Estimation observée par Galaxy Research |
| Quatrième vague suspectée | Plus de 380 BTC identifiés initialement ; estimation ultérieure d’environ 448.7 BTC sur 709 adresses victimes potentielles | Correspondance de schéma à forte confiance, mais certaines transactions étaient en attente ou remplaçables |
| Total potentiel sur quatre vagues | Environ 1,815.75 BTC si l’estimation complète de la quatrième vague est incluse | Provisoire, et non un total final confirmé des pertes |
Le nombre de vagues d’attaque compte, mais ce n’est pas la partie la plus profonde de l’histoire. La question la plus difficile est de savoir comment un attaquant a pu contrôler des portefeuilles dont les clés privées étaient censées être restées hors ligne.
Le changement de code de 2021 qui a affaibli la génération de seed
Une seed de portefeuille Bitcoin n’est pas simplement une liste de mots. C’est une représentation lisible par l’humain d’une entropie secrète à partir de laquelle le portefeuille dérive des clés privées. Si cette entropie est produite correctement, deviner la seed est irréaliste sur le plan computationnel. Si les entrées possibles sont fortement contraintes, les mêmes mots peuvent paraître parfaitement ordinaires tout en offrant beaucoup moins de sécurité.
L’équipe Bitcoin Engineering and Security de Block a relié le problème Coldcard à un changement introduit lors d’une migration de bibliothèque cryptographique en 2021. Coldcard a déplacé la génération de seed de ckcc.rng_bytes(), qui faisait appel au générateur de nombres aléatoires matériel de la carte, vers ngu.random.bytes().
Le mauvais générateur derrière la bonne interface
La configuration de l’appareil définissait MICROPY_HW_ENABLE_RNG à zéro parce que Coldcard fournissait un wrapper matériel RNG séparé. Une vérification de bibliothèque contrôlait si cette macro était définie, plutôt que si elle était activée. Comme la macro existait, la compilation a réussi. Mais l’appel de fonction s’est résolu vers le repli logiciel Yasmarang de MicroPython au lieu de la source matérielle prévue.
Ce repli s’initialisait à partir de valeurs comprenant une partie de l’identifiant unique du microcontrôleur et des registres de minuterie. Ces entrées peuvent varier, mais il s’agit de métadonnées de l’appareil et d’un état temporel, pas d’une nouvelle randomness cryptographique. Une fois l’état pertinent et le nombre d’appels antérieurs au générateur connus ou suffisamment contraints, le flux résultant est déterministe.
Pour les firmwares Mk2 et Mk3 concernés, Block n’a trouvé aucune secret généré cryptographiquement ajouté via ce chemin. L’analyse préliminaire de Coinkite estimait un espace de recherche effectif d’environ 40 bits. Block a présenté une analyse plus conditionnelle : la recherche pratique dépend de la connaissance de l’identifiant de l’appareil, des temporisations et de l’historique des appels, et n’a pas revendiqué de benchmark complet de force brute de bout en bout.
Les appareils Mk4, Q et Mk5 plus récents mélangeaient du matériel de secure element dans le générateur, réduisant la gravité sans toutefois rétablir la marge de sécurité attendue. Block a constaté que seulement quatre octets d’un condensé atteignaient la fonction de reseed pour un état de repli et un historique d’appels fixes, laissant au maximum 2^32 flux de sortie distinguables de manière sécurisée dans ces conditions. Coinkite a estimé un espace de recherche effectif d’environ 72 bits selon ses hypothèses d’attaque plus larges. Les chiffres décrivent des modèles différents, mais les deux analyses aboutissent à la même conclusion opérationnelle : les appareils plus récents étaient moins exposés que les Mk2 et Mk3 concernés, mais nécessitaient tout de même une remédiation.
Pourquoi le hachage ne pouvait pas restaurer l’entropie manquante
Coldcard hachait la valeur générée de 32 octets avant d’en faire un élément de portefeuille. Cela peut rendre la sortie statistiquement uniforme, mais un hachage ne peut pas créer des possibilités absentes de son entrée. Si un générateur ne peut produire qu’une famille limitée de valeurs candidates, le hachage de ces valeurs ne produit que le même nombre de seeds candidates.
Le même principe s’applique au checksum BIP-39. Il aide à détecter les erreurs de transcription ; il n’ajoute pas de randomness secrète. Une phrase valide de 12 ou 24 mots peut donc être cryptographiquement faible si le processus qui l’a sélectionnée était prévisible.
Comment un portefeuille hors ligne a pu être vidé
La blockchain publique a fourni à l’attaquant quelque chose de précieux : une cible de validation. Les adresses Bitcoin, les clés publiques révélées par des dépenses antérieures et les clés publiques étendues partagées avec les logiciels de portefeuille peuvent tous aider à déterminer si une clé privée ou une seed devinée appartient à un portefeuille cible.
Une attaque plausible consisterait à générer des états RNG candidats, à dériver la seed et les adresses correspondantes, puis à les comparer aux adresses approvisionnées sur la chaîne. Lorsqu’un candidat correspondait, l’attaquant possédait la même autorité de signature que le propriétaire. Le Coldcard réel n’aurait pas besoin de communiquer avec l’attaquant à aucun moment.
Cela explique comment le stockage à froid et le vol peuvent coexister. Le portefeuille est resté hors ligne, mais son secret a peut-être pu être reproduit ailleurs.
La recette opérationnelle exacte reste inconnue. Block a indiqué que le coût pratique dépend d’informations telles que l’UID de l’appareil, le timing de démarrage, les appels RNG précédents et le travail de dérivation des clés. Ses chercheurs n’avaient pas terminé les tests d’exploitation empiriques complets au moment de la publication de l’avis. Aucun compte rendu faisant autorité n’a établi comment l’attaquant a obtenu ou contraint chaque entrée requise, quel matériel a été utilisé, ou si plusieurs acteurs ont participé.
Coinkite a émis l’hypothèse qu’un attaquant avait peut-être utilisé l’intelligence artificielle pour examiner d’anciens firmwares open source. Cette possibilité ne constitue pas une preuve d’attribution. Le code était सार्वजनिक depuis des années, et une revue traditionnelle comme une revue assistée par l’IA auraient pu le révéler. La conclusion défendable est que la vulnérabilité était décelable à partir du code source, et non que l’IA ait été prouvée comme méthode de l’attaquant.
Quels portefeuilles Coldcard ont été affectés
Block a daté le chemin vulnérable de génération à la version 4.0.0 du firmware en mars 2021. L’avis utilisateur de Coinkite définit la plage de versions affectées pour Mk2/Mk3 comme allant de 4.0.1 à 4.1.9 inclus. Pour les appareils plus récents, Coinkite a averti que les seeds générées sur Mk4 et Mk5 avant le firmware standard 5.6.0, ou sur Q avant 1.5.0Q, étaient également concernées. Les versions Edge distinctes exigeaient 6.6.0X pour Mk4/Mk5 et 6.6.0QX pour Q.
L’exposition dépend du firmware utilisé au moment où la seed a été générée, et non du firmware installé aujourd’hui. La mise à jour d’un appareil modifie le comportement de génération futur ; elle ne change pas une seed existante.
Coinkite a identifié deux protections indépendantes susceptibles de modifier sensiblement l’exposition d’un portefeuille particulier. Au moins 50 lancers de dés équitables, privés et indépendants ajoutés lors de la création initiale de la seed apportaient au moins 128 bits d’entropie indépendante, selon l’entreprise. Une passphrase BIP-39 forte et unique crée également une barrière distincte qu’un attaquant doit franchir. Ni une passphrase courte ni le PIN de l’appareil ne doivent être considérés comme une protection équivalente.
Les montages multisignatures nécessitent un traitement tout aussi attentif. Une clé Coldcard vulnérable ne compromet pas automatiquement un portefeuille qui nécessite encore des signatures provenant d’un nombre suffisant d’appareils indépendamment sécurisés. Mais un quorum entièrement composé de seeds vulnérables peut préserver le même problème sous-jacent. La protection vient d’un seuil adéquat de clés sécurisées, générées indépendamment, et non du simple label multisig.
La correction de Coinkite et le problème de migration
Coinkite a publié des correctifs sur les gammes de produits concernées et a indiqué aux utilisateurs de ne pas générer de seeds de remplacement avant d’avoir installé le firmware corrigé approprié. Les recommandations de l’entreprise sont sans ambiguïté sur le point le plus important : les mises à jour de firmware ne peuvent pas réparer les seeds créées par le processus défaillant.
Les utilisateurs disposant de seeds affectées doivent créer une toute nouvelle seed sur un firmware corrigé, vérifier l’empreinte et l’adresse de réception du nouveau portefeuille, envoyer une petite transaction de test, puis seulement migrer le solde restant. L’ancienne sauvegarde doit rester disponible jusqu’à ce que le transfert soit entièrement confirmé. Se précipiter peut introduire une nouvelle perte via une mauvaise adresse, une sauvegarde incomplète ou une erreur de passphrase.
TAPSIGNER, OPENDIME et SATSCARD ne sont pas affectés car ils utilisent des bases de code différentes. Cette limite est importante. L’incident est sérieux, mais il ne prouve pas que tous les produits Coinkite ou tous les portefeuilles matériels partagent la même vulnérabilité.
Ce que l’échec de Coldcard change pour le stockage à froid
« Cold » décrit la relation d’un portefeuille avec les réseaux. Cela ne certifie pas comment ses clés privées ont été créées, si son firmware a suivi le chemin d’exécution prévu, ni si la sauvegarde et la passphrase ont été gérées en toute sécurité.
L’échec de Coldcard a révélé un écart entre l’examen des composants et le comportement du système. Le code matériel RNG prévu existait dans le binaire du firmware. Le repli logiciel avait également la signature de fonction attendue. Les revues précédentes avaient vérifié que le bon composant était présent, mais n’avaient pas confirmé quelle implémentation la génération de portefeuille atteignait réellement à travers les bibliothèques intégrées.
C’est une leçon sévère pour la sécurité open source. Le code public permet une vérification indépendante, mais la publication n’est pas synonyme de revue continue de bout en bout. Les compilations critiques pour la sécurité ont besoin de tests qui confirment que l’entropie atteint l’appelant, d’un échec fermé lorsque la source voulue est indisponible, et de mesures du comportement des artefacts compilés plutôt que d’hypothèses selon lesquelles l’intention du code source survit à l’intégration.
Pour les utilisateurs, la leçon n’est pas d’abandonner l’auto-conservation. Elle consiste à comprendre que l’auto-conservation transfère la responsabilité à plusieurs niveaux : authenticité du matériel, provenance du firmware, entropie de la seed, robustesse de la passphrase, isolation des sauvegardes, diversité multisig et capacité à migrer en toute sécurité lorsqu’un défaut est découvert.
Les premiers 594 BTC ont disparu en quelques minutes. Les conditions qui ont rendu ces transferts possibles ont peut-être existé pendant plus de cinq ans. Cet écart temporel est l’avertissement central : un portefeuille froid peut rester silencieux et apparemment sécurisé pendant des années, tandis qu’une faiblesse dans sa seed d’origine attend d’être découverte.
Trader le Bitcoin avec effet de levier — sans renoncer à la garde
Les échanges décentralisés de contrats perpétuels ont largement dépassé le statut de niche. Selon le rapport annuel 2025 sur l’industrie crypto de CoinGecko, le volume des perpétuels sur DEX a bondi de 346% l’an dernier pour atteindre $6.7 trillions, tandis que l’intérêt ouvert sur les plateformes centralisées a reculé de 20.8% sur la même période. Les traders engagent des capitaux importants dans les dérivés on-chain, et les raisons sont simples : le risque de contrepartie est réel, les défaillances de garde se produisent, et la résistance à la censure compte.
edgeX est une plateforme décentralisée de contrats à terme perpétuels conçue pour les traders qui veulent accéder au marché sans sacrifier le contrôle.
Pourquoi les traders choisissent edgeX pour les perpétuels BTC
- Pas de KYC, pas de barrières. Connectez un portefeuille et commencez à trader sans vérification d’identité ni approbation de compte.
- Vraie auto-conservation. edgeX combine la mise en correspondance des ordres hors chaîne avec un règlement vérifiable on-chain sécurisé par Ethereum. Les mécanismes de retrait forcé permettent de récupérer les fonds directement depuis la blockchain, même si l’opérateur se déconnecte.
- Profondeur de liquidité importante, spreads serrés. edgeX maintient $10 million de profondeur de marché dans un spread d’un point de base, avec un glissement inférieur à 0.1 point de base sur les transactions dépassant $100,000.
- Jusqu’à 100x de levier. Les traders peuvent dimensionner leurs positions en fonction de leur cadre de risque, qu’ils couvrent une exposition ou tradent une dynamique.
- 100% des frais de trading en récompenses. Les traders actifs peuvent gagner des récompenses sur leur activité, réduisant au fil du temps le coût net des stratégies à haute fréquence.
- Infrastructure de niveau institutionnel. edgeX traite jusqu’à 200,000 ordres par seconde avec une latence de correspondance inférieure à 10 millisecondes.
Faites travailler votre vision du marché Bitcoin
Négociez des contrats à terme perpétuels BTC/USDC sur edgeX tout en conservant le contrôle de vos actifs. L’effet de levier amplifie à la fois les gains et les pertes, donc la taille de la position, la distance de liquidation et les coûts de financement restent des éléments essentiels de la gestion du risque.
Foire aux questions
Des pirates ont-ils accédé à distance aux appareils Coldcard ?
Aucune enquête faisant autorité n’a montré un accès à distance aux appareils concernés. Le mécanisme signalé implique la reconstitution hors ligne de seeds candidates ou de clés privées à partir d’un processus de génération de nombres aléatoires affaibli, puis leur validation à l’aide d’informations publiques de la blockchain.
L’incident a-t-il cassé le chiffrement de Bitcoin ?
Non. La vulnérabilité concernait la génération de seed du portefeuille dans le firmware Coldcard affecté. Il n’a pas été démontré que le système de signature sous-jacent de Bitcoin avait été cassé cryptographiquement.
Installer le dernier firmware protège-t-il un portefeuille existant ?
Cela protège la génération future de seeds sur la version corrigée, mais ne peut pas réparer une seed créée sur le firmware affecté. Coinkite recommande de générer une nouvelle seed et de déplacer les fonds après avoir vérifié soigneusement le portefeuille de remplacement.
Tous les modèles Coldcard étaient-ils également vulnérables ?
Non. Le firmware affecté Mk2/Mk3 utilisait le chemin le plus grave. Mk4, Q et Mk5 ajoutaient de l’entropie de secure element et ont été évalués comme moins exposés, mais Coinkite a tout de même classé les seeds pré-correctif concernées comme suffisamment graves pour exiger une migration. Le produit, la branche de firmware et la date de création de la seed comptent tous.
1,815.75 BTC est-il le montant confirmé volé ?
Non. L’estimation observée par Galaxy Research sur trois vagues était de 1,367.05 BTC. Environ 448.7 BTC a été associé à une probable quatrième vague, mais certaines transactions étaient en attente ou remplaçables pendant l’analyse du cluster. La somme combinée est une estimation provisoire d’exposition, et non un total final confirmé des pertes.