Delivery-date: Sat, 15 Feb 2025 04:02:38 -0800 Received: from mail-yb1-f186.google.com ([209.85.219.186]) by mail.fairlystable.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1tjGsX-00067i-7L for bitcoindev@gnusha.org; Sat, 15 Feb 2025 04:02:38 -0800 Received: by mail-yb1-f186.google.com with SMTP id 3f1490d57ef6-e3a0f608b88sf3639334276.0 for ; Sat, 15 Feb 2025 04:02:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20230601; t=1739620950; x=1740225750; darn=gnusha.org; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:x-original-sender:mime-version :subject:message-id:to:from:date:sender:from:to:cc:subject:date :message-id:reply-to; bh=jMejw/s6J9cS6tu39UbqtinwFVblEfp8Hhi8DLcWde0=; b=ig8WfXtK1QshT//irtBKRBkzfXQuWGGbAipXrCc+xzHAVAWbq6p5MRyw9y0KK2wFTz oIpcytJDyZbXhUQVvKvmeXmcOzvm5fy6mDYMyUNlSN9WY6zGdVsW7w2ZOUxebYNB3fTM hUS2x8g87r4gJ4Sw7zGbod1hAh2oWl+uLwUdHUOEO7b5KrixnB+SD3vd8hlhtTxQzQD0 yhIICx2reJO8+VCvqImw4BPQ/5nWaNfvcP39m5bQ/KCON2zpLEZoyzDWGtbFjTMbt7tC sUxFSf+SqifJB/6KN1g/MmrMnio5+KB/1u/Svq5VT7HEhidxLHMS27Xn8p6/jAsgI/8Q cKwA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739620950; x=1740225750; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:x-original-sender:mime-version :subject:message-id:to:from:date:x-beenthere:x-gm-message-state :sender:from:to:cc:subject:date:message-id:reply-to; bh=jMejw/s6J9cS6tu39UbqtinwFVblEfp8Hhi8DLcWde0=; b=V4K/q2pitGgehAaZs3nDR8bs/ezQLCutOXEi6qdqjb+AUI/iwXp2wTx/dGuaOTQKBK 8hFyMnbqYyxfVpvoUEjUtSv+HgU4r8I8tBgI5Y23m1ChPXGk+eJH0sF34fhGdxCu/VHG id18QlXsmceTO6+j6Hr+wsqiKQzPocamyzhGvLbuuFrThKCjN2wETX+gS0w9cxygnRel +EEJcRBwnvLZ2LVrQsyDsZiLT2fO2FS0t5c9ga+SrEw8xaWGcwRm7OpsZ9HcnanRlnrq L0L2BEa0xvMZwVB2cBg0r1kEFTgunCe6PUnuCZ4PBYA3yQ2z21k3K5WHEMSLkDvnh5jx HebA== Sender: bitcoindev@googlegroups.com X-Forwarded-Encrypted: i=1; AJvYcCU8vVpBeT7m+E2V6wx3OXlgkCd4LEgd76WOsP5NRNTqj/iXPvtnMmDon8dpKHcG7unZYwQtGGU6CqMX@gnusha.org X-Gm-Message-State: AOJu0YywO1U06Kzydo6wNlUJKX113wM2uo15gwEsz9UO/3zIjWLMkshb NFoHOB4JmT7f1pRFDrqo6zKdMj9wXa+kp6h3DrL9dIYnjKWuo75F X-Google-Smtp-Source: AGHT+IGjxZBoBr0hm7Z2h0u+N0nljf5cQZERz33UC8E9xsZsybDlnyKlKw+EeNroh1X8X9hvqeMN8g== X-Received: by 2002:a05:6902:3387:b0:e5d:b2c4:7cb7 with SMTP id 3f1490d57ef6-e5dc9047e37mr2299369276.12.1739620950577; Sat, 15 Feb 2025 04:02:30 -0800 (PST) X-BeenThere: bitcoindev@googlegroups.com; h=Adn5yVFnem9ofiiadlE4zThClAbEP4P87Z3x70RJrnnc3SCScw== Received: by 2002:a25:107:0:b0:e5b:269e:993d with SMTP id 3f1490d57ef6-e5da7a26919ls2430728276.2.-pod-prod-08-us; Sat, 15 Feb 2025 04:02:26 -0800 (PST) X-Received: by 2002:a05:690c:3607:b0:6f5:4304:fb8 with SMTP id 00721157ae682-6fb582b8988mr29848827b3.18.1739620946728; Sat, 15 Feb 2025 04:02:26 -0800 (PST) Received: by 2002:a05:690c:2c88:b0:6ef:77aa:1002 with SMTP id 00721157ae682-6fb44a417fbms7b3; Sat, 15 Feb 2025 03:37:26 -0800 (PST) X-Received: by 2002:a05:690c:6f8b:b0:6f9:a33a:4bf9 with SMTP id 00721157ae682-6fb582758f1mr24758517b3.8.1739619445275; Sat, 15 Feb 2025 03:37:25 -0800 (PST) Date: Sat, 15 Feb 2025 03:37:24 -0800 (PST) From: Jose Storopoli To: Bitcoin Development Mailing List Message-Id: <94ac8f66-1627-4526-bb34-095361a30fb4n@googlegroups.com> Subject: [bitcoindev] Announcing Bitcoin BOSD: Standardized Withdrawal Output Specification for L2s MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_70548_818460131.1739619444793" X-Original-Sender: jose@storopoli.io Precedence: list Mailing-list: list bitcoindev@googlegroups.com; contact bitcoindev+owners@googlegroups.com List-ID: X-Google-Group-Id: 786775582512 List-Post: , List-Help: , List-Archive: , List-Unsubscribe: , X-Spam-Score: -0.7 (/) ------=_Part_70548_818460131.1739619444793 Content-Type: multipart/alternative; boundary="----=_Part_70549_605756269.1739619444793" ------=_Part_70549_605756269.1739619444793 Content-Type: text/plain; charset="UTF-8" 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 Problem Solved: L2 operators currently risk being unable to process withdrawals if users request non-standard transactions (e.g., oversized OP_RETURN). BOSD ensures outputs are correct-by-construction according to Bitcoin network's standardness rules, abstracting away complex validation logic. Available on crates.io Get Involved: Detailed Specification and Motivation/Rationale: SPECIFICATION.md Repository: github.com/alpenlabs/bitcoin-bosd Feedback welcome via GitHub Issues and Discussion; or the mailing list. This work emerged from practical challenges faced by myself and Trey Del Bonis (GitHub @delbonis) at Alpen Labs, while building validation logic for processing L2 withdrawals on-chain for Strata: a Bitcoin-native BitVM-based bridge to a ZK-rollup. We believe standardization in this domain will benefit the entire ecosystem by reducing fragmentation and improving interoperability. The specification is has a CC0 public domain license, and the Rust implementation is MIT/Apache-2.0 double licensed. The structure of a BOSD consists of: - 1-byte tag representing a type ID. - Arbitrary-length cryptographic payload (although practically bounded to like 80 bytes). Here's a table for the supported outputs. Also note that we can trivially extend it by adding more prefixes using the type it byte. ``` | Type | Payload Length(s) | Payload Interpretation | Spend Type | Mainnet Address Prefix | | ---- | ----------------- | ---------------------- | ------------- | ---------------------- | | 0 | ..=80 | `OP_RETURN` payload | (N/A) | (N/A) | | 1 | 20 | pubkey hash | P2PKH | `1...` | | 2 | 20 | script hash | P2SH | `3...` | | 3 | 20, 32 | SegWit v0 hash | P2WPKH, P2WSH | `bc1q...` | | 4 | 32 | SegWit v1 public key | P2TR | `bc1p...` | ``` Since we strived for compact representation both in-memory and also over-the-wire, BOSD does not support checksums or any native error correction. PS: Technically Strata is not a defect L2, since it is a 1-of-N trust-minimized bridge, and not a fully trustless bridge. -- 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/94ac8f66-1627-4526-bb34-095361a30fb4n%40googlegroups.com. ------=_Part_70549_605756269.1739619444793 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Dear Bitcoin Dev Community,

