# Pool Hopping Math

It's been discussed and argued at great length whether pool hopping is ethical, but there is no debate about whether it works - I even have some first hand experience that says it increases mining profits, but I'd like to know exactly how much it can increase profits. What factors affect the profit increase (i.e. # of pools hopped, etc) and how we can mathematically derive a reasonable estimation of the increase.

Assuming a fixed hashrate, is there some general formula or at least a mathematical concept that can predict what % more a hopper will make than a non-hopper, relative to a baseline of expected income solo mining (or mining a single pool without hopping, ignoring fees)?

• You need at least one additional assumption. For example, the answer is different if the hopper can "save up" hashes during unprofitable times to use at profitable times. I'd suggest you assume the hopper has a fixed hash rate. The baseline would then be his expected revenue if he uses his fixed hash rate to solo mine. – David Schwartz Oct 18 '11 at 17:46
• Good point, I'll amend the question. – David Perry Oct 18 '11 at 17:57

The parameters that affect profitability of hopping are the number of proportional pools, the accuracy with which the hopper can choose at any time the one with the youngest round, and the hashrate of all hoppers combined in comparison with the hashrate of continuous miners.

The expected reward for a share submitted to a proportional pool (expressed as a multiple of the fair reward) is a function of the round age (ratio between number of shares already submitted and the difficulty), namely f(x) = Exp(x)E1(x) where E1 is an exponential integral (this is found by taking the average reward over the round length distribution conditioned on it lasting at least as long as it has). This function is monotonically decreasing, so the hopper will always choose the pool with the youngest round. So his long-term advantage is the average of this function at the minimum age among all pools. With m pools the minimal age at any point follows the exponential distribution with mean 1/m, so the more pools the better the payouts.

For large m the multiple is (m*ln(m))/(m-1), assuming flawless execution and that the hoppers constitute a negligible portion of the pools. (It is also possible to construct models that relax these assumptions.)

This is thoroughly discussed in Analysis of Bitcoin pooled mining reward systems, appendix "Pool-hopping in proportional pools" (the appendix assumes the relevant sections in the body have been read).

Let's get a baseline by looking at the conditions that are the most favorable to hopping. Let's assume a hopper has his choice of an infinite number of pools that have no defenses against pool hopping. And we'll assume no pool fees.

Now the ideal hopping strategy would be to get the first share after a block has been found for a pool that divides the block reward among those who have contributed shares towards that block. With an infinite number of pools, he can always find a pool that has had no shares contributed since it last found a block. (This is, of course, an unrealistic assumption. The point is to show the best a hopper can do.)

Note that if he finds a block in his hash, he gets the full reward! Since he is submitting the first share to a pool after it has found a block, if a block is solved, he is the only one who gets any shares. Hence he gets the full reward.

Now, consider this -- if the next share submitted finds a block, the hopper gets half the block reward. So for every share he finds, he not only gets the full solo reward, he gets an additional, equal chance at 50% extra. The next share submitted to that pool also has the same chance of solving the block, and he would get 33% of the reward.

You can't simply add these percentages though, because each event is not a certainty. However, under realistic conditions, the first share submitted to a proportional pool after it has found a block is worth several times the average share.

Of course, in reality, there are not an infinite number of pools and pools do have a fee. Also, a hopper has to choose a work unit to process and then won't have a share for some amount of time later -- during that time, the picture can change. And in general, a pool won't tell you exactly how many shares it has, so you have to estimate based on its estimated total hashing power and its announced blocks.

It's hard to make a model that tracks the complex real-world interplay of pool fees, fixed numbers of pools, and different pool payouts. However, hoppers I've spoken to have reported incomes 20%-35% above baseline. The best mathematical models we have predict 25%-30%. See this article on pool cheating.

• Although I no longer hop, 25% is what I have seen from my own rigs. 10GH/s over the course of 3+ months providied a rather large and stable sample size. Of course there are far less proportional pools (which any 24/7 miner should avoid like the plague) so real world efficiency increase may be less now. – DeathAndTaxes Oct 18 '11 at 18:19
• Raulo's model, which predicts 28% profit, only deals with the case of 1 proportional pool. My model deals with any number of pools, and gives a result, for example, of x2.56 (156% extra) for 10 pools. If hoppers only get in practice 25% this indicates inefficiency. – Meni Rosenfeld Oct 18 '11 at 19:23

I found this:

https://github.com/c00w/bitHopper

By simple request on github: "bitcoin", on the pretty 3rd page:

https://github.com/search?p=3&q=bitcoin&ref=cmdform&type=Repositories

There are great amount of pools: https://github.com/c00w/bitHopper/blob/master/POOLS_INFO

Project up to date, looks good. May be useful for you.