Bitcoin transactions répétées : une faille intéressante mais à très faible risque
Les transactions Bitcoin utilisent généralement des sorties non dépensées en citant l'ID de la précédente transaction. Ces sorties ne peuvent être dépensées qu'une seule fois, sinon cela entraînerait un problème de double dépense. Cependant, dans l'histoire du Bitcoin, il y a eu effectivement deux ensembles de transactions entièrement identiques. Cette situation est possible car les transactions coinbase n'ont pas d'entrées, mais génèrent directement de nouveaux jetons. Ainsi, deux transactions coinbase différentes peuvent envoyer la même quantité de jetons à la même adresse et être construites de manière totalement identique, les rendant ainsi complètement identiques. Étant donné que le contenu des transactions est identique, leurs ID de transaction le sont également.
Ces deux ensembles de transactions répétées ont eu lieu entre le 14 et le 15 novembre 2010, sur une période d'environ 16 heures. Bien que le premier ensemble de transactions répétées d5d2....8599 soit devenu une copie en premier, sa première apparition sur la blockchain est en réalité plus tardive que celle d'une autre transaction répétée e3bf....b468.
Il est intéressant de noter que différents explorateurs de blocs affichent ces transactions en double de manière différente. Certains affichent par défaut les blocs plus anciens, tandis que d'autres affichent les blocs plus récents.
Parmi les quatre blocs concernés, seul un bloc contient d'autres transactions, combinant les sorties de 1 BTC et 19 BTC en une sortie de 20 BTC.
Ces transactions répétées impliquent 200 BTC qui n'ont toujours pas été dépensés. Théoriquement, la personne possédant la clé privée associée peut dépenser ces Bitcoins, mais une fois dépensés, les 50 BTC répétés seront perdus, donc seuls 100 BTC sont réellement disponibles. Quant au bloc d'où ces jetons seront dépensés, cela ne peut pas encore être déterminé.
Les transactions répétées posent clairement de nombreux problèmes. Elles peuvent semer la confusion dans les portefeuilles et les explorateurs de blocs, et rendre flou l'origine des Bitcoins. Pire encore, elles peuvent être utilisées pour attaquer des institutions telles que les échanges.
Pour résoudre ce problème, un fork souple BIP30 a été mis en œuvre en mars 2012, interdisant l'utilisation d'identifiants de transaction en double pour les transactions. En septembre 2012, cette règle a été étendue pour s'appliquer à tous les blocs.
La bifurcation douce BIP34 activée en mars 2013 exigeait que les transactions coinbase contiennent la hauteur du bloc, ce qui a permis de résoudre davantage le problème des transactions en double. Par conséquent, en novembre 2015, le logiciel principal de Bitcoin a cessé de vérifier BIP30.
Cependant, le BIP34 n'est pas une solution parfaite. Dans certains blocs avant l'activation du BIP34, le premier octet du scriptSig de la transaction coinbase correspondait exactement à la hauteur de bloc valide future. Cela signifie qu'il est toujours possible d'avoir des transactions en double, le prochain bloc possible étant 1,983,702, qui devrait être produit vers janvier 2046.
Cependant, le coût d'exploitation de cette faille est très élevé. Prenons le bloc 1,983,702 comme exemple, les mineurs doivent dépenser environ 170 BTC, soit environ 15 millions de dollars au prix actuel. De plus, ces fonds ne pourront probablement pas être récupérés.
Compte tenu de la difficulté et du coût de la copie des transactions, ainsi que de la rareté des opportunités, cette faille ne constitue pas une menace principale pour la sécurité du Bitcoin. Néanmoins, les développeurs s'efforcent toujours de trouver des moyens de corriger complètement ce problème, ce qui pourrait nécessiter une mise à jour par soft fork.
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.
12 J'aime
Récompense
12
6
Partager
Commentaire
0/400
CafeMinor
· Il y a 10h
Avoir plus de protocoles ne garantit pas nécessairement une plus grande sécurité~
Voir l'originalRépondre0
MEVHunterBearish
· 07-18 00:45
Ce bug est vraiment ennuyeux à corriger...
Voir l'originalRépondre0
CompoundPersonality
· 07-18 00:42
Il y a quelques années, il y avait des failles, et cela faisait vraiment peur.
Voir l'originalRépondre0
screenshot_gains
· 07-18 00:42
Le code est toujours un piège.
Voir l'originalRépondre0
fren_with_benefits
· 07-18 00:34
Pourquoi les développeurs font-ils encore des histoires~
Vulnérabilité de répétition des transactions Bitcoin : études de cas historiques et analyse des risques futurs
Bitcoin transactions répétées : une faille intéressante mais à très faible risque
Les transactions Bitcoin utilisent généralement des sorties non dépensées en citant l'ID de la précédente transaction. Ces sorties ne peuvent être dépensées qu'une seule fois, sinon cela entraînerait un problème de double dépense. Cependant, dans l'histoire du Bitcoin, il y a eu effectivement deux ensembles de transactions entièrement identiques. Cette situation est possible car les transactions coinbase n'ont pas d'entrées, mais génèrent directement de nouveaux jetons. Ainsi, deux transactions coinbase différentes peuvent envoyer la même quantité de jetons à la même adresse et être construites de manière totalement identique, les rendant ainsi complètement identiques. Étant donné que le contenu des transactions est identique, leurs ID de transaction le sont également.
Ces deux ensembles de transactions répétées ont eu lieu entre le 14 et le 15 novembre 2010, sur une période d'environ 16 heures. Bien que le premier ensemble de transactions répétées d5d2....8599 soit devenu une copie en premier, sa première apparition sur la blockchain est en réalité plus tardive que celle d'une autre transaction répétée e3bf....b468.
Il est intéressant de noter que différents explorateurs de blocs affichent ces transactions en double de manière différente. Certains affichent par défaut les blocs plus anciens, tandis que d'autres affichent les blocs plus récents.
Parmi les quatre blocs concernés, seul un bloc contient d'autres transactions, combinant les sorties de 1 BTC et 19 BTC en une sortie de 20 BTC.
Ces transactions répétées impliquent 200 BTC qui n'ont toujours pas été dépensés. Théoriquement, la personne possédant la clé privée associée peut dépenser ces Bitcoins, mais une fois dépensés, les 50 BTC répétés seront perdus, donc seuls 100 BTC sont réellement disponibles. Quant au bloc d'où ces jetons seront dépensés, cela ne peut pas encore être déterminé.
Les transactions répétées posent clairement de nombreux problèmes. Elles peuvent semer la confusion dans les portefeuilles et les explorateurs de blocs, et rendre flou l'origine des Bitcoins. Pire encore, elles peuvent être utilisées pour attaquer des institutions telles que les échanges.
Pour résoudre ce problème, un fork souple BIP30 a été mis en œuvre en mars 2012, interdisant l'utilisation d'identifiants de transaction en double pour les transactions. En septembre 2012, cette règle a été étendue pour s'appliquer à tous les blocs.
La bifurcation douce BIP34 activée en mars 2013 exigeait que les transactions coinbase contiennent la hauteur du bloc, ce qui a permis de résoudre davantage le problème des transactions en double. Par conséquent, en novembre 2015, le logiciel principal de Bitcoin a cessé de vérifier BIP30.
Cependant, le BIP34 n'est pas une solution parfaite. Dans certains blocs avant l'activation du BIP34, le premier octet du scriptSig de la transaction coinbase correspondait exactement à la hauteur de bloc valide future. Cela signifie qu'il est toujours possible d'avoir des transactions en double, le prochain bloc possible étant 1,983,702, qui devrait être produit vers janvier 2046.
Cependant, le coût d'exploitation de cette faille est très élevé. Prenons le bloc 1,983,702 comme exemple, les mineurs doivent dépenser environ 170 BTC, soit environ 15 millions de dollars au prix actuel. De plus, ces fonds ne pourront probablement pas être récupérés.
Compte tenu de la difficulté et du coût de la copie des transactions, ainsi que de la rareté des opportunités, cette faille ne constitue pas une menace principale pour la sécurité du Bitcoin. Néanmoins, les développeurs s'efforcent toujours de trouver des moyens de corriger complètement ce problème, ce qui pourrait nécessiter une mise à jour par soft fork.