I am excited to introduce Bit= coin 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
- Elimina= tes ad-hoc standardness rule implementations in L2s
- Compact represe= ntation

Problem Solved:
L2 operators currently risk being u= nable to process withdrawals if users request non-standard transactions (e.= g., oversized OP_RETURN). BOSD ensures outputs are correct-by-construction = according to Bitcoin network's standardness rules, abstracting away complex= validation logic.

Available on crates.io

Get Involved:
Detailed= Specification and Motivation/Rationale: SPECIFICATION.md
Re= pository: github.com/= alpenlabs/bitcoin-bosd
Feedback welcome via GitHub Issues and Disc= ussion; or the mailing list.=C2=A0

This work emerged from practi= cal challenges faced by myself and Trey Del Bonis (GitHub @delbonis) at Alp= en Labs, while building validation logic for processing L2 withdrawals on-c= hain for Strata: a Bitcoin-native BitVM-based bridge to a ZK-rollup. We bel= ieve standardization in this domain will benefit the entire ecosystem by re= ducing fragmentation and improving interoperability.
The specific= ation is has a CC0 public domain license, and the Rust implementation is MI= T/Apache-2.0 double licensed.

The structure of a= BOSD consists of:

- 1-byte tag representing a type ID.
- A= rbitrary-length cryptographic payload (although practically bounded to like=
=C2=A0 80 bytes).

Here's a table for= the supported outputs. Also note that we can trivially extend it by adding= more prefixes using the type it byte.

```
=
| Type | Payload Length(s) | Payload Interpretation | Spend Type =C2= =A0 =C2=A0| Mainnet Address Prefix |
| ---- | ----------------- | ----= ------------------ | ------------- | ---------------------- |
| 0 =C2= =A0 =C2=A0| ..=3D80 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 | `OP_RETURN`= payload =C2=A0 =C2=A0| (N/A) =C2=A0 =C2=A0 =C2=A0 =C2=A0 | (N/A) =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0|
| 1 =C2=A0 = =C2=A0| 20 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0| pubkey = hash =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0| P2PKH =C2=A0 =C2=A0 =C2=A0 = =C2=A0 | `1...` =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 || 2 =C2=A0 =C2=A0| 20 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0| script hash =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0| P2SH =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0| `3...` =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 |
| 3 =C2=A0 =C2=A0| 20, 32 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0| SegWit v0 hash =C2=A0 =C2=A0 =C2=A0 =C2=A0 | P2WPKH, P2W= SH | `bc1q...` =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0|
| 4 = =C2=A0 =C2=A0| 32 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0| = SegWit v1 public key =C2=A0 | P2TR =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0| `bc1= p...` =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0|
```=

Since we strived for compact representation bot= h in-memory and also over-the-wire, BOSD does not support checksums or any = native error correction.

PS: Technically Strata = is not a defect L2, since it is a 1-of-N trust-minimized bridge, and not a = fully trustless bridge.

--
You received this message because you are subscribed to the Google Groups &= quot;Bitcoin Development Mailing List" group.
To unsubscribe from this group and stop receiving emails from it, send an e= mail to bitcoind= ev+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/bitcoind= ev/94ac8f66-1627-4526-bb34-095361a30fb4n%40googlegroups.com.
------=_Part_70549_605756269.1739619444793-- ------=_Part_70548_818460131.1739619444793--