Subject: Re: [bitcoin-dev] SPV Mining reveals a problematic incentive issue.

From: Tier Nolan <[email-masked]>
Date: Sun, 12 Jul 2015 19:54:38 +0100

On Sun, Jul 12, 2015 at 7:37 PM, Jorge Timón <[email-masked]> wrote:

> As long as miners switch back to the new longest chain after they
> validate the block, mining on top of the
> non-most-work-but-surely-valid may be less risky than mining on top of
> a most-work-but-potentially-invalid block.
>

It depends on how long they are waiting.  If they receive a header, it is
very likely to be part of a valid block.

The more time that passes, the more likely that the header's block was
invalid after all.

This tradeoff is what the timeout takes into account.  For a short period
of time after the header is received, it is probably valid but eventually,
as time passes without it being fully validated, it is more likely to be
false after all.

If they successfully SPV mine, they risk having mined on top of an
> invalid block, which not only means lost coins for them but high risk
> for regular SPV users.
>

With a 1 minute timeout, there is only a 10% chance they will find another
block.

It is important that when a header is marked as "probably invalid" that all
the header's children are also updated too.  The whole chain times out.

It is important to note that while SPV mining requires you to produce
> empty blocks, mining on the previous on top of the previous block
> allows you to include transactions and earn fees.
> In a future where block rewards aren't so overwhelmingly dominated by
> subsidies, the numbers will run against SPV mining.
>

Agreed.  Transaction only fees changes the whole incentive structure.

A fee pool has been suggested to keep things as they are now.  All fees
(mint & tx fees) are paid into a fee pool.  1% of the total pool fund is
paid to the coinbase.

This keeps the total payout per block reasonably stable.  On the other
hand, it removes the incentive to actually include transactions at all.