<oembed><type>rich</type><version>1.0</version><author_name>npub1tjephawh7fdf6358jufuh5eyxwauzrjqa7qn50pglee4tayc2ntqcjtl6r</author_name><author_url>https://nostr.ae/npub1tjephawh7fdf6358jufuh5eyxwauzrjqa7qn50pglee4tayc2ntqcjtl6r</author_url><provider_name>njump</provider_name><provider_url>https://nostr.ae</provider_url><html>📅 Original date posted:2014-02-19&#xA;📝 Original message:On Wed, Feb 19, 2014 at 3:11 PM, Michael Gronager &lt;gronager at mac.com&gt; wrote:&#xA;&gt; Why introduce a new transaction version for this purpose ? Wouldn&#39;t it be more elegant to simply let:&#xA;&gt;&#xA;&gt; 1. the next bitcoin version &#34;prettify&#34; all relayed transactions as deterministic transactions fulfilling the scheme 1-6 effectively blocking any malleability attack? If miners would upgrade then all transactions in blocks would have a deterministic hash.&#xA;&#xA;I consider actively mutating other&#39;s transactions worse than not&#xA;relaying them. If we want people to make their software deal with&#xA;malleability, either will work.&#xA;&#xA;Regarding deterministic hash: that&#39;s impossible. Some signature hash&#xA;types are inherently (and intentionally) malleable. I don&#39;t think we&#xA;should pretend to want to change that. The purpose is making&#xA;non-malleability a choice the sender of a transaction can make.&#xA;&#xA;Most of the rules actually are enforced by IsStandard already now.&#xA;Only #1 and #7 aren&#39;t. #1 affects the majority of all transactions, so&#xA;changing it right now would be painful. #7 only affects multisig.&#xA;&#xA;&gt; 2. In a version later one could block relay of non deterministic transactions, as well as the acceptance of blocks with non-confirming transactions.&#xA;&gt;&#xA;&gt; To non-standard conforming clients this &#34;prettify&#34; change of hash would be seen as a constant malleability attack, but given the &#34;prettify&#34; code it is to fix any client into producing only conforming transactions, just by running the transaction through it before broadcast.&#xA;&gt;&#xA;&gt; There is a possible fork risk in step 2. above - if a majority of miners still havn&#39;t upgraded to 1 when 2 is introduced. We could monitor % non conforming transaction in a block and only introduce 2. once that number is sufficiently small for a certain duration - criteria:&#xA;&gt; * Switch on forcing of unmalleable transactions in blocks when there has been only conforming transactions for 1000 blocks.&#xA;&#xA;The problem in making these rules into consensus rule (affecting&#xA;tx/block validity) is that some rules (in particular #3) may not be&#xA;wanted by everyone, as they effectively limit the possibilities of the&#xA;script language further. As it is ultimately only about protecting&#xA;senders who care about non-malleability, introducing a new transaction&#xA;version is a very neat way of accomplishing that. The new block&#xA;version number is only there to coordinate the rollout, and choosing&#xA;an automatic forking point.&#xA;&#xA;-- &#xA;Pieter</html></oembed>