user3837: The protocol rules state that

For each input, if the referenced output transaction is coinbase (i.e.
  only 1 input, with hash=0, n=-1), it must have at least
  COINBASE_MATURITY (100) confirmations; else reject this transaction

Why should coinbase transactions with less than 100 confirmations be unspendable? What is the point of the rule?

user12835: The reason for this is that if a fork were to occur, some blocks will be orphaned and not have any coins which can be rebroadcast. If a block containing a transaction you send me gets orphaned, I can still get my coins, but if the block you are sending me coins from gets orphaned, I can not rebroadcast since the coinbase no longer exists on the valid chain.

3837: <p>The <a href="https://en.bitcoin.it/wiki/Protocol_rules" rel="noreferrer">protocol rules</a> state that</p>

<blockquote>
  <p>For each input, if the referenced output transaction is coinbase (i.e.
  only 1 input, with hash=0, n=-1), it must have at least
  COINBASE_MATURITY (100) confirmations; else reject this transaction</p>
</blockquote>

<p>Why should coinbase transactions with less than 100 confirmations be unspendable? What is the point of the rule?</p>
 12835: <p>The reason for this is that if a fork were to occur, some blocks will be orphaned and not have any coins which can be rebroadcast. If a block containing a transaction you send me gets orphaned, I can still get my coins, but if the block you are sending me coins from gets orphaned, I can not rebroadcast since the coinbase no longer exists on the valid chain.</p>
