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