public inbox for bitcoindev@googlegroups.com
 help / color / mirror / Atom feed
From: Mike Koss <mike@coinlab•com>
To: Luke-Jr <luke@dashjr•org>
Cc: Bitcoin Dev <bitcoin-development@lists•sourceforge.net>
Subject: Re: [Bitcoin-development] Defeating the block withholding attack
Date: Mon, 4 Jun 2012 13:49:48 -0700	[thread overview]
Message-ID: <CAErK2CjpSb=Rb+evWg+_fs0brBfTDe3_HM1z-an0picb_8tzpQ@mail.gmail.com> (raw)
In-Reply-To: <201206040204.57503.luke@dashjr.org>

[-- Attachment #1: Type: text/plain, Size: 3770 bytes --]

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 <luke@dashjr•org> 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
> Bitcoin-development@lists•sourceforge.net
> 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.

[-- Attachment #2: Type: text/html, Size: 4846 bytes --]

  reply	other threads:[~2012-06-04 21:20 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-06-03  0:52 Luke-Jr
     [not found] ` <CACsn0c=+xrVvGMAkPZffpVhRcAc09RuOW7LeOwi0TOD88VbuqQ@mail.gmail.com>
2012-06-03  3:40   ` [Bitcoin-development] Fwd: " Watson Ladd
2012-06-04  1:43 ` [Bitcoin-development] " Peter Vessenes
2012-06-04  2:04   ` Luke-Jr
2012-06-04 20:49     ` Mike Koss [this message]
2012-06-04 21:05       ` Luke-Jr
2012-06-05  0:00         ` Mike Koss
2012-06-05  1:05           ` Luke-Jr

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAErK2CjpSb=Rb+evWg+_fs0brBfTDe3_HM1z-an0picb_8tzpQ@mail.gmail.com' \
    --to=mike@coinlab$(echo .)com \
    --cc=bitcoin-development@lists$(echo .)sourceforge.net \
    --cc=luke@dashjr$(echo .)org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox