From 4acbb39a46773966947f177ca9a3b4ea93b26da5 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Wed, 18 Sep 2019 10:03:03 +0930 Subject: [PATCH] BOLT 2: `opt_shutdown_anysegwit` In bitcoin 0.19.0, standardness rules are going to be relaxed to allow future witness versions. Once this is widely deployed, it will be safe to accept them, smoothing use of future segwit versions. See: https://github.com/bitcoin/bitcoin/pull/15846 Signed-off-by: Rusty Russell --- .aspell.en.pws | 1 + 02-peer-protocol.md | 5 ++++- 09-features.md | 2 ++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/.aspell.en.pws b/.aspell.en.pws index b10460727..7b6b9109a 100644 --- a/.aspell.en.pws +++ b/.aspell.en.pws @@ -385,3 +385,4 @@ csv CHECKSIGVERIFY IFDUP sats +anysegwit diff --git a/02-peer-protocol.md b/02-peer-protocol.md index 842274074..1f2da0ae7 100644 --- a/02-peer-protocol.md +++ b/02-peer-protocol.md @@ -492,7 +492,10 @@ A sending node: (pay to pubkey hash), OR 2. `OP_HASH160` `20` 20-bytes `OP_EQUAL` (pay to script hash), OR 3. `OP_0` `20` 20-bytes (version 0 pay to witness pubkey), OR - 4. `OP_0` `32` 32-bytes (version 0 pay to witness script hash) + 4. `OP_0` `32` 32-bytes (version 0 pay to witness script hash), OR + 5. if (and only if) `opt_shutdown_anysegwit` is negotiated: + * `OP_1` through `OP_16` inclusive, followed by a single push of 2 to 40 bytes + (witness program versions 1 through 16) A receiving node: - if it hasn't received a `funding_signed` (if it is a funder) or a `funding_created` (if it is a fundee): diff --git a/09-features.md b/09-features.md index e0b1b5d15..3cfe329b6 100644 --- a/09-features.md +++ b/09-features.md @@ -39,6 +39,7 @@ The Context column decodes as follows: | 16/17 | `basic_mpp` | Node can receive basic multi-part payments | IN9 | `payment_secret` | [BOLT #4][bolt04-mpp] | | 18/19 | `option_support_large_channel` | Can create large channels | IN | | [BOLT #2](02-peer-protocol.md#the-open_channel-message) | | 20/21 | `option_anchor_outputs` | Anchor outputs | IN | `option_static_remotekey` | [BOLT #3](03-transactions.md) | +| 24/25 | `opt_shutdown_anysegwit` | Future segwit versions allowed in `shutdown` | IN | | [BOLT #2][bolt02-shutdown] | ## Requirements @@ -80,6 +81,7 @@ This work is licensed under a [Creative Commons Attribution 4.0 International Li [bolt02-retransmit]: 02-peer-protocol.md#message-retransmission [bolt02-open]: 02-peer-protocol.md#the-open_channel-message +[bolt02-shutdown]: 02-peer-protocol.md#closing-initiation-shutdown [bolt04]: 04-onion-routing.md [bolt07-sync]: 07-routing-gossip.md#initial-sync [bolt07-query]: 07-routing-gossip.md#query-messages