Received: from sog-mx-4.v43.ch3.sourceforge.com ([172.29.43.194] helo=mx.sourceforge.net) by sfs-ml-4.v29.ch3.sourceforge.com with esmtp (Exim 4.76) (envelope-from ) id 1YsWSv-00034Z-Dq for bitcoin-development@lists.sourceforge.net; Wed, 13 May 2015 13:12:49 +0000 Received-SPF: pass (sog-mx-4.v43.ch3.sourceforge.com: domain of gmail.com designates 209.85.216.181 as permitted sender) client-ip=209.85.216.181; envelope-from=tier.nolan@gmail.com; helo=mail-qc0-f181.google.com; Received: from mail-qc0-f181.google.com ([209.85.216.181]) by sog-mx-4.v43.ch3.sourceforge.com with esmtps (TLSv1:RC4-SHA:128) (Exim 4.76) id 1YsWSu-0006z8-K4 for bitcoin-development@lists.sourceforge.net; Wed, 13 May 2015 13:12:49 +0000 Received: by qcbgy10 with SMTP id gy10so21742546qcb.3 for ; Wed, 13 May 2015 06:12:43 -0700 (PDT) MIME-Version: 1.0 X-Received: by 10.140.217.17 with SMTP id n17mr27779586qhb.69.1431522763227; Wed, 13 May 2015 06:12:43 -0700 (PDT) Received: by 10.140.85.241 with HTTP; Wed, 13 May 2015 06:12:43 -0700 (PDT) In-Reply-To: References: Date: Wed, 13 May 2015 14:12:43 +0100 Message-ID: From: Tier Nolan Cc: Bitcoin Development Content-Type: multipart/alternative; boundary=001a1139b816ca68150515f65dd8 X-Spam-Score: 2.2 (++) X-Spam-Report: Spam Filtering performed by mx.sourceforge.net. See http://spamassassin.org/tag/ for more details. -1.5 SPF_CHECK_PASS SPF reports sender host as permitted sender for sender-domain 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (tier.nolan[at]gmail.com) -0.0 SPF_PASS SPF: sender matches SPF record 1.2 MISSING_HEADERS Missing To: header 1.0 HTML_MESSAGE BODY: HTML included in message -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature 1.9 MALFORMED_FREEMAIL Bad headers on message from free email service -0.3 AWL AWL: Adjusted score from AWL reputation of From: address X-Headers-End: 1YsWSu-0006z8-K4 Subject: Re: [Bitcoin-development] [BIP] Normalized Transaction IDs X-BeenThere: bitcoin-development@lists.sourceforge.net X-Mailman-Version: 2.1.9 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 13 May 2015 13:12:49 -0000 --001a1139b816ca68150515f65dd8 Content-Type: text/plain; charset=UTF-8 I think this is a good way to handle things, but as you say, it is a hard fork. CHECKLOCKTIMEVERIFY covers many of the use cases, but it would be nice to fix malleability once and for all. This has the effect of doubling the size of the UTXO database. At minimum, there needs to be a legacy txid to normalized txid map in the database. An addition to the BIP would eliminate the need for the 2nd index. You could require a SPV proof of the spending transaction to be included with legacy transactions. This would allow clients to verify that the normalized txid matched the legacy id. The OutPoint would be {LegacyId | SPV Proof to spending tx | spending tx | index}. This allows a legacy transaction to be upgraded. OutPoints which use a normalized txid don't need the SPV proof. The hard fork would be followed by a transitional period, in which both txids could be used. Afterwards, legacy transactions have to have the SPV proof added. This means that old transactions with locktimes years in the future can be upgraded for spending, without nodes needing to maintain two indexes. --001a1139b816ca68150515f65dd8 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
I think this is a good way to handle things, but as y= ou say, it is a hard fork.

CHECKLOCKTIMEVERIFY covers many of = the use cases, but it would be nice to fix malleability once and for all.

This has the effect of doubling the size of the UTXO databa= se.=C2=A0 At minimum, there needs to be a legacy txid to normalized txid ma= p in the database.

An addition to the BIP would eliminate= the need for the 2nd index.=C2=A0 You could require a SPV proof of the spe= nding transaction to be included with legacy transactions.=C2=A0 This would= allow clients to verify that the normalized txid matched the legacy id.
The OutPoint would be {LegacyId | SPV Proof to spending tx= =C2=A0 | spending tx | index}.=C2=A0 This allows a legacy transaction to be= upgraded.=C2=A0 OutPoints which use a normalized txid don't need the S= PV proof.

The hard fork would be followed by a transition= al period, in which both txids could be used.=C2=A0 Afterwards, legacy tran= sactions have to have the SPV proof added.=C2=A0 This means that old transa= ctions with locktimes years in the future can be upgraded for spending, wit= hout nodes needing to maintain two indexes.
--001a1139b816ca68150515f65dd8--