<oembed><type>rich</type><version>1.0</version><author_name>npub1wtx5qvewc7pd6znlvwktq03mdld05mv3h5dkzfwd3dc30gdmsptsugtuyn</author_name><author_url>https://nostr.ae/npub1wtx5qvewc7pd6znlvwktq03mdld05mv3h5dkzfwd3dc30gdmsptsugtuyn</author_url><provider_name>njump</provider_name><provider_url>https://nostr.ae</provider_url><html>📅 Original date posted:2015-10-21&#xA;📝 Original message:On Wed, Oct 21, 2015 at 8:19 AM Luke Dashjr &lt;luke at dashjr.org&gt; wrote:&#xA;&#xA;&gt; On Monday, October 19, 2015 2:01:04 PM Christian Decker via bitcoin-dev&#xA;&gt; wrote:&#xA;&gt; &gt; The proposal is implemented (see below), by computing the normalized&#xA;&gt; &gt; transaction ID when adding them to the UTXO and storing them along with&#xA;&gt; the&#xA;&gt; &gt; coin state. OP_CHECKSIGEX mostly duplicates OP_CHECKSIG and&#xA;&gt; &gt; OP_CHECKMULTISIG, but I&#39;m hoping somebody can give me some pointers into&#xA;&gt; &gt; how to best refactor the common functionality into reusable blocks. And&#xA;&gt; the&#xA;&gt; &gt; annotating incoming transactions with their normalized inputs is a bit&#xA;&gt; &gt; cumbersome, maye somebody has some pointers here as well?&#xA;&#xA;&#xA;&gt; This doesn&#39;t completely close malleability (which should be documented in&#xA;&gt; the&#xA;&gt; BIP), so I&#39;m not sure it&#39;s worth the cost, especially if closing&#xA;&gt; malleability&#xA;&gt; later on would need more. How about specifying flags upfront in the UTXO-&#xA;&gt; creating transaction specifying which parts the signature will cover? This&#xA;&gt; would allow implementation of fully malleability-proof wallets.&#xA;&gt;&#xA;&#xA;As far as I see it the only remaining venues for malleability are the use&#xA;of sighash flags that are not SIGHASH_ALL, as mentioned in the BIP. Any use&#xA;of non-sighash_all flags is already an explicit permission to modify the&#xA;transactions, by adding and removing inputs and outputs, so I don&#39;t see how&#xA;these can be made non-malleable. Am I missing something?&#xA;&#xA;&#xA;&gt;&#xA;&gt; Additionally, you have a flag to control whether the opcode behaves as&#xA;&gt; VERIFY&#xA;&gt; or not. Non-VERIFY is not possible as a softfork (without doing a&#xA;&gt; second/new&#xA;&gt; P2SH) since it can be negated.&#xA;&gt;&#xA;&#xA;Yes, this is my mistake and has been pointed out in the PR, I will amend&#xA;the PR to make the verify flag mandatory, which also guarantees that the&#xA;top of the stack contains a non-null element, thus resulting in a&#xA;successful evaluation on non-updated clients.&#xA;&#xA;&#xA;&gt;&#xA;&gt; Luke&#xA;&gt;&#xA;-------------- next part --------------&#xA;An HTML attachment was scrubbed...&#xA;URL: &lt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20151021/3a229156/attachment.html&gt;</html></oembed>