summaryrefslogtreecommitdiff
path: root/b4/e89932c77e07523a1b2a5d29dbb28d32b3074f
blob: 5ebd152785e77754bd0e451bbc3bce3e45af55b2 (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
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
221
222
223
224
225
226
227
228
229
230
Return-Path: <jl2012@xbt.hk>
Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org
	[172.17.192.35])
	by mail.linuxfoundation.org (Postfix) with ESMTPS id B2514FF0
	for <bitcoin-dev@lists.linuxfoundation.org>;
	Fri, 24 May 2019 19:27:44 +0000 (UTC)
X-Greylist: delayed 00:15:02 by SQLgrey-1.7.6
Received: from sender4-of-o59.zoho.com (sender4-of-o59.zoho.com
	[136.143.188.59])
	by smtp1.linuxfoundation.org (Postfix) with ESMTPS id D0F7EF4
	for <bitcoin-dev@lists.linuxfoundation.org>;
	Fri, 24 May 2019 19:27:43 +0000 (UTC)
ARC-Seal: i=1; a=rsa-sha256; t=1558725159; cv=none; d=zoho.com; s=zohoarc; 
	b=Ger06Co46VUgGfx7bpeLybJEHda458JcFQQ/aYCnzsCioDt1pX+C7KRckkGCgq28MtvuR/qe6gwPOvFqQH8iRk5wFAijscTK5r++zwECO81A5+tayGOom0mpsNiu/eUdXhz5Wz0U+d0H/sUkCYALdOcs1Pl2bRy29ee8rLuFxOU=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com;
	s=zohoarc; t=1558725159;
	h=Content-Type:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:To:ARC-Authentication-Results;
	bh=zxwufjXJDHuXOtyLVAGQRNSlTFdzdrg5TGNkpP17Ngo=; 
	b=EjCYLP5UwXMJBcA6nK0ogTk5W2M8Q5BEUWB4T0ALI7+aMNCrVvprec1/YfEelQHj8eqz/U0kW5huCmnSdKNuhN0LIji5ebHD1bkqb/B3WO45h9M+y1DpjLuAdanvtfU/Bh5B8MkBqczz47gID1EXfoLiDdQfDCCXDq4Wpkl419I=
ARC-Authentication-Results: i=1; mx.zoho.com; dkim=pass  header.i=xbt.hk;
	spf=pass  smtp.mailfrom=jl2012@xbt.hk;
	dmarc=pass header.from=<jl2012@xbt.hk> header.from=<jl2012@xbt.hk>
Received: from [192.168.1.2] (1-64-133-115.static.netvigator.com
	[1.64.133.115]) by mx.zohomail.com
	with SMTPS id 1558725156855194.0009829475515;
	Fri, 24 May 2019 12:12:36 -0700 (PDT)
From: Johnson Lau <jl2012@xbt.hk>
Content-Type: multipart/alternative;
	boundary="Apple-Mail=_0F589C2A-70B6-4046-9EF7-5EAC5FCD4AB2"
Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.11\))
Date: Sat, 25 May 2019 03:12:32 +0800
References: <CAD5xwhgHyR5qdd09ikvA_vgepj4o+Aqb0JA_T6FuqX56ZNe1RQ@mail.gmail.com>
To: Jeremy <jlrubin@mit.edu>,
	bitcoin-dev <bitcoin-dev@lists.linuxfoundation.org>
In-Reply-To: <CAD5xwhgHyR5qdd09ikvA_vgepj4o+Aqb0JA_T6FuqX56ZNe1RQ@mail.gmail.com>
Message-Id: <52AFAB05-040B-4310-9328-96E14A779D60@xbt.hk>
X-Mailer: Apple Mail (2.3445.104.11)
X-ZohoMailClient: External
X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,HTML_MESSAGE,
	RCVD_IN_DNSWL_NONE 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: Sat, 25 May 2019 12:05:39 +0000
Subject: Re: [bitcoin-dev] Congestion Control via OP_CHECKOUTPUTSHASHVERIFY
 proposal
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: Fri, 24 May 2019 19:27:44 -0000


--Apple-Mail=_0F589C2A-70B6-4046-9EF7-5EAC5FCD4AB2
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=utf-8

Functionally, COHV is a proper subset of ANYPREVOUT (NOINPUT). The only =
justification to do both is better space efficiency when making =
covenant.

With eltoo as a clear usecase of ANYPREVOUT, I=E2=80=99m not sure if we =
really want a very restricted opcode like COHV. But these are my =
comments, anyway:

1. The =E2=80=9Cone input=E2=80=9D rule could be relaxed to =E2=80=9Cfirst=
 input=E2=80=9D rule. This allows adding more inputs as fees, as an =
alternative to CPFP. In case the value is insufficient to pay the =
required outputs, it is also possible to rescue the UTXO by adding more =
inputs.

2. While there is no reason to use non-minimal push, there is neither a =
reason to require minimal push. Since minimal push is never a consensus =
rule, COHV shouldn=E2=80=99t be a special case.

3. As I suggested in a different post =
(https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2019-May/016963.h=
tml =
<https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2019-May/016963.h=
tml>), the argument for requiring a prevout binding signature may also =
be applicable to COHV

> On 21 May 2019, at 4:58 AM, Jeremy via bitcoin-dev =
<bitcoin-dev@lists.linuxfoundation.org> wrote:
>=20
> Hello bitcoin-devs,
>=20
> Below is a link to a BIP Draft for a new opcode, =
OP_CHECKOUTPUTSHASHVERIFY. This opcode enables an easy-to-use trustless =
congestion control techniques via a rudimentary, limited form of =
covenant which does not bear the same technical and social risks of =
prior covenant designs.
>=20
> Congestion control allows Bitcoin users to confirm payments to many =
users in a single transaction without creating the UTXO on-chain until a =
later time. This therefore improves the throughput of confirmed =
payments, at the expense of latency on spendability and increased =
average block space utilization. The BIP covers this use case in detail, =
and a few other use cases lightly.
>=20
> The BIP draft is here:
> =
https://github.com/JeremyRubin/bips/blob/op-checkoutputshashverify/bip-cos=
hv.mediawiki =
<https://github.com/JeremyRubin/bips/blob/op-checkoutputshashverify/bip-co=
shv.mediawiki>
>=20
> The BIP proposes to deploy the change simultaneously with Taproot as =
an OPSUCCESS, but it could be deployed separately if needed.
>=20
> An initial reference implementation of the consensus changes and  =
tests which demonstrate how to use it for basic congestion control is =
available at =
https://github.com/JeremyRubin/bitcoin/tree/congestion-control =
<https://github.com/JeremyRubin/bitcoin/tree/congestion-control>.  The =
changes are about 74 lines of code on top of sipa's Taproot reference =
implementation.
>=20
> Best regards,
>=20
> Jeremy Rubin
> _______________________________________________
> bitcoin-dev mailing list
> bitcoin-dev@lists.linuxfoundation.org
> https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev


--Apple-Mail=_0F589C2A-70B6-4046-9EF7-5EAC5FCD4AB2
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=utf-8

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html; =
charset=3Dutf-8"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; line-break: after-white-space;" =
class=3D"">Functionally, COHV is a proper subset of ANYPREVOUT =
(NOINPUT). The only justification to do both is better space efficiency =
when making covenant.<div class=3D""><br class=3D""></div><div =
class=3D"">With eltoo as a clear usecase of ANYPREVOUT, I=E2=80=99m not =
sure if we really want a very restricted opcode like COHV. But these are =
my comments, anyway:</div><div class=3D""><br class=3D""></div><div =
class=3D"">1. The =E2=80=9Cone input=E2=80=9D rule could be relaxed to =
=E2=80=9Cfirst input=E2=80=9D rule. This allows adding more inputs as =
fees, as an alternative to CPFP. In case the value is insufficient to =
pay the required outputs, it is also possible to rescue the UTXO by =
adding more inputs.</div><div class=3D""><br class=3D""></div><div =
class=3D"">2. While there is no reason to use non-minimal push, there is =
neither a reason to require minimal push. Since minimal push is never a =
consensus rule, COHV shouldn=E2=80=99t be a special case.</div><div =
class=3D""><br class=3D""></div><div class=3D"">3. As I suggested in a =
different post (<a =
href=3D"https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2019-May/0=
16963.html" =
class=3D"">https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2019-Ma=
y/016963.html</a>), the argument for requiring a prevout binding =
signature may also be applicable to COHV<br class=3D""><div><br =
class=3D""><blockquote type=3D"cite" class=3D""><div class=3D"">On 21 =
May 2019, at 4:58 AM, Jeremy via bitcoin-dev &lt;<a =
href=3D"mailto:bitcoin-dev@lists.linuxfoundation.org" =
class=3D"">bitcoin-dev@lists.linuxfoundation.org</a>&gt; wrote:</div><br =
class=3D"Apple-interchange-newline"><div class=3D""><div dir=3D"ltr" =
class=3D""><div class=3D"gmail_default" style=3D"font-family: arial, =
helvetica, sans-serif; font-size: small;">Hello bitcoin-devs,<br =
class=3D"">
<br class=3D"">Below is a link to a BIP Draft for a new opcode, =
OP_CHECKOUTPUTSHASHVERIFY. This opcode enables an easy-to-use trustless =
congestion control techniques via a rudimentary, limited form of =
covenant which does not bear the same technical and social risks of =
prior covenant designs.<br class=3D""></div><div class=3D"gmail_default" =
style=3D"font-family: arial, helvetica, sans-serif; font-size: =
small;"><br class=3D""></div><div class=3D"gmail_default" =
style=3D"font-family: arial, helvetica, sans-serif; font-size: =
small;">Congestion control allows Bitcoin users to confirm payments to =
many users in a single transaction without creating the UTXO on-chain =
until a later time. This therefore improves the throughput of confirmed =
payments, at the expense of latency on spendability and increased =
average block space utilization. The BIP covers this use case in detail, =
and a few other use cases lightly.<br class=3D""></div><div =
class=3D"gmail_default" style=3D"font-family: arial, helvetica, =
sans-serif; font-size: small;"><br class=3D"">
The BIP draft is here:</div><div class=3D"gmail_default" =
style=3D"font-family: arial, helvetica, sans-serif; font-size: =
small;"><div class=3D"gmail_default" style=3D"font-family: arial, =
helvetica, sans-serif; font-size: small;"><a =
href=3D"https://github.com/JeremyRubin/bips/blob/op-checkoutputshashverify=
/bip-coshv.mediawiki" =
class=3D"">https://github.com/JeremyRubin/bips/blob/op-checkoutputshashver=
ify/bip-coshv.mediawiki</a></div><div class=3D"gmail_default" =
style=3D"font-family: arial, helvetica, sans-serif; font-size: =
small;"><br class=3D""></div><div class=3D"gmail_default" =
style=3D"font-family: arial, helvetica, sans-serif; font-size: =
small;">The BIP proposes to deploy the change simultaneously with =
Taproot as an OPSUCCESS, but it could be deployed separately if =
needed.<br class=3D""></div><div class=3D"gmail_default" =
style=3D"font-family: arial, helvetica, sans-serif; font-size: =
small;"><br class=3D""></div><div class=3D"gmail_default" =
style=3D"font-family: arial, helvetica, sans-serif; font-size: =
small;">An initial reference implementation of the consensus changes =
and&nbsp; tests which demonstrate how to use it for basic congestion =
control is available at <a =
href=3D"https://github.com/JeremyRubin/bitcoin/tree/congestion-control" =
class=3D"">https://github.com/JeremyRubin/bitcoin/tree/congestion-control<=
/a>.&nbsp; The changes are about 74 lines of code on top of sipa's =
Taproot reference implementation.<br class=3D""></div><div =
class=3D"gmail_default" style=3D"font-family: arial, helvetica, =
sans-serif; font-size: small;"><br class=3D""></div><div =
class=3D"gmail_default" style=3D"font-family: arial, helvetica, =
sans-serif; font-size: small;">Best regards,</div><div =
class=3D"gmail_default" style=3D"font-family: arial, helvetica, =
sans-serif; font-size: small;"><br class=3D""></div><div =
class=3D"gmail_default" style=3D"font-family: arial, helvetica, =
sans-serif; font-size: small;">Jeremy Rubin<br =
class=3D""></div></div></div>
_______________________________________________<br class=3D"">bitcoin-dev =
mailing list<br class=3D""><a =
href=3D"mailto:bitcoin-dev@lists.linuxfoundation.org" =
class=3D"">bitcoin-dev@lists.linuxfoundation.org</a><br =
class=3D"">https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev<=
br class=3D""></div></blockquote></div><br class=3D""></div></body></html>=

--Apple-Mail=_0F589C2A-70B6-4046-9EF7-5EAC5FCD4AB2--