Bitcoin fait face à une attaque de distorsion temporelle, un protocole vulnérable soulève des problèmes de sécurité.

Bitcoin vulnérabilité de sécurité : attaque de distorsion temporelle

Récemment, un développeur de Bitcoin a proposé une nouvelle proposition de soft fork, visant à corriger plusieurs vulnérabilités et faiblesses qui existent depuis longtemps dans le protocole Bitcoin. L'une des vulnérabilités les plus graves est appelée "attaque de distorsion temporelle", et cet article l'examinera en détail.

Bitcoin vulnérabilité de sécurité : attaque de distorsion temporelle

Mécanisme de protection des timestamps de bloc Bitcoin

Avant de discuter des attaques par distorsion temporelle, passons d'abord en revue les règles actuelles de protection contre la manipulation du temps :

  1. Temps médian passé (MPT) règles : l'horodatage du bloc doit être plus tardif que le temps médian des onze derniers blocs.

  2. Règles de temps de bloc à l'avenir : L'horodatage du bloc ne peut pas être en avance de plus de 2 heures par rapport à la médiane de temps des pairs des nœuds. L'écart maximal autorisé entre le temps du nœud et l'horloge système locale est de 90 minutes.

Les règles MPT empêchent les horodatages des blocs d'être trop rétroactifs, tandis que les règles des blocs futurs empêchent les horodatages d'être trop avancés. Il convient de noter qu'il est impossible 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. L'attaque par distorsion temporelle exploite précisément des horodatages falsifiés, les faisant remonter loin dans le passé.

Bitcoin vulnérabilité de sécurité : attaque de distorsion temporelle

Problème de calcul de la période d'ajustement de la difficulté

Le cycle d'ajustement de la difficulté du Bitcoin comprend 2016 blocs, calculé sur un objectif de bloc de 10 minutes, soit environ deux semaines. Lors du calcul de l'ajustement de la difficulté minière, le protocole calcule la différence de timestamp entre le premier et le dernier bloc dans la fenêtre des 2016 blocs concernés. Cette fenêtre de 2016 blocs contient en réalité 2015 intervalles de blocs, donc le temps cible théorique utilisé devrait être 60 secondes * 10 minutes * 2015 intervalles, ce qui équivaut à 1 209 000 secondes.

Cependant, le protocole Bitcoin utilise le nombre 2016 pour calculer l'objectif. 60 secondes * 10 minutes * 2016 = 1 209 600 secondes. C'est une erreur de "un de moins", qui pourrait être due à une confusion entre l'intervalle entre les blocs.

Cette erreur a entraîné un temps cible supérieur de 0,05 % à ce qu'il devrait être. Ainsi, l'intervalle de temps cible réel pour le Bitcoin est de 10 minutes et 0,3 seconde, au lieu de 10 minutes. Bien que cette erreur semble insignifiante, elle est associée à un autre problème plus grave.

Le principe de l'attaque par déformation temporelle

L'attaque par distorsion temporelle exploite cette erreur dans le calcul de la difficulté. Dans un scénario idéal, supposons que le minage soit complètement centralisé, les mineurs peuvent définir n'importe quel horodatage autorisé par le protocole. L'attaquant adopterait la stratégie suivante :

  1. Pour la plupart des blocs, définir l'horodatage à une seconde après le bloc précédent.
  2. Pour faire avancer le temps aussi lentement que possible, les mineurs peuvent maintenir le même horodatage pendant six blocs consécutifs, puis augmenter le temps d'une seconde dans le bloc suivant.
  3. Dans le dernier bloc de chaque cycle d'ajustement de la difficulté, définissez l'horodatage sur l'heure du monde réel.
  4. Le timestamp du premier bloc du prochain cycle revient encore au passé, une seconde avant l'avant-dernier bloc du cycle précédent.

Cette opération est conforme aux règles MTP, car une seule anomalie n'affectera pas la médiane de 11 blocs. De cette manière, la blockchain sera progressivement en retard par rapport au temps réel, et la difficulté continuera d'augmenter. Cependant, à partir du deuxième cycle d'ajustement, la difficulté commencera à s'ajuster à la baisse, permettant aux mineurs de créer des blocs à une vitesse très rapide, générant potentiellement une grande quantité de Bitcoin.

Bitcoin sécurité des failles : attaque de distorsion temporelle

Faisabilité et défis de l'attaque

Bien que cette attaque soit théoriquement dévastatrice, elle fait face à certains défis en matière de mise en œuvre :

  1. Il se peut que vous ayez besoin de contrôler la plupart de la puissance de calcul.
  2. La présence de mineurs honnêtes augmentera la difficulté d'attaque.
  3. Les règles MTP et les horodatages honnêtes peuvent limiter le degré de rétrogradation des horodatages malveillants.
  4. Si un mineur honnête produit le premier bloc de toute fenêtre d'ajustement de difficulté, l'attaque de ce cycle échouera.
  5. Le processus d'attaque est visible publiquement, ce qui peut laisser à la communauté le temps de mettre en place des correctifs d'urgence.

Bitcoin sécurité des failles : attaque de distorsion temporelle

Solutions potentielles

Il existe plusieurs méthodes possibles pour corriger cette vulnérabilité :

  1. Changer l'algorithme d'ajustement de la difficulté, calculer l'écart de temps entre les blocs dans différentes fenêtres de 2016.
  2. Annuler la règle MTP, exigeant que le temps avance toujours dans chaque bloc.
  3. Définir de nouvelles règles de limitation : exiger que le temps du premier bloc du nouveau cycle de difficulté ne soit pas antérieur d'un certain nombre de minutes au dernier bloc du cycle précédent.

Actuellement, la proposition de nettoyage du consensus suggère d'adopter une troisième méthode, en fixant une limite de temps à 2 heures. Cette période représente environ 0,6 % du temps cible du cycle d'ajustement de la difficulté, ce qui peut efficacement limiter la capacité à manipuler la difficulté à la baisse.

Concernant la durée de la période de grâce à utiliser, il existe différentes opinions dans l'industrie. Les limites de 10 minutes et de 2 heures ont chacune leurs avantages et inconvénients, nécessitant une évaluation. Quelle que soit la solution adoptée, corriger cette vulnérabilité améliorera considérablement la sécurité et la stabilité du réseau Bitcoin.

Bitcoin sécurité faille : attaque de distorsion temporelle

BTC0.29%
Voir l'original
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.
  • Récompense
  • 8
  • Reposter
  • Partager
Commentaire
0/400
MintMastervip
· 08-12 04:11
Il y a des gens qui se souviennent encore de l'univers de la cryptomonnaie.
Voir l'originalRépondre0
consensus_whisperervip
· 08-11 04:51
Une nouvelle vulnérabilité est arrivée, il est temps de corriger.
Voir l'originalRépondre0
liquidation_surfervip
· 08-09 19:16
Il faut encore débourser de l'argent pour corriger les failles, tsk tsk.
Voir l'originalRépondre0
MeaninglessApevip
· 08-09 17:34
Encore encore encore un bug, sans mots, fam.
Voir l'originalRépondre0
GhostAddressHuntervip
· 08-09 17:34
Il y a quelqu'un qui a trouvé une faille ? Disons que c'est noir, alors c'est noir.
Voir l'originalRépondre0
GasWastervip
· 08-09 17:31
Attaque ou pas, de toute façon je ne comprends rien, c'est tout.
Voir l'originalRépondre0
MEVHuntervip
· 08-09 17:11
heh, trouvé une autre exploitation savoureuse... le temps n'est qu'une autre variable à manipuler pour être honnête. j'ai surveillé cette vulnérabilité depuis les jours de testnet
Voir l'originalRépondre0
ApeWithNoFearvip
· 08-09 17:10
Les machines de minage sont vraiment effrayantes.
Voir l'originalRépondre0
  • Épingler
Trader les cryptos partout et à tout moment
qrCode
Scan pour télécharger Gate app
Communauté
Français (Afrique)
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)