<div dir="ltr">Treating the pool block withholding attack as a weapon has bad connotations, and I don&#39;t think anyone directly condones such an attack. Nevertheless, the mere possibility of the attack could drive miners away from those overly-large open pools. <div><br><div><div>As for <span style="font-size:12.8px">masquerading as multiple small pools -- that&#39;s a very good point, with a surprising answer: it doesn&#39;t really matter. An attacker attacks all parts of the open pool proportionally to their size, and the result is basically identical to that of attacking a single large pool. </span><div><br></div></div><div>All that being said -- it&#39;s not great to rely on the potential of attacks and on threats against the honest large pools out there (including GHash, which, afaik, did nothing more wrong than being successful). </div><div><br></div><div>Best, </div><div>Ittay </div><div><br></div></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Dec 21, 2015 at 1:39 PM, Jannes Faber via bitcoin-dev <span dir="ltr">&lt;<a href="mailto:bitcoin-dev@lists.linuxfoundation.org" target="_blank">bitcoin-dev@lists.linuxfoundation.org</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><p dir="ltr">If you&#39;re saying a block withholding attack is a nice 
weapon to have to dissuade large pools, isn&#39;t that easily defeated by 
large pools simply masquerading as multiple small pools? As, for all we 
know, ghash may have done?</p>
<p dir="ltr">If you don&#39;t know who to attack there&#39;s no point in having 
the weapon. While that weapon is still dangerous in the hands of others 
that are indiscriminate, like the solo miners example of Peter Todd.</p>
<p dir="ltr">Sorry if i misunderstood your point.</p></div><div class="gmail_extra"><br clear="all"><div><div>--<br>Jannes</div></div>
<br><div class="gmail_quote"><div><div class="h5">On 20 December 2015 at 18:00, Emin Gün Sirer <span dir="ltr">&lt;<a href="mailto:bitcoin-dev@lists.linuxfoundation.org" target="_blank">bitcoin-dev@lists.linuxfoundation.org</a>&gt;</span> wrote:<br></div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><span>On Sun, Dec 20, 2015 at 8:28 AM, Peter Todd <span dir="ltr">&lt;<a href="mailto:pete@petertodd.org" target="_blank">pete@petertodd.org</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">There are a number of techniques that can be used to detect block<br>
withholding attacks that you are not aware of. These techniques usually<br>
have the characteristic that if known they can be avoided, so obviously<br>
those who know about them are highly reluctant to reveal what exactly<br>
they are. I personally know about some of them and have been asked to<br>
keep that information secret, which I will.<br></blockquote><div><br></div></span><div>Indeed, there are lots of weak measures that one could employ against </div><div>an uninformed attacker. As I mentioned before, these are unlikely to be</div><div>effective against a savvy attacker, and this is a good thing.</div><span><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
In the context of KYC, this techniques would likely hold up in court,<br>
which means that if this stuff becomes a more serious problem it&#39;s<br>
perfectly viable for large, well-resourced, pools to prevent block<br>
withholding attacks, in part by removing anonymity of hashing power.<br>
This would not be a positive development for the ecosystem.<br></blockquote><div><br></div></span><div>KYC has a particular financial-regulation connotation in Bitcoin circles, </div><div>of which I&#39;m sure you&#39;re aware, and which you&#39;re using as a spectre. </div><div>You don&#39;t mean government-regulated-KYC a la FINCEN and Bitcoin</div><div>exchanges like Coinbase, you are just referring to a pool operator</div><div>demanding to know that its customer is not coming from its competitors&#39;</div><div>data centers.</div><div><br></div><div>And your prediction doesn&#39;t seem well-motivated or properly justified. </div><div>There are tons of conditionals in your prediction, starting with the premise<br></div><div>that every single open pool would implement some notion of identity </div><div>checking. I don&#39;t believe that will happen. Instead, we will have the bigger</div><div>pools become more suspicious of signing up new hash power, which is a</div><div>good thing. And we will have small groups of people who have some reason</div><div>for trusting each other (e.g. they know each other from IRC, conferences, </div><div>etc) band together into small pools. These are fantastic outcomes for</div><div>decentralization.</div><span><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Secondly, DRM tech can also easily be used to prevent block withholding<br>
attacks by attesting to the honest of the hashing power. This is being<br>
discussed in the industry, and again, this isn&#39;t a positive development<br>
for the ecosystem.<br></blockquote><div><br></div></span><div>DRM is a terrible application. Once again, I see that you&#39;re trying to use those</div><div>three letters as a spectre as well, knowing that most people hate DRM, but </div><div>keep in mind that DRM is just an application -- it&#39;s like pointing to Adobe Flash</div><div>to taint all browser plugins.</div><div><br></div><div>The tech behind DRM is called &quot;attestation,&quot; and it provides a technical </div><div>capability not possible by any other means. In essence, attestation can ensure that</div><div>a remote node is indeed running the code that it purports to be running. Since </div><div>most problems in computer security and distributed systems stem from not</div><div>knowing what protocol the attacker is going to follow, attestation is the only </div><div>technology we have that lets us step around this limitation. </div><div><br></div><div>It can ensure, for instance, </div><div>  - that a node purporting to be Bitcoin Core (vLatest) is indeed running an</div><div>unadulterated, latest version of Bitcoin Core </div><div>  - that a node claiming that it does not harvest IP addresses from SPV </div><div>clients indeed does not harvest IP addresses.</div><div>  - that a cloud hashing outfit that rented out X terahashes to a user did <br></div><div>indeed rent out X terahashes to that particular user, </div><div>  - that a miner operating on behalf of some pool P will not misbehave and</div><div>discard perfectly good blocks</div><div>and so forth. All of these would be great for the ecosystem. Just getting rid</div><div>of the cloudhashing scams would put an end to a lot of heartache.</div><span><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span>
&gt; Keep in mind that when an open pool gets big, like GHash did and<br>
&gt; two other pools did before them, the only thing at our disposal used<br>
&gt; to be to yell at people about centralization until they left the big<br>
&gt; pools and reformed into smaller groups. Not only was such yelling<br>
&gt; kind of desperate looking, it wasn&#39;t incredibly effective, either.<br>
&gt; We had no protocol mechanisms that put pressure on big pools to<br>
&gt; stop signing up people. Ittay&#39;s discovery changed that: pools that<br>
&gt; get to be very big by indiscriminately signing up miners are likely to<br>
&gt; be infiltrated and their profitability will drop. And Peter&#39;s post is<br>
&gt; evidence that this is, indeed, happening as predicted. This is a<br>
&gt; good outcome, it puts pressure on the big pools to not grow.<br>
<br>
</span>GHash.io was not a pure pool - they owned and operated a significant<br>
amount of physical hashing power, and it&#39;s not at all clear that their %<br>
of the network actually went down following that 51% debacle.<br></blockquote><div><br></div></span><div>Right, it&#39;s not clear at all that yelling at people has much effect. As much</div><div>fun as I had going to that meeting with GHash in London to ask them to</div><div>back down off of the 51% boundary, I am pretty sure that yelling at large</div><div>open pools will not scale. We needed better mechanisms for keeping pools</div><div>in check.</div><div><br></div><div>And Miner&#39;s Dilemma (MD) attacks are clearly quite effective. This is a</div><div>time when we should count our blessings, not work actively to render</div><div>them inoperable.</div><span><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Currently a significant % of the hashing power - possibly a majority -<br>
is in the form of large hashing installations whose owners individually,<br>
and definitely in trusting groups, have enough hashing power to solo<br>
mine. Eyal&#39;s results indicate those miners have incentives to attack<br>
pools, and additionally they have the incentive of killing off pools to<br>
make it difficult for new competition to get established, yet they<br>
themselves are not vulnerable to that attack.<br></blockquote><div><br></div></span><div>There are indeed solo miners out there who can attack the big open</div><div>pools. The loss of the biggest open pools would not be a bad outcome.</div><div>Pools &gt;25% pose a danger, and the home miner doesn&#39;t need a pool </div><div>&gt;25% for protection against variance. </div><span><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span>
&gt; Peter, you allude to a specific suggestion from Luke-Jr. Can you<br>
&gt; please describe what it is?<br>
<br>
</span>Basically you have the pool pick a secret k for each share, and commit<br>
to H(k) in the share. Additionally the share commits to a target divider<br>
D. The PoW validity rule is then changed from H(block header) &lt; T, to be<br>
H(block header) &lt; T * D &amp;&amp; H(H(block header) + k) &lt; max_int / D<br></blockquote><div><br></div></span><div>Thanks, this requires a change to the Bitcoin PoW. Good luck with that! </div><div><br></div><div>Once again, this suggestion would make the GHash-at-51% situation </div><div>possible again. Working extra hard to re-enable those painful days </div><div>sounds like a terrible idea. </div><div><br></div><div>- egs</div><div><br></div></div></div></div>
<br></div></div><span class="">_______________________________________________<br>
bitcoin-dev mailing list<br>
<a href="mailto:bitcoin-dev@lists.linuxfoundation.org" target="_blank">bitcoin-dev@lists.linuxfoundation.org</a><br>
<a href="https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev" rel="noreferrer" target="_blank">https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev</a><br>
<br></span></blockquote></div><br></div>
<br>_______________________________________________<br>
bitcoin-dev mailing list<br>
<a href="mailto:bitcoin-dev@lists.linuxfoundation.org">bitcoin-dev@lists.linuxfoundation.org</a><br>
<a href="https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev" rel="noreferrer" target="_blank">https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev</a><br>
<br></blockquote></div><br></div>