Let’s start with the definition of pool mining:
A Mining Pool is a protocol for a group of miners to work together, in order to smooth out their mined coins.
Pooled mining is a mining approach where multiple generating clients contribute to the generation of a block, and then split the block reward according the contributed processing power. Pooled mining effectively reduces the granularity of the block generation reward, spreading it out more smoothly over time.
So, bitcoin mining pools are a way for Bitcoin miners to pool their resources together and share their hashing power while splitting the reward equally according to the amount of shares they contributed to solving a block.
The mining pool coordinates the workers. It’s just like a lottery pool. Your odds of winning a lottery are very low, so you team up with a bunch of other people and agree to split the winning. This makes your odds of winning much higher, but the amount you win much lower.
Want to trade crypto while you sleep? Check our best crypto bots guide.
What a mining pool does is function as a coordinator for all the pool participants doing:
- Taking the pool members hashes
- Looking for block rewards
- Recording how much work all the participants are doing
- Assigning block rewards proportionally to participants
Miners mine differently by running pool software instead of the bitcoin client and just performing hashes for the pool.
The pool operator randomly verifies a small portion of the work submitted by each member of the pool. The member miners don’t know which of their submissions will get verified so they can’t cheat. If they cheat once in a while they might get away with it but not for long enough to matter.
Traditionally, pools gave miners work units covering the entire nonce range 0-4,294,967,295. When the miner finishes work, he requests a new work unit with a different extraNonce (or payout address). Different miners also get work units with different details.
To reduce load, pools are now moving on to a setting where the miner can himself change details of the generation transaction and compute the Merkle root, so he can do as much work as he pleases without needing new assignment from the pool.
How do I get paid in Pool?
Broadly speaking, there are two ways of paying pool miners. The first way is to have a wallet and send payments to miners through that when they ask for them.
The second way, which both eligius.st and p2pool use, is to keep track of how many shares people get, and set the coinbase transaction to pay the block reward directly to them once a block is found. This has the advantage that you never have any Bitcoins to steal on your pool server.
Read our guide on best cryptocurrencies to mine these days.
A share is a hash smaller than the target for difficulty of 1* (see clarification at end). Every hash created has a 1 in ~4 billion (2^32) chance of being a valid share. In comparison if the difficulty of network is 2,000,000 then a share is 2 million times “easier” to find than a valid hash for the block, and on average it will take 2 million shares (8 quadrillion hashes) to find a valid hash for the block.
Shares have no actual “value”. To the bitcoin network they are worthless. The only hash with any value is the one that is smaller than the target (determined by difficulty).
Why do pools use a different difficulty than the blockchain difficulty?
Because the goal is to track work attempted in a verifable manner. If a pool used a difficulty equal to the block difficulty then only one share would be found per block and it would be found by the miner who solves the block. All rewards would go to the single share holder and essentially you invented a long complex round about way of solo mining.
Contrary to popular belief, mining is not something where there is progress. Each hash has the same probability of being a valid block hash. You could get lucky and find a valid hash with your next hash, or you could not. There is no progress that is made.
When you mine on a lower difficulty, the target that your hash must be under is much higher than that of the networks. With enough hashes, someone will eventually find a hash that is lower than the network target, and that hash would also be lower than their pool target. The higher target (thus lower difficulty) is only for tracking who is actually doing work and how much work they are doing so that they can be paid appropriately.
What is stopping miners from cheating in Pool Mining?
The pool sends you the template of the block that you ought to be working on. Should you really find a block it is bound to the block template you received from the pool, i.e., the
nonce that satisfies the proof-of-work difficulty is only valid because it is valid in combination with the template. Since the block template also includes the coinbase transaction, transferring the reward to the pool operator, you cannot steal the reward.
Solo Mining vs Pool Mining
It completely depends on the “pool fee”. If you mine solo, with an expected 5 BTC/day take, that will mean on average you’ll mine a 50 BTC block every ten days. It will be completely random though. You could mine two blocks in a day. You could go three weeks without a block.
If you mine in a pool, you take the pool fee right off the top. A 3% pool fee means you make 3% less. Also, most pools don’t pay transaction fees. But your revenue is more predictable. You’ll get paid on a regular basis and your payments won’t vary much.
One disadvantage of a mining pool is its centralicity – most pools today have central nodes that can be DDOSed, and if not configured accordingly when a DDOS happens the miner will just sit idly instead of reverting to a different pool or to solo mining.
Unless you have a lot of computing power (several ASICs), you should probably mine at a pool.
How can I start my own mining pool?
There is P2Pool and Pushpool being the two options to get your own pool running.
These provide the backend services, the GUI must be built by yourself with any features you may wish to include.
The former is almost unused at this time, although considered to be more resilent to attacks (such as DDOS)
If you were to consider running a pool the requirement of a very high bandwidth server is needed as it consists of using a LOT of traffic (depending where your located this may be VERY difficult to find)
Building a user base may be difficult but with merged mining it may increase profit for running such an enterprise.
How to choose a mining pool?
What is the criteria you should consider when choosing the right mining pool to join? Well, most of the below listed criteria points are rooted in basic common sense, like fees (the lower, the better), pool reputation and uptime.
Trustworthy pool operator ties into the pool reputation factor that we mentioned above. You don’t want to mine for people that will scam you out and run away with your money. This is probably the most important criteria to examine: do your research on the internet, ask questions in mining and crypto communities to see if there are negative reports and personal experiences with the pool.
Fees are self-explanatory; the lower the fees a pool charges for itself, the more money is left for you. Industry standard is around 1% so anything around that figure is basically the norm.
When joining a pool you certainly don’t want to be part of a pool that has just a bit more hashpower than you. You want the pool to have a big hashrate to make sure it will mine a lot of blocks and your payouts will be regular.
Server location and uptime – location plays role because of the latency – you need to be quick in broadcasting that found block, especially when mining a coin with huge hashrate and big mining difficulty.
Uptime is a big deal. Just like with regular websites, if it is offline when someone visits, the owner loses money. Same with mining pool servers – if they are offline, all miners in the pool lose money as nothing gets broadcasted to the blockchain.
Payout schedule is also a minor factor. It is an individual preference as some people like few bigger payments while others like a lot of smaller payments. If you need to choose, the latter is better just in case something happens with the pool – you don’t lose too much in that case.
Payout schemes are also a condition to pay attention to. There are numerous payout designs, some of the most common are
- PPS – Pay Per Share. Each submitted share is worth certain amount of BTC. Since finding a block requires shares on average, a PPS method with 0% fee would be 50 BTC divided by . It is risky for pool operators, hence the fee is highest.
- SMPPS – Shared Maximum Pay Per Share. Like Pay Per Share, but never pays more than the pool earns.
- ESMPPS – Equalized Shared Maximum Pay Per Share. Like SMPPS, but equalizes payments fairly among all those who are owed.
- CPPSRB – Capped Pay Per Share with Recent Backpay.
- Prop. – Proportional. When block is found, the reward is distributed among all workers proportionally to how much shares each of them has found.
- PPLNS – Pay Per Last N Shares. Similar to proportional, but instead of looking at the number of shares in the round, instead looks at the last N shares, regardless of round boundaries.
- Score – Score based system: a proportional reward, but weighed by time submitted. Each submitted share is worth more in the function of time t since start of current round. For each share score is updated by: score += exp(t/C). This makes later shares worth much more than earlier shares, thus the miner’s score quickly diminishes when they stop mining on the pool. Rewards are calculated proportionally to scores (and not to shares). (at slush’s pool C=300 seconds, and every hour scores are normalized)
CaptainAltcoin's writers and guest post authors may or may not have a vested interest in any of the mentioned projects and businesses. None of the content on CaptainAltcoin is investment advice nor is it a replacement for advice from a certified financial planner. The views expressed in this article are those of the author and do not necessarily reflect the official policy or position of CaptainAltcoin.com