Here is a quote from the article ‘How the Mining Pool Works: PPLNS vs. SOLO’:
At the earliest days of the mining, any processor or GPU had the sufficient power required for finding many solutions per day and getting a reward for the detected block.
With an increase of the interest to the cryptocurrencies, the difficulty level of the “puzzles” also increased, and a standalone PC could not find many solutions anymore.
Difficulty level was rising because the reward for the newfound block was growing as well as its equivalent in value. That was the time when miners decided to unite their efforts and create the mining pools.
Therefore, even weak devices that are working simultaneously on solving the same “puzzle” have a chance to find its solution which would enable miners to create a new block.
Mining pools get solutions from all the connected miners, and if one of those numerous solutions appears to be a proper one, the pool gets a reward for the created block. This reward is shared proportionally to the efforts applied by the miners and forwarded to their wallets.
Share is a potential block solution. So it may be a block solution, but it is not necessarily so.
For example, suppose a block solution is a number that ends with 10 zeros and, a share may be a number with 5 zeros at the end. Sooner or later one of the shares will have not only 5, but 10 zeros at the end, and this will be the block solution.
A big mistake among beginning miners is to think that they find a block (or even two), when they see phrases like ‘Share Found’ and ‘Share accepted’ in their mining software.
Mining pools need shares to estimate the miner’s contribution to the work performed by the pool to find a block.
Based on the shares that a miner sends to the pool, the pool then plots a miner hashrate graph. It also allows you to determine whether a miner is online or not, etc.
There are numerous miner reward systems: PPS, PROP, PPLNS, PPLNT, and many more. It would take too much time to describe all of them, so let’s focus on PPLNS for now.
How does PPLNS Work?
PPLNS stands for ‘Pay Per Last N Shares’, where ‘N’ is a random number determined by mining pool operator. Suppose N equals 20,000. What does it mean?
It means that when you find a block, your reward is calculated based on your contribution to the last 20,000 pool shares. So if Ether block reward is 3 ETH and you account for 1,000 of the last 20,000 pool shares, then you’ll get 5% of the reward – 0.15 ETH. On 2Miners you can automatically check your statistics and your current share rate on the pool.
For example, if you enter the following miner wallet address 0x00b45d7f146b865c5d8d24c5595e900d5b06e3b4 in the upper right corner on the pool web page, you will get access to its statistics. In the yellow field, you’ll find a miner’s share rate.
Let’s see what share difficulty means. In this case, we talk about 4G, although it may be 8G/16G/1000000G, etc.
At the time when this article was written, Ethereum difficulty was 3.38 P = 3,380 T = 3,380,000 G. Sometimes it is measured in Ph/Th/Gh, but it’s all the same – Ethereum difficulty, in this case, is 3 Petahash = 3,000 Terahash = 3,000,000 Gigahash.
For the sake of simplicity, we will only consider the ideal world conditions, that is, 100% mining luck. Suppose pools line up to get blocks in ascending order of their hash rates: since 2Miners has 500 Mh/s, it gets 10 blocks per day, while XMiners with its 5,000 Mh/s gets 100 blocks per day.
In reality, it may go differently: today a specific pool with 500 Mh/s might get 5 blocks, while tomorrow it might get 10 blocks, and the day after – 13 blocks, even though its hashrate is always 500 Mh/s. But if you consider the more extended time factor, luck is still aimed at 100%, as mentioned in this article.
So, we have – an ideal world, 100% luck, Ethereum cryptocurrency network:
- If the share difficulty was 3 P, then every share would a be block solution.
- If the share difficulty was 1 P, then every 3rd share would be a block solution.
- If the share difficulty was 3 T, then every 1,000th share would be a block solution.
So if the Ethereum difficulty is 3.38 P and the pool share difficulty is 4 G, then in an ideal world a pool needs to receive 845,000 shares to find a solution for one block.
In reality, it may need only 10 shares or 2 million. If we consider the span of several weeks or even months with constant network difficulty and share difficulty, then the average number of pool shares per block will aim at 845,000.
Share Difficulty and Mining Difficulty
- Share and block solution are different things.
- Share difficulty doesn’t affect the number of blocks found by a pool.
- Share difficulty doesn’t affect miner rewards.
- Shares are used by miners to monitor their rigs and by pools to distribute rewards amongst their miners.
If there is only one miner on the pool, then you can set share difficulty equal to network difficulty. In this case, pool stats don’t demonstrate anything at all, and then, all of a sudden, a block is found, after which days and days of waiting will follow again.
This scenario is very uncomfortable. And if there are several miners, then considering the elevated level of difficulty, rewards distribution process becomes way too confusing.
Pool share difficulty is chosen in a way that miners could work comfortably and see their detailed statistics, and pools could operate adequately without getting overwhelmed with the crazy number of shares they receive.