summaryrefslogtreecommitdiff
path: root/89/6055b5e3b31bdd6375ad5c51664f2de04efbd7
blob: ba485a8010b1e83ff95e110d68ca3d9d51cc2bdd (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
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
Return-Path: <antoine.riard@gmail.com>
Received: from smtp2.osuosl.org (smtp2.osuosl.org [IPv6:2605:bc80:3010::133])
 by lists.linuxfoundation.org (Postfix) with ESMTP id 9544BC002D
 for <bitcoin-dev@lists.linuxfoundation.org>;
 Tue, 26 Jul 2022 03:20:45 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by smtp2.osuosl.org (Postfix) with ESMTP id 6FCD540439
 for <bitcoin-dev@lists.linuxfoundation.org>;
 Tue, 26 Jul 2022 03:20:45 +0000 (UTC)
DKIM-Filter: OpenDKIM Filter v2.11.0 smtp2.osuosl.org 6FCD540439
Authentication-Results: smtp2.osuosl.org;
 dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com
 header.a=rsa-sha256 header.s=20210112 header.b=YsM8RJqT
X-Virus-Scanned: amavisd-new at osuosl.org
X-Spam-Flag: NO
X-Spam-Score: -1.598
X-Spam-Level: 
X-Spam-Status: No, score=-1.598 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, URI_NOVOWEL=0.5] autolearn=ham autolearn_force=no
Received: from smtp2.osuosl.org ([127.0.0.1])
 by localhost (smtp2.osuosl.org [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id yTZ3nVMD_h6h
 for <bitcoin-dev@lists.linuxfoundation.org>;
 Tue, 26 Jul 2022 03:20:44 +0000 (UTC)
X-Greylist: whitelisted by SQLgrey-1.8.0
DKIM-Filter: OpenDKIM Filter v2.11.0 smtp2.osuosl.org E24E44015A
Received: from mail-il1-x131.google.com (mail-il1-x131.google.com
 [IPv6:2607:f8b0:4864:20::131])
 by smtp2.osuosl.org (Postfix) with ESMTPS id E24E44015A
 for <bitcoin-dev@lists.linuxfoundation.org>;
 Tue, 26 Jul 2022 03:20:43 +0000 (UTC)
Received: by mail-il1-x131.google.com with SMTP id d4so6683185ilc.8
 for <bitcoin-dev@lists.linuxfoundation.org>;
 Mon, 25 Jul 2022 20:20:43 -0700 (PDT)
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=qb8P1DYilWN3aM4ZipI74Jx3JHpXuJoT2vzZudKjt88=;
 b=YsM8RJqT8X4x8l3HZYjuvPhOXZaJWDCGk3IXxWz55y9JkW1WuX63a2YE0Y6RuoqccK
 FUrl/JfVhbndnpK4GLUeqEV1g2oVuofhOqoQMFJeQwI77tX2MHd8FYluqipdQZO6TP1N
 xOR1UPUP4i6ymGYJG+UmfKEKVCF58YzUfBp2QWFgBbs6nD7fZJjAD0rKMGrZJOfpj/w9
 awSIFgWhLT91TibvWXEqy1uqp7qVLitFEZGfEx4YgKbt6U/A5mycP0JqD4kGomaTv7/o
 BYywlsk18KPVgKC1+kd3cMqpCMvJvmvWApLSrmmUSSe2fuA6oxE9W+xi0cuL91TB6yPl
 DHHw==
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=qb8P1DYilWN3aM4ZipI74Jx3JHpXuJoT2vzZudKjt88=;
 b=RjBFpMm8zlEzYX+J+i0aLQfpJq35iUiWMXizqrNrRSsIvok3DgOrwmfC+6buN7gNS/
 eGyYZY3OC++sETBRMOB9MJE0oHBE0NvQNQy+4YtaTmrpx+md5DFs/YDjYzqUAJRlDUl1
 GnfC1QHXOSpioiROF/Im5GHbrQV21YlN0IzTzHphl1cAXVvmL5ZuWEvpnEWfdFZxThof
 +uiJL3q+mrQE7COCUQozsqrGStmjNx07aDNS3+r/DNXOL98e/kT0456PjR56u6ptT9ao
 WJvUeVxRqJNrbwSKNZs+/k7T4fZtxFAbNCirvtDpzcj4sLEDBHnWlLsrcy8hg37Sv3Ap
 Hv0Q==
X-Gm-Message-State: AJIora/mv3SxPM3LQwtw7l0m3bFFSkGyeLx5ZuKMFbDwEvPzO9Mtqvcw
 iR9xIhjdy/WnH/yNY9ZeBXLyQEnWzVY5/zuv8jVEED7ED4w=
X-Google-Smtp-Source: AGRyM1v9x0YTH3NWY41Ynh47B2RGeVecAXkl3RBbERfgzBxYKT7eJPV0cfAT8mq9VbzQ5NJwd3ZXnUpUAjkzeEYpK3A=
X-Received: by 2002:a92:6603:0:b0:2da:82b6:34a3 with SMTP id
 a3-20020a926603000000b002da82b634a3mr5809140ilc.250.1658805642923; Mon, 25
 Jul 2022 20:20:42 -0700 (PDT)
MIME-Version: 1.0
References: <CALZpt+FhpZETHP8UpDGgw-Wg=m4Hxm8y9XZ9kXYgmt90_6Zt6w@mail.gmail.com>
 <XSc7hh8TBcrQc8YsYbCj4dmf3YkdQwJAv50lIcAK7rMYH9gChkn_S3SkJFmATwCrD-klYeJ55FajcGQ1HVuY0msxyiah8rLbVlQG7sXkAmo=@protonmail.com>
 <CALZpt+HerfG6hfkPksN=0ih5pRP6m0qAnxH3au7h3gadnHPKdQ@mail.gmail.com>
 <oYPIKqafRHCflmFrB8HcUnhyFabJo7u4sT8w8DPBIQ1lWcuQGiPs-dhJiupOdCnmrc_3zRhq36VngKBgSXee-hFoe6C_sUYkcz9hNz1cfAA=@protonmail.com>
 <0tp0SQgSX6kVG84bQ6fk7umnv3IaC2Nx6leiGYxhayz2HCQymAuBJxaODFijqLPP0nJ1b41wE4wlC-0_H8eN2GadtVEqGBGWGlzuMtfjhDo=@protonmail.com>
In-Reply-To: <0tp0SQgSX6kVG84bQ6fk7umnv3IaC2Nx6leiGYxhayz2HCQymAuBJxaODFijqLPP0nJ1b41wE4wlC-0_H8eN2GadtVEqGBGWGlzuMtfjhDo=@protonmail.com>
From: Antoine Riard <antoine.riard@gmail.com>
Date: Mon, 25 Jul 2022 23:20:31 -0400
Message-ID: <CALZpt+GPNQU6MdFgWZwJwGpLw1X36dhT0sqoY4deS7SYNWiwWA@mail.gmail.com>
To: ZmnSCPxj <ZmnSCPxj@protonmail.com>
Content-Type: multipart/alternative; boundary="0000000000001911e105e4acc9db"
X-Mailman-Approved-At: Tue, 26 Jul 2022 08:20:21 +0000
Cc: Bitcoin Protocol Discussion <bitcoin-dev@lists.linuxfoundation.org>
Subject: Re: [bitcoin-dev] On a new community process to specify covenants
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: Tue, 26 Jul 2022 03:20:45 -0000

--0000000000001911e105e4acc9db
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Zeeman,

So on the first concern of using an "economic simulation" or
sidechains/other cryptocurrencies to gather feedback about interest of
Script extensions, I wonder about the value transitivity of such a process
to measure consensus. Namely, if you have asset X picked up in system A, it
doesn't tell you the same asset X is preferred in system B, unless I think
you have the same agent. However, in cryptocurrencies, at least in Bitcoin,
we assume pseudonymous participants. So it can be really hard to say it's
the same agent to qualify its utility. Of course, you could have some
linking between system A and system B, like signatures if the same signing
scheme is used. However if it's possible why not use direct assets in
system B to express a preference ? Maybe in the future if we have a
privacy-preserving coins ownership proof system we could use that as one
consensus indicator [0] ?

At least in terms of community decision-making, the more we have
trust-minimized data signals, _assuming_ we have the information
capabilities to process them, the better we're.

That said, about the covenant working group/process I'm proposing I would
like to stay on the use-cases collection, deep trade-offs analysis and
adequate covenant designs grounds.

Activation really should be its own dedicated process, well-splitted in
terms of communication channels, documentation archive and timeframes.

About a generic contracting platform approach, I think for sure it would be
a huge gain in flexibility for multi-party contract protocols design though
there is at least three caveats in my opinion 1) we might open a Pandora
Box enabling one to design trustless bribing contracts towards miners to
attack existent deployed Bitcoin use-cases like Lightning (not a
theoretical concern at all when we look on the wild west of Defi in other
cryptocurrencies) 2) the multi-party contract protocol problem space is
relatively early, we might evolve the primitive abstraction with which
we're dealing and the language itself should evolve 3) we might still have
to do a lot of economic engineering if the microcode operations or syntax
units of the language are bounding well to validation nodes ressources.

