Could someone outline loosely what the implications are of this in layperson's terms?
Thanks.
Could someone outline loosely what the implications are of this in layperson's terms?
Thanks.
however, not all parts of a transaction are signed. modifying those parts allows one to create a valid transaction with the same bitcoin transferring effect, but with a different overall hash.
the hash of the entire transaction is used as a transaction id.
so a modified transaction would have a different id.
some bitcoin management software (a wallet) loses track of transfers, because those transfers don't occur under the transaction-id it expected.
the implication is that some bitcoin services could get confused about who they've successfully sent bitcoins to.
an attacker could socially engineer a "robbery" by transmitting a mutation of an official withdrawal transaction, then appealing to the helpdesk of that service that their withdrawal never went through. it did go through - just under a different transaction id.
a transaction only becomes immutable once it has been included in the blockchain. after this point, searching for a tx by hash is ok.
calling this a bug of the bitcoin protocol is akin to saying that array decay in C is a bug in the language spec. it is known, and and has been talked about for a long time. in both cases.
Do you know why scripts aren't signed? I don't fully understand bitcoin but it seems like they're an integral part of the transaction.
Any help is appreciated
Transaction hashes are a misnomer -- the hash is a has of the message, NOT of the transaction. Many messages match one transaction.
Discussion: https://news.ycombinator.com/item?id=7232175
Discussion on HN: https://news.ycombinator.com/item?id=7234010
(discussion: https://news.ycombinator.com/item?id=7211286)