Bitcoin : une attaque par distorsion temporelle : un risque de sécurité potentiel
Le 26 mars 2025, les développeurs de Bitcoin ont proposé une proposition de soft fork appelée "Grand Consensus Cleanup". Cette proposition vise à corriger plusieurs vulnérabilités et faiblesses qui existent depuis longtemps dans le protocole Bitcoin, y compris le problème des transactions en double que nous avons discuté précédemment. Une autre vulnérabilité plus grave est appelée "attaque par distorsion temporelle", c'est précisément le sujet que cet article va explorer en profondeur.
Mécanisme de protection des timestamps de blocs Bitcoin
Avant de discuter des attaques par distorsion temporelle, nous devons comprendre 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 postérieur au temps médian des onze derniers blocs.
Règles de temps de bloc futur : Basé sur la constante MAX_FUTURE_BLOCK_TIME, l'horodatage du bloc ne peut pas être en avance de plus de 2 heures par rapport à l'heure médiane du réseau. L'écart maximum autorisé entre l'heure du nœud et l'horloge système locale est de 90 minutes, ce qui constitue une autre garantie.
Les règles MPT garantissent que les blocs ne retournent pas trop dans le temps, tandis que les règles des blocs futurs empêchent qu'ils ne "traversent le futur". Il est important de noter qu'il n'est pas possible de mettre en œuvre des règles de blocs futurs similaires pour empêcher les blocs d'avoir des horodatages passés, car cela pourrait affecter le processus de synchronisation initial de la blockchain. Les attaques par distorsion temporelle sont précisément réalisées en falsifiant des horodatages qui remontent très loin dans le passé.
L'erreur "une de moins" de Satoshi Nakamoto
Le cycle d'ajustement de la difficulté du Bitcoin comprend 2016 blocs, ce qui représente environ deux semaines selon un temps cible de bloc de 10 minutes. Pour calculer l'ajustement de la difficulté d'extraction, le protocole calcule la différence de timestamp entre le premier et le dernier bloc dans la fenêtre de 2016 blocs concernée. Cette fenêtre de 2016 blocs contient en réalité 2015 intervalles de blocs (c'est-à-dire 2016 moins 1). Par conséquent, le temps cible pertinent utilisé devrait être 60 secondes × 10 minutes × 2015 intervalles, soit 1 209 000 secondes. Cependant, le protocole Bitcoin utilise le chiffre 2016 pour calculer le temps cible. 60 secondes × 10 minutes × 2016 = 1 209 600 secondes. C'est une erreur de "un de moins", qui pourrait être due à une confusion entre le nombre de blocs et le nombre d'intervalles de blocs.
Cette erreur entraîne un temps cible supérieur de 0,05 % à ce qu'il devrait être. En réalité, l'intervalle de bloc cible de Bitcoin n'est pas de 10 minutes, mais de 10 minutes et 0,3 seconde. Cette petite différence est presque négligeable dans le fonctionnement quotidien, surtout si l'on considère que depuis 2009, en raison de la croissance continue de la puissance de calcul, l'intervalle moyen réel des blocs a toujours été inférieur à 10 minutes.
Principe de l'attaque par distorsion temporelle
L'attaque par distorsion du temps a été découverte pour la première fois vers 2011, exploitant cette erreur de Satoshi Nakamoto dans le calcul de la difficulté. L'idée centrale de l'attaque est :
Pour la plupart des blocs, réglez le timestamp pour qu'il avance d'une seule seconde par rapport au bloc précédent.
Le timestamp n'avance d'une seconde que tous les six blocs, afin de respecter les règles du MPT.
À la fin de chaque cycle d'ajustement de difficulté, définir le timestamp sur l'heure du monde réel.
Le timestamp du premier bloc du prochain cycle est à nouveau réglé sur le passé.
Cette opération fait que le temps de la blockchain devient de plus en plus en retard par rapport au temps réel, entraînant une augmentation constante de la difficulté. Cependant, comme le dernier bloc de chaque cycle utilise un horodatage réel, le calcul de la difficulté considère que le temps passe plus lentement qu'en réalité, ce qui entraîne une réduction significative de la difficulté après le deuxième cycle d'ajustement.
Impact potentiel des attaques
Si elle est mise en œuvre avec succès, cette attaque pourrait entraîner :
La difficulté a chuté brutalement
La vitesse de génération des blocs a considérablement augmenté
Créer une grande quantité de Bitcoin en peu de temps
Cela pourrait provoquer un désordre sur le marché
Cependant, la mise en œuvre de cette attaque fait face à de nombreux défis :
Il est nécessaire de contrôler la majeure partie de la puissance de calcul du réseau.
La présence de mineurs honnêtes augmentera la difficulté
Le processus d'attaque peut être détecté à temps et des mesures peuvent être prises.
Solutions
Pour corriger cette vulnérabilité, il existe plusieurs méthodes possibles :
Modifier l'algorithme d'ajustement de la difficulté, corriger complètement l'erreur "il manque un".
Annuler la règle MPT, exigeant que le temps avance toujours dans chaque bloc.
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 temps spécifique avant le dernier bloc du cycle précédent (comme 2 heures).
La proposition actuelle de "nettoyage du grand consensus" adopte une troisième méthode, suggérant de fixer une limite de 2 heures. Ce plan permet à la fois d'empêcher efficacement les attaques par distorsion temporelle et de réduire au minimum le risque de génération accidentelle de blocs invalides.
La communauté Bitcoin discute activement et améliore ces propositions pour garantir la sécurité et la stabilité à long terme du réseau. Avec l'évolution constante de la technologie, nous avons des raisons de croire que le réseau Bitcoin deviendra de plus en plus puissant et fiable.
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.
11 J'aime
Récompense
11
4
Partager
Commentaire
0/400
LiquidityHunter
· Il y a 21h
À cette heure avancée, une nouvelle vulnérabilité de sécurité est apparue. Les prix sont en baisse, faut-il saisir une opportunité d'arbitrage?
Voir l'originalRépondre0
GasWastingMaximalist
· Il y a 21h
Qu'est-ce que c'est que ça ? On va encore changer les règles ?
Voir l'originalRépondre0
ZenMiner
· Il y a 22h
En creusant, je me suis endormi, de toute façon, nous ne sommes pas pressés.
Voir l'originalRépondre0
faded_wojak.eth
· Il y a 22h
Ce bug semble vraiment effrayant, je le regarde toute la journée.
Bitcoin : analyse des failles cachées et solutions de réparation pour les attaques par distorsion temporelle
Bitcoin : une attaque par distorsion temporelle : un risque de sécurité potentiel
Le 26 mars 2025, les développeurs de Bitcoin ont proposé une proposition de soft fork appelée "Grand Consensus Cleanup". Cette proposition vise à corriger plusieurs vulnérabilités et faiblesses qui existent depuis longtemps dans le protocole Bitcoin, y compris le problème des transactions en double que nous avons discuté précédemment. Une autre vulnérabilité plus grave est appelée "attaque par distorsion temporelle", c'est précisément le sujet que cet article va explorer en profondeur.
Mécanisme de protection des timestamps de blocs Bitcoin
Avant de discuter des attaques par distorsion temporelle, nous devons comprendre 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 postérieur au temps médian des onze derniers blocs.
Règles de temps de bloc futur : Basé sur la constante MAX_FUTURE_BLOCK_TIME, l'horodatage du bloc ne peut pas être en avance de plus de 2 heures par rapport à l'heure médiane du réseau. L'écart maximum autorisé entre l'heure du nœud et l'horloge système locale est de 90 minutes, ce qui constitue une autre garantie.
Les règles MPT garantissent que les blocs ne retournent pas trop dans le temps, tandis que les règles des blocs futurs empêchent qu'ils ne "traversent le futur". Il est important de noter qu'il n'est pas possible de mettre en œuvre des règles de blocs futurs similaires pour empêcher les blocs d'avoir des horodatages passés, car cela pourrait affecter le processus de synchronisation initial de la blockchain. Les attaques par distorsion temporelle sont précisément réalisées en falsifiant des horodatages qui remontent très loin dans le passé.
L'erreur "une de moins" de Satoshi Nakamoto
Le cycle d'ajustement de la difficulté du Bitcoin comprend 2016 blocs, ce qui représente environ deux semaines selon un temps cible de bloc de 10 minutes. Pour calculer l'ajustement de la difficulté d'extraction, le protocole calcule la différence de timestamp entre le premier et le dernier bloc dans la fenêtre de 2016 blocs concernée. Cette fenêtre de 2016 blocs contient en réalité 2015 intervalles de blocs (c'est-à-dire 2016 moins 1). Par conséquent, le temps cible pertinent utilisé devrait être 60 secondes × 10 minutes × 2015 intervalles, soit 1 209 000 secondes. Cependant, le protocole Bitcoin utilise le chiffre 2016 pour calculer le temps cible. 60 secondes × 10 minutes × 2016 = 1 209 600 secondes. C'est une erreur de "un de moins", qui pourrait être due à une confusion entre le nombre de blocs et le nombre d'intervalles de blocs.
Cette erreur entraîne un temps cible supérieur de 0,05 % à ce qu'il devrait être. En réalité, l'intervalle de bloc cible de Bitcoin n'est pas de 10 minutes, mais de 10 minutes et 0,3 seconde. Cette petite différence est presque négligeable dans le fonctionnement quotidien, surtout si l'on considère que depuis 2009, en raison de la croissance continue de la puissance de calcul, l'intervalle moyen réel des blocs a toujours été inférieur à 10 minutes.
Principe de l'attaque par distorsion temporelle
L'attaque par distorsion du temps a été découverte pour la première fois vers 2011, exploitant cette erreur de Satoshi Nakamoto dans le calcul de la difficulté. L'idée centrale de l'attaque est :
Cette opération fait que le temps de la blockchain devient de plus en plus en retard par rapport au temps réel, entraînant une augmentation constante de la difficulté. Cependant, comme le dernier bloc de chaque cycle utilise un horodatage réel, le calcul de la difficulté considère que le temps passe plus lentement qu'en réalité, ce qui entraîne une réduction significative de la difficulté après le deuxième cycle d'ajustement.
Impact potentiel des attaques
Si elle est mise en œuvre avec succès, cette attaque pourrait entraîner :
Cependant, la mise en œuvre de cette attaque fait face à de nombreux défis :
Solutions
Pour corriger cette vulnérabilité, il existe plusieurs méthodes possibles :
La proposition actuelle de "nettoyage du grand consensus" adopte une troisième méthode, suggérant de fixer une limite de 2 heures. Ce plan permet à la fois d'empêcher efficacement les attaques par distorsion temporelle et de réduire au minimum le risque de génération accidentelle de blocs invalides.
La communauté Bitcoin discute activement et améliore ces propositions pour garantir la sécurité et la stabilité à long terme du réseau. Avec l'évolution constante de la technologie, nous avons des raisons de croire que le réseau Bitcoin deviendra de plus en plus puissant et fiable.