Bitcoin Forum
May 08, 2024, 06:45:45 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: A short note about variance and pool payouts  (Read 5303 times)
Meni Rosenfeld (OP)
Donator
Legendary
*
Offline Offline

Activity: 2058
Merit: 1054



View Profile WWW
April 01, 2011, 10:06:39 AM
Last edit: April 30, 2011, 05:30:47 PM by Holy-Fire
 #1

I have noticed a lot of confusion in these forums regarding the "fairness" of mining pool payouts, and I'd like to clarify some points. I don't have the time to write a long post that aspires to convince anyone; I'll just explain some facts for the benefit of those who will take my word for it.

If you mine solo at 500MH/s for a month, you will receive, on average, 223 BTC. This does not mean you're guaranteed to gain exactly 223 BTC, it could easily be 100 or 300 BTC. The exact amount you'll receive is a random variable, a quantity affected by chance which is not known in advance. The most important things to know about a random variable are its expectation and variance. The expectation is the average value of the variable, while the variance is a measure of how far it will tend to deviate from this average. If you were, in fact, guaranteed a 223 BTC payout, your expectation would be 223 BTC and your variance would be 0. In reality, for the mining scenario described, the expectation is 223 BTC and the variance is 11100 BTC^2.

Generally speaking, variance is bad, and solo mining with little capacity has huge variance. It is a general principle that variance can be reduced by joining forces, and this is exactly what a mining pool does - brings many miners together to reduce the variance of all without a significant impact on their expectation. Usually the pool operator takes a small fee for his service, which reduces the expectation for the participants - but this is worth it for the greatly reduced variance.

It is very important to realize that most pools still have some variance. If your payout from a pool is low, you don't generally know if it's because of a flaw of the pool (such as cheating) or because the pool just had an unlucky day. You can however reach some conclusions by examining the payout over a long period of time, preferably with some statistical know-how.

Generally, pools work by rewarding participants for submitting "shares", hashes for a block which satisfy the requirements for difficulty 1. These prove that some work was done. Occasionally, a submitted share will satisfy the real difficulty requirement, and the pool will benefit.

Several methods of determining pool payouts are in existence:

 - Pay per share: Every share submitted receives a fixed BTC reward known in advance. This has virtually 0 variance and is thus good for beginners. However, the operator is subject to enormous variance, and will thus take a large fee to cover his risk. This means the expectation for participants is low, so it's not an attractive long-term solution.

 - (Fixed-weight) Share-based: Every time a block is found, its reward is split between participants according to the number of shares they submitted. This method is vulnerable to a form of cheating known as "pool-hopping". There is strong evidence, yet no conclusive proof, that such cheating actively takes place in pools which still use this method. Cheating can reduce the payout for honest participants by up to 30%, and trying to prevent it requires obscuring pool statistics, so this method should be avoided.

 - Score-based: Each share submitted receives a score based on its age, and the block reward is split between participants according to their score. A controllable, mathematically sound implementation of the idea, which is immune to pool-hopping, was suggested by me; the methods currently used by slush and BTCmine are similar but slightly weaker. The variance of this method is slightly higher than share-based, but this is dwarfed by the risk of having your expectation greatly reduced by cheating. There is a myth that score-based is disadvantageous if you only mine several hours a day; in fact the expectation (which is the more important part) is exactly the same, and only the variance can slightly increase.

I hope this has helped some people to make sense of the arguments being thrown around. I'll be happy to hear feedback and questions.

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
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1715193945
Hero Member
*
Offline Offline

Posts: 1715193945

View Profile Personal Message (Offline)

Ignore
1715193945
Reply with quote  #2

1715193945
Report to moderator
1715193945
Hero Member
*
Offline Offline

Posts: 1715193945

View Profile Personal Message (Offline)

Ignore
1715193945
Reply with quote  #2

1715193945
Report to moderator
1715193945
Hero Member
*
Offline Offline

Posts: 1715193945

View Profile Personal Message (Offline)

Ignore
1715193945
Reply with quote  #2

1715193945
Report to moderator
os008
Member
**
Offline Offline

Activity: 79
Merit: 10



View Profile
April 01, 2011, 10:45:44 AM
 #2

Since the last difficulty change, my average has been consistent with the theoretical average I've calculated. I use "Share-based". However, before the last difficulty change, my average dropped so low for such a long time that i had to switch to Pay-Per-Share until the difficulty changed. It was a bit suspicious, but I'm not someone who throws around accusations, especially if i had some really good days with that pool, and also that i had problems with my computer during the second half of that change. I'll monitor it during this difficulty, if it happens again, I'm switching pools altogether, especially that my hash/s is stable since the last change.

2x5850 @ 600[M|K]H/s
Meni Rosenfeld (OP)
Donator
Legendary
*
Offline Offline

Activity: 2058
Merit: 1054



View Profile WWW
April 01, 2011, 12:23:37 PM
 #3

great explanation, thank you.

I would like to shamelessly add that there is a another "method of determining pool payouts" in existence. This is zero-variance method used by a number of "mining contract" providers like myself. With this method provider takes all the risks of high variance and customer having 0 variance receives exactly amount of expected BTC generation. Also please note that such ''mining contracts" are a form of pool where participants instead of directly contributing working mining hardware (CPU cycles) contribute something else like fiat money or even bitcoins.
I don't agree that mining contracts are a form of mining pools. Mining pools are generally understood to be a place where you can put in your own mining capacity. Mining contracts are an alternative variance-reduction service which caters to a different market.

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]
  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!