> 2) What is the purpose of the RETURN PUSHDATA(36)(...), actually, in > theory, this output can never be consumed by anyone, because there is > no OP_CHECKSIG or similar OP at the end to return true in the Script > stack. From my understanding, this is mandatory in SegWit enabled blocks. The second script (starting with ``OP_RETURN``) provides the merkleroot of the witness tree. IIRC it was created this way to prevent a hard fork. Adding an extra field into the block header would defiantly require a hard fork, so the best alternative was to place the data somewhere already available in all current blocks. Since the ``OP_RETURN`` script will never be a valid output, it will simply be ignored. Reference and more information: [BIP141 Commitment structure][2] and [a similar question][1] [1]: https://bitcoin.stackexchange.com/a/74183/85140 [2]: https://github.com/bitcoin/bips/blob/master/bip-0141.mediawiki#commitment-structure