Bitcoin : vulnérabilités de sécurité - attaque par distorsion temporelle
Aperçu
Le 26 mars 2025, un développeur de Bitcoin a proposé une nouvelle proposition d'amélioration, connue sous le nom de "nettoyage du grand consensus", un schéma de soft fork. Cette mise à niveau vise à corriger plusieurs vulnérabilités et faiblesses de longue date dans le protocole Bitcoin. L'une des vulnérabilités les plus graves est appelée "attaque par distorsion temporelle", qui est précisément le sujet principal de cet article.
Mécanisme de protection des timestamps de bloc Bitcoin
Avant de discuter des attaques par distorsion temporelle, récapitulons d'abord les règles actuelles de protection contre la manipulation du temps :
Règle du temps médian passé (MPT) : L'horodatage du bloc doit être plus récent que le temps médian des onze derniers blocs.
Règle de temps de bloc futur : Sur la base de la constante MAX_FUTURE_BLOCK_TIME, l'horodatage du bloc ne peut pas être en avance de plus de 2 heures par rapport à la médiane du temps des pairs du nœud. L'écart maximal autorisé entre le temps fourni par le nœud et l'horloge système locale est de 90 minutes, comme une autre mesure de sécurité.
Les règles MPT garantissent que les blocs ne retournent pas trop dans le passé, tandis que les règles des blocs futurs empêchent qu'ils ne s'engagent trop dans le futur. Il est important de noter qu'il n'est pas possible de mettre en œuvre un mécanisme similaire aux règles des blocs futurs pour empêcher les blocs d'avoir des horodatages passés, car cela pourrait affecter la synchronisation initiale de la blockchain. Les attaques par distorsion temporelle impliquent la falsification des horodatages pour les faire remonter loin dans le passé.
Erreurs de calcul dans le code source
Il existe une petite mais notable erreur de calcul dans le protocole Bitcoin. Lors du calcul de l'ajustement de la difficulté minière, le protocole utilise 2016 blocs comme base de calcul, alors qu'il devrait en réalité utiliser un intervalle de 2015 blocs. Cela entraîne un temps cible 0,05 % plus long que prévu, ce qui fait que l'intervalle de génération de blocs réel de Bitcoin est de 10 minutes et 0,3 seconde, au lieu de 10 minutes pile.
Bien que cette erreur de 0,3 seconde n'ait pas un grand impact dans l'ensemble, elle est liée à un autre problème plus grave. Le calcul de la difficulté est basé sur le premier et le dernier bloc de chaque fenêtre de 2016 blocs, et cette méthode présente des défauts. Une approche plus raisonnable devrait consister à calculer la différence de temps entre le dernier bloc de la fenêtre de 2016 blocs précédente et le dernier bloc de la fenêtre actuelle.
Principe de l'attaque par distorsion du temps
L'attaque par distorsion temporelle exploite les erreurs de calcul mentionnées ci-dessus. Dans un scénario idéal, supposons que le minage soit complètement centralisé, un attaquant pourrait manipuler les horodatages des blocs de la manière suivante :
La plupart des horodatages des blocs ne sont avancés que d'une seconde par rapport au bloc précédent.
Le timestamp n'est avancé d'une seconde que tous les six blocs, afin de respecter les règles MTP.
À la fin de chaque période d'ajustement de difficulté, le timestamp doit être réglé sur l'heure du monde réel.
Le timestamp du premier bloc du nouveau cycle de difficulté revient à nouveau dans le passé, une seconde avant l'avant-dernier bloc du cycle précédent.
Cette opération entraînera un décalage progressif du temps de la blockchain par rapport au temps réel, tout en augmentant continuellement la difficulté. Cependant, à la fin de chaque cycle d'ajustement de la difficulté, en raison du dernier bloc utilisant un horodatage réel, la difficulté sera déclenchée pour être ajustée à la baisse. À mesure que l'attaque se poursuit, la difficulté diminuera considérablement, permettant aux attaquants de créer des blocs à une vitesse très rapide, potentiellement en obtenant une grande quantité de Bitcoin.
Faisabilité et défis de l'attaque
Bien que cette attaque soit théoriquement destructrice, elle fait face à de nombreux défis dans sa mise en œuvre :
Il peut être nécessaire de contrôler la plupart de la puissance de calcul du réseau.
La présence de mineurs honnêtes augmentera la difficulté des attaques.
Les règles MTP et les horodatages honnêtes limiteront le degré de retour en arrière des horodatages malveillants.
Si un mineur honnête génère le premier bloc de toute fenêtre d'ajustement de difficulté, l'attaque de ce cycle échouera.
Les comportements d'attaque sont visibles publiquement sur la blockchain et peuvent déclencher une réparation d'urgence par soft fork.
Solutions potentielles
Pour corriger cette vulnérabilité, il existe plusieurs solutions possibles :
Modifier l'algorithme d'ajustement de la difficulté, calculer l'intervalle de temps entre les différentes fenêtres de blocs 2016 et corriger les erreurs de calcul.
Annuler la règle MTP, exigeant que le temps de chaque bloc doive avancer.
Définir de nouvelles règles de restriction : exiger que le temps du premier bloc du nouveau cycle de difficulté ne soit pas antérieur à un certain temps (comme 10 minutes ou 2 heures) avant le dernier bloc du cycle précédent.
Dans la dernière proposition de "Nettoyage du Grand Consensus", il est suggéré d'adopter une limite de temps de 2 heures. Cette limite représente environ 0,6 % du temps cible du cycle d'ajustement de difficulté, ce qui peut efficacement limiter le degré de manipulation de la difficulté.
En mettant en œuvre ces améliorations, le réseau Bitcoin sera mieux à même de résister aux attaques par distorsion temporelle, renforçant ainsi sa sécurité et sa stabilité.
Cette page peut inclure du contenu de tiers fourni à des fins d'information uniquement. Gate ne garantit ni l'exactitude ni la validité de ces contenus, n’endosse pas les opinions exprimées, et ne fournit aucun conseil financier ou professionnel à travers ces informations. Voir la section Avertissement pour plus de détails.
8 J'aime
Récompense
8
6
Partager
Commentaire
0/400
LuckyBearDrawer
· Il y a 9h
Ce bug, après tout, n'est pas plus difficile que la difficulté du minage.
Voir l'originalRépondre0
MetaverseVagabond
· Il y a 9h
Ah Mimi ! Encore un problème !
Voir l'originalRépondre0
DataBartender
· Il y a 9h
On dirait encore un bug de niveau divin. Je vais d'abord chercher un petit tabouret.
Voir l'originalRépondre0
EyeOfTheTokenStorm
· Il y a 9h
Ah, encore quelqu'un qui joue avec le Horodatage. On ouvre long ou short ? Ne paniquez pas tout le monde.
Voir l'originalRépondre0
airdrop_huntress
· Il y a 10h
Que se passe-t-il encore ? Pourquoi parle-t-on encore de machines à voyager dans le temps ?
Voir l'originalRépondre0
just_another_wallet
· Il y a 10h
Ah, après tant d'années de développement, les vulnérabilités s'enchaînent.
Bitcoin fait face à un risque d'attaque par distorsion temporelle, une nouvelle proposition pourrait résoudre les vulnérabilités de sécurité.
Bitcoin : vulnérabilités de sécurité - attaque par distorsion temporelle
Aperçu
Le 26 mars 2025, un développeur de Bitcoin a proposé une nouvelle proposition d'amélioration, connue sous le nom de "nettoyage du grand consensus", un schéma de soft fork. Cette mise à niveau vise à corriger plusieurs vulnérabilités et faiblesses de longue date dans le protocole Bitcoin. L'une des vulnérabilités les plus graves est appelée "attaque par distorsion temporelle", qui est précisément le sujet principal de cet article.
Mécanisme de protection des timestamps de bloc Bitcoin
Avant de discuter des attaques par distorsion temporelle, récapitulons d'abord les règles actuelles de protection contre la manipulation du temps :
Règle du temps médian passé (MPT) : L'horodatage du bloc doit être plus récent que le temps médian des onze derniers blocs.
Règle de temps de bloc futur : Sur la base de la constante MAX_FUTURE_BLOCK_TIME, l'horodatage du bloc ne peut pas être en avance de plus de 2 heures par rapport à la médiane du temps des pairs du nœud. L'écart maximal autorisé entre le temps fourni par le nœud et l'horloge système locale est de 90 minutes, comme une autre mesure de sécurité.
Les règles MPT garantissent que les blocs ne retournent pas trop dans le passé, tandis que les règles des blocs futurs empêchent qu'ils ne s'engagent trop dans le futur. Il est important de noter qu'il n'est pas possible de mettre en œuvre un mécanisme similaire aux règles des blocs futurs pour empêcher les blocs d'avoir des horodatages passés, car cela pourrait affecter la synchronisation initiale de la blockchain. Les attaques par distorsion temporelle impliquent la falsification des horodatages pour les faire remonter loin dans le passé.
Erreurs de calcul dans le code source
Il existe une petite mais notable erreur de calcul dans le protocole Bitcoin. Lors du calcul de l'ajustement de la difficulté minière, le protocole utilise 2016 blocs comme base de calcul, alors qu'il devrait en réalité utiliser un intervalle de 2015 blocs. Cela entraîne un temps cible 0,05 % plus long que prévu, ce qui fait que l'intervalle de génération de blocs réel de Bitcoin est de 10 minutes et 0,3 seconde, au lieu de 10 minutes pile.
Bien que cette erreur de 0,3 seconde n'ait pas un grand impact dans l'ensemble, elle est liée à un autre problème plus grave. Le calcul de la difficulté est basé sur le premier et le dernier bloc de chaque fenêtre de 2016 blocs, et cette méthode présente des défauts. Une approche plus raisonnable devrait consister à calculer la différence de temps entre le dernier bloc de la fenêtre de 2016 blocs précédente et le dernier bloc de la fenêtre actuelle.
Principe de l'attaque par distorsion du temps
L'attaque par distorsion temporelle exploite les erreurs de calcul mentionnées ci-dessus. Dans un scénario idéal, supposons que le minage soit complètement centralisé, un attaquant pourrait manipuler les horodatages des blocs de la manière suivante :
Cette opération entraînera un décalage progressif du temps de la blockchain par rapport au temps réel, tout en augmentant continuellement la difficulté. Cependant, à la fin de chaque cycle d'ajustement de la difficulté, en raison du dernier bloc utilisant un horodatage réel, la difficulté sera déclenchée pour être ajustée à la baisse. À mesure que l'attaque se poursuit, la difficulté diminuera considérablement, permettant aux attaquants de créer des blocs à une vitesse très rapide, potentiellement en obtenant une grande quantité de Bitcoin.
Faisabilité et défis de l'attaque
Bien que cette attaque soit théoriquement destructrice, elle fait face à de nombreux défis dans sa mise en œuvre :
Solutions potentielles
Pour corriger cette vulnérabilité, il existe plusieurs solutions possibles :
Dans la dernière proposition de "Nettoyage du Grand Consensus", il est suggéré d'adopter une limite de temps de 2 heures. Cette limite représente environ 0,6 % du temps cible du cycle d'ajustement de difficulté, ce qui peut efficacement limiter le degré de manipulation de la difficulté.
En mettant en œuvre ces améliorations, le réseau Bitcoin sera mieux à même de résister aux attaques par distorsion temporelle, renforçant ainsi sa sécurité et sa stabilité.