Mining pool share difficulty

24/01/2023

The basics

  1. Share — solution, a job that a miner has to do, find and send to the pool, for which he receives income. Share, like any job, has the level of difficulty.

  2. Difficulty or Diffmeans difficulty of the hash. The number of hashes a miner must go through to find a solution (share).

    • For example, if the share difficulty is 2000 MH, the miner has to go through an average of 2 000 000 000 hashes to find the share.
  3. Hashrate is the number of hashes per second that the miner sorts out. If the hashrate is 30 MH/s, the miner is sorting out 30 000 000 hashes per second. Hashrate is the graphics card’s mining speed.

  4. Hash — the result of the hash function.

    • A Hash function is an algorithm for converting raw information, using unique mathematical formulas, into a hash.
    • Hash is the result of the algorithm. Data display in the form of a string, unique for the original set of information.

How does pool mining works?

The task of the miner is to find a cryptocurrency block.

It is difficult for miners to find a block alone, so the miners cooperate with the help of mining pools. The mining pool helps to divide the task of finding a block among the miners.

The reward for the blocks found is distributed among the miners in proportion to their contribution to the block search task — everyone gets as much as they put in the effort to find the block.

Miners are solving the task, finding solutions (sol), or shares.

  1. If the solution is higher than the difficulty of the whole network — the solution becomes a block. If the solution is suitable for block signing, it signs the block and adds it to the blockchain.
  2. If the solution is lower than the difficulty of the network but higher than the difficulty of the mining pool — it becomes nothing. But the pool considers it as a faithfully performed attempt to find a solution for the block. Only the found block is counted in the blockchain, and the shares accepted by the pool are needed to fairly distribute the reward among the miners.
  3. If the solution is lower than the pool's difficulty or the solution hash is not real, the result is wrong — the solution is invalid (invalid share).

The reward that a miner receives from the pool is determined by the number of shares that the miner found and sent to the pool, and they were accepted and counted by the pool — share accepted.

Accepted share — proof that the mining device is working correctly. The more shares (solutions) the miner finds — the more reward he receives for his participation in the search for the block.

🤔Looks tricky... Let's look at an example

Imagine an apartment building in which repairs are going on (blockchain).

It is too long and difficult for one worker (user miner) to make repairs to the whole apartment (finding a block alone is difficult).

Workers (miners) team up in teams led by a supervisor (pool) to make repairs to the apartment and get paid — (get the block).

  1. Let's say the worker is Superman! Incredibly strong, fast, and experienced. He alone does quality repairs to the whole apartment within a set time frame. For this, he gets a big paycheck with a nice bonus (the miner found the block himself).
  2. Now let's imagine a team of workers under the supervision of a supervisor. Everyone has their room and their job. Someone is gluing wallpaper, painting ceilings, and installing plumbing (sending shares). Altogether, they turn in the apartment on the due date and get paid for it (pool finds a block). The boss checks the wallpaper: the wallpaper is glued correctly, evenly, and qualitatively — the work is accepted (share accepted). Boss evaluates and distributes wages for honest work (pool distributes reward to miners).
  3. Now let's imagine the same team and the boss. The same way they do repairs in the apartment. Except that the worker, who was assigned to glue wallpaper — pinned newspapers on the wall! Yes, he worked, but would you accept the workers of such an apartment with newspapers on the wallpaper instead of wallpaper? The boss didn't accept it either — such work doesn't count — and the worker won't get paid for it (share invalid).

At the construction site, the boss evaluates the work according to the criteria he understands, while the pool evaluates the effort expended by the miner using such an indicator as the difficulty of the share.

What is the purpose of the share difficulty?

  1. Share difficulty is needed to evaluate a miner's work honestly — to calculate his work.
  2. Each mining pool chooses the share difficulty itself.
  3. The lower the difficulty of the share, the better for the miner. The miner can connect any equipment, not even the most powerful. Shares will go faster. Users will evaluate profitability more quickly.
  4. All the shares, solutions, and work miners do will be checked by the pool — a computer. To keep the computer from getting bogged down by a billion small calculations, the pool raises the difficulty so that the shares come in less often.
  5. Many pools, especially PPLNS, raise the share difficulty to save on powerful servers. Powerful servers that can handle large numbers of shares are expensive.

