Analyse de la vulnérabilité d'attaque par distorsion temporelle de Bitcoin
Le 26 mars 2025, les développeurs de Bitcoin ont proposé une proposition de soft fork appelée "Nettoyage du Grand Consensus". Cette proposition vise à corriger plusieurs failles et faiblesses qui existent depuis longtemps dans le protocole Bitcoin, y compris le problème des transactions en double que nous avons déjà discuté, ainsi que la faille "attaque par distorsion temporelle" que cet article va examiner en détail.
Mécanisme de protection de l'horodatage des 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 de 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 : l'horodatage du bloc ne doit pas dépasser 2 heures par rapport à la médiane des temps des nœuds pairs. L'écart maximal autorisé entre le temps du nœud et l'horloge du système local est de 90 minutes.
Les règles MPT empêchent que les horodatages des blocs soient trop rétroactifs, tandis que les règles des blocs futurs limitent les horodatages qui sont trop avancés. 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 horodatages passés, car cela pourrait affecter la synchronisation initiale de la blockchain. Les attaques par distorsion temporelle exploitent précisément la possibilité de falsifier des horodatages anciens.
L'erreur "un de moins" de Satoshi Nakamoto
La période d'ajustement de la difficulté du Bitcoin comprend 2016 blocs, ce qui représente environ deux semaines selon un objectif de création de blocs de 10 minutes. Lors du calcul de l'ajustement de la difficulté, le protocole compare la différence des horodatages entre les premiers et derniers blocs de la fenêtre de 2016 blocs. Cette fenêtre contient en réalité 2015 intervalles de blocs (c'est-à-dire 2016 moins 1). Par conséquent, théoriquement, on devrait utiliser 60 secondes * 10 minutes * 2015 intervalles = 1 209 000 secondes comme temps cible. Cependant, le protocole Bitcoin utilise le nombre 2016, ce qui conduit à 60 secondes * 10 minutes * 2016 = 1 209 600 secondes. C'est une erreur typique d'un de moins, qui pourrait provenir de la confusion de Satoshi Nakamoto entre le nombre de blocs et le nombre d'intervalles de blocs.
Cette erreur rend le temps cible 0,05 % plus long que prévu, prolongeant en réalité le temps cible de création de blocs de Bitcoin à 10 minutes et 0,3 seconde. Bien que cette erreur semble insignifiante, elle est liée à un autre problème plus grave.
Principe de l'attaque par distorsion du temps
L'attaque par distorsion du temps a été découverte pour la première fois en 2011, exploitant une erreur de Satoshi Nakamoto dans le calcul de la difficulté. Les attaquants peuvent réduire artificiellement la difficulté de minage en manipulant les horodatages des blocs.
Les étapes de l'attaque sont les suivantes :
Pour la plupart des blocs, réglez l'horodatage pour qu'il avance d'une seule seconde par rapport au bloc précédent.
Chaque six blocs maintient le même horodatage, puis augmente de 1 seconde pour respecter les règles MPT.
Dans le dernier bloc de chaque cycle d'ajustement de difficulté, définissez le timestamp sur l'heure du monde réel.
Le timestamp du premier bloc du prochain cycle revient à nouveau dans le passé, une seconde plus tôt que l'avant-dernier bloc du cycle précédent.
Cette opération entraînera un décalage croissant entre le temps de la blockchain et le temps réel, tout en augmentant la difficulté. Cependant, à partir du deuxième cycle d'ajustement, la difficulté commencera à diminuer. Les attaquants peuvent exploiter ce mécanisme pour créer rapidement un grand nombre de blocs et obtenir des récompenses en Bitcoin excessives.
Faisabilité et limites de l'attaque
Bien que cette attaque ait un impact énorme en théorie, sa mise en œuvre pose certains défis :
Il est nécessaire de contrôler la plupart de la puissance de calcul du réseau.
L'existence de mineurs honnêtes augmentera la difficulté des attaques.
Les règles MTP et les horodatages honnêtes limitent le degré de retour en arrière des horodatages malveillants.
Si un mineur honnête produit le premier bloc de n'importe quelle fenêtre d'ajustement de difficulté, l'attaque de cette période échouera.
Le processus d'attaque est visible par tous, ce qui peut déclencher une réparation d'urgence par soft fork.
Solutions potentielles
Il existe plusieurs façons de corriger cette vulnérabilité:
Changer l'algorithme d'ajustement de la difficulté, calculer la durée entre les différentes fenêtres de 2016 et corriger l'erreur de différence un. Mais cela pourrait nécessiter un hard fork.
Annuler la règle MTP, exigeant que le temps doit avancer dans chaque bloc. Mais cela pourrait entraîner un blocage du temps dans un avenir lointain, ou causer des problèmes dus à des différences d'horloge système.
Une solution plus simple consiste à exiger que le temps du premier bloc du nouveau cycle de difficulté ne soit pas antérieur à un certain nombre de minutes du dernier bloc de l'ancien cycle. La plage de temps actuellement discutée varie de 10 minutes à 2 heures.
Dans la dernière proposition de nettoyage du grand consensus, les développeurs suggèrent d'adopter une limite de 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 l'espace de manipulation à la baisse de la difficulté.
Quelle que soit la solution adoptée, la correction de cette vulnérabilité renforcera davantage la sécurité et la stabilité du réseau Bitcoin.
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.
24 J'aime
Récompense
24
8
Partager
Commentaire
0/400
BlockTalk
· 07-27 22:15
C'est vraiment du vieux btc, si solide.
Voir l'originalRépondre0
defi_detective
· 07-27 08:59
Amusant ! C'est un voyage dans le temps, n'est-ce pas ?
Voir l'originalRépondre0
DecentralizeMe
· 07-27 07:12
C'est pour BTC que l'on vient, n'est-ce pas le grand frère ?
Voir l'originalRépondre0
VibesOverCharts
· 07-24 22:46
Passer la journée à faire des bêtises n'est qu'un gaspillage d'électricité.
Voir l'originalRépondre0
CommunityJanitor
· 07-24 22:44
Qui peut m'expliquer ce qu'est le temps déformé ?
Voir l'originalRépondre0
MetaReckt
· 07-24 22:33
btc stable comme une montagne!
Voir l'originalRépondre0
UncleLiquidation
· 07-24 22:30
Rug Pull compte à rebours~
Voir l'originalRépondre0
failed_dev_successful_ape
· 07-24 22:29
Mineur pro 666 ah jouer avec le temps peut encore faire des merveilles
Analyse de la vulnérabilité d'attaque par distorsion temporelle de Bitcoin : principes, impacts et solutions de réparation
Analyse de la vulnérabilité d'attaque par distorsion temporelle de Bitcoin
Le 26 mars 2025, les développeurs de Bitcoin ont proposé une proposition de soft fork appelée "Nettoyage du Grand Consensus". Cette proposition vise à corriger plusieurs failles et faiblesses qui existent depuis longtemps dans le protocole Bitcoin, y compris le problème des transactions en double que nous avons déjà discuté, ainsi que la faille "attaque par distorsion temporelle" que cet article va examiner en détail.
Mécanisme de protection de l'horodatage des 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 de 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 : l'horodatage du bloc ne doit pas dépasser 2 heures par rapport à la médiane des temps des nœuds pairs. L'écart maximal autorisé entre le temps du nœud et l'horloge du système local est de 90 minutes.
Les règles MPT empêchent que les horodatages des blocs soient trop rétroactifs, tandis que les règles des blocs futurs limitent les horodatages qui sont trop avancés. 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 horodatages passés, car cela pourrait affecter la synchronisation initiale de la blockchain. Les attaques par distorsion temporelle exploitent précisément la possibilité de falsifier des horodatages anciens.
L'erreur "un de moins" de Satoshi Nakamoto
La période d'ajustement de la difficulté du Bitcoin comprend 2016 blocs, ce qui représente environ deux semaines selon un objectif de création de blocs de 10 minutes. Lors du calcul de l'ajustement de la difficulté, le protocole compare la différence des horodatages entre les premiers et derniers blocs de la fenêtre de 2016 blocs. Cette fenêtre contient en réalité 2015 intervalles de blocs (c'est-à-dire 2016 moins 1). Par conséquent, théoriquement, on devrait utiliser 60 secondes * 10 minutes * 2015 intervalles = 1 209 000 secondes comme temps cible. Cependant, le protocole Bitcoin utilise le nombre 2016, ce qui conduit à 60 secondes * 10 minutes * 2016 = 1 209 600 secondes. C'est une erreur typique d'un de moins, qui pourrait provenir de la confusion de Satoshi Nakamoto entre le nombre de blocs et le nombre d'intervalles de blocs.
Cette erreur rend le temps cible 0,05 % plus long que prévu, prolongeant en réalité le temps cible de création de blocs de Bitcoin à 10 minutes et 0,3 seconde. Bien que cette erreur semble insignifiante, elle est liée à un autre problème plus grave.
Principe de l'attaque par distorsion du temps
L'attaque par distorsion du temps a été découverte pour la première fois en 2011, exploitant une erreur de Satoshi Nakamoto dans le calcul de la difficulté. Les attaquants peuvent réduire artificiellement la difficulté de minage en manipulant les horodatages des blocs.
Les étapes de l'attaque sont les suivantes :
Cette opération entraînera un décalage croissant entre le temps de la blockchain et le temps réel, tout en augmentant la difficulté. Cependant, à partir du deuxième cycle d'ajustement, la difficulté commencera à diminuer. Les attaquants peuvent exploiter ce mécanisme pour créer rapidement un grand nombre de blocs et obtenir des récompenses en Bitcoin excessives.
Faisabilité et limites de l'attaque
Bien que cette attaque ait un impact énorme en théorie, sa mise en œuvre pose certains défis :
Solutions potentielles
Il existe plusieurs façons de corriger cette vulnérabilité:
Changer l'algorithme d'ajustement de la difficulté, calculer la durée entre les différentes fenêtres de 2016 et corriger l'erreur de différence un. Mais cela pourrait nécessiter un hard fork.
Annuler la règle MTP, exigeant que le temps doit avancer dans chaque bloc. Mais cela pourrait entraîner un blocage du temps dans un avenir lointain, ou causer des problèmes dus à des différences d'horloge système.
Une solution plus simple consiste à exiger que le temps du premier bloc du nouveau cycle de difficulté ne soit pas antérieur à un certain nombre de minutes du dernier bloc de l'ancien cycle. La plage de temps actuellement discutée varie de 10 minutes à 2 heures.
Dans la dernière proposition de nettoyage du grand consensus, les développeurs suggèrent d'adopter une limite de 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 l'espace de manipulation à la baisse de la difficulté.
Quelle que soit la solution adoptée, la correction de cette vulnérabilité renforcera davantage la sécurité et la stabilité du réseau Bitcoin.