1

The Satoshi's coinbase transaction includes this following scriptSig:

04ffff001d0104455468652054696d65732030332f4a616e2f32303039204368616e63656c6c6f72206f6e206272696e6b206f66207365636f6e64206261696c6f757420666f722062616e6b73

There's an unexpected thing that I don't fully understand. What is this bytes sequence: 04ffff001d0104. Like that, I could eventually determine as 04 (size) + ffff001d + 01 (size) + 04

But I don't think it's the decode structure, so are you able to tell me what is this sequence number and what is its role ?

2 Answers 2

3

What is this bytes sequence: 04ffff001d0104

Non-functional data that probably only has meaning to the miner?

See What is the coinbase? where Murch answers

The coinbase transaction can have an arbitrary input of 100 byte size. E.g. this was where the genesis block famously contained "The Times 03/Jan/2009 Chancellor on brink of second bailout for banks". This is also the field that may be used for the extranonce.

And David Schwarz notes

BIP 34 changes this a bit.

Though obviously the genesis transaction predates the ideas of extranonce and BIP34


As you worked out, this part of the unlocking script (sigscript) is a push of a 4-byte value onto the stack and a push of a one-byte value onto the stack.

Since this is in the input of a coinbase transaction, so far as I know it has no functional purpose for other nodes in the rest of the Bitcoin network. There's no previous transaction with a locking script to be satisfied.

I'm not sure if that is known what this data meant to Nakamoto, so far as I know there was little restriction on what a miner could choose to put in the unlocking script of the inputs of the coinbase transaction.

Nakamoto seems to have pushed 4 bytes FFFF001D for the first 30000 or so blocks, the second push was sometimes 1 byte sometimes 2 and looks a bit like a sequence number but isn't continuous and doesn't always increase.

I wonder if Nakamoto ever publicly explained this. As I said, I believe it was arbitrary data that has no function for other nodes.

I looked at the coinbase transactions in blocks 1-9, 10,20,...90, 100,200...900, 1000, 2000...9000 etc

    Unlocking Script:.....04FFFF001D0104455468652054696D65732030332F4A616E2F32303039204368
    Unlocking Script:.....04FFFF001D0104
    Unlocking Script:.....04FFFF001D010B
    Unlocking Script:.....04FFFF001D010E
    Unlocking Script:.....04FFFF001D011A
    Unlocking Script:.....04FFFF001D0120
    Unlocking Script:.....04FFFF001D0123
    Unlocking Script:.....04FFFF001D012B
    Unlocking Script:.....04FFFF001D012C
    Unlocking Script:.....04FFFF001D0134
    Unlocking Script:.....04FFFF001D0116
    Unlocking Script:.....04FFFF001D010D
    Unlocking Script:.....04FFFF001D0109
    Unlocking Script:.....04FFFF001D013A
    Unlocking Script:.....04FFFF001D028300
    Unlocking Script:.....04FFFF001D02B500
    Unlocking Script:.....04FFFF001D0103
    Unlocking Script:.....04FFFF001D0122
    Unlocking Script:.....04FFFF001D0145
    Unlocking Script:.....04FFFF001D029600
    Unlocking Script:.....04FFFF001D023801
    Unlocking Script:.....04FFFF001D024F02
    Unlocking Script:.....04FFFF001D020204
    Unlocking Script:.....04FFFF001D029F06
    Unlocking Script:.....04FFFF001D02B400
    Unlocking Script:.....04FFFF001D02A500
    Unlocking Script:.....04FFFF001D02D202
    Unlocking Script:.....04FFFF001D02A003
    Unlocking Script:.....04FFFF001D027802
    Unlocking Script:.....04FFFF001D02E700
    Unlocking Script:.....04FFFF001D020204
    Unlocking Script:.....04FFFF001D02E606
    Unlocking Script:.....04FFFF001D02EA04
    Unlocking Script:.....04FFFF001D02E502
    Unlocking Script:.....04FFFF001D023909
    Unlocking Script:.....04FFFF001D026606
    Unlocking Script:.....04FFFF001D02DA03
    Unlocking Script:.....04FFFF001D02C30C
    Unlocking Script:.....04FFFF001D0173
    Unlocking Script:.....04C38C001D021801
    Unlocking Script:.....0415112A1C02CC00
    Unlocking Script:.....045C670F1C02ED0D
    Unlocking Script:.....04FD68011C024705
    Unlocking Script:.....04E6ED5B1B028701
    Unlocking Script:.....046332151B026402
    Unlocking Script:.....044C86041B0145
2

The script causes 3 items to be pushed onto the stack.

The first byte 04 is the length of the first item. That means the following 4 bytes get pushed onto the stack as one value.

After that is the byte 01, so the byte following that is pushed onto the stack.

Then comes the byte 45. This is 69 decimal, and is the length of the remaining part of the script. It gets pushed onto the stack as a 69-byte value.

So, when the script executes, it produces the following stack:

ffff001d
04
5468652054696d65732030332f4a616e2f32303039204368616e63656c6c6f72206f6e206272696e6b206f66207365636f6e64206261696c6f757420666f722062616e6b73

The 3rd stack item, is hex for the text string:

The Times 03/Jan/2009 Chancellor on brink of second bailout for banks

3
  • You’re right. However, can you tell me why 04ffff001d0104 in the script is needed ? Can you provide more information please.
    – Loopite
    Commented Aug 12, 2022 at 3:41
  • @Loopite: I believe it isn't needed (at least not by anyone other than the miner) Commented Aug 12, 2022 at 11:06
  • It is likely that he was using those fields as a test, since it was the first block ever. There are quite a few transactions that contain data that makes no sense to anyone other than the person who created it, especially in coinbase transactions.
    – Zephyrus
    Commented Aug 12, 2022 at 11:43

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