Phénomène de duplication des transactions Bitcoin : un cas spécial à faible risque mais intéressant
Les transactions Bitcoin utilisent généralement des sorties non dépensées en référant à l'ID de la transaction précédente. Ces sorties ne peuvent être utilisées qu'une seule fois, sinon cela entraînera un problème de double dépense. Cependant, il existe deux ensembles de transactions complètement identiques dans le système Bitcoin. Cette situation se produit parce 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 envoyer le même montant à la même adresse, et la façon dont elles sont construites est également complètement identique, entraînant des transactions complètement identiques. Étant donné que le contenu des transactions est le même, leurs ID de transaction correspondront également, car l'ID de transaction est le hash des données de la transaction. À moins qu'une collision de hash ne se produise, il est impossible d'avoir des ID de transaction en double, et les collisions de hash ne se sont jamais produites dans Bitcoin ou dans tout autre système.
Ces deux ensembles de transactions répétées se sont produites 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 (d5d2....8599), bien qu'apparue plus tard sur la blockchain que l'autre ensemble, est considéré comme le premier duplicata.
On peut voir à partir de la capture d'écran de l'explorateur de blocs que la première transaction répétée apparaît dans deux blocs différents. Fait intéressant, le comportement par défaut de différents explorateurs de blocs pour afficher ces transactions répétées est différent. Parmi les quatre blocs concernés, un seul bloc contient d'autres transactions.
Le montant total des Bitcoins impliqués dans ces transactions répétées est de 200 BTC, mais en réalité, seuls 100 BTC existent réellement. À ce jour, ces 200 BTC n'ont pas été utilisés. En théorie, si quelqu'un possède les clés privées associées, il pourrait utiliser ces Bitcoins. Mais une fois utilisés, les 50 BTC répétées ne pourront plus être utilisées. Quant à partir de quel bloc ils seront déduits lors de l'utilisation, cela pourrait être incertain.
Les transactions répétées peuvent causer de la confusion pour les portefeuilles et les explorateurs de blocs, et peuvent également être utilisées pour des attaques frauduleuses. Pour résoudre ce problème, un soft fork BIP30 a été mis en œuvre en mars 2012, interdisant l'utilisation d'ID de transaction répétés, sauf si la transaction précédente a été utilisée. En septembre de la même année, cette règle a été modifiée pour s'appliquer à tous les blocs, mais a conservé les deux premières transactions répétées comme exceptions.
Le BIP34, activé en mars 2013, exige que les transactions coinbase contiennent la hauteur du bloc, ce qui résout en grande partie le problème des transactions répétées. Cependant, dans certains blocs précédant l'activation du BIP34, le premier octet du scriptSig de la transaction coinbase correspondait exactement à la hauteur de bloc qui sera valide dans le futur, ce qui signifie qu'il existe toujours un potentiel de répétition.
Le prochain bloc susceptible de provoquer des transactions répétées est le 1,983,702, qui devrait être généré vers janvier 2046. Coûtant très cher à exploiter, ce défaut pourrait dépasser 15 millions de dollars, et il n'apporte pratiquement aucun avantage réel à l'attaquant. Les blocs vulnérables suivants n'apparaîtront qu'en 2078.
Compte tenu de la difficulté et du coût d'exploitation de cette vulnérabilité, ainsi que de la rareté des opportunités, le problème des transactions répétées ne constitue pas une menace majeure pour la sécurité de Bitcoin. Cependant, compte tenu de l'intervalle de temps impliqué et de l'unicité du problème, c'est tout de même un sujet de réflexion. Les développeurs de Bitcoin pourraient chercher à résoudre ce problème de manière définitive avant 2046, probablement par le biais d'un soft fork. Une solution possible serait d'imposer 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.
13 J'aime
Récompense
13
5
Reposter
Partager
Commentaire
0/400
RektDetective
· 08-12 13:26
En 2010, à cette époque, un BTC ne coûtait que quelques centimes.
Les transactions répétées rares dans l'histoire du Bitcoin : discussion sur les risques potentiels futurs et les solutions.
Phénomène de duplication des transactions Bitcoin : un cas spécial à faible risque mais intéressant
Les transactions Bitcoin utilisent généralement des sorties non dépensées en référant à l'ID de la transaction précédente. Ces sorties ne peuvent être utilisées qu'une seule fois, sinon cela entraînera un problème de double dépense. Cependant, il existe deux ensembles de transactions complètement identiques dans le système Bitcoin. Cette situation se produit parce 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 envoyer le même montant à la même adresse, et la façon dont elles sont construites est également complètement identique, entraînant des transactions complètement identiques. Étant donné que le contenu des transactions est le même, leurs ID de transaction correspondront également, car l'ID de transaction est le hash des données de la transaction. À moins qu'une collision de hash ne se produise, il est impossible d'avoir des ID de transaction en double, et les collisions de hash ne se sont jamais produites dans Bitcoin ou dans tout autre système.
Ces deux ensembles de transactions répétées se sont produites 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 (d5d2....8599), bien qu'apparue plus tard sur la blockchain que l'autre ensemble, est considéré comme le premier duplicata.
On peut voir à partir de la capture d'écran de l'explorateur de blocs que la première transaction répétée apparaît dans deux blocs différents. Fait intéressant, le comportement par défaut de différents explorateurs de blocs pour afficher ces transactions répétées est différent. Parmi les quatre blocs concernés, un seul bloc contient d'autres transactions.
Le montant total des Bitcoins impliqués dans ces transactions répétées est de 200 BTC, mais en réalité, seuls 100 BTC existent réellement. À ce jour, ces 200 BTC n'ont pas été utilisés. En théorie, si quelqu'un possède les clés privées associées, il pourrait utiliser ces Bitcoins. Mais une fois utilisés, les 50 BTC répétées ne pourront plus être utilisées. Quant à partir de quel bloc ils seront déduits lors de l'utilisation, cela pourrait être incertain.
Les transactions répétées peuvent causer de la confusion pour les portefeuilles et les explorateurs de blocs, et peuvent également être utilisées pour des attaques frauduleuses. Pour résoudre ce problème, un soft fork BIP30 a été mis en œuvre en mars 2012, interdisant l'utilisation d'ID de transaction répétés, sauf si la transaction précédente a été utilisée. En septembre de la même année, cette règle a été modifiée pour s'appliquer à tous les blocs, mais a conservé les deux premières transactions répétées comme exceptions.
Le BIP34, activé en mars 2013, exige que les transactions coinbase contiennent la hauteur du bloc, ce qui résout en grande partie le problème des transactions répétées. Cependant, dans certains blocs précédant l'activation du BIP34, le premier octet du scriptSig de la transaction coinbase correspondait exactement à la hauteur de bloc qui sera valide dans le futur, ce qui signifie qu'il existe toujours un potentiel de répétition.
Le prochain bloc susceptible de provoquer des transactions répétées est le 1,983,702, qui devrait être généré vers janvier 2046. Coûtant très cher à exploiter, ce défaut pourrait dépasser 15 millions de dollars, et il n'apporte pratiquement aucun avantage réel à l'attaquant. Les blocs vulnérables suivants n'apparaîtront qu'en 2078.
Compte tenu de la difficulté et du coût d'exploitation de cette vulnérabilité, ainsi que de la rareté des opportunités, le problème des transactions répétées ne constitue pas une menace majeure pour la sécurité de Bitcoin. Cependant, compte tenu de l'intervalle de temps impliqué et de l'unicité du problème, c'est tout de même un sujet de réflexion. Les développeurs de Bitcoin pourraient chercher à résoudre ce problème de manière définitive avant 2046, probablement par le biais d'un soft fork. Une solution possible serait d'imposer l'engagement SegWit.