Return-Path: Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org [172.17.192.35]) by mail.linuxfoundation.org (Postfix) with ESMTPS id 6F11C67 for ; Wed, 21 Oct 2015 06:19:57 +0000 (UTC) X-Greylist: from auto-whitelisted by SQLgrey-1.7.6 Received: from zinan.dashjr.org (zinan.dashjr.org [192.3.11.21]) by smtp1.linuxfoundation.org (Postfix) with ESMTP id 5C35390 for ; Wed, 21 Oct 2015 06:19:56 +0000 (UTC) Received: from ishibashi.localnet (unknown [IPv6:2001:470:5:265:61b6:56a6:b03d:28d6]) (Authenticated sender: luke-jr) by zinan.dashjr.org (Postfix) with ESMTPSA id 2154C38A5382; Wed, 21 Oct 2015 06:18:57 +0000 (UTC) X-Hashcash: 1:25:151021:bitcoin-dev@lists.linuxfoundation.org::B8yZCx=5Mnsig5Tc:aAcnD X-Hashcash: 1:25:151021:decker.christian@gmail.com::u+5Onv/S7Z/O0WXT:deM=9 From: Luke Dashjr To: bitcoin-dev@lists.linuxfoundation.org, Christian Decker Date: Wed, 21 Oct 2015 06:18:54 +0000 User-Agent: KMail/1.13.7 (Linux/4.1.9-gentoo-r1; KDE/4.14.8; x86_64; ; ) References: In-Reply-To: X-PGP-Key-Fingerprint: E463 A93F 5F31 17EE DE6C 7316 BD02 9424 21F4 889F X-PGP-Key-ID: BD02942421F4889F X-PGP-Keyserver: hkp://pgp.mit.edu MIME-Version: 1.0 Content-Type: Text/Plain; charset="iso-8859-15" Content-Transfer-Encoding: 7bit Message-Id: <201510210618.56159.luke@dashjr.org> X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,RP_MATCHES_RCVD autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on smtp1.linux-foundation.org Subject: Re: [bitcoin-dev] [BIP] Normalized transaction IDs X-BeenThere: bitcoin-dev@lists.linuxfoundation.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: Bitcoin Development Discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 21 Oct 2015 06:19:57 -0000 On Monday, October 19, 2015 2:01:04 PM Christian Decker via bitcoin-dev wrote: > The proposal is implemented (see below), by computing the normalized > transaction ID when adding them to the UTXO and storing them along with the > coin state. OP_CHECKSIGEX mostly duplicates OP_CHECKSIG and > OP_CHECKMULTISIG, but I'm hoping somebody can give me some pointers into > how to best refactor the common functionality into reusable blocks. And the > annotating incoming transactions with their normalized inputs is a bit > cumbersome, maye somebody has some pointers here as well? This doesn't completely close malleability (which should be documented in the BIP), so I'm not sure it's worth the cost, especially if closing malleability later on would need more. How about specifying flags upfront in the UTXO- creating transaction specifying which parts the signature will cover? This would allow implementation of fully malleability-proof wallets. Additionally, you have a flag to control whether the opcode behaves as VERIFY or not. Non-VERIFY is not possible as a softfork (without doing a second/new P2SH) since it can be negated. Luke