[bitcoin-dev] SPV Mining reveals a problematic incentive issue.
jtimon at jtimon.cc
Sun Jul 12 18:37:19 UTC 2015
On Sat, Jul 11, 2015 at 12:39 PM, Tier Nolan <tier.nolan at gmail.com> wrote:
> On Sat, Jul 11, 2015 at 10:24 AM, Jorge Timón <jtimon at jtimon.cc> wrote:
>> I think it would be more rational for them to keep mining on top of the
>> old block until they've fully validated the new block (which shouldn't take
>> so long anyway), even if this slightly increases the orphan rate.
> Increased orphan rate means that the network is (slightly) less secure.
> If miners have a 5% orphan rate, then an attacker can launch a 51% attack
> with 49% of the network.
> It isn't a massive difference, but it is there.
If miners aren't validating the blocks they mine on top of, an
attacker can do more nasty things I think.
> As long as miners switch back to non-SPV mining after a timeout, SPV-mining
> is safe for everyone.
> The average cost to the miner from building on an invalid block is small, as
> long as invalid blocks only happen rarely.
> Miners still have an incentive to do full validation, so that they can
> include transactions and get transaction fees.
> SPV-mining is to prevent hashing hardware from having to waste power when it
> isn't needed.
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.
This has risks too. In both cases, if they don't mine a block during
the block validation, everything is fine.
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.
If they successfully mine on top of the previous block, they start a
mini-race that they can win or not, but the impact to regular SPV
users is much lower.
The later may be slightly less profitable, but I bet the difference is
negligible. It would be interesting to know if miners actually did
this numbers and how (in case their model is incomplete or flawed).
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.
In a future without (or with negligible) subsidy, SPV mining is always
inferior to just keep mining on top of the same block you were mining
until you fully validate the next one.
> It may be less of a problem if (when?) electricity costs dominate hardware
> capital costs.
This seems correct (for both cases).
It's also less worrying the shorter the full validation time of a block is.
More information about the bitcoin-dev