4. Understanding shares, difficulty and rejections

What is Bitcoin mining difficulty?

The current difficulty level in the network determines how hard it is to find a valid solution to each Proof-of-Work puzzle. Difficulty is adjusted depending on how many people are mining Bitcoin (or any other PoW coin) and what sort of equipment they use.

If the difficulty didn't change at all, then with more and more powerful ASICs joining the game it would take less time to find a solution for each block. Think of it as a group of scientists working on a scientific problem. If you put 30 scientists to work on a task instead of 3, they will probably solve it much faster.

However, the goal is to keep the average Bitcoin block time stable at 10 minutes. To achieve this, the system automatically corrects the difficulty every 2016 blocks. If the total network hashrate has grown, the difficulty will grow, too.

As you can see from this chart, the general difficulty trend is upward. It's uncommon for network difficulty to fall. Usually this happens when the Bitcoin price crashes and many small miners leave the network, unable to make a profit. For example, this occurred in mid-March 2020, when BTC dropped from $7000 to below $5000.

What is a share?

As soon as a miner receives a new cryptographic puzzle from the mining pool, it starts looking for potential solutions and sending them to the pool. These suggested solutions are called shares. The maximum number of shares that a miner can generate per second is the hashrate.

The pool distributes the rewards based on how many valid shares each miner submitted. That's why the more powerful your mining hardware (i.e. the higher the hashrate), the larger your reward. However, not all shares are accepted. Some of your shares won't count towards the total work you do.

What is pool share difficulty?

Each mining pool sets its own internal share difficulty in order to track miners' work and calculate rewards. The miner’s hardware capacity must be enough to support that level of difficulty or higher. On Xive, we only work with sellers whose equipment can work with all major pools.

The share difficulty is much lower than the network difficulty. If it was set as high as the network difficulty, then the only valid shares would be the actual block solutions. Miners would end up submitting very few shares and it would be impossible to track the work they were doing.

The share difficulty doesn't affect how many blocks the pool finds and how much each miner earns. It's just for the means of monitoring.

What are rejected and invalid shares?

There are several types of 'bad' shares that can eat away at your mining rewards:

  1. Stale shares. This means that by the time you submit it, the puzzle has already been solved. This happens because of network latency: it takes some time for the miner to receive the instructions to stop working on the old puzzle and switch to the next one. It's normal to have some stale shares, but their percentage (rejection rate) shouldn't exceed 1%.
  2. Low-difficulty shares. The miner needs to be able to work at the level of difficulty required by the pool or higher. If the equipment isn’t powerful enough, the pool will reject incoming shares as ‘difficulty too low’.
  3. Invalid shares. Miners often tweak their hardware to increase the hashrate beyond the manufacturer's guarantee. This is called overclocking, and it can cause the equipment to produce invalid (malformed shares). They are not submitted to the pool and thus don't make part of the rejection rate. However, there are also shares that are good upon production but get corrupted in transit. This can happen due to an unstable internet connection. The pool will reject such shares as invalid.
  4. Duplicate shares. Very rarely, the pool will allocate the same task to 2 users. If the other user solves it first, your solution will be rejected. It's not a common occurrence, though.

Minimizing the rejection rate

  1. Picking a pool with the right difficulty. Some pools have a higher share difficulty in the sense that they prioritize high-speed miners and assign comparatively difficult tasks to all their members. Pools normally adjust their difficulty based on how many shares their members submit, but even so, less powerful miners can have trouble solving shares in a 'difficult' pool.
    If you choose a pool that has a lot of powerful miners and then buy a contract from a Xive seller with a small miner, you might experience a higher rejection rate.
    By contrast, some pools, such as SlushPool, distribute more difficult tasks to stronger miners and easier shares to those with slower equipment. Such variable difficulty pools can be a good option if you plan to buy both different kinds of contracts on Xive.
  2. Reduce latency.Latency is the time it takes for data sent by the pool to reach the miner and vice versa. The lower the latency, the more valid work the miner does.
    When you purchase a mining contract on Xive, it's the seller's responsibility to guarantee a strong and stable network connection via Ethernet. Apart from the network speed, latency can be affected by the physical distance between the miner and the pool's server. Many pools offer alternative port numbers for their servers – for instance, China, Europe, US etc.
    Note that Xive sellers are located all over the world. You'll need to use the built-in chat feature if you want to ask the seller where their equipment is located. However, the geographical position effect on latency is small compared to the impact of mining difficulty.