
Dès le départ, une erreur de calcul dans l'algorithme de minage du Bitcoin permettait de miner des blocs à une vitesse extrêmement élevée, a révélé le chercheur Loïc Morel.
Satoshi avait tort.
Le minage de Bitcoin souffre d'un bug depuis le début. Il s'agit d'une simple erreur de calcul de Satoshi qui peut être exploitée pour miner des blocs à une vitesse incroyable. C'est l'un des bugs que le BIP-0054 (en cours de discussion) corrige. Je vous explique… pic.twitter.com/GurNv3qKrZ
– Loïc Morel (@Loic_Pandul) 11 avril 2026
D'après la publication, le dysfonctionnement est lié au mécanisme de réglage de la difficulté.
Tous les 2016 blocs (environ toutes les deux semaines), les nœuds recalculent la cible afin qu'un bloc apparaisse toutes les 10 minutes, indépendamment de la puissance de calcul des mineurs. Pour effectuer cet ajustement, les nœuds mesurent la durée de la dernière période, la comparent à la valeur cible (2016 x 600 = 1 209 600 secondes), puis modifient la difficulté en conséquence.
« C’est dans ces calculs que réside l’erreur. Pour mesurer le temps d’exécution des blocs de la période passée, le nœud compare l’horodatage du premier bloc de la période avec celui du dernier. Intuitivement, cela semble logique, mais il s’agit en réalité d’une erreur, car il n’y a que 2015 intervalles entre le premier et le dernier bloc de la période, et non 2016 », a expliqué Morel.
Si l'on désigne t0 comme l'horodatage du premier bloc et t2015 comme l'horodatage du dernier bloc, le nœud calcule le temps écoulé comme T = t2015 – t0. Cela donne 2015 intervalles (t0 à t1 > t1 à t2 > … > t2014 à t2015).
Pour obtenir les intervalles de 2016, vous devez utiliser une autre formule : T = t2015 — t-1, où t-1 est l'horodatage du dernier bloc de la période précédente.
Il s'agit d'une erreur de « décalage d'unité ». Ce bug introduit une erreur d'environ 0,05 %, ce qui augmente légèrement la difficulté.
Le véritable problème réside cependant ailleurs. Ce défaut entraîne un non-chevauchement des périodes d'ajustement : l'horodatage du dernier bloc d'une période n'est pas pris en compte lors du calcul de la suivante.
manipulation du temps
Cette faille rend possible l'attaque par « distorsion temporelle ». Son principe est le suivant :
- Le mineur qui contrôle la plus grande partie de la puissance de calcul commence à définir des horodatages minimaux acceptables pour tous les blocs de la période (sauf le dernier).
- Dans le dernier bloc de la période, il attribue artificiellement l'horodatage maximal autorisé.
- Une fois la période écoulée, la difficulté est ajustée. En raison de la manipulation des étiquettes, la période mesurée paraît plus longue qu'elle ne l'était réellement. Par conséquent, la difficulté est réduite.
- L'attaquant répète la même manipulation lors de la période suivante. Comme les périodes ne se chevauchent pas, le premier bloc de la seconde période d'attaque peut avoir un horodatage très ancien, tandis que le bloc précédent a un horodatage futur. Cet écart augmente d'une période à l'autre.
En répétant le processus plusieurs fois, un attaquant pourrait théoriquement réduire la difficulté de minage à un niveau où jusqu'à six blocs sont créés par seconde (au lieu d'un toutes les 10 minutes).
« Les conséquences seraient désastreuses : les verrous temporels deviendraient inutiles, le réseau serait surchargé, le nombre de réorganisations augmenterait et les confirmations de transactions perdraient de leur valeur. Tout cela permettrait à un attaquant d’amasser des récompenses de bloc à un rythme effréné », a ajouté le chercheur.
L'attaque serait impossible si les premier et dernier blocs de deux périodes consécutives coïncidaient.
Comment corriger cette erreur ?
Morel a fait remarquer que le problème pourrait être résolu avec une mise à jour logicielle au sein de BIP-0054.
Cette initiative part du principe que le premier bloc d'une nouvelle période de difficulté possède un horodatage qui ne dépasse pas de plus de deux heures celui du dernier bloc de la période précédente.
Cette restriction rétablit une certaine forme de continuité entre les périodes, empêche la manipulation des intervalles de temps et rend impossible l'attaque par « distorsion temporelle ».
Pour rappel, en avril, Avihu Levy, directeur des produits chez StarkWare, a présenté un mécanisme d'urgence de protection quantique pour Bitcoin sans soft fork.
