Subject: Re: [Bitcoin-development] Defeating the block withholding attack

From: Mike Koss <[email-masked]>
Date: Mon, 4 Jun 2012 13:49:48 -0700

As I understand the attack, the attacker gets compensated for the shares
they earn, but the pool will be denied any valid blocks found.  The
attacker DOES NOT have access to the Bitcoins earned in the unreported
block (only the mining pool has access to the Coinbase address and
transactions in the block).

So it's a zero-net-cost attack for the attacker (but no chance of making a
profit) to hurt the pool operator.  The only way to detect such an attack
now is to look for "unlucky" miners; at the current difficulty, you can't
detect this cheat until many millions of shares have been earned w/o a
qualifying block.  Since an attacker can also create many fake identities,
they can avoid detection indefinitely by abandoning each account after a
million earned shares.

I don't understand your proposal for fixing this.  You would have to come
up with a scheme where:

- The miner can detect a qualifying hash to earn a share.
- Not be able to tell if the hash is for a valid block.

The way I would do this is to have a secret part (not shared with the
miners) of a block that is part of the merkle hash, which is also used in a
secondary hash.  Difficulty is then divide into two parts: the first,
solved by the miner (earning a "share" - e.g., 1 in 4 Billion hashes).  And
a second, solved by the pool (1 in Difficulty shares).  A valid block would
have to exhibit a valid Share Hash AND a valid Pool Hash in order to be
accepted.

This would be a very major change to the Block structure.  Given that
attackers do not have direct monetary gain from this attack, I'm not sure
we can justify it at this point.

On Sun, Jun 3, 2012 at 7:04 PM, Luke-Jr <[email-masked]> wrote:

> On Monday, June 04, 2012 1:43:42 AM Peter Vessenes wrote:
> > Does it have asymmetric payoff for an attacker, that is, over time does
> it
> > pay them more to spend their hashes attacking than just mining?
>
> That depends on the pool's reward scheme. Some complicated forms are
> capable
> of getting "bonus" earnings out of the pool. Under all systems, the
> attacker
> at least gains the "hurt the pool" benefit. Given the frequency of DDoS
> attacks on pools, it is clear there are people who will even pay for
> attacks
> that provide no other benefit than harming pools. Under all systems, the
> attacker doesn't lose out in any significant way.
>
> > My gut is that it pays less well than mining, meaning I think this is
> > likely a small problem in the aggregate, and certainly not something we
> > should try and fork the blockchain for until there's real pain.
>
> If we wait until there's real pain, it will be a painful fork. If we plan
> it
> 1-2 years out, people have time to upgrade on their own before it breaks.
>
> > Consider, for instance, whether it pays better than just mining bitcoins
> > and spending those on 'bonuses' for getting users to switch from a pool
> you
> > hate.
>
> With this attack, attackers can hurt the pool's "luck factor" *and* spend
> the
> bitcoins they earn to bribe users away.
>
>
> ------------------------------------------------------------------------------
> Live Security Virtual Conference
> Exclusive live event will cover all the ways today's security and
> threat landscape has changed and how IT managers can respond. Discussions
> will include endpoint security, mobile security and the latest in malware
> threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
> _______________________________________________
> Bitcoin-development mailing list
> [email-masked]
> https://lists.sourceforge.net/lists/listinfo/bitcoin-development
>

-- 
Mike Koss
CTO, CoinLab
(425) 246-7701 (m)

A Bitcoin Primer <http://coinlab.com/a-bitcoin-primer.pdf> - What you need
to know about Bitcoins.