<oembed><type>rich</type><version>1.0</version><author_name>npub17ty4mumkv43w8wtt0xsz2jypck0gvw0j8xrcg6tpea25z2nh7meqf4qgyd</author_name><author_url>https://nostr.ae/npub17ty4mumkv43w8wtt0xsz2jypck0gvw0j8xrcg6tpea25z2nh7meqf4qgyd</author_url><provider_name>njump</provider_name><provider_url>https://nostr.ae</provider_url><html>📅 Original date posted:2014-02-20&#xA;📝 Original message:We&#39;ve done forking changes before much faster than a year and that was with&#xA;less experience. If we want, we can get this done within months.&#xA;On 20 Feb 2014 16:30, &#34;Michael Gronager&#34; &lt;gronager at mac.com&gt; wrote:&#xA;&#xA;&gt; As I see the BIP it is basically stressing that ver 1 transactions are&#xA;&gt; malleable.&#xA;&gt;&#xA;&gt; It then addresses the need for unmalleable transactions for e.g. spending&#xA;&gt; unconfirmed outputs in a deterministic way (i.e. no 3rd party can sabotage)&#xA;&gt; - this transaction type is defined as ver 3.&#xA;&gt;&#xA;&gt; A lot of clients today spend unconfirmed outputs (even bitcoin-qt) and as&#xA;&gt; such make an implicit assumption that this is kind of safe, which it is not&#xA;&gt; - it can be intervened and sabotaged through tx malleability.&#xA;&gt;&#xA;&gt; What I suggested was to ensure that a subclass of version 1 transactions&#xA;&gt; become unmalleable - namely those with sighash=all. Note that only the&#xA;&gt; sender can modify the sighash as it is part of the hash signed. So instead&#xA;&gt; of defining a version 3, we could constrain version 1 txes with sighash=all&#xA;&gt; to have a unmalleable hash. If you e.g. would like to still have a&#xA;&gt; sighash=all type of transaction with malleable features you can simply use&#xA;&gt; that sighash=all today is checked for using sighash&amp;0x1f=sighash_all, so&#xA;&gt; just OR&#39;ing with 0x20 or 0x40 will get you the &#39;old&#39; feature.&#xA;&gt;&#xA;&gt; I do however buy the argument of Peter and Gregory that there might exist&#xA;&gt; unpublished transactions out there that does not even conform to the DER&#xA;&gt; rules etc, and as such we cannot forbid them from being mined, nor can we&#xA;&gt; timestamp them and include &#39;only the old ones&#39;. Hence we cannot change the&#xA;&gt; consensus rule for version 1 transactions - and only changing the relay&#xA;&gt; rules will not provide a certain guarantee.&#xA;&gt;&#xA;&gt; So, I think the two line argument for the BIP is as follows:&#xA;&gt; 1. We cannot change the consensus rules for version 1 transactions as that&#xA;&gt; might invalidate unpublished non-standard transactions (= voiding peoples&#xA;&gt; money, which is a line we don&#39;t want to cross)&#xA;&gt; 2. The prime usecase for unmalleable transactions is being able to spend&#xA;&gt; unconfirmed outputs - this is done today by almost all clients, but it is&#xA;&gt; really broken. Hence a need for a fix asap.&#xA;&gt;&#xA;&gt; I am all in favor for the BIP, but I expect the realistic timeline for&#xA;&gt; enforced version 3 transactions is roughly one year, which is better than&#xA;&gt; two, but it would have been nice to get it faster...&#xA;&gt;&#xA;&gt; /M&#xA;&gt;&#xA;&gt;&#xA;&gt; On Feb 19, 2014, at 10:11 PM, Pieter Wuille &lt;pieter.wuille at gmail.com&gt;&#xA;&gt; wrote:&#xA;&gt;&#xA;&gt; &gt; On Wed, Feb 19, 2014 at 9:28 PM, Michael Gronager &lt;gronager at mac.com&gt;&#xA;&gt; wrote:&#xA;&gt; &gt;&gt; I think that we could guarantee fewer incidents by making version 1&#xA;&gt; transactions unmalleable and then optionally introduce a version 3 that&#xA;&gt; supported the malleability feature. That way most existing problematic&#xA;&gt; implementations would be fixed and no doors were closed for people&#xA;&gt; experimenting with other stuff - tx v 3 would probably then be called&#xA;&gt; experimental transactions.&#xA;&gt; &gt;&#xA;&gt; &gt; Just to be clear: this change is not directly intended to avoid&#xA;&gt; &gt; &#34;incidents&#34;. It will take way too long to deploy this. Software should&#xA;&gt; &gt; deal with malleability. This is a longer-term solution intended to&#xA;&gt; &gt; provide non-malleability guarantees for clients that a) are upgraded&#xA;&gt; &gt; to use them  b) willing to restrict their functionality. As there are&#xA;&gt; &gt; several intended use cases for malleable transactions (the sighash&#xA;&gt; &gt; flags pretty directly are a way to signify what malleabilities are&#xA;&gt; &gt; *wanted*), this is not about outlawing malleability.&#xA;&gt; &gt;&#xA;&gt; &gt; While we could right now make all these rules non-standard, and&#xA;&gt; &gt; schedule a soft fork in a year or so to make them illegal, it would&#xA;&gt; &gt; mean removing potential functionality that can only be re-enabled&#xA;&gt; &gt; through a hard fork. This is significantly harder, so we should think&#xA;&gt; &gt; about it very well in advance.&#xA;&gt; &gt;&#xA;&gt; &gt; About new transaction and block versions: this allows implementing and&#xA;&gt; &gt; automatically scheduling a softfork without waiting for wallets to&#xA;&gt; &gt; upgrade. The non-DER signature change was discussed for over two&#xA;&gt; &gt; years, and implemented almost a year ago, and we still notice wallets&#xA;&gt; &gt; that don&#39;t support it. We can&#39;t expect every wallet to be instantly&#xA;&gt; &gt; modified (what about hardware wallets like the Trezor, for example?&#xA;&gt; &gt; they may not just be able to be upgraded). Nor is it necessary: if&#xA;&gt; &gt; your software only spends confirmed change, and tracks all debits&#xA;&gt; &gt; correctly, there is no need.&#xA;&gt; &gt;&#xA;&gt; &gt; --&#xA;&gt; &gt; Pieter&#xA;&gt;&#xA;&gt;&#xA;&gt;&#xA;&gt; ------------------------------------------------------------------------------&#xA;&gt; Managing the Performance of Cloud-Based Applications&#xA;&gt; Take advantage of what the Cloud has to offer - Avoid Common Pitfalls.&#xA;&gt; Read the Whitepaper.&#xA;&gt;&#xA;&gt; http://pubads.g.doubleclick.net/gampad/clk?id=121054471&amp;iu=/4140/ostg.clktrk&#xA;&gt; _______________________________________________&#xA;&gt; Bitcoin-development mailing list&#xA;&gt; Bitcoin-development at lists.sourceforge.net&#xA;&gt; https://lists.sourceforge.net/lists/listinfo/bitcoin-development&#xA;&gt;&#xA;&gt;&#xA;-------------- next part --------------&#xA;An HTML attachment was scrubbed...&#xA;URL: &lt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20140220/41fc69a7/attachment.html&gt;</html></oembed>