Bitcoin Forum

Other => Beginners & Help => Topic started by: Scotchman on December 04, 2012, 04:13:37 AM



Title: Incentive to add transactions to block
Post by: Scotchman on December 04, 2012, 04:13:37 AM
Fellow n00bs,

Does anyone know what incentive or protocol rule compels miners to add new transactions to a block they are working on?  It seems like adding new transactions is a waste of processing power.  Why not just receive a few transactions and then get to work?


Title: Re: Incentive to add transactions to block
Post by: casascius on December 04, 2012, 04:16:12 AM
The amount of extra processing power wasted is negligible: the effort required to hash a block does not increase with the size of the transaction set being included in it.  The mining is done on the root hash of the transaction set, not the transaction set itself.


Title: Re: Incentive to add transactions to block
Post by: Scotchman on December 04, 2012, 04:26:12 AM
Oh, hai there!

I'm about to buy some of your physical coins as Christmas presents.

I understand that the cost of adding transactions is negligible.  Still, is there any enforcement mechanism?  Can I receive a handful of transactions and then just get to work on solving the block?

I seem to remember something in the protocol specs about checking the timestamp of the latest transaction in a solved block or something like that.  But it wasn't clear, and I can't remember where I saw it now.

Anyway, it's not hugely important, but it has been bugging me.


Title: Re: Incentive to add transactions to block
Post by: casascius on December 04, 2012, 04:33:48 AM
It's possible for someone to mine blocks and not include transactions and there is currently no enforcement preventing people doing that.  Also there is a prevailing belief that there's nothing wrong with this, as it still represents valid proof of work, so as far as I know, no one is trying to prevent it.  A miner can choose to include or not include any new valid transactions he chooses, up to any limits in place (such as limit on block size).

Generally a miner is incentivized to include transactions because it's a negligible cost and he's helping the network.  Two things I am aware of that may discourage including transactions: 1) if mining is done with stolen resources such as on a botnet, the extra traffic may increase the risk of bot nodes being found, and 2) a belief that a larger block will propagate throughout the network slower than a smaller block, and be subject to a disadvantage if two competing blocks are found at the same time.


Title: Re: Incentive to add transactions to block
Post by: DeathAndTaxes on December 04, 2012, 04:34:24 AM
There is no enforcement mechanism.  Miners are (intentionally) free to choose which transactions to include in a block.  If a miner wanted to they could mine "empty" (containing only the reward tx) blocks.  There are numerous technical reasons why the network operates this one. 

As for what is the incentive?  Transaction fees. 


Title: Re: Incentive to add transactions to block
Post by: Foxpup on December 04, 2012, 04:37:55 AM
Miners aren't compelled to include transactions in a block, and blocks containing no transactions at all are perfectly valid. However, transaction fees (https://en.bitcoin.it/wiki/Transaction_fees) provide an incentive for them to do so. Currently, most miners are willing to include transactions without fees under most circumstances, as most of their income comes from the block subsidy rather than transaction fees, however it is likely that transaction fees will eventually be required for all transactions, as the block subsidy is halved every four years and will eventually become a negligible portion of mining income.


Title: Re: Incentive to add transactions to block
Post by: Scotchman on December 04, 2012, 04:39:58 AM
And the truth shall set you free.  Transaction fees.  Thanks for the responses.

It seems the steady-state operation of the network is more dependent on fees than I originally realized.  But that makes perfect sense.  It also makes sense why the block reward is initially high.  Bootstrapping.