<div dir="auto"><br><div class="gmail_extra" dir="auto"><br><div class="gmail_quote">Den 8 mar 2017 00:10 skrev "Phillip Hallam-Baker" <<a href="mailto:phill@hallambaker.com">phill@hallambaker.com</a>>:<blockquote class="quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div class="elided-text"><div><br></div></div><div><div class="gmail_default" style="font-size:small">​It is the property that gives rise to the malleability property (I think)</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">Yes you can create a valid ECDH signature for garbage. But the garbage ​does not match the hash of any data you know the value of.</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">And yes, it is known because this is the mechanism that it is claimed was used to empty Mt Gox.</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">ECDSA includes the hash function. It is not an optional part.</div></div></div></div></div></blockquote></div></div><div dir="auto"><br></div><div dir="auto">That wasn't exactly it. </div><div dir="auto"><br></div><div dir="auto">They did use malleability, yes, but not to sign garbage. The signature still signed the same original data - it  just wasn't encoded bitwise identically, which changed the *transaction hash* (the hash of all transaction data with signature included). </div><div dir="auto"><br></div><div dir="auto">Mt gox tracked payments by transaction hash, not by UTXO identifiers ('unspent transaction output", comparable to individual coins) which was already being recommended. </div><div dir="auto">In other words, I could request a withdrawal, replay a slightly modified version of their payment transaction to me, hope it gets chosen by the miners, and then tell Mt Gox' support that I didn't get my money (which I actually did), so then they pay me again with a NEW transaction, spending *other* UTXO's (giving me "different coins", pretty much). While they instead should have verified the UTXO and said "we spent UTXO 123 going to his withdrawal address, and sure enough that's in the blockchain". </div><div dir="auto">If the transaction really disappeared, they should resend it using the same (then still unspent) UTXO's. </div><div dir="auto"><br></div><div dir="auto">If they really had used it to sign garbage, the Bitcoin network would have rejected that garbage data for not being a valid transaction. </div><div class="gmail_extra" dir="auto"></div></div>