So IMHO, a lot of unknowns about a generic contracting platform (even if
it's tempting from an application developer viewpoint I know)

[0]
https://lists.linuxfoundation.org/pipermail/lightning-dev/2020-November/002=
884.html
[1] For example an input-output bundle abstraction might be better for
fee-bumping reasons:
https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2021-July/019243.ht=
ml

Le dim. 24 juil. 2022 =C3=A0 19:40, ZmnSCPxj <ZmnSCPxj@protonmail.com> a =
=C3=A9crit :

> Good morning alia, Antoine, and list,
>
> > Hi Antoine,
> > Claiming Taproot history, as best practice or a standard methodology in
> bitcoin development, is just too much. Bitcoin development methodology is
> an open problem, given the contemporary escalation/emergence of challenge=
s,
> history is not  entitled to be hard coded as standard.
> >
> > Schnorr/MAST development history, is a good subject for case study, but
> it is not guaranteed that the outcome to be always the same as your take.
> >
> > I'd suggest instead of inventing a multi-decades-lifecycle based
> methodology (which is weird by itself, let alone installing it as a
> standard for bitcoin projects), being open-mind  enough for examining mor=
e
> agile approaches and their inevitable effect on the course of discussions=
,
>
> A thing I have been mulling is how to prototype such mechanisms more
> easily.
>
> A "reasonably standard" approach was pioneered in Elements Alpha, where a=
n
> entire federated sidechain is created and then used as a testbed for new
> mechanisms, such as SegWit and `OP_CHECKSIGFROMSTACK`.
> However, obviously the cost is fairly large, as you need an entire
> federated sidechain.
>
> It does have the nice advantage that you can use "real" coins, with real
> value (subject to the federation being trustworthy, admittedly) in order =
to
> convincingly show a case for real-world use.
>
> As I pointed out in [Smart Contracts Unchained](
> https://zmnscpxj.github.io/bitcoin/unchained.html), an alternative to
> using a blockchain would be to use federated individual coin outpoints.
>
> A thing I have been pondering is to create a generic contracting platform
> with a richer language, which itself is just used to implement a set of
> `OP_` SCRIPT opcodes.
> This is similar to my [Microcode proposal](
> https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2022-March/020158=
.html)
> earlier this year.
> Thus, it would be possible to prototype new `OP_` codes, or change the
> behavior of existing `OP_` codes (e.g. `SIGHASH_NOINPUT` would be a chang=
e
> in behavior of existing `OP_CHECKSIG` and `OP_CHECKMULTISIG`), by having =
a
> translation from `OP_` codes to the richer language.
> Then you could prototype a new SCRIPT `OP_` code by providing your own
> translation of the new `OP_` code and a SCRIPT that uses that `OP_` code,
> and using Smart Contract Unchained to use a real funds outpoint.
>
> Again, we can compare the Bitcoin consensus layer to a form of hardware:
> yes, we *could* patch it and change it, but that requires a ***LOT*** of
> work and the new software has to be redeployed by everyone, so it is,
> practically speaking, hardware.
> Microcode helps this by adding a softer layer without compromising the
> existing hard layer.
>
> So... what I have been thinking of is creating some kind of smart
> contracts unchained platform that allows prototyping new `OP_` codes usin=
g
> a microcode mechanism.
>
> Regards,
> ZmnSCPxj
>

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

<div dir=3D"ltr">Hi Zeeman,<br><br>So on the first concern of using an &quo=
t;economic simulation&quot; or sidechains/other cryptocurrencies to gather =
feedback about interest of Script extensions, I wonder about the value tran=
sitivity of such a process to measure consensus. Namely, if you have asset =
X picked up in system A, it doesn&#39;t tell you the same asset X is prefer=
red in system B, unless I think you have the same agent. However, in crypto=
currencies, at least in Bitcoin, we assume pseudonymous participants. So it=
 can be really hard to say it&#39;s the same agent to qualify its utility. =
Of course, you could have some linking between system A and system B, like =
signatures if the same signing scheme is used. However if it&#39;s possible=
 why not use direct assets in system B to express a preference ? Maybe in t=
he future if we have a privacy-preserving coins ownership proof system we c=
ould use that as one consensus indicator [0] ?<br><br>At least in terms of =
community decision-making, the more we have trust-minimized data signals, _=
assuming_ we have the information capabilities to process them, the better =
we&#39;re.<br><br>That said, about the covenant working group/process I&#39=
;m proposing I would like to stay on the use-cases collection, deep trade-o=
ffs analysis and adequate covenant designs grounds.<br><br>Activation reall=
y should be its own dedicated process, well-splitted in terms of communicat=
ion channels, documentation archive and timeframes.<br><br>About a generic =
contracting platform approach, I think for sure it would be a huge gain in =
flexibility for multi-party contract protocols design though there is at le=
ast three caveats in my opinion 1) we might open a Pandora Box enabling one=
 to design trustless bribing contracts towards miners to attack existent de=
ployed Bitcoin use-cases like Lightning (not a theoretical concern at all w=
hen we look on the wild west of Defi in other cryptocurrencies) 2) the mult=
i-party contract protocol problem space is relatively early, we might evolv=
e the primitive abstraction with which we&#39;re dealing and the language i=
tself should evolve 3) we might still have to do a lot of economic engineer=
ing if the microcode operations or syntax units of the language are boundin=
g well to validation nodes ressources.<br><br>So IMHO, a lot of unknowns ab=
out a generic contracting platform (even if it&#39;s tempting from an appli=
cation developer viewpoint I know)<br><br>[0] <a href=3D"https://lists.linu=
xfoundation.org/pipermail/lightning-dev/2020-November/002884.html">https://=
lists.linuxfoundation.org/pipermail/lightning-dev/2020-November/002884.html=
</a><br>[1] For example an input-output bundle abstraction might be better =
for fee-bumping reasons:<br><a href=3D"https://lists.linuxfoundation.org/pi=
permail/bitcoin-dev/2021-July/019243.html">https://lists.linuxfoundation.or=
g/pipermail/bitcoin-dev/2021-July/019243.html</a><br></div><br><div class=
=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">Le=C2=A0dim. 24 juil=
. 2022 =C3=A0=C2=A019:40, ZmnSCPxj &lt;<a href=3D"mailto:ZmnSCPxj@protonmai=
l.com">ZmnSCPxj@protonmail.com</a>&gt; a =C3=A9crit=C2=A0:<br></div><blockq=
uote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1p=
x solid rgb(204,204,204);padding-left:1ex">Good morning alia, Antoine, and =
list,<br>
<br>
&gt; Hi Antoine,<br>
&gt; Claiming Taproot history, as best practice or a standard methodology i=
n bitcoin development, is just too much. Bitcoin development methodology is=
 an open problem, given the contemporary escalation/emergence of challenges=
