Bitcoin transactions répétées : un cas rare mais intéressant
Les transactions Bitcoin sont généralement effectuées en citant l'ID d'une transaction précédente pour utiliser des sorties non dépensées. 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 eu effectivement deux ensembles de transactions complètement identiques. Cette situation peut se produire 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 jetons à la même adresse, construisant ainsi des transactions complètement identiques. Étant donné que ces transactions ont le même contenu, leurs ID de transaction sont également identiques.
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. Le premier ensemble de transactions répétées est inséré entre le deuxième ensemble. Nous classons les transactions dont l'ID commence par d5d2 comme la première transaction répétée, bien qu'elle soit apparue sur la blockchain plus tard qu'une autre transaction répétée.
Dans certains explorateurs de blocs, il est possible de voir que ces transactions répétées apparaissent dans différents blocs. Différents explorateurs de blocs peuvent avoir des comportements par défaut différents lorsqu'ils affichent ces transactions répétées.
Ces transactions répétées impliquent chacune 50 BTC, totalisant 200 BTC. À ce jour, ces Bitcoins n'ont pas encore été dépensés. Théoriquement, si quelqu'un possède la clé privée correspondante, il pourrait dépenser ces Bitcoins. Mais une fois dépensés, les 50 BTC répétés seront perdus, donc il ne reste que 100 BTC réellement disponibles. En ce qui concerne le bloc d'où ces jetons seront dépensés, ce n'est pas encore certain.
Les transactions répétées entraînent manifestement certains problèmes. Elles peuvent créer de la confusion pour les portefeuilles et les explorateurs de blocs, et rendre difficile la détermination de l'origine des Bitcoins. Cela pourrait également être utilisé pour certaines attaques, comme le dépôt répété sur les échanges.
Pour résoudre ce problème, en mars 2012, Bitcoin a mis en œuvre BIP30 par un fork doux, interdisant l'utilisation d'identifiants de transaction dupliqués pour les transactions. En septembre 2012, une modification supplémentaire a été apportée, rendant la vérification de BIP30 applicable à tous les blocs, à l'exception des deux groupes de transactions dupliquées mentionnés précédemment.
En mars 2013, Bitcoin a de nouveau activé le soft fork BIP34, exigeant que les transactions coinbase contiennent des informations sur la hauteur du bloc. Cela semble résoudre complètement le problème des transactions en double, théoriquement toutes les transactions devraient être uniques.
Cependant, dans certains blocs avant l'activation de BIP34, il y a encore quelques transactions coinbase dont le premier octet du scriptSig correspond exactement à la hauteur des blocs valides futurs. Cela signifie que dans des cas extrêmement rares, des transactions répétées peuvent encore se produire. Le prochain bloc susceptible de contenir des transactions répétées est le 1,983,702, qui devrait être généré autour de janvier 2046.
Cependant, compte tenu de la difficulté et du coût de la réplication de ce type de transaction, ainsi que de la rareté des opportunités de l'exploiter, cette vulnérabilité n'est pas une menace principale pour la sécurité de Bitcoin. Néanmoins, les développeurs continuent d'étudier des méthodes pour résoudre ce problème de manière définitive, ce qui pourrait nécessiter une mise à jour par soft fork. Une solution possible serait d'imposer le respect 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.
Un phénomène rare dans l'histoire du Bitcoin : les transactions répétées et leur évolution
Bitcoin transactions répétées : un cas rare mais intéressant
Les transactions Bitcoin sont généralement effectuées en citant l'ID d'une transaction précédente pour utiliser des sorties non dépensées. 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 eu effectivement deux ensembles de transactions complètement identiques. Cette situation peut se produire 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 jetons à la même adresse, construisant ainsi des transactions complètement identiques. Étant donné que ces transactions ont le même contenu, leurs ID de transaction sont également identiques.
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. Le premier ensemble de transactions répétées est inséré entre le deuxième ensemble. Nous classons les transactions dont l'ID commence par d5d2 comme la première transaction répétée, bien qu'elle soit apparue sur la blockchain plus tard qu'une autre transaction répétée.
Dans certains explorateurs de blocs, il est possible de voir que ces transactions répétées apparaissent dans différents blocs. Différents explorateurs de blocs peuvent avoir des comportements par défaut différents lorsqu'ils affichent ces transactions répétées.
Ces transactions répétées impliquent chacune 50 BTC, totalisant 200 BTC. À ce jour, ces Bitcoins n'ont pas encore été dépensés. Théoriquement, si quelqu'un possède la clé privée correspondante, il pourrait dépenser ces Bitcoins. Mais une fois dépensés, les 50 BTC répétés seront perdus, donc il ne reste que 100 BTC réellement disponibles. En ce qui concerne le bloc d'où ces jetons seront dépensés, ce n'est pas encore certain.
Les transactions répétées entraînent manifestement certains problèmes. Elles peuvent créer de la confusion pour les portefeuilles et les explorateurs de blocs, et rendre difficile la détermination de l'origine des Bitcoins. Cela pourrait également être utilisé pour certaines attaques, comme le dépôt répété sur les échanges.
Pour résoudre ce problème, en mars 2012, Bitcoin a mis en œuvre BIP30 par un fork doux, interdisant l'utilisation d'identifiants de transaction dupliqués pour les transactions. En septembre 2012, une modification supplémentaire a été apportée, rendant la vérification de BIP30 applicable à tous les blocs, à l'exception des deux groupes de transactions dupliquées mentionnés précédemment.
En mars 2013, Bitcoin a de nouveau activé le soft fork BIP34, exigeant que les transactions coinbase contiennent des informations sur la hauteur du bloc. Cela semble résoudre complètement le problème des transactions en double, théoriquement toutes les transactions devraient être uniques.
Cependant, dans certains blocs avant l'activation de BIP34, il y a encore quelques transactions coinbase dont le premier octet du scriptSig correspond exactement à la hauteur des blocs valides futurs. Cela signifie que dans des cas extrêmement rares, des transactions répétées peuvent encore se produire. Le prochain bloc susceptible de contenir des transactions répétées est le 1,983,702, qui devrait être généré autour de janvier 2046.
Cependant, compte tenu de la difficulté et du coût de la réplication de ce type de transaction, ainsi que de la rareté des opportunités de l'exploiter, cette vulnérabilité n'est pas une menace principale pour la sécurité de Bitcoin. Néanmoins, les développeurs continuent d'étudier des méthodes pour résoudre ce problème de manière définitive, ce qui pourrait nécessiter une mise à jour par soft fork. Une solution possible serait d'imposer le respect de l'engagement SegWit.