Bitcoin des transactions répétées : une faille intéressante mais peu risquée
Aperçu
Les transactions Bitcoin utilisent généralement des sorties non dépensées en se référant à l'ID de la transaction précédente. Ces sorties ne peuvent être dépensées qu'une seule fois, sinon un double paiement pourrait se produire. Cependant, dans l'histoire du Bitcoin, il y a eu effectivement deux ensembles de transactions complètement identiques. Cela est dû au fait que les transactions coinbase n'ont pas d'entrées, mais génèrent de nouveaux jetons. Par conséquent, deux transactions coinbase différentes peuvent potentiellement envoyer la même quantité de jetons à la même adresse, de manière entièrement identique, produisant ainsi la même transaction.
Ces deux ensembles de transactions répétées se sont produits entre le 14 et le 15 novembre 2010, sur une période d'environ 16 heures. Le premier ensemble de transactions répétées se situe entre le deuxième ensemble. Nous classons les ID de transaction commençant par d5d2 comme la première transaction répétée, même si elle apparaît pour la première fois sur la blockchain plus tard qu'une autre transaction répétée.
Détails des transactions répétées
Ces transactions répétées ont chacune une valeur de 50 BTC, impliquant un total de 200 BTC, ou en d'autres termes, 100 BTC sont comptés deux fois. À ce jour, ces 200 BTC n'ont pas été dépensés. En théorie, la personne détenant les clés privées correspondantes peut dépenser ces bitcoins. Mais une fois dépensés, les 50 BTC répétés ne pourront plus être utilisés. Quant à quel bloc ces jetons seront dépensés, cela peut être indéfini.
Problème de transactions répétées
Les transactions répétées peuvent créer de la confusion pour les portefeuilles et les explorateurs de blocs, et peuvent également entraîner une incertitude sur l'origine du Bitcoin. Cela peut également être utilisé pour des attaques, comme payer deux fois quelqu'un alors qu'en réalité, seule la moitié des fonds est disponible.
Solution
Pour atténuer ce problème, un soft fork BIP30 a été mis en œuvre en mars 2012, interdisant l'utilisation de TXID dupliqués pour les transactions. En septembre 2012, cette règle a été modifiée pour s'appliquer à tous les blocs.
Le soft fork BIP34 activé en mars 2013 exige que les transactions coinbase incluent la hauteur du bloc, ce qui résout fondamentalement le problème des transactions en double. Par la suite, les nœuds ont cessé de vérifier le coûteux BIP30.
Cependant, certains scriptSig de transactions coinbase avant BIP34 ont leur premier octet qui correspond exactement à la hauteur de bloc valide future. Cela signifie qu'il existe encore une très faible possibilité de duplication.
Risques potentiels futurs
Le prochain bloc susceptible de générer des transactions en double est 1,983,702, prévu pour être produit vers janvier 2046. Cependant, le coût d'exploitation de cette faille dépassera 15 millions de dollars et sera presque inutile.
Le prochain bloc vulnérable devrait apparaître en 2078. Mais à ce moment-là, le coût d'exploitation de cette vulnérabilité pourrait être plus élevé.
Conclusion
Compte tenu de la difficulté, du coût et des très rares opportunités de copier les transactions, cette vulnérabilité ne constitue pas une menace majeure pour la sécurité de Bitcoin. Néanmoins, les développeurs ont investi beaucoup d'efforts sur ce problème au fil des ans, et 2046 pourrait être la date limite pour le résoudre complètement. La solution pourrait nécessiter un soft fork, comme l'application obligatoire 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.
7 J'aime
Récompense
7
4
Partager
Commentaire
0/400
MoonRocketman
· Il y a 3h
Il est conseillé de mettre en place un système d'alerte RSI pour surveiller la probabilité d'intrusion répétée sur la trajectoire.
Voir l'originalRépondre0
MetaverseHermit
· 07-30 21:17
Ah, cette double dépense a été découverte depuis longtemps.
Voir l'originalRépondre0
MetaverseLandlord
· 07-30 19:27
Eh bien, tu as déterré un bug de l'ère primitive.
Voir l'originalRépondre0
DefiOldTrickster
· 07-30 19:16
Oh ? Les vieilles histoires de Mining d'autrefois ont vraiment été déterrées par les jeunes... Devine combien de profits cette transaction répétée a piégé à l'époque ?
Bitcoin transactions répétées : analyse des vulnérabilités historiques et des risques potentiels futurs
Bitcoin des transactions répétées : une faille intéressante mais peu risquée
Aperçu
Les transactions Bitcoin utilisent généralement des sorties non dépensées en se référant à l'ID de la transaction précédente. Ces sorties ne peuvent être dépensées qu'une seule fois, sinon un double paiement pourrait se produire. Cependant, dans l'histoire du Bitcoin, il y a eu effectivement deux ensembles de transactions complètement identiques. Cela est dû au fait que les transactions coinbase n'ont pas d'entrées, mais génèrent de nouveaux jetons. Par conséquent, deux transactions coinbase différentes peuvent potentiellement envoyer la même quantité de jetons à la même adresse, de manière entièrement identique, produisant ainsi la même transaction.
Ces deux ensembles de transactions répétées se sont produits entre le 14 et le 15 novembre 2010, sur une période d'environ 16 heures. Le premier ensemble de transactions répétées se situe entre le deuxième ensemble. Nous classons les ID de transaction commençant par d5d2 comme la première transaction répétée, même si elle apparaît pour la première fois sur la blockchain plus tard qu'une autre transaction répétée.
Détails des transactions répétées
Ces transactions répétées ont chacune une valeur de 50 BTC, impliquant un total de 200 BTC, ou en d'autres termes, 100 BTC sont comptés deux fois. À ce jour, ces 200 BTC n'ont pas été dépensés. En théorie, la personne détenant les clés privées correspondantes peut dépenser ces bitcoins. Mais une fois dépensés, les 50 BTC répétés ne pourront plus être utilisés. Quant à quel bloc ces jetons seront dépensés, cela peut être indéfini.
Problème de transactions répétées
Les transactions répétées peuvent créer de la confusion pour les portefeuilles et les explorateurs de blocs, et peuvent également entraîner une incertitude sur l'origine du Bitcoin. Cela peut également être utilisé pour des attaques, comme payer deux fois quelqu'un alors qu'en réalité, seule la moitié des fonds est disponible.
Solution
Pour atténuer ce problème, un soft fork BIP30 a été mis en œuvre en mars 2012, interdisant l'utilisation de TXID dupliqués pour les transactions. En septembre 2012, cette règle a été modifiée pour s'appliquer à tous les blocs.
Le soft fork BIP34 activé en mars 2013 exige que les transactions coinbase incluent la hauteur du bloc, ce qui résout fondamentalement le problème des transactions en double. Par la suite, les nœuds ont cessé de vérifier le coûteux BIP30.
Cependant, certains scriptSig de transactions coinbase avant BIP34 ont leur premier octet qui correspond exactement à la hauteur de bloc valide future. Cela signifie qu'il existe encore une très faible possibilité de duplication.
Risques potentiels futurs
Le prochain bloc susceptible de générer des transactions en double est 1,983,702, prévu pour être produit vers janvier 2046. Cependant, le coût d'exploitation de cette faille dépassera 15 millions de dollars et sera presque inutile.
Le prochain bloc vulnérable devrait apparaître en 2078. Mais à ce moment-là, le coût d'exploitation de cette vulnérabilité pourrait être plus élevé.
Conclusion
Compte tenu de la difficulté, du coût et des très rares opportunités de copier les transactions, cette vulnérabilité ne constitue pas une menace majeure pour la sécurité de Bitcoin. Néanmoins, les développeurs ont investi beaucoup d'efforts sur ce problème au fil des ans, et 2046 pourrait être la date limite pour le résoudre complètement. La solution pourrait nécessiter un soft fork, comme l'application obligatoire de l'engagement SegWit.