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
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
|
Delivery-date: Fri, 18 Apr 2025 06:52:10 -0700
Received: from mail-oi1-f189.google.com ([209.85.167.189])
by mail.fairlystable.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
(Exim 4.94.2)
(envelope-from <bitcoindev+bncBDL4XL646QOBBAFSRHAAMGQE4UQ2H2A@googlegroups.com>)
id 1u5m8X-0002wD-9M
for bitcoindev@gnusha.org; Fri, 18 Apr 2025 06:52:10 -0700
Received: by mail-oi1-f189.google.com with SMTP id 5614622812f47-3feb1dce9cesf553151b6e.1
for <bitcoindev@gnusha.org>; Fri, 18 Apr 2025 06:52:09 -0700 (PDT)
ARC-Seal: i=2; a=rsa-sha256; t=1744984323; cv=pass;
d=google.com; s=arc-20240605;
b=OU19GApyecG76XQzs6FuDsEBIYrGaHg5oavrJbfhpIWfYyzemhmLTgjrA7tHzMAYQz
QAlq4GARRsg8uWoWuMz1ZVV3yQnff9Nt2Jb+RVUK/3Ok9gvs/UPvt/2M5kxIKbRP8T2Z
Hlcl/ATupHi446gpHVbbYRtBEcqb4SV8FaypxJi8+VmB7MEP6V+dBp6Mx8jmSb2rICOp
TBRdTIAbycKmFbTEHrd2ptkjOUJ7NTbqgb54A4b2hqA5c5ubWKDeV0XUYJSvAyLvDv9y
dYCWLlL88mRCQkUjT6okhurvyzSeYzRKrpYwls8WobmjJ6igV4L31tNhHtiDu5SIhNAy
JbUg==
ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post
:list-id:mailing-list:precedence:reply-to:mime-version:feedback-id
:references:in-reply-to:message-id:subject:cc:from:to:date
:dkim-signature;
bh=tz6srgtk3AzGLEqhTGenyXkOOQ/LBFjcRoNnZ+PetsY=;
fh=rqGqoVsiET2MzVWUhQs9DwFf9DR86zAwXTT/423sN44=;
b=SOkaVQ26/B6JMUWhf2Y/ClX65pjyI/gf8K2i3JcrtNQGhlw6tiDLskKdOczedRm9V3
W7EdZphKldvVJaJRd4SmWqZ/CrDLZ54aF54f5CwjImbOAIRqyhla6Tw8VHu5T580LMID
dFE359BJbrvpNOkmwPMS482WUeXcumfeH5t0NIwCEl6DDKROYu20xKs43CWHu4n+E7gG
JOUPzXjBB9Q6W9pPQC0Iss5byGx5p7M7iRdI+jOgVcfVvpRxlETae8ZvwCN14wHQmdB5
l/4i8nTXN59JNjHTHda6gcLlkl25rP6s/L6kSTAgD4Tb+SwvmMYIiWwp/Pso3z5Lo9Y3
Y+kw==;
darn=gnusha.org
ARC-Authentication-Results: i=2; gmr-mx.google.com;
dkim=pass header.i=@protonmail.com header.s=protonmail3 header.b=g5KNVrUA;
spf=pass (google.com: domain of darosior@protonmail.com designates 79.135.106.28 as permitted sender) smtp.mailfrom=darosior@protonmail.com;
dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=protonmail.com
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=googlegroups.com; s=20230601; t=1744984323; x=1745589123; darn=gnusha.org;
h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post
:list-id:mailing-list:precedence:reply-to
:x-original-authentication-results:x-original-sender:mime-version
:feedback-id:references:in-reply-to:message-id:subject:cc:from:to
:date:from:to:cc:subject:date:message-id:reply-to;
bh=tz6srgtk3AzGLEqhTGenyXkOOQ/LBFjcRoNnZ+PetsY=;
b=g8eAeiPN7uisFyxW9fqyKlZqlXImzsmqkG2Ay29n7MuEB55d2IVT9E8ANnoPAqKaXe
labLzAVdXA/ksZYQbUCF0YtYtF++jLfoz9FXotl5d2b6eTMHHUbyCxTzVfdziTCA1kmA
S3hVb0dZx50uiARtxwCkpqfFlzWUbwp79oAy5MQPI+e0iEhebzTDlQoFwHVfTSSmFHfy
9zlkakdhwn559uvSjRkvvMaLJk76z4cphoGSTeq7i6inshpsxEI4Ai3F6QiDvIcl/vDF
xAxqHS2w+rtLVMRo3hRppMKgBD6QNYIOiGqTioqm60bpOIIdmLqbsd0r8zqbv7ghuJp3
W07g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=1e100.net; s=20230601; t=1744984323; x=1745589123;
h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post
:list-id:mailing-list:precedence:reply-to
:x-original-authentication-results:x-original-sender:mime-version
:feedback-id:references:in-reply-to:message-id:subject:cc:from:to
:date:x-beenthere:x-gm-message-state:from:to:cc:subject:date
:message-id:reply-to;
bh=tz6srgtk3AzGLEqhTGenyXkOOQ/LBFjcRoNnZ+PetsY=;
b=gdZGxtEnhS6QvEva/6WOko14rgVKY5rGDlc4zzQCPW3rYNlWSjTAtEJtnCpM0AMjdS
319gL9nQqVfrLzJhm4kiAt/E8E1iBCaQtOYHWCuZrW1to5Nlicb3XzOw/JMeLzXO0F/5
4MIY09CB2NUi8rEMyZm9zaJOk7bH7l4+sC4I0NzGZjcp96JGeVzGgwdTQNa+stN1p0lx
AvC/BEtgnI/LDyQnw276RVTnmnUbyHxmniEkscmGAc2JSOJP5lxVnN0JyNx95GfauqPp
XUgKQVXse1r3HIF/vrm0IYvS04Mm0iBz/WCDx4Zi+Omt4ORDwd8oOrp6eK9Pjeyb27pM
vRpQ==
X-Forwarded-Encrypted: i=2; AJvYcCWJc5Zb19tRyXLDBIPQ9dn6iDGz037miuiV2oJ5bdIeG7SD7vtvJi9dXs+4i8LTj6ZdwWZ1HNjvvSVt@gnusha.org
X-Gm-Message-State: AOJu0YxUHAMUsbfW1qpnZItVvHQVt1hKnnY76GRqL/ZiKN7WkMjtXn6S
5P4blLOqTWfzt0K3fBojOMmAaflP8Ib9u0MCggt9J57+lxec10yh
X-Google-Smtp-Source: AGHT+IG+F5CmHzC6Fwp+xaxwl401PqQL9s4qA96+9f7FrhaLKDx+w0EzLKQZnmYP+mDeTXQpR7Qnjw==
X-Received: by 2002:a05:6808:318c:b0:3f6:ab0d:8dc0 with SMTP id 5614622812f47-401c0c11efbmr1199777b6e.24.1744984323508;
Fri, 18 Apr 2025 06:52:03 -0700 (PDT)
X-BeenThere: bitcoindev@googlegroups.com; h=ARLLPAJjmGnG3dFMr0fLTxPHD94lbrVT8hQKD4RRthOqfPqvvA==
Received: by 2002:a4a:cb95:0:b0:602:8f09:24d8 with SMTP id 006d021491bc7-604dab57f65ls520429eaf.2.-pod-prod-06-us;
Fri, 18 Apr 2025 06:52:00 -0700 (PDT)
X-Received: by 2002:a05:6808:4486:b0:3f7:8f77:2a97 with SMTP id 5614622812f47-401c0c64deemr1431514b6e.34.1744984319941;
Fri, 18 Apr 2025 06:51:59 -0700 (PDT)
Received: by 2002:a05:600c:3b13:b0:43c:fe31:d01d with SMTP id 5b1f17b1804b1-44069ee67e7ms5e9;
Fri, 18 Apr 2025 06:29:20 -0700 (PDT)
X-Received: by 2002:a05:6000:18a5:b0:38f:2766:759f with SMTP id ffacd0b85a97d-39efbad2c1cmr2006486f8f.41.1744982958005;
Fri, 18 Apr 2025 06:29:18 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; t=1744982957; cv=none;
d=google.com; s=arc-20240605;
b=iGT3zuIct8v/jyayuPggh0yZmmIpbzrBivO368uNtN42SdMV0uQobVYekEnXcfuwOF
2FnGN+oOQpPYenYh/RHpNsuPn9ms7qvHMQ+rOceq6K4T2uXTh5tr4qS966vZXhCV0dbI
QpOpRjWVqLeFqtzOovh5chWmF8XgsvyeNH4kWE3+nmMR28uEe/GwrspNYJDmNrUnAd8A
6F84BDH709le484UKs3oRAp9aNE6kqCdNaCOVdPFXVAAltB1k4eQApAzNk0Y1jCUVvEy
V9/Td4FYeTrVIJJPwYHF77XzehlpCKD+lbk3V3Y10y2uY92zOLBM847uYe3ihd9X2RFi
CR4g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
h=mime-version:feedback-id:references:in-reply-to:message-id:subject
:cc:from:to:date:dkim-signature;
bh=3yfhQgGOpHL7ad+P5loS1AwhvigdNvmbNtZU0v84ng4=;
fh=leQLboTUdScs1e0Il1Cl2LB8GMiH49J/SwH9CHDWNGM=;
b=kCIjyv8GdQ9zN0bIwi2rZOKpgDZXk7MtvpCHW1e2oDajw2SyabTYUpzQwSOD67BjTw
fgXoL0vor53UERSnuzL7xzs8Jd6+at1JBpY2dMm65C87GGp7oU5H5OEqLUyONIInyLxm
hYqwf3u/e1KqmppP1hhBq1VWVE8kNy+4BAErqzaJL9C/1eNg0z/PRsN57dG0YuiL5gHy
PNY9AcTRVmdITSuaVpIkUgE0rW7vgsXlY5FCwUYRd90B+mm+XVanonkTt0VMUK4LZjM7
mn7B5EtC4pALpL/fxDz3mXIV8YtvEYnVNiKCfUfUSv0qi6JhzTsB0369uVMyxaByYYSl
32TA==;
dara=google.com
ARC-Authentication-Results: i=1; gmr-mx.google.com;
dkim=pass header.i=@protonmail.com header.s=protonmail3 header.b=g5KNVrUA;
spf=pass (google.com: domain of darosior@protonmail.com designates 79.135.106.28 as permitted sender) smtp.mailfrom=darosior@protonmail.com;
dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=protonmail.com
Received: from mail-10628.protonmail.ch (mail-10628.protonmail.ch. [79.135.106.28])
by gmr-mx.google.com with ESMTPS id ffacd0b85a97d-39efa488ce6si39316f8f.5.2025.04.18.06.29.17
for <bitcoindev@googlegroups.com>
(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
Fri, 18 Apr 2025 06:29:17 -0700 (PDT)
Received-SPF: pass (google.com: domain of darosior@protonmail.com designates 79.135.106.28 as permitted sender) client-ip=79.135.106.28;
Date: Fri, 18 Apr 2025 13:29:12 +0000
To: Greg Sanders <gsanders87@gmail.com>, Sjors Provoost <sjors@sprovoost.nl>
From: "'Antoine Poinsot' via Bitcoin Development Mailing List" <bitcoindev@googlegroups.com>
Cc: Bitcoin Development Mailing List <bitcoindev@googlegroups.com>
Subject: Re: [bitcoindev] Relax OP_RETURN standardness restrictions
Message-ID: <8nHXu-p_oewEJ1P95eVG57v_qugup8KrgFCQ5sSM88TKMumrjwIdk9cRs3cPon6cEwxSgSiE2OWnoU2xCfa6DtrnT2SSWRsJmT1wkpWh9k0=@protonmail.com>
In-Reply-To: <b51b952c-b8ba-4f13-a216-c29095c39d00n@googlegroups.com>
References: <rhfyCHr4RfaEalbfGejVdolYCVWIyf84PT2062DQbs5-eU8BPYty5sGyvI3hKeRZQtVC7rn_ugjUWFnWCymz9e9Chbn7FjWJePllFhZRKYk=@protonmail.com> <C7E2D805-E70A-455C-BDA1-224024BE93B3@sprovoost.nl> <b51b952c-b8ba-4f13-a216-c29095c39d00n@googlegroups.com>
Feedback-ID: 7060259:user:proton
X-Pm-Message-ID: 975a5f31fba51f9e9eab3d35424b1574c4967d69
MIME-Version: 1.0
Content-Type: multipart/alternative;
boundary="b1=_n2XVMvsXoSViApXSqxhhlflCCIQbMzDRMk8oZnoCdps"
X-Original-Sender: darosior@protonmail.com
X-Original-Authentication-Results: gmr-mx.google.com; dkim=pass
header.i=@protonmail.com header.s=protonmail3 header.b=g5KNVrUA;
spf=pass (google.com: domain of darosior@protonmail.com designates
79.135.106.28 as permitted sender) smtp.mailfrom=darosior@protonmail.com;
dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=protonmail.com
X-Original-From: Antoine Poinsot <darosior@protonmail.com>
Reply-To: Antoine Poinsot <darosior@protonmail.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: -1.0 (-)
--b1=_n2XVMvsXoSViApXSqxhhlflCCIQbMzDRMk8oZnoCdps
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
> IIUC [..] The size of a single OP_RETURN is limited only by the maximum t=
ransaction size, i.e. 100 kvB.
Yes.
>>> is there ever a case where using OP_RETURN to embed data actually resul=
ts in fewer bytes onchain than embedding the same data using the segwit/tap=
root witness space> Yes, a back-of-the-envelope calculation [..]
>
For reference Vojt=C4=9Bch Strnad also has a good StackExchange answer with=
details about this here: https://bitcoin.stackexchange.com/a/122322/101498=
. TL;DR: OP_RETURN is cheaper for data smaller than 143 bytes. I don't thin=
k this is sufficient reason not to drop the limit.
> we *could have* reserved multi-output as some sort of signaling mechanism=
[..] though I can't imagine what that would be. Additional OP_RETURNs woul=
d be an expensive signal.
Exactly, and it's not like we would be running out of upgrade hooks anytime=
soon.
On Friday, April 18th, 2025 at 8:54 AM, Greg Sanders <gsanders87@gmail.com>=
wrote:
>> From perusing the Citrea paper (page 18) it seems a single output is eno=
ugh, and they only need 144 bytes.
>
> From discussion in person it seems as though they could adapt their use t=
o batch publish these transactions as SIGHASH_SINGLE|ACP transactions, with=
each output being a 144-byte OP_RETURN. It's a less pressing issue perhaps=
, but if we can derive additional efficiency and don't want to revisit this=
conversation again later, may be worth doing.
>
> The only drawback I can see to the second step would be that we *could ha=
ve* reserved multi-output as some sort of signaling mechanism since it's pr=
eviously not relayable on Bitcoin Core, even with knob fiddling, though I c=
an't imagine what that would be. Additional OP_RETURNs would be an expensiv=
e signal.
>
> Greg
> On Friday, April 18, 2025 at 8:16:00=E2=80=AFAM UTC-4 Sjors Provoost wrot=
e:
>
>>> Op 17 apr 2025, om 20:52 heeft 'Antoine Poinsot' via Bitcoin Developmen=
t Mailing List <bitco...@googlegroups.com> het volgende geschreven:
>>
>>> Developers are now designing constructions that work around these limit=
ations. An example is Clementine, the recently-announced Citrea bridge, whi=
ch uses unspendable Taproot outputs to store data in its "WatchtowerChallen=
ge" transaction due to the standardness restrictions on the size of OP_RETU=
RNs[^0]. Meanwhile, we have witnessed in recent years that the nudge is ine=
ffective to deter storing data onchain.
>>>
>>> Since the restrictions on the usage of OP_RETURN outputs encourage harm=
ful practices while being ineffective in deterring unwanted usage, i propos=
e to drop them. I suggest to start by lifting the restriction on the size o=
f the scriptPubKey for OP_RETURN outputs, as a first minimal step to stop e=
ncouraging harmful behaviour, and to then proceed to lift the restriction o=
n the number of OP_RETURN outputs per transactions.
>>
>> It might be better to do both, if only to avoid repeating the discussion=
in a year.
>>
>> From perusing the Citrea paper (page 18) it seems a single output is eno=
ugh, and they only need 144 bytes.
>>
>> 1. Regarding size
>>
>> The current ~80 byte limit was based on Counterparty needing it [0], and=
otherwise using bare multisig. A similar argument would apply here. At the=
time there was discussion about how much space Counterparty really needed =
if their protocol was well implemented.
>>
>> The 144 bytes consist of a Groth16 proof and the total chain work. Along=
similar lines we could pick a number based on various cryptographic commit=
ment schemes, and then only raise the limit by that much.
>>
>> But that just guarantees repeating the argument in a year when some prot=
ocol needs a slightly higher limit. In a post-inscription world that seems =
pointless. My preference is to drop the size limit entirely.
>>
>> 2. Regarding count
>>
>> IIUC there's no consensus limit on the size of an OP_RETURN [1] and ther=
e's also no standardness rule on the size of a scriptPubKey. The size of a =
single OP_RETURN is limited only by the maximum transaction size, i.e. 100 =
kvB.
>>
>> Without a size restriction on individual OP_RETURN outputs, there's no p=
oint in limiting their number.
>>
>> That said, it would be interesting to know if any protocols are thinking=
of using multiple OP_RETURN outputs.
>>
>> 3. Reminder why we didn't do this earlier
>>
>> In the August 2023 discussion [2] Murch wrote, in response to John Light=
:
>>
>>>> is there ever a case where using OP_RETURN to embed data actually resu=
lts in fewer bytes onchain than embedding the same data using the segwit/ta=
proot witness space
>>>
>>> Yes, a back-of-the-envelope calculation has me thinking that only paylo=
ads of 135 bytes would be cheaper with transcriptions than with nulldata ou=
tputs. In detail:
>> [...]
>>> we learn that nulldata outputs are cheaper up to a payload size of 134 =
bytes, only above that inscriptions become a more blockspace efficient data=
carrier.
>>
>> Since we're discussing raising the limit to at least 144 bytes, the abov=
e argument would no longer be relevant.
>>
>> And from what I recall at the time that was the only remaining reason to=
keep the OP_RETURN restrictions around a bit longer, despite heavy use of =
inscriptions.
>>
>> 4. PS - on liveliness assumptions
>>
>> The paper [3] states the following assumption:
>>
>>> We consider a secure ledger, i.e., a ledger that is safe and live. Safe=
ty and liveness are defined as follows:
>>>
>>> ...
>>>
>>> Definition 2 (Liveness). A distributed ledger protocol is live with liv=
eness parameter u if all transactions written by any correct party at round=
r, appear in the ledgers of all correct parties by round r + u.
>>
>> For standard transactions this already not trivially true. See all of Li=
ghtning pinning discussions.
>>
>> For non-standard transactions, does BitVM2 keep all its transactions und=
er 100 kvB?
>>
>> Otherwise your liveness assumption requires a direct connection to at le=
ast one miner / pool that is trusted to not censor (though you can shop aro=
und until the deadline).
>>
>> Conversely, having actively used protocols that frequently require going=
over some standardises limit puts pressure on that limit for the reasons A=
ntoine outlined. So for anyone working on such protocols, please let this l=
ist know, since these discussions can take a while.
>>
>> - Sjors
>>
>> [0] [https://www.reddit.com/r/btc/comments/80ycim/a_few_months_after_the=
_counterparty_developers/?rdt=3D53592](https://www.reddit.com/r/btc/comment=
s/80ycim/a_few_months_after_the_counterparty_developers/)
>> [1] https://bitcoin.stackexchange.com/a/117595/4948
>> [2] [https://gnusha.org/pi/bitcoindev/03551f0f-272e-2607...@murch.one/#t=
](https://gnusha.org/pi/bitcoindev/03551f0f-272e-2607-e95a-8ec671cbb9f3@mur=
ch.one/#t) (click on the html attachment)
>> [3] https://citrea.xyz/clementine_whitepaper.pdf
>
> --
> 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 visit https://groups.google.com/d/msgid/bitcoinde=
v/b51b952c-b8ba-4f13-a216-c29095c39d00n%40googlegroups.com.
--=20
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 e=
mail to bitcoindev+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/bitcoindev/=
8nHXu-p_oewEJ1P95eVG57v_qugup8KrgFCQ5sSM88TKMumrjwIdk9cRs3cPon6cEwxSgSiE2OW=
noU2xCfa6DtrnT2SSWRsJmT1wkpWh9k0%3D%40protonmail.com.
--b1=_n2XVMvsXoSViApXSqxhhlflCCIQbMzDRMk8oZnoCdps
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<blockquote style=3D"border-left: 3px solid rgb(200, 200, 200); border-colo=
r: rgb(200, 200, 200); padding-left: 10px; color: rgb(102, 102, 102);"><div=
style=3D"font-family: Arial, sans-serif; font-size: 14px;">IIUC [..] The s=
ize of a single OP_RETURN is limited only by the maximum transaction size, =
i.e. 100 kvB.
<br></div></blockquote><div style=3D"">Yes.<br></div>
<div class=3D"protonmail_signature_block protonmail_signature_block-empty" =
style=3D"font-family: Arial, sans-serif; font-size: 14px;">
<div class=3D"protonmail_signature_block-user protonmail_signature_bloc=
k-empty">
=20
</div>
=20
<div class=3D"protonmail_signature_block-proton protonmail_sign=
ature_block-empty">
=20
</div>
</div><div style=3D"font-family: Arial, sans-serif; font-size: 14px; color:=
rgb(0, 0, 0); background-color: rgb(255, 255, 255);"><br></div><div style=
=3D"font-family: Arial, sans-serif; font-size: 14px; color: rgb(0, 0, 0); b=
ackground-color: rgb(255, 255, 255);"><span></span><blockquote style=3D"bor=
der-left: 3px solid rgb(200, 200, 200); border-color: rgb(200, 200, 200); p=
adding-left: 10px; color: rgb(102, 102, 102);"><div><span>>>
is there ever a case where using OP_RETURN to embed data actually=20
results in fewer bytes onchain than embedding the same data using the=20
segwit/taproot witness space</span><br></div><span><span>> Yes, a back-o=
f-the-envelope calculation [..]</span></span></blockquote></div><blockquote=
style=3D"border-left: 3px solid rgb(200, 200, 200); border-color: rgb(200,=
200, 200); padding-left: 10px; color: rgb(102, 102, 102);"></blockquote><d=
iv style=3D"">For reference <span>Vojt=C4=9Bch Strnad</span> also has a goo=
d StackExchange answer with details about this here: <span><a target=3D"_bl=
ank" rel=3D"noreferrer nofollow noopener" href=3D"https://bitcoin.stackexch=
ange.com/a/122322/101498">https://bitcoin.stackexchange.com/a/122322/101498=
</a></span>. TL;DR: OP_RETURN is cheaper for data smaller than 143 byt=
es. I don't think this is sufficient reason not to drop the limit.<br></div=
><div style=3D""><br></div><blockquote style=3D"border-left: 3px solid rgb(=
200, 200, 200); border-color: rgb(200, 200, 200); padding-left: 10px; color=
: rgb(102, 102, 102);"><div style=3D"">we *could have* reserved multi-outpu=
t as some sort of signaling mechanism [..] though I can't imagine what that=
would be. Additional OP_RETURNs would be an expensive signal.</div></block=
quote><div style=3D"">Exactly, and it's not like we would be running out of=
upgrade hooks anytime soon.</div><div class=3D"protonmail_quote">
On Friday, April 18th, 2025 at 8:54 AM, Greg Sanders <gsanders87=
@gmail.com> wrote:<br>
<blockquote class=3D"protonmail_quote" type=3D"cite">
> From perusing the Citrea paper (page 18) it seems a single=
output is enough, and they only need 144 bytes.<div><br></div><div>From di=
scussion in person it seems as though they could adapt their use to batch p=
ublish these transactions as SIGHASH_SINGLE|ACP transactions, with each out=
put being a 144-byte OP_RETURN. It's a less pressing issue perhaps, but if =
we can derive additional efficiency and don't want to revisit this conversa=
tion again later, may be worth doing.</div><div><br></div><div>The only dra=
wback I can see to the second step would be that we *could have* reserved m=
ulti-output as some sort of signaling mechanism since it's previously not r=
elayable on Bitcoin Core, even with knob fiddling, though I can't imagine w=
hat that would be. Additional OP_RETURNs would be an expensive signal.</div=
><div><br></div><div>Greg<br><br></div><div class=3D"gmail_quote"><div clas=
s=3D"gmail_attr" dir=3D"auto">On Friday, April 18, 2025 at 8:16:00=E2=80=AF=
AM UTC-4 Sjors Provoost wrote:<br></div><blockquote style=3D"margin: 0 0 0 =
0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;" class=
=3D"gmail_quote">
<br>> Op 17 apr 2025, om 20:52 heeft 'Antoine Poinsot' via Bitcoin Devel=
opment Mailing List <<a rel=3D"noreferrer nofollow noopener" data-email-=
masked=3D"" href=3D"" style=3D"pointer-events: none;">bitco...@googlegroups=
.com</a>> het volgende geschreven:
<br>
<br>> Developers are now designing constructions that work around these =
limitations. An example is Clementine, the recently-announced Citrea bridge=
, which uses unspendable Taproot outputs to store data in its "WatchtowerCh=
allenge" transaction due to the standardness restrictions on the size of OP=
_RETURNs[^0]. Meanwhile, we have witnessed in recent years that the nudge i=
s ineffective to deter storing data onchain.
<br>>
<br>> Since the restrictions on the usage of OP_RETURN outputs encourage=
harmful practices while being ineffective in deterring unwanted usage, i p=
ropose to drop them. I suggest to start by lifting the restriction on the s=
ize of the scriptPubKey for OP_RETURN outputs, as a first minimal step to s=
top encouraging harmful behaviour, and to then proceed to lift the restrict=
ion on the number of OP_RETURN outputs per transactions.
<br>
<br>It might be better to do both, if only to avoid repeating the discussio=
n in a year.
<br>
<br>From perusing the Citrea paper (page 18) it seems a single output is en=
ough, and they only need 144 bytes.
<br>
<br>1. Regarding size
<br>
<br>The current ~80 byte limit was based on Counterparty needing it [0], an=
d otherwise using bare multisig. A similar argument would apply here. At th=
e time there was discussion about how much space Counterparty really needed=
if their protocol was well implemented.
<br>
<br>The 144 bytes consist of a Groth16 proof and the total chain work. Alon=
g similar lines we could pick a number based on various cryptographic commi=
tment schemes, and then only raise the limit by that much.
<br>
<br>But that just guarantees repeating the argument in a year when some pro=
tocol needs a slightly higher limit. In a post-inscription world that seems=
pointless. My preference is to drop the size limit entirely.
<br>
<br>2. Regarding count
<br>
<br>IIUC there's no consensus limit on the size of an OP_RETURN [1] and the=
re's also no standardness rule on the size of a scriptPubKey. The size of a=
single OP_RETURN is limited only by the maximum transaction size, i.e. 100=
kvB.
<br>
<br>Without a size restriction on individual OP_RETURN outputs, there's no =
point in limiting their number.
<br>
<br>That said, it would be interesting to know if any protocols are thinkin=
g of using multiple OP_RETURN outputs.
<br>
<br>3. Reminder why we didn't do this earlier
<br>
<br>In the August 2023 discussion [2] Murch wrote, in response to John Ligh=
t:
<br>
<br>>> is there ever a case where using OP_RETURN to embed data actua=
lly results in fewer bytes onchain than embedding the same data using the s=
egwit/taproot witness space
<br>>
<br>> Yes, a back-of-the-envelope calculation has me thinking that only =
payloads of 135 bytes would be cheaper with transcriptions than with nullda=
ta outputs. In detail:
<br>[...]
<br>> we learn that nulldata outputs are cheaper up to a payload size of=
134 bytes, only above that inscriptions become a more blockspace efficient=
data carrier.
<br>
<br>Since we're discussing raising the limit to at least 144 bytes, the abo=
ve argument would no longer be relevant.
<br>
<br>And from what I recall at the time that was the only remaining reason t=
o keep the OP_RETURN restrictions around a bit longer, despite heavy use of=
inscriptions.
<br>
<br>4. PS - on liveliness assumptions
<br>
<br>The paper [3] states the following assumption:
<br>
<br>> We consider a secure ledger, i.e., a ledger that is safe and live.=
Safety and liveness are defined as follows:
<br>>
<br>> ...
<br>>
<br>> Definition 2 (Liveness). A distributed ledger protocol is live wit=
h liveness parameter u if all transactions written by any correct party at =
round r, appear in the ledgers of all correct parties by round r + u.
<br>
<br>For standard transactions this already not trivially true. See all of L=
ightning pinning discussions.
<br>
<br>For non-standard transactions, does BitVM2 keep all its transactions un=
der 100 kvB?
<br>
<br>Otherwise your liveness assumption requires a direct connection to at l=
east one miner / pool that is trusted to not censor (though you can shop ar=
ound until the deadline).
<br>
<br>Conversely, having actively used protocols that frequently require goin=
g over some standardises limit puts pressure on that limit for the reasons =
Antoine outlined. So for anyone working on such protocols, please let this =
list know, since these discussions can take a while.
<br>
<br>- Sjors
<br>
<br>[0] <a data-saferedirecturl=3D"https://www.google.com/url?hl=3Den&q=
=3Dhttps://www.reddit.com/r/btc/comments/80ycim/a_few_months_after_the_coun=
terparty_developers/?rdt%3D53592&source=3Dgmail&ust=3D1745067074218=
000&usg=3DAOvVaw0MM9KbUgUA64--SjzlgQr3" rel=3D"noreferrer nofollow noop=
ener" target=3D"_blank" href=3D"https://www.reddit.com/r/btc/comments/80yci=
m/a_few_months_after_the_counterparty_developers/">https://www.reddit.com/r=
/btc/comments/80ycim/a_few_months_after_the_counterparty_developers/?rdt=3D=
53592</a>
<br>[1] <a data-saferedirecturl=3D"https://www.google.com/url?hl=3Den&q=
=3Dhttps://bitcoin.stackexchange.com/a/117595/4948&source=3Dgmail&u=
st=3D1745067074218000&usg=3DAOvVaw2wTRloeMwvq964MmuqlpS9" rel=3D"norefe=
rrer nofollow noopener" target=3D"_blank" href=3D"https://bitcoin.stackexch=
ange.com/a/117595/4948">https://bitcoin.stackexchange.com/a/117595/4948</a>
<br>[2] <a data-saferedirecturl=3D"https://www.google.com/url?hl=3Den&q=
=3Dhttps://gnusha.org/pi/bitcoindev/03551f0f-272e-2607-e95a-8ec671cbb9f3@mu=
rch.one/%23t&source=3Dgmail&ust=3D1745067074218000&usg=3DAOvVaw=
1na06VOwQurnkkZIWQep3O" rel=3D"noreferrer nofollow noopener" target=3D"_bla=
nk" href=3D"https://gnusha.org/pi/bitcoindev/03551f0f-272e-2607-e95a-8ec671=
cbb9f3@murch.one/#t">https://gnusha.org/pi/bitcoindev/03551f0f-272e-2607...=
@murch.one/#t</a> (click on the html attachment)
<br>[3] <a data-saferedirecturl=3D"https://www.google.com/url?hl=3Den&q=
=3Dhttps://citrea.xyz/clementine_whitepaper.pdf&source=3Dgmail&ust=
=3D1745067074218000&usg=3DAOvVaw3AsJFVA9H3QVl_yPci8EBx" rel=3D"noreferr=
er nofollow noopener" target=3D"_blank" href=3D"https://citrea.xyz/clementi=
ne_whitepaper.pdf">https://citrea.xyz/clementine_whitepaper.pdf</a></blockq=
uote></div>
<p></p>
-- <br>
You received this message because you are subscribed to the Google Groups "=
Bitcoin Development Mailing List" group.<br>
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:bitcoindev+unsubscribe@googlegroups.com" rel=3D"n=
oreferrer nofollow noopener">bitcoindev+unsubscribe@googlegroups.com</a>.<b=
r>
To view this discussion visit <a href=3D"https://groups.google.com/d/msgid/=
bitcoindev/b51b952c-b8ba-4f13-a216-c29095c39d00n%40googlegroups.com" target=
=3D"_blank" rel=3D"noreferrer nofollow noopener">https://groups.google.com/=
d/msgid/bitcoindev/b51b952c-b8ba-4f13-a216-c29095c39d00n%40googlegroups.com=
</a>.<br>
</blockquote><br>
</div>
<p></p>
-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;Bitcoin Development Mailing List" group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:bitcoindev+unsubscribe@googlegroups.com">bitcoind=
ev+unsubscribe@googlegroups.com</a>.<br />
To view this discussion visit <a href=3D"https://groups.google.com/d/msgid/=
bitcoindev/8nHXu-p_oewEJ1P95eVG57v_qugup8KrgFCQ5sSM88TKMumrjwIdk9cRs3cPon6c=
EwxSgSiE2OWnoU2xCfa6DtrnT2SSWRsJmT1wkpWh9k0%3D%40protonmail.com?utm_medium=
=3Demail&utm_source=3Dfooter">https://groups.google.com/d/msgid/bitcoindev/=
8nHXu-p_oewEJ1P95eVG57v_qugup8KrgFCQ5sSM88TKMumrjwIdk9cRs3cPon6cEwxSgSiE2OW=
noU2xCfa6DtrnT2SSWRsJmT1wkpWh9k0%3D%40protonmail.com</a>.<br />
--b1=_n2XVMvsXoSViApXSqxhhlflCCIQbMzDRMk8oZnoCdps--
|