Bitcoin dans le système de transactions répétées : un bogue rare et intéressant
Les transactions Bitcoin sont généralement effectuées en utilisant l'identifiant de la transaction précédente pour dépenser des sorties non dépensées. Ces sorties ne peuvent être utilisées qu'une seule fois, sinon cela entraînerait des problèmes de double dépense. Cependant, dans l'histoire de Bitcoin, deux ensembles de transactions totalement identiques ont été observés. Cette situation est possible car les transactions coinbase n'ont pas d'entrées, mais génèrent directement des nouvelles pièces. Ainsi, deux transactions coinbase différentes peuvent envoyer le même montant de Bitcoin à la même adresse, créant ainsi des transactions totalement identiques. Comme ces transactions ont le même contenu, leurs identifiants de transaction correspondent également.
Ces deux groupes de transactions répétées se sont produits entre le 14 et le 15 novembre 2010, avec une durée d'environ 16 heures. L'ID du premier groupe de transactions répétées commence par d5d2 et se termine par 8599 ; le deuxième groupe commence par e3bf et se termine par b468. Fait intéressant, bien que d5d2....8599 soit devenu une copie en premier, il apparaît pour la première fois sur la blockchain après e3bf....b468.
Le montant total de Bitcoin impliqué dans ces transactions répétées est de 200 BTC, avec 50 BTC par transaction. À ce jour, ces bitcoins n'ont pas encore été utilisés. En théorie, la personne possédant les clés privées correspondantes peut dépenser ces bitcoins, mais une fois utilisés, les 50 BTC répétitifs seront perdus, de sorte que le montant réellement disponible de bitcoins pourrait n'être que de 100 BTC.
Les transactions répétées peuvent causer des problèmes aux portefeuilles et aux explorateurs de blocs, et brouiller l'origine des Bitcoin. Plus grave encore, elles peuvent être utilisées pour attaquer des institutions telles que des échanges, entraînant des pertes financières. 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, à moins que la transaction précédente ait été utilisée. En septembre de la même année, cette règle a été étendue à tous les blocs.
Le soft fork BIP34 activé en mars 2013 exige que les transactions coinbase contiennent des informations sur la hauteur du bloc, ce qui réduit encore la probabilité de transactions en double. Cependant, certaines transactions coinbase dans des blocs précédant le BIP34 contiennent un premier octet de scriptSig qui correspond exactement à une hauteur de bloc valide future, ce qui signifie que le risque de transactions en double subsiste, bien que cela soit extrêmement rare.
Le prochain bloc susceptible de présenter des transactions répétées est le 1,983,702, prévu pour être généré aux alentours de janvier 2046. Pour exploiter cette vulnérabilité, les mineurs doivent payer un coût énorme, y compris en brûlant une quantité considérable de Bitcoin en tant que frais de transaction. Compte tenu des coûts et de la difficulté, cette vulnérabilité ne constitue pas une menace majeure pour la sécurité du système Bitcoin.
Néanmoins, les développeurs s'efforcent depuis des années de résoudre ce problème. Les solutions possibles incluent l'application des engagements SegWit, ce qui pourrait nécessiter une mise en œuvre par le biais d'un soft fork. Bien que cette vulnérabilité soit presque impossible à exploiter en pratique, elle met en évidence la complexité du système Bitcoin et les problèmes potentiels d'héritage historique.
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
15 J'aime
Récompense
15
6
Partager
Commentaire
0/400
BlockchainBouncer
· Il y a 6h
Le bug de 2010 est vraiment nostalgique.
Voir l'originalRépondre0
RiddleMaster
· Il y a 9h
Ce bug aurait dû être corrigé plus tôt.
Voir l'originalRépondre0
¯\_(ツ)_/¯
· Il y a 9h
Ce bug a quelque chose d'intéressant.
Voir l'originalRépondre0
FUD_Vaccinated
· Il y a 9h
Eh bien, les bugs ont commencé à exploser dès 2010.
Voir l'originalRépondre0
FlashLoanPrince
· Il y a 9h
Les jetons virtuels peuvent-ils vraiment être échangés plusieurs fois ?
Vulnérabilité de transaction répétée de Bitcoin : analyse des événements historiques rares et des risques futurs
Bitcoin dans le système de transactions répétées : un bogue rare et intéressant
Les transactions Bitcoin sont généralement effectuées en utilisant l'identifiant de la transaction précédente pour dépenser des sorties non dépensées. Ces sorties ne peuvent être utilisées qu'une seule fois, sinon cela entraînerait des problèmes de double dépense. Cependant, dans l'histoire de Bitcoin, deux ensembles de transactions totalement identiques ont été observés. Cette situation est possible car les transactions coinbase n'ont pas d'entrées, mais génèrent directement des nouvelles pièces. Ainsi, deux transactions coinbase différentes peuvent envoyer le même montant de Bitcoin à la même adresse, créant ainsi des transactions totalement identiques. Comme ces transactions ont le même contenu, leurs identifiants de transaction correspondent également.
Ces deux groupes de transactions répétées se sont produits entre le 14 et le 15 novembre 2010, avec une durée d'environ 16 heures. L'ID du premier groupe de transactions répétées commence par d5d2 et se termine par 8599 ; le deuxième groupe commence par e3bf et se termine par b468. Fait intéressant, bien que d5d2....8599 soit devenu une copie en premier, il apparaît pour la première fois sur la blockchain après e3bf....b468.
Le montant total de Bitcoin impliqué dans ces transactions répétées est de 200 BTC, avec 50 BTC par transaction. À ce jour, ces bitcoins n'ont pas encore été utilisés. En théorie, la personne possédant les clés privées correspondantes peut dépenser ces bitcoins, mais une fois utilisés, les 50 BTC répétitifs seront perdus, de sorte que le montant réellement disponible de bitcoins pourrait n'être que de 100 BTC.
Les transactions répétées peuvent causer des problèmes aux portefeuilles et aux explorateurs de blocs, et brouiller l'origine des Bitcoin. Plus grave encore, elles peuvent être utilisées pour attaquer des institutions telles que des échanges, entraînant des pertes financières. 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, à moins que la transaction précédente ait été utilisée. En septembre de la même année, cette règle a été étendue à tous les blocs.
Le soft fork BIP34 activé en mars 2013 exige que les transactions coinbase contiennent des informations sur la hauteur du bloc, ce qui réduit encore la probabilité de transactions en double. Cependant, certaines transactions coinbase dans des blocs précédant le BIP34 contiennent un premier octet de scriptSig qui correspond exactement à une hauteur de bloc valide future, ce qui signifie que le risque de transactions en double subsiste, bien que cela soit extrêmement rare.
Le prochain bloc susceptible de présenter des transactions répétées est le 1,983,702, prévu pour être généré aux alentours de janvier 2046. Pour exploiter cette vulnérabilité, les mineurs doivent payer un coût énorme, y compris en brûlant une quantité considérable de Bitcoin en tant que frais de transaction. Compte tenu des coûts et de la difficulté, cette vulnérabilité ne constitue pas une menace majeure pour la sécurité du système Bitcoin.
Néanmoins, les développeurs s'efforcent depuis des années de résoudre ce problème. Les solutions possibles incluent l'application des engagements SegWit, ce qui pourrait nécessiter une mise en œuvre par le biais d'un soft fork. Bien que cette vulnérabilité soit presque impossible à exploiter en pratique, elle met en évidence la complexité du système Bitcoin et les problèmes potentiels d'héritage historique.