Bitcoin Forum
April 23, 2017, 08:05:26 PM
 News: Latest stable version of Bitcoin Core: 0.14.1  [Torrent]. (New!)
 Home Help Search Donate Login Register
 Pages: 1 2 [3] 4  All
 Author Topic: Optimal pool abuse strategy. Proofs and countermeasures  (Read 29417 times)
Sukrim
Legendary

Offline

Activity: 1974

 May 30, 2011, 09:05:37 AM

PPS has the downside that you pay for stale shares of others - even if the pool operator keeps as little as possible, this still means your income will be lower than in a pool with a different model. A proportional pool with 0 hoppers might be ideal "fairness wise", a score based pool raises variance and shifts some risks but this canbe tuned.

PPS however will very likely be worse, since it is not ver predictable for smaller pools how much they would really earn during 2016 Blocks to calculate correct values. This means they either have to have higher fees on PPS (deepbit for example has (or had, as they are down atm)) 10%(!) extra fee on PPS payouts.

https://bitfinex.com <-- leveraged trading of BTCUSD, LTCUSD and LTCBTC (long and short) - 10% discount on fees for the first 30 days with this refcode: x5K9YtL3Zb
Mail me at Bitmessage: BM-BbiHiVv5qh858ULsyRDtpRrG9WjXN3xf
1492977926
Hero Member

Offline

Posts: 1492977926

Ignore
 1492977926

1492977926
 Report to moderator
1492977926
Hero Member

Offline

Posts: 1492977926

Ignore
 1492977926

1492977926
 Report to moderator
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise here.
BombaUcigasa
Legendary

Offline

Activity: 1442

 June 09, 2011, 08:11:57 PM

HELP, I don't see the proof.

Given 2 blocks, and an ability to generate 100 shares per block, and two pools, a pool hopper will try to jump the pool after each share, right? He will effectively generate 200 shares, in the two pools, each block he will generate 100 shares. Just like he would use a single pool. He will spend the whole time between two shares, in one of the pools, at the reward of a share.

Number of times waiting for shares to come up and compute hashes = Number of shares received in pools

Why don't I see the problem?
Meni Rosenfeld
Donator
Legendary

Offline

Activity: 1946

 June 10, 2011, 04:35:53 AM

Given 2 blocks, and an ability to generate 100 shares per block, and two pools, a pool hopper will try to jump the pool after each share, right?
No, he will always mine for the pool with the least shares in the current round. If all proportional pools are >43.5% he will mine for a score-based pool.

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
BombaUcigasa
Legendary

Offline

Activity: 1442

 June 10, 2011, 01:20:38 PM

No, he will always mine for the pool with the least shares in the current round.
Ok. That's like having two miners and increasing load on the one with less submissions so they equal up... I don't see the bad thing in this. If he pushes to a single pool all his shares, or pushes 50% to a pool and another 50% to another pool, his reward should be the same in all cases.

If all proportional pools are >43.5% he will mine for a score-based pool.
Proportional pools are > 43.5% what? I don't understand what is the percentage of.
Meni Rosenfeld
Donator
Legendary

Offline

Activity: 1946

 June 10, 2011, 01:55:08 PM

No, he will always mine for the pool with the least shares in the current round.
Ok. That's like having two miners and increasing load on the one with less submissions so they equal up... I don't see the bad thing in this. If he pushes to a single pool all his shares, or pushes 50% to a pool and another 50% to another pool, his reward should be the same in all cases.
The less shares in the current round in a proportional pool, the greater the expected reward per share submitted. Consider also the examples I gave in this comment. The bad thing is that hoppers get too much reward for their contribution to the pool (and to the Bitcoin network at large), while honest miners get too little.

If all proportional pools are >43.5% he will mine for a score-based pool.
Proportional pools are > 43.5% what? I don't understand what is the percentage of.
This means that for every proportional pool, the number of shares in its current round is more than 43.5% of the current difficulty.

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

Activity: 1974

 June 10, 2011, 01:55:55 PM

43.5% of expected time to complete a block with the current hash rate.

https://bitfinex.com <-- leveraged trading of BTCUSD, LTCUSD and LTCBTC (long and short) - 10% discount on fees for the first 30 days with this refcode: x5K9YtL3Zb
Mail me at Bitmessage: BM-BbiHiVv5qh858ULsyRDtpRrG9WjXN3xf
Meni Rosenfeld
Donator
Legendary

Offline

Activity: 1946

 June 10, 2011, 02:16:11 PM

43.5% of expected time to complete a block with the current hash rate.
Actually that's just an approximation, which doesn't take into account changes in hashrate etc.

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
BombaUcigasa
Legendary

Offline

Activity: 1442

 June 10, 2011, 03:11:42 PM

I just red the paper AGAIN!

I still don't see how in practice you could abuse a pool. If you are contributing 43% of an average round period, you get 43% of that round's shares and a 43% chance of finding the block.

How do you get a higher reward? If the block required 200 shares and there are 2 people in the pool then you get:
- cheater does 43 shares then leaves, the non-cheater has to do 157 shares, the block is found, each gets proportional payment, cheater has a chance of 21.5% of finding the block, the non-cheater has a chance of 78.5%. The cheater gets 21.5% of the reward, the non-cheater gets 78.5%.
- non-cheater A can do 43 difficulty 1 hashes in 10 minutes, non-cheater B can do 157. The block is found, each gets a proportional payment, just like above, the total contribution is shares/time, in both scenarios, and the payoff is the same
grue
Global Moderator
Legendary

Offline

Activity: 1974

 June 10, 2011, 11:39:00 PM

I just red the paper AGAIN!
lol

How do you get a higher reward? If the block required 200 shares and there are 2 people in the pool then you get:
- cheater does 43 shares then leaves, the non-cheater has to do 157 shares, the block is found, each gets proportional payment, cheater has a chance of 21.5% of finding the block, the non-cheater has a chance of 78.5%. The cheater gets 21.5% of the reward, the non-cheater gets 78.5%.
- non-cheater A can do 43 difficulty 1 hashes in 10 minutes, non-cheater B can do 157. The block is found, each gets a proportional payment, just like above, the total contribution is shares/time, in both scenarios, and the payoff is the same
I REPEAT, READ THE PAPER AGAIN! especially the part with the funny equations. don't just go "wtf", and skip it.

It is pitch black. You are likely to be eaten by a grue.

BombaUcigasa
Legendary

Offline

Activity: 1442

 June 11, 2011, 12:37:55 AM

I REPEAT, READ THE PAPER AGAIN! especially the part with the funny equations. don't just go "wtf", and skip it.
Yeah, what about them. They translate the long text into a mathematical formula. Both are theoretical models that seem to lack a certain factor that happens in practice...

This is why I ask, how exactly can one cheat in practice.
grue
Global Moderator
Legendary

Offline

Activity: 1974

 June 11, 2011, 01:09:11 AM

I REPEAT, READ THE PAPER AGAIN! especially the part with the funny equations. don't just go "wtf", and skip it.
Yeah, what about them. They translate the long text into a mathematical formula. Both are theoretical models that seem to lack a certain factor that happens in practice...

This is why I ask, how exactly can one cheat in practice.
https://forum.bitcoin.org/index.php?topic=9928.0
moral of the story? lrn2 search

It is pitch black. You are likely to be eaten by a grue.

jhansen858
Sr. Member

Offline

Activity: 364

 June 11, 2011, 01:53:45 AM

I have not read in detail the previous 3 pages but I had a simple solution to the problem.

1) charge a refundable fee to join the pool
2) refund the fee such that when the potential cheater has been there long enough to overcome the cheater advantage, the fee is refunded.

Is that over simplifying?

Hi forum: 1DDpiEt36VTJsiJunyBc3XtG6CcSAnsQ4p
BombaUcigasa
Legendary

Offline

Activity: 1442

 June 11, 2011, 10:00:26 AM

https://forum.bitcoin.org/index.php?topic=9928.0
moral of the story? lrn2 search
Moral of the story, give the man an answer, I'm trying for 3 days to understand this, why can't anyone explain practically how it works. On that topic there's a guy that claims 30% increased performance by pool hopping. And then again he only claims 3.5% effective gains in reward in a later post. He even said he could abuse slush's pool (on which btw, I rarely get shares in the 2 minutes rounds, and if I disconnect it's usually during those 2 hours rounds, definitely pegged against me but not this guy for some reason). I suppose his advantage is he knows exactly which pool finds a block every time a block is found, thus he can get a piece of each round, even if it's crumbs.

What I still don't understand, how is it he can get a higher reward during a round than what effort he has put into the round? If nobody can explain, nobody really understands, right? Or I'm very very stupid that I can't understand the theory without a practical example, right?
Meni Rosenfeld
Donator
Legendary

Offline

Activity: 1946

 June 12, 2011, 05:41:26 AM

Is that over simplifying?
Yes. Cheating depends on the time spent on each round, not on the pool at large. By the way, there are solutions, but most people don't understand the problem well enough to want to use them.

https://forum.bitcoin.org/index.php?topic=9928.0
moral of the story? lrn2 search
Moral of the story, give the man an answer, I'm trying for 3 days to understand this, why can't anyone explain practically how it works. On that topic there's a guy that claims 30% increased performance by pool hopping. And then again he only claims 3.5% effective gains in reward in a later post. He even said he could abuse slush's pool (on which btw, I rarely get shares in the 2 minutes rounds, and if I disconnect it's usually during those 2 hours rounds, definitely pegged against me but not this guy for some reason). I suppose his advantage is he knows exactly which pool finds a block every time a block is found, thus he can get a piece of each round, even if it's crumbs.

What I still don't understand, how is it he can get a higher reward during a round than what effort he has put into the round? If nobody can explain, nobody really understands, right? Or I'm very very stupid that I can't understand the theory without a practical example, right?
But we have already explained practically how to do it. Mine for the proportional pool until the number of shares in the current round is 43.5% of the difficulty, after that mine solo (or score-based) until the next round. You can use the time since round start as a proxy. And if you don't know when the round started you can try to estimate it.

It you submit 100 shares, the payout you get depends on the length of the round. If it's 1000 you get 10% of the block, if 10000 you get 1%. The length of the round is a random variable not known in advance. However, its conditional expectation depends on how long it's been already. If the round is fresh the expected length is equal to the difficulty. If the round has already been going on for twice the difficulty, the expected length of the round is thrice the difficulty. Thus your expected payout per share submitted will be less if the current round is old. And as Raulo explains in his paper, 43.5% of the difficulty is the point at which the expected payout per share becomes less than solo/score-based.

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
BombaUcigasa
Legendary

Offline

Activity: 1442

 June 12, 2011, 07:56:06 AM

It you submit 100 shares, the payout you get depends on the length of the round. If it's 1000 you get 10% of the block, if 10000 you get 1%. The length of the round is a random variable not known in advance. However, its conditional expectation depends on how long it's been already. If the round is fresh the expected length is equal to the difficulty. If the round has already been going on for twice the difficulty, the expected length of the round is thrice the difficulty. Thus your expected payout per share submitted will be less if the current round is old. And as Raulo explains in his paper, 43.5% of the difficulty is the point at which the expected payout per share becomes less than solo/score-based.
Ok, so let's suppose you know when the round started on pool A (longpoll on pool, blockexplorer shows your pool got a block, pool stats, etc). I assume that that pool A is now going to solve a block and I get in fast. Supposedly this rounds ends in one of the following scenarios:
- round is closed on the first block found in the chain, pool gets consecutive blocks
- round is closed after the second block found in the chain, some other pool gets the first block
- round is closed after the n-th block...

If I mine for 100% of the time, then I get:
- 50 * my_shares / pool_shares -- every 7 minutes
- 50 * my_shares / pool_shares -- every 14 minutes
- 50 * my_shares / pool_shares -- every n*7 minutes

If I mine for 43% of the time to get a new block only at the beginning of a round, I get:
- 0.43 * 50 * my_shares / pool_shares -- every 7 minutes
- (0.43 / 2) * 50 * my_shares / pool_shares -- every 14 minutes
- (0.43 / n) * 50 * my_shares / pool_shares -- every n*7 minutes

If I mine for 43% of the time to get a new round (when every new block pops up), I get:
- 0.43 * 50 * my_shares / pool_shares -- every 7 minutes
- 0.43 * 50 * my_shares / pool_shares -- every 14 minutes
- 0.43 * 50 * my_shares / pool_shares -- every n*7 minutes

Other pools have similar situations, no to mention solo mining. The only place left to go is PPS, which is starting to fade out and offers a ~7% penalty or more.

The following is a sample of block intervals at this time:
0:09:51
0:01:48
0:01:33
0:05:58
0:03:19
0:05:56
0:00:31
0:12:36
0:04:12
0:01:17
0:00:43
0:00:45

0:18:56
0:05:20
0:07:53
0:14:50
0:04:48
0:01:01
0:17:38

The current interval is 399 seconds, or 0:06:39. The 43% of that is 172 seconds or 0:02:52. What will happen with this method, in case of the above bolded intervals? You will be:
- effectively mining for the whole duration of the block
- effectively mining for the whole duration of the block in some cases, the whole duration of a second block in some cases, and in a small example above, statistically probable for the whole duration of a two blocks round
- in the case of n-blocks rounds, your contribution will be even less important, for example in a 40 minutes round you will be mining just 3 minutes, while everyone mines the full period, your payment will be less than 10% of that of honest miners, how much can you abuse out of that?
Meni Rosenfeld
Donator
Legendary

Offline

Activity: 1946

 June 12, 2011, 01:24:47 PM

Your payout from a pool is completely independent of the blocks found outside the pool, so I'm not sure what you're trying to say.

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
BombaUcigasa
Legendary

Offline

Activity: 1442

 June 12, 2011, 05:03:57 PM

Your payout from a pool is completely independent of the blocks found outside the pool, so I'm not sure what you're trying to say.
I am pretty sure my payout is dependent on the fact that a block is found inside or outside the pool, at least this is my impression:
- block inside the pool? Round ends, I get 50 BTC * My shares / All shares during the round time.
- block outside the pool? Round continues, everyone has to add more shares to the extended round time.

Sure, in the end it evens out in sufficient rounds, but then again we are talking about pool abuse efficiency, and I still don't see the practicality in doing it. If anyone feels that posting in the public forum would damage the pools (even if information has already been posted) feel free to PM me.
Meni Rosenfeld
Donator
Legendary

Offline

Activity: 1946

 June 12, 2011, 05:58:00 PM

Your payout from a pool is completely independent of the blocks found outside the pool, so I'm not sure what you're trying to say.
I am pretty sure my payout is dependent on the fact that a block is found inside or outside the pool, at least this is my impression:
- block inside the pool? Round ends, I get 50 BTC * My shares / All shares during the round time.
- block outside the pool? Round continues, everyone has to add more shares to the extended round time.

Sure, in the end it evens out in sufficient rounds, but then again we are talking about pool abuse efficiency, and I still don't see the practicality in doing it. If anyone feels that posting in the public forum would damage the pools (even if information has already been posted) feel free to PM me.
Whatever happens outside the pool has no effect (unless it affects the decisions of miners). It doesn't matter at all if in a given minute 0 blocks were found outside the pool or 8. It does of course matter whether in this minute the pool found a block or not.

It looks like you're thinking a block is found like clockwork every 10 minutes. That's false, finding blocks (for Bitcoin at large, for a pool, for a miner) follows a Poisson process, so the time to find the next block is distributed exponentially.

We're not hiding anything. We've specified exactly how to pool-hop (well, at least as long as the pool doesn't try to implement counter-hopping measures, there's some room for discussion there) and why it works. Some people have done it.

It should be emphasized that pools using a correct payout method (geometric, PPS, inter-round window) are completely immune to the effect.

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
BombaUcigasa
Legendary

Offline

Activity: 1442

 June 12, 2011, 07:33:27 PM

It looks like you're thinking a block is found like clockwork every 10 minutes. That's false, finding blocks (for Bitcoin at large, for a pool, for a miner) follows a Poisson process, so the time to find the next block is distributed exponentially.
It looks like the "paper" that describes the process assumes you need to use a median time for block generation, I am referring to that.

What I'm saying is I don't see how you can use a static number to refer to all possible scenarios, and assume that just because in a specific combination of circumstances you get an advantage, that advantage is possible to maintain in the other situations (such as those presented above). I feel that either the methods explained in the paper to abuse the pool are not taking all variables into account (very short blocks, very long blocks, other miners, other pools, random distribution of blocks, comparison with PPS in different scenarios) or they do and I couldn't locate this information in that paper.

Also, how come anything that happens outside the pool has no effect when in fact you need to "hop" to other pools in certain circumstances?
Meni Rosenfeld
Donator
Legendary

Offline

Activity: 1946

 June 13, 2011, 04:36:08 AM

It looks like you're thinking a block is found like clockwork every 10 minutes. That's false, finding blocks (for Bitcoin at large, for a pool, for a miner) follows a Poisson process, so the time to find the next block is distributed exponentially.
It looks like the "paper" that describes the process assumes you need to use a median time for block generation, I am referring to that.
You look at the number of shares as a fraction of the difficulty. But you don't do the whole calculation in block granularity.

What I'm saying is I don't see how you can use a static number to refer to all possible scenarios, and assume that just because in a specific combination of circumstances you get an advantage, that advantage is possible to maintain in the other situations (such as those presented above). I feel that either the methods explained in the paper to abuse the pool are not taking all variables into account (very short blocks, very long blocks, other miners, other pools, random distribution of blocks, comparison with PPS in different scenarios) or they do and I couldn't locate this information in that paper.
Because all this information is irrelevant. Your expected payout from a proportional pool for a share you submit now depends only on the number of shares in its current round (as a fraction of the difficulty).

Specifically, if there currently are K shares in the round, the expected payout (in units of block reward) is $\sum_{i=K+1}^{\infty}p(1-p)^{i-K-1}/i$.

Also, how come anything that happens outside the pool has no effect when in fact you need to "hop" to other pools in certain circumstances?
It has no effect on the payout from this pool. But once the payout from this pool, due to the length of its current round, is too low, you hop to a pool where it's higher.

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
 Pages: 1 2 [3] 4  All
 « previous topic next topic »