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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
|
Delivery-date: Thu, 25 Apr 2024 03:41:10 -0700
Received: from mail-yb1-f192.google.com ([209.85.219.192])
by mail.fairlystable.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
(Exim 4.94.2)
(envelope-from <bitcoindev+bncBDVJRHEUX4BRBP7GVCYQMGQEF6SMAEY@googlegroups.com>)
id 1rzwXO-00023B-GY
for bitcoindev@gnusha.org; Thu, 25 Apr 2024 03:41:10 -0700
Received: by mail-yb1-f192.google.com with SMTP id 3f1490d57ef6-dc6b269686asf1528752276.1
for <bitcoindev@gnusha.org>; Thu, 25 Apr 2024 03:41:10 -0700 (PDT)
ARC-Seal: i=2; a=rsa-sha256; t=1714041664; cv=pass;
d=google.com; s=arc-20160816;
b=VfVHXbyzbxJ01gE1PZdiM/oq9QGqvk325PjR38BrKDvP5MX9rhyfwwr2J2Umo3t3ma
RYA2clnJmWop7O7f9ZSrHgmma3b5cmYod56MPfZjqakKPj8ceoWbr3hBmVh2Jnm9cvrW
20a9AQotu/l0DTZqsEzsl5dcVe0y8QldD7EabshX5Ro5HuNCU0wpiyXUs8XP5KaGJdjJ
1Avg6Lynw+M5VynU9VTSgUT8S9zHcSYD1DO6bjIPiC8JlKUuyFs+p5DfW0zJBzukfUxS
uwCVPC2T4KE45Mn/bHpNNcLT3PLrKTbOgqvDP8foSyfu0RuYH6VDjPuECC/SHgkA0+c8
lfUw==
ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816;
h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post
:list-id:mailing-list:precedence:content-disposition:mime-version
:message-id:subject:to:from:date:sender:dkim-signature;
bh=RiQl7HIJD7UjExFex9c+4livqoCgIKPaqAAU+bZ11Hs=;
fh=iDzNaOPpYVSUK/HT/mgBc12DEDny/CPLabvYRCZ+f0Y=;
b=yerEWVLZ3/DAqpgZN+m6VpO4tcFBu78DJgcZM0f8f4IN3m82mmtybHVK4lr0NXmAMv
CjSjNyCpGXSy1h6HsbJErv1qOe+XK+kUx29EbgVJ1VcQLnx9e2iYpoJRhvQebaGAGKIt
cFlxhM4tzprKMtVvfk3mHjb1EXU37BpubsdEQeVuRasV4wlsJZMItBVRn4UwUk25LGiL
tpiC3jDi06LSVWl+zP2DQQVFtGmKIGmmQEQ3ATH2lU5NPGy8qLloeLBOFu0qbqYCqAoQ
eJrdHPlBGXn4W4hB1OkxnUHRuAI1YthHOxjMzQ3CtWCk/VsXvBAsJZrr1FuptxE8Uk/B
eAPQ==;
darn=gnusha.org
ARC-Authentication-Results: i=2; gmr-mx.google.com;
dkim=pass header.i=@reardencode.com header.s=mail header.b=nAQXcDBk;
spf=pass (google.com: domain of freedom@reardencode.com designates 206.125.169.165 as permitted sender) smtp.mailfrom=freedom@reardencode.com;
dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=reardencode.com
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=googlegroups.com; s=20230601; t=1714041664; x=1714646464; darn=gnusha.org;
h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post
:list-id:mailing-list:precedence:x-original-authentication-results
:x-original-sender:content-disposition:mime-version:message-id
:subject:to:from:date:sender:from:to:cc:subject:date:message-id
:reply-to;
bh=RiQl7HIJD7UjExFex9c+4livqoCgIKPaqAAU+bZ11Hs=;
b=Vdmn04Dw9UJyaiWldrY1hXi783X/ONo6b3Fv94WVEl7rk4/ePHNrwkaS+Qw01KnpZN
9V5Fj12H8EyuEoGaq1pIW3XdT1C0E7cxn6c4sgbBjNOPa1fjkGCGm6wcNoa5/DYtuQFc
2wnh0aChRjiNuWLSmGiia3pnXhcYPdr4jywQ8wGLCFWmdQ0mEnltjnnySOZDYLN6vayG
zQLoZ8b+pCrZn/BR5Q58+HPt3JGqNTi9L52gP+7kERKfcTbxjfg5YaU5MhDg7jXTb7xC
vr28Y+BaoPbaBB7/pe5EH0Hi6Xx17MZDQ36fKygpYiLvWT5tyKVsKoZFrQGKnJ7hoCfG
4IDA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=1e100.net; s=20230601; t=1714041664; x=1714646464;
h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post
:list-id:mailing-list:precedence:x-original-authentication-results
:x-original-sender:content-disposition:mime-version:message-id
:subject:to:from:date:x-beenthere:x-gm-message-state:sender:from:to
:cc:subject:date:message-id:reply-to;
bh=RiQl7HIJD7UjExFex9c+4livqoCgIKPaqAAU+bZ11Hs=;
b=qU6pku4wL6b4tdQmYIRHfJrLC5QBFtSGAERf1NvGpEKCDJ9+xvS02BBO0UWZQetzBh
yuOxE0DjYKDrrND56b7F/988vcAM4PIXKouNA5/xHRYqr9L768A+bI94ztSH8Xiyn7+K
ClmRewzmxGi4Q3n9TTcYMQsPNWyncx3zNDZsUHahKyWXVFuwgtDdXyzqElJVYA4Pproz
R35Se8dJpgvE/m9aOhkHwyiC3nyTheeJAbeJ4Sm/53jZXbNqhJrvVA7HNwyLWtZA4d8H
mo4Rb9Dse6wpc7pUiRBk9flq27Zw7NCoNE7yro9xpgyhc9OPRKXI/kUc+YQ7BKQRvHMr
ABPw==
Sender: bitcoindev@googlegroups.com
X-Forwarded-Encrypted: i=2; AJvYcCV61HhFDQt277QUs1+Cra+FbcRRy5yHWTnF8/PTOSwacfFS8VnCVpEQ44LEe5qBKehM6hl5O9ixKITaZRaBRF4q36MEgHc=
X-Gm-Message-State: AOJu0Yw3K0VBGVwWtG0173NnFVz41xh4CkNmOWRoVo11b5l9e7bC+jgG
Fq/XH+HPnEnwNUcBv/Yrg1WF2P/5z1W6xvyw3+6s8LMLqsryNBuu
X-Google-Smtp-Source: AGHT+IEEE7UjY4afsH6GUXP83KtnEZ10ZFNpIrPXSPbLkhdtiMKBHhxFmfez8lxsQhMfBaRTlaD+Rw==
X-Received: by 2002:a25:d392:0:b0:de5:51dd:87e4 with SMTP id e140-20020a25d392000000b00de551dd87e4mr4832036ybf.31.1714041664268;
Thu, 25 Apr 2024 03:41:04 -0700 (PDT)
X-BeenThere: bitcoindev@googlegroups.com
Received: by 2002:a25:948:0:b0:de5:9eb1:327d with SMTP id 3f1490d57ef6-de59eb13f89ls3484276.2.-pod-prod-06-us;
Thu, 25 Apr 2024 03:41:02 -0700 (PDT)
X-Received: by 2002:a0d:ea8a:0:b0:618:8ec2:ccb0 with SMTP id t132-20020a0dea8a000000b006188ec2ccb0mr1287475ywe.7.1714041662796;
Thu, 25 Apr 2024 03:41:02 -0700 (PDT)
Received: by 2002:a05:690c:dd1:b0:611:9f18:9d1 with SMTP id 00721157ae682-61b84c15d1ams7b3;
Wed, 24 Apr 2024 22:22:21 -0700 (PDT)
X-Received: by 2002:a25:d392:0:b0:de5:51dd:87e4 with SMTP id e140-20020a25d392000000b00de551dd87e4mr4282258ybf.31.1714022541091;
Wed, 24 Apr 2024 22:22:21 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; t=1714022541; cv=none;
d=google.com; s=arc-20160816;
b=GE9z3N8NSdeN4vN8v6aKpdewl/eOWzrQFd8Qu96WpfF0zqzpR6QyqMVphxQ3deFZX4
F4KUJ+49hPrrkDbalXBncmLH+o7N5O6rG0FvVJgCDRaEIxAp6iz9hnD5JSi7er+g25Vb
rY3UIOPDJEMM9he/cfTZKOErHe725J59HZh4FihVn3AZbstcRwrEjumjVyrfH4DTLupu
LgKB119u4i/ZHVTQPSUk2t/J6KH0LVNqMZueMZs3Yvnnj5IQC1uDlRKAupnO9m2OaaRI
qTmS4QcupC7Z7UDWt2wjUzReWk7w00Bw+9TgcMrHPn7IH9RxmH8Tfm8iQKCll5uxHzHG
aU4A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816;
h=content-disposition:mime-version:message-id:subject:to:from
:dkim-signature:date;
bh=3GcQ6GTWMTvUoUfzAso5DeFCnBggzhfoQ4ZTJB6vq80=;
fh=VcGcg+Zjs9gw1uDcHbxsAILhBAcecnbJzZRdxgKVDIc=;
b=0c+YOGO90WGPRAxgYmsTmlVcBXYTAkB4zOJIfxsRzZLEEvWVS61i+IIISNphE1W/jq
oMn+ZwIpNPkPx0JQD6UD96rEF13/YZZNm0qC4kJhPdHcyVUsoTYZhsSN5s2lJzb2+E6N
isv0uOMgGkpfiNK+ZgcuWXRyo2LnzvL4RXz2l4c1mUPA060ObMxXhUNwx8ZdVOIKljJ3
pbm7cQhBebj4mpjrVsw7oMcLbUYhe/k/i3uZ+LQbcg5Fy0Hx7Fujq3Lz5RE1UAwmb8R1
njAFgIx0RUdWSRElPwThQwmUVFCYG0T6CkA4sXSFzY61QD+Cbj+2mAwB+e9pmSMdgdBS
UKuw==;
dara=google.com
ARC-Authentication-Results: i=1; gmr-mx.google.com;
dkim=pass header.i=@reardencode.com header.s=mail header.b=nAQXcDBk;
spf=pass (google.com: domain of freedom@reardencode.com designates 206.125.169.165 as permitted sender) smtp.mailfrom=freedom@reardencode.com;
dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=reardencode.com
Received: from mail.reardencode.com (mail.reardencode.com. [206.125.169.165])
by gmr-mx.google.com with ESMTPS id w6-20020a25ac06000000b00dcc3d9efcb7si1776262ybi.3.2024.04.24.22.22.20
for <bitcoindev@googlegroups.com>
(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
Wed, 24 Apr 2024 22:22:20 -0700 (PDT)
Received-SPF: pass (google.com: domain of freedom@reardencode.com designates 206.125.169.165 as permitted sender) client-ip=206.125.169.165;
Date: Wed, 24 Apr 2024 22:22:13 -0700
From: Brandon Black <freedom@reardencode.com>
To: bitcoindev@googlegroups.com
Subject: [bitcoindev] BIP for OP_INTERNALKEY
Message-ID: <Zinohf1n8-aWN6G9@console>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Disposition: inline
X-Operating-System: Linux 6.1.74 x86_64
X-Original-Sender: freedom@reardencode.com
X-Original-Authentication-Results: gmr-mx.google.com; dkim=pass
header.i=@reardencode.com header.s=mail header.b=nAQXcDBk; spf=pass
(google.com: domain of freedom@reardencode.com designates 206.125.169.165 as
permitted sender) smtp.mailfrom=freedom@reardencode.com; dmarc=pass
(p=NONE sp=NONE dis=NONE) header.from=reardencode.com
Precedence: list
Mailing-list: list bitcoindev@googlegroups.com; contact bitcoindev+owners@googlegroups.com
List-ID: <bitcoindev.googlegroups.com>
X-Google-Group-Id: 786775582512
List-Post: <https://groups.google.com/group/bitcoindev/post>, <mailto:bitcoindev@googlegroups.com>
List-Help: <https://groups.google.com/support/>, <mailto:bitcoindev+help@googlegroups.com>
List-Archive: <https://groups.google.com/group/bitcoindev
List-Subscribe: <https://groups.google.com/group/bitcoindev/subscribe>, <mailto:bitcoindev+subscribe@googlegroups.com>
List-Unsubscribe: <mailto:googlegroups-manage+786775582512+unsubscribe@googlegroups.com>,
<https://groups.google.com/group/bitcoindev/subscribe>
X-Spam-Score: -0.8 (/)
Hello list,
I'm currently failing to find the original reference discussion for
adding OP_INTERNALKEY to tapscript. I believe it was in the context of
the SIGHASH_ANYPREVOUT proposal which opted instead to access the
internalkey as a special key with value `0x01`. Regardless, here[0] is a
BIP for adding OP_INTERNALKEY to tapscript to allow access to the
taproot internal key. As noted below, this helps certain classes of
script come closer to matching segwitv0 in byte efficiency, which can be
particularly useful for protocols such as Lightning where the same
signers may need to sign a script path in some cases, and a key path in
others.
------------
## Abstract
This BIP describes a new tapscript opcode (`OP_INTERNALKEY`) which
pushes the taproot internal key to the stack.
## Specification
When verifying taproot script spends having leaf version `0xc0` (as
defined in [BIP 342]), `OP_INTERNALKEY` replaces `OP_SUCCESS203` (0xcb).
`OP_INTERNALKEY` pushes the taproot internal key, as defined in [BIP
341], to the stack.
## Motivation
### Key spend with additional conditions
When building taproot outputs, especially those secured by an aggregate
key representing more than one signer, the parties may wish to
collaborate on signing with the taproot internal key, but only with
additional script restrictions. In this case, `OP_INTERNALKEY` saves 8
vBytes.
### Mitigated control block overhead for scripts using hash locks
In cases where script path spending is not desired, the internal key may
be set to a NUMS point whose bytes would otherwise be required in a
tapscript. This could be used with any hash locked transaction, for
example, to save 8 vBytes.
Note: The internal key must be the X coordinate of a point on the
SECP256K1 curve, so any such hash must be checked and modified until it
is such an X coordinate. This will typically take approximately 2
attempts.
## Reference Implementation
A reference implementation is provided here:
https://github.com/bitcoin/bitcoin/pull/29269
## Backward Compatibility
By constraining the behavior of an OP_SUCCESS opcode, deployment of the
BIP can be done in a backwards compatible, soft-fork manner. If anyone
were to rely on the OP_SUCCESS behavior of `OP_SUCCESS203`,
`OP_INTERNALKEY` would invalidate their spend.
## Deployment
TBD
## Copyright
This document is licensed under the 3-clause BSD license.
[BIP 341]: https://github.com/bitcoin/bips/blob/master/bip-0341.mediawiki
[BIP 342]: https://github.com/bitcoin/bips/blob/master/bip-0342.mediawiki
------------
[0]: https://github.com/bitcoin/bips/pull/1534
--
--Brandon
--
You received this message because you are subscribed to the Google Groups "Bitcoin Development Mailing List" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bitcoindev+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/bitcoindev/Zinohf1n8-aWN6G9%40console.
|