Bitcoin Forum
November 14, 2024, 03:30:03 AM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Pool hopping  (Read 2767 times)
usagi (OP)
VIP
Hero Member
*
Offline Offline

Activity: 812
Merit: 1000


13


View Profile
July 13, 2011, 01:42:44 PM
Last edit: October 06, 2012, 02:45:17 PM by usagi
 #1

Pool hopping
Jack of Diamonds
Sr. Member
****
Offline Offline

Activity: 252
Merit: 251



View Profile
July 13, 2011, 01:52:37 PM
 #2

Gamblers fallacy refers to the strategy of doubling your money every time after losing a coinflip-type game like roulette or blackjack (where the house has slight edge though)
to recoup losses, which will ultimately lead to the gamblers loss always. it's not related.

Pool hoppers change pools free of cost after longpolling notifications and attempt to find a pool which finds an early block.
After some time has passed they deem a pool 'undesirable' and switch to another one on a fresh round

1f3gHNoBodYw1LLs3ndY0UanYB1tC0lnsBec4USeYoU9AREaCH34PBeGgAR67fx
sabe
Newbie
*
Offline Offline

Activity: 55
Merit: 0


View Profile
July 13, 2011, 02:05:09 PM
 #3

Wrong.

Suppose pools A & B solve on average 1 block / hour. And Miner X is responsible for exactly 1% of the pool's hashing power (0.5 BTC reward for staying the entire round duration).

Miner X starts in pool A.

Precondition 1) A has not found any block for 6 hours.
Precondition 2) B just found a block a minute ago.

He has 2 options.

Option 1) Stay in A.
Option 2) Go to B.

Chances of both A and B finding a block in the next hour is exactly the same.

Expected returns (on average) after another 1 hour of mining for:

Option 1) 0.5 BTC
Option 2) 0.5 BTC (from B) + 6/7 * 0.5 BTC (from A)
JoelKatz
Legendary
*
Offline Offline

Activity: 1596
Merit: 1012


Democracy is vulnerable to a 51% attack.


View Profile WWW
July 13, 2011, 02:19:04 PM
 #4

a: A person with 1 gigahash/sec efficiently switches among four pools every few minutes in a round-robin fashion.
b: A person with 250 mhash/sec among 4 cards mines into 4 different pools

How is A different from B?
It's not.

Quote
See, we all know that we can't determine which share wins, we all know that spreading your miners into different pools just averages your luck; So how does pool hopping do anything at all? Even if you switch pools after half an hour of not finding a block, and always switch into a new pool, there is never any gurantee that the pool you switch into will find a block before the pool you just left. In fact even under optimal conditions there is never any difference between diverting a small amount of mHash/s into any particular pool versus pool hopping. 1 gigahash per sec into one pool, hopping among 5 pools, and 200mHash/sec into five pools will all statistically result in the exact same number of bitcoins (as long as all the servers have the same rules).
You miss the logic of pool hopping. The point is not that you hop from pool to pool randomly. The idea is that when a pool is expected to have a below-average payout, you leave it, and when it's expected to have an above average payout, you submit shares to it. This gives you a higher than average pay per share.

For example, consider two pools. Pool A is pay-per-share. The pool owner keep nothing and always pays the precisely fair amount per share. The miner can always submit shares to this pool and get a fair payout. Pool B is proportional. Every time they find a block, they divide the 50 bitcoins by the number of shares submitted since the last block they found. Now, at any time, the expected amount of shares submitted until this pool finds a block is the same, call that 'n'. And there is some amount of shares submitted since they last found a block call that 'm'. So for this pool, the expected payout per share is 50/(m+n) (all shares already submitted get a share, all shares submitted until the block is found get a share).

So the expected payout for submitted a block to pool B will be higher than average when 'm' is less than 'n' and drop to below average when 'm' is greater than 'n'. Thus a greedy miner can submit shares to pool B until he believes m>n (by waiting until the amount of time they usually need to find a block), then he can submit shares to pool A. He will get an above-fair return on average for his shares.

Pool hopping is possible for any pool where a person can tell, before deciding to work on a block, whether the payout for that share can be expected to be above average. To prevent it, the expected payout for each share should be precisely the same.

I am an employee of Ripple. Follow me on Twitter @JoelKatz
1Joe1Katzci1rFcsr9HH7SLuHVnDy2aihZ BM-NBM3FRExVJSJJamV9ccgyWvQfratUHgN
twmz
Hero Member
*****
Offline Offline

Activity: 737
Merit: 500



View Profile
July 13, 2011, 03:00:53 PM
 #5

Look at these two graphs:

Pool Hopper on a PPS pool (fixed price per share submitted) ends up with 2.5 BTC after 14 days: http://www.calindora.com/tmp/bitcoin/index.php?graph=pps_hopper_100

Pool Hopper on a Prop pool ends up with 4.2 BTC after 14 days: http://www.calindora.com/tmp/bitcoin/index.php?graph=prop_hopper_100 

You can see that there is significant gain from pool hopping on proportional pools.  By switching to the prop pool that has most recently started a new round, you can net much better than the expected reward per share (which should be (1/difficulty * 50 BTC) with no fees).

You might also want to compare what the 24/7 miner gets on that prop pool that has a lot of hoppers:  7.86 BTC instead of the 9 BTC they would have had in the absence of hoppers.




Was I helpful?  1TwmzX1wBxNF2qtAJRhdKmi2WyLZ5VHRs
WoT, GPG

Bitrated user: ewal.
Lars
Newbie
*
Offline Offline

Activity: 27
Merit: 0


View Profile
July 17, 2011, 10:13:32 PM
 #6

I always assumed it was something like this:

Pool A pays X per share. (i.e. a PPS system like deepbit)

Pool B pays Y=50/Z per share, where Z i the current number of shares  submitted for that block.

If you are mining for pool B, and get to the point where the total ammount of shares submitted for a block is so that Z>X, the miner would make more by switching his miners to pool A until pool B solves its block. Each additional share submitted to pool B until it starts a new block will be worth less than each share submitted to pool A.

Or am I completely mistaken?
gentakin
Member
**
Offline Offline

Activity: 98
Merit: 10


View Profile
July 17, 2011, 10:19:27 PM
 #7

In short, the reason why pool hopping is a variation of the gambler's fallacy is because pool hoppers believe that since they have made money in the past pool hopping, that they will continue to do so;

Wrong. Pool hoppers believe that they will continue to make more money because there is mathematical proof for it.
Unless, of course, pools finally put some protections against it in place.

1HNjbHnpu7S3UUNMF6J9yWTD597LgtUCxb
Grinder
Legendary
*
Offline Offline

Activity: 1284
Merit: 1001


View Profile
July 17, 2011, 10:23:56 PM
Last edit: July 17, 2011, 10:36:44 PM by Grinder
 #8

It's of course possible that I am wrong. In that case could you please explain to me exactly how someone knows ahead of time that a pool will find a block before another pool such that the time spent in the new pool is going to be more valuable, on average, than time spent in another pool?
More than 50% of the blocks are found in less than the average time it takes to find a block, so when a block has just started it is more than 50% likely that it will take less than average time to solve it. By jumping you can get more than your fair share of blocks that are found quickly, and waste less than average time on those that are not.
JoelKatz
Legendary
*
Offline Offline

Activity: 1596
Merit: 1012


Democracy is vulnerable to a 51% attack.


View Profile WWW
July 17, 2011, 10:31:31 PM
 #9

