public inbox for bitcoindev@googlegroups.com
 help / color / mirror / Atom feed
From: "David A. Harding" <dave@dtrt.org>
To: Jose Storopoli <jose@storopoli.io>
Cc: Bitcoin Development Mailing List <bitcoindev@googlegroups.com>
Subject: Re: [bitcoindev] Announcing Bitcoin BOSD: Standardized Withdrawal Output Specification for L2s
Date: Tue, 18 Feb 2025 16:29:22 -1000	[thread overview]
Message-ID: <3d4f98e0886f03337b44f0e4152d1f33@dtrt.org> (raw)
In-Reply-To: <94ac8f66-1627-4526-bb34-095361a30fb4n@googlegroups.com>

On 2025-02-15 01:37, Jose Storopoli wrote:
> Dear Bitcoin Dev Community,
> 
> I am excited to introduce Bitcoin BOSD (Bitcoin Output Script
> Descriptor), a new specification and open source Rust implementation
> to simplify relay-safe (standardness-guarantee) on-chain withdrawals
> for Bitcoin Layer 2 solutions.
> 
> Key Features:
> - Standardness-by-construction for withdrawal outputs
> - Eliminates ad-hoc standardness rule implementations in L2s
> - Compact representation

It's unclear to me why you don't simply implement your selected 
standardness rules on top of a BIP385 raw() output script descriptor 
(with the normal BIP380 checksum)?  That gives you an efficient 
representation, compatibility with other software, a compact checksum, 
and local policy.

For the later point, policy being local, there exists software[1] that I 
believe has a moderate userbase (including possibly some miner support) 
that implements less restrictive standard transaction rules than Bitcoin 
Core, specifically allowing OP_RETURN outputs of more than 83 bytes 
cumulative.[2]  If a user of your software runs that node and believes 
his transactions will relay to a compatible miner, what options does he 
have of circumventing BOSD type 0's limit of 80 push bytes if one of his 
users wants to send him such a data carrier output?  He can propose a 
type 5, but you'll probably reject that because >80 bytes will be 
non-standard for other users.  You can create an extension numeric 
range, but then you'll have to centrally coordinate number assignment 
for every random proposal.  Instead, I think it makes more sense to not 
use versioning at all and just perform local verification on raw() 
descriptors; that way users of your software can modify one line of code 
on their side to accept >80 bytes and everyone else can use the default 
tests.

In addition to the above technical criticism, I find the BOSD name 
extremely conflationary with the longstanding use of "output script 
descriptors", or "descriptors" for short, to refer to the language that 
originated in 2018 from Bitcoin Core developers for describing output 
scripts.[3]  I think it would be helpful to everyone for your proposal 
to use a more distinct name.

Thanks,

-Dave

[1] https://github.com/petertodd/bitcoin/tree/libre-relay-v28.1
[2] 
https://github.com/bitcoin/bitcoin/commit/d67f4634e5395fbdf4383d7adcdfc92c0cca7fc9
[3] https://bitcoinops.org/en/topics/output-script-descriptors/

-- 
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/bitcoindev/3d4f98e0886f03337b44f0e4152d1f33%40dtrt.org.


      parent reply	other threads:[~2025-02-19  3:42 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-02-15 11:37 [bitcoindev] Announcing Bitcoin BOSD: Standardized Withdrawal Output Specification for L2s Jose Storopoli
2025-02-16  8:50 ` Martin Habovštiak
2025-02-19  2:29 ` David A. Harding [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3d4f98e0886f03337b44f0e4152d1f33@dtrt.org \
    --to=dave@dtrt.org \
    --cc=bitcoindev@googlegroups.com \
    --cc=jose@storopoli.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox