[Bitcoin-development] Cut-through propagation of blocks

Gregory Maxwell gmaxwell at gmail.com
Sun May 25 00:14:59 UTC 2014


On Sat, May 24, 2014 at 5:04 PM, Alan Reiner <etotheipi at gmail.com> wrote:
> I think the most important change is modifying the way Bitcoin Core
> prioritizes blocks.  Right now it uses the first full block verified.
> Instead, it should consider the first valid header received as highest
> priority, but only mine on it once it has done full verification of the

This directly opens an attack where as soon as you find a block you
announce the header to the world and then you delay announcing the
block content.  You can continue to mine on the block but no one else
can (or alternatively they break their rule and risk extending an
invalid block— bad news for SPV wallets)— then when you find a
successor block or someone else finds a competing block you
immediately announce the content.

It basically means that you can always delay announcing a block and be
sure that doing so doesn't deprive you of your winning position.

> If miners are concerned about that 1-3 second gap, they
> should perhaps focus on making sure the tx they are mining are
> well-propagated already, so that most of the network has most of the
> transactions already in their memory pool by the time their block is mined.

With an alternative transport protocol, assuming the content has
already been relayed a block could be sent in a couple back to back
UDP packets.  (e.g. a few bytes per transaction to disambiguate the
transaction order out of the already sent transactions).  So I think
very similar latency could be achieved without doing any thing which
might increase the motivations for miners to misbehave.




More information about the bitcoin-dev mailing list