From b3fe86e06697b8727dae41aa3e0012df7fc42237 Mon Sep 17 00:00:00 2001 From: Bartok9 Date: Thu, 23 Jul 2026 08:30:13 -0400 Subject: [PATCH] News188: clarify cleanstack is policy only for legacy inputs Segwit v0 (BIP141) and tapscript (BIP342) enforce a single-TRUE final stack at consensus; only legacy non-segwit inputs treat strict cleanstack as policy. Closes #726. --- _posts/en/newsletters/2022-02-23-newsletter.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/_posts/en/newsletters/2022-02-23-newsletter.md b/_posts/en/newsletters/2022-02-23-newsletter.md index 1fbc91451b..8a1ace065c 100644 --- a/_posts/en/newsletters/2022-02-23-newsletter.md +++ b/_posts/en/newsletters/2022-02-23-newsletter.md @@ -71,9 +71,10 @@ answers posted since our last update.* Pieter Wuille lists the reasons why the genesis block's coinbase "Chancellor..." text push is valid. First, the [genesis block][bitcoin se 13122] is valid by definition. Second is that coinbase input scripts are never executed. - Third is that, for non-taproot inputs, the requirement of a single element on the stack - after execution is only a policy rule, not a consensus rule. Finally, that policy - rule applies only to the final stack after an input script is executed together with the corresponding output script. Since there + Third is that, for legacy (non-segwit) inputs, the requirement of a single element on the + stack after execution is only a policy rule, not a consensus rule (segwit v0 and tapscript do + enforce an equivalent single-element final-stack requirement as consensus). Finally, that + policy rule applies only to the final stack after an input script is executed together with the corresponding output script. Since there are no corresponding output scripts for the inputs of coinbase transactions, the policy does not apply. Wuille also notes the reason for the genesis block's unspendability is unrelated to this discussion and involves the original Bitcoin software [not