The only time an empty block MUST happen is the very very rare times mempool is empty. Aside from that, generating empty blocks is a conscious decision made by the operators of certain large pools. They are not a random event that any pool might do in the course of normal operations.
This is a misconception spread by Kano to advertise his pool.
Empty blocks MUST happen regardless of everything else, I can go with the technical explanation of why must they happen, but since I have already explained that I'll refer you to
aantonop Now let's take simple practical examples.
Today viabtc mined an empty block
631926 , the
next block had 0.46 in fees, yesterday 1THash&58COIN mined an empty block 631806 and block 631807 had 0.75
BTC in fees.
Are you implying that these pools are sacrificing thousands of dollars for nothing? does a pool that owns 10% or 20% or 30% of the network hashrate run an inadequate code or slow servers?? of course NOT.
Empty blocks will ALWAYS come by because the time it takes to download and verify the transactions of the previous blocks is >0 and <x and the probability of hitting a block between 0 and x seconds is always there, the pools will have two options.
1- Wait until they verify the transactions of the last block.
2- Risk putting transactions which were included in the previous block.
Number 1 is risky because another pool might beat you to it, Number 2 is risky because if you include a transaction from the previous block your block will be invalid and nobody in their mind will take that risk.
If the above is still hard to digest, take a look at the number of empty blocks mined this year, exactly 14 empty blocks for each month
Jan 14 empty blocks.
Feb 14 empty blocks.
March 14 empty blocks.
April 14 empty blocks.
Those empty blocks are found by various different pools, what does that mean?
A- Pool operators sit together in a closed room and decided how much money they want to lose.
B- Statistics, maths, and probability.
if you believe in A, stop reading, if not please continue.
What does finding 14 blocks mean?
every day we find 14/30 = 0.46 empty blocks = 1.63% of all blocks WILL be empty
For T = 0.46 a nd % = 1.63
exp(−TimefromSeconds/AverageBlocktime)−exp(−TimetoSeconds/Averageblocktime) = 0.016 > 1.63%
exp(−1/60)−exp(−2/60) = 0.016 > 1.63%
This means the average time for mining pools to download and verify transactions of the previous blocks is great than 2 seconds, anything that falls between >0 and <200ms WILL HAVE to be empty, Kano can't do shit about, Pools can't avoid it, Satoshi can't fix it, Albert Einstein won't bother with trying to change it.
I know kano has had a very small next to nothing tx fee block.
I don't recall if it was under 30 seconds for sure. I think the clock times were 9 or 17 seconds. He was close to a fee less block.
Part of the empty blocks are due to manipulation and skipping the last transaction from the previous block. Thus a very fast "empty" block. But a block none the less.
So would you rather hit 5 blanks a month. Or all the blanks have a small amount of tx fees but you don't get the 5 you lose one to a guy that went shortcut method.
I wonder which is better. It would be really hard to determine how many small fee fast blocks happen for a pool using kano's method vs 1 extra block empty via the shortcut method.
If both are legal it is a pool operators choice to do one or the other.
As block reward 1/2 's more pools may not choose the faster method as tx rewards are greater.
But as I said I truly do know how stupid I am and will continue to be. So I just like friendly people to run my pools. I am not going to get rich here. so why argue.