summaryrefslogtreecommitdiff
path: root/41/123d077e0d170423dd293880b08a608bafadef
blob: b0aa1d076ca878616ea835ca21aa61a1ee1a3390 (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
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
Return-Path: <jeremy.l.rubin@gmail.com>
Received: from smtp1.osuosl.org (smtp1.osuosl.org [IPv6:2605:bc80:3010::138])
 by lists.linuxfoundation.org (Postfix) with ESMTP id 0DA65C0033;
 Sun, 20 Feb 2022 16:45:50 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by smtp1.osuosl.org (Postfix) with ESMTP id DADE981462;
 Sun, 20 Feb 2022 16:45:49 +0000 (UTC)
X-Virus-Scanned: amavisd-new at osuosl.org
X-Spam-Flag: NO
X-Spam-Score: -2.098
X-Spam-Level: 
X-Spam-Status: No, score=-2.098 tagged_above=-999 required=5
 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1,
 DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001,
 HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001,
 SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: smtp1.osuosl.org (amavisd-new);
 dkim=pass (2048-bit key) header.d=gmail.com
Received: from smtp1.osuosl.org ([127.0.0.1])
 by localhost (smtp1.osuosl.org [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id 5QKF2KGmJP2h; Sun, 20 Feb 2022 16:45:49 +0000 (UTC)
X-Greylist: whitelisted by SQLgrey-1.8.0
X-Greylist: whitelisted by SQLgrey-1.8.0
Received: from mail-lf1-x134.google.com (mail-lf1-x134.google.com
 [IPv6:2a00:1450:4864:20::134])
 by smtp1.osuosl.org (Postfix) with ESMTPS id 0238181451;
 Sun, 20 Feb 2022 16:45:48 +0000 (UTC)
Received: by mail-lf1-x134.google.com with SMTP id b11so14353033lfb.12;
 Sun, 20 Feb 2022 08:45:48 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112;
 h=mime-version:references:in-reply-to:from:date:message-id:subject:to
 :cc; bh=9ypqYFq6n1M/1lSZR7uAC8tCwVIoardhol8QV6hpE+g=;
 b=Ttq23W6nz/8H1QHAL5xgt4d2P7QcxHwU7hrqsHN6sMR1Yozzao5lmCpjUpDc0wFMRe
 zpClEUPVRkv6DyG6pltCN7VD3/j1LEJRWPWBxmtId+9M0d4q3PXB/0MF79f5ZQyOSMTz
 ZhhO65E75qF3G/TeSpuEPsoa5X/R5gLlSE5lg1Sb/oDh79vBQeTOWyU7dHfAtIHNiQEB
 LGadDSMSvtgIsRMvebqmiVVjqEfWbL9fP8BULszrBCEo1m2x4o3ZuOlO/AyqyjedcoYv
 W7wKQIoRV4/dSvOMt0u5UayJ52mgWG/UZbYmLsUt0pXmYBikpqGq7qzCCnYDEzyEX1SS
 3A+w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20210112;
 h=x-gm-message-state:mime-version:references:in-reply-to:from:date
 :message-id:subject:to:cc;
 bh=9ypqYFq6n1M/1lSZR7uAC8tCwVIoardhol8QV6hpE+g=;
 b=A6ku8O15Sc4i5JApLzk4JYddqMJ9l47YHnFJ6FNnSXDsVVThh7wvxSYx6TPbqyyM6+
 cCdBdbeMVkPYS356Tmw3AXbYXX8sEyKTyHuFIhqQjk0GskiFlMjDoR5F17DUR5+X4Fz8
 KdKfXEGhcHGR52flNEFVoEOJ1gBFvb/8nO3UCeMXnAHiTdljehRulkrfpdIYVoMg8Vc/
 gmBs+N9NYA8ZC+BfJX/AuNR/Y5c0eTSq87sB53/OKp0q+1twA1rm/FnLXFlE7abK4G87
 /LM9KyHuDNeRNC4nuHcFT21zLoE10AaleepZ8nurcMPWJSw5yiRL78YivrMHaYvpMbqT
 DrIA==
X-Gm-Message-State: AOAM531NFDHOcrnQlbNw0DtAnEepACJqHJx8ZEYdnEnFUyk9LcqkbB0I
 1vAS367GXW3IdWrB6HKBBpQ8aAaujVBYCE1opYU=
X-Google-Smtp-Source: ABdhPJyTg2xlETejbZOb0OSHDxMJpKYTZR3NUYXB2BkWi+TgczYIwa4P+OzsnAPyW4xyqu7iA6kNZfZ6Ry/nPvLQwhI=
X-Received: by 2002:ac2:539b:0:b0:443:db38:ac87 with SMTP id
 g27-20020ac2539b000000b00443db38ac87mr3632895lfh.247.1645375546901; Sun, 20
 Feb 2022 08:45:46 -0800 (PST)
MIME-Version: 1.0
References: <CAD5xwhik6jVQpP2_ss7d5o+pPLsqDCHuaXG41AMKHVYhZMXF1w@mail.gmail.com>
 <YgS3sJvg6kG3WnVJ@petertodd.org>
 <CAD5xwhi3Ja8gdU2h_6-1ck4kdU0TiC2Kx5O-61=f9=6JQSMs=A@mail.gmail.com>
 <YhAwr7+9mGJAe2/p@petertodd.org>
 <CAD5xwhi=sKckFZew75tZTogoeFABraWtJ6qMC+RgZjcirxYyZw@mail.gmail.com>
 <YhC6yjoe3bAfBS+W@petertodd.org>
 <kJWi5A4sc0UEU4JrtSg3gbR_M1UTp15XW3Oj5B5cQZQvygFn9pIqrxVxCU0sFjG5L05fqDFH6nz2PnU0sE_zVNMGsCXzmtJeDAc1kEYmYKA=@protonmail.com>
 <590cf52920040c9cf7517b219624bbb5@willtech.com.au>
 <W70OBHZ0-DtXNdUQfA6YOmC3BVrl0zSo-xl8IQRIRSkKh7xnEV3QQwOYrgSQ8L1HvWML_bPEXB23tad6ta4lnb3caVR4rPu0mjCmVMRD264=@protonmail.com>
 <CAD5xwhgEeTETburW=OBgHNe_V1kk8o06TDQLiLgdfmP2AEVuPg@mail.gmail.com>
 <erAXod9aNdpQ3eMQQsfHwcaCe0S0rGU1Z9VnDy2yxlywBaSdaMJOEZ0XnGbIMSjRm9e3M4rJCwQuIgoNzrvw57e3jYxvi1cZPTeFYCjZ9vU=@protonmail.com>
In-Reply-To: <erAXod9aNdpQ3eMQQsfHwcaCe0S0rGU1Z9VnDy2yxlywBaSdaMJOEZ0XnGbIMSjRm9e3M4rJCwQuIgoNzrvw57e3jYxvi1cZPTeFYCjZ9vU=@protonmail.com>
From: Jeremy Rubin <jeremy.l.rubin@gmail.com>
Date: Sun, 20 Feb 2022 08:45:35 -0800
Message-ID: <CAD5xwhh_evfyQ-xokaX8URDk3GXQyET+bn3+D33Z+eSGkKJGdg@mail.gmail.com>
To: ZmnSCPxj <ZmnSCPxj@protonmail.com>, 
 Bitcoin Protocol Discussion <bitcoin-dev@lists.linuxfoundation.org>
Content-Type: multipart/alternative; boundary="000000000000fec68105d875d8bb"
Cc: lightning-dev <lightning-dev@lists.linuxfoundation.org>
Subject: Re: [bitcoin-dev] [Lightning-dev] [Pre-BIP] Fee Accounts
X-BeenThere: bitcoin-dev@lists.linuxfoundation.org
X-Mailman-Version: 2.1.15
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: Sun, 20 Feb 2022 16:45:50 -0000

--000000000000fec68105d875d8bb
Content-Type: text/plain; charset="UTF-8"

Morning!

>
> For the latter case, CPFP would work and already exists.
> **Unless** you are doing something complicated and offchain-y and involves
> relative locktimes, of course.
>
>
The "usual" design I recommend for Vaults contains something that is like:

{<maturity> CSV <pk_hot> CHECKSIG, <pk_cold> CHECKSIG}
or
{<maturity> CSV <pk_hot> CHECKSIG, <H(tx to: <pk_cold> CHECKSIG)> CTV}


where after an output is created, it has to hit maturity before hot
spendable but can be kicked to recovery any time before (optional: use CTV
to actually transition on chain removing hot wallet, if cold key is hard to
access).


Not that this means if you're waiting for one of these outputs to be
created on chain, you cannot spend from the hot key since it needs to
confirm on chain first. Spending from the cold key for CPFP'ing the hot is
an 'invalid move' (emergency key for non emergency sitch)

Thus in order to CPFP, you would need a separate output just for CPFPing
that is not subject to these restrictions, or some sort of RBF-able addable
input/output. Or, Sponsors.


Jeremy

--000000000000fec68105d875d8bb
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div class=3D"gmail_quote"><div class=3D"gmail_default" st=
yle=3D"font-family:arial,helvetica,sans-serif;font-size:small;color:rgb(0,0=
,0)">Morning!</div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0p=
x 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color=
:rgb(204,204,204);padding-left:1ex">
<br>
For the latter case, CPFP would work and already exists.<br>
**Unless** you are doing something complicated and offchain-y and involves =
relative locktimes, of course.<br><br></blockquote><div><br></div><div clas=
s=3D"gmail_default" style=3D"font-family:arial,helvetica,sans-serif;font-si=
ze:small;color:rgb(0,0,0)">The &quot;usual&quot; design I recommend for Vau=
lts contains something that is like:</div><div class=3D"gmail_default" styl=
e=3D"font-family:arial,helvetica,sans-serif;font-size:small;color:rgb(0,0,0=
)"><br></div><div class=3D"gmail_default" style=3D"font-family:arial,helvet=
ica,sans-serif;font-size:small;color:rgb(0,0,0)"><span style=3D"color:rgb(3=
4,34,34)">{&lt;maturity&gt; CSV &lt;pk_hot&gt; CHECKSIG, &lt;pk_cold&gt; CH=
ECKSIG}</span><br></div><div class=3D"gmail_default" style=3D"font-family:a=
rial,helvetica,sans-serif;font-size:small;color:rgb(0,0,0)"><span style=3D"=
color:rgb(34,34,34)">or</span></div><div class=3D"gmail_default" style=3D"f=
ont-family:arial,helvetica,sans-serif;font-size:small;color:rgb(0,0,0)"><di=
v class=3D"gmail_default"><span style=3D"color:rgb(34,34,34)">{&lt;maturity=
&gt; CSV &lt;pk_hot&gt; CHECKSIG, &lt;H(tx to: &lt;pk_cold&gt; CHECKSIG)&gt=
; CTV}</span><br></div><br class=3D"gmail-Apple-interchange-newline"></div>=
<div class=3D"gmail_default" style=3D"font-family:arial,helvetica,sans-seri=
f;font-size:small;color:rgb(0,0,0)"><span style=3D"color:rgb(34,34,34)"><br=
></span></div><div class=3D"gmail_default" style=3D"font-family:arial,helve=
tica,sans-serif;font-size:small">where after an output is created, it has t=
o hit maturity before hot spendable but can be kicked to recovery any time =
before (optional: use CTV to actually transition on chain removing hot wall=
et, if cold key is hard to access).</div><div class=3D"gmail_default" style=
=3D"font-family:arial,helvetica,sans-serif;font-size:small"><br></div><div =
class=3D"gmail_default" style=3D"font-family:arial,helvetica,sans-serif;fon=
t-size:small"><br></div><div class=3D"gmail_default" style=3D"font-family:a=
rial,helvetica,sans-serif;font-size:small">Not that this means if you&#39;r=
e waiting for one of these outputs to be created on chain, you cannot spend=
 from the hot key since it needs to confirm on chain first. Spending from t=
he cold key for CPFP&#39;ing the hot is an &#39;invalid move&#39; (emergenc=
y key for non emergency sitch)</div><div class=3D"gmail_default" style=3D"f=
ont-family:arial,helvetica,sans-serif;font-size:small"><br></div><div class=
=3D"gmail_default" style=3D"font-family:arial,helvetica,sans-serif;font-siz=
e:small">Thus in order to CPFP, you would need a separate output just for C=
PFPing that is not subject to these restrictions, or some sort of RBF-able =
addable input/output. Or, Sponsors.</div><div class=3D"gmail_default" style=
=3D"font-family:arial,helvetica,sans-serif;font-size:small"><br></div><div =
class=3D"gmail_default" style=3D"font-family:arial,helvetica,sans-serif;fon=
t-size:small"><br></div><div class=3D"gmail_default" style=3D"font-family:a=
rial,helvetica,sans-serif;font-size:small">Jeremy</div><div class=3D"gmail_=
default" style=3D"font-family:arial,helvetica,sans-serif;font-size:small"><=
br></div></div></div>

--000000000000fec68105d875d8bb--