Received: from sog-mx-1.v43.ch3.sourceforge.com ([172.29.43.191] helo=mx.sourceforge.net) by sfs-ml-2.v29.ch3.sourceforge.com with esmtp (Exim 4.76) (envelope-from ) id 1XbXJH-0008BI-3a for bitcoin-development@lists.sourceforge.net; Tue, 07 Oct 2014 16:08:23 +0000 Received-SPF: pass (sog-mx-1.v43.ch3.sourceforge.com: domain of gmail.com designates 209.85.214.173 as permitted sender) client-ip=209.85.214.173; envelope-from=mh.in.england@gmail.com; helo=mail-ob0-f173.google.com; Received: from mail-ob0-f173.google.com ([209.85.214.173]) by sog-mx-1.v43.ch3.sourceforge.com with esmtps (TLSv1:RC4-SHA:128) (Exim 4.76) id 1XbXJF-0005J7-Pl for bitcoin-development@lists.sourceforge.net; Tue, 07 Oct 2014 16:08:23 +0000 Received: by mail-ob0-f173.google.com with SMTP id wp4so5891119obc.18 for ; Tue, 07 Oct 2014 09:08:16 -0700 (PDT) MIME-Version: 1.0 X-Received: by 10.182.232.229 with SMTP id tr5mr4407705obc.83.1412698093321; Tue, 07 Oct 2014 09:08:13 -0700 (PDT) Sender: mh.in.england@gmail.com Received: by 10.76.86.105 with HTTP; Tue, 7 Oct 2014 09:08:13 -0700 (PDT) In-Reply-To: References: <20141001130826.GM28710@savin.petertodd.org> <1987325.zKPNeYyO8K@crushinator> <201410031750.27323.luke@dashjr.org> <20141004003850.GA23202@muck> Date: Tue, 7 Oct 2014 18:08:13 +0200 X-Google-Sender-Auth: wry7TjGAT3x9QOrp9ZrDTBbTHfI Message-ID: From: Mike Hearn To: Gavin Andresen Content-Type: multipart/alternative; boundary=001a11c32f940702da0504d7689f X-Spam-Score: -0.5 (/) 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 (mh.in.england[at]gmail.com) -0.0 SPF_PASS SPF: sender matches SPF record 1.0 HTML_MESSAGE BODY: HTML included in message 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: 1XbXJF-0005J7-Pl Cc: Bitcoin Dev , Flavien Charlon Subject: Re: [Bitcoin-development] [BIP draft] CHECKLOCKTIMEVERIFY - Prevent a txout from being spent until an expiration time 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: Tue, 07 Oct 2014 16:08:23 -0000 --001a11c32f940702da0504d7689f Content-Type: text/plain; charset=UTF-8 > > That is easy to change; I'll submit a pull request. > That's certainly a useful improvement. It won't help the existing userbase though - assuming CHECKLOCKTIMEVERIFY is to go in to the next major release. If there's going to be an intermediate release (6 months?) which lays the groundwork for future rule changes, it helps more. It would be good if getblocktemplate was updated at the same time to serve errors if the fork warning is active. I'd hope miners have some way to automatically handle IBD/getting forked off the chain, but I guess some (newer) pools might not, and refusing to serve work should be the safest option that shuts them down. I don't have any opinion on the hard- versus soft- fork debate. I think > either can work. > P2SH was a soft fork and the sky did not fall, but miners did lose money and waste electricity mining blocks on the wrong side of the chain: https://bitcointalk.org/index.php?topic=75294.0 Presumably they didn't notice for longer because it looked like a run of unusually bad orphaning luck. It seems safer to have a clean fork, with alerts telling people during the lockin period before new rule enforcement starts (and possibly automated termination if there's no upgrade by the flag day?). Miners who ignore it would still risk losing money, but merchants who wait for a block at least would not be at risk. One open question is how can you actually trigger a hard fork? Coinbase scriptSigs are not executed, so putting some ignored but failing opcode sequence there wouldn't work. One possibility would be to have a special invalid tx in the block that marks the start of new rule enforcement. New nodes would know to ignore it. But this risks corrupting block explorers. Alternatively the coinbase outpoint structure could have its hash set to 1 instead of 0. --001a11c32f940702da0504d7689f Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
That is easy to change; I'll submit a pull request.

That's certainly a = useful improvement. It won't help the existing userbase though - assumi= ng CHECKLOCKTIMEVERIFY is to go in to the next major release. If there'= s going to be an intermediate release (6 months?) which lays the groundwork= for future rule changes, it helps more.

It wo= uld be good if getblocktemplate was updated at the same time to serve error= s if the fork warning is active. I'd hope miners have some way to autom= atically handle IBD/getting forked off the chain, but I guess some (newer) = pools might not, and refusing to serve work should be the safest option tha= t shuts them down.

I don't have any = opinion on the hard- versus soft- fork debate. I think either can work.
=C2=A0
P2SH was a soft fork an= d the sky did not fall, but miners did lose money and waste electricity min= ing blocks on the wrong side of the chain:


Presumably t= hey didn't notice for longer because it looked like a run of unusually = bad orphaning luck. It seems safer to have a clean fork, with alerts tellin= g people during the lockin period before new rule enforcement starts (and p= ossibly automated termination if there's no upgrade by the flag day?). = Miners who ignore it would still risk losing money, but merchants who wait = for a block at least would not be at risk.

One ope= n question is how can you actually trigger a hard fork? Coinbase scriptSigs= are not executed, so putting some ignored but failing opcode sequence ther= e wouldn't work. One possibility would be to have a special invalid tx = in the block that marks the start of new rule enforcement. New nodes would = know to ignore it. But this risks corrupting block explorers. Alternatively= the coinbase outpoint structure could have its hash set to 1 instead of 0.=
--001a11c32f940702da0504d7689f--