- Feb 27, 2017
- 42
- 60
I've always thought TX malleability is an embarrassing bug and should be fixed ASAP. I thought this because I had no practical experience in dealing with this aspect of TX hashes. Today I had to deliberately adjust my code so that it wouldn't break due to double spends and duplicate TXs with different hashes. By doing this I came to a realization that TX malleability is not a bug but a feature and that developers should absolutely consider the possibility of seeing the same TX essentials with different hashes on the network. Here's why...
Double spending is an issue for those who accept 0 confirmation TXs. It will never be fixed because this issue is intrinsic to Bitcoin. Turns out that TXs affected by TX-malleability are basically plain old double spends. If you accept 0 confirmation TXs then you must deal with double-spending attempts. If you do that then TX malleability is not going to be an issue for you to begin with because duplicate TXs with same hashes are basically double spends.
Having said this, I am confused why Core devs even bothered to "fix" TX malleability if it's not even a bug. I think people should be made aware of this discovery. There is no such thing as TX malleability vulnerability because it is just a special case of double spending.
Double spending is an issue for those who accept 0 confirmation TXs. It will never be fixed because this issue is intrinsic to Bitcoin. Turns out that TXs affected by TX-malleability are basically plain old double spends. If you accept 0 confirmation TXs then you must deal with double-spending attempts. If you do that then TX malleability is not going to be an issue for you to begin with because duplicate TXs with same hashes are basically double spends.
Having said this, I am confused why Core devs even bothered to "fix" TX malleability if it's not even a bug. I think people should be made aware of this discovery. There is no such thing as TX malleability vulnerability because it is just a special case of double spending.