If the difficulty is too high, some weaker graphics cards will not be able to connect, or vice versa — if the difficulty is too low, the pool will be overloaded with checking simple calculations.

Some pools adjust the share difficulty automatically, depending on the power of the equipment, and some pools have a fixed share difficulty.

Does the share difficulty affect the miner's profit?

No, the difficulty of the share on the pool does not affect the miner's profit!

  • The number of blocks the pool finds does not depend on the share's difficulty.
  • The share's difficulty does not affect the miner's luck or the profit the miner receives for mining.
  • Share difficulty does not affect the number of rejected stale shares.

The lower the share's difficulty, the cheaper the share is. It's more likely to be found by a graphics card, and even a weak graphics card can find it.

The more difficult the share is, the more expensive it is, and the less often it can be found by your graphics card, and you need a more powerful graphics card to find it.

Still complicated? Let's make it easy! 👨‍🏭

Imagine a construction site.
There are two piles of bags with cement.

The first pile contains 10 bags of 10kg (high difficulty).
The second pile contains one 100 bags of 1kg (low difficulty).
The first pile and the second pile are both 100kg (workload is the same).

Two porters came to the construction site and paid the same wage — $100 for carrying one pile. The first porter is experienced — he got a trolley (miner with a robust farm or ASIC), and the second one is a newbie — he took only gloves (miner with one GTX 1060 graphics card).

  • You need a trolley to carry 10kg bags, while 1kg bags can also be carried by hand. (If the difficulty of the share is very high — a weak graphics card won't do the job, you need a powerful farm).
  • The porter will be paid for carrying the bags rather than for the transfer speed. So the time it takes the porter to the load is OK with their pay. (Miners are paid for the shares they find, not for how fast they find them).
  • The boss does not care who will carry the bags or how many bags will be moved — the work must be done! (The reward for a found block is the same).

It is best for the boss if the bags are big — it is easier to count them.
If you hire a loader with a cart, he will move all the bags quickly.
Also, big bags are easy to calculate!
Calculating one hundred bags can be confusing…

But what about the ported without a trolley? (a miner with a weak GPU) He either got to carry the bags slowly, straining his back (if he can even lift them), or he needs to find another job he can do.

The porter with the trolley doesn't care. (a miner with a powerful mining rig) If doesn't matter for him to carry 10kg bag or ten 1kg bags. The same number of trips, same time, same money.

Regardless of the porter's strength and equipment, it's better for all the porters to do the job where the bags are smaller and lighter so everyone can get the work done.

Counting the bags is the supervisor business 😉

Now imagine that the construction site is a pool and the bags are infinite.
They'll be there all the time, and they won't run out. Which construction site (pool) would you choose?

  • 👎 The one for only experienced porters, so there'll be fewer bags, because the boss can go astray…

Or

  • 👍 The one where everybody is welcome, the boss is competent and experienced, never makes mistakes, gives everybody a job, pays fair wages, and helps newbies!

The second one? That's what we thought! Welcome to Kryptex pool!

Kryptex welcomes all porters miners, and it doesn't matter if they have trolley powerful graphics card. We give work to everyone, and everyone gets paid fairly! And our smartest, most powerful supervisor server will quickly and accurately calculate all bags shares😎

😤 For the most persistent, a practical explanation

For example, consider ETC coin mining on the Kryptex pool.

Initial data:

  • Share difficulty on the pool — DIFF: 2.000 GH = 2000 MH.
  • 2 RTX 3060 graphics cards
  • Miner — NBMiner
  • In 15 minutes of mining on the pool, the first card (ID 0 — 49.65 Mh\s) found 20 shares.
  • In 15 minutes of mining on the pool, the second card (ID 1 — 48.91 Mh\s) found 18 shares.

How do I know if that's a lot or a little? You can check if the card is working correctly!

Checking whether the graphics card is working correctly

Knowing the difficulty of the share on the pool and the equipment's power (hashrate) — you can calculate the average time the share takes to be found on the pool.

Why? To see if our graphics card is working correctly. To do this, we need the following:

  • Task 1. Find the average share time — the share difficulty needs to be divided by the hashrate of the graphics card.
  • Task 2. Determine the estimated number of shares that our graphics card should find with the current hashrate, at the current difficulty, during the mining time.

The longer the continuous mining time, the more accurate will be the estimated and actual number of shares found by the graphics card.

  • Solution 1. 2000 MH / 49.6 Mh\s = 40.3 seconds = 0.67 minutes — the average time a share should be found.

This average value is based on a pool difficulty and is relevant for a specific time interval. The shares may often come in the beginning, e.g., every 5-10-20 seconds and then every 1-2-5 minutes. On average, we will get about 0.67 minutes.

It happens because the difficulty of each individual share may be different. It depends on the "luck of the equipment" (GPU or ASIC) and how fast it could find the share.

So, we know the average time it takes for a share to be mined on a pool with a given difficulty. In our case, we got 0.67 minutes.

Knowing our uptime (continuous mining time), we can calculate the approximate number of shares that our equipment will receive.

From the initial data — the miner was running for 15 minutes.

  • Solution 2. 15 min (uptime) / 0.67 min (average time to find a share) = 22 shares

Our first GPU (ID 0 - 49.65 Mh\s) found 20 shares. Our second GPU (ID 1 - 48.91 Mh\s) was less successful, finding 18 shares, but its hashrate is also slightly lower.

In the pool statistics, the user can observe whether the hashrate is higher or lower than what his miner window shows. It happens because the pool calculates the hashrate relative to the accepted shares over a while (6 hours, 12 hours, 24 hours) instead of taking the hashrate from the miner window.

The longer the period of uninterrupted mining, the smaller the difference between the calculated and the actual number of shares.

It is necessary to compare the calculated and actual profitability over a long period of time with Kryptex working 24/7. The calculations are of a probabilistic nature, and the profitability is the expectation of a random variable. Therefore, they converge only over a long period of time.

It is more important to calculate the income over a long period. The longer, the more accurate the value.

  • For PPS (Pay Per Share) pools, especially with low share difficulty, 24 hours will be enough.
  • For PPLNS (Pay Per Last (luck) N Share) pools, especially with high difficulty, you need 3-7-10 days. The longer — the better.

PPS pools are better for mining — you predict your profit more accurately and shouldn't rely on pool’s luck. That's why Kryptex uses PPS pools and low-difficulty mining.

What if…

  1. What if we have the same difficulty, uptime, and hashrate and get five shares instead of 20?
    • The difficulty on the pool is static, 2 GH.
    • The pool safely accepted five solutions.
    • So, our graphics card does not mine with the specified hashrate! The miner program is wrong, or the graphics card is "raining" with many invalid shares (glues newspapers instead of wallpaper). We need to look for the problem on our farm.
  2. What if the difficulty had been 8 GH instead of 2 GH? Will we get more money? Let's check!
    • GPU hashrate is 49.65 Mh\s.
    • Uptime is 15 minutes
    • Difficulty — 8 GH = 8000 MH
    • 8000 MH / 49.65 Mh\s = 161.13 sec = 2.69 min — average time per share 15 minutes (uptime) / 2.69 minutes = 5.6 shares
    • This means that with a share difficulty of 8 GH, our graphics card would have found 5-6 shares, not 20 as with a difficulty of 2 GH.

Remember the construction site: 20 shares at 2 GH or five shares at 8 GH will cost the same to a miner.

  • Either you'll carry ten 1kg bags in your hands in 5 moves.
  • Or you'll carry one 10kg bag in a trolley in 1 move.

You'll get paid the same whether you do one or the other!

This article is available in other languages: