Take the 2-minute tour ×
Bitcoin Stack Exchange is a question and answer site for Bitcoin crypto-currency enthusiasts. It's 100% free, no registration required.

What is pool hopping and how do pool hoppers affect other miners?

Are there ways to prevent it?

share|improve this question
add comment

3 Answers

up vote 10 down vote accepted

Some mining pools have a reward method for which some times are better to mine than others; normally, miners contribute to the pool equally through good and bad times, and their reward averages out to what is statistically expected.

Pool-hopping is the practice of mining in a pool only during the good times, and leaving during the bad times; by so doing, a pool-hopper can get more out of the pool than the value he contributes to it, increasing his rewards at the expense of other miners. Pool-hopping gets its name from the act of constantly hopping into and out of the pool (to either other pools or solo mining).

The most well-known form of pool-hopping is with pools using the proportional method, which is among the oldest, simplest, most widely used and most prone to hopping. By all accounts hopping in this context was first discussed in a paper from January 2011 by Nakamoto Ryo; a more accurate analysis was given shortly after in Optimal pool abuse strategy by Raulo; these results were extended in Analysis of Bitcoin Pooled Mining Reward Systems by myself.

In the proportional method, a block's reward is distributed between miners in proportion to the number of shares each of them submitted since the previous block; the reward per share is the block reward divided by the number of shares in the round. Because of this, the reward of a share submitted at any given time is affected by the number of shares already submitted since the last block; a share submitted early in the round will have a higher reward on average than a share submitted later.

It can be shown that until the number of shares in the round is 43.5% of the difficulty, a submitted share will have higher than normal reward on average; the optimal way to exploit a single proportional pool is to mine in it until this point is reached, hop to a different pool, and return when a block is found. The gain that can be achieved by following this strategy is up to 28.1%, depending on the ratio between the hashrates of hoppers and continuous miners in this pool (the more hoppers, the less they will gain). The gain can be higher if more than one proportional pool is taken advantage of (for example, 51.6% can be achieved with 2 pools).

The extra profits of hoppers come at the expense of the continuous miners. The exact loss depends on the ratio between hoppers and continuous miners; when they are equal the loss is about 17.1%, and the theoretical limit when there are only hoppers is 43.5%.

Slush's method, which scores shares based on the time they are submitted, was designed to combat pool-hopping, but is only an incomplete solution. SMPPS which strives to converge to the full value of each share in the long run can only be hopped to minimize the time until being paid in full, not to increase the expected reward.

Modern methods make sure that the reward per share depends only on the future of the pool, not its past. This way, without being able to divine future random events, any time is as good as any other to mine, so there can never be any gain or loss from hopping (with the exception of block-withholding attacks). The most popular such methods are PPS, PPLNS and DGM.

Advanced forms of pool-hopping, possible in some naive reward method implementations, include difficulty retarget hopping, tx fee hopping and hashrate fluctuation hopping.

share|improve this answer
add comment

Pool hopping is a mechanism by which certain miners may exploit the payment mechanisms of pools to dramatically increase personal profits.

The original mechanism by which funds were distributed to miners is the simplest and most obvious: Each miner submits "shares" of work and when the pool finds a block, the divide the block reward based on the proportion of the shares - if you did 50% of the work you get 50% of the reward, if you did 3% of the work you get 3% of the reward. Simple.

Unfortunately this creates an imbalance wherein blocks solved in less than average time are worth more per share than blocks that took average times or longer to solve. This makes proportional pay systems inherently exploitable.

To simplify the concept, imagine you're at the world's strangest casino. The only game in the house is rock-paper-scissors and you're playing against the other patrons. If you win the first game after you sit down at a table, they pay you 10 times your bet. The second game pays 9 times, the third pays 8 and so on until eventually you're not even earning your bet back. It seems obvious that the optimal strategy is to hop from table to table taking advantage of the 10x payout rule as many times as possible without every hitting diminishing returns.

