From what I learned, the coinbase field in the block reward transaction can carry any data (As long as smaller than 100b).

Why that actually? Was it easier to implement in the beginning? I would just have defined that the coinbase transaction may have no input. I know it is useful now to carry more information (see BIP34). I'm just not sure what was Satoshi's intention here, although he included himself the famous

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

Further it seems that this is missing in the transaction db and is unspendable, but I may confuse things here.

up vote 1 down vote accepted

They wanted to rule out possibility that the same transaction ID would appear in different block, as a different coinbase.

There have been such in the history, but only twice, and it complicates the unspent DB application, so they just decided one day that same ID would not be distinguishable as a different transaction anymore. Thus added a protection against it, in block format version 2, so no miner can accidentally end up anymore with a non-unique ID for his coinbase transaction.

  • Ok, I see, that's the reason: the transaction ID is calculated from the data of the transaction, and if there would be just a normal bitcoin address as 'out' but nothing as 'in', collisions would be likely. – Borph May 31 '13 at 8:50
  • are you referring to bip 0034? – Janus Troelsen Mar 11 '14 at 9:36
  • This answer explains how it is used now (as of BIP 34), not the original reason for having the coinbase field. – Pieter Wuille Apr 1 '14 at 8:33

Your Answer

 

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

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