Bitcoin transactions répétées : un bug intéressant mais à très faible risque
Il existe un phénomène intéressant dans le réseau Bitcoin : deux ensembles de transactions complètement identiques. Cette situation est possible parce que 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 le même montant de Bitcoin à la même adresse et être construites de manière entièrement identique, les rendant complètement identiques. Étant donné que ces transactions sont identiques, leurs ID de transaction (TXID) correspondent également, car le TXID est le résumé de hachage des données de transaction.
Ces deux groupes de transactions répétées ont eu lieu du 14 au 15 novembre 2010, sur une période d'environ 16 heures. Le premier groupe de transactions répétées est coincé entre le deuxième groupe. Nous classons d5d2....8599 comme la première transaction répétée, car elle est devenue un duplicata en premier, même si elle apparaît pour la première fois sur la blockchain après une autre transaction répétée e3bf....b468.
Le montant total de Bitcoin impliqué dans ces transactions répétées est de 200 BTC, ou peut-être 100 BTC, selon la manière dont on le comprend. À ce jour, ces Bitcoins n'ont pas été utilisés. Théoriquement, la personne possédant la clé privée correspondante peut utiliser ces Bitcoins, mais une fois utilisés, les 50 BTC répétés ne pourront plus être utilisés et seront perdus, donc en réalité, seuls 100 BTC sont disponibles.
Les transactions en double posent clairement problème. Elles peuvent créer de la confusion pour les portefeuilles et les explorateurs de blocs, et rendre incertain l'origine du Bitcoin. Cela peut également conduire à des attaques et des vulnérabilités, comme le fait de payer quelqu'un deux fois avec deux transactions en double, alors qu'en réalité, seule la moitié des fonds peut être utilisée.
Pour résoudre ce problème, les développeurs ont proposé plusieurs améliorations :
BIP30 : un hard fork mis en œuvre en mars 2012, interdisant l'utilisation de TXID dupliqués pour les transactions, sauf si le TXID précédent a déjà été utilisé.
BIP34 : activé en mars 2013, exige que les transactions coinbase contiennent la hauteur du bloc, rendant toutes les transactions uniques.
En novembre 2015, les développeurs ont supprimé la vérification BIP30, car le BIP34 avait déjà résolu ce problème.
Cependant, le BIP34 n'est pas une solution parfaite. Dans certains blocs avant l'activation du BIP34, il existe des cas où le premier octet des scriptSigs des transactions coinbase correspond exactement à la future hauteur de bloc valide. Le prochain bloc susceptible de générer des transactions répétées est le 1,983,702, prévu pour être produit autour de janvier 2046.
Malgré cela, le coût et la difficulté d'exploiter cette vulnérabilité sont très élevés. Prenons le bloc 1,983,702 comme exemple, les mineurs doivent dépenser plus de 170 BTC(, soit environ 15 millions de dollars) au prix actuel, pour mener une attaque, et il n'y a presque aucun bénéfice réel.
Compte tenu de la difficulté et du coût de la copie des transactions, ainsi que de la rareté des opportunités d'en profiter, cette vulnérabilité ne constitue pas une menace majeure pour la sécurité du Bitcoin. Cependant, les développeurs pourraient encore chercher à corriger ce problème de manière exhaustive avant 2046, les méthodes possibles incluant l'application stricte de l'engagement SegWit.
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.
20 J'aime
Récompense
20
5
Partager
Commentaire
0/400
SmartContractPlumber
· Il y a 9h
Intéressant 0day, mais un peu comme un cas de test.
Voir l'originalRépondre0
GateUser-a5fa8bd0
· 07-14 21:40
C'était un vieux bug, pourquoi ne l'avons-nous pas utilisé à l'époque ?
Voir l'originalRépondre0
consensus_whisperer
· 07-14 21:39
C'est encore le vieux bug de Satoshi Nakamoto.
Voir l'originalRépondre0
SchrodingerWallet
· 07-14 21:34
La douleur au foie, ce bug est apparu dès le début.
Vulnérabilité de transaction répétée de Bitcoin : Problèmes historiques et défis futurs
Bitcoin transactions répétées : un bug intéressant mais à très faible risque
Il existe un phénomène intéressant dans le réseau Bitcoin : deux ensembles de transactions complètement identiques. Cette situation est possible parce que 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 le même montant de Bitcoin à la même adresse et être construites de manière entièrement identique, les rendant complètement identiques. Étant donné que ces transactions sont identiques, leurs ID de transaction (TXID) correspondent également, car le TXID est le résumé de hachage des données de transaction.
Ces deux groupes de transactions répétées ont eu lieu du 14 au 15 novembre 2010, sur une période d'environ 16 heures. Le premier groupe de transactions répétées est coincé entre le deuxième groupe. Nous classons d5d2....8599 comme la première transaction répétée, car elle est devenue un duplicata en premier, même si elle apparaît pour la première fois sur la blockchain après une autre transaction répétée e3bf....b468.
Le montant total de Bitcoin impliqué dans ces transactions répétées est de 200 BTC, ou peut-être 100 BTC, selon la manière dont on le comprend. À ce jour, ces Bitcoins n'ont pas été utilisés. Théoriquement, la personne possédant la clé privée correspondante peut utiliser ces Bitcoins, mais une fois utilisés, les 50 BTC répétés ne pourront plus être utilisés et seront perdus, donc en réalité, seuls 100 BTC sont disponibles.
Les transactions en double posent clairement problème. Elles peuvent créer de la confusion pour les portefeuilles et les explorateurs de blocs, et rendre incertain l'origine du Bitcoin. Cela peut également conduire à des attaques et des vulnérabilités, comme le fait de payer quelqu'un deux fois avec deux transactions en double, alors qu'en réalité, seule la moitié des fonds peut être utilisée.
Pour résoudre ce problème, les développeurs ont proposé plusieurs améliorations :
BIP30 : un hard fork mis en œuvre en mars 2012, interdisant l'utilisation de TXID dupliqués pour les transactions, sauf si le TXID précédent a déjà été utilisé.
BIP34 : activé en mars 2013, exige que les transactions coinbase contiennent la hauteur du bloc, rendant toutes les transactions uniques.
En novembre 2015, les développeurs ont supprimé la vérification BIP30, car le BIP34 avait déjà résolu ce problème.
Cependant, le BIP34 n'est pas une solution parfaite. Dans certains blocs avant l'activation du BIP34, il existe des cas où le premier octet des scriptSigs des transactions coinbase correspond exactement à la future hauteur de bloc valide. Le prochain bloc susceptible de générer des transactions répétées est le 1,983,702, prévu pour être produit autour de janvier 2046.
Malgré cela, le coût et la difficulté d'exploiter cette vulnérabilité sont très élevés. Prenons le bloc 1,983,702 comme exemple, les mineurs doivent dépenser plus de 170 BTC(, soit environ 15 millions de dollars) au prix actuel, pour mener une attaque, et il n'y a presque aucun bénéfice réel.
Compte tenu de la difficulté et du coût de la copie des transactions, ainsi que de la rareté des opportunités d'en profiter, cette vulnérabilité ne constitue pas une menace majeure pour la sécurité du Bitcoin. Cependant, les développeurs pourraient encore chercher à corriger ce problème de manière exhaustive avant 2046, les méthodes possibles incluant l'application stricte de l'engagement SegWit.