- Can a Bitcoin transaction output have a completely empty
scriptPubKey(0 bytes) and still be considered valid by current consensus rules?
Yes, but not by the current standardness rules in Bitcoin Core.
- If such outputs are valid, how can they be spent? What would
scriptSiglook like? Can it be just<3>and that’s it (since top level stack element would be non-zero value; it’s3)?
Indeed. But again, such a spend will not be valid by standardness rules.
Note that just because an output is valid, does not mean it can be spent. E.g., a scriptPubKey of <0> would be valid (as in by consensus it is allowed to appear in a transaction output), but there is no way to spend it.