Pool hopping is much the same. Mathematically it works out that diminishing returns begin when all workers combined have submitted a number of shares approximately equal to 43% of the current difficulty. After this point, your shares aren't worth any more than average and it becomes more profitable to hop to another pool with fewer shares. This strategy produces, on average, about 28% more income for a pool-hopping miner.

The effect of pool hopping on the other users of the pool comes from a shift in one factor of mining without a corresponding shift in the other: time vs. hashrate. Without hoppers, the value of shares in a proportional pool differs with time - shares submitted early in a round are worth a great deal more than those submitted later, but as long as hoppers are not present, the value of shares average out to a fair value. While hoppers do not change the average number of shares per block or the number of shares an honest miner submits, they do decrease the duration of the higher-paying portions of a round. With the most profitable portion of the round taking significantly less time to complete than the remainder, a miner submitting shares at a constant rate will have far more shares on average in the less profitable parts of a round than in the most profitable, thereby reducing their overall average share value. The more hoppers are present, the shorter the profitable span becomes and therefore the more dramatic the effect.

Preventing pool-hopping is simple: When creating a pool, simply choose an algorithm for funds distribution that has been proven immune or even hostile to hopping - i.e. anything but proportional. When choosing a pool to mine in, one should similarly choose a pool which has chosen a fair payment schema.

share|improve this answer
2  
If pool hopping works, that means hoppers get more than their fair share. That means someone must get less than their fair share. Take one guess who that is. –  David Schwartz Oct 16 '12 at 19:21
    
I'm sorry but I have to downvote for the wrong and very misleading remark that hopped pools pay fairly over the long term. Will undo when that's fixed. –  Meni Rosenfeld Oct 16 '12 at 19:43
    
I disagree with these statements but will remove that paragraph anyway, in the interest of not being flamed for agreeing with math and common sense instead of popular hatred/opinion. I think you're working with an altered definition of "fair" that is only correct for PPS or other newer methods. Prop says you get a % of pool income based on shares and you do whether the pool is hopped or not. You're being paid exactly what you're supposed to be paid. –  David Perry Oct 16 '12 at 20:25
    
By way of explanation: Imagine you're a dedicated miner on such a pool and hoppers show up and your pool solves a block in only 10% of the expected time - your shares are worth proportionally more than average too. At the times when the miners leave your shares are worth proportionally less than average. Hoppers aren't stealing from regular users, their share values will even out, they are simply mining at whatever place is most profitable for them right now - the failure of prop isn't that it lets hoppers "steal" it's that hopping creates volatility that pools are supposed to prevent. –  David Perry Oct 16 '12 at 20:29
3  
I've been chatting with Meni outside of comments and I think I see where my brain was failing me yesterday - let's just say it all boils down to "don't do (then argue about) research while you're sick and pumped full of mind-altering medications." I'll amend my answer to include the corrected information and apologize for the ridiculousness of this comment thread. I'll be the first to admit I'm wrong, once proven, but half the point of admitting mistakes is to learn from them and I can get quite stubborn when I'm failing to understand how or why I was incorrect :P –  David Perry Oct 17 '12 at 17:47
show 13 more comments

My first answer only refers to the " how do pool hoppers affect other miners?" part of the question. The loss to full time miners at a standard proportional reward pool can be calculated as:

Maximum loss of share value for fulltime miners =
(exp(x) * (x * y * E1(x) + y - 1) - y) / (exp(x) * (y - 1) - y)
where x = shares already submitted to pool in round as a fraction of difficulty, y = (pool hopper hashrate - fulltime miner hashrate) / (average hashrate up to "hop point"), and E1(x) = Exponential integral (n=1, x)

More details: http://organofcorti.blogspot.com.au/2012/08/61-bitlcnet-pool-hopping-and.html

As for preventing it, if you're a pool operator use a fair reward method: Pay Per Share, Double Geometric Method or PPLNS.

If you're a miner, mine at a pool using one of the above reward methods. Either that or mine solo.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.