Bitcoin des transactions répétées : un bug intéressant mais à impact limité
Il existe une vulnérabilité intéressante dans le réseau Bitcoin - les transactions en double. Normalement, les transactions Bitcoin utilisent une sortie non dépensée en faisant référence à l'ID d'une transaction précédente. Ces sorties ne peuvent être dépensées qu'une seule fois, sinon cela entraînera un problème de double dépense. Cependant, dans l'histoire de Bitcoin, il y a effectivement eu deux ensembles de transactions complètement identiques.
Cette situation peut se produire car une transaction coinbase n'a pas d'entrée, mais génère directement de nouveaux jetons. Ainsi, deux transactions coinbase différentes peuvent envoyer le même nombre de Bitcoin à la même adresse, construisant ainsi des transactions identiques. Étant donné que le contenu des transactions est identique, leur ID de transaction (TXID) est également identique.
Ces deux ensembles 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 ensemble de transactions répétées a pour ID d5d2....8599, le deuxième ensemble est e3bf....b468. Fait intéressant, d5d2....8599, bien qu'il soit devenu une copie en premier, apparaît sur la blockchain après e3bf....b468.
Ces transactions répétées ont chacune une valeur de 50 BTC, totalisant 200 BTC. D'un certain point de vue, 100 BTC de ce total n'existent en réalité pas. À ce jour, ces 200 BTC n'ont pas été dépensés. Théoriquement, la personne possédant la clé privée correspondante peut dépenser ces Bitcoins, mais une fois dépensés, les 50 BTC en double seront perdus, donc en réalité, seuls 100 BTC peuvent être récupérés.
Les transactions répétées peuvent clairement créer de la confusion pour les portefeuilles et les explorateurs de blocs, et peuvent également être utilisées pour mener des attaques. Par exemple, un attaquant pourrait déposer des fonds sur une bourse avec deux transactions répétées, puis les retirer immédiatement, essayant de faire faillite la bourse.
Pour résoudre ce problème, la communauté Bitcoin a pris plusieurs mesures:
En mars 2012, la bifurcation douce BIP30 a interdit l'utilisation de TXID dupliqués pour les transactions, à moins que le TXID précédent ait été dépensé.
En septembre 2012, Greg Maxwell a modifié les règles pour appliquer la vérification BIP30 à tous les blocs, mais a conservé les deux transactions en double mentionnées précédemment.
En mars 2013, le BIP34 a exigé que les transactions coinbase incluent la hauteur du bloc, ce qui a fondamentalement résolu le problème des transactions en double.
En novembre 2015, le noyau Bitcoin a cessé d'effectuer les vérifications BIP30, car le BIP34 a déjà corrigé ce problème.
Cependant, dans certains blocs avant l'activation de BIP34, le premier octet des scriptSigs des transactions coinbase correspondait exactement à la hauteur de bloc qui sera valide à l'avenir. Cela signifie que le problème des transactions en double n'est pas entièrement résolu à 100 %. Le prochain bloc susceptible de présenter des transactions en double est le 1,983,702, prévu pour être produit vers janvier 2046.
Cependant, le coût d'exploitation de cette vulnérabilité est très élevé. Prenons le bloc 1,983,702 comme exemple, les attaquants doivent brûler environ 170 BTC de frais, soit environ 15 millions de dollars au prix actuel. De plus, ces fonds sont très probablement irrécupérables. En outre, depuis la mise à niveau SegWit en 2017, les transactions coinbase contiennent également un engagement sur toutes les transactions dans le bloc, ce qui augmente encore la difficulté de l'attaque.
Compte tenu de la difficulté et du coût de la copie des transactions, ainsi que de la rareté des opportunités, cette vulnérabilité ne constitue pas une menace majeure pour la sécurité de Bitcoin. Néanmoins, les développeurs continuent de travailler à des solutions correctives, qui pourraient nécessiter une mise en œuvre par le biais d'un soft fork. Une approche possible consiste à imposer le respect de l'engagement SegWit.
Dans l'ensemble, bien que la vulnérabilité des transactions répétées soit intéressante, son impact réel est très limité. Elle reflète davantage la complexité du réseau Bitcoin et les efforts continus des développeurs pour améliorer le système.
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.
9 J'aime
Récompense
9
6
Partager
Commentaire
0/400
ArbitrageBot
· Il y a 8h
Avoir des bugs, c'est avoir de l'argent à gagner.
Voir l'originalRépondre0
LiquidationSurvivor
· Il y a 8h
Tu corriges les bugs, j'augmente la position~
Voir l'originalRépondre0
PebbleHander
· Il y a 8h
Tu n'as toujours pas fini de réparer?
Voir l'originalRépondre0
ShibaMillionairen't
· Il y a 8h
Chang'an n'est pas si bien, c'est toujours compliqué.
Voir l'originalRépondre0
ImpermanentTherapist
· Il y a 8h
Le nœud a des problèmes, tout le monde s'y attendait déjà.
Vulnérabilité des transactions répétées de Bitcoin : Anecdotes historiques et défis futurs
Bitcoin des transactions répétées : un bug intéressant mais à impact limité
Il existe une vulnérabilité intéressante dans le réseau Bitcoin - les transactions en double. Normalement, les transactions Bitcoin utilisent une sortie non dépensée en faisant référence à l'ID d'une transaction précédente. Ces sorties ne peuvent être dépensées qu'une seule fois, sinon cela entraînera un problème de double dépense. Cependant, dans l'histoire de Bitcoin, il y a effectivement eu deux ensembles de transactions complètement identiques.
Cette situation peut se produire car une transaction coinbase n'a pas d'entrée, mais génère directement de nouveaux jetons. Ainsi, deux transactions coinbase différentes peuvent envoyer le même nombre de Bitcoin à la même adresse, construisant ainsi des transactions identiques. Étant donné que le contenu des transactions est identique, leur ID de transaction (TXID) est également identique.
Ces deux ensembles 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 ensemble de transactions répétées a pour ID d5d2....8599, le deuxième ensemble est e3bf....b468. Fait intéressant, d5d2....8599, bien qu'il soit devenu une copie en premier, apparaît sur la blockchain après e3bf....b468.
Ces transactions répétées ont chacune une valeur de 50 BTC, totalisant 200 BTC. D'un certain point de vue, 100 BTC de ce total n'existent en réalité pas. À ce jour, ces 200 BTC n'ont pas été dépensés. Théoriquement, la personne possédant la clé privée correspondante peut dépenser ces Bitcoins, mais une fois dépensés, les 50 BTC en double seront perdus, donc en réalité, seuls 100 BTC peuvent être récupérés.
Les transactions répétées peuvent clairement créer de la confusion pour les portefeuilles et les explorateurs de blocs, et peuvent également être utilisées pour mener des attaques. Par exemple, un attaquant pourrait déposer des fonds sur une bourse avec deux transactions répétées, puis les retirer immédiatement, essayant de faire faillite la bourse.
Pour résoudre ce problème, la communauté Bitcoin a pris plusieurs mesures:
En mars 2012, la bifurcation douce BIP30 a interdit l'utilisation de TXID dupliqués pour les transactions, à moins que le TXID précédent ait été dépensé.
En septembre 2012, Greg Maxwell a modifié les règles pour appliquer la vérification BIP30 à tous les blocs, mais a conservé les deux transactions en double mentionnées précédemment.
En mars 2013, le BIP34 a exigé que les transactions coinbase incluent la hauteur du bloc, ce qui a fondamentalement résolu le problème des transactions en double.
En novembre 2015, le noyau Bitcoin a cessé d'effectuer les vérifications BIP30, car le BIP34 a déjà corrigé ce problème.
Cependant, dans certains blocs avant l'activation de BIP34, le premier octet des scriptSigs des transactions coinbase correspondait exactement à la hauteur de bloc qui sera valide à l'avenir. Cela signifie que le problème des transactions en double n'est pas entièrement résolu à 100 %. Le prochain bloc susceptible de présenter des transactions en double est le 1,983,702, prévu pour être produit vers janvier 2046.
Cependant, le coût d'exploitation de cette vulnérabilité est très élevé. Prenons le bloc 1,983,702 comme exemple, les attaquants doivent brûler environ 170 BTC de frais, soit environ 15 millions de dollars au prix actuel. De plus, ces fonds sont très probablement irrécupérables. En outre, depuis la mise à niveau SegWit en 2017, les transactions coinbase contiennent également un engagement sur toutes les transactions dans le bloc, ce qui augmente encore la difficulté de l'attaque.
Compte tenu de la difficulté et du coût de la copie des transactions, ainsi que de la rareté des opportunités, cette vulnérabilité ne constitue pas une menace majeure pour la sécurité de Bitcoin. Néanmoins, les développeurs continuent de travailler à des solutions correctives, qui pourraient nécessiter une mise en œuvre par le biais d'un soft fork. Une approche possible consiste à imposer le respect de l'engagement SegWit.
Dans l'ensemble, bien que la vulnérabilité des transactions répétées soit intéressante, son impact réel est très limité. Elle reflète davantage la complexité du réseau Bitcoin et les efforts continus des développeurs pour améliorer le système.