Récemment, un développeur de Bitcoin a proposé une nouvelle proposition d'amélioration visant à corriger plusieurs vulnérabilités et faiblesses présentes dans le protocole Bitcoin depuis des années. L'une des vulnérabilités les plus graves est appelée "attaque par distorsion temporelle", et cet article l'examinera en profondeur.
Mécanisme de protection des timestamps de blocs Bitcoin
Avant de discuter des attaques par distorsion temporelle, examinons d'abord les deux principales règles actuellement utilisées par Bitcoin pour prévenir la manipulation du temps :
Règle du temps médian passé (MPT) : l'horodatage du bloc doit être postérieur au temps médian des 11 blocs précédents.
Règle de temps de bloc à venir : le timestamp du bloc ne peut pas dépasser de plus de 2 heures le temps médian des pairs du nœud.
Ces deux règles empêchent respectivement que l'horodatage des blocs soit trop avancé ou trop retardé. Cependant, l'attaque par distorsion temporelle exploite précisément les failles de ces règles en falsifiant des horodatages pour les ramener loin dans le passé.
Erreur de calcul de Satoshi Nakamoto
Le cycle d'ajustement de la difficulté du Bitcoin contient 2016 blocs, soit environ deux semaines. Lors du calcul de l'ajustement de la difficulté d'extraction, le protocole calcule la différence de timestamp entre le premier et le dernier bloc de cette fenêtre de 2016 blocs. Cependant, Satoshi Nakamoto a commis une petite erreur lors de la conception : il a utilisé 2016 au lieu de 2015 pour calculer le temps cible. Cela a conduit à un temps cible qui est 0,05 % plus long que ce qu'il devrait être, rendant l'intervalle de blocs cible réel du Bitcoin de 10 minutes et 0,3 seconde, au lieu de 10 minutes pleines.
Bien que cette erreur de 0,3 seconde n'ait pas d'impact majeur en soi, elle a cependant déclenché une vulnérabilité plus grave. Le calcul de la difficulté est basé uniquement sur les deux blocs aux extrémités de chaque fenêtre de 2016 blocs, ce qui crée une possibilité d'attaque par distorsion temporelle.
Principe de l'attaque de distorsion temporelle
L'essence de l'attaque par distorsion temporelle réside dans la manipulation des horodatages de blocs. L'attaquant peut régler l'horodatage de la plupart des blocs à seulement 1 seconde après celui du bloc précédent, tout en avançant l'horodatage d'1 seconde tous les 6 blocs pour satisfaire aux règles du MPT. Dans le dernier bloc de chaque cycle d'ajustement de difficulté, l'attaquant fixe l'horodatage à l'heure du monde réel, tandis que l'horodatage du premier bloc du cycle suivant est remis dans le passé.
Cette opération entraînera un décalage de plus en plus important entre le temps de la blockchain et le temps réel, ce qui affectera l'ajustement de la difficulté. À partir du deuxième cycle d'ajustement, la difficulté diminuera considérablement, permettant aux attaquants de créer des blocs à une vitesse très rapide et d'obtenir une grande quantité de Bitcoin.
Impact et faisabilité de l'attaque
En théorie, cette attaque pourrait avoir des conséquences désastreuses. Dans des cas extrêmes, la difficulté pourrait être réduite à produire plus de 10 blocs par seconde. Cependant, la mise en œuvre de cette attaque est également confrontée à de nombreux défis :
Il est nécessaire de contrôler la majorité de la puissance de calcul.
La présence de mineurs honnêtes augmentera la difficulté des attaques.
Le processus d'attaque est entièrement visible, ce qui peut déclencher une réparation d'urgence.
Solution
Pour corriger cette vulnérabilité, les développeurs ont proposé une solution relativement simple : exiger que le temps du premier bloc du nouveau cycle de difficulté ne soit pas antérieur à un moment spécifique du dernier bloc de l'ancien cycle. L'intervalle de temps actuellement recommandé est de 2 heures, ce qui ne représente que 0,6 % du temps cible du cycle d'ajustement de la difficulté, et peut efficacement limiter l'ampleur de la manipulation de la difficulté.
Cette solution permet à la fois de défendre efficacement contre les attaques de distorsion temporelle et de minimiser au maximum le risque de génération accidentelle de blocs invalides. Elle correspond aux règles de temps de bloc futures existantes, permettant aux mineurs de corriger l'erreur de temps maximale autorisée dans un bloc.
Dans l'ensemble, cette solution de correction maintient la sécurité du réseau Bitcoin tout en réduisant autant que possible les modifications des règles existantes, ce qui en fait une solution relativement conservatrice et efficace.
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
4
Partager
Commentaire
0/400
DataPickledFish
· Il y a 23h
Il était temps de le réparer. L'univers de la cryptomonnaie dit que la sécurité n'est qu'un amusement.
Voir l'originalRépondre0
NftRegretMachine
· Il y a 23h
Eh bien, maintenant le Bitcoin peut même traverser.
Voir l'originalRépondre0
New_Ser_Ngmi
· Il y a 23h
Ah ça, tant que l'ancien Nakamoto est encore vivant, dépêchez-vous de réparer.
Voir l'originalRépondre0
SerumDegen
· 08-03 02:00
ngmi si tu penses encore que le btc est sans bugs... j'ai déjà été rekt par des problèmes de timestamp pour être honnête
Bitcoin corrige le bug de distorsion du temps de réparation, l'algorithme de Difficulté de reciblage a été amélioré.
Bitcoin corrige le bug de distorsion du temps
Récemment, un développeur de Bitcoin a proposé une nouvelle proposition d'amélioration visant à corriger plusieurs vulnérabilités et faiblesses présentes dans le protocole Bitcoin depuis des années. L'une des vulnérabilités les plus graves est appelée "attaque par distorsion temporelle", et cet article l'examinera en profondeur.
Mécanisme de protection des timestamps de blocs Bitcoin
Avant de discuter des attaques par distorsion temporelle, examinons d'abord les deux principales règles actuellement utilisées par Bitcoin pour prévenir la manipulation du temps :
Règle du temps médian passé (MPT) : l'horodatage du bloc doit être postérieur au temps médian des 11 blocs précédents.
Règle de temps de bloc à venir : le timestamp du bloc ne peut pas dépasser de plus de 2 heures le temps médian des pairs du nœud.
Ces deux règles empêchent respectivement que l'horodatage des blocs soit trop avancé ou trop retardé. Cependant, l'attaque par distorsion temporelle exploite précisément les failles de ces règles en falsifiant des horodatages pour les ramener loin dans le passé.
Erreur de calcul de Satoshi Nakamoto
Le cycle d'ajustement de la difficulté du Bitcoin contient 2016 blocs, soit environ deux semaines. Lors du calcul de l'ajustement de la difficulté d'extraction, le protocole calcule la différence de timestamp entre le premier et le dernier bloc de cette fenêtre de 2016 blocs. Cependant, Satoshi Nakamoto a commis une petite erreur lors de la conception : il a utilisé 2016 au lieu de 2015 pour calculer le temps cible. Cela a conduit à un temps cible qui est 0,05 % plus long que ce qu'il devrait être, rendant l'intervalle de blocs cible réel du Bitcoin de 10 minutes et 0,3 seconde, au lieu de 10 minutes pleines.
Bien que cette erreur de 0,3 seconde n'ait pas d'impact majeur en soi, elle a cependant déclenché une vulnérabilité plus grave. Le calcul de la difficulté est basé uniquement sur les deux blocs aux extrémités de chaque fenêtre de 2016 blocs, ce qui crée une possibilité d'attaque par distorsion temporelle.
Principe de l'attaque de distorsion temporelle
L'essence de l'attaque par distorsion temporelle réside dans la manipulation des horodatages de blocs. L'attaquant peut régler l'horodatage de la plupart des blocs à seulement 1 seconde après celui du bloc précédent, tout en avançant l'horodatage d'1 seconde tous les 6 blocs pour satisfaire aux règles du MPT. Dans le dernier bloc de chaque cycle d'ajustement de difficulté, l'attaquant fixe l'horodatage à l'heure du monde réel, tandis que l'horodatage du premier bloc du cycle suivant est remis dans le passé.
Cette opération entraînera un décalage de plus en plus important entre le temps de la blockchain et le temps réel, ce qui affectera l'ajustement de la difficulté. À partir du deuxième cycle d'ajustement, la difficulté diminuera considérablement, permettant aux attaquants de créer des blocs à une vitesse très rapide et d'obtenir une grande quantité de Bitcoin.
Impact et faisabilité de l'attaque
En théorie, cette attaque pourrait avoir des conséquences désastreuses. Dans des cas extrêmes, la difficulté pourrait être réduite à produire plus de 10 blocs par seconde. Cependant, la mise en œuvre de cette attaque est également confrontée à de nombreux défis :
Solution
Pour corriger cette vulnérabilité, les développeurs ont proposé une solution relativement simple : exiger que le temps du premier bloc du nouveau cycle de difficulté ne soit pas antérieur à un moment spécifique du dernier bloc de l'ancien cycle. L'intervalle de temps actuellement recommandé est de 2 heures, ce qui ne représente que 0,6 % du temps cible du cycle d'ajustement de la difficulté, et peut efficacement limiter l'ampleur de la manipulation de la difficulté.
Cette solution permet à la fois de défendre efficacement contre les attaques de distorsion temporelle et de minimiser au maximum le risque de génération accidentelle de blocs invalides. Elle correspond aux règles de temps de bloc futures existantes, permettant aux mineurs de corriger l'erreur de temps maximale autorisée dans un bloc.
Dans l'ensemble, cette solution de correction maintient la sécurité du réseau Bitcoin tout en réduisant autant que possible les modifications des règles existantes, ce qui en fait une solution relativement conservatrice et efficace.