Vulnérabilité de l'attaque par distorsion temporelle du protocole Bitcoin et sa réparation
Le 26 mars 2025, les développeurs de Bitcoin ont proposé une proposition de fork doux appelée "Nettoyage du Grand Consensus", 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 connue sous le nom d'"attaque par distorsion temporelle", que nous allons explorer en profondeur dans cet article.
Mécanisme de protection des timestamps de bloc 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) : le timestamp du bloc doit être postérieur au temps médian des 11 blocs précédents.
Règles futures de temps de bloc : l'horodatage du bloc ne peut pas être en avance de plus de 2 heures par rapport à la médiane de temps des pairs de nœud. L'écart maximal autorisé entre l'heure fournie par le nœud et l'horloge système locale est de 90 minutes.
Ces règles visent à garantir que les horodatages des blocs ne soient ni trop en retard ni trop en avance. Cependant, les attaques par distorsion temporelle sont réalisées en falsifiant les horodatages, les faisant revenir loin dans le passé.
L'erreur "il manque un" de Satoshi Nakamoto
Le cycle d'ajustement de la difficulté du Bitcoin comprend 2016 blocs, calculé sur un objectif de 10 minutes par bloc, 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 dans la fenêtre des 2016 blocs concernés. Cependant, Satoshi Nakamoto a commis une petite erreur dans le calcul du temps cible : il a utilisé 2016 au lieu de 2015 comme multiplicateur.
Cette erreur a entraîné un temps cible supérieur de 0,05 % à ce qu'il aurait dû être, rendant l'intervalle de temps cible réel pour Bitcoin de 10 minutes et 0,3 seconde. Bien que cette erreur semble insignifiante, elle a semé les graines d'une vulnérabilité plus grave.
Principe de l'attaque par distorsion temporelle
L'attaque par distorsion temporelle exploite une erreur de Satoshi Nakamoto dans le calcul de la difficulté. L'attaquant manipule les horodatages des blocs pour faire avancer la blockchain lentement dans le temps, tout en respectant les règles MTP. Plus précisément, l'attaquant peut :
Pour la plupart des blocs, réglez l'horodatage à une seconde avant le bloc précédent.
Le timestamp n'est avancé d'une seconde que tous les six blocs.
Dans le dernier bloc de chaque période d'ajustement de difficulté, définissez le timestamp sur l'heure du monde réel.
Le timestamp du premier bloc du prochain cycle d'ajustement de la difficulté retourne à nouveau dans le passé.
Cette opération entraîne un décalage croissant entre le temps de la blockchain et le temps réel, tout en augmentant constamment la difficulté. Cependant, après le deuxième cycle d'ajustement, la difficulté commencera à s'ajuster à la baisse, permettant aux attaquants de créer des blocs à une vitesse très rapide, créant potentiellement un grand nombre de Bitcoin.
Faisabilité et limitations de l'attaque
Bien que ce type d'attaque soit théoriquement destructeur, sa mise en œuvre présente 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é de l'attaque.
Les règles MTP et le timestamp des mineurs honnêtes limitent le degré de rétroaction des timestamps malveillants.
Le processus d'attaque peut être observé publiquement, donnant à la communauté le temps d'effectuer des réparations d'urgence.
Solution
Pour prévenir les attaques de distorsion temporelle, la proposition suggère d'ajouter une règle simple au début d'un nouveau cycle de difficulté : exiger que le temps du premier bloc du nouveau cycle ne soit pas antérieur à une période de temps spécifique avant le dernier bloc du cycle précédent. La période de temps actuellement discutée varie de 10 minutes à 2 heures.
Dans la dernière proposition de nettoyage du grand consensus, cette période a été fixée à 2 heures. Cette limitation ne représente que 0,6 % du temps cible du cycle d'ajustement de la difficulté, limitant ainsi efficacement la capacité à manipuler la difficulté à la baisse.
Cette méthode est plus simple que de modifier directement l'algorithme d'ajustement de la difficulté et ne nécessite pas de hard fork. Elle peut à la fois prévenir efficacement les attaques par déformation temporelle et minimiser le risque de blocs invalides inattendus, tout en restant conforme aux règles existantes sur les horodatages des futurs blocs.
En mettant en œuvre cette correction, le réseau Bitcoin sera en mesure de mieux résister aux attaques potentielles de manipulation du temps, renforçant ainsi sa sécurité et sa stabilité.
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
17 J'aime
Récompense
17
5
Partager
Commentaire
0/400
JustHodlIt
· 07-11 01:42
On se sent plus en sécurité, c'est stable, c'est stable~
Voir l'originalRépondre0
SchrodingerWallet
· 07-10 02:19
Les failles sont corrigées, c'est simple et direct.
Voir l'originalRépondre0
DefiEngineerJack
· 07-10 02:19
*en fait* un autre patch de sécurité non trivial qui prouve la supériorité de pow... j'ai vu de pires exploits en pos pour être honnête
Voir l'originalRépondre0
ProbablyNothing
· 07-10 01:57
btc corrige la vulnérabilité, ça devrait être stable maintenant.
Voir l'originalRépondre0
MemecoinResearcher
· 07-10 01:53
correctif basé sur le protocole, mais pouvons-nous obtenir une signification statistique ?
Bitcoin protocole corrige la vulnérabilité des attaques par distorsion du temps : analyse de la proposition de nettoyage du consensus.
Vulnérabilité de l'attaque par distorsion temporelle du protocole Bitcoin et sa réparation
Le 26 mars 2025, les développeurs de Bitcoin ont proposé une proposition de fork doux appelée "Nettoyage du Grand Consensus", 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 connue sous le nom d'"attaque par distorsion temporelle", que nous allons explorer en profondeur dans cet article.
Mécanisme de protection des timestamps de bloc 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) : le timestamp du bloc doit être postérieur au temps médian des 11 blocs précédents.
Règles futures de temps de bloc : l'horodatage du bloc ne peut pas être en avance de plus de 2 heures par rapport à la médiane de temps des pairs de nœud. L'écart maximal autorisé entre l'heure fournie par le nœud et l'horloge système locale est de 90 minutes.
Ces règles visent à garantir que les horodatages des blocs ne soient ni trop en retard ni trop en avance. Cependant, les attaques par distorsion temporelle sont réalisées en falsifiant les horodatages, les faisant revenir loin dans le passé.
L'erreur "il manque un" de Satoshi Nakamoto
Le cycle d'ajustement de la difficulté du Bitcoin comprend 2016 blocs, calculé sur un objectif de 10 minutes par bloc, 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 dans la fenêtre des 2016 blocs concernés. Cependant, Satoshi Nakamoto a commis une petite erreur dans le calcul du temps cible : il a utilisé 2016 au lieu de 2015 comme multiplicateur.
Cette erreur a entraîné un temps cible supérieur de 0,05 % à ce qu'il aurait dû être, rendant l'intervalle de temps cible réel pour Bitcoin de 10 minutes et 0,3 seconde. Bien que cette erreur semble insignifiante, elle a semé les graines d'une vulnérabilité plus grave.
Principe de l'attaque par distorsion temporelle
L'attaque par distorsion temporelle exploite une erreur de Satoshi Nakamoto dans le calcul de la difficulté. L'attaquant manipule les horodatages des blocs pour faire avancer la blockchain lentement dans le temps, tout en respectant les règles MTP. Plus précisément, l'attaquant peut :
Cette opération entraîne un décalage croissant entre le temps de la blockchain et le temps réel, tout en augmentant constamment la difficulté. Cependant, après le deuxième cycle d'ajustement, la difficulté commencera à s'ajuster à la baisse, permettant aux attaquants de créer des blocs à une vitesse très rapide, créant potentiellement un grand nombre de Bitcoin.
Faisabilité et limitations de l'attaque
Bien que ce type d'attaque soit théoriquement destructeur, sa mise en œuvre présente de nombreux défis :
Solution
Pour prévenir les attaques de distorsion temporelle, la proposition suggère d'ajouter une règle simple au début d'un nouveau cycle de difficulté : exiger que le temps du premier bloc du nouveau cycle ne soit pas antérieur à une période de temps spécifique avant le dernier bloc du cycle précédent. La période de temps actuellement discutée varie de 10 minutes à 2 heures.
Dans la dernière proposition de nettoyage du grand consensus, cette période a été fixée à 2 heures. Cette limitation ne représente que 0,6 % du temps cible du cycle d'ajustement de la difficulté, limitant ainsi efficacement la capacité à manipuler la difficulté à la baisse.
Cette méthode est plus simple que de modifier directement l'algorithme d'ajustement de la difficulté et ne nécessite pas de hard fork. Elle peut à la fois prévenir efficacement les attaques par déformation temporelle et minimiser le risque de blocs invalides inattendus, tout en restant conforme aux règles existantes sur les horodatages des futurs blocs.
En mettant en œuvre cette correction, le réseau Bitcoin sera en mesure de mieux résister aux attaques potentielles de manipulation du temps, renforçant ainsi sa sécurité et sa stabilité.