Received: from sog-mx-3.v43.ch3.sourceforge.com ([172.29.43.193] helo=mx.sourceforge.net) by sfs-ml-3.v29.ch3.sourceforge.com with esmtp (Exim 4.76) (envelope-from ) id 1Sbehk-0004zz-Jz for bitcoin-development@lists.sourceforge.net; Mon, 04 Jun 2012 21:20:48 +0000 Received-SPF: pass (sog-mx-3.v43.ch3.sourceforge.com: domain of coinlab.com designates 209.85.216.175 as permitted sender) client-ip=209.85.216.175; envelope-from=mike@coinlab.com; helo=mail-qc0-f175.google.com; Received: from mail-qc0-f175.google.com ([209.85.216.175]) by sog-mx-3.v43.ch3.sourceforge.com with esmtps (TLSv1:RC4-SHA:128) (Exim 4.76) id 1Sbehj-0007YW-Hq for bitcoin-development@lists.sourceforge.net; Mon, 04 Jun 2012 21:20:48 +0000 Received: by qcso7 with SMTP id o7so2668859qcs.34 for ; Mon, 04 Jun 2012 14:20:42 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:x-gm-message-state; bh=dzwqEUpxg7X9hNTd4KUbcFqONgkcSD+iPtl/NfxSovk=; b=XjUn0oiHIaaE1NMtaxwC/zdPOQtDDJWCDWV4LsVsghRwvJL06gTDdDk9ULjkwo794h RS1I7yc4EgLuqdMpQBScg4hvod/VgqqKzrAih23q3O/eTrbqMPsG2eSIKSpPqnEO2mIh QWDWpAlMMnYw72pGtxHq31brhG4x7KrBQoTEYU7U/fumaC0NyBwDZwZuFeeQYy7k+IGo LwIIyN3mFVNBm9EPLVDReWqeTemaWimx84xB2SBcYMrR9NGoN95/J9zMX7FAK1bdEzyh eeITQdsUB+dmFN3E7t99n5+Kxl0f7zST7SNQqyWpSfHH5pQV6NdxD8STZ6G2HbJmVFrz 4BaA== MIME-Version: 1.0 Received: by 10.224.96.82 with SMTP id g18mr14764553qan.0.1338842988647; Mon, 04 Jun 2012 13:49:48 -0700 (PDT) Received: by 10.229.242.14 with HTTP; Mon, 4 Jun 2012 13:49:48 -0700 (PDT) In-Reply-To: <201206040204.57503.luke@dashjr.org> References: <201206030052.17128.luke@dashjr.org> <201206040204.57503.luke@dashjr.org> Date: Mon, 4 Jun 2012 13:49:48 -0700 Message-ID: From: Mike Koss To: Luke-Jr Content-Type: multipart/alternative; boundary=20cf3074b3ecbf96db04c1abac4c X-Gm-Message-State: ALoCoQmtUufDx3+1UveQ1SwmOyfcgGvPfwytQupk6hMavDR3S7bL0AU4EEaxgWNwEcKs3i3AvCB7 X-Spam-Score: -0.5 (/) X-Spam-Report: Spam Filtering performed by mx.sourceforge.net. See http://spamassassin.org/tag/ for more details. -1.5 SPF_CHECK_PASS SPF reports sender host as permitted sender for sender-domain -0.0 SPF_PASS SPF: sender matches SPF record 1.0 HTML_MESSAGE BODY: HTML included in message X-Headers-End: 1Sbehj-0007YW-Hq Cc: Bitcoin Dev Subject: Re: [Bitcoin-development] Defeating the block withholding attack X-BeenThere: bitcoin-development@lists.sourceforge.net X-Mailman-Version: 2.1.9 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 04 Jun 2012 21:20:48 -0000 --20cf3074b3ecbf96db04c1abac4c Content-Type: text/plain; charset=ISO-8859-1 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 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 - What you need to know about Bitcoins. --20cf3074b3ecbf96db04c1abac4c Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable As I understand the attack, the attacker gets compensated for the shares th= ey earn, but the pool will be denied any valid blocks found. =A0The attacke= r 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. =A0The only way to de= tect such an attack now is to look for "unlucky" miners; at the c= urrent difficulty, you can't detect this cheat until many millions of s= hares have been earned w/o a qualifying block. =A0Since an attacker can als= o create many fake identities, they can avoid detection indefinitely by aba= ndoning each account after a million earned shares.

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

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

The way I would do this is to have a secret part (not s= hared with the miners) of a block that is part of the merkle hash, which is= also used in a secondary hash. =A0Difficulty is then divide into two parts= : the first, solved by the miner (earning a "share" - e.g., 1 in = 4 Billion hashes). =A0And a second, solved by the pool (1 in Difficulty sha= res). =A0A 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 structur= e. =A0Given that attackers do not have direct monetary gain from this attac= k, 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> wrot= e:
On Monday, June 04, 2012 1:43:42 AM Peter Vessenes wrote:=
> Does it have asymmetric payoff for an attacker, that is, over time doe= s 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, t= he attacker
at least gains the "hurt the pool" benefit. Given the frequency o= f DDoS
attacks on pools, it is clear there are people who will even pay for attack= s
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<= br> > likely a small problem in the aggregate, and certainly not something w= e
> 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 bitcoi= ns
> and spending those on 'bonuses' for getting users to switch fr= om 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/50122= 263/
_______________________________________________
Bitcoin-development mailing list
Bitcoin-develo= pment@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-de= velopment



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

A Bitcoin Primer=A0- What you need to know about Bitcoins.

--20cf3074b3ecbf96db04c1abac4c--