, history is not=C2=A0 entitled to be hard coded as standard.<br>
&gt;<br>
&gt; Schnorr/MAST development history, is a good subject for case study, bu=
t it is not guaranteed that the outcome to be always the same as your take.=
<br>
&gt;<br>
&gt; I&#39;d suggest instead of inventing a multi-decades-lifecycle based m=
ethodology (which is weird by itself, let alone installing it as a standard=
 for bitcoin projects), being open-mind=C2=A0 enough for examining more agi=
le approaches and their inevitable effect on the course of discussions,<br>
<br>
A thing I have been mulling is how to prototype such mechanisms more easily=
.<br>
<br>
A &quot;reasonably standard&quot; approach was pioneered in Elements Alpha,=
 where an entire federated sidechain is created and then used as a testbed =
for new mechanisms, such as SegWit and `OP_CHECKSIGFROMSTACK`.<br>
However, obviously the cost is fairly large, as you need an entire federate=
d sidechain.<br>
<br>
It does have the nice advantage that you can use &quot;real&quot; coins, wi=
th real value (subject to the federation being trustworthy, admittedly) in =
order to convincingly show a case for real-world use.<br>
<br>
As I pointed out in [Smart Contracts Unchained](<a href=3D"https://zmnscpxj=
.github.io/bitcoin/unchained.html" rel=3D"noreferrer" target=3D"_blank">htt=
ps://zmnscpxj.github.io/bitcoin/unchained.html</a>), an alternative to usin=
g a blockchain would be to use federated individual coin outpoints.<br>
<br>
A thing I have been pondering is to create a generic contracting platform w=
ith a richer language, which itself is just used to implement a set of `OP_=
` SCRIPT opcodes.<br>
This is similar to my [Microcode proposal](<a href=3D"https://lists.linuxfo=
undation.org/pipermail/bitcoin-dev/2022-March/020158.html" rel=3D"noreferre=
r" target=3D"_blank">https://lists.linuxfoundation.org/pipermail/bitcoin-de=
v/2022-March/020158.html</a>) earlier this year.<br>
Thus, it would be possible to prototype new `OP_` codes, or change the beha=
vior of existing `OP_` codes (e.g. `SIGHASH_NOINPUT` would be a change in b=
ehavior of existing `OP_CHECKSIG` and `OP_CHECKMULTISIG`), by having a tran=
slation from `OP_` codes to the richer language.<br>
Then you could prototype a new SCRIPT `OP_` code by providing your own tran=
slation of the new `OP_` code and a SCRIPT that uses that `OP_` code, and u=
sing Smart Contract Unchained to use a real funds outpoint.<br>
<br>
Again, we can compare the Bitcoin consensus layer to a form of hardware: ye=
s, we *could* patch it and change it, but that requires a ***LOT*** of work=
 and the new software has to be redeployed by everyone, so it is, practical=
ly speaking, hardware.<br>
Microcode helps this by adding a softer layer without compromising the exis=
ting hard layer.<br>
<br>
So... what I have been thinking of is creating some kind of smart contracts=
 unchained platform that allows prototyping new `OP_` codes using a microco=
de mechanism.<br>
<br>
Regards,<br>
ZmnSCPxj<br>
</blockquote></div>

--0000000000001911e105e4acc9db--