<oembed><type>rich</type><version>1.0</version><author_name>npub1f2nvlx49er5c7sqa43src6ssyp6snd4qwvtkwm5avc2l84cs84esecrwet</author_name><author_url>https://nostr.ae/npub1f2nvlx49er5c7sqa43src6ssyp6snd4qwvtkwm5avc2l84cs84esecrwet</author_url><provider_name>njump</provider_name><provider_url>https://nostr.ae</provider_url><html>📅 Original date posted:2014-02-10&#xA;📝 Original message:On Mon, Feb 10, 2014 at 3:28 AM, Drak &lt;drak at zikula.org&gt; wrote:&#xA;&gt; What is the official response from the Bitcoin Core developers about MtGox&#39;s&#xA;&gt; assertion that their problems are due to a fault of bitcoin, as opposed to a&#xA;&gt; fault of their own?&#xA;&gt;&#xA;&gt; The technical analysis preluding this mess, was that MtGox was at fault for&#xA;&gt; their faulty wallet implementation.&#xA;&#xA;In the real world fault seldom falls in a single place. Bitcoin is at&#xA;fault— in many places— for making it harder for implementers to get&#xA;things right.   MtGox is at fault for not implementing in a way that&#xA;copes with behaviors in the Bitcoin protocol which have been known&#xA;since at least 2011.&#xA;(https://en.bitcoin.it/wiki/Transaction_Malleability).&#xA;&#xA;Not that Bitcoin-QT handles Malleability fantastically— but because it&#xA;tracks inputs it will still detect the mutant transactions.&#xA;&#xA;An interesting point which I haven&#39;t pointed out elsewhere is that for&#xA;the question of basic funds safety in re-issuing a transaction&#xA;mallablity is basically irrelevant.&#xA;&#xA;Say you pay someone and it doesn&#39;t go through (or it does and you&#xA;don&#39;t see it because its been mutated and your software can&#39;t detect&#xA;that), and they ask you to reissue.... if you reissue without&#xA;double-spending any of the original inputs you are at risk of getting&#xA;robbed. This is true with or without malleability.  Without the&#xA;double-spend of at least one input the original transaction could just&#xA;go through in addition to your reissue.&#xA;&#xA;Say that you do make sure to double spend at least one input—  then&#xA;the result is funds safe safe, regardless of if a mutation happened.&#xA;&#xA;Say you want to support _canceling_ a payment (send me the goat&#xA;instead!) rather than reissue you still must double-spend the&#xA;attempted payment to cancel it, since it still might go through if you&#xA;don&#39;t.  And the double spend works to protect this case regardless of&#xA;if the transaction was mutated.&#xA;&#xA;For support and accounting purposes you absolutely do need tools to&#xA;identify mutated transactions, so long as mutation exists... so we&#xA;ought to provide some better tools there.  But I can&#39;t think a case&#xA;where mutation handling is necessary or sufficient for cancellation&#xA;security, but— rather— input tracking appears to be both necessary and&#xA;sufficient in all cancellation cases.&#xA;&#xA;This helps explain why Bitcoin-QT— whos mutation handling kinda&#xA;stinks— doesn&#39;t ever end up in a really bad situation with mutants: it&#xA;tracks inputs pretty well.&#xA;&#xA;In any case, I&#39;ve always been happy to help out Mtgox with technical&#xA;issues. Having some specs for a stable transaction ID would probably&#xA;be helpful to many applications, even if it isn&#39;t the critical key you&#xA;need for cancellation security.  Removing mallability entirely has&#xA;been a soft long term goal, and there were recently (as in today) some&#xA;posts about it— look at the list archives... though it won&#39;t happen&#xA;fast since all signers/wallets will need to be updated.</html></oembed>