AFAIK when a miner succeeds in creating a block, he puts a special transaction (coinbase) in it which spends no input and sends a fixed amount of BTC to an address he can arbitrarily specify.

Instead of doing so, can we do the following: Miner simply puts an address in the block header. When he succeeds in creating the block, all nodes that receive this block create the coinbase transaction -which spends no input and sends the fixed amount to the address in header- in their UTXO pool.

Would that work?

  • Why to make that change? What's the difference?
    – Osias Jota
    Feb 15, 2018 at 14:23
  • Curiosity. Don't think it is any better than current model in any way. Just curious if it's feasible or not.
    – SpiderRico
    Feb 15, 2018 at 14:23
  • 2
    No, I mean what's the rationale behind it? To separate mining work from transaction selection?
    – Osias Jota
    Feb 15, 2018 at 14:31

2 Answers 2


Sure, the protocol could have been designed that way.

The benefit would be that a block would be slightly smaller, since it only needs to contain a single address, rather than a full coinbase transaction.

However, a benefit of the current system is that miners have the flexibility to pay out their coinbase transaction in some other way than sending it all to a single address. For example, a pool can distribute the coinbase transaction directly to its members in proportion to the amount of work they have done. This removes the need for the pool manager to hold those funds, even temporarily, and gives the members some additional assurance against fraud by the manager. It also lets miners take advantage of more sophisticated transaction types, such as multisig, segwit, etc.

The current system also means that coinbase transactions are handled the same as other transactions, using the same code; the only difference is that the inputs need not be checked. Under your proposal, there would need to be special code to create the transaction, which would be another possible source of bugs and increase the "attack surface".

On balance, I think the current way is better.


It's pointless to separate mining reward from transaction selection. Mining rewards and mining in general were the solution Satoshi Nakamoto gave to the very problem of transaction selection.

For example:

Alice mines a block A and gets her reward of 50 BTC, but it contains no transactions yet. So, 100 other nodes create 100 new different blocks with the transactions that will be related to the block A. What of those 100 blocks is the one you should consider the valid? You don't know, no until someone selects one of them and do the proof of work, creating a new block, B.

In the end you recreated the original Bitcoin solution, but with more indirections and network bandwidth usage.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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