As per BIP 141, the witness Merkle root hash is stored in a scriptPubkey field of a coinbase transaction output with a header consisting of the 4-byte string 0xaa21a9ed. What is the reasoning behind choosing this string?

Googling only yielded a reference to namecoin on a bitcoin-dev IRC log.

1 Answer 1


It's random.

The intent was choosing something long enough to avoid having someone accidentally create an output that matches, but short enough that it doesn't unnecessarily makes SegWit blocks larger.

  • Why was it not chosen to be some regular 4-byte string like all zeros or all ones or 0xAABBCCDD? Will the probability of someone creating a null data output which matches the header increase if the header had some regular structure?
    – sarva
    Sep 10, 2017 at 6:03

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.