Received: from sog-mx-2.v43.ch3.sourceforge.com ([172.29.43.192] helo=mx.sourceforge.net) by sfs-ml-3.v29.ch3.sourceforge.com with esmtp (Exim 4.76) (envelope-from ) id 1YsWv4-0005aC-Sy for bitcoin-development@lists.sourceforge.net; Wed, 13 May 2015 13:41:54 +0000 Received-SPF: pass (sog-mx-2.v43.ch3.sourceforge.com: domain of gmail.com designates 209.85.215.52 as permitted sender) client-ip=209.85.215.52; envelope-from=gavinandresen@gmail.com; helo=mail-la0-f52.google.com; Received: from mail-la0-f52.google.com ([209.85.215.52]) by sog-mx-2.v43.ch3.sourceforge.com with esmtps (TLSv1:RC4-SHA:128) (Exim 4.76) id 1YsWv1-0002Kw-Eg for bitcoin-development@lists.sourceforge.net; Wed, 13 May 2015 13:41:54 +0000 Received: by lagv1 with SMTP id v1so29583318lag.3 for ; Wed, 13 May 2015 06:41:45 -0700 (PDT) MIME-Version: 1.0 X-Received: by 10.112.166.37 with SMTP id zd5mr15793656lbb.75.1431524505048; Wed, 13 May 2015 06:41:45 -0700 (PDT) Received: by 10.25.90.75 with HTTP; Wed, 13 May 2015 06:41:44 -0700 (PDT) In-Reply-To: References: Date: Wed, 13 May 2015 09:41:44 -0400 Message-ID: From: Gavin Andresen To: Tier Nolan Content-Type: multipart/alternative; boundary=001a11c382d09c5e250515f6c523 X-Spam-Score: -0.6 (/) 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 (gavinandresen[at]gmail.com) -0.0 SPF_PASS SPF: sender matches SPF record 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 X-Headers-End: 1YsWv1-0002Kw-Eg Cc: Bitcoin Development 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:41:54 -0000 --001a11c382d09c5e250515f6c523 Content-Type: text/plain; charset=UTF-8 I think this needs more details before it gets a BIP number; for example, which opcodes does this affect, and how, exactly, does it affect them? Is the merkle root in the block header computed using normalized transaction ids or normalized ids? I think there might actually be two or three or four BIPs here: + Overall "what is trying to be accomplished" + Changes to the OP_*SIG* opcodes + Changes to the bloom-filtering SPV support + ...eventually, hard fork rollout plan I also think that it is a good idea to have actually implemented a proposal before getting a BIP number. At least, I find that actually writing the code often turns up issues I hadn't considered when thinking about the problem at a high level. And I STRONGLY believe BIPs should be descriptive ("here is how this thing works") not proscriptive ("here's how I think we should all do it"). Finally: I like the idea of moving to a normalized txid. But it might make sense to bundle that change with a bigger change to OP_CHECKSIG; see Greg Maxwell's excellent talk about his current thoughts on that topic: https://www.youtube.com/watch?v=Gs9lJTRZCDc On Wed, May 13, 2015 at 9:12 AM, Tier Nolan wrote: > 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. > > > ------------------------------------------------------------------------------ > One dashboard for servers and applications across Physical-Virtual-Cloud > Widest out-of-the-box monitoring support with 50+ applications > Performance metrics, stats and reports that give you Actionable Insights > Deep dive visibility with transaction tracing using APM Insight. > http://ad.doubleclick.net/ddm/clk/290420510;117567292;y > _______________________________________________ > Bitcoin-development mailing list > Bitcoin-development@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/bitcoin-development > > -- -- Gavin Andresen --001a11c382d09c5e250515f6c523 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
I think this needs more details before it gets a BIP numbe= r; for example, which opcodes does this affect, and how, exactly, does it a= ffect them? Is the merkle root in the block header computed using normalize= d transaction ids or normalized ids?=C2=A0

I think there= might actually be two or three or four BIPs here:

=C2=A0+ Overall "what is trying to be accomplished"
= =C2=A0+ Changes to the OP_*SIG* opcodes
=C2=A0+ Changes to the bl= oom-filtering SPV support
=C2=A0+ ...eventually, hard fork rollou= t plan

I also think that it is a good idea to have actua= lly implemented a proposal before getting a BIP number. At least, I find th= at actually writing the code often turns up issues I hadn't considered = when thinking about the problem at a high level. And I STRONGLY believe BIP= s should be descriptive ("here is how this thing works") not pros= criptive ("here's how I think we should all do it").

Finally: I like the idea of moving to a normalized t= xid. But it might make sense to bundle that change with a bigger change to = OP_CHECKSIG; see Greg Maxwell's excellent talk about his current though= ts on that topic:

On Wed, May 13, 2015 at 9:12 AM, Tier Nolan <tier.nolan@gmail.co= m> wrote:
=
I think this is a good way to handle things, but as you say, it is a h= ard fork.

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

T= his has the effect of doubling the size of the UTXO database.=C2=A0 At mini= mum, 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.=C2=A0 You could require a SPV proof of the spending transaction= to be included with legacy transactions.=C2=A0 This would allow clients to= verify that the normalized txid matched the legacy id.

T= he 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 O= utPoints which use a normalized txid don't need the SPV proof.

<= /div>
The hard fork would be followed by a transitional period, in whic= h both txids could be used.=C2=A0 Afterwards, legacy transactions have to h= ave the SPV proof added.=C2=A0 This means that old transactions with lockti= mes years in the future can be upgraded for spending, without nodes needing= to maintain two indexes.

-----------------------------------------------------------------------= -------
One dashboard for servers and applications across Physical-Virtual-Cloud Widest out-of-the-box monitoring support with 50+ applications
Performance metrics, stats and reports that give you Actionable Insights Deep dive visibility with transaction tracing using APM Insight.
http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
= _______________________________________________
Bitcoin-development mailing list
Bitcoin-develo= pment@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-de= velopment




--
--
Gavin Andresen
--001a11c382d09c5e250515f6c523--