Skip to content

smite: add is_standard_shutdown_script helper - #186

Open
ekzyis wants to merge 1 commit into
lnfuzz:masterfrom
ekzyis:is-standard-shutdown-script
Open

smite: add is_standard_shutdown_script helper#186
ekzyis wants to merge 1 commit into
lnfuzz:masterfrom
ekzyis:is-standard-shutdown-script

Conversation

@ekzyis

@ekzyis ekzyis commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

From the commit message:

BOLT-02 specifies sender requirements for shutdown scripts. They must be
witness v0 (P2WPKH, P2WSH) or following features must be negotiated:

  • option_shutdown_anysegwit: witness v1-v16 with a 2..=40 byte program
  • option_simple_close: OP_RETURN with a single data push of 6..=80
    bytes

Legacy scripts (P2PKH, P2SH) may be accepted for backward compatibility.

This applies to the shutdown and closing_complete messages, and the
upfront_shutdown_script TLV in the open_channel, open_channel2,
accept_channel and accept_channel2 messages.

This commit adds a helper to catch targets that don't comply with the
spec.

As per the note I added to the code, I'm not sure if the fuzzer should also reject legacy scripts, since a target must not send them.

I haven't wired this into existing code or #163 yet, but I thought the introduction of the helper might be worthwile to review itself, especially considering the question wrt legacy scripts.

BOLT-02 specifies sender requirements for shutdown scripts. They must be
witness v0 (P2WPKH, P2WSH) or following features must be negotiated:

* `option_shutdown_anysegwit`: witness v1-v16 with a 2..=40 byte program
* `option_simple_close`: `OP_RETURN` with a single data push of 6..=80
  bytes

Legacy scripts (P2PKH, P2SH) may be accepted for backward compatibility.

This applies to the `shutdown` and `closing_complete` messages, and the
`upfront_shutdown_script` TLV in the `open_channel`, `open_channel2`,
`accept_channel` and `accept_channel2` messages.

This commit adds a helper to catch targets that don't comply with the
spec.
@ekzyis
ekzyis force-pushed the is-standard-shutdown-script branch from f33051b to 22217d9 Compare August 4, 2026 11:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant