These days, the vast majority of proof-of-work coins like Bitcoin are mined by pools. Hundreds of thousands of miners work in tandem to validate transactions, mine new blocks, and collect that sweet, sweet block reward.
It's a long way from "one-CPU-one-vote” concept Satoshi outlined in the early days, but things have changed since then. In 2010, a Bitcointalk user in tweaked a Bitcoin client to allow GPUs to mine Bitcoin, and they were a lot faster and more efficient than CPUs; suddenly, miners with expensive graphics cards were dominating the scene.
Two months later, another Bitcointalk user named Slush made a proposition: Instead of competing against each other and the “rich GPU bastards” (his words, not ours), CPU miners would pool their resources together and make bank.
The stage was set for Slush Pool, a mining collective that has gone on to mine 1 million Bitcoin (out of a total supply of 21 million).
As the fifth-largest BTC mining pool, Slush Pool controls 8% of the Bitcoin network hashrate today, and the four largest pools above it collectively control over 51% of the hashrate.
More miners active on a network equals more hashpower, and the difficulty of mining a proof-of-work coin increases according to the amount of hashpower on the network. An individual miner could spend years trying to mine a new block on a competitive network like Bitcoin these days, which is why we have pools. Joining a pool greatly increases the chances a miner has of ever earning some of the block reward of a given block.
Of course, to earn the reward, the miners need to prove to the pool that they're pulled their weight, and doing that can be complicated. Different pools have different ways of measuring the value of miner contributions, different criteria for paying the miners, and different criteria for charging the miners a fee for participating in the pool.
It's complicated, it's interesting, and it's very important information for any and all aspiring miners. Once you understand the fee structures, you'll be able to put together a mining strategy that'll have you well on your way to minting new blocks with the best of them. Let's take a look.
Mining-Pool Shares and Fees
To determine payment rewards, pools need to evaluate how much hashpower a miner is contributing, and this is measured in shares, which are instances of high-difficulty attempts to mine a block.
Let's say the block difficulty of a PoW network is 10,000 (for Bitcoin, the difficulty is in the trillions; let's stick with a lower number for this example). Depending on the difficulty of a block, it can take trillions of attempts to “solve” the difficulty and mine a block. Statistically, it's really rare for an individual to succeed in mining a new block, so it's not useful to measure miner contributions that way.
Instead, pools will examine the lower difficulty, like 100, and measure how many block attempts a miner made that scored above that difficulty level. These close-but-no-cigar attempts demonstrate that the miner is capable of high performance and thus more likely to mine a block at some point.
Shares do not make any money for the pool — they're just an accounting method used to measure the efforts made by individual miners. The pool makes a note of the shares made per miner and then factors that into the miner reward, which is issued in a number ways. Here's a fee structure description from the 2011 era version of Slush Pool.
How does bitcoin pool work? Our server gives users blocks of very low difficulty to solve. Each solution found is registered as one 'share'. Occasionally, a solution will happen to also meet the full-strength difficulty requirements of the Bitcoin network, resulting in a successful 50 BTC minting.
This 50 BTC is divided among all of the users that contributed to that round, weighted by the number of shares that they earned. Therefore, the reward earned by a given user is given by the following formula:(50 BTC - 1 BTC fee) * (shares found by user's workers) / (total shares in current round). Shares do not carry over from one round to the next.
When the pool mine a block, only users who worked on that block are rewarded, and only for work they did on that block. This is an unavoidable consequence of the way that Bitcoin mining in general works.The 2% fee is used to keep this service alive.
In the above system, miners earn shares by making good block attempts. If the pools mines a new block, the reward is distributed among miners based on their shares. However, some pools pay out even when the pool hasn't mined a new block. They do this to mitigate the effects of variance and luck in pool mining.
Variance and Luck
OK, let's say a network has an overall hashing power of 100 TH/s, and a particular mining pool is providing 10 TH/s of that hashing power. The pool controls 10% of the hashrate, so, statistically speaking, it has a 1 in 10 chance of mining each new block. Over a long period of time, this is likely to be the case, and the pool will mine 1 in every 10 blocks. As in all things, luck plays a part.
Sometimes the pool could mine 3 blocks in 10. Yay! Other times, the pool could mine 0 out of 10, or 0 out of 20, all the while racking up overhead costs. In the long term, it'll even out, but in the short term, there will be disparity. This short-term inconsistency is called mining variance.
While there are over a dozen different payout and fee structures in pool mining, they're mostly focused on dealing with the issue of variance and when to pay out. Understanding the fee structure is absolutely crucial for turning a profit when pool mining. Let's do it.
Two Main Systems: PPS vs. PPLNS
There are a bunch of different payout systems, but most pools use Pay Per Share (PPS) or Pay Per Last N Share (PPLNS). These determine how much a miner gets paid, what they get paid for actually doing, and whether they need to give the pool a portion of their earnings as a fee in return.
Pay Per Share (PPS)
PPS pools pay miners based on the number of shares they've contributed during a mining round (the time it takes to mine one block), even if the pool didn't mine a block that round.
The miner payout isn't directly related to the block reward; the pool assigns a fixed value to a share and pays miners per share earned. PPS miners are rewarded with a capped flat rate, guaranteed every time they mine.
PPS used to be more widely used, but many pool operators now avoid it to mitigate the risk of having to pay miners for rounds that didn't make any money. This payout isn't directly related to the block reward. PPS pools set a fixed value on how much a share is “worth” and pay miners a fixed rate per each share.
Specifically, the cost of a share = the expected value of each hash attempt, and this is calculated by subtracting the pool fee from the block reward and then multiplying that by the probability of finding a block, represented as B * p for all you math nerds.
- Pros: Reliable, regular payments. This method eliminates the risk of variance and having to wait a long time before earning a reward, and this is often a main selling point of a pool for potential members. It also favors miners who want to try out different pools, as we'll see below.
- Cons: PPS pools tend to charge the highest membership fees to mitigate risk to the operators. The steady payments are typically capped at a lower rate than PPLNS pool rewards — PPLNS miners could make more in a shorter period than PPS miners — of course, they could also make nothing!
PPS is slightly vulnerable to pool-hopping, wherein hoppers contribute shares and then leave, often earning unfair rewards at the expense of other miners. Operators of PPS pools need to store capital for their regular payouts and are, as such, more vulnerable to bankruptcy or attack than other pools.
PPS pools are characterized by reliable income and higher fees. Of course, if the pool is making good on regular payments, it may not matter so much that the fee is a bit higher — it all depends on how much miners can actually earn.
Pool-hopping is arguably a pain point with these pools because a minority of miners exploit the system by contributing shares and switching pools to collect multiple rewards, often when none of their mined pools has found a block.
At the same time, this is not considered to be a major problem with PPS (other systems, such as PROP, are significantly more vulnerable).Well-known PPS pools include F2Pool and BTCC Pool. Some, such as AntPool, offer either PPS or PPLNS payouts, as the miner prefers.
Pay Per Last N Share (PPLNS)
PPLNS is not constrained to the round system, and PPLNS miners don't get paid based on how much overall hashpower they contribute. Each PPLNS pool establishes two things: a period within which shares will be paid, and the total number of shares (N) to be paid in that period (often it's twice the difficulty). PPLNS only pays miners for blocks that are actually mined.
The rewards are issued based on the total number of shares (N) contributed within a certain period before a block is mined. When a block is mined, shares made within the reward period are paid out, starting with the most recent share and working backward, until the total number of shares has been reached.
Some pools also devalue older shares within the window and attribute more value to newer shares.PPLNS rewards can fluctuate. The reward has the potential to be higher at times than the capped reward of PPS pools, but at other times, miners can receive nothing for extended periods.
- Pros: PPLNS tends to favor miners who stick around and mine in one pool for a long time instead of hopping to multiple pools. Because miners accept the risk of infrequent payouts due to variance, the mining pool has less overhead costs for pool operators, and fees are therefore usually cheaper, or even free.
- Cons: Unlike PPS, where there can be near-instant payouts on the regular, this method could take a long time to pay out, causing the miner to rack up high electricity bills in the meantime. It is unsuitable for people who want to mine for a while and then disconnect; miners need to have mined shortly before a block is found (in whatever time window set out by the pool).
PPLNS Overlapping Share Rewards
Because the window is round-agnostic, it's possible that several blocks will be mined within this period, and in these instances, the shares within the period can be rewarded once for each block. When PPLNS pools mine multiple blocks in a short time, the miners can stack rewards for the same shares multiple times.
The system also means that blocks that take a long time to mine can be less rewarding, and miners who mine only during certain periods will be rewarded less than constant miners. Miner A could contribute less hashpower than Miner B and still win a greater reward by joining late, which some would consider a negative aspect of the method. At the same time, it prevents people from trying their hand at multiple pools and encourages them to stick it out with one pool only, which, many argue, benefits the miners overall.
While PPS hoppers can gauge when the optimal time to jump in and earn shares is, due to the guaranteed payout structure, the high variance in mining actual blocks makes it difficult for PPLNS miners to gauge when a block is close to being mined. For this reason, PPLNS miners find it infeasible to try and jump in at the last second.
The reward offered to miners is a percentage of the shares they contribute (n) to the total number of shares (N) it took to find a given block. The reward is calculated as B * n over N, with some additional calculations, depending on the pool.
Meni Rosenfeld, the chairman of the Israeli Bitcoin Association, summarized his take on PPLNS in this Bitcointalk post:
The basic method is this: Whenever a block is found, payment is given to shares in a window, starting with the last share submitted and going backwards up to some number N of shares. Shares older than the window are not paid. This is essentially a 0-1 cutoff decay function.
There is no concept of rounds — shares can be paid even if they were found before the previous block. This means that a given share can be paid more than once — however, the payouts are chosen so that the expected reward is equal to solo expected reward. Because the payment for a share depends only on blocks found in the future and not on shares and blocks found in the past, there is no way to hop based on the current status of the pool.
Rosenfeld goes deeper into the mathematics behind PPLNS within the post, and also in a whitepaper on PPLNS and other reward structures.Now that we're aware of the two main systems used to charge and reward miners, let's take a look at some of the less common ways mining pools can handle the process.
Other Payout Structures
The following payout structures are, for the most part, variants of PPS and PPLNS that different pools have tweaked to suit their own needs. As you can see, many include “pay per share” in their title but have added some small adjustment to the rules, as desired.While the methods are technically distinct from PPS and PPLNS, they can mostly be categorized as a close relative of one or the other, and they're far less commonly used than their more popular counterparts:
- PROP (Proportional): Proportional distribution of block reward among all miners, depending on how many shares each found.
- FPPS - Full Pay Per Share: Similar to PPS, but as well as distributing the block reward, miners receive some of the transaction fees.
- SMPPS (Shared Maximum Pay Per Share): A capped maximum flat rate, like PPS, but the flat rate only applies when the pool earns money. Otherwise, there is no payment.
- ESMPPS (Equalized Shared Maximum Pay Per Share): Like the above SMPPS system, but payments are equalized among miners.
- CPPSRB (Capped Pay Per Share with Recent Backpay): Bitcoin miners are paid as much as possible using a Maximum Pay Per Share reward system.
- DGM - Double Geometric Method: Operators receive a portion of payout on short rounds and return some on long rounds to reduce risk and create a more stabilized payment system on average.
- Score : A proportional reward depending on time of submission. Each submitted share is valued based on time of submission, making more recent shares more valuable, and diminishing the score of a miner who stops mining, encouraging loyalty and consistency. Slush Pool, the oldest pool, uses this system.
- RSMPPS : Recent Shared Maximum Pay Per Share. This is like a hybrid SMPPS/Score system, a capped maximum rate that rewards recent shares over earlier shares.
- PPLNSG : Pay Per Last N Groups (or shifts). PPLNS-like system where shares are grouped into shifts of workers and paid into those subgroups.
- POT - Pay On Target: Modeled on PPS, this system pays out based on difficulty returned to the pool rather difficulty served out by the pool (input vs. output).
- Triplemining: Merges multiple no-fee pools and pays out 1% of every block.
There's a lot to take in when it comes to mining fee structures, simply because there are so many different options.At the end of the day, it all depends on what you want out of mining. Some miners are in it for the community spirit, to help participate in a network they support, and that's a valid reason in itself.
But if you support crypto but you're also in it for the profit, consider what kind of rig you have or could put together and how much time you are willing to dedicate to learning about the complex nature of configuring your software, learning about and testing different pools, experimenting with fee structures, etc. Some people can't get enough of that kind of stuff, but others just want to dive right in and start profitably mining cryptocurrencies.
Can you afford to mine for weeks without earning up-front funds, or would you rather pay a fee to have more predictable results? If you want regular payouts and a straightforward interface that allows you to get right down to business, we humbly invite you to check out Honeyminer (that's us!).
Rigs with over 2 GPUs pay a 2.5% fee, and we automatically select the most profitable crypto for you to mine and then convert the earnings into bitcoins for you to hold, spend, accidentally lose, and then go insane as the value skyrockets beyond everyone's most outlandish predictions, or whatever you like really. All you have to do is install the software to start instantly mining.
Either way, we have a ton of great mining blogs, an awesome bear, and a humble attitude. Like, the humblest. Out of anyone.
So if you want to learn more about mining, keep reading. And if you ever have any questions, just get in touch!