It's of course possible that I am wrong. In that case could you please explain to me exactly how someone knows ahead of time that a pool will find a block before another pool such that the time spent in the new pool is going to be more valuable, on average, than time spent in another pool? If the pool you just leave finds two short blocks in a row (not so uncommon) before you manage to switch back, how long would it take you to "make back" what you lost?
It has nothing to do with how long it will take the pool to find a block (which never changes, assuming the pool's hash rate and the difficulty are constant). It has everything to do with how much the miner can expect to get paid for each share he submits. With a pool that pays proportionately, it is possible for a miner to know for sure that the payout per share for the next block found will be below average because the number of shares accumulated towards finding that block is already above average. In that case, it will be to the miner's advantage to leave the pool until it finds a new block.

Try it this way: Say a proportional pool on average finds a block every hour. When the average block is found by the pool, it has to pay out over the shares submitted for that entire hour. Now say the pool has just found a block. There's a chance that by sheer luck the pool will find a share within 30 minutes and each share will get a payout of twice average. 50 minutes later, if the pool has not found a block, there is zero change of a twice average payout. If there are times when the expected payout is above average, there must also be times when the expected payout per share is below average. That is when a greedy miner may desert a proportional pool.

I am an employee of Ripple. Follow me on Twitter @JoelKatz
1Joe1Katzci1rFcsr9HH7SLuHVnDy2aihZ BM-NBM3FRExVJSJJamV9ccgyWvQfratUHgN
JoelKatz
Legendary
*
Offline Offline

Activity: 1596
Merit: 1012


Democracy is vulnerable to a 51% attack.


View Profile WWW
July 17, 2011, 10:48:34 PM
Last edit: July 17, 2011, 11:54:57 PM by JoelKatz
 #10

Just saying "wrong" and stating there is mathematical proof shows you didn't read what I said. There is some statistical proof, yes, but not mathematical proof, which is something far beyond what anyone has done in this thread.
Did you read my two replies to you? Do you understand what I'm saying?

When a new block is found by a pool, there is a window in which an above average payout per share is possible by that pool. Once the average time for that pool to find a block has passed, an above average payout per share is not longer possible.

I am an employee of Ripple. Follow me on Twitter @JoelKatz
1Joe1Katzci1rFcsr9HH7SLuHVnDy2aihZ BM-NBM3FRExVJSJJamV9ccgyWvQfratUHgN
gentakin
Member
**
Offline Offline

Activity: 98
Merit: 10


View Profile
July 17, 2011, 11:16:31 PM
 #11

There is some statistical proof, yes, but not mathematical proof, which is something far beyond what anyone has done in this thread.

Have you seen this? http://bitcoin.atspace.com/poolcheating.pdf (I have to admit, I don't understand this 100%.)


I see it like this:

Suppose there are 3 pools with proportional payout, all of them with the same hashrate.
The round stats look like this: Pool1 - 1,000 shares in current round. Pool 2 - 1,500,000 shares in current round. Pool 3 - 10,000,000 shares in current round.

You fired up your computer just now. Question: Which pool do you join?

Let's assume the next block will be found in 10 seconds, but of course we don't know which pool will find it. Each pool has a chance of 1/3 to be the next block finder. Also, you will mine 10 shares in 10 seconds, and the pools will find 1000 shares each.
You have 3 possibilities:
 * Join pool 1. Expected payout in 10 seconds: 50*(10/2,000) * (1/3) = 0.0833BTC.
 * Join pool 2. Expected payout in 10 secs: 50*(10/1,501,000) * (1/3) = 0.000111037BTC.
 * Join pool 3. Expected payout in 10 secs: 50*(10/10,001,000) * (1/3) = 0.000016665

This is a pretty limited thought, as it only takes into account the next 10 seconds.. But it shows that any share sent to pool 3 at this time will be pretty much worthless. While at the same time, any share sent to pool 1 has a good chance of being valuable (it's not guaranteed, but still). My maths might be flawed as hell. Grin

1HNjbHnpu7S3UUNMF6J9yWTD597LgtUCxb
error
Hero Member
*****
Offline Offline

Activity: 588
Merit: 500



View Profile
July 18, 2011, 01:04:13 AM
 #12

Gamblers fallacy refers to the strategy of doubling your money every time after losing a coinflip-type game like roulette or blackjack (where the house has slight edge though)
to recoup losses, which will ultimately lead to the gamblers loss always. it's not related.

Pool hoppers change pools free of cost after longpolling notifications and attempt to find a pool which finds an early block.
After some time has passed they deem a pool 'undesirable' and switch to another one on a fresh round

Gambler's fallacy refers to the notion that past events can be used to predict future trends. "Coin flips" are often used as an example, but a "coin flip like" game is not required, just any event of chance. The distinction is important not just from the standpoint of being correct but to understand what I am saying in this thread. From wikipedia:

Code:
The Gambler's fallacy, also known as the Monte Carlo fallacy (because its most famous example happened in a Monte Carlo Casino in 1913)[1] or the fallacy of the maturity of chances, is the belief that if deviations from expected behaviour are observed in repeated independent trials of some random process, future deviations in the opposite direction are then more likely.

For example, if a fair coin is tossed repeatedly and tails comes up a larger number of times than is expected, a gambler may incorrectly believe that this means that heads is more likely in future tosses.[2] Or if a slot machine does not "jackpot" over a long period, a gambler may incorrectly believe that it's due for a win. Such an expectation could be mistakenly referred to as being due, and it probably arises from one's experience with nonrandom events (e.g., when a scheduled train is late, we expect that it has a greater chance of arriving the later it gets). This is an informal fallacy. It is also known colloquially as the law of averages.

In short, the reason why pool hopping is a variation of the gambler's fallacy is because pool hoppers believe that since they have made money in the past pool hopping, that they will continue to do so; versus someone who has not made money believing they will suddenly do so. Different variation, same tune.

You have not shown any relevance of gambler's fallacy to pool hopping.

Pool shares are not all paid equally. If they were, then the gambler's fallacy would apply, and pool hopping (and quite possibly pooled mining) would be pointless.

And I think you'll find enough math to keep you busy in Raulo's paper. Smiley

3KzNGwzRZ6SimWuFAgh4TnXzHpruHMZmV8
Sukrim
Legendary
*
Offline Offline

Activity: 2618
Merit: 1007


View Profile
July 18, 2011, 01:13:33 AM
 #13

Pool hopping is more similar to counting cards than to try "cheating" coin tosses. Maybe also similar to the lotto tactic of NOT playing numbers between 1 and 31 - because IF you win, you're more likely to share it with someone else, as many people do play birthdates. This means it is not guaranteed that you will win more BTC via pool hopping in a few rounds - however if one of your pools does get a block eventually, you have higher chances that you get paid more than usually.

If you just round-robin hop, yes, then pool hopping won't help anything.

If you however only hop into proportional pools that have few shares (or otherwise in PPS pools like Eligius) then you always get a "hot" deck and increase your chances.

https://www.coinlend.org <-- automated lending at various exchanges.
https://www.bitfinex.com <-- Trade BTC for other currencies and vice versa.
btcboston
Member
**
Offline Offline

Activity: 101
Merit: 10


View Profile
July 18, 2011, 11:35:28 AM
 #14

It's very simple mathematics here.

Let's say a pool has so far 99 shares submitted in the current round.  The very next share submitted will be worth an expected value of (1/100) * 50 toward the current reward, or 0.5 BTC. 

Now let's say a pool has 999,999 shares submitted so far in the current round.  The next share submitted is only worth (1/1,000,000) * 50, or 0.00005 BTC.  In other words, the expected value of each individual share submitted decreases as the round progresses. 

Jack of Diamonds
Sr. Member
****
Offline Offline

Activity: 252
Merit: 251



View Profile
July 18, 2011, 12:14:53 PM
 #15

Now let's say a pool has 999,999 shares submitted so far in the current round.  The next share submitted is only worth (1/1,000,000) * 50, or 0.00005 BTC.  In other words, the expected value of each individual share submitted decreases as the round progresses.  

Which is why PPS based payment schemes & it's variants (like on mineco.in and eligius & deepbit, 3 different PPS methods)
are superior and will eventually prevail over the long term.

When all shares are of equal value, you get paid for the work you do; Not for being opportunistic. Doesn't matter if the CDF is 0.1% or 99.9%, if the round has taken 2 minutes or 20 hours.

1f3gHNoBodYw1LLs3ndY0UanYB1tC0lnsBec4USeYoU9AREaCH34PBeGgAR67fx
Meni Rosenfeld
Donator
Legendary
*
Offline Offline

Activity: 2058
Merit: 1054



View Profile WWW
July 18, 2011, 12:29:17 PM
 #16

There is a very simple way to see why pool hopping works.

If you mine normally, you will get for every share on average B/d (block reward divided by difficulty).
Now let's say a proportional pool already has 2*d shares in the current round, and you consider mining for it now. No matter what happens, you will get less than B/(2d) for every share. Thus you'll want to mine for another pool instead.
And, since mining both early and late gives you on average B/d, and mining late gives you less than B/d, it follows that mining early give you more than B/d per share on average. Thus pool-hopping is profitable.

It's very simple mathematics here.

Let's say a pool has so far 99 shares submitted in the current round.  The very next share submitted will be worth an expected value of (1/100) * 50 toward the current reward, or 0.5 BTC.  

Now let's say a pool has 999,999 shares submitted so far in the current round.  The next share submitted is only worth (1/1,000,000) * 50, or 0.00005 BTC.  In other words, the expected value of each individual share submitted decreases as the round progresses.  
Not quite. The very next share will be worth 0.5 BTC if the round ends with this share. But on average the round ends much later than that share. Thus the expected payout will be closer to log(difficulty/100) times the normal reward.


Now let's say a pool has 999,999 shares submitted so far in the current round.  The next share submitted is only worth (1/1,000,000) * 50, or 0.00005 BTC.  In other words, the expected value of each individual share submitted decreases as the round progresses.  

Which is why PPS based payment schemes & it's variants (like on mineco.in and eligius & deepbit, 3 different PPS methods)
are superior and will eventually prevail over the long term.

When all shares are of equal value, you get paid for the work you do; Not for being opportunistic. Doesn't matter if the CDF is 0.1% or 99.9%, if the round has taken 2 minutes or 20 hours.
You don't need PPS for that, you just need a non-defective scoring method, like the geometric method or PPLNS.
Edit: eligius uses a defective method called SMPPS. It looks like minecoi.in uses PPLNS.

1EofoZNBhWQ3kxfKnvWkhtMns4AivZArhr   |   Who am I?   |   bitcoin-otc WoT
Bitcoil - Exchange bitcoins for ILS (thread)   |   Israel Bitcoin community homepage (thread)
Analysis of Bitcoin Pooled Mining Reward Systems (thread, summary)  |   PureMining - Infinite-term, deterministic mining bond
Sukrim
Legendary
*
Offline Offline

Activity: 2618
Merit: 1007


View Profile
July 18, 2011, 12:48:27 PM
 #17

SMPPS might not always pay out 100% PPS values.
"true" PPS can go bankrupt and depends on a VERY deep pocket.
Other PPS systems (there was a suggestion to modify SMPPS to value more recent shares first rather than shares from the past) also might not always pay 100% PPS values.

In the long(er) run, you would still be better off with something like SMPPS than proportional, if the pool isn't massively cheated by withholding winning shares.

My personal favourite is either RSMPPS (where you pay out on each round as many recent shares as you can afford with true PPS value) where only few shares might get lost/unpaid BUT it can take a long time until a share in the beginning of a bad luck phase is paid or PPLNS as the most simple proportional scoring system that is not hoppable.


PPLNS with a huge N or N = oo could be "Pyramid mining" where every single share that you submit will give you payouts for the lifetime of the pool. Wink

https://www.coinlend.org <-- automated lending at various exchanges.
https://www.bitfinex.com <-- Trade BTC for other currencies and vice versa.
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!