According to the Wiki, the input script of the Genesis block consists of these bytes:
We can break this down as follows:
0x04: push 4 bytes
0xffff001d: the same value as the "bits" field of the Genesis block header
0x01: push 1 byte
0x04: push the value 4
- remainder: ASCII encoding of the famous message "The Times 03/Jan/2009 Chancellor on brink of second bailout for banks"
As far as I know, the first two values pushed to the stack (
0x04) are unnecessary. Of course, so is the chancellor message, but at least its meaning is a bit more clear.
However, the push
0x04 pattern also appears in other blocks. For example, the same pattern shows up in the next block (0e3e2357e806b6cdb1f70b54c3a3a17b6714ee1f0e68bebb44a74b1efd512098).
I found this question, with an answer that speculates:
So 010445 are in fact part of 2 operations - 01 pushes 04 to the stack, 45 pushes the message to the stack. As to why push 04, beats me, maybe it was just testing to make sure something works? Some internal counter used by Satoshi during Genesis block creation? Since the script of a coin generation transaction is really meaningless, we might never know.
- Are these initial push data operations necessary?
- If not, why do these items (bits and
0x04) appear in more than one block?
- Was adding this prefix to the coinbase transaction input script part of the default behavior of the original Bitcoin client?
- If not, wouldn't this be a signature for blocks that Satoshi mined?