summaryrefslogtreecommitdiff
path: root/4c/0f5f4c277495aa1ff1432a2718846f7288a367
blob: bf46819125f552f45fc56bbddca0ec0d2151376e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
Return-Path: <aj@erisian.com.au>
Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org
	[172.17.192.35])
	by mail.linuxfoundation.org (Postfix) with ESMTPS id E9E204A4
	for <bitcoin-dev@lists.linuxfoundation.org>;
	Tue, 18 Dec 2018 04:58:35 +0000 (UTC)
X-Greylist: from auto-whitelisted by SQLgrey-1.7.6
Received: from azure.erisian.com.au (cerulean.erisian.com.au [139.162.42.226])
	by smtp1.linuxfoundation.org (Postfix) with ESMTPS id 18074CF
	for <bitcoin-dev@lists.linuxfoundation.org>;
	Tue, 18 Dec 2018 04:58:34 +0000 (UTC)
Received: from aj@azure.erisian.com.au (helo=sapphire.erisian.com.au)
	by azure.erisian.com.au with esmtpsa (Exim 4.89 #1 (Debian))
	id 1gZ7Sg-0004EN-VZ; Tue, 18 Dec 2018 14:58:32 +1000
Received: by sapphire.erisian.com.au (sSMTP sendmail emulation);
	Tue, 18 Dec 2018 14:58:26 +1000
Date: Tue, 18 Dec 2018 14:58:26 +1000
From: Anthony Towns <aj@erisian.com.au>
To: Bitcoin Protocol Discussion <bitcoin-dev@lists.linuxfoundation.org>
Message-ID: <20181218045826.2latx2rdyzsuc77k@erisian.com.au>
References: <20181214104839.ur4lde3dzncadmr4@erisian.com.au>
	<CAMZUoKnSi+8W7znTNv4BcjrrTDJubDeWeJ8ynUtzs04ES2z6AQ@mail.gmail.com>
	<E07C0182-1656-44B0-AD2E-8EAF9552ECC1@xbt.hk>
	<CAMZUoKnc+0pBCP84RoezKrNMrsm2oK4XX=U9-B0Oyo4ELdiEJA@mail.gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <CAMZUoKnc+0pBCP84RoezKrNMrsm2oK4XX=U9-B0Oyo4ELdiEJA@mail.gmail.com>
User-Agent: NeoMutt/20170113 (1.7.2)
X-Spam-Score: -1.9
X-Spam-Score-int: -18
X-Spam-Bar: -
X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,UNPARSEABLE_RELAY
	autolearn=ham version=3.3.1
X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
	smtp1.linux-foundation.org
X-Mailman-Approved-At: Tue, 18 Dec 2018 16:11:00 +0000
Subject: Re: [bitcoin-dev] Schnorr and taproot (etc) upgrade
X-BeenThere: bitcoin-dev@lists.linuxfoundation.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Bitcoin Protocol Discussion <bitcoin-dev.lists.linuxfoundation.org>
List-Unsubscribe: <https://lists.linuxfoundation.org/mailman/options/bitcoin-dev>,
	<mailto:bitcoin-dev-request@lists.linuxfoundation.org?subject=unsubscribe>
List-Archive: <http://lists.linuxfoundation.org/pipermail/bitcoin-dev/>
List-Post: <mailto:bitcoin-dev@lists.linuxfoundation.org>
List-Help: <mailto:bitcoin-dev-request@lists.linuxfoundation.org?subject=help>
List-Subscribe: <https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev>,
	<mailto:bitcoin-dev-request@lists.linuxfoundation.org?subject=subscribe>
X-List-Received-Date: Tue, 18 Dec 2018 04:58:36 -0000

On Mon, Dec 17, 2018 at 10:18:40PM -0500, Russell O'Connor wrote:
> On Mon, Dec 17, 2018 at 3:16 PM Johnson Lau <jl2012@xbt.hk> wrote:
>     But I’m not sure if that would do more harm than good. For example, people
>     might lose money by copying an existing script template. But they might
>     also lose money in the same way as CHECKMULTISIG is disabled. So I’m not
>     sure.

Well, if CHECKSIG* and CHECKMULTISIG* are all disabled in favour of
CHECKDLS, CHECKDLSVERIFY and CHECKDLSADD with both different names and
different opcodes, copying a script template opcode-for-opcode from v0
to v1 will always fail. (With taproot, this doesn't necessarily mean you
lose money, even if the script is impossible to ever satisfy, since you
may be able to recover via the direct signature path)

>     Another related thing I’d like to bikeshed is to pop the stack after
>     OP_CLTV and OP_CSV. The same pros and cons apply.
> This one is almost a no-brainer I think.  Nearly every instance of OP_CSV is
> followed by an OP_DROP and we'd save 1 WU per OP_CSV if we pop the stack
> afterwards.

It's definitely bikeshedding so whatever; but to me, it seems like it'd
be easier for everyone to have it so that if you've got the same opcode
in v0 script and v1.0 script; they have precisely the same semantics.

(That said, constructions like "<n> CLTV <p> CHECKSIGVERIFY" that avoid
the DROP and work when you're expected to leave a true value on the
stack won't work if you have to end up with an empty stack)

Cheers,
aj