Higher block propagation latency favors large miners

From Bitcoin Debates
Jump to: navigation, search

Rusty Russell has a great explanation of this in his blog post:

"Consider the plight of a miner whose network is further away from most other miners. They find out about new blocks later, and their blocks get built on later. Both these effects cause them to create blocks which the network ignores, called orphans. Some orphans are the inevitable consequence of miners racing for the same prize, but the orphan problem is not symmetrical. Being well connected to the other miners helps, but there’s a second effect: if you discover the previous block, you’ve a head-start on the next one. This means a pool which has 20% of the hashing power doesn’t have to worry about delays at all 20% of the time.

If the orphan rate is very low (say, 0.1%), the effect can be ignored. But as it climbs, the pressure to join a pool (the largest pool) becomes economically irresistible, until only one pool remains."

Larger blocks increase orphan rates, because larger blocks take longer to transmit.

Gavin did some simulations, showing a relatively small effect. These simulations assumed all miners had similar network connections.

Pieter Wuille ran some more detailed simulations, adding the ability to specify better/worse connections for some miners. The numbers he posted showed large effects, although he ran the simulation with a 2 Mbit/sec connection for some miners which may not be realistic. His goal was just to demonstrate that this could be an issue.

Tom Harding re-ran Pieter's simulation with different configurations, and found that the main factor driving Pieter's results was the assumption that part of the network was partitioned from the rest of the network by a slow connection.

Aviv Zohar and others wrote a paper showing that more latency makes selfish mining more profitable. However in the reddit thread on the paper, Aviv states that it's a theoretical result and the magnitude of the effect might be very small.

Matt Corallo has developed a relay network used by miners to quickly transfer blocks between each other, which mitigates this problem somewhat. The idea is that when a miner publishes a block, other miners will already be aware of most of the transactions it contains, so the only information that needs to be transferred is a description of which transactions the block contains, rather than sending all the transaction data. Peter Todd has argued that the relay network is not as great as some people think, because uncooperative miners can negate its effects.

Everyone seems to agree that large blocks favor large miners somewhat -- the main question is over how strong this effect is in practice and how strong it'll be at higher block sizes. Because of the uncertainty around this issue and because the effect might be large, it's best to be very cautious when raising the block size.

Counterarguments[edit]

  • Greg Maxwell does not seem worried about block propagation latency: "The technical/security implications of larger blocks are related to other things than propagation time, if you assume people are using the available efficient relay protocol (or better)." I'm not sure how he'd argue to back this up. My best guess: an miner misbehaving in the presence of the relay network would mine large blocks full of transactions that no one else had, forcing everyone else to wait to download these blocks while the attacking miner got a head start. This wouldn't help unless the miner had a large fraction of the hash rate, because the miner is putting himself at risk of his block being orphaned while other people download it. So the relay network has effectively solved this problem (at least for reasonable block sizes)
    • The miner who is attacking in the presence of the relay network might still be able to pull off a worthwhile attack if he's trying to hurt miners in some part of the network who have a very slow connection to the rest of the network, rather than trying to profit.
    • I'm very uncertain of this argument. Links to a deeper discussion of this issue would be appreciated.
  • Jonathan Toomim, a miner with about 0.25% of the total hash power posted a reddit comment arguing that latency issues are not very significant, and would not be at higher block sizes because of Matt Corallo's relay network. Further down in the thread the author proposes several ways of dealing with uncooperative miners who withhold transactions from the relay network.