diff options
author | 'Antoine Poinsot' via Bitcoin Development Mailing List <bitcoindev@googlegroups.com> | 2025-04-18 13:29:12 +0000 |
---|---|---|
committer | bitcoindev <bitcoindev@googlegroups.com> | 2025-04-18 06:52:10 -0700 |
commit | c2d27a08419cfc4f103e34d4c45d7a14a02f1974 (patch) | |
tree | b298bb8243b4e9541bd6675c8f722a5820d43a7a | |
parent | 5ea39c448843df7c8d4c814d3a988011a343e6d1 (diff) | |
download | pi-bitcoindev-c2d27a08419cfc4f103e34d4c45d7a14a02f1974.tar.gz pi-bitcoindev-c2d27a08419cfc4f103e34d4c45d7a14a02f1974.zip |
Re: [bitcoindev] Relax OP_RETURN standardness restrictions
-rw-r--r-- | c1/39e5f227259d88b136edc924ee12e4960634a0 | 556 |
1 files changed, 556 insertions, 0 deletions
diff --git a/c1/39e5f227259d88b136edc924ee12e4960634a0 b/c1/39e5f227259d88b136edc924ee12e4960634a0 new file mode 100644 index 000000000..527e37645 --- /dev/null +++ b/c1/39e5f227259d88b136edc924ee12e4960634a0 @@ -0,0 +1,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